计算机等级考试试卷(二级C)
一、程序阅读与填空(24小题,每小题3分,共72分)
1. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】
计算并输出下式的值,要求精确到最后一项的绝对值小于10-3(保留4位小数)。
111s1
4710运行示例: sum = 0.8361 【程序】 #include #include { int denominator = 1, flag = 1; double item, sum=0; ___(1)____ while(____(2)___){ ___(3)____ denominator =denominator + 3; flag = -flag; } printf(\"sum=___(4)____\\n\ sum); } 【供选择的答案】 (1) [A] item=0; [C] ; [B] item=0.0001 [D] item=2 [B] fabs(item)< 1E - 3 [D] fabs(item)< 0.001 (2) [A] fabs(item)>=1E - 3 [C] fabs(item)>= 0.0001 (3) [A]sum=sum +item; item=flag*1.0/denominator; [B] sum=sum + flag*1.0/denominator; [C] item=flag*1.0/denominator; sum=sum+item; [D] item=item+flag*1.0/denominator; (4) [A] %.0f [B]%.4f [C]%f [D] %4.f 2. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】输出1到100之间的所有完数。要求定义和调用函数is(n)判断n是否为完数,若n为完数则返回1,否则返回0。完数就是因子和与它本身相等的数,1不是完数。 运行示例: 6 28 【程序】 #include { int i; int is(int n); for(i=1; i<=100; i+1) if(___(5)____) printf(“ %d ”, i); } int is (int n) { int i, sum; __(6)___ sum = 0; for(i=1; i<=n/2; i++) if(___(7)____) sum=sum+i; if (__(8)__) return 1; else return 0; } 【供选择的答案】 (5) [A] is(i)= =0 [C] !is(n) [B] is(i) != 0 [D] is(n) [B] if(n!=1) return 0; [D] if(n= =1) return 1; [B] n%i! =0 [D] i%n!=0 [B]sum!=n [C]i>n/2 [D] sum= =n (6) [A] if(n!=1) return 1; [C] if(n= =1) return 0; (7) [A] n%i= =0 [C] i%n= =0 (8) [A] n= =0 3. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】计算并输入Fibonacci序列前10项之和。要求定义和调用函数fun(fib, n),该函数将Fibonacci序列前n项的值存放在一维数组fib中。Fibonacci序列:1,1,2,3,5,8,13,21,34,55,……,该序列的第一个数和第二个数都是1,从第三个数开始,每个数是前两个数之和。 运行示例: sum = 143 【程序】 #include { } int i; fib[0] = fib[1] = 1; for(i=2; i (9) [A] fun(int fib[],int n); [C] ; (10) [A] fun(fib, n); [C] fun(a,10); [B] void fun(int fib[], int n) [D] void fun(int fib[], int n); [B] fun(a[], 10); [D] fun(a[10], 10); (11) [A]fib[i] [B] a[i] [C] a[10] [D] fib[0] (12) [A] fib[i] = fib[i-1] + fib[i-2]; [B] fib[i-1] = fib[i-2] + fib[i-3]; [C] fib[i+1] = fib[i] + fib[i-1]; [D] fib[i] = fib[i-1] + fib[i+1]; 4. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序】 #include } int f2( ) { static int k=1, s; s = s+k; k++; return s ; } int f3 (int n ) { if (n = = 1) return 2; else return f3(n-1); } main() { int i; printf(“%d\\n”, f1(„C‟)); for (i=1; i<=3; i++) f2( ); printf(“%d\\n”, f2( )); printf(“%d\\n”, f3(4)); printf(“%d\\n”, S(3, 2+2)); } 【问题】 (13) 程序运行时,第1行输出 (13) [A]65 [C] 75 (14) 程序运行时,第2行输出 (14) [A]10 [C] 6 (15) 程序运行时,第3行输出 (15) [A]24 [B]2 [B] 0 [D] 95 [B] 1 [D]2 [C] 10 [D] 1 (16) 程序运行时,第4行输出 (16) [A] 3 [B]4 [C]5 [D] 1 5. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序】 程序1 #include } 程序2 #include { char str[10] = ”4Ae2E”; int i; for(i=0; str[i] !=‟\\0‟; i++) if (str[i]>=‟a‟ && str[i]<=‟z‟) putchar(str[i]); putchar(„\\n‟); for(i=0; str[i] !=‟\\0‟; i++) if (str[i]>=‟a‟ && str[i]<=‟z‟) putchar(str[i] - „a‟ + ‟A‟); else if (str[i]>=‟A‟ && str[i]<=‟Z‟) putchar(str[i] - „A‟ + ‟a‟); putchar(„\\n‟); } 【问题】 (17) 程序1运行时,第1行输出 (17) [A]0 [C] 8 (18) 程序1运行时,第2行输出 (18) [A]9 [C] 5 (19) 程序2运行时,第1行输出 (19) [A]AeE [B]a [B] 1 [D] 9 [B] 7 [D]1 [C] ae [D] e (20) 程序2运行时,第2行输出 (20) [A] 4Ae2E [B]42 [C]AeE [D] aEe 6. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序】 #include main( ) { int i , j; char str [10], *s[10]={“SQL”,”hello”,”bear”,”zone”}; gets (str); for (i=0; i<4; i++){ if (strcmp(str, s[i]) > 0) continue; j =3;. while ( j >= i){ s[j+1] = s[j]; j--; } s[i] = str; break; } if (i= =4) s[4]=str; for (i=0; i<5; i++) printf(“%s ”, s[i]); putchar(„\\n‟); } 【问题】 (21) 程序运行时,输入apple , 输出 (21) [A]SQL apple hello bear zone [B] apple SQL hello bear zone [C] SQL hello bear zone apple [D] SQL hello apple bear zone (22) 程序运行时,输入I , 输出 (22) [A]SQL hello bear I zone [B] I SQL hello bear zone [C] SQL I hello bear zone [D]SQL hello bear zone I (23) 程序运行时,输入zoo , 输出 (23) [A]zoo SQL hello bear zone [B] SQL hello bear zoo zone [C] SQL hello bear zone zoo [D] SQL hello zoo bear zone (24) 程序运行时,输入orange , 输出 (24) [A] SQL orange hello bear zone [B] SQL hello orange bear zone [C]orange SQL hello bear zone [D] SQL hello bear orange zone 二、程序编写(每小题14分,共28分) 1. 编写程序,输入100个整数,将它们存入数组a中,查找并输出数组a中的最小值。 2.按下面要求编写程序: (1)定义函数cal_power(x, n)计算x的n次幂(即xn),函数返回值类型是double. (2)定义函数main(),输入浮点数x和正整数n,计算并输出下列算式的值。要求调用函数cal_power(x, n)计算x的n次幂。 s111123n xxxxC模拟试卷29 参考答案 一、程序阅读与填空(24小题,每小题3分,共72分) 题号 (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) 答案 D A C B B C A D D C B A A A B B C C D D A B C D 二、程序编写(2小题,每小题14分,共28分) 1. #include int a[100],i; int min; for(i=0;i<100;i++) scanf(\"%d\ min=a[0]; for(i=1;i<100;i++) if(a[i] double cal_power(double x,int n) { double p = x; int i; for(i=1;i double x, s=0; int i,n; scanf(\"%f,%d\ for(i=1;i<=n;i++) s=s+1/cal_power(x,i); printf(\"%f\} 因篇幅问题不能全部显示,请点此查看更多更全内容