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

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

1、国家二级 C语言机试(操作题)模拟试卷 712及答案与解析 一、程序填空题 1 函数 fun的功能是:将形参 a所撸数组中的前半部分元素中的值和后半部分元素中的值对换。形参 n中存放数组中数据酌个数,若 n为奇数,则中间的元素不动。 例如:若 a所指数组中的数据依次为: 1、 2、 3、 4、 5、 6、 7、 8、 9,则调换后为 6、 7、 8、 9、 5、 1、 2、 3、 4。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。不得增行或删行,也 不得更改程序的结构 ! 1 #include stdio h 2

2、 #define N 9 3 void fun(int a, int r1) 4 int i, t, p; 5 *found* 6 p=(n 2=0)?n 2: n 2+_1_; 7 for(i=0; i n 2; i+) 8 9 t=ai; 10 *found* 11 ai=ap+_2_; 12 *found* 13 _3_=t; 14 15 16 main() 17 int bN=1, 2, 3, 4, 5, 6, 7, 8, 9, i; 18 printf( nThe original data: n); 19 for(i=0; i N; i+)printf( 4d, bi); 20 p

3、rintf( n); 21 fun(b, N); 22 printf( nThe data after moving: n); 23 for (i=0; i N; i+)printf( 4d, bi); 24 printf( n); 25 二、程序修改题 2 给定程序 MODI1 C中函数 fun的功能是:把主函数中输入的 3个数,最大的放在 a中,最小的放在 c中,中间的放在 b中。 例如,输入的数为: 55 12 34,输出结果应当是: a=55 0, b=34 0,c=12 0。 请改正程序中的错误,使它能得出正确结果。 注意:不要改动 main函数,不得增行或删行,也不得更 改程序的结

4、构。 1 #include stdio h 2 void fun(float *a, float *b, float*c) 3 4 *found* 5 float *k; 6 if(*a *b) 7 k=*a; *a=*b; *b=k; 8 *found* 9 if(*a *c) 10 k=*c; *c=*a; *a=k; 11 if(*b *c) 12 k=*b; *b=*c; *c=k; 13 14 main() 15 float a, b, c; 16 printf(Input a b c: );scanf( f f f, a, b, c); 17 printf(a= 4 1f, b=

5、4 1f, c= 4 1 f n n, a, b, c); 18 fun( a, b, 19 printf( n); 20 out=fopen(out clat, w); 21 fprintf(out, d n, n); 22 for(i=0; i n; i+) 23 fprintf(out, 4d n, hi s); 24 fclose(out); 25 国家二级 C语言机试(操作题)模拟试卷 712答案与解析 一、程序填空题 1 【正确答案】 (1)1 (2)i (3)ap+i 【试题解析】 函数 fun的功能是将形参 a所指数组中的前半部分元素中的值和后半部分元素中 的值对换。 第一空:

6、 “p=(n 2=0)?n 2: n 2+_1_; ”和 “ai=ap+_2_; ”“n2=0”判断是否是偶数, ai和 ap+_2_交换,如果 n是偶数, a0和 an 2交换,如果 n是奇数,那么 a0和 an 2+1交换,依此类推,故 n为偶数时 ai和ai+n 2交换, n为奇数时 ai和 ai+n 2+1交换。因此,如果 n是奇数的话, p应该等于 n 2+1,故第一空处应为 “1”。 第二空:由上分析可知, ai和 ai+p交 换,故第二空应为 “i”。 第三空: “t=ai; ai=ap+i; ”,故第三处应该是把 ai赋值给 ap+i, ai保存在 t中,故第三空应为 “ap+

7、i”。 二、程序修改题 2 【正确答案】 (1)float k; (2)if(*a *c) 【试题解析】 函数对三个数进行两两比较,实现判断。 (1)第一个标识下的变量 k是在比较过程中,临时存放数据的变量,因此 k不应是指针,所以将 “float*k; ”改为 “float k; ”。 (2)分析函数中第一个 if语句, 如果主函数中 a b,则对调,把大数放在 a中;分析第二个 if语句,如果主函数中的 a c,则进行对调,又把大数放在 c中,这样的逻辑显然是混乱的。因此,第二个标识下 “if(*a *c)”应该改为 “if(*a *c)”。 三、程序设计题 3 【正确答案】 1 int i, max=a0 s, n=0; 2 for(i=1; i N; i+) 3 if(max ai s)max=ai s; *找出最高成绩 * 4 for(i=0; i N; i+) 5 if(max=ai s)bn+=ai; *找相等的最高成绩并存入数组 b中 * 6 return n; *返回符合条件的人数 * 【试题解析】 程序功能是把分数最高的学生数据放在 h所指的数组中。 (1)要把最高分数的学生数据放在数组中,首先求出最高分数,再使用一个 for循环把所有的成绩进行比较,找出最高的分数来。 (2)找出所有与最高分数相等的学生,并将最高分数的人数累加。

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

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

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