1、国家二级 C语言机试(操作题)模拟试卷 473及答案解析(总分:6.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:2.00)1.下列给定程序中,函数 fun的功能是:计算如下公式 直到 (分数:2.00)_二、程序修改题(总题数:1,分数:2.00)2.下列给定程序中,函数 fun的功能是:求出如下分数序列的前 n项之和,和值通过函数值返回。(分数:2.00)_三、程序设计题(总题数:1,分数:2.00)3.请编写函数 fun,其功能是:找出 2M整型二维数组中最大元素的值,并将此值返回调用函数。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在
2、函数 fun的花括号中填入你编写的若干语句。 试题程序:#define M 4#include stdioh int fun(int aM)void main() int arr2M=5,8,3,45,7 6,一 4,12,82; printf(“max=d/n“,fun (arr);(分数:2.00)_国家二级 C语言机试(操作题)模拟试卷 473答案解析(总分:6.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:2.00)1.下列给定程序中,函数 fun的功能是:计算如下公式 直到 (分数:2.00)_正确答案:(正确答案:(1)30 或( double)3 (2) (3)(
3、t+1)解析:解析:本题考查:基本算术运算的类型转换。其转换规则如下: 如果双目运算符两边运算数的类型一致,则所得结果的类型与运算数的类型一致。 如果双目运算符两边运算数的类型不一致,系统将自动进行类型转换,使运算符两边运算数的类型达到一致后,再进行运算。其类型转换规律见下表。二、程序修改题(总题数:1,分数:2.00)2.下列给定程序中,函数 fun的功能是:求出如下分数序列的前 n项之和,和值通过函数值返回。(分数:2.00)_正确答案:(正确答案:(1)double fun( int n) (2)s=s+(double) a/b;)解析:解析:本题考查:函数定义,函数定义的一般形式为 “
4、类型标识符函数名(形式参数表列)”,其中类型标识符用来说明函数值的类型,函数的类型实际上是函数返回值的类型。 (1)由语句“return(s);”和变量 s定义为 double型可知,该函数定义时其类型标识符为 double类型。 (2)注意数据类型double的书写格式。 确定函数类型标识符在填空和改错题中经常考到,如果函数没有返回值,则函数定义为 void型;如果函数有返回值,则函数类型应与返回值类型一致;如果不定义函数类型标识符,则系统默认为 int型。三、程序设计题(总题数:1,分数:2.00)3.请编写函数 fun,其功能是:找出 2M整型二维数组中最大元素的值,并将此值返回调用函数
5、。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序:#define M 4#include stdioh int fun(int aM)void main() int arr2M=5,8,3,45,7 6,一 4,12,82; printf(“max=d/n“,fun (arr);(分数:2.00)_正确答案:(正确答案:int fun (int aM) int i,j,max =a0l0; /*对二维数组进行遍历*/ for(i=0;i 2;i+) for(j=0;j M;j+) if (max aij)
6、 /*将最大值保存在 max中*/ max=aij; return max; )解析:解析:本题考查:求数组的最大值,需运用循环语句。 因为数组是二维数值,所以应使用二层加for循环嵌套。使用 for循环语句时需注意循环变量的取值范围。 此类求最大值或最小值的问题,可以采用逐个比较的方式,对数组中所有元素遍历一遍,从中找出数组最大值或最小值。首先定义变量 max用来存放数组的第一个元素的值,然后利用 for循环逐个找出数组中的元素,并与 max比较,如果元素值大于 max,则将该值赋予 max,循环结束后 max的值即为数组最大值,最后将该值返回。 该类题目考查较多,需要掌握逐个比较的方法。 对于 m*n=维数组,如果采用逐个查找方法,代码实现如下: for(i=0;i m;i+) for(j=0;j n;j+)