1、2018 年计算机等级考试二级 C 语言程序题练习 2 及答案解析(总分:100.00,做题时间:60 分钟)一、程序填空题(总题数:1,分数:30.00)给定程序中,函数 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 的整数是
2、 999。只有 1 个。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:源程序保存在考生文件夹下的 BLANK1C 中。 不得增行或删行,也不得更改程序的结构! 给定源程序如下。(分数:30)(1).(分数:10)填空项 1:_(2).(分数:10)填空项 1:_(3).(分数:10)填空项 1:_二、程序改错题(总题数:1,分数:30.00)给定程序 MODI1C 中函数 fun 的功能是从低位开始取出长整型变量 s 中偶数位上的数,依次构成一个新数放在 t 中。高位仍在高位,低位仍在低位。 例如,当 s 中的数为 7654321 时,t 中的数为 642。请改正
3、程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30.00)_三、程序设计题(总题数:1,分数:40.00)学生的记录由学号和成绩组成,N 名学生的数据已在主函数中放入结构体数组 s 中,请编写函数 fun,其功能是按分数的高低排列学生的记录,高分在前。注意:部分源程序保存在文件 PROG1C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。给定源程序如下。(分数:40.00)_2018 年计算机等级考试二级 C 语言程序题练习 2 答案解析(总分:100.0
4、0,做题时间:60 分钟)一、程序填空题(总题数:1,分数:30.00)给定程序中,函数 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 个。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正
5、确的结果。注意:源程序保存在考生文件夹下的 BLANK1C 中。 不得增行或删行,也不得更改程序的结构! 给定源程序如下。(分数:30)(1).(分数:10)填空项 1:_ (正确答案:999)解析:题目要求找出 100999 之间符合要求的数,所以 while 语句的循环条件是 t0)解析:函数的形参类型应与实参类型相同,主函数中函数 fun 的调用方式说明其参数应为指针类型,所以形参 t应定义为 long*t。while 循环的功能是每循环一次就从 s 中的数上取出一位进行运算,直到取完为止,所以循环条件为s0。三、程序设计题(总题数:1,分数:40.00)学生的记录由学号和成绩组成,N 名学生的数据已在主函数中放入结构体数组 s 中,请编写函数 fun,其功能是按分数的高低排列学生的记录,高分在前。注意:部分源程序保存在文件 PROG1C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。给定源程序如下。(分数:40.00)_正确答案:()解析:对 N 个数进行排序的算法很多,其中最简单的排序算法是冒泡算法。利用双层 for 循环嵌套和一个 if 判断语句来实现,外层循环用来控制需比较的轮数,内层循环用来控制两两比较。