1、国家二级( C语言)机试模拟试卷 210及答案与解析 一、程序填空题( 30分) 1 给定程序中,函数 fun的功能是计算下式 直到,并把计算结果作为函数值返回。 例如,若形参 e的值为 1e-3,函数的返回值 2 985678。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也不得更改程序的结构 !#include double fun(double e) int i, double s, x;*found* s=0; i= 【 1】; x=1 0; while(xe) *found* 【 2】
2、;*found* x=(2 0*i 1) ( 3 )*(2 0*i); s=s+x; return s; main() double e=le一 3; printf(“ nThe result is: fin“,fun(e); 二、程序修改题( 30分) 2 下列给定程序中,函数 proc()的功能是:删除字符串 str中所有空白字符 (包括Tab字符、 Enter符及换行符 )。输入字符串时以 “#”结束输入。 请修改程序中的错误,使它能得出正确的结果。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include #include
3、 void proc(char * p) int i, t; char c80; for(i=0, t=0; pi; i+) if(!isspace(*(p+i)ct+=pi; /*found* ct=“0“; strcpy(p, c); vOid main() char c, str80; int i=0; printf(“Input a string: “); c=getchar(); while(C!=#) stri=c; i+; c=getchar(); stri=0; proc(str); puts(str); 三、程序设计题( 40分) 3 学生的记录由学号和成绩组成。 N名学生的
4、数据已在主函数中放入结构体数组 s中,请编写函数 fun,它的功能是:把分数最低的学生数据放在 b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。 注意:部分源程序在文件 PROGl C文件中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include #define N 16 typedef struct char num10; int s; STREC; int fun(STREC * a, STREC * b) main() STREC sN=“GA05“, 85, “GA03“, 76, “GA02
5、“, 69, “GA04“, 85, “GA01“, 91, “GA07“, 72, “GA08“, 64, “GA06“, 87, “GA015“, 85, “GA013“, 91), “GA012“, 64, “GA014“, 91, “GA011“, 91, “GA017“, 64, “GA018“, 64, “GA016“, 72; STREC hN; int i, n; FILE * out; n=fun(s, h); printf(“The d lowest score: n“, n); for(i=0; iai s) j=0; bj+=ai; min=ai s; else if(min=ai s) bj+=ai; return j; 【试题解析】 (1)要把最低分数的学生数据放在数组中,首先求出最低分数,再使用一个 for循环把所有的成绩进行比较,找出最低的分数来。 (2)找出所有与最低分数相等的学生,并将最低分数的人数累加。