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

上传人:arrownail386 文档编号:498325 上传时间:2018-11-28 格式:DOC 页数:6 大小:31.50KB
下载 相关 举报
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷381及答案与解析.doc_第1页
第1页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷381及答案与解析.doc_第2页
第2页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷381及答案与解析.doc_第3页
第3页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷381及答案与解析.doc_第4页
第4页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷381及答案与解析.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、国家二级 C语言机试(操作题)模拟试卷 381及答案与解析 一、程序填空题 1 给定程序中,函数 fun的功能是:有 NN矩阵,将矩阵的外围元素顺时针旋转。操作顺序是:首先将第一行元素的值存入临时数组 r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。 例如,若 N=3,有下列矩阵: 1 2 3 计算结果为 7 4 1 4 5 6 8 5 2 7 8 9 9 6 3 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。 不得增行或删行,也不得更改程序的结构 ! 1 #in

2、clude stdio h 2 #define N 4 3 void fun(int(*t)N) 4 int j, rN; 5 for(j=0; j N; j+)rj=t0j; 6 for(j=0; j N; j+) 7 *found* 8 t0N-j-1=tj_1_; 9 for(j=0; j N; j+) 10 tj0=tN-1j; 11 *found* 12 for(j=N-1; j =0; _2_) 13 tN-1N-1-j=tjN-1; 14 for(j=N-1; j =0; j-) 15 *found* 16 tjN-1=r_3_; 17 18 main() 19 int tN=2

3、1, 12, 13, 24, 25, 16, 47, 38, 29, 11, 32, 54, 42, 21,33, 10, i, j; 20 printf( nThe original array: n); 21 for(2=0; i N; i+) 22 for(j=0; j N; j+)printf( 2d”, tij); 23 printf( n); 24 25 fun(t); 26 printf( nThe result is: n); 27 for(i=0;i N; i+) 28 for(j=0; j N; j+)printf( 2d, tij); 29 printf( n); 30

4、31 二、程序修改题 2 给定程序 MODI1 C中函数 fun的功能是:输出 M行 M列整数方阵,然后求两条对角线上元素之和,返回此和数。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更 改程序的结构 ! 1 #include stdio h 2 #define M 5 3 *found* 4 int fun(int n, int xx) 5 int i, j, sum=0; 6 printf( nThe d x d matrix: n, M, M); 7 for(i=0 ; i M; i+) 8 for(j=0; j M; j+) 9 *

5、found* 10 printf( f, xxij); 11 printf( n); 12 13 for(i=0; i n; i+) 14 sum +=xxii+xxin-i-1; 15 return(sum); 16 17 main() 18 int aaMM=1, 2, 3, 4, 5, 4, 3, 2, 1, 0, 6, 7, 8, 9, 0,9, 8, 7, 6, 5, 3, 4, 5, 6, 7; 19 printf( nThe sum of all elements on 2 diagnals is d , fun(M, aa); 20 三、程序设计题 3 请编写一个函数 fun,

6、它的功能是:比较两个字符串的长度, (不得调用 C语言提供的求字符串长度的函数 ),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。 例如,输入 beijing CR shanghai CR ( CR为回车键 ),函数将返回shanghai。 注意:部分源程序存在文件 PROG1 C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 1 #include stdio h 2 char *fun(char *s, char *t) 3 4 5 main() 6 char a20, b20; 7 void NONO(); 8 pr

7、intf(Input: 1th string:); 9 gets(a); 10 printf(Input 2th string :); 11 gets(b); 12 printf( s n, fun(a, b); 13 NONO(); 14 15 void NONO() 16 *本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 * 17 FILE *fp, *wf; 18 int i; 19 char a20, b20; 20 fp=fopen(in dat, r); 21 wf=fopen(out dat, w); 22 for(i=0; i 10; i+) 23 fscanf(

8、fp, s s, a, b); 24 fprintf(wf, s n, fun(a, b); 25 26 fclose(fp); 28 fclose(wf); 国家二级 C语言机试(操作题)模拟试卷 381答案与解析 一、程序填空题 1 【正确答案】 (1)0 (2)j- (3)j 【试题解析】 第一空:由审题分析可知,此处是使第一列成为第一行,即把第一列元素移动到第一行,第一列元素是 “tj0”,第一行元素是 “t0N-j-1”,故第一空处应为 “0”。 第二空:第四个循环是最后一列成为最后一行,即将最后一列移动到最后一行, “for(j=N-1; j =0; _2_)”循环变量 i从 N-

9、1开始,到 0结束,共循环 N次,故 j每次减 1,第三空处是 “i-”。 第三空:最后一个循环将临时数组中的元素成为最后 1列,即 “t=iN-1=rj”,故第三空处应为 “j”。 二、程序修改题 2 【正确答案】 (1)int fun(int n, int xxM) (2)printf( 4d, xxij); 【试题解析】 函数的功能是求两条对角线上各元素之和。 (1)第一个标识下 fun函数的定义中对于二二维数组的定义在原题中并没有给出空间,所以将 “int fun(int n,int xx)”改为 “int fun(int n,int xxM)”。 (2)fun函数中 n是 int型,

10、 C语言输出语句中整型应该是 d,所以第二个标识下 “printf(f, xXij);”应该改为 “printf( 4d“, xxii); ”。 三、程序设计题 3 【正确答案】 1 int i; 2 char *p=s, *q=t; 3 int n=0, m=0; 4 while(*p)计算串 s的长度 n,其中 p为临时指针 5 n+; 6 p+; 7 8 while(*q)计算串 t的长度 m,其中 q为临时指针 9 m+; 10 q+; 11 12 if(n =m) 比较 m和 n的值,设置 p指向较大的指针 13 p=s; 14 else 15 p=t; 16 return p; 【试题解析】 进入 fun函数,根据前面的分析: (1)首先求得字符串的长度,设变量 n和 m分别用来求字符串的长度,初值设为0,把字符串中的字符逐个访问,每访问一个字符, n和 m分别加 1,直到字符串结束; (2)使用两个临时指针变量 p、 q分别作为访问字符串的变量; (3)根据 m和 n的值返回串,设置指针 p,指向返回串的开始地址。

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

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

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