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

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

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

2、e N 3 int fun(int(*a)N) int i , j , m1 , m2 , row , colum; m1=m2=0; for(i=0; i【 1】 ; for(j=0; j N; j+) row+=aij; colum += a j i ; /*found*/ if (row! =colum) 【 2】 (row! =m1) return 0; /*found*/ return【 3】 ; main() int xN N,i,j ; printf ( “ Enter number for arrav: n”); for(i=0; i N; i+) for(j=0; j N;

3、j+) scanf(“ d“,&xij); printf ( “Array: n“) for(i=0 j i N; i+) for(j=0; j N; j+) printf (“ 3d“,x i j ); printf (“n“) ; if (fun (x) printf ( “ The Array is a magic square n“); else printf (“The Array isnt a magic square n“) ; 二、程序修改题 2 下列给定程序中,函数 fun的功能是:传入一个整数 m,计算如下公式的值。例如,若输入 5,则应输出一 0 283333。 请改正程

4、序中的错误,使它能得出正确的结果。 注意:部分源程序在文件 MODI1 C中,不要改动maln函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdlib h #include conio h #include stdio h double fun (int m) double t=1 0; int i; for (1 =2; i =mf i+)/*found*/ t =1 0 一 1/1;/*found*/ ; void main ()int m; system (“CLS“) ; printf ( “ nPlease enter l integer numbe

5、rs:n“) ; printf (“nnThe result is lfn“, 三、程序设计题 3 请编写一个函数,用来删除字符串中的所有空格。 例如,输入 asd af aa z67,则输出为 asdafaaz67。 注意:部分源程序在文件 PROG1 C中。 请勿改动主函数 maln和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include stdio h #include ctvpe h #include conio h #include stdlib h void fun (char*str) main () char str81 ; cha

6、r Msg = “Input a string:“; int n: FILE * out; printf (Msg) ; gets (str) ; puts (str) : fun (str) ; printf (“ * str: sn“,str) ; /*/ out = fopen (“out dat“, “w“) ; fun (Msg) ; fprintf (out, “ s“,Msg) ; fclose (out) ; /*/ 国家二级 C语言机试(操作题)模拟试卷 422答案与解析 一、程序填空题 1 【正确答案】 (1)0 (2)| (3)1 【试题解析】 填空 1:本题考查为变量赋

7、初值,在这里 row+=aij代表是每行的总和, colum+=aj i代表的是每 列的总和,因而 row, colum在初始化时应该为零,此空应该填 0。 填空 2:本题考查了 if条件语句,此句 if判断代表每行的总和与列是否相等,每行的总和是否与对角线的总和相等,两者若有一个不成立,即返回 0,因而此空应该填写 |。 填空 3:题目要求若矩阵是 “幻方 ”,则函数返回值为 1,因而此空应该填写 1。 二、程序修改题 2 【正确答案】 (1)t一 =1 0/i; (2)return t; 【试题解析】 (1)变量 t存放公式的和,通过循环语句进行复合运算,因此此处应改为 t 一 =1 0/1;,注意此处应 进行变量的类型转换。 (2)循环结束后应将和值返回给主函数。 三、程序设计题 3 【正确答案】 void fun (char*str) int i=0; char *p=str; while(*p) if( *p!=) /*删除空格 */ stri+=*p; p+; stri=0; /*加上结束符 */ 【试题解析】 本题要求删除所有空格,即保留除了空格以外的其他所有字符。由于 C语言中没有直接删除字符的操作,所以对不需要删除的字符采用 “保留 ”的操作。用指针 p指向字符串中的每一个字符,每指向到一个字符都判断其是否为空格,若不是空格则保存到 stri。

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

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

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