1、全国计算机等级考试二级 C 语言操作真题题库 1+2015 年 3 月及答案解析(总分:30.00,做题时间:90 分钟)1.基本操作 函数 fun 的功能是:在有 n 个元素的结构体数组 std 中,查找有不及格科目的学生,找到后输出学生的学号;函数的返回值是有不及格科目的学生人数。例如,主函数中给出了 4 名学生的数据,则程序运行的结果为: 学号:N1002 学号:N1006 共有 2 位学生有不及格科目 请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的 结果。 注意:源程序存放在考生文件夹下的 BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #includ
2、e typedef struct char num8; double score2; /*found*/ _(1)_ ; int fun(STU std , int n) int i, k=0; for(i=0; i60_(2)_stdi.score1_2.简单应用 给定程序 MODI1.C 中,函数 fun 的功能是判断整数 n 是否是“完数”。当一个数的因子之和恰好等于这个数本身时,就称这个数为“完数”。例如:6 的因子包括 1、2、3,而 6=1+2+3,所以 6 是完数。如果是完数,函数返回值为 1,否则函数返回值为 0。数组 a 中存放的是找到的因子,变量 k 中存放的是因子的个数。
3、 请改正函数 fun 中指定部位的错误,使它能得出正确的结果。 注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构。 #include int fun(int n, int a, int *k) int m=0, i, t; t = n; /*found*/ for( i=0; i_3.综合应用 请编写函数 fun :在形参指针所指的 4 个整数中找出最大值和最小值,最大的放在 a 中,最小的放在 d 中。 注意:部分源程序存在 PROG1.C 中,请勿改动主函数 main 和其他函数中的任何 内容,仅在函数 fun 的花括号中填入所编写的若干语句。 #include void
4、 NONO(); void fun(int *a, int *b, int *c, int *d) main() int a, b, c, d; printf(“请输入 4 个整数: “); scanf(“%d%d%d%d“, printf(“原始顺序: %d,%d,%d,%d/n“, a, b, c, d); fun( printf(“处理后: %d,%d,%d,%d/n“, a, b, c, d); NONO(); void NONO() /* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *fp, *wf ; int i, a, b, c, d ; fp
5、= fopen(“in.dat“,“r“) ; wf = fopen(“out.dat“,“w“) ; for( i=0; i_全国计算机等级考试二级 C 语言操作真题题库 1+2015 年 3 月答案解析(总分:30.00,做题时间:90 分钟)1.基本操作 函数 fun 的功能是:在有 n 个元素的结构体数组 std 中,查找有不及格科目的学生,找到后输出学生的学号;函数的返回值是有不及格科目的学生人数。例如,主函数中给出了 4 名学生的数据,则程序运行的结果为: 学号:N1002 学号:N1006 共有 2 位学生有不及格科目 请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出
6、正确的 结果。 注意:源程序存放在考生文件夹下的 BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include typedef struct char num8; double score2; /*found*/ _(1)_ ; int fun(STU std , int n) int i, k=0; for(i=0; i60_(2)_stdi.score1_正确答案:(1) STU (2) | (3) k)解析:【考点分析】 主要考察对结构体的定义和使用,以及逻辑运算符的使用 【解题思路】 填空 1: STU 结构体别名,通过 main()中的语句可知 填空 2: | 只要
7、学生二门课成绩有不及格的,就算不及格,因此使用或运算 填空 3: k 返回的是不及格的学生个数,有题意可知 k 是累计个数的。2.简单应用 给定程序 MODI1.C 中,函数 fun 的功能是判断整数 n 是否是“完数”。当一个数的因子之和恰好等于这个数本身时,就称这个数为“完数”。例如:6 的因子包括 1、2、3,而 6=1+2+3,所以 6 是完数。如果是完数,函数返回值为 1,否则函数返回值为 0。数组 a 中存放的是找到的因子,变量 k 中存放的是因子的个数。 请改正函数 fun 中指定部位的错误,使它能得出正确的结果。 注意:不要改动main 函数,不得增行或删行,也不得更改程序的结
8、构。 #include int fun(int n, int a, int *k) int m=0, i, t; t = n; /*found*/ for( i=0; i_正确答案:(1)for( i=0; i解析:【考点分析】 主要考察 C 语言约定数组的下标是从 0 开始的,理解指针的指向和指针的区别,以及逻辑运算符的使用 【解题思路】 (1)for( i=0; i3.综合应用 请编写函数 fun :在形参指针所指的 4 个整数中找出最大值和最小值,最大的放在 a 中,最小的放在 d 中。 注意:部分源程序存在 PROG1.C 中,请勿改动主函数 main 和其他函数中的任何 内容,仅在函
9、数 fun 的花括号中填入所编写的若干语句。 #include void NONO(); void fun(int *a, int *b, int *c, int *d) main() int a, b, c, d; printf(“请输入 4 个整数: “); scanf(“%d%d%d%d“, printf(“原始顺序: %d,%d,%d,%d/n“, a, b, c, d); fun( printf(“处理后: %d,%d,%d,%d/n“, a, b, c, d); NONO(); void NONO() /* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FIL
10、E *fp, *wf ; int i, a, b, c, d ; fp = fopen(“in.dat“,“r“) ; wf = fopen(“out.dat“,“w“) ; for( i=0; i_正确答案:( int max,min;/临时存放最大值、最小值 max=min=*a;/初始化为*a if(max*b) min=*b; if(max*c) min=*c; if(max*d) min=*d; *d=min; *a=max;)解析:【考点分析】 主要考察考生对临时变量的初始化及使用,以及如何比较多个数的大小 【解题思路】通过初始化指定最大值,最小值,再使用当前的最值与剩下的值比较,若比最大值大,修改最大值;若比最小值小,修改最小值。