1、二级 C 语言-250 及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是计算下式 直到 (分数:30.00)二、程序改错题(总题数:1,分数:30.00)2.给定程序 MODI1.C 中函数 fun 的功能是:求出以下分数序列的前 n 项之和。和值通过函数值返回到main 函数。 (分数:30.00)三、程序设计题(总题数:1,分数:40.00)3.请编写一个函数 fun,它的功能是:求出一个 2M 整型二维数组中最大元素的值,并将此值返回调用函数。 注意:部分源程序存在文件 PROG1.C 中。 请勿改
2、动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。 给定源程序如下。 #includestdio.h #define M 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 语言-250 答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是计算下式 直到 (分数:30.00)解析:3.0 或(double)3 (t+1)
3、解析 填空 1:变量 x 定义为 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.给定程序 MODI1.C 中函数 fun 的功能是:求出以下分数序列的前 n 项之和。和值通过函数值返回到main 函数。 (分数:30.00)解析:double fun(int n)
4、s=s+(double)a/b; 解析 由语句“return(s)”和变量 s 定义为 double 数据类型可知,该函数定义时其类型标识符为 double 类型。 注意数据类型 double 的书写格式。三、程序设计题(总题数:1,分数:40.00)3.请编写一个函数 fun,它的功能是:求出一个 2M 整型二维数组中最大元素的值,并将此值返回调用函数。 注意:部分源程序存在文件 PROG1.C 中。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入编写的若干语句。 给定源程序如下。 #includestdio.h #define M 4 int fun(i
5、nt aM) main() int arr2M=5,8,3,45,76,-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 的值即为数组最大值,最后将该值返回。