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

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

1、国家二级( C语言)机试模拟试卷 391及答案与解析 一、程序填空题( 30分) 1 给定程序中,函数 fun的功能是:利用指针数组对形参 ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。 ss所指字符串数组中共有 N个字符串,且串长小于 M。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANKl C中。不得增行或删行,也不得更改程序的结构!二、程序修改题( 30分) 2 下列给定程序中函数 fun()的功能是:从低位开始取出长整型 变量 s中偶数位上的数,依次构成一个新数放在 t中。例如,当 s中的数为 7654

2、321时, t中的数为642。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include stdio.h #include conio.h /*found*/ void fun(long s,long t) long s1=10; s/=10; *t=s%10; /*found*/ while(s 0) s=s/100; *t=s%10*s1+*t; s1=s1*10; main() long s, t; clrscr(); printf(“nPlease enter s: “); scanf (“%ld“,

3、 fun(s, printf(“The result is: %ldn “,t); 三、程序设计题( 40分) 3 请编写函数 fun(),其功能是:将所有大于 1小于整数 m的非素数存入 xx所指数组中,非素数的个数通过 k传回。 例如,输入 17,则应输出 4 6 8 9 10 12 14 15 16。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。 试题程序: #include conio.h #include stdio.h void fun(int m, int *k, int xx) main ( ) i

4、nt m, n, zz100; clrscr(); printf(“nPlease enter an integer number between 10 and 100: “); scanf(“%d“, fun(n, printf(“nnThere are %d non-prime numbers less than %d: “,m,n); for(n-0;n m;n+) printf(“n %4d“,zzn); 国家二级( C语言)机试模拟试卷 391答案与解析 一、程序填空题( 30分) 1 【正确答案】 (1)i (2)psj (3)tp 【试题解析】 本题中函数 fun的功能是利用指针

5、数组对形参 ss所指字符串数组中的字符串按由长到短的顺序排序,并输出排序结果。在 fun函数中采用了选择排序法,在选择排序法中的降序排序,首先从数组中挑选一个最大的元素,把它和第一元素交换,接着从剩下的 n-1个元素中再挑出一个最大的元素,把它和第二个元素交换,不断重复以上过程,直到比较完最后两个元素。 二、程序修改题( 30分) 2 【正确答案】 (1)错误: void fun(long s,long t) 正确: void fun(long s,long *t) (2) 错误: while(s 0) 正确: while(s 0) 【试题解析】 本题考查函数调用方式和 while循环语句中条

6、件限制的方法。主函数中 fun()的调用方式说明 fun()函数的参数应当为指针类型,所以 void fun(long s,long t)正确的写法应该是 void fun(long s,long *t)。 三、程序设计题( 40分) 3 【正确答案】 void fun(int m, int *k, int xx) int i,j,n=0; for (i=4; i m; i+) /*找出大于 1小于整数 m的非素数 */ for(j=2;j i;j+) ifi%j=0) break; if(j i) xxn+=i; *k=n; /*反回非素数的个数 */ 【试题解析】 这道题是考查一个数是不是素数的简单延伸,只要掌握了判断素数的方法,问题便能顺利解决,请学习者以此题为例,搞清判断素数的方法。

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

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

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