1、国家二级 C语言机试(操作题)模拟试卷 235及答案与解析 一、程序填空题 1 下列给定程序中,函数 fun的功能是:将自然数 1 10及其平方根写到名为myfile3 txt的文本文件中,然后再顺序读出显示在屏幕上。 请在程序下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: 1 #include math h 2 #include stdio h 3 int fun (char*fname) 4 (FILE*fp; int i , n; float x; 5 if(fp=fopen(fname, w
2、)=NULL) 6 return 0; 7 for(i=1; i =10; i+) 8 * found* 9 fprintf(【 1】 , d f n, i, sqrt(double)i); 10 printf( nSucceed! n); 11 *found* 12 【 2】 ; 13 printf(“ nThe data in file: n); 14 *found* 15 if(fp=fopen(【 3】 , r)=NULL) 16 return 0; 17 fscanf(fp, d f, n, x); 18 while(!feof(fp) 19 printf( d f n, n, x)
3、; 20 fscanf(fp, d f, n, 26 fun(fname); 27 二、程序修改题 2 给定程序 MODI1 C中,函数 fun()的功能是统计 s所指一维数组中 0的个数 (存在变量 zero中 )和 1的个数 (存在变量 one中 ),并输出结果。 请改正函数 fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构。 试题程序: 1 #include stdio h 2 void fun(int*s, int n) 3 4 *found* 5 int i, one=0, zero; 6 for(i=0; i2)。
4、例如,若输入 9 9 8 5 7 6 8 5 9 3 9 5 8 9 7 8 8 6 8 4十个得分,则输出结果为: 8 687500。 注意:部分源程序存在 PROG1 C中,请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。 试题程序: 1 #include stdio h 2 void NONO(); 3 double fun(double a, int n) 4 5 6 7 main() 8 double b10, r; int i; 9 printf(输入 10个分数放入 b数组中: ); 10 for(i=0; iai)min=ai; 10 11 sum=sum-max-min; 12 return(sum (n-2); 13 【试题解析】 设定三个变量 sum存放合值, max存放最大值, min存放最小值。 max和 min都赋为数组中第一个元素的值。利用循环将数组中元素 累加到sum中,并找出最大值和最小值, sum值减去最大值和最小值。函数返回 sum除以元素个数一 2得平均值。