浙江省二级C语言笔试真题(2007-2010年)
更新时间:2024-06-22 00:02:01 阅读量: 综合文库 文档下载
2010年春浙江省高等学校
计算机等级考试试卷(二级C)
一、程序阅读与填空(24小题,每小题3分,共72分)
1. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
输入一个整数,求它的各位数字之和及位数。例如,17的各位数字之和是8,位数是2。 运行示例:
Enter an integer:-153
sum = 8, count = 3 【程序】
#include
int count = 0, in, sum = 0; printf(\ scanf(\ if( D ) in = -in; do{
sum = sum + (2) C ; (3)C ; count++;
}while( (4)B );
printf(\}
【供选择的答案】 (1) A、in == 0 B、in > 0
C、in != 0 D、in < 0 (2) A、in /10 B、in mod 10
C、in % 10 D、in (3) A、in = in % 10 B、in /10
C、in = in /10 D、in % 10 (4) A、in % 10 != 0 B、in != 0
C、!in D、in / 10 != 0
2. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
输出50到70之间的所有素数。要求定义和调用函数isprime(m)判断m是否为素数,若m为素数则返回1,否则返回0。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。
运行示例: 53 59 61 67 【程序】
#include
1
#include
{ int i; int isprime(int m); for(i = 50; i <= 70; i++) if( (5) B )
printf(\}
int isprime(int m) {
int i, k; (6)B
k = (int)sqrt((double)m); for(i = 2; i <= k; i++)
if(m % i == 0) (7) A ; (8)A ; }
【供选择的答案】 (5) A、isprime (m) != 0 B、isprime (i) != 0
C、isprime (m) == 0 D、isprime (i) == 0 (6) A、if(m != 1) return 1; B、if(m == 1) return 0;
C、; D、if(m == 1) return 1; (7) A、return 0 B、return 1
C、return i <= k D、return (8) A、return 1 B、return 0
C、return D、return i <= k
3. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
输入6个整数,找出其中最小的数,将它和最后一个数交换,然后输出这6个数。要求定义和调用函数swap(x, y),该函数交换指针x和y所指向单元的内容。
运行示例:
Enter 6 integers: 6 1 8 2 10 97 After swaped: 6 97 8 2 10 1 【程序】
void swap(int *x, int *y) { int t; (9) ; }
main()
{ int i, index, a[10]; for(i = 0; i < 6; i++) scanf(\ (10) ;
for(i = 1; i < 6; i++) if(a[index] > a[i]) (11) ; (12) ;
printf(\ for(i = 0; i < 6; i++) printf(\
2
printf(\}
【供选择的答案】 (9) A、t = *x, *x = *y, *y = t
B、t = x, x = y, y = t
C、*t = *x, *x = *y, *y = *t D、&t = x, x = y, y = &t
(10)A、index = 0 B、index = 5 C、index = index D、index = 1 (11)A、a[index] = a[i] B、i = index C、a[i] = a[index] D、index = i (12)A、swap(a[index], a[5]) B、swap(*a[index], *a[5]) C、swap(a[*index], a[*5]) D、swap(&a[index], &a[5])
4. 阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序】
#include
#define T(c) (((c) >= '0') && ((c) <= '9') ? (c) - '0' : -1) void f1(char ch) {
switch(ch){
case '0': printf(\ case '1': printf(\
case '2': printf(\ case '3': printf(\ default: printf(\ }
printf(\}
double f2() {
return (double)(5/2); }
double f3(int n) {
if(n == 1) return 1.0;
else return 1.0 + 1.0/f3(n-1); }
main() {
printf(\ f1('1');
printf(\ printf(\} 【问题】
(13) 程序运行时,第1行输出 (13) 。
3
A、7 -1 B、-1 7 C、7 a (14) 程序运行时,第2行输出 (14) 。
A、1239 B、12 C、1 (15) 程序运行时,第3行输出 (15) 。
A、2.5 B、2 C、2.0 (16) 程序运行时,第4行输出 (16) 。 A、1.000 B、2.000 C、1.500
D、-1 -1 D、9 D、3
D、1.667
5. 阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序】
程序1
#include
int i, j, t, a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; for(i = 0; i < 3; i++)
for(j = 0; j <= i/2; j++){
t = a[i][j], a[i][j] = a[i][3-j], a[i][3-j] = t; }
printf(\ printf(\}
程序2
#include
char str[10] = \ int i, number = 0;
for(i = 0; str[i] != '\\0'; i++)
if(str[i] >= '0' && str[i] <= '7')
number = number * 8 + str[i] - '0'; printf(\
for(i = 0; str[i] != '\\0'; i++)
if(str[i] >= '0' && str[i] <= '5')
number = number * 6 + str[i] -'0'; printf(\} 【问题】
(17) 程序1运行时,第1行输出 (17) 。
A、3 B、4 C、1 D、2 (18) 程序1运行时,第2行输出 (18) 。 A、12 B、11 C、10 D、9 (19) 程序2运行时,第1行输出 (19) 。 A、2 B、27 C、23 D、16 (20) 程序2运行时,第2行输出 (20) 。
A、19 B、140 C、147 D、2
6阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序】
4
#include
int i, j;
char ch, *p1, *p2, *s[4]={\ for(i = 0; i < 4; i++){ p1 = p2 = s[i]; ch = *(p1 + i);
while(*p1 != '\\0'){ if(*p1 != ch){ *p2 = *p1; p2++; }
p1++; }
*p2 = '\\0'; }
for(i = 0; i < 4; i++) printf(\} 【问题】
(21) 程序运行时,第1行输出 (21) 。
A、our B、four C、fur D、fou (22) 程序运行时,第2行输出 (22) 。
A、ello B、hllo C、heo D、hell (23) 程序运行时,第3行输出 (23) 。
A、peak B、eak C、pek D、pak (24) 程序运行时,第4行输出 (24) 。
A、pple B、apple C、ale D、appe
二、程序编写 (每小题14分,共28分)
1.编写程序,输入100个整数,将他们存入数组a,求数组a中所有奇数之和。
2.按下面要求编写程序:
(1)定义函数total(n)计算1?2?3????n,函数返回值类型是int。
(2)定义函数main(),输入正整数n,计算并输出下列算式的值。要求调用函数total(n)计算1?2?3????n。 s?1?11?2?11?2?3????11?2?3???n
计算机等级考试参考答案(二级C)
一、程序阅读与填空(24小题,每小题3分,共72分) ⑴ D ⑵ C ⑶ C ⑷ B ⑸ B ⑹ B ⑺ A ⑻ A ⑼ A ⑽ A ⑾ D ⑿ D ⒀ A ⒁ B ⒂ C ⒃ D ⒄ D ⒅ C ⒆ C ⒇ B (21)A (22)B (23)C (24)D 二、程序编写(每小题14分,共28分)
5
1.
#include
int a[100], i, s=0;
for(i = 0; i < 100; i++) {
scanf(\ if(a[i] % 2 == 1) s = s + a[i]; }
printf(\} 2.
#include
int i, s = 0;
for(i = 1; i <= n; i++) s = s + i; return s; }
void main() {
int i, n; float s = 0;
scanf(\
for(i = 1; i <= n; i++)
s = s + 1.0 / total(i); printf(\}
2009年秋浙江省高等学校
计算机等级考试试卷(二级C)
一、程序阅读与填空(24小题,每小题3分,共72分)
1. 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】
计算并输出下式的值,要求精确到最后一项的绝对值小于10(保留4位小数)。
s?1?14?17?110??
-3
运行示例: sum = 0.8361 【程序】
#include
int denominator = 1, flag = 1;
6
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;
7
}
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, sum, a[10];
___(9)____ ___(10)____ sum=0;
for(i=0; i<10; i++)
sum=sum+____(11)___; printf(“sum=%d”, sum); }
void fun (int fib[],int n) { }
int i;
fib[0] = fib[1] = 1; for(i=2; i 【供选择的答案】 8 (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 #define S(a, b) (a)>(b) ? (a):(b) int f1(char ch) { int grade; switch(ch){ case “A”: grade =95; break; case “B”: grade =85; break; } case “C”: grade =75; case “D”: grade =65; break; default: grade=0; } return grade; 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( ); 9 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 int i, j, a[3] [3]={1,0,0,4,5,0,7,8,9}; int flag=1; for (i=0;i<3;i++) for (j=0; j0; j--) for(i=2; i>=j; i--) flag=a[i] [j]; printf(“%d\\n”, flag); } 程序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?); 10 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 { int i , j; char str [10], *s[10]={“SQL”,”hello”,”bear”,”zone”}; gets (str); for (i=0; i<4; i++){ } if (i= =4) s[4]=str; for (i=0; i<5; i++) printf(“%s ”, s[i]); putchar(?\\n?); if (strcmp(str, s[i]) > 0) continue; j =3;. while ( j >= i){ s[j+1] = s[j]; j--; } s[i] = str; break; 11 } 【问题】 (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次幂。 s?1x?1x2?1x3????1xn C模拟试卷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分) 12 1. #include int a[100],i; int min; for(i=0;i<100;i++) scanf(\ min=a[0]; for(i=1;i<100;i++) if(a[i] #include double cal_power(double x,int n) { double p = x; int i; for(i=1;i void main() { double x, s=0; int i,n; scanf(\ for(i=1;i<=n;i++) s=s+1/cal_power(x,i); printf(\} 2009年春浙江省高等学校 计算机等级考试试卷(二级C) 试题1(每小题3分,共12分) 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入1个正整数n,计算下列算式的前n项之和。 S=1-1/3+1/5-1/7+? 13 运行示例: Enter n:2 Sum=0.67 【程序】 #include { int denominator , flag,i, n; double item,sum; printf(”Enter n:”); scanf(”%d”,&n); denominator = 1; (1) ; sum = 0 for(i = 1; (2) ; i++){ (3) ; sum=sum +item; (4) ; Denominator= denominator+2; } printf(”Sum=%.2f\\n”,sum); } 【供选择的答案】 (1) A、flag=0 B、flag=-1 C、flag=n D、flag=1 (2) A、i>=n B、i C、i>n D、i<=n (3) A、item=flag/denominator B、item=1 /denominator C、item=flag*1.0/denominator D、item=1.0/denominator (4) A、flag=-1 B、flag=0 C、flag=-flag D、flag=flag 试题2(每小题3分,共12分) 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 验证哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。例如6=3+3,8=3+5,…,18=7+11。将6~20之间的偶数表示成两个素数之和,打印时一行打印5组。要求定义和调用函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。 运行示例: 6=3+3,8=3+5,10=3+7,12=5+7,14=3+11 16=3+13 18=5+13 20=3+17 18=7+11 【程序】 #include 14 if(m == 1) return 0; n = sqrt(m); for(i = 2; i <= n; i++) if(m % i == 0) return 0 (5) } main() { int count, i,number; count=0; for(number=6;number<=20;number=number+2){ for(i=3;i<=number/2;i=i+2) if(__(6)_____){ printf(“%d=%d+%d”,number,i,number – i); count++; if(__(7)_____) printf(“\\n”); ( (8) ) } } } 【供选择的答案】 (5) A、; B、return 1; C、return 0; D、else return 1; (6) A、prime(i)!=0 || prime(number – i)!=0 B、prime(i)!=0 && prime(number – i)!=0 C、prime(i)==0 || prime(number – i)==0 D、prime(i)==0 && prime(number – i)==0 (7) A、count % 5 ==0 B、count % 5!=0 C、(count+1)%5==0 D、(count+1)%5!=0 (8) A、break; B、else break; C、continue; D、; 试题3(每小题3分,共12分) 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入一行字符,统计并输出其中数字字符、英文字母和其他字符的个数。要求定义并调用函数count(s, digit,letter,other)分类统计字符串s中数字字符、英文字母和其它字符的个数,函数形参s的类型是字符指针,形参digit,letter,other的类型是整形指针,函数类型是void。 运行示例: Enter characters:f(x,y)=5x+2y-6 Digit=3 letter=5 other=6 【程序】 #include void count (char *s, int * digit, int * letter, int * other) { _____(9)___ while(_____(10)___){ if (*s>=?0? && *s<=?9?) (*digit)++; else if ((*s>=?a? && *s<=?z?)||(*s>=?A? && *s<=?z?)) (*letter)++; 15 else (*other)++; s++; } } main() { int i=0,digit,letter,other; char ch,str[80]; printf(“Enter characters:”); ch=getchar(); while (____(11)___){ str[i]=ch; i++; ch=getchar(); } str(i)=?\\0?; ___(12)__; Printf(“digit=&d letter=%d other=%d\\n”, digit,letter,other); } 【供选择的答案】 (9) A、int dight=0,letter=0,other=0; B、int *dight=0,*letter=0,*other=0; C、dight=letter=other=0; D、*dight=*letter=*other=0; (10) A、*s++ !=?\\0 ? B、*s++ !=?\\n? C、*s!=?\\0? D、 *s !=?\\n? (11) A、ch !=?\\0? B、ch !=?\\n? C、ch ==?\\0? D、ch ==?\\n? (12) A、count(str,&digit,&letter,&other) B、count(&str,&digit,&letter,&other) C、count(*str, digit, letter,other) D、count(*str,*digit,*letter,*other) 试题4(每小题3分,共12分) 阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序】 #include { int flag=0,i; int a[7]={8,9,7,9,8,9,7}; for(i=0;i<7;i++) if(a[i]==7){ flag=i break; } printf(“%d\\n”,flag); flag=-1 for(i=6;i>=0;i--) if(a[i]==8){ break; flag=i; 16 } (13) 程序运行时,第1行输出 (13) 。 A、2 B、0 C、3 D、6 (14) 程序运行时,第2行输出 (14) 。 A、4 B、-1 C、0 D、5 (15) 程序运行时,第3行输出 (15) 。 A、2 4 6 B、4 C、1 3 5 D、6 (16) 程序运行时,第4行输出 (16) 。 A、2 4 6 B、2 C、1 3 5 D、6 试题5(每小题3分,共12分) 阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序】 int f1(int n) { if(n==1) return 1 ; else return f1(n-1) + n; } int f2(int n) { switch(n){ case 1: case 2:return 1; default: return f2(n-1) + f2(n-2); } } void f3(int n) { printf(“%d”,n); if(n/10 !=0) f3(n/10); } void f4(int n) { if (n/10 !=0) f4(n/10); printf(“%d”, n); } #include { printf(“%d\\n”,f1(4)); printf(“%d\\n”,f2(4)); f3(123); printf(“\\n”); } printf(“%d\\n”,flag); flag=0; for(i=0;i<7;i++) if(a[i]==9){ printf(“%d”,i); } printf(“\\n”); flag=0; for(i=0;i<7;i++) if(a[i]==7) flag=i; printf(“%d\\n, flag”); 17 f4(123); printf(“\\n”); } (17) 程序运行时,第1行输出 (17) 。 A、10 B、24 C、6 D、1 (18) 程序运行时,第2行输出 (18) 。 A、1 B、3 C、2 D、4 (19) 程序运行时,第3行输出 (19) 。 A、123 B、3 C、321 D、1 (20) 程序运行时,第4行输出 (20) 。 A、1 B、123 C、3 D、321 试题6(每小题3分,共12分) #include struct num{ int a,b;}; void f(struct num s[], int n) { int index, j, k; struct num temp; for(k=0;k< n-1;k++){ index=k; for(j=k+1;j if(s[j].b main() { int count, i, k, m, n, no; struct num s[100],*p; scanf(“%d%d%d”, &n, &m, &k); for(i=0;i count = no =0; while(no if(p->b==0) count++; if(count==m){ no++; p->b=no; count=0; } p++; if(p==s + n) p=s; } f(s,n); printf(“%d: %d\\n”, s[k-1].b, s[k-1].a); } (21) 程序运行时,输入5 4 3,输出 (21) 。 18 A、3: 5 B、2: 3 C、1: 2 D、4: 1 (22) 程序运行时,输入5 3 4,输出 (22) 。 A、3: 5 B、1: 2 C、4: 3 D、4: 2 (23) 程序运行时,输入7 5 2,输出 (23) 。 A、1: 5 B、6: 1 C、2: 3 D、2: 4 (24) 程序运行时,输入4 2 4#,输出 (24) 。 A、3: 3 B、4: 2 C、2: 4 D、4: 1 试题7 (28分) (1) 定义函数fact(n)计算n的阶乘:n!=1*2*??*n,函数形参n的类型是int, 函数类型是double。 (2) 定义函数cal(x, e)计算下列算式的值,直到最后一项的值小于e,函数形参x 和e的类型都是double,函数类型是double。要求调用自定义函数fact(n)计算n的阶乘,调用库函数pow(x, n)计算x的n次幂。 S=x+x^2/2!+x^3/3!+x^4/4!+…… (3) 定义函数main(),输入两个浮点数x和e,计算并输出下列算式的值,直到最到最后一项的值小于精度e。要求调用自定义函数cal(x,e)计算下列算式的值。 S=x+x^2/2!+x^3/3!+x^4/4!+…… (4) 计算机等级考试参考答案(二级C) 试题1~6 (每小题3分) ⑴ D ⑵ D ⑶ C ⑷ C ⑸ B ⑹ B ⑺ A ⑻ A ⑼ D ⑽ C ⑾ B ⑿ A ⒀ A ⒁ B ⒂ C ⒃ D ⒄ A ⒅ B ⒆ C ⒇ B (21)A (22)D (23)C (24)D 试题7 (28分) #include double p=1; int i; for(i=1;i<=n;i++) p=p*i; return p; } double cal(double x,double e) { 19 double s=0,t; int i=1; do{ t=pow(x,i)/fact(i); s=s+t; i++; }while(t>=e); return s; } void main() { double x,e,s; scanf(\ s=cal(x,e); printf(\}2008 年秋浙江省高等学校计算机等级考试(二级C) 说明: 考试时间为90分钟。 试题1(每小题3分,共12分) 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入一批学生的成绩,遇负数表示输入结束,要求统计并输出各等级成绩的学生个数。成绩等级分为三级,分别为A(90-100)、P(60-89)和F(0-59)。 运行示例: Enter scores:88 71 68 70 59 81 91 0 60 77 83 -10 A:1;P:8;F:2; 【程序】 #include { int mark,a,p,f; a=p=f=0; printf(“Enter scores:”); scanf(“%d”,&mark); while(___(1)___){ if(mark>=90) a++; ___(2)___ p++; ___(3)___ f++; ___(4)___ } printf(“A:%d;P:%d;F:%d;\\n”,a,p,f); 20 } 【供选择的答案】 (1) [A] mark>=0 [C] mark<=0 (2) [A] else if(mark>=60) [C] else (mark>=60) (3) [A] else (mark<60) [C] if(mark>0) (4) [A] scanf(\”,mark); [C] ; [B] mark>0 [D] mark<0 [B] if(mark>=60) [D] if(mark<90) [B] else [D] else if(mark<=60) [B] scanf(\”,&mark); [D] mark=getchar(); 试题2(每小题3分,共12分) 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 求1-999之间所有满足各位数字的立方和等于它本身的数。例如153的各位数字的立方和是13+53+33=153 运行示例: 1 153 370 371 407 【程序】 #include { int digit,j,sum,x; for(j=1;j<1000;j++){ ___(5)___ ___(6)___ do{ ___(7)___ sum=sum+digit*digit*digit; x=x/10; }while(___(8)___); if(sum= =j) printf(“%d ”,sum); } } 【供选择的答案】 (5) [A] sum=0; (7) [A] digit=x/10; (8) [A] x= =0 [B] sum=1; [B] ; [B] j!=0 [C] sum=j; [C] digit=x; [C] j= =0 [D] ; [D] digit=x; [D] x!=0 (6) [A] x=1; [B] x=j; [C] ; [D] x=sum; 试题3(每小题3分,共12分) 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入10个整数,将它们从大到小排序后输出。 21 运行示例: Enter 10 integers:10 98 -9 3 6 9 100 -1 0 2 After sorted:100 98 10 9 6 3 2 0 -1 -9 【程序】 #include ___(9)___ void sort(___(10)___) { int i,index,k,t; for(k=0;k for(i=k+1;i if(a[i]>a[index]) index=i; ___(11)___ } } void swap(int *x,int *y) { int t; t=*x;*x=*y;*y=t; } main() { int i,a[10]; printf(“Enter 10 integers:”); for(i=0;i<10;i++) scanf(“%d”,&a[i]); ___(12)___ printf(“After sorted:”); for(i=0;i<10;i++) printf(“%d ”,a[i]); printf(“\\n”); } 【供选择的答案】 (9) [A] void swap(int *x,int *y) [B] ; [C] void swap(int *x,int *y); [D] void swap(int *x, *y) (10) [A] int &a,int n [C] int *a,int n (11) [A] swap(*a[index],*a[k]) [C] swap(index,k) [B] int *a,int *n [D] int a,int *n [B] swap(a[index],a[k]) [D] swap(&a[index],&a[k]) (12) [A] sort(a) [B] sort(a[10]) [C] sort(a[],10) [D] sort(a,10) 试题4(每小题3分,共12分) 阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序】 22 程序1 #include { int j,k,s1,s2; s1=s2=0; for(j=1;j<=5;j++){ s1++; for(k=1;k<=j;k++) s2++; } printf(“%d %d”,s1,s2); }. 程序2 #include { int j,k,s1,s2; s1=0; for(j=1;j<=5;j++){ s1++; for(k=1,s2=0;k<=j;k++) s2++; } printf(“%d %d”,s1,s2); }. 程序3 #include { int j,k,s1,s2; s1=0; for(j=1;j<=5;j++){ s1++; for(k=1;k<=j;k++,s2=0) s2++; } printf(“%d %d”,s1,s2); }. 程序4 #include { int j,k,s1,s2; s1=s2=0; for(j=1;j<=5;j++,s1=0){ s1++; for(k=1;k<=j;k++) s2++; } printf(“%d %d”,s1,s2); }. 【供选择的答案】 23 (13) 程序1运行时,输出: [A] 0 15 [B]5 0 (14) 程序2运行时,输出: [A] 0 15 [B]5 0 (15) 程序3运行时,输出: [A] 0 15 [B]5 0 (16) 程序4运行时,输出: [A] 0 15 [B]5 0 [C]5 5 [C]5 5 [C]5 5 [C]5 5 [D] 5 15 [D] 5 15 [D] 5 15 [D] 5 15 试题5(每小题3分,共12分) 阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序】 程序1 #include { int i,m=15,y=-1; for(i=2;i<=m/2;i++) if(m%i= =0) y=0; else y=1; printf(“%d”,y); } 程序2 #include { int i,m=15,y=-1; for(i=2;i<=m/2;i++) if(m%i= =0) {y=0;break;} printf(“%d”,y); } 程序3 #include { int i,m=15,y=-1; for(i=2;i<=m/2;i++) if(m%i= =0) break; if(i>m/2) y=1; else y=0; printf(“%d”,y); } 程序4 #include { int i,m=15,y=-1; for(i=2;i<=m/2;i++) if(m%i= =0) {break;y=0;} printf(“%d”,y); 24 } 【供选择的答案】 (17) 程序1运行时,输出: [A]1 [B]0 (18) 程序2运行时,输出: [A]15 [B]0 (19) 程序3运行时,输出: [A]-1 [B]1 (20) 程序4运行时,输出: [A]0 [B]15 [C]15 [C]-1 [C]0 [C]1 [D]-1 [D]1 [D]15 [D]-1 试题6(每小题3分,共12分) 阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序】 #include char ch,a[10],*s[10]={“one”,”two”,”three”,”four”}; k=0; while((ch=getchar())!=?\\n?&&k<9) if(ch>=?5?&&ch<=?8?) a[k++]=ch; a[k]=?\\0?; for(k=0;a[k]!=?\\0?;k++) printf(“%ds”,s[(?9?-a[k])-1]); } 【供选择的答案】 (21) 程序运行时,输入5678,输出: [A] two three [C] one four three (22) 程序运行时,输入8561#,输出: [A] two three [C] one four three (23) 程序运行时,输入7902#,输出: [A] two three [C] one four three (24) 程序运行时,输入7633#,输出: [A] two three [C] one four three [B] two [D] four three two one [B] two [D] four three two one [B] two [D] four three two one [B] two [D] four three two one 试题7(28分) 25 (1)定义函数fact(n)计算n的阶乘:n!=1*2*??*n,函数返回值类型是double。 (2)定义函数cal(e)计算下列算式的值,直到最后一项的绝对值小于e,函数返回值类型是double。 s=1+ 12!?1?14!?...... -1 -2 -3 -n (3)定义函数main(),输入正整数n,当精度e分别取值为10、10、10、??、10时,分别计算并输出下列算式的值,直到最后一项的绝对值小于精度e,以比较不同精度下算出的3!结果,要求调用函数cal(e)计算下列算式的值。 计算机等级考试参考答案(二级C) 试题1~6 (每小题3分) ⑴ A ⑵ A ⑶ B ⑷ B ⑸ A ⑹ B ⑺ C ⑼ C ⑽ C ⑾ D ⑿ D ⒀ D ⒁ C ⒂ B ⒄ A ⒅ B ⒆ C ⒇ D (21)D (22)C (23)B (24)A 试题7 (28分) #include int i,n; double e=1; printf(\ while(scanf(\ for(i=1;i<=n;i++) { e=e*1.0/10; printf(\ } } double fact(int n) { double y=1; int i; for(i=1;i<=n;i++) y=y*i; return y; 26 ⑻ D ⒃ A } double cal(double e) { double s=0,t=1; int i=1; while(t>=e) { s=s+t; t=1/fact(++i); } return s; } 2008年春浙江省高等学校计算机等级考试试卷(二级C) 说明:(1) 考生应将所有试题的答案填写在答卷上。其中试题1到试题6请在答卷上各小题正 确选项的对应位置处填“√”; (2) 请将你的准考证号的后五位填写在答卷右下角的指定位置内; (3) 考试时间为90分钟。 试题1(每小题3分,共12分) 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入1个正整数n(n>=2),输出菲波那契(Fibonacci)序列的前n项,每行输出6个数。菲波那契(Fibonacci)序列:1,1,2,3,5,8,13,??,数列的前两个数都是1,从第三个数开始,每个数是前两个数之和。 运行示例: Enter n:10 1 1 2 3 5 8 13 21 34 55 【程序】 #include int count, i, n, x1, x2, x; printf(”Enter n:”); scanf(”%d”,&n); x1 = x2 = 1; printf(”mm”,x1, x2); (1) ; for(i = 1; i <= n-2; i++){ (2) ; printf(”m”, x); count++; if( (3) ) printf(”\\n”); x1 = x2; 27 (4) ; } } 【供选择的答案】 (1) A、count = 2 B、count = 0 C、count = 1 D、count = -1 (2) A、x = x1 – x2 B、x = x1 + x2 C、x = x1 D、x = 2 (3) A、count / 6 == 0 B、count % 6 != 0 C、count % 6 == 0 D、count / 6 != 0 (4) A、x = x1 +x2 B、x2 = x1 C、x = x2 D、x2 = x 试题2(每小题3分,共12分) 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入2个正整数m和n(1<=m Enter m, n: 1 10 count = 4, sum = 17 【程序】 #include if(m == 1) return (5) ; n = sqrt(m); for(i = 2; i <= n; i++) if(m % i == 0) return (6) ; return (7) ; } main() { int count = 0, i, m, n, sum = 0; printf(”Enter m, n:”); scanf(”%d%d”,&m, &n); for(i = m; i <= n; i++) if( (8) ){ sum += i; count++; } printf(\} 【供选择的答案】 (5) A、1 B、m C、m == 1 D、0 (6) A、m B、1 C、0 D、n (7) A、m B、1 28 C、0 D、i == n (8) A、prime(i) != 0 B、prime(i) == 0 C、i == prime(i) D、!prime(i) 试题3(每小题3分,共12分) 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入一个2 * 3的二维数组,找到最大值以及它的行下标和列下标,并输出该矩阵。 运行示例: Enter a array(2*3):3 2 10 -9 6 -1 max = a[0][2] = 10 3 2 10 -9 6 -1 【程序】 #include printf(\ for(i = 0; i <2; i++) for(j = 0; j < 3; j++) scanf(\ (10) ; for(i = 0; i < 2; i++) for(j = 0; j < 3; j++) if(a[i][j] > a[row][col]){ (11) ; } printf(”max = a[%d][%d] = %d\\n”, row, col, a[row][col]); for(i = 0; i < 2; i++){ for(j = 0; j < 3; j++) printf(”M”, a[i][j]); (12) } 【供选择的答案】 (9) A、&a[i][j] B、&a[j][i] C、a[i][j] D、a[j][i] (10) A、row = col = 2; B、row = col = 0; C、a[row][col] = 0; D、a[row][col] = -1; (11) A、row = j; col = i; B、a[row][col] = a[i][j]; C、row = i; col = j; D、a[row][col] = a[j][i]; (12) A、printf(”\\n”)}; B、}printf(”\\n”); C、; D、printf(”\\n”);} 试题4(每小题3分,共12分) 阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序】 #include { int op1, op2, res; 29 char operator; scanf(”%d”, &op1); operator = getchar(); while(operator != ?=?){ scanf(”%d”, &op2); switch(operator){ case ?+?: res = op1+op2; break; case ?-?: res = op1-op2; break; case ?*?: res = op1*op2; break; case ?/?: res = op1/op2; break; default: res = 0; } op1 = res; operator = getchar(); } printf(”%d\\n”, res); } (13) 程序运行时,输入2*3-2=,输出 (13) 。 A、6 B、2 C、0 D、4 (14) 程序运行时,输入15+2/3=,输出 (14) 。 A、16 B、15 C、6 D、5 (15) 程序运行时,输入1+2*10-10/2=,输出 (15) 。 A、10 B、16 C、15 D、25 (16) 程序运行时,输入1+3*5/2-7=,输出 (16) 。 A、3 B、1 C、-2 D、-3 试题5(每小题3分,共12分) 阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序】 #include { int k = 0, number = 0; char str[MAXLEN]; while((str[k] = getchar()) != ?#?) k++; str[k] = ?\\0?; for(k = 0; str[k] != ?\\0?; k++) if(str[k]>=?0?&&str[k]<=?9?||str[k]==?A?||str[k]==?B?) if(str[k] >= ?0?&&str[k] <= ?9?) number = number * 12 + str[k] – ?0?; else if(str[k] == ?A?||str[k] == ?B?) number = number * 12 + str[k] –?A? + 10; else; /*第15行*/ else break; /*第16行*/ printf(”%d\\n”,number); } (17) 程序运行时,输入10#,输出 (17) 。 A、16 B、10 C、12 D、1 (18) 程序运行时,输入1a0#,输出 (18) 。 A、264 B、10 C、1 D、12 30 (19) 将第16行改为“;”后,程序运行时,输入A*0#,输出 (19) 。 A、0 B、120 C、10 D、12 (20) 将第16行改为“else break;”后,删除第15行,程序运行时,输入1b0#,输出 (20) 。 A、10 B、12 C、276 D、1 试题6(每小题3分,共12分) #include { char *s[2] = {”****”, ”****”}; while(*s[1] != ?\\0?){ printf(”%s\\n”, s[0]+strlen(s[1])-1); s[1]++; } } (21) 程序运行时,第1行输出 (21) 。 A、**** B、*** C、** D、* (22) 程序运行时,第2行输出 (22) 。 A、**** B、*** C、** D、* (23) 程序运行时,第3行输出 (23) 。 A、**** B、*** C、** D、* (24) 程序运行时,第3行输出 (24) 。 A、**** B、*** C、** D、* 试题7 (28分) (5) 定义函数fact(n)计算n的阶乘:n!=1*2*??*n,函数返回值类型是double。 n(6) 定义函数cal(m, n)计算累加和:s??k?m?(m?1)?......?n,函数返回 k?m值类型是double。 (7) 定义函数main(),输入正整数n,计算并输出下列算式的值。该算式中,每一项 n的分子是累加和,要求调用函数cal(m,n)计算?k;每一项的分母是阶乘,要 k?m求调用函数fact(n)计算n!。 (8) y=1+ 1?22!?1?2?33!?......?1?2?......?nn! 计算机等级考试参考答案(二级C) 试题1~6 (每小题3分) ⑴ A ⑵ B ⑶ C ⑷ D ⑸ D ⑹ C ⑺ B ⑻ A ⑼ A ⑽ B ⑾ C ⑿ D ⒀ D ⒁ D ⒂ A ⒃ A ⒄ C ⒅ C ⒆ B ⒇ B (21)D (22)C (23)B (24)A 31 试题7 (28分) #include int i; double p=1; for(i=1;i<=n;i++) p*=i; return(p); } double cal(int m,int n) { int i; double s=0; for(i=m;i<=n;i++) s+=i; return(s); } void main() { int i,n; double y=0; printf(\ scanf(\ for(i=1;i<=n;i++) y+=cal(1,i)/fact(i); printf(\} 2007年秋浙江省高等学校计算机等级考试试卷(二级C) 试题1(每小题3分,共12分) 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入2个整数lower和upper,输出一张华氏-摄氏温度转换表,华氏温度的取值范围是[lower,upper],每次增加2℉。计算公式如下,式中:c表示摄氏温度,f表示华氏温度。 C= 5??f?32?9 运行示例: 32 Enter lower: 30 Enter upper: 35 fahr celsius 30 -1.1 32 0.0 34 1.1 【程序】 # include { int fahr,lower,upper; double celsius; printf(“Enter lower:”); scanf(“%d”, &lower) ; printf(“Enter upper:”); scanf(“%d”, &upper) ; printf(“fahr celsius\\n”); for (fahr = lower; (1) ; (2) ){ celsius = (3) ; printf(“%d (4) \\n”,fahr,celsius); } } 【供选择的答案】 (1) A、 fahr <= upper B、 fahr < upper C、 fahr >= upper D、 fahr > upper (2) A、 fahr++ B、 fahr = fahr -2 C、 fahr + 2 D、 fahr = fahr + 2 (3) A、 5 * (fahr - 32)/9 B、 (5.0/9.0) * (fahr - 32) C、 5 / 9* (fahr - 32) D、 5 * fahr – 32/9 (4) A、 m B、 %6.2f C、 %6.1f D、 %6.0f 试题2(每小题3分,共12分) 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入2个正整数a和n,求a+aa+aaa+aa?a(n个a)之和,要求定义并调用函数fn(a,n),它的功能是返回aa?a(n个a)。例如,fn(3,2)的返回值是33。 运行示例: Enter a: 2 Enter n: 3 sum = 246 【程序】 33 # include { int i,n; long a, sn; long fn(long a, int n); printf(“Enter a:”); scanf(“%ld”, &a); printf(“Enter n:”); scanf(“%d”, &n); (5) for(i=1; i<=n; i++) (6) printf(“sum=%ld\\n”,sn); } long fn(long a, int n) { int i; Long tn=0; for(i=1; i<=n; i++){ tn=tn+a; (7) } (8) } 【供选择的答案】 (5) A、sn=0; B、 ; C、sn=1; D、sn=a; (6) A、sn=sn+fn(a,i); B、sn=sn+fn(a,n); C、sn=sn+fn(i,a); D、sn=sn+fn(i,n); (7) A、tn=tn*10; B、a=a*10; C、sn=tn*10; D、sn=sn+a*10; (8) A、return; B、return sn; C、return a; D、return tn; 试题3(每小题3分,共12分) 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入一个以回车结束的字符串(少于80个字符),删除其中除英文字母和数字字符以外的其他字符,再判断新字符串是否对称(不区分大小写字母)。 运行示例1: Enter a string: Madam I’m Adam 34 Yes 运行示例2: Enter a string: elephant No 【程序】 # include # include< (9) > main( ) { int flag, i, k, length; char str[80]; printf(“Enter a string: ”); gets(str); i = k = 0; while(str[i] != '\\0'){ if(isupper(str[i]))str[i]=tolower(str[i]); if(isdigit(str[i])||isalpha(str[i])){ (10) k++; } i++; } (11) length = k; flag = 1; for(k = 0; k <= length/2; k++) if(str[k] != str[length-1-k]){ (12) break; } if(flag) printf(“Yes\\n”); else printf(“No\\n”); } 【供选择的答案】 (9) A、ctype.h B、string.h C、stdlib.h D、math.h (10) A、i++; B、str[k] = str[i]; C、str[i]=str[k] D、; (11) A、str[i] = ‘\\0’; D、str[i-1] = ‘\\0’; C、str[k] = ‘\\0’; D、; (12) A、flag = 1; B、flag = 0; 35 C、 ; D、continue; 试题4(每小题3分,共12分) 阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序】 # include { int i, m; scanf(“%d”, &m); for(i = 2; i <= m/2; i++) if (m % i == 0){ printf(“%d#”, i); break; /* 第8行 * / } printf(“%d”, i); } (13) 程序运行时,输入5,输出 (13) 。 A、3 B、3#3 C、3#4 D、3#5 (14) 程序运行时,输入9, 输出 (14) 。 A、3 B、3#3 C、3#4 D、3#5 (15) 将第8行改为“continue”后,程序运行时,输入9,输出 (15) 。 A、3 B、3#3 C、3#4 D、3#5 (16) 将第8行改为“;”后,程序运行时,输入9,输出 (16) 。 A、3 B、3#3 C、3#4 D、3#5 试题5(每小题3分,共12分) 阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序】 # include { int i, j, temp; int a[3][3]= {1,2,3,4,5,6,7,8,9}; void f(int *x, int *y); for(i = 0; i < 3; i++) for(j = 0; j < 3; j++) if(i < j) f(&a[i][j], &a[j][i] ); /* 第8行 */ 36 for(i = 0; i < 3; i++) for(j = 0; j < 3; j++) printf(“-”, a[i][j]); } void f(int *x, int *y) { int t; t = *x; *x = *y; *y = t; } (17) 程序的输出是 (17) 。 A、3 2 1 6 5 4 9 8 7 B、7 8 9 4 5 6 1 2 3 C、1 2 3 4 5 6 7 8 9 D、1 4 7 2 5 8 3 6 9 (18) 将第8行改为“f(&a[i][j], &a[j][i]);”后,程序的输出是 (18) 。 A、3 2 1 6 5 4 9 8 7 B、7 8 9 4 5 6 1 2 3 C、1 2 3 4 5 6 7 8 9 D、1 4 7 2 5 8 3 6 9 (19) 将第8行改为“if(i < 2) f(&a[i][j], &a[2-i][j]);”后,程序的输出 是 (19) 。 A、3 2 1 6 5 4 9 8 7 B、7 8 9 4 5 6 1 2 3 C、1 2 3 4 5 6 7 8 9 D、1 4 7 2 5 8 3 6 9 (20) 将第8行改为“if(i < 2) f(&a[i][j], &a[i][2-j]);”后,程序的输出 是 (20) 。 A、3 2 1 6 5 4 9 8 7 B、7 8 9 4 5 6 1 2 3 C、1 2 3 4 5 6 7 8 9 D、1 4 7 2 5 8 3 6 9 试题6(每小题3分,共12分) # include main( ) { int i, x1, x2; int a[5]={1,2,3,4,5}; void f1(int x, int y), f2(int *x, int *y ); x1 = x2 = 0; for(i = 1; i < 5; i++){ if(a[i] > a[x1]) x1 = i; if(a[i] < a[x2]) x2 = i; } f2(&a[x1], &a[0]); for(i = 0; i < 5; i++) printf(“-”, a[i]); printf(“\\n”); f1(a[x2], a[1]); 37 for(i = 0; i < 5; i++) printf(“-”, a[i]); printf(“\\n”); f2(&a[x2], &a[4]); for(i = 0; i < 5; i++) printf(“-”, a[i]); printf(“\\n”); f1(a[x1], a[3]); for(i = 0; i < 5; i++) printf(“-”, a[i]); printf(“\\n”); } void f1(int x, int y) { int t; t = x; x = y; y = t; } void f2(int *x, int *y) { int t, t = *x; *x = *y; *y = t; } (21) 程序运行时,第1行输出 (21) 。 A、1 2 3 4 5 B、2 1 3 4 5 C、1 2 3 5 4 D、5 2 3 4 1 (22) 程序运行时,第2行输出 (22) 。 A、2 1 3 4 5 B、5 2 3 4 1 C、2 5 3 4 1 D、1 2 3 4 5 (23) 程序运行时,第3行输出 (23) 。 A、1 2 3 5 4 B、2 5 3 1 4 C、1 2 3 4 5 D、5 2 3 4 1 (24) 程序运行时,第4行输出 (24) 。 A、5 2 3 1 4 B、1 2 3 4 5 C、1 2 3 5 4 D、5 2 3 4 1 试题7 (28分) 从n个不同的元素中,每次取出k个不同的元素,不管其顺序合并成一组,称为组合。 组合种数计算公式如下: Cn= kn!(n?k)!k! (1) 定义函数fact(n)计算n的阶乘n!,函数返回值类型是double。 (2) 定义函数cal(k, n)计算组合种数Cn,函数返回值类型是double,要求调用函数fact(n) 计算n的阶乘。 k 38 (3) 定义函数main(),输入正整数n,输出n的所有组合种数Cnk (1?k?n),要求调用函数 cal(k,n)计算组合数。 计算机等级考试参考答案(二级C) 试题1~6 (每小题3分) ⑴ A ⑵ D ⑶ B ⑷ C ⑸ A ⑹ A ⑺ B ⑻ D ⑼ A ⑽ B ⑾ C ⑿ B ⒀ A ⒁ B ⒂ D ⒃ D ⒄ D ⒅ C ⒆ B ⒇ C (21)D (22)B (23)C (24)B 试题7 (28分) #include int i; double p=1; for(i=1;i<=n;i++) p*=i; return p; } double cal(int k, int n) { return fact(n)/(fact(n-k)*fact(k)); } void main() { int k,n; printf(\ scanf(\ for(k=1;k<=n;k++) printf(\} 2007年春浙江省高等学校计算机等级考试试卷(二级C) 说明:⑴ 考生应将所有试题的答案填写在答卷上。其中试题1~试题6,请在答卷上各小题正 确选项的对应位置处填“√”; ⑵ 请将你的准考证号的后五位填写在答卷右下角的指定位置内; ⑶ 考试时间为90分钟; 39 试题1(每小题3分,共12分) 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 输入一个正整数,按照从高位到低位的顺序输出各位数字。 运行示例: Enter an integer: 1902 The digits are: 1 9 0 2 【程序】 #include int digit, number, power, t; printf(\scanf(\ number = number < 0 ? –number : number; power = 1; (1) ; while( (2) ){ power *= 10; t /= 10; }; printf(\ while( (3) ){ digit = number / power; printf(\ (4) power /= 10; } } 【供选择的答案】 (1) A、t = 1; B、t = number; C、; D、number = 1; (2) A、t >= 10 B、power >= 100 C、t != 0 D、number != 0 (3) A、power == 0 B、digit != 0 C、number != 0 D、power >= 1 (4) A、number /= power; B、number %= 10; C、number %= power; D、number /= 10; 试题2(每小题3分,共12分) 阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。 【程序说明】 连续输入一批学生的成绩,直到输入成绩的数量超过50个或者输入的成绩不是有效成绩(有效成绩为0~100),将输入的有效成绩存入数组mark中,在数组中查找并输出最高分。函数getmax(array,n)在n个元素的一维数组array中找出并返回最大值。 运行示例: Enter marks: 90 80 77 65 -1 Max = 90 【程序】 #include 40
正在阅读:
中西医结合治疗血管性痴呆30例01-06
16秋华师《人力资源管理B》在线作业01-31
《北京的春天》说课稿11-13
中国联通LTE数字蜂窝移动通信网终端设备技术要求 第一分册 VoLTE终端技术要求 v1.112-27
竞赛数学中几类不等式的解法08-05
蚕宝宝的生长过程09-29
2016反映现实的经典语录歌词02-10
辽宁交通高等专科学校08-06
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 浙江省
- 真题
- 笔试
- 二级
- 语言
- 2007
- 2010
- 某公司青年思想引导手册
- 第二章货币时间价值课后练习题
- 毕业论文 _论资本结构优化
- 大班幼儿个案分析
- 最新鼎捷易助ERP常见问题故障及解决方案方法FAQ
- 商法个人报告
- 2014三年级美术下册《鸟的纹样》教学设计及反思 苏少版
- 复压过流
- visual c#.NET程序设计教程第二版罗福强课后习题答案
- 基尔霍夫定律和叠加原理的验证-实验报告
- 群塔防碰撞专项施工方案
- 初一数学奥数培优练习(1)图形计数及线段-答案
- 园林绿化施工技术操作规程
- 物流有限公司物流中心建设项目可行性研究报告
- STM32F103ZET6 5串口通信问题
- 中国骨科外固定架行业市场前景分析预测年度报告(目录) - 图文
- 流体力学B卷及答案
- 实施医药产品策略 - 图文
- 九年级化学下册《第十单元 酸和碱》章节教案 新人教版
- 1-设备上架及线缆连接练习题解析与答案