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

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

1、国家二级 C语言机试(操作题)模拟试卷 180及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是:判定形参 a所指的 NN(规定 N为奇数 )的矩阵是否是 “幻方 ”,若是,函数返回值为 1;不是,函数返回值为 0。 “幻方 ”的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。 例如,以下 33的矩阵就是一个 “幻方 ”: 4 9 2 3 5 7 8 1 6 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的 结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或删行,也不得更改程序的结构 ! #include #define

2、N 3 inL fun(inL(*a)N) int i, j, m1, m2, row, colum; m1=m2=0 ; for(i=0; iN; i+) ( j=N-i-1; m1+=aii; m2+= aij; ) if(m1!=m2)reLurn 0 ; for(i=0; iN; i+) *found* row=colum=_1_; for(j=0 ; jN; j+) row+=aij; colum+=aj i; *found* if(row!=colum)_2_(row!=m1) Eeturn 0; *found* Eeturn _3_; main() int xNN, i, j;

3、prinLf(”Enter number for array: n“); for(i=0; iN; i+) for(j=0; jN; j+) scanf(“ d“, xij); printf(“Array: n“); for(i=0; iN; i+) for(j=0; jN; j+)printf(“ 3d“, xij); printf(“ n“); if(fun(x)printf(“The Array is a magic square n“); el se printf(“The Array isnt a magic square n“); 二、程序修改题 2 给定程序 MODIl C中函数

4、 fun的功能是:计算 S=f(-n)+f(一n+1)+f(0)+f(1)+f(2)+f(n) 的值。例如,当 n为 5时,函数值应为:10 407143。 f(x)函数定义如下: 请改正程序中的错误,使程序能输出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 !#include#include *found*f(double x) if(x=0 0 x=2 0) return 0 0; else if(x 三、程序设计题 3 程序定义了 NxN的二维数组,并在主函数中自动赋值。请编写函数 fun(int aN),函数的功能是:使数组左下三角元素中的值全部置成

5、 0。例如: a数组中的值为 注意:部分源程序存在文件 PROG1 C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include#include#define N 5void fun(int aN)NONO() *本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 * FILE *rf, *wf; int i, j, a55; rf=fopen(“in dat“, “r“); wf=fopen(“out dat“, “w“); for(i=0 ; i 国家 二级 C语言机试(操作题)模拟试卷 180答案与解析 一、程序填空

6、题 1 【正确答案】 (1)0 (2) (3)1 【试题解析】 第一空:由 “row+=aij; colum+=aji; ”可知 row是计算行和, colum是计算列和,故第一空处的初始化应将行和与列和初始化为 0,即第一空处应为 “0”。 第二空: “if(row!=colum)_2_(rowf=m1)return 0: ”如果行和不等于列和,那么矩阵不是幻方,如果行和不等对角线和,那么矩阵也不是幺 j方,即两者是或的关系,故第二空处应为 “” 第三空:不是幻方的情况在前面都会返回 0,所有不是幻方的情况都已经考虑到了,剩下的就是幻方,故第三空处为 “l”。 二、程序修改题 2 【正确答案

7、】 (1)double f(double x) (2)return s ; 【试题解析】 (1)第一个标识下 f函数的定义缺少返回值类型,所以将 “f(double x)”改为 “double f(double x)”。 (2)第二个标识下返回语句没有分号结束。所以,第二个标识下 “return s”应该改为 “return s: ”。 三、程序设计题 3 【正确答案】 int i, j; for(i=0 ; iN; i+) for(j=0; j=i ; j+) aij=0; 【试题解析】 进入 fun函数,根据前面的分析: (1)对二维数组常用双重循环结构来处理:外层循环控制二维数组的行处理,内层循环控制二维数组的列处理。 (2)左下半三角元素的下标特点是列下标小于或等于行下标,即 j=i。 (3)依次访问二维数组,把符合以上条件的元素的值赋 0。 该题是对矩阵操作的考查。

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

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

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