【计算机类职业资格】全国计算机等级考试二级C语言上机真题2013年3月及答案解析.doc

上传人:eveningprove235 文档编号:1329646 上传时间:2019-10-17 格式:DOC 页数:2 大小:36.50KB
下载 相关 举报
【计算机类职业资格】全国计算机等级考试二级C语言上机真题2013年3月及答案解析.doc_第1页
第1页 / 共2页
【计算机类职业资格】全国计算机等级考试二级C语言上机真题2013年3月及答案解析.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

1、全国计算机等级考试二级 C 语言上机真题 2013 年 3 月及答案解析(总分:3.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:1.00)1.下列给定程序中,函数 fun 的功能是:计算如下公式 直到 (分数:1.00)_二、程序修改题(总题数:1,分数:1.00)2.下列给定程序中函数 fun 的功能是:求出如下分数序列的前 n 项之和,和值通过函数值返回。 (分数:1.00)_三、程序设计题(总题数:1,分数:1.00)3.请编写函数 fun,其功能是:找出 2M 整型二维数组中最大元素的值,并将此值返回调用函数。 注意:部分源程序给出如下。 请勿改动主函数 main 和

2、其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 试题程序: #define M 4 #include stdio.h int fun(int aM) void main() int arr2M=5, 8, 3, 45, 76, -4, 12, 82; printf(”max=% d/n“, fun(arr); (分数:1.00)_全国计算机等级考试二级 C 语言上机真题 2013 年 3 月答案解析(总分:3.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:1.00)1.下列给定程序中,函数 fun 的功能是:计算如下公式 直到 (分数:1.00)_正确

3、答案:(1)3.0 或(double)3 (2) (3)(t+1)解析:考点 本题考查:基本算术运算的类型转换。其转换规则如下: 如果双目运算符两边运算数的类型一致,则所得结果的类型与运算数的类型一致。 如果双目运算符两边运算数的类型不一致,系统将自动进行类型转换,使运算符两边运算数的类型达到致后再进行运算。其类型转换规律见下表。 while循环语句,一般考查如何根据题意确定循环条件,以及如何通过循环变量的变化实现循环操作。 填空1:变量 x 定义为 double 类型,而运算符“/”后面是整型数,因此给 x 赋值时,需要注意数据类型,此处不能将 3.0 写成 3。 填空 2:while 循环

4、语句的循环条件。根据题意确定循环变量应大于 le-3,因此此处应填“”。 填空 3:表达式的通项是(2*i+1)/(2*i)2,由于程序中已定义 t=2*i,所以此处应该填写(t+1)。 本题填空 1 还可以运用强制类型转换来实现。强制类型转换是通过类型转换运算来实现的,其一般形式为“(类型说明符)(表达式)”。其功能是:把表达式的运算结果强制转换成类型说明符所表示的类型。 例如: (float) a 把 a 转换为实型 (int)(x+y) 把 x+y 的结果转换为整型二、程序修改题(总题数:1,分数:1.00)2.下列给定程序中函数 fun 的功能是:求出如下分数序列的前 n 项之和,和值

5、通过函数值返回。 (分数:1.00)_正确答案:( (1)double fun(int n) (2)s=s+(double)a/b;)解析:考点 本题考查:函数定义,函数定义的一般形式为“类型标识符函数名(形式参数表列)”,其中类型标识符用来说明函数值的类型,函数的类型实际上是函数返回值的类型。 (1)由语句“return(s); ”和变量 s 定义为 double 型可知,该函数定义时其类型标识符为 double 类型。 (2)注意数据类型double 的书写格式 确定函数类型标识符在填空和改错题中经常考到,如果函数没有返回值,则函数定义为 void 型;如果函数有返回值,则函数类型应与返回

6、值类型一致;如果不定义函数类型标识符,则系统默认为 int 型。三、程序设计题(总题数:1,分数:1.00)3.请编写函数 fun,其功能是:找出 2M 整型二维数组中最大元素的值,并将此值返回调用函数。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 试题程序: #define M 4 #include stdio.h int fun(int aM) void main() int arr2M=5, 8, 3, 45, 76, -4, 12, 82; printf(”max=% d/n“, fun(arr);

7、(分数:1.00)_正确答案:(int fun(int aM) int i, j, max=a00; /*对二维数组进行遍历*/ for(i=0; i2; i+) for(j=0; jM; j+) if(maxaij) /*将最大值保存在 max 中*/ max=aij; return max; )解析:考点 本题考查:求数组的最大值,需运用循环语句。因为数组是二维数值,所以应使用二层加for 循环嵌套。使用 for 循环语句时需注意循环变量的取值范围。 此类求最大值或最小值的问题,可以采用逐个比较的方式,对数组中所有元素遍历一遍,从中找出数组最大值或最小值。首先定义变量 max 用来存放数组的第一个元素的值,然后利用 for 循环逐个找出数组中的元素,并与 max 比较,如果元素值大于 max,则将该值赋予 max,循环结束后 max 的值即为数组最大值,最后将该值返回。 该类题目考查较多,需要掌握逐个比较的方法。对于 m*n 二维数组,如果采用逐个查找方法,代码实现如下: for(i=0; im; i+) for(j=0; jn; j+) if(ai, jmax) max=ai, j

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1