returnmax;
}
voidmain()
{intk,x;
intmark[MAXNUM];
printf("Entermarks:
");
k=0;
scanf("%d",&x);
while((7)){
mark[k++]=x;
scanf("%d",&x);
}
if(k>0)printf("Max=%d\n",getmax((8)));
elseprintf("Nomarks!
\n");
}
【供选择的答案】
(5)A、intn;intarray[]B、void
C、int*arrayD、intarray[],intn
(6)A、max=0;B、;
C、max=array[0];D、max=array[n];
(7)A、k=0&&x<=100
B、k=0&&x<=100
C、k>MAXNUM&&x>=0||x<=100
D、k>MAXNUM||x>=0||x<=100
(8)A、mark,kB、mark
C、mark[]D、mark,n
试题3(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
输入一个4行4列的矩阵,计算并输出该矩阵除4条边以外的所有元素之和sum1,再计算和输出该矩阵主对角线以上(含主对角线)的所有元素之和sum2,主对角线为从矩阵的左上角至右下角的连线。
运行示例:
Enteranarray:
1234
5678
9101112
13141516
sum1=34
sum2=70
【程序】
#include
voidmain()
{intj,k,sum;
inta[4][4];
printf("Enteranarray:
\n");
for(j=0;j<4;j++)
for(k=0;k<4;k++)
scanf("%d",&a[j][k]);
sum=0;
for(j=0;j<4;j++)
for(k=0;k<4;k++)
if((9))
sum+=a[j][k];
printf("sum1=%d\n",sum);
(10)
for(j=0;j<4;j++)
for((11);(12);k++)
sum+=a[j][k];
printf("sum2=%d\n",sum);
}
【供选择的答案】
(9)A、j!
=3&&k!
=3&&j!
=0&&k!
=0
B、j!
=3&&k!
=3||j!
=0&&k!
=0
C、j!
=3||k!
=3&&j!
=0||k!
=0
D、j==3&&k==3||j==0&&k==0
(10)A、sum1=0;B、sum=0;
C、sum2=0;D、;
(11)A、k=0B、k=j
C、k=1D、k=3
(12)A、k<=jB、k>0
C、k>jD、k<4
试题4(每小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】
#include
voidmain()
{inti,j,k;
scanf("%d",&i);
j=k=0;
if((i/10)>0)/*第7行*/
j=i;
if((i!
=0)&&(j==0))
k=i;
else
k=-1;/*第12行*/
printf("j=%d,k=%d\n",j,k);
}
(13)程序运行时,输入5,输出(13)。
A、j=0,k=5B、j=5,k=5
C、j=0,k=-1D、j=5,k=-1
(14)程序运行时,输入99,输出(14)。
A、j=99,k=-1B、j=0,k=-1
C、j=0,k=99D、j=99,k=99
(15)将第12行改为“k=-1;j=i/10;”后,程序运行时,输入99,输出(15)。
A、j=99,k=-1B、j=9,k=99
C、j=99,k=99D、j=9,k=-1
(16)将第7行改为“if((i/10)>0){”,第12行改为“k=-1;}”后,程序运行时,输入5,输出(16)。
A、j=0,k=-1B、j=0,k=0
C、j=5,k=5D、j=5,k=-1
试题5(每小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】
#include
intk=1;
voidFun();
voidmain()
{ intj;
for(j=0;j<2;j++)
Fun();
printf("k=%d",k);
}
voidFun()
{ intk=1;/*第11行*/
printf("k=%d,",k);
k++;
}
(17)程序的输出是(17)。
A、k=1,k=2,k=3B、k=1,k=2,k=1
C、k=1,k=1,k=2D、k=1,k=1,k=1
(18)将第11行改为“staticintk=1;”后,程序的输出是(18)。
A、k=1,k=1,k=1B、k=1,k=1,k=2
C、k=1,k=2,k=1D、k=1,k=2,k=3
(19)将第11行改为“k=1;”后,程序的输出是(19)。
A、k=1,k=2,k=1B、k=1,k=1,k=1
C、k=1,k=1,k=2D、k=1,k=2,k=3
(20)将第11行改为“;”后,程序的输出是(20)。
A、k=1,k=1,k=2B、k=1,k=2,k=3
C、k=1,k=1,k=1D、k=1,k=2,k=1
试题6(每小题3分,共12分)
#include
structst{
charc;chars[80];
};
char*f(structstt);
voidmain()
{intk;
structsta[4]=
{{'1',"123"},{'2',"321"},{'3',"123"},{'4',"321"}};
for(k=0;k<4;k++)
printf("%s\n",f(a[k]));
}
char*f(structstt)
{intk=0;
while(t.s[k]!
='\0'){
if(t.s[k]==t.c)returnt.s+k;
k++;
}
returnt.s;
}
(21)程序运行时,第1行输出(21)。
A、321B、21
C、123D、12
(22)程序运行时,第2行输出(22)。
A、21B、12
C、3D、1
(23)程序运行时,第3行输出(23)。
A、3B、123
C、1D、321
(24)程序运行时,第4行输出(24)。
A、123B、1
C、3D、321
试题7(28分)
某客户为购房办理商业贷款,选择了按月等额本息还款法,在贷款本金(loan)和月利率(rate)一定的情况下,住房贷款的月还款额(money)取决于还款月数(month),计算公式如下。
客户打算在5~30年的范围内选择还清贷款的年限,想得到一张“还款年限-月还款额表”以供参考。
(1)定义函数cal_power(x,n)计算x的n次幂(即xn),函数返回值类型是double。
(2)定义函数cal_money(loan,rate,month)计算月还款额,函数返回值类型是double,要求调用函数cal_power(x,n)计算x的n次幂。
(3)定义函数main(),输入贷款本金loan(元)和月利率rate,输出“还款年限-月还款额表”,还款年限的范围是5~30年,输出时分别精确到年和元。
要求调用函数cal_money(loan,rate,month)计算月还款额。
2007年春浙江省高等学校
计算机等级考试试卷(二级C)
试题1~6
1
2
3
4
5
6
7
8
9
10
11
12
B
A
D
C
D
C
B
A
A
B
B
D
13
14
15
16
17
18
19
20
21
22
23
24
A
A
D
B
D
C
C
B
C
A
A
D
试题7(28分)
某客户为购房办理商业贷款,选择了按月等额本息还款法,在贷款本金(loan)和月利率(rate)一定的情况下,住房贷款的月还款额(money)取决于还款月数(month),计算公式如下。
客户打算在5~30年的范围内选择还清贷款的年限,想得到一张“还款年限-月还款额表”以供参考。
(4)定义函数cal_power(x,n)计算x的n次幂(即xn),函数返回值类型是double。
(5)定义函数cal_money(loan,rate,month)计算月还款额,函数返回值类型是double,要求调用函数cal_power(x,n)计算x的n次幂。
(6)定义函数main(),输入贷款本金loan(元)和月利率rate,输出“还款年限-月还款额表”,还款年限的范围是5~30年,输出时分别精确到年和元。
要求调用函数cal_money(loan,rate,month)计算月还款额。
#include
doublecal_power(doublex,intn)
{intk;
doubleresult=1;
for(k=1;k<=n;k++)
result*=x;
returnresult;
}
doublecal_money(doubleloan,doublerate,intmonth)
{doubleresult=cal_power(1+rate,month);
result=loan*rate*result/(result-1);
returnresult;
}
voidmain()
{intk,year;
doubleloan,monry,rate;
scanf("%lf%lf%d",&loan,&rate,&month);
for(year=5;year<=30;year++){
money=cal_money(loan,rate,12*year);
printf("year=%d,money=%.0f\n",year,money);
}
}
2006年秋浙江省高等学校
计算机等级考试试卷(二级C)
试题1(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
输入一行字符,统计并输出其中英文字母、数字和其他字符的个数。
运行示例:
Entercharacters:
f(x,y)=3x+5y-10
letter=5,digit=4,other=6
【程序】
#include
voidmain()
{intdigit,i,letter,other;
(1)ch;
digit=letter=other=0;
printf("Entercharacters:
");
while(
(2)!
='\n')
if((3))
letter++;
(4)(ch>='0'&&ch<='9')
digit++;
else
other++;
printf("letter=%d,digit=%d,other=%d\n",letter,digit,other);
}
【供选择的答案】
(1)A、*B、float
C、doubleD、char
(2)A、(ch=getchar())B、ch=getchar()
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、else
C、elseifD、ifelse
试题2(每小题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(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
输入一个3行2列的矩阵,分别输出各行元素之和.
运行示例:
Enteranarray:
63
1-8
312
sumofrow0is9
sumofrow1is-7
sumofrow2is15
【程序】
#include
voidmain()
{intj,k,sum=0;
inta[3][2];
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);
printf("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、sum=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、j
C、0D、1
试题4(每小题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
试题5(每小题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、HppyNewYer
C、HayNewYearD、HappyNwYar
(18)程序运行时,输入字母e,输出(18)。
A、HappyNewYearB、HppyNewYer
C、HayNewYearD、HappyNwYar
(19)程序运行时,输入字母p,输出(19)。
A、HappyNewYearB、HppyNewYer
C、HayNewYearD、HappyNwYar
(20)程序运行时,输入字母b,输出(20)。
A、HappyNewYearB、HppyNewYer
C、HayNewYearD、HappyNwYar
试题6(每小题3分,共12分)
#include
structst{
intx,y,z;
};
voidf(structst*t,intn);
voidmain()
{intk,n;structsttime;
sc