1、二级 C 语言机试-258 及答案解析(总分:100.00,做题时间:90 分钟)一、填空题(总题数:1,分数:30.00)1.下列给定程序中,函数 fun 的功能是计算如下公式:直到 (分数:30.00)_二、改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 fun 的功能是:求出如下分数序列的前 n 项之和,并将该值通过函数值返回。(分数:30.00)_三、编程题(总题数:1,分数:40.00)3.请编写函数 fun,其功能是:找出 2xM 整型二维数组中最大元素的值,并将此值返回调用函数。注意:部分源程序给出如下。请勿改动主函数 mam 和其他函数中的任何内容,仅在函数 f
2、un 的花括号中填入你编写的若干语句。试题程序:#define M 4#include stdio.hint fun (int aM)void main ()int arr2M=5, 8, 3, 45, 76, 4, 12, 82; printf(“max=% d/n“, fun(arr); (分数:40.00)_二级 C 语言机试-258 答案解析(总分:100.00,做题时间:90 分钟)一、填空题(总题数:1,分数:30.00)1.下列给定程序中,函数 fun 的功能是计算如下公式:直到 (分数:30.00)_正确答案:(0 或(double)3 (2) (3) (t+1)答案考生文件夹
3、)解析:解析 本题考查:基本算术运算时的类型转换,其转换规则为:如果双目运算符两边运算数的类型一致,则所得结果的类型与运算数的类型一致;如果双目运算符两边运算的类型不一致,系统将自动进行类型转换,使运算符两边的类型达到一致后,再进行运算规律如下。运算数 1,运算数 2,转换结果类型短整型,大整型,短整型 长整型整型,大整型,整型 长整型字符型,整型,字符型 整型有符号整型,无符号整型,有符号整型 无符号整型整型,浮点型,整型 浮点型 while 循环语句,一般考查如何根据题意确定循环条件,以及如何通过循环变量变化实现循环操作。解题思路 填空 1:变量 x 定义为 double 类型,而运算符“
4、/“后面是整型数,所以给 x 赋值时,需要注意数据类型,此处不能将 3.0 写成 3。填空 2:while 循环语句的循环条件,根据题意确定循环变量应大于 1e-3,因此此处应填“。填空 3:表达式的通项是(2解题宝典本题填空 1 还可以运用强制类型转换来实现。强制类型转换是通过类型转换运算来实现的。其一般形式为:“(类型说明符) (表达式)“。其功能是:把表达式的运算结果强制转换成类型说明符所表示的类型。例如:(float) a 把 a 转换为实型(int)(x+y) 把 x+y 的结果转换为整型二、改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 fun 的功能是:求出如下分
5、数序列的前 n 项之和,并将该值通过函数值返回。(分数:30.00)_正确答案:(double fun(int n)(2) s=s+(double)a/b;答案考生文件夹)解析:解析 本题考查:函数定义,函数定义的一般形式为:“类型标识符 函数名(形式参数表列)“,其中类型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类型。解题思路 (1) 由语句“return(s)“和变量 s 定义为 double 数据类型可知,该函数定义时其类型标识符为 double 类型。(2)注意数据类型 double 的书写格式。解题宝典 确定函数类型标识符在填空和改错题中经常考到,如果函数没有返回值,则
6、函数定义为 void型;如果函数有返回值,则函数类型应与返回值类型一致;如果不定义函数类型标识符,则系统默认为int 型。三、编程题(总题数:1,分数:40.00)3.请编写函数 fun,其功能是:找出 2xM 整型二维数组中最大元素的值,并将此值返回调用函数。注意:部分源程序给出如下。请勿改动主函数 mam 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。试题程序:#define M 4#include stdio.hint fun (int aM)void main ()int arr2M=5, 8, 3, 45, 76, 4, 12, 82; printf(“m
7、ax=% 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;答案考生文件夹)解析:解析 题且要求数组的最大值,需要运用循环语句,因为数组是二维数值,所以应使用二层加for 循环嵌套。使用 for 循环语句时需要注意循环变量的取值范围。解题思路 此类求最大值或最小值的问题,我们可以采用逐个比较的方式,要求对数组中所有元素遍历一遍,并且从中找出数组最大值或最小值。首先定义变量 max 存放数组中的第一个元素的值,然后利用for 循环逐个找出数组中的元素,并与 max 比较,如果元素值大于 max,则将该值赋于 max,循环结后 max的值即为数组最大值,最后将该值返回。解题宝典 该类题目考查较多,要掌握逐行比较的方法。对于 m*n 二维数组,如采用逐行查找方法,代码实现为:for(i=0; im; i+)for(j=0; jn; j+)