1、国家二级( C语言)机试模拟试卷 244及答案与解析 一、程序填空题( 30分) 1 从键盘输入一组无符号整数并保存在数组 arrN中,以整数 0结束输入,即第N+1个数是 0,要求这些数的最大位数不超过 4位,其元素的个数通过变量 num传人函数 proc()。请补充函数 proc(),其功能是:从数组 arr中找出个位和十位的数字之和大于 5的所有无符号整数,结果保存在数组 yy中,其个数由函数 proe返回。 例如,当 arr8=1 3, 1, 205, 252, 2, 333, 4444, 21)时实际输入时,数与数之间用 Enter键分开, bb4=252, 333, 4444)。
2、注意:部分源程序给出如下。 请勿改动函数 main()和其他函数中的任何内容,仅在函数 proc()的横线上填入所编写的若干表达式或语句。 试题程序: #include #define M 1000 int proc(int arr, int bb, int num) int i, m=0; int g, s; for(i=0; i5) 【 2】 ; return 【 3】 ; void main() int arrM; int yyM; int num=0, m=0, i=0; printf(“Input number: n“); do scanf(“ u“, &arrnum); while
3、(arrnum+!=0); m=proc(arr, yy, num); printf(“ nyy=“); for(i=0; i long proc(int g) /*found* switch(g); case 0: return 0; /*found* case 1; case 2: return 1; return(proc(g 1)+proc(g 2); void main() long fib; int n; printf(“Input n: “); scanf(“ d“, &n); printf(“n= d n“, n); fib=proc(n); printf(“fib= d n
4、n“, fib); 三、程序设计题( 40分) 3 请编写函数 fun,其功能是:计算并输出 3到 n之间 (含 3和 n)所有素数的平方根之和。 例如,在主函数中从键盘给 n输入 100后,输出为: sum=148 874270。 注意:要求 13的值大于 2但不大于 100。 部分源程序在文件 PROGI C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include #include double fun(int n) NONO() *请在此函数内打开文件,输入测试数据, 调用 fun函数,输出数据,关闭文件。 * FILE*rf, *wf; int n, i; double s; rf=fopen(“in dat“, “r“); wf=fopen(“out dat“, “w“); for(i=0; i1),所以判别 i是否为素数,只要用 2、 3、 、 i-1这些数逐个去除 i,观察余数是否为 0即可,只要 有一次相除余数为 0, i就不是素数,否则 i为素数。 (2)在循环中找到每一个素数,然后对其求平方根,然后进行累加求和。