[计算机类试卷]国家二级C语言机试(操作题)模拟试卷672及答案与解析.doc

上传人:roleaisle130 文档编号:498648 上传时间:2018-11-29 格式:DOC 页数:5 大小:33KB
下载 相关 举报
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷672及答案与解析.doc_第1页
第1页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷672及答案与解析.doc_第2页
第2页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷672及答案与解析.doc_第3页
第3页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷672及答案与解析.doc_第4页
第4页 / 共5页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷672及答案与解析.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、国家二级 C语言机试(操作题)模拟试卷 672及答案与解析 一、程序填空题 1 使用 VC+2010打开考生文件夹下 blank1中的解决方案。此解决方案的项目中包含一个源程序文件 blank1 c。在此程序中,函数 fun的功能是:计算 NN矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。要求先累加主对角线元素中的值,再累加反向对角线元素中的值。 例如,若 N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 首先累加 1、 5、 9,然后累加 3、 5、 7,函数返回值为 30。 请在程序的下画线 处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如

2、下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h #define N4 fun(int tN, int n) int i, sum; *found* 【 1】 ; for(i=0; i n; i+) *found* sum+=【 2】 ; for(i=0; i n; i+) *found* sum+=tin-i-【 3】 ; return sum; main() int i, j, tN=21, 2, 13, 24, 25, 16, 47, 38, 29, 11, 32, 54, 42, 21, 3, 10; printf(“ nThe origin

3、al data: n“); for(i=0; i N; i+) for(j=0; j N; j+) printf(“ 4d“, tij); printf(“ n“); printf(“The result is: d“, fun(t, N); 二、程序修改题 2 使用 VC+2010打开考生文件夹下 modi1中的解决方案。此解决方案的项目中包含一个源程序文件 modi1 c。在此程序中,函数 fun的功能是:按以下递归公式求函数的值。 例如,当给 n输入 5时,函数值为18;当给 n输入 3时,函数值为 14。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main函数,不得增行或

4、删行,也不得更改程序的结构 !试题程序: #include stdio h *found* fun(n)int c;*found* if(n=1)c=10; elsec=fun(n-1)+2; return(c); main()int n; printf(“Enter n: “); scanf(“ d“, &n); printf(“The result: d n n“,fun(n); 三、程序设计题 3 使用 VC+2010打开考生文件夹下 prog1中的解决方案。此解决方案的项目中包含一个源程序文件 prog1 C。在此程序中,请编写函数 fun,其功能是:将 M行N列的二维数组中的数据,按

5、列的顺序依次放到一维数组中。一维数组中数据的个数存放在形参 n所指的存储单元中。 例如,若二维数组中的数据为 33 33 33 33 44 44 44 44 55 55 55 55 则一维数组中的内容应是: 33 44 55 33 44 55 33 44 55 33 44 55 注意 :部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include stdio h void fun(int(*s)10, int*b, int*n, int mm, int nn) main() int w1010=33, 33

6、, 33, 33, 44, 44, 44, 44, 55, 55, 55, 55, i,j; int a100=0), n=0; printf(“The matrix: n“); for(i=0; i 3; i+) for(j=0; j 4; j+) printf(“ 3d“, wij); printf(“ n“); fun(w, a, &n, 3, 4); printf(“The A array: n“); for(i=0; i n; i+) printf(“ 3d“, ai); 国家二级 C语言机试(操作题)模拟试卷 672答案与解析 一、程序填空题 1 【正确答案】 (1)sum=0 (

7、2)tii (3)1 【试题解析】 填空 1:变量 sum用来储存 “和 ”结果 ,所以将其初始化为 0。 填空 2:从题目中可以了解到,主对角线元素的行和列下标是相同的,所以应填入tii。 填空 3:对于反向对角线元素的行和列的下标,它们的关系是相加和为 n-1,所以应填入 1。 二、程序修改题 2 【正确答案】 (1)int fun(int n) (2)if(n=1) 【试题解析】 (1)定义有参函数时,形参变量要分别定义其类型,根据主函数中的调用函数可知,此处形参变量应定义为 int型。 (2)if条件判断表达式中, n=1是赋值表达式,表达式的值永远为真,不能形成判断条件 ,应将 n=

8、1改为 n=1。 三、程序设计题 3 【正确答案】 void fun(int(*s)10, int*b, int*n, int mm, int nn) int i, j; for(j=0; j nn; j+) *将二维数组中的数据按列的顺序依次放入一维数组中 * fOr(i=0, i mm, i+) b*n=*(*(s+i)+j); *n=*n+1; *通过指针返回元素个数 * 【试题解析】 题目要求实现将二维数组元素存入一维数组,需使用 for循环语句来控制二维数组元素的下标 ,同时使用指针变量配合操作。 可以用两个循环来处理问题,由于是按列的顺序取出,所以第 1个循环用于控制列下标,第 2个循环用于控制行下标。

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

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

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