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