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

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

1、国家二级 C语言机试(操作题)模拟试卷 637及答案与解析 一、程序填空题 1 使用 VC+2010打开考生文件夹下 blank1中的解决方案。此解决方案的项目中包含一个源程序文件 blank1 c。在此程序中,函数 fun的功能是:找出 100x(x999)之间各位上的数字之和为 15的所有整数,并在屏幕输出;将符合条件的整数的个数作为函数值返回。 例如,当 n值为 500时,各位数字之和为 15的整数有: 159、 168、 177、 186、195、 249、 258、 267、 276、 285、 294、 339、 348、 357、 366、 375、 384、 393、429、

2、438、 447、 456、 465、 474、 483、 492,共有 26个。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h int fun(int x) int n, s1, s2, s3, t; *found* n=【 1】 ; t=100; *found* while(t =【 2】 ) (s1=t 10; s2=(t 10) 10; s3=t 100; if(s1+s2+s3=15) printf(“ d“, t); n+; *found*

3、【 3】 ; return n; main() int x=-1; while(x 999|x 0) printf(“Please input(0 x =999): “); Scanf(“ d“, &x); printf(“ nThe result is: d n“, fun(x); 二、程序修改题 2 使用 VC+2010打开考生文件夹下 modi1中的解决方案。此解决方案的项目中包含一个源程序文件 modi1 C。在此程序中,函数 fun()的功能是统计 s所指一维数组中 0的个数 (存在变量 zero中 )和 1的个数 (存在变量 one中 ),并输出结果。 请改正函数 fun中指定部位

4、的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include stdio h void fun(int*s, int n) *found* int i, one=0, zero; for(i=0; i n; i+) *found* switch(si); *found* case0: zero+; case1: one+; printf(“one: d zero: d n“, one, zero); main() int a20=l, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1,

5、0, 1, 0, 0,n=20; fun(a, n); 三、程序设计题 3 使用 VC+2010打开考生文件夹下 prog1中的解决方案。此解决方案的项目中包含一个源程序文件 prog1 c。在此程序中,编写函数 fun,其功能是:求出 11000之间能被 7或 11整除,但不能同时被 7和 11整除的所有整数,并将其放在 a所指的数组中,通过 n返回这些数的个数。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何 内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include stdlib h #include conio h #include s

6、tdio h void fun(int*a, int*n) void main() int aa1000, n, k; system(“CLS“); fun(aa, &n); for(k=0; k n; k+) if(k+1) 10=0) pr2ntf(“ 5d“, aak); printf(“ n“); *一行写 9个数 * else printf(“ 5d“, aak); 国家二级 C语言机试(操作题)模拟试卷 637答案与解析 一、程序填空题 1 【正确答案】 (1)0 (2)x (3)t+ 【试题解析】 填空 1:变量 n用于存放符合条件的整数的个数,应赋初值为 0。 填空 2:根据题

7、目要求,确定循环变量 t的取值范围为 t =x。 填空 3:循环变量 t自增 1操作。 二、程序修改题 2 【正确答案】 (1)int i, one=0, zero=0; (2)switch(si) (3)case0: zero+; break; 【试题解析】 (1)变量 zero用来统计数字 0的个数,应将其初始化为 0。 (2)语法错误, switch语句后不加分号。 (3)当数字为 0时,变量 zero加 1,此时应使用 break语句跳出 switch语句,进行下一次循环,否则会继续执行 case1语句,使程序不能得出正确结果。 三、程序设计题 3 【正确答案】 void fun(in

8、t*a, int*n) int i, j=0; for(i=1; i =1000; i+) *求 1到 1000之内能被 7或 11整除但不能同时被 7和 11整除的所有整数 ,并放入数组 a中 * if(i 7=0|i 11=0)&i 77!=0) aj+=i; *n=j; *传回满足条件的数的个数 * 【试题解析】 该题需要运用循环判断结构来实现,其中循环语句比较容易,只要确定循环变量的范围即可,下面来看判断语句。题目要求找出能被 7或 11整除,但不能同时被 7和 11整除的所有整数,能同时被 7和 11整除的整数一定能被 77整除,且不能被 77整除的数不一定就是能被 7或 11整除的数,因而,可得出程序中的 if语句。注意 (i 7=0|i 11=0)两边必须要有 小括号。

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

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

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