2009年秋浙江省高等学校
计算机等级考试试卷(二级C)
一、程序阅读与填空(24小题,每小题3分,共72分)
1. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】
计算并输出下式的值,要求精确到最后一项的绝对值小于10-3(保留4位小数)。
s?1?111???? 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);
}
【供选择的答案】
(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 [B] 0 [C] 75 [D] 95 (14) 程序运行时,第2行输出 (14) [A]10 [B] 1 [C] 6 [D]2 (15) 程序运行时,第3行输出 (15) [A]24 [B]2 [C] 10 (16) 程序运行时,第4行输出 (16) [A] 3 [B]4 [C]5 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?); [D] 1 [D] 1
相关推荐: