更多"补充函数,要求实现如下功能:寻找并输出11~999之间的数m,它满足m"的相关试题:
[简答题]补充函数,要求实现如下功能:寻找并输出11~999之间的数m,使得m、m2、m3均为回文数(回文数是指各位数字左右对称的整数),例如:12321、505、1458541等。满足上述条件的数如m=11时,m2=121,m3=1331都是回文数。请编写jsValue(long m)实现此功能。如果是回文数,则函数返回1,不是则返回0。最后,把结果输出到文件OUT.DAT中。
注意:部分源程序已经给出。请勿改动主函数main( )中的内容。
试题程序:
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
int jsValue<long n>
main( )
long m;
FILE*out;
out=fopen("OUT.DAT","w");
for(m=11;m<1000;m++)
if(jsValue(m)&&jsValue(m*m)&&jsValue(m*m*m))
printf("m=%4ld,m*m=%6ld,m*m*m=%
8ld/n",m,m*m,m*m*m);
fprintf(out,"m=%4ld,m*m=%6ld,m*m*m
=%8ld/n",m,m*m,m*m*m);
fclose(out);
[填空题]重载函数的实现和功能不同,但函数的 相同。
[填空题]重载函数的函数名称相同,但函数的实现和功能不同,系统是靠 【12】 来决定采用哪个函数。
[填空题]重载函数的实现和功能不同,但函数的 【12】 相同。
[简答题]请补充函数fun( ),该函数的功能是:寻找两个整数之间的的所有素数(包括这两个整数),把结果保存在数组bb中,函数返回素数的个数。
例如,输入6和21,则输出为:7 11 13 17 19 21。
注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在函数fun( )的横线上填入所编写的若干表达式或语句。
试题程序:
#include<conio. h>
#include<stdio. h>
#define N 1000
int fun (int n, int m, int bb [N])
{
int i, j, k=0, flag;
for (j=n; j<=m; j++)
{
【1】 ;
for (i=2; i<j; i++)
if( 【2】 )
{
flag=0;
break;
}
if( 【3】 )
bb [k++] =j
}
return k;
}
main ( )
{
int n=0,m=0, i, k;
int bb[N];
clrscr ( );
printf ("Input n/n");
scanf ("%d", &n);
printf ("Input m/n");
scanf ("%d", &m);
for (i=0; i<m-n; i++)
bb[i]=0;
k=fun (n, m, bb);
for (i=0; i<k; i++)
printf ("%4d",bb [i]);
}
[填空题]请补充函数proc( ),该函数的功能是按条件删除一个字符串指定字符一半的数目,具体要求如下:如果该字符串所包含的指定字符的个数是奇数,则不删除,如果其数目是偶数,则删除原串后半部分的指定字符。其中,str指向原字符串,删除后的字符串存放在b所指的数组中,e中存放指定的字符。例如,当str输入“abcabcabcab”,c=“b”时,b的输出为“abcabcaca”;如果str的输入为“abcabeabca”,则b的输出为“abcabcabca”。
注意:部分源程序已给出。
请勿改动主函数main和其他函数中的任何内容。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#define M 80
void proc(char str[], char b[], char c)
int i=0, j=0;
int n=0;
int m=0;
while(str[i]!=’/0’)
if(str[i]==c)
n++;
i++;
(1) ;
if (n%2)
while(str[j]!=’/0’)
b[j]=str[j];
j++;
b[j]=’/0’;
else
while(str[i]!=’/0’)
b[j++]=str[i];
if(str[i]==c)
m++;
if((m>n/2)&&(str[i]==c))
(2) ;
i++;
(3) ;
void main( )
char str[M], b[M];
char c;
system("CLS");
printf("Enter the string: /n");
gets(str);
[填空题]请补充函数fun( ),该函数的功能是按条件删除一个字符串指定字符一半的数目,具体要求如下:如果该字符串所包含的指定字符的个数是奇数,则不予删除,如果其数目是偶数,则删除原串后半部分的指定字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,c中存放指定的字符。
例如:当a输入“abababa”,c=‘a’时,b的输出为“ababb”;
如果a的输入为“ababa”,则b的输出为“ababa”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun( )的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
#include<conio.h>
#define LEN 80
void fun(char a[],char b[],char C)
{
int i=0,j=0;
int n=0;
int m=0;
while(a[i]!=‘/0’)
{
if(a[i]==c)
n++;
i++;
}
【1】 ;
if(n%2)
{
while(a[j]!=’/0’)
{
b[j]=a[j];
j++;
}
b[j]=’/0’;
}
else
{
while(a[i]!=’/0’)
{
b[j++]=a[i];
if(a[i]==c)
m++;
if((m>n/2)&&(a[i]==c))
【2】 ;
i++;
}
【3】 ;
}
}
main( )
{
char a[LEN],b[LEN];
char c;
clrscr( );
printf("Enter the string:/n");
gets(a);
printf("Enter the character of the string deleted:");
[单项选择]以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能,造成错误的原因是
#define MIN -2147483647
int findmax (int X[], int n)
int i, max;
for(i=0; i<n; i++)
max=MIN;
if(max<x[i]) max=x[i];
return max;
A. 定义语句int i, max; 中max未赋初值
B. 赋值语句max=MIN;中,不应给max赋MIN值
C. 语句if(max<x[i]) max=x[i];中判断条件设置错误
D. 赋值语句max=MIN;放错了位置
[简答题][说明]
本程序包含的函数及其功能说明如下:
(1)函数first_insert( )的功能是在已知链表的首表元之前插入一个指定值的表元;
(2)函数reverse_copy( )的功能是按已知链表复制出一个新链表,但新链表的表元链接顺序与
已知链表的表元链接顺序相反;
(3)函数Print_link( )用来输出链表中各表元的值;
(4)函数free_link( )用来释放链表全部表元空间。
[程序]
#include <stdio. h >
#include <malloe. h >
typodef struct node
int val;
struct node * next;
NODE;
void first_insert(NODE * * p,int v)
NODE *q = (NODE *) malloe(sizeof(NODE));
q->val = v; q->next = *p; /* 为新表元赋值*/
* p = (1) ;
NODE * reverse_copy( NODE * p)
NODE * u;
for(u=NULL; p!=NULL; p=p->next) first_insert( (2) );
return u; void printlink(NODE * p )
for(; (3) ) prinff("%d/t", p->val);
printf(" /n");void free_link( NODE * p)
NODE * u;
while(p! =NULL) u=p->next;free(p); (4) ;
void main( ) NODE * link1 , * link2;
int i;
link1 = NULL;
for(i=1; i<= 10; i+ + )first_insert(&linkl, i);
link2 = reverse_copy(link1 );