浙江省计算机二级c语言试题Word文件下载.docx
《浙江省计算机二级c语言试题Word文件下载.docx》由会员分享,可在线阅读,更多相关《浙江省计算机二级c语言试题Word文件下载.docx(21页珍藏版)》请在冰豆网上搜索。
C、t!
=0D、number!
=0答案:
A
(3)A、power==0B、digit!
=0
C、number!
=0D、power>
=1答案:
D
(4)A、number/=power;
B、number%=10;
C、number%=power;
D、number/=10;
C
试题2(第小题3分,共12分)
【程序说明】
连续输入一批学生的成绩,直到输入成绩的数量超过50或者输入成绩不是有效成绩(有效成绩为0-100),将输入的有效成绩存入数组mark中,在数组中查找并输出最高分。
函数getmax(array,n)在有n个元素的一维数组array中找出并返回最大值。
entermarks:
90807765–1
max=90
#defineMAXNUM50
intgetmax((5))
{
intk,max;
(6)
for(k=1;
k<
n;
k++)
if(max<
array[k])max=array[k];
returnmax;
{intk,x;
intmark[MAXNUM];
k=0;
x);
while((7))
{mark[k++]=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<
MAXNUM||x>
=0&
&
x<
=100
B、k<
MAXNUM&
x>
C、k>
=0||x<
D、k>
=100答案:
(8)A、mark,kB、mark
C、mark[]D、mark,n答案:
试题3(第小题3分,共12分)
输入一个4行4列的矩阵,计算并输出矩阵除四边以外的所有元素之和sum1,再计算和输出该矩阵主对角线以上(含主结角线)的所有元素之和sum2,主对角线为从矩阵左上角到右下角的连线。
enteranarray:
1234
5678
9101112
13141516
sum1=34
sum2=70
{intj,k,sum;
inta[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
for(j=0;
j<
4;
j++)
for(k=0;
a[j][k]);
sum=0;
if((9))
sum+=a[j][k];
sum1=%d\n"
sum);
(10)
for((11);
(12);
sum2=%d\n"
(9)A、j!
=3&
k!
j!
=0
B、j!
=3||j!
C、j!
=3||k!
=0||k!
=0
D、j!
=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>
jD、k<
4答案:
试题4(第小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。
[程序]
{inti,j,k;
scanf("
i);
j=k=0;
if((i/10)>
0)//第7行
j=i;
if((i!
=0)&
(j==0))
k=i;
else
k=-1;
//第12行
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分)
intk=1;
voidfun();
{intj;
for(j=0;
2;
fun();
k=%d"
k);
voidfun()
{intk=1;
//第11行
k=%d,"
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分)
structst
{charc;
char*s;
};
char*f(structstt)
{intk=0;
while(t.s[k]!
='
\0'
)
{if(t.s[k]==t.c)returnt.s+k;
k++;
returnt.s;
{intk;
structsta[4]={{'
1'
"
123"
},{'
2'
321"
3'
4'
}};
%s\n"
f(a[k]));
(21)程序运行时,第1行输出(21)。
A、321B、21
C、123D、12答案:
(22)程序运行时,第1行输出(22)。
A、21B、12
C、3D、1答案:
(23)程序运行时,第1行输出(23)。
A、3B、123
C、1D、321答案:
(24)、程序运行时,第1行输出(24)。
A、123B、1
C、3D、321答案:
试题7(28分)
某某客户购房办理商业贷款,选择了按月等额本息还款法,在贷款本金loan和月利率rate一定的情况下,住房贷款的月还款额money取决于还款月数month,计算公式如下:
(1)定义函数cal_power(x,n)计算x的n次幂(即xn),函数的返回值是double;
(2)定义函数cal_money(loan,rate,month)计算月还款额,函数的返回值是double,要求调用函数cal_power计算x的n次幂;
(3)定义函数main(),输入垡贷款本金loan和月利率rate,输出还款年限-月还款客表,还款年限是5~30,输出时分别精确到年和元。
要求调用函数cal_money计算月还款额。
程序:
doublecal_power(doublex,intn)
{inti;
doublepower=1;
for(i=1;
i<
=n;
i++)
power*=x;
returnpower;
doublecal_money(doubleloan,doublerate,intmonth)
{doublemoney;
money=loan*cal_power(1+rate,month)/(cal_power(1+rate,month)-1);
returnmoney;
main()
{doubleloan,rate,money;
intmonth,i;
请输入贷款本金loan和月利率rate:
%lf,%lf"
loan,&
rate);
还款年限月还款额\n"
for(i=5;
=30;
{money=cal_money(loan,rate,i*12);
%d%f\n"
i,money/(i*12));
2007年秋浙江省高校
输入2个整数lower和upper,输出一张华氏-摄氏转换表,华氏温度的取值范围[lower,upper],每次增加2F,计算公式:
c=5*(f-32)/9;
式中c表示摄氏,f表示华氏。
Enterlower:
30
Enterupper:
35
fahrcelsius
30-1.1
320.0
341.1
{intfahr,lower,upper;
doublecelsius;
lower);
upper);
fahrcelsius\n"
for(fahr=lower;
(1);
(2))
{
celsius=(3);
%d(4)\n"
fahr,celsius);
(1)A、fahr<
=upperB、fahr<
upper
C、fahr>
=upperD、fahr>
upper答案:
(2)A、fahr++B、fahr=fahr-2
C、fahr+2D、fahr=fahr+2答案:
(3)A、5*(fahr-32)/9B、(5.0/9.0)*(fahr-32)
C、5/9*(fahr-32)D、5*fahr-32/9答案:
(4)A、%6dB、%6.2f
C、%6.1fD、%6.0f答案:
试题2(每小题3分,共12分)
输入2个正数a和n,求a+aa+aaa+……+a(n个a)这和,要求定义并调用函数fn(a,n),这它的功能是返回aa…a(n个a)。
例如fn(3,2)的返回是33。
Entera:
2
Entern:
3
sum=246
{inti,n;
longa,sn;
longfn(longa,intn);
printf("
%ld"
a);
n);
(5)
for(i=1;
(6)
sum=%ld\n"
sn);
longfn(longa,intn)
{inti;
longtn=0;
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*10B、a=a*10;
C、sn=tn*10;
D、sn=sn+a*10答案:
(8)A、return;
B、returnsn;
C、returna;
D、returntn;
试题3(每小题3分,共12分)
输入一行以回车结束的字符串(少于80个字符),删除其中的英文字母和数字字符以外的其它字符,再判断字符串是否对称(不区分大小写)。
运行示例1:
Enterastring:
MadamI'
mAdam
Yes
运行示例2:
elephant
No
程序
(9)
{intflag,i,k,length;
charstr[80];
gets(str);
i=k=0;
while(str[i])
if(isupper(str[i]))str[i]=tolower(str[i]);
if(isdigit(str[i])||isalpha(str[i]))
{(10)
i++;
(11)
length=k;
flag=1;
=length/2;
if(str[k]!
=str[length-k-1])
(12)
break;
if(flag)printf("
yes\n"
no\n"
【供选择的答案】
(9)A、ctype.hB、string.h答案:
C、stdio.hD、math.h
(10)A、i++;
B、str[k]=str[i];
C、str[i]=str[k];
D、;
答案:
(11)A、str[i]=’\0’;
B、str[i-1]=’\0’;
C、str[k]=’\0’;
(12)A、flag=1;
B、flag=0;
C、;
D、continue;
试题4(每小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。
{inti,m;
m);
for(i=2;
=m/2;
if(m%i==0)
%d#"
i);
//第8行
(13)、程序运行时,输入5,输出。
A、3B、3#3
C、3#4D、3#5答案:
(14)、程序运行时,输入9,输出。
C、3#4D、3#5答案:
(15)、将程序第8行改为“continue;
”程序运行时,输入9,输出。
A、3B、3#3
(16)、将程序第8行改为“;
试题5(每小题3分,共12分)
inti,j,temp;
inta[3][3]={1,2,3,4,5,6,7,8,9};
voidf(int*x,int*y);
for(i=0;
3;
if(i<
j)f(&
a[i][j],&
a[j][i]);
%2d"
a[i][j]);
voidf(int*x,int*y)
{intt;
t=*x;
*x=*y;
*y=t;
(17)程序的输出是。
A、32164987B、789456123
C、123456789D、147258369答案:
(18)、第8行改为“f(&
”后,程序的输出。
(19)、第8行改为“if(i<
2)f(&
a[2-i][j]);
(20)、第8行改为“if(j<
a[i][2-j]);
A、321654987B、789456123
试题6(每小题3分,共12分)
inti,x1,x2;
inta[5]={1,2,3,4,5};
voidf1(intx,inty),f2(int*x,int*y);
x1=x2=0;
5;
if(a[i]>
a[x1])x1=i;
if(a[i]<
a[x2])x2=i;
f2(&
a[x1],&
a[0]);
i++)printf("
a[i]);
f1(a[x2],a[1]);
a[x2],&
a[4]);
f1(a[x1],a[3]);
voidf2(int*x,int*y)
voidf1(intx,inty)
t=x;
x=y;
y=t;
(21)、程序运行时,第1行输出。
A、12345B、21345
C、12354D、52341答案:
(22)、程序运行时,第2行输出。
(23)、程序运行时,第3行输出。
(24)、程序运行时,第4行输出。
A、12345