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

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

1、国家二级( C语言)机试模拟试卷 393及答案与解析 一、程序填空题( 30分) 1 给定程序中,函数 fun的功能是:对形参 s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符取出,存入形参 p所指字符数组中,形成一个新串。 例如,形参 s所指的字符串为: baawrslkjghzlicda,执行后 p所指字符数组中的字符串应为: aachjlsw。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKl C中。 不得增行或 删行,也不得更改程序的结构!二、程序修改题( 30分) 2 给定程序

2、MODll C中函数 fun的功能是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。请改正函数 fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构! 三、程序设计题( 40分) 3 学生的记录由学号和成绩组成, N名学生的数据已在主函数中放入结构体数组 s中,请编写函数 fun(),它的功能是:把指定分数范围之外的学生数据放在 b所指的 数组中,分数范围之外的学生人数由函数值返回。 例如,输入的分数是 80和 89,则应当把分数低于 80和高于 89的学生数据进行输出,不包含 80分和 8

3、9分的学生数据。主函数中把 80放在 low中,把 89放在heigh中。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。 试题程序 #include stdio h #define N 16 typedef struct char num10; int s; STREC; int fun(STREC *a, STREC *b, int 1, int h) main () STREC sN=“GA005”, 55, “GA003”, 96, “GA002”, 80, “GA004”, 68, “GA001”, 88,

4、 “GA007”, 74, “GA008”, 85, “GA006”, 99, “GA015”, 90, “GA013”, 53, “GA012”, 66, “GA014”, 82, “GA0ll”, 73, “GA017”, 69, “GA018”, 64, “GA016”, 86; STEC hN, tt; FILE *out; int i, j, n, low, heigh, t; printf(“Enter 2 integer number low i n; i+) printf(“%s%4dn“, hi num, hi s); /*输出指定分数范围内的学生记录 */ printf(“

5、n”); out=fopen(“out23 dat”, “w”); fprintf(out, “%dn”, n); n=fun(s, h, 70, 79); for(i=0; i n-1; i+) /*分数在 70 79之外的学生记录按分数从低到高排列 */ for(j=i+l; i n; j十 +) if(hi s hj s) tt=hi; hi=hj; hj=tt; for(i=0; i n; i+) fprintf(out, “%4dn”, hi s); fprintf(out, “n”); fclose(out); 国家二级( C语言)机试模拟试卷 393答案与解析 一、程序填空题(

6、30分) 1 【正确答案】 (1)t i (2)i (3)0或 “ 0” 【试题解析】 函数 fun的功能是对形参 s所指字符串中下标为奇数的字符按ASCII码大小递增排序,并将排序后下标为奇数的字符保存在另外一个数组中。在 fun函数里,采用选择排序法对奇数位置的字符进行排序,排序之后将这些字符保存在 p所指字符数组。 在选择排序法中的 升序排序中,首先从数组中挑选一个最小的元素,把它和第一元素交换,接着从剩下的 n-1个元素中再挑出一个最小的元素,把它和第二个元素交换,不断重复以上过程,直到比较完最后两个元素。 二、程序修改题( 30分) 2 【正确答案】 (1)y 1; (2)d a i

7、; 【试题解析】 本题中函数的功能是为一个偶数查找两个素数,这两个素数之和等于该偶数。其中,函数 fun用形参 a放偶数,指针 b和 c放两个素数。把一个偶数分解成 1和 (x-1)两个数是否是素数,再分解为 3和 (x-3)这两个数,判断是否是素数,依 此类推,直到找出这两个素数为止。本题中把偶数分解为 i和 d两个素数。判断 i是否是素数,如果 i不是素数,则 i 2再循环;如果 i是素数,则 d=x-i,然后判断 d是否是素数。 三、程序设计题( 40分) 3 【正确答案】 int fun (STREC *a, STREC *b, int l, int h) int i, j=0; for(i=0; i N; i+) if(ai s =0&ai s 1)|(ai s h&ai s =100) /*将各分数低于1,高于 h的学生记录存于结构体数组 b中 */ bj+=ai; return j; /*返回分数范围内的学生人数 */ 【试题解析】 处理此类分段统计问题,可采用多分支选择语句或条件选择语句。此处采用条件选择语句解答,具体见参考答案。使用条件选择语句进行分段统计时应当注意分段范围。

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

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

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