1、国家二级 C语言机试(操作题)模拟试卷 217及答案与解析 一、程序填空题 1 下列给定程序中,函数 fun的功能是:找出 100 x(x999)之间各位上的数字之和为 15的所有整数,并在屏幕输出;将符合条件的整数的个数作为函数值返回。 例如,当 n值为 500时,各位数字之和为 15的整 数有: 159、 168、 177、 186、 195、 249、 258、 267、 276、 285、 294、 339、 348、357、 366、 375、 384、 393、 429、 438、 447、 456、 465、 474、 483、 492,共有 26个。 请在程序的下画线处填入正确
2、的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: 1 #include stdio h 2 int fun(int x) 3 int n, s1, s2, s3, t; 4 * found* 5 n=【 1】 ; 6 t=100; 7 * found* 8 while(t =【 2】 ) 9 s1=t 10; s2=(t 10) 10; 10 s3=t 100; 11 if(s1+s2+s3=15) 12 printf( d, t); 13 n+; 14 15 *found* 16 【 3】 ; 17 18 retu
3、rn n; 19 20 main() 21 int x=-1; 22 while(x 999 x6 6 7 23 18 5 8 21 45 38 第 2组数为: 5 7 23 中值为: 7替换后的数列为: 6 6 7 23 18 5 8 21 45 38 第 3组数为: 7 23 18中值为: 18替换后的数列为: 6 6 7 18 18 5 8 21 45 38 第 4组数为: 23 18 5中值为: 18替换后的数列为: 6 6 7 18 18 5 8 21 45 38 第 5组数为: 18 5 8 中值为: 8替换后的数列为: 6 6 7 18 8 8 21 45 38 第 6组数为:
4、5 8 21 中值为: 8替换后的数列为: 6 6 7 18 18 8 8 21 45 38 第 7组数为: 8 21 45 中值为: 21替换后的数 列为: 6 6 7 18 18 8 21 45 38 第 8组数为: 21 45 38 中值为: 38替换后的数列为: 6 6 7 18 18 8 8 21 38 38 最终结果为: 6 6 7 18 18 8 8 21 38 38 请改正程序中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: 1 #include stdio h 2 #define N 10 3 int
5、 findmid(int a, int b, int c) 4 int t; 5 t=(a b)? (b c? b: (a c? c: a): (a c)?a: (b c)?c: b); 6 *found* 7 return b; 8 9 void fun(int x) 10 int i, a, b, c, tN; 11 *found* 12 for(i=0; i N; i+)ti=xi 13 for (i=0; i N-2; i+) 14 a=ti; b=ti+1;c=ti+2; 15 *found* 16 ti+1=findmid(a, b, c); 17 18 19 main () 20
6、 int i, xN=6, 5, 7, 23, 18, 5, 8, 21, 45, 38; 21 for(i=0 ; i N; i+) 22 printf( d, xi); 23 printf( n); 24 fun(x); 25 for(i=0; i N ; i+) 26 printf( d, xi); 27 printf( n); 28 三、程序设计题 3 请编写函数 fun,其功能是:将一个数字字符串转换为一个整数 (不得调用 C语言提供的将字符串转换为整数的函数 )。例如,若输入字符串 “-1234”,则函数把它转换为整数值 -1234。 注意:部分源程序给出如下。 请勿改动主函数 m
7、ain和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: 1 #include stdio h 2 #include string h 3 long fun(char*p) 4 5 6 7 void main() 8 9 char s6; 10 long n; 11 printf(“Enter a string: n); 12 gets(s); 13 n=fun(s); 14 printf( 1 d n, n); 15 国家二级 C语言机试(操作题)模拟试卷 217答案与解析 一、程序填空题 1 【正确答案】 (1)0 (2)x (3)t+ 【试题解析】 填空 1:变量 n用于存放符合条件的整数的个数,应赋初值为 0。 填空 2:根据题目要求,确定循环变量 t的取值范围为 t,函数 atol的作用是将字符串转换成长整型数,它是一个库函数。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1