1、国家二级 C语言机试(操作题)模拟试卷 515及答案解析(总分:6.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:2.00)1.给定程序中,函数 fun的功能是:找出 100999之间(含 100和 999)所有整数中各位上数字之和为 x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。 例如,当 x值为 5时,100999之间各位上数字之和为 5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500。共有 15个。当 x、值为 27时,各位数字之和为 27的整数是:999。只有 1个。
2、 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1C 中。 不得增行或删行,也不得更改程序的结构! #include int fun(int x) int n, s1, s2, s3, t; n=0; t=100; /*found*/ while(t0)解析:解析:函数目的是取出长整型变量 s中偶数位上的数。(1)第一个标识下的形参 t被定义为一个long型变量,而对应的主函数中的实参却是一个地址值。因此,t 在函数定义中应该被定义为一个指针变量,即“void fun(long s,long t)”改为“void fun(l
3、ongs,long *t)”。(2)第二个标识下的 while循环控制表达式“s0”要求 s小于 0才进入循环。而 s的值总是大于 0,故将“while(s0)”。三、程序设计题(总题数:1,分数:2.00)3.学生的记录由学号和成绩组成,N 名学生的数据已在主函数中放入结构体数组 s中,请编写函数 fun,它的功能是:按分数的高低排列学生的记录,高分在前。 注意:部分源程序在文件 PROG1C 文件中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include #define N 16 typedef struct char num1
4、0; int s; STREC; void fun(STREC a) main () STREC sN=“GA005“,85, “GA003“,76,“GA002“,69, “GA004“,85,“GA001“,91, “GA007“,72,“GA008“,64, “GA006“,87, “GA015“, 85, “GA013“,91,“GA012“,64, “GA014“,91,“GA011“,66, “GA017“,64,GA018“,64, “GA016“,72; int i;FILE *out ; fun(s); printf(“The data after sorted:/n“); for(i=0;i