1、国家二级( C语言)机试模拟试卷 386 及答案与解析 一、程序填空题( 30分) 1 在主函数中,从键盘输入若干个数放入数组 x中,用 0结束输入但不计入数组。下列给定程序中,函数 fun()的功能是:输出数组元素中小于平均值的元素。请补充函数 fun()。 例如:数组中元素的值依次为 1, 2, 2, 12, 5, 15,则程序的运行结果为 1,2, 2, 5。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun()的横线上填入所编写的若干表达式或语句。 试题程序: #include conio h #include stdio h void fu
2、n( 【 】, int n) double sum=0.0; double average=0.0; int i=0; for(i=0; i n; i+) 【 】; average= 【 】; for(i=0; i n; i+) if(xi average) if(i%5=0) printf(“n“); printf(“%d/“, xi); main() int x1000; int i=0; clrscr(); printf(“nPlease enter some data(end with 0): “); do scanf(“%d“, fun(x, i-1); 二、程序修改题( 30分)
3、2 给定程序 MODll C中函数 fun的功能是:找出 100至 n(不大于 1000)之间三位数字相等的所有整数,把这些整数放在 s所指数组中,个数作为函数值返回。请改正函数 fun中指定部位的错误,使它能得出正确的结果。注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 三、程序设计题( 40分) 3 已知学生的记录由学号和学习成绩构成, N名学生的数据已存入 a结构体数组中。请编写函数 fun,函数的 功能是:找出成绩最低的学生记录,通过形参返回主函数 (规定只有一个最低分 )。 注意:部分源程序存在文件 PROGl C文件中。 请勿改动主函数 main和其他函数中
4、的任何内容。仅在函数 fun的花括号中填入你编写的若干语句。 #include #include #define N 10 typedef struct ss char num10; int s; STU; void fun(STU a, STU *s) main() STU aN=”A01”, 81, ”A02”, 89, ”A03”, 66, ”A04”, 87, ”A05”, 77, ”A06”, 90, ”A07”, 79, ”A08”, 61, ”A09”, 80, ”A10”, 71, m; int i; void NONO(); printf (”*The original data * n”); for(i=0; iai s) *7如果最低分 min 仍大于当前分 * j=i; *记住位置 * min=ai s; *把当前分赋值给 min* *s=aj; 【试题解析】 (1)首先指定第一个成绩为最低分数。 (2)再使用一个 for循环把所有的成绩进行比较,找出最低的分数来。