1、2018 年计算机等级考试二级 C 语言程序题练习 25 及答案解析(总分:100.00,做题时间:60 分钟)一、程序填空题(总题数:1,分数:30.00)给定程序中,函数 fun 的功能是判断形参 s 所指字符串是否是“回文“(Palindrome),若是,函数 返回值为 1 ;不是,函数返回值为 0。“回文”是指正读和反读都一样的字符串(不区分大小写字母)。例如,LEVEL 和 Level 是“回文”,而 LEVLEV 不是“回文”。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:源程序保存在考生文件夹下的 BLANK1. C 中。不得增行或删行,也不得更改程
2、序的结构!给定源程序如下。(分数:30)(1)(分数:10)填空项 1:_(2)(分数:10)填空项 1:_(3)(分数:10)填空项 1:_二、程序改错题(总题数:1,分数:30.00)给定程序 MODI1.C 中 fun 函数的功能是求出 以下分数序列的前 n 项之和。和值通过函数值返回 main 函数。例如,若 n=5,则应输出:8.391667。请改正程序中的错误,使它能出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30.00)_三、程序设计题(总题数:1,分数:40.00)请编写函数 fun,函数的功能是将大于形参 m 且
3、紧靠 m 的 k 个素数存入 xx 所指的数组中。函数 prime 判断一个数是否为素数,是返回 1,否则返 回 0。例如,若输入 17,5,则应输出 19,23,29,31,37。函数 fun 中给出的语句仅供参考。注意:部分源程序保存在文件 PROG1.C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干 语句。给定源程序如下。(分数:40.00)_2018 年计算机等级考试二级 C 语言程序题练习 25 答案解析(总分:100.00,做题时间:60 分钟)一、程序填空题(总题数:1,分数:30.00)给定程序中,函数 fun 的功能是判断形
4、参 s 所指字符串是否是“回文“(Palindrome),若是,函数 返回值为 1 ;不是,函数返回值为 0。“回文”是指正读和反读都一样的字符串(不区分大小写字母)。例如,LEVEL 和 Level 是“回文”,而 LEVLEV 不是“回文”。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:源程序保存在考生文件夹下的 BLANK1. C 中。不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30)(1)(分数:10)填空项 1:_ (正确答案:s)解析:根据函数 fun 中对变量 lp 和 rp 的使用 可知,lp 应指向形参 s 的起始地址,rp 指
5、向 s 的结 尾地址,所以应填 s。(2)(分数:10)填空项 1:_ (正确答案:-)解析:rp 是指向字符串的尾指针,每做一次 循环 rp 向前移动一个位置,所以应填-。(3)(分数:10)填空项 1:_ (正确答案:return 0)解析:当 lp 和 rp 相等时,表示字符串是回 文并返回 1,否则就返回 0,所以应填 return 0。二、程序改错题(总题数:1,分数:30.00)给定程序 MODI1.C 中 fun 函数的功能是求出 以下分数序列的前 n 项之和。和值通过函数值返回 main 函数。例如,若 n=5,则应输出:8.391667。请改正程序中的错误,使它能出正确的结果
6、。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30.00)_正确答案:((1 ) double fun(int n)(2 ) c=a;a+=b;b=c;)解析:(1) 由于返回值是 double 型的,所以函数要定 义为 double 型。(2) 将 c 赋值为 b,即 b=c,使之成为下一项的分母。三、程序设计题(总题数:1,分数:40.00)请编写函数 fun,函数的功能是将大于形参 m 且紧靠 m 的 k 个素数存入 xx 所指的数组中。函数 prime 判断一个数是否为素数,是返回 1,否则返 回 0。例如,若输入 17,5,则应输出 19,23,29,31,37。函数 fun 中给出的语句仅供参考。注意:部分源程序保存在文件 PROG1.C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干 语句。给定源程序如下。(分数:40.00)_正确答案:()解析:本程序使用循环语句控制需要判断的数,在循 环体中利用函数判断该数是否为素数,若是则存入数组 xx中。