2019年计算机二级考试:《C语言》上机试题及答案三
填空题
请在函数FUN的横线上填写若干表达式,使从键盘上输入一个整数N,输出斐波纳契数列。斐波纳契数列是一种整数数列,其中每数等于前面两数之和,如:0 1 1 2 3 5 8 13…..
请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include
int fun(int n);
main()
int i, n = 0;
scanf(“%d”, &n);
for (i=0; i printf(“%d “, fun(i)); int fun(int n) if (___1___) return 0; else if (___2___) return 1; 第 1 页 else return ___3___; 第1处填空:n==0或0==n或!n 第2处填空:n==1或1==n 第3处填空:fun(n-1)+fun(n-2)或fun(n-2)+fun(n-1) 改错题 下列给定程序中,函数FUN的功能是:逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或相等的字符依次存放到c数组中,形成一个新的字符串。例如,若a中的字符串为aBCDeFgH,b中的字符串为:ABcd,则c中的字符串应为:aBcdeFgH。 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include #include void fun(char *p, char *q, char *c) /********found********/ int k = 1; /********found********/ while (*p != *q) if (*p < *q) 第 2 页 c[k] = *q; else c[k] = *p; if (*p) p++; if (*q) q++; k++; main() char a[10] = “aBCDeFgH”, b[10] = “ABcd”, c[80] = {’\\0’}; fun(a, b, c); printf(“The string a:“); puts(a); printf(”The string b:“); puts(b); printf(”The result:“); put s(c); 第1处:int k=1应改为int k=0; 第2处:while(*p!=*q)应改为while(*p||*q) 第 3 页 编程题 请编写函数fun,它的功能是:求出1到1000之内能被7或11整除、但不能同时被7或11整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。 注意:部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:#include #include void fun(int *a,int *n) main() int aa[1000],n,k; FILE *out; fun(aa,&n); out=fopen(”out.dat“, “w”); for(k=0;k if((k+1)==0) printf(“] “,aa[k]); fprintf(out, “%d “, aa[k]); else printf(”],“,aa[k]); 第 4 页 fprintf(out, “%d,”, aa[k]); fclose(out); 答案是: void fun(int *a,int *n) int i,j=0; for(i=2;i<1000;i++) if( (i%7==0||i==0)&&iw!=0) a[j++]=i; *n=j; 第 5 页
相关推荐: