1、2018 年计算机等级考试二级 C 语言程序题练习 7 及答案解析(总分:100.00,做题时间:60 分钟)一、程序填空题(总题数:1,分数:30.00)给定程序中,函数 fun 的功能是:计算下式前 n 项的和作为函数值返回。 例如,当形参 n 的值为 10 时,函数返回-0.204491。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:源程序保存在考生文件夹下的 BLANK1C 中。不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30)(1).(分数:10)填空项 1:_(2).(分数:10)填空项 1:_(3).(分数:10)填空项 1:_二、
2、程序改错题(总题数:1,分数:30.00)给定程序 MODI1C 中函数 fun 的功能是:判断一个整数是否是素数,若是返回 1,否则返回 0。在 main函数中,若 fun 返回 1 输出 YES,若 fun 返回 0 输出 NO!。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数。不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30.00)_三、程序设计题(总题数:1,分数:40.00)请编写一个函数 fun,它的功能是找出一维整型数组元素中最大的值和它所在的下标,最大值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中 x 是数组名
3、,n 是 x 中的数据个数,max 存放最大值,index 存放最大值所在元素的下标。注意:部分源程序保存在文件 PROG1C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。给定源程序如下。(分数:40.00)_2018 年计算机等级考试二级 C 语言程序题练习 7 答案解析(总分:100.00,做题时间:60 分钟)一、程序填空题(总题数:1,分数:30.00)给定程序中,函数 fun 的功能是:计算下式前 n 项的和作为函数值返回。 例如,当形参 n 的值为 10 时,函数返回-0.204491。请在程序的下画线处填入正确的内容并把下
4、画线删除,使程序得出正确的结果。注意:源程序保存在考生文件夹下的 BLANK1C 中。不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30)(1).(分数:10)填空项 1:_ (正确答案:1)解析:由 fun 函数整体结构可以看出,k 的作用是赋值并累加各项前边的正负号,由于第一项是正的,因此赋给k 的值为 1。(2).(分数:10)填空项 1:_ (正确答案:2*i)解析:此空下一行的表达式 k*(2*i-1)*(2*i+1)/(t*t)为累加的通项,k 为正负号,由题目中的公式可知t=2*i。(3).(分数:10)填空项 1:_ (正确答案:(-1))解析:由于通项前边的正
5、负号每次都要发生变化,因此 k=k*(-1)。二、程序改错题(总题数:1,分数:30.00)给定程序 MODI1C 中函数 fun 的功能是:判断一个整数是否是素数,若是返回 1,否则返回 0。在 main函数中,若 fun 返回 1 输出 YES,若 fun 返回 0 输出 NO!。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数。不得增行或删行,也不得更改程序的结构!给定源程序如下。(分数:30.00)_正确答案:(1)k+;(2)if(m=k)解析:函数 fun 的功能是判断 m 是否为素数:m 从 2 开始作为除数,并对 m 取余,若不存在一个数使得余数为 0,
6、则 m 为素数,第一处程序错误是丢失分号,第二处程序错误在于 if(m=k)语句中的逻辑表达式写成了赋值语句。三、程序设计题(总题数:1,分数:40.00)请编写一个函数 fun,它的功能是找出一维整型数组元素中最大的值和它所在的下标,最大值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。主函数中 x 是数组名,n 是 x 中的数据个数,max 存放最大值,index 存放最大值所在元素的下标。注意:部分源程序保存在文件 PROG1C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。给定源程序如下。(分数:40.00)_正确答案:()解析:要查找最大值及其下标需要定义两个变量,该程序直接使用形参 max 和 d,由于它们都是指针变量,所以在引用它所指向的变量时要对它进行指针运算。循环语句用来遍历数组元素,条件语句用来判断该数组元素是否最大。