1、机试练习54150套含答案 第四十一套 请补充函数fun,该函数的功能是:判断一个数是否为素数。该数是素数时,函数返回字符串yes!,否则函数返回字符串no!,并在主函数中输出。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: #include #include #include 【1】 int I, m; m=1; for(I=【2】;I1) return(yes!); else return(no!); void main() int k=0; system(CLS); printf(Input:);
2、 scanf(%d,&k); printf(%sn,fun(k);【参考答案】 (1) char *fun(int n) (2) 2 (3) n%i=0或!(n%i) 下列给定程序中,函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。 请改正函数fun中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #
3、include #define SIZE 20 fun (double *s,double *w) int k,i; double sum; for(k=2,i=0;iSIZE;i+) si=k;k+=2; sum=0.0; for(k=0,i=0;iSIZE;i+) sum+=si; /*found*/ if(i+1%5=0) wk=sum/5; sum=0;k+; return k; void main() double aSIZE,bSIZE/5; int i, k; k=fun(a,b); printf(The original data:n); for(i=0;iSIZE;i+) i
4、f(i%5=0) printf(n); printf(%4.0f,ai); printf(nnThe result:n); for(i=0;ik;i+) printf(%6.2f,bi); printf(nn);【参考答案】 (1)错误:if(i+1%5=0) 正确:if(i+1)%5=0) 程序定义了的二维数组,并在主函数中自动赋值。请编写函数fun(int aN,intn),该函数的功能是:使数组左下半三角元素中的值乘以n。例如,若n的值为3,a数组中的值为: 则返回主程序后a数组中的值应为: 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中
5、填入所编写的若干语句。 试题程序: #include #include #include #define N 5 void fun(int a N, int n) main() int aNN,n, i,j; FILE *out; printf(* The array *n); for(i=0; iN; i+) for(j=0; jN; j+) aij=rand()%10; printf(%4d, aij); printf(n); n=rand()%10; printf(n=%4dn,n); fun(a, n); printf(*THE RESULT*n); for(i=0; iN; i+)
6、for (j=0; jN; j+) printf(%4d,aij); printf(n); /*/ out=fopen(out.dat,w); for(i=0;iN;i+) for(j=0;jN;j+) aij=i*j+1; fun(a,9); for(i=0;iN;i+) for(j=0;jN;j+) fprintf(out,%4d,aij); fprintf(out,n); fclose(out); /*/【参考答案】 fun(int aN,int n) int i,j; for(i=0;iN;i+) for(j=0;j=i;j+) aij=aij*n; 第四十二套 给定程序中,函数fun
7、的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。 例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:def3*5*adh3*kjsdf7*。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: #include void fun(char *s ) int i,j,n; for(i=0;si!=0;i+) if(si=0【1】sii;j-) sj+1=【3】; sj+1=*; i=i+1; main() char s60=ba3a54cd23a; printf(n the
8、original string is: %sn,s); fun(s); printf(nthe result is: %sn,s);【参考答案】 (1) & (2) 0 (3) sj或*(s+j) 下列给定程序中,函数fun的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include #include int fun( int m) int I,k; for (I=m+1; ;I+) for (k=2;kI;k+) /*found
9、*/ if (I%k!=0) break; /*found*/ if (kI) return(I); void main() int n; system(CLS); printf(nPlease enter n: ); scanf(%d,&n); printf (%dn,fun(n); 【参考答案】 (1)错误:if(i%k!=0) 正确:if(i%k=0) (2)错误:if(k=i) 请编写函数void fun (int x, int pp, int *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 例如,若x中的值为
10、30,则有4个数符合要求,它们是1、3、5、15。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include #include #include void fun (int x, int pp, int *n) void main () FILE *wf; int x,aa1000, n, i ; system(CLS); printf(nPlease enter an integer number : n ) ; scanf (%d, &x) ; fun (x, aa, &n) ; for (i=0
11、; in ; i+) printf (%d , aa i); printf (n ) ; /*/ wf=fopen(out.dat,w); fun (30, aa, &n) ; for (i=0 ; in ; i+) fprintf (wf,%d , aa i); fclose(wf); /*/【参考答案】 void fun (int x, int pp, int *n) int i,j=0; for(i=1;ix;i=i+2) /*i的初始值为1,步长为2,确保i为奇数*/ if(x%i=0) /*将能整除x的数存入数组pp中*/ ppj+=i; *n=j; /*传回满足条件的数的个数*/
12、第四十三套 请补充函数fun,该函数的功能是:依次取出字符串中所有的小写字母以形成新的字符串,并取代原字符串。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: #include #include #include void fun(char *s) int I=0; char *p=s; while(【1】) if(*p=a&*p=z) sI=*p; 【2】; p+; sI=【3】; void main() char str80; system(CLS); printf(nEnter a string:)
13、; gets(str); printf(nnThe string is :%sn,str); fun(str); printf(nnThe string of changing is:%sn,str);【参考答案】 (1)*p (2) i+或+i或i+=1或i=i+1 (3)0 下列给定程序中,函数fun的功能是:计算并输出high以内最大的10个素数之和。high由主函数传给函数fun。例如high的值为100,则函数的值为732。 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include
14、 #include #include int fun(int high) int sum=0,n=0, j, yes; while(high=2)&(n10) yes = 1; for(j=2; j=high/2; j+) /*found*/ if(high%j=0) yes=0; break if(yes) sum+=high; n+; high-; return sum; void main() system(CLS); printf(%dn,fun(100);【参考答案】 (1)错误:break 正确:break; 请编写一个函数fun,它的功能是:根据以下公式求的值(要求满足精度0.0
15、05,即某项小于0.005时停止迭代)。 /2=1+1/3+1*2/(3*5)+1*2*3/(3*5*7)+1*2*3*4/(3*5*7*9)+1*2*3*n/(3*5*7*(2n+1) 程序运行后,如果输入精度0.0005,则程序输出3.14。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include #include #include double fun(double eps) void main() double x; FILE *wf; printf(Input eps: ); scanf(%
16、lf,&x); printf(neps=%1f,PI=%1fn,x,fun(x); /*/ wf=fopen(out.dat,w); fprintf (wf,%lf,fun(0.0005); fclose(wf); /*/【参考答案】 double fun(double eps) double s=1.0,s1=1.0; int n=1; while(s1=eps) /*当某项大于精度要求时,继续求下一项*/ s1=s1*n/(2*n+1); /*求多项式的每一项*/ s=s+s1;/*求和*/ n+; return 2*s; 第四十四套 从键盘输入一组小写字母,保存在字符数组str中。请补充
17、函数fun,该函数的功能是:把字符数组str中字符下标为奇数的小写字母转换成对应的大写字母,结果仍保存在原数组中。 例如,输入acegikm,则输出aCeGiKm。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: #include #include #define N 80 void fun (char s) int I=0; while (【1】) if(I%2!=0) sI-=【2】; 【3】; void main() char strN; system(CLS); printf(n Input a
18、string:n); gets(str); printf(n* original string *n); puts(str); fun(str); printf(n* new string *n); puts(str);【参考答案】 (1) si!=0或si(2) 32或a-A (3) i+ 下列给定程序中,函数fun的功能是:计算整数n的阶乘。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include double fun(int n) double result=1.0; while(n1
19、&n170) /*found*/ result*=-n; /*found*/ return; void main() int n; system(CLS); printf(Enter an integer: ); scanf(%d,&n); printf(nn%d!=%1gnn ,n,fun(n);【参考答案】 (1)错误:result*=-n; 正确:result*=n-; (2)错误:return; 正确:return result; 请编写函数fun,该函数的功能是:计算n门课程的平均分,计算结果作为函数值返回。 例如,有5门课程的成绩是90.5,72,80,61.5,55,则函数的值为
20、71.80。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include float fun (float *a, int n) void main() FILE *wf; float score30=90.5,72,80,61.5,55,aver; aver=fun(score,5); printf(nAverage score is: %5.2fn,aver); /*/ wf=fopen(out.dat,w); fprintf(wf,%5.2f,aver); fclose(wf); /*/【参考答案】
21、 float fun (float *a, int n) float av=0.0; int i; for(i=0;in;i+) /*求分数的总和*/ av=av+ai; return (av/n);/*返回平均值*/ 第四十五套 函数fun的功能是:逆置数组元素中的值。形参n给出数组中数据的个数。 例如,若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后为:9、8、7、6、5、4、3、2、1。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。 试题程序: #include void fun(in
22、t a,int n) int I,t; for(I=0;I【1】;I+) t=aI; ai=an-1-【2】; 【3】=t; main() int b9=1,2,3,4,5,6,7,8,9,i; printf(nthe original data :n); for(i=0;i9; i+) printf(%4d,bi); printf(n); fun(b,9); printf(nthe data after inbert:n); for(i=0;i9;i+) printf(%4d,bi); printf(n);【参考答案】 (1) n/2 (2) i (3) an-i-1 下列给定程序中,函数f
23、un的功能是:应用递归算法求某数a的平方根。求平方根的迭代公式如下: 例如,2的平方根为1.414214。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include /*found*/ fun(double a,double x0) double x1,y; x1=(x0+a/x0)/2.0; /*found*/ if(fabs(x1-x0)0.00001) y=fun(a,x1); else y=x1; return y; void main() double x; printf(Enter x: ); scanf(%lf,&x); printf(The square root of %lf is %1fn,x, fun(x,1.0); 【参考答案】 (1)错误:fun(double a,double x0) 正确:double fun(double a,double x0) (2)错误:if(fabs(x1-x0)0.00001) 正确:if(fabs(x1-x0)=0.00001) 请编写函数fun,该函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间有若干个空格隔开,一
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1