2007年秋c
2007年秋浙江省高等学校
计算机等级考试试卷(二级C )
试题1
(每小题3分,共12分)
和程序,恳每小题提供的若
—丨止确合案。
9
运行示例:
En ter lower: 30
En ter upper: 35 fahr Celsius
30 -1.1 32 0.0 【程序4行
#i nclude
{ int fahr, lower, upper; double Celsius;
prin tf("E nter lower:"); sea nf("%d", & lower); prin tf("E nter upp er:"); sea nf("%d", &upper);
【可序下 氏 SiS3 ifSfa
张华 式
5 (f 32) e ---------
prin tf("fahr eelsius\n");
for (fahr = lower; (1);
⑵ ){
Celsius = (3) ;_
prin tf("%d (4)泄
fahr, Celsius); }}
【供选择的答案】 (1) A 、fahr <= upper
< upper
C 、fahr >= upper fahr > upper
(2) A 、fahr++ B 、fahr
B 、fahr = fahr (2)
C 、fahr + 2 步长为2 2。增加2 (3) A 、5 * (fahr - 32)/9 (5.0 / 9.0) * (fahr - 32) C 、5 / 9* (fahr - 32) 纟结果血该是小数 ⑷ A 、%6d
%6、1f 「一 保留1位小数 试题2 (每小题3分, 阅读下列程序说明和程序,琏每小题提供的若 可选答案中,挑选一个正确答案。
「… ____________________________________________________________________________________________ ■?
例谧徹3,2)
[程 卜正整数a 和n fahr %6沪 共12分) ― ,求「 左)曰之和。要求定义并调用函 能是返回aa …a(n 个a)。 ‘ 口 33。
的返行,
En ter a: 2 En ter n: 3
[程序1= 246
#i nclude
能是 mai n() { int i, n;
a+aa+aaa+aa
long a, sn;
long fn (I ong a, i nt n);
prin tf("E nter a:");
sca nf("%ld", & a);
prin tf("E nter n:");
sca nf("%d", &n);
(5)
for(i=1; i v=n; i++)
(6) ____________
prin tf("sum=%ld\n",s n); long fn (I ong a, i
nt n) { int i;
/*注意1*/ long tn=O;
for(i=1; i v=n; i++){
tn=tn+a;
(7)
}
(8)
}
【供选择的答案】
⑸ A、sn=O;
C 、sn=1;
和的初值为0 ! (6) A、sn=sn+fn(a,i);
sn
C sn
:、n (般n+fn (i,a ); D
、
循,终以次数为n,因此不能是n.否则不能累 注意:例如如,,祐(32丁, 3)
(7) A 、tn=tn*10; a=a*10;
C 、sn=tn*10;
SB 10无& 后是以
是0.所这不符合选目要求。
(8) A 、return; return sn;
C 、return a; return tn;
试题3
(每小题3分,共12分)
干m 列程序说明一程正确答案每小题提供的若 输
入一个以回车结束的字符串(少于 字符),删除其中除英文字母和数字字符以外的 其它字符,再判断新字符串是否对称(不区分大 小写字母)。 运行示例1:
循环
要和所以注意错误匹配,
所的返回值错误33 O (2个 D CD 错误。f 占耳 tn=330. 因为返回的
A ,则tn 的个位数就一定
80个
Enter a string: Madam I'm Adam 运行示例 2 :
En ter a stri ng:
ele phant 【程序】
#in clude
#i nclude < (9) >
mai n()
{ int flag, i, k, le ngth;
char str[80];
prin tf("E nter a stri ng:"); gets(str);
i = k = 0;
while(str[i] != '\0'){ if(is upp er(str[i])) str[i]=tolower(str[i]);
if(isdigit(str[i])||isal pha(str[i]
)){
(10)一
k++; }
i++; }
(11)
len gth = k;
flag = 1;
for(k = 0; k <= len gth/2; k++) if(str[k]
str[len gth-1-k]){ !=
■
本题 参考课本P114页
最后
(10) A 、i++; str[k] = str[i]; 参考课
本淮s
l
倒
(11) A …―
str[i-1] = 参考课
本
(12) _0人、flag = 1;
flag
c= 0;
墜换课本 题阅读下列程序回答问题,3小
题提供的若 [可序答案中,挑选一个正确答案。
#i nclude
(12) _________ break; } if(flag) printf("Y es\n"); else prin tf("No\n");
【供选择的答案】
s 9
nnA.h
本题是课 本P114页例 、ctype.h
、stdlib.h
D 6.9 与 p122 1 、 的5题的
行。
数第 、str[i] = '\0';
-\0: 、 k 、;
D
P115页第7行。
外,恭』2分)
参
考
DB 行。
{ int i, m;
sca nf("%d", & m);
for(i = 2; i <= m/2; i++) if (m % i == 0){ prin tf("%d#", i); break;
/*第8行*/
}
p rintf("%d", i);
} 一
(13)程序运行时,输入
O
—A
C
3#5
(14)程序运行时,输入
o
—A
C
3#5
序运5亍时舊入霍改输出A 、3 B
C -
3#5
输入5 9将第
出
A
C 输出(13)
、3#3
、
、3#3
、
”后,程
o
—3#3
D、
、、33#4
D
输出(14)
B D
、、33#4
con ti
nue;
、、33#4
8行改为“;”后,程序运行时,
(16) O
、3#3
D 、、、33#4
#5
里就是根据程序的流程做
出判断 读下小列程序:i
读答列程序挑选一个正确答案
这3
试题5 (
【程阅选】案
#i nclude
以 共12分) 回答问题,在每小题提供的若
mai n()
{ int i, j, tem p; int
{1,2,3,4,567,8,9};
void f(i nt *x, i nt *y); for(i = 0; i < 3; i++) for(j = 0; j < 3; j++) if(i < j) f(&a[i][j],
&a[j][i]); /*
第 8 行 */
for(i = 0; i < 3; i++) for(j = 0; j < 3; j++) prin tf("%2d",
a[i][j]); }
void f(i nt *x, i nt *y) { int t; t = *x; *x
o
奂
数马
69 屋32
58 明穿
147(17
(17)程序的输出是, ' A 、3 2 1 6 5 498 8 9 4 5 6 1 2 3
C 、1 2 3 4 5 6 7 8 9 7 2 5 8 3 /*算8
B 、7 D 、1 4
交换。数
2, 5, 7
组变实现数组对角线左下与右上元
素 a[3][3]= /*第3行*/
=t ; }
*y; *y
1
3,6,9
将第”8
后行程序为输出是綁18,) 、3 2 1 6 5 4 9 8 7
8 9 4 5 6 1 2 3
C 、1 2 3 4 5 6 7 8 9
7X5 83 6 9
两次交换 现]);
O —B T 7
D 、1 4 两次交换,又复原了!所以数组没有变化。 (19) 将第8行改为 输出曲,是(&a)2-
血。
i
?i
后,
A 8 9 4 5 6 C 、1 数组变8
为
7, 8,
7
,5,, 、3 2 1 6 5 4 9 8
7 1 2 3 2 3 4 5 6 7 8 9
6 9 96
2
20) 将第8行改为
镰呦,是圍邮改); o
—A 、3 2' 1 6 5 4 9 8 7 8 9 4 5 6 1 2 3
C 、1 2 3 4 5 6 7 8 9 7 2 5 8 3 6 9
程序誇
B 、7
试题6 (每小题3分,共12 分)
#i nclude
int a[g={1*2,3,4,5};
void f1(int x, int int *y );
x1 = x2 = 0; for? = 1; i < 5
彳」++){
if(a[^ > a[x1]) xT = i ; if(a 2 < a[x2]) = i ; }
y), f2(i nt
*x ,
/*语句7*/
/*语句11*/
一一一一
引
a '' d H a 的24-
,
;
o
t 疋t 牧 M 一一泊 t
X
L O i L 也组就a 的原始数据为: 语制,到语句 11实现这样的功能:
a
X1=4, 躺,3,%=3, a[4]=5「找出在最大和和最最小 :比■ a[0]更小的
数,所以x2 一直没 r X2 — 0 铉心:函数、是传值方式调用,没有实现交 换|细详细看 传 详细看课本P139.
(21)程序运行时,
O
—A 、1 2 3 4 5
5
是:a[0]=1, a 但In 有变,x2= 注意:函数 课本是传8 上方式调用,实现交换 1行输出 _____ (21 B
C 、1 2 3 5 4
1 函数f2是传址方式调用,交换a[4]和a[0] 这时:a[5]={5,2,3,4,1}
(22)程序运行时,第2行输出
_ 。
—A 、2 1 3 4 5
1
o
A 、5 2 3 1 4
D 函数f1是传值方式调用,没有交换
这时:a[5]={1,2,3,4,5} 试题7 (28 分)
合元素:不公式|序合并成一组,称为组合。组
(1) C n k
返义函 类型是' doubl 计算n 的阶乘n!価 数
矣型是,n
doube
算要求种用函数 4 4 -亠 )■典 —厂 丿 )弘定义函数工main(),输入正整数n , 的所有组合种数…C(d ?——、, 业匚 I ZI \ 计*
double 。 ..... 返回值类型是1 计算n 的阶输入正整数n 输, 算组合融n),要求调用函 (3 P 函数 数 cal(k,n)
(22) B 、 5 2 3 4
C 、2 5 3 4 1
D 函数f1是传值方式调用,没有交换
f 时:a[5]={5.2.3.4.1} 这时)a
l 序运行时,第 _ 。 — A 1 2 3 5 4 4
C 、1 2 3 4 5
是传址方式调用,交换a[0] :4行输出—
3行输出 (23)
D 、
函数f2
这时)a i 序运巒5
第
5 2 3 4 1
和 a[4]
(24)
B 、 1 2 3 4
C 、1 2 3 5 4
#i nclude
int k;
double result=1;
for (k=1;k<=n ;k++) result*=k;
return result;
} double cal( int k, int n)
{
double result;
result=1.0*fact( n)/(fact( n-k)*fact(k)); /* 乘 1.0 变小数*/ retu rnt result;
}
void mai n()
{
int k, n;
double cal;
sca nf( %d%d ,&k,&n);
for(k=1;kv=n ;k++) {
printf( cal =%lf\n ,cal(k, n));
}