z=z+tab[n][k];
returnz;
}
(13)程序运行时,输入100000,输出0。
A、29B、28C、0D、-1
(14)程序运行时,输入001000,输出-1。
A、29B、28C、0D、-1
(15)程序运行时,输入200021200031,输出29。
A、29B、28C、0D、-1
(16)程序运行时,输入198121198131,输出28。
A、29B、28C、0D、-1
试题5(每小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】
#include
voidmain()
{inta=-1,b=1;
voidf1(intx,inty),f2(int*x,int*y);
voidf3(int*x,int*y),f4(intx,inty);
f1(a,b);
printf("(%d,%d)\n",a,b);
a=-1,b=1;
f2(&a,&b);
printf("(%d,%d)\n",a,b);
a=-1,b=1;
f3(&a,&b);
printf("(%d,%d)\n",a,b);
a=-1,b=1;
f4(a,b);
printf("(%d,%d)\n",a,b);
}
voidf1(intx,inty)
{intt;
t=x;x=y;y=t;
}
voidf2(int*x,int*y)
{intt;
t=*x;*x=*y;*y=t;
}
voidf3(int*x,int*y)
{int*t;
t=x;x=y;y=t;
}
voidf4(intx,inty)
{int*t=malloc(sizeof(t));
*t=x;x=y;y=*t;
}
(17)程序运行时,第1行输出(17)。
A、(1,-1)B、(-1,1)C、(-1,-1)D、(1,1)
(18)程序运行时,第2行输出(18)。
A、(1,-1)B、(-1,1)C、(-1,-1)D、(1,1)
(19)程序运行时,第3行输出(19)。
A、(1,-1)B、(-1,1)C、(-1,-1)D、(1,1)
(20)程序运行时,第4行输出(20)。
A、(1,-1)B、(-1,1)C、(-1,-1)D、(1,1)
试题6(每小题3分,共12分)
#include
structcard{
char*face;
char*suit;
};
voidfilldeck(structcard*wdeck,char*wface[],char*wsuit[])
{inti;
for(i=0;i<4;i++){
wdeck[i].face=wface[i%2];
wdeck[i].suit=wsuit[i/2];
}
}
voiddeal(structcard*wdeck)
{inti;
for(i=0;i<4;i++)
printf("(%2sof%-6s)\n",wdeck[i].face,wdeck[i].suit);
}
voidmain()
{structcarddeck[4];
char*face[]={"K","Q"};
char*suit[]={"Heart","Club"};
filldeck(deck,face,suit);
deal(deck);
}
(21)程序运行时,第1行输出(21)。
A、(KofHeart)B、(QofHeart)
C、(KofClub)D、(QofClub)
(22)程序运行时,第2行输出(22)。
A、(KofHeart)B、(QofHeart)
C、(KofClub)D、(QofClub)
(23)程序运行时,第3行输出(23)。
A、(KofHeart)B、(QofHeart)
C、(KofClub)D、(QofClub)
(24)程序运行时,第3行输出(24)。
A、(KofHeart)B、(QofHeart)
C、(KofClub)D、(QofClub)
试题7(14分)
编写程序,输入一批学生的成绩,遇0或负数则输入结束,要求统计并输出优秀(大于85)、通过(60~84)和不及格(小于60)的学生人数。
运行示例:
Enterscores:
88716870598191426677830
>=85:
2
60-84:
7
<602
试题8(14分)
编写程序,输入一个正整数n,求下列算式的值。
要求定义和调用函数fact(k)计算k的阶乘,函数返回值的类型是double。
运行示例:
Entern:
5
sum=1.71667
2006年秋浙江省高等学校
计算机等级考试试卷(二级C)
说明:
考生应将所有试题的答案填写在答卷上。
其中试题1~试题6,请在答卷上各小题正确选项的对应位置处填“√”;
请将你的准考证号的后五位填写在答卷右下角的指定位置内;
考试时间为90分钟;
试题一(每小题3分,共12分)
说明:
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
[程序说明]输入一行字符,统计并输出其中英文字母,数字和其他字符的个数。
运行示列:
Entercharacters:
f(x,y)=3x+5y-10
letter=5,digit=4,other=6
[程序]
#include
voidmain()
{intdigit,i,letter,othe;
_
(1)_____ch;
digit=letter=other=0;
printf(“Entercharacters:
”);
while(__
(2)____!
=’\n’)
if(___(3)_______)
letter++;
___(4)______(ch>=’0’&&ch<=’9’)
digit++;
else
other++;
ptintf(“letter=%d,digit=%d,other=%d\n”,letter,digit,other);
}
(1)A.*B.floatC.doubleD.char
(2)A.(ch=getchar())B.ch=gerchar()
C.getchar(ch)D.putchar(ch)
(3)A.(ch>=’a’&&ch<=’z’)&&(ch>=’A’&&ch<=’Z’)
B.(ch>=’a’&&ch<=’z’)||(ch>=’A’&&ch<=’Z’)
C.ch>=’a’&&ch<=’Z’
D.ch>=’A’&&ch<=‘z’
(4)A.ifB.elseC.elseifD.ifelse
试题二(每小题3分,共12分)
说明:
阅读下鲁程序说明程序,在每小题提供的若干可挑选答案中,选一个正确答案。
[程序说明]输入一个整数,将它逆序输出。
要求定义并调用函数reverse(longnumber),,它的功能就返回number的逆序数。
例如reverse(12345)的返回值是54321。
运行示例:
Enteraninteger:
-123
Afterreversed:
-321
[程序]
#include
voidmain()
{longin;
longreverse(longnumber);
printf(“Enteraninteger:
”);
scanf(“%ld”,&in);
printf(“Afterreversed:
%ld\n”,(5));
}
longreverse(longnumber)
{intflag;
(6);
flag=number<0?
–1:
1;
if((7))number=-number;
while(number!
=0){
res=(8);
number/=10;
}
returnflag*res;
}
(5)A.reverse()B.in
C.reverse(in)D.reverse
(6)A.res=0B.longres
C.longres=0D.res
(7)A.number>0B.number<0
C.number!
=0D.number==0
(8)A.number%10B.res*10+number%10
C.number/10D.res*10+number/10
试题三(每小题3分,共12分)
说明:
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑出一个正确答案。
[程序说明]输入一个3行2列的矩阵,分别输出出各行元素之和。
运行示例:
Enteranarray:
63
1–8
312
sumofrow0is9
sumofrow1is-7
sumofrow2is15
[程序]
#include
voidmain()
{intj,k,sum=0;
inta[3][20];
printf(“Enteranarray:
\n”);
for(j=0;j<3;j++)
for(k=0;k<2;k++)
scanf(“%d”,___(9)___);
for(j+0;j<3;j++){
___(10)___
for(k=0;k<2;k++)
sum=__(11)__;
(“sumofrow%dis%d\n”,__(12)__,sum);
}
}
(9)A.a[j][k]B.a[k][j]
C.&a[j][k]D.&a[]k[j]
(10)A.;B.sum=-1;
C.su,m=1;D.sum=0
(11)A.sum+a[j][k]B.sum+a[j][j]
C.sum+a[k][k]D.0
(12)A.kB.jC.0D.1
试题四(每小题3分,共12分)
说明:
阅读下列程序回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
[程序]
#include
voidmain()
{intk;
for(k=5;k>0;k--)
{
if(k==3)
continue;/*第6行*/
printf(“%d”,k);
}
}
(13)程序的输出是____(13)___
A.54321B.5421C.54D.3
(14)将第6行中的continue改为break后,程序的输出是____(14)______
A.54321B.5421C.54D.3
(15)将第6行中的continue删除(保留分号)后,程序的输出是____(15)______
A.54321B.5421C.54D.3
(16)将第6行全部删除后,程序的输出是____(16)______
A.54321B.5421C.54D.3
试题五(每小题3分,共12分)
说明:
阅读下列程序(段)并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】
#include
voidmain()
{charc,s[80]=”HappyNewYear”;
inti;
voidf(char*s,charc);
c=getchar();
f(s,c);
puts(s);
}
voidf(char*s,charc)
{
intk=0,j=0;
while(s[k]!
=’\0’){
if(s[k]!
=c){
s[j]=s[k];
j++;
}
k++;
}
s[j]=’\0’;
}
(17)程序运行时,输入字母a,输出(17).
A.HappyNewYearB.HappyNewYer
C.HayNewYearD.HappyNwYar
(18)程序运行时,输入字母e,输出(18).
A.HappyNewYearB.HappyNewYer
C.HayNewYearD.HappyNwYar
(19)程序运行时,输入字母p,输出(19).
A.HappyNewYearB.HappyNewYer
C.HayNewYearD.HappyNwYar
(20)程序运行时,输入字母b,输出(20).
A.HappyNewYearB.HppyNewYer
C.HayNewYearD.HappyNwYar
试题六(每小题3分,共12分)
说明:
阅读下列程序(段)并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
#include
structst{
intx,y,z;
};
voidf(structst*t,intn);
voidmain()
{intk,n;
structsttime;
scanf(“%d%d%d%d”,&time.x,&time.y,&time.z,&n);
f(&time,n);
printf(“%d:
%d:
%d\n”,time.x,time.y,time.z);
}
voidf(structst*t,intn)
{
t->z=t->z+n;
if(t->z>=60){
t->y=t->y+t->z/60;
t->z=t->z%60;
}
if(t->y>=60){
t->x=t->x+t->y/60;
t->y=t->y%60;
}
if(t->x>=24)t->x=t->x%24;
}
(21)程序运行时,输入12125010,输出(21)。
A、12:
12:
0B、12:
12:
50C、12:
12:
60D、12:
13:
0
(22)程序运行时,输入12123010,输出(22)。
A、12:
12:
0B、12:
12:
10C、12:
12:
30D、12:
12:
40
(23)程序运行时,输入22593030,输出(23)。
A、23:
0:
0B、22:
59:
60C、22:
59:
30D、22:
0:
0
(24)程序运行时,输入23590300,输出(24)。
A、0:
4:
0B、23:
59:
300C、23:
59:
00D、23:
0:
0
试题七(14分)
编写程序,输入100个学生的英语成绩,统计并输出该门课程的平均分以及不及格学生的人数。
试题八(14分)
编写程序,输入一个正整数n,计算并输出下列算式的值。
要求定义和调用函数total(n)计算1+1/2+1/3+……+1/n,函数返回值的类型是double。
2007年春浙江省高等学校
计算机等级考试试卷(二级C)
说明:
考生应将所有试题的答案填写在答卷上。
其中试题1~试题6,请在答卷上各小题正确选项的