1、二级 C 语言-277 及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是计算下式 直到 (分数:30.00)二、程序改错题(总题数:1,分数:30.00)2.给定程序中函数 fun 的功能是:求出以下分数序列的前 n 项之和。和值通过函数值返回到 main 函数。 (分数:30.00)三、程序设计题(总题数:1,分数:40.00)3.请编写一个函数 fun,它的功能是:求出一个 2M 整型二维数组中最大元素的值,并将此值返回调用函数。 请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的
2、花括号中填入你编写的若干语句。 给定源程序: #includestdio.h #defineM 4 int fun(int aM) main() int arr2M=5, 8, 3, 45, 76, -4, 12, 82; printf(“max=%d/n“, fun(arr); (分数:40.00)_二级 C 语言-277 答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是计算下式 直到 (分数:30.00)解析:(1)3.0 或(double)3 (2) (3)(t+1) 解析 填空 1:变量 x 定义为
3、 double 类型,而运算符“/“后面是整型数,所以给 x 赋值时,需要注意数据类型,此处不能将 3.0 写成 3。 填空 2:while 循环语句的循环条件,根据题意确定循环变量应大于 1e-3,因此此处应填“。 填空 3:表达式的通项是(2*i+1)/(2*i)2,由于程序中已定义 t=2*i,所以此处应该填写(t+1)。二、程序改错题(总题数:1,分数:30.00)2.给定程序中函数 fun 的功能是:求出以下分数序列的前 n 项之和。和值通过函数值返回到 main 函数。 (分数:30.00)解析:(1)double fun(int n) (2)s=s+(double)a/b; 解析
4、 (1)由语句“return(s)“和变量 s 定义为 double 数据类型可知,该函数定义时其类型标识符为 double 类型。 (2)注意数据类型 double 的书写格式。三、程序设计题(总题数:1,分数:40.00)3.请编写一个函数 fun,它的功能是:求出一个 2M 整型二维数组中最大元素的值,并将此值返回调用函数。 请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 给定源程序: #includestdio.h #defineM 4 int fun(int aM) main() int arr2M=5, 8, 3, 45, 76
5、, -4, 12, 82; printf(“max=%d/n“, fun(arr); (分数:40.00)_正确答案:()解析:int fun(int aM) int i, j, max=a00; for(i=0; i2; i+) for(j=0; jM; j+) if(maxaij) max=aij; return max; 解析 此类求最大值或最小值的问题,我们可以采用逐个比较的方式,要求对数组中所有元素遍历一遍,并且从中找出数组最大值或最小值。首先定义变量 max 存放数组中的第一个元素的值,然后利用 for循环逐个找出数组中的元素,并与 max 比较,如果元素值大于 max,则将该值赋于 max,循环结后 max 的值即为数组最大值,最后将该值返回。