秋季浙江省二级C试题.docx
《秋季浙江省二级C试题.docx》由会员分享,可在线阅读,更多相关《秋季浙江省二级C试题.docx(10页珍藏版)》请在冰豆网上搜索。
![秋季浙江省二级C试题.docx](https://file1.bdocx.com/fileroot1/2022-11/16/501555f0-a8a5-4170-985a-b825890b698d/501555f0-a8a5-4170-985a-b825890b698d1.gif)
秋季浙江省二级C试题
2007年秋浙江省高校
计算机等级考试试卷(二级C)
试题1(每小题3分,共12分)
程序说明输入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
程序:
#include
main()
{intfahr,lower,upper;
doublecelsius;
printf("Enterlower:
");
scanf("%d",&lower);
printf("Enterupper:
");
scanf("%d",&upper);
printf("fahrcelsius\n");
for(fahr=lower;
(1);
(2))
{
celsius=(3);
printf("%d(4)\n",fahr,celsius);
}
}
【供选择的答案】
(1)A、fahr<=upperB、fahrC、fahr>=upperD、fahr>upper答案:
A
(2)A、fahr++B、fahr=fahr-2
C、fahr+2D、fahr=fahr+2答案:
D
(3)A、5*(fahr-32)/9B、(5.0/9.0)*(fahr-32)
C、5/9*(fahr-32)D、5*fahr-32/9答案:
B
(4)A、%6dB、%6.2f
C、%6.1fD、%6.0f答案:
C
试题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
#include
main()
{inti,n;
longa,sn;
longfn(longa,intn);
printf("Entera:
");
scanf("%ld",&a);
printf("Entern:
");
scanf("%d",&n);
(5)
for(i=1;i<=n;i++)
(6)
printf("sum=%ld\n",sn);
}
longfn(longa,intn)
{inti;
longtn=0;
for(i=1;i<=n;i++)
{
tn=tn+a;
(7)
}
(8)
}
【供选择的答案】
(5)A、sn=0;B、;
C、sn=1;D、sn=a;答案:
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);答案:
A
(7)A、tn=tn*10B、a=a*10;
C、sn=tn*10;D、sn=sn+a*10答案:
B
(8)A、return;B、returnsn;
C、returna;D、returntn;答案:
D
试题3(每小题3分,共12分)
程序说明
输入一行以回车结束的字符串(少于80个字符),删除其中的英文字母和数字字符以外的其它字符,再判断字符串是否对称(不区分大小写)。
运行示例1:
Enterastring:
MadamI'mAdam
Yes
运行示例2:
Enterastring:
elephant
No
程序
#include
(9)
main()
{intflag,i,k,length;
charstr[80];
printf("Enterastring:
");
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)
k++;
}
i++;
}
(11)
length=k;
flag=1;
for(k=0;k<=length/2;k++)
if(str[k]!
=str[length-k-1])
{
(12)
break;
}
if(flag)printf("yes\n");
elseprintf("no\n");
}
【供选择的答案】
(9)A、ctype.hB、string.h答案:
A
C、stdio.hD、math.h
(10)A、i++;B、str[k]=str[i];
C、str[i]=str[k];D、;答案:
B
(11)A、str[i]=’\0’;B、str[i-1]=’\0’;
C、str[k]=’\0’;D、;答案:
C
(12)A、flag=1;B、flag=0;
C、;D、continue;答案:
B
试题4(每小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。
[程序]
#include
main()
{inti,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,输出。
A、3B、3#3
C、3#4D、3#5答案:
A
(14)、程序运行时,输入9,输出。
A、3B、3#3
C、3#4D、3#5答案:
B
(15)、将程序第8行改为“continue;”程序运行时,输入9,输出。
A、3B、3#3
C、3#4D、3#5答案:
D
(16)、将程序第8行改为“;”程序运行时,输入9,输出。
A、3B、3#3
C、3#4D、3#5答案:
D
试题5(每小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。
[程序]
#include
main()
{
inti,j,temp;
inta[3][3]={1,2,3,4,5,6,7,8,9};
voidf(int*x,int*y);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(if(&a[i][j],&a[j][i]);//第8行
for(i=0;i<3;i++)
for(j=0;j<3;j++)
printf("%2d",a[i][j]);
}
voidf(int*x,int*y)
{intt;
t=*x;*x=*y;*y=t;
}
(17)程序的输出是。
A、32164987B、789456123
C、123456789D、147258369答案:
D
(18)、第8行改为“f(&a[i][j],&a[j][i]);”后,程序的输出。
A、32164987B、789456123
C、123456789D、147258369答案:
C
(19)、第8行改为“if(i<2)f(&a[i][j],&a[2-i][j]);”后,程序的输出。
A、32164987B、789456123
C、123456789D、147258369答案:
B
(20)、第8行改为“if(j<2)f(&a[i][j],&a[i][2-j]);”后,程序的输出。
A、32164987B、789456123
C、123456789D、147258369答案:
A
试题6(每小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。
[程序]
#include
main()
{
inti,x1,x2;
inta[5]={1,2,3,4,5};
voidf1(intx,inty),f2(int*x,int*y);
x1=x2=0;
for(i=0;i<5;i++)
{
if(a[i]>a[x1])x1=i;
if(a[i]}
f2(&a[x1],&a[0]);
for(i=0;i<5;i++)printf("%2d",a[i]);
printf("\n");
f1(a[x2],a[1]);
for(i=0;i<5;i++)printf("%2d",a[i]);
printf("\n");
f2(&a[x2],&a[4]);
for(i=0;i<5;i++)printf("%2d",a[i]);
printf("\n");
f1(a[x1],a[3]);
for(i=0;i<5;i++)printf("%2d",a[i]);
printf("\n");
}
voidf2(int*x,int*y)
{intt;
t=*x;*x=*y;*y=t;
}
voidf1(intx,inty)
{intt;
t=x;x=y;y=t;
}
(21)、程序运行时,第1行输出。
A、12345B、21345
C、12354D、52341答案:
D
(22)、程序运行时,第2行输出。
A、12345B、21345
C、12354D、52341答案:
D
(23)、程序运行时,第3行输出。
A、12345B、21345
C、12354D、52341答案:
A
(24)、程序运行时,第4行输出。
A、12345B、21345
C、12354D、52341答案:
A
试题7(28分)
从n个不同的元素中,每一次取出k个不同的元素,不管其顺序全并面一组,称为组合。
组合种数的计算公式如下:
1、定义函数fact(n)计算n的阶乘:
n!
=1*2*3*……*n,函数的返回值类型是double。
2、定义函数cal(k,n)计算组合种数
,函数的返回值类型是double,要求调用fact(n)计算n的阶乘。
3、定义函数main(),输入整数n,计算并输出n的所有组合数