浙江省高校计算机等级考试二级C笔试试题.docx
《浙江省高校计算机等级考试二级C笔试试题.docx》由会员分享,可在线阅读,更多相关《浙江省高校计算机等级考试二级C笔试试题.docx(23页珍藏版)》请在冰豆网上搜索。
浙江省高校计算机等级考试二级C笔试试题
2009年秋浙江省高等学校
计算机等级考试试卷(二级C)
试题1(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
计算并输出下列式值,要求精确到最后一项的绝对值小于10-3(保留4伴小数)。
运行示例:
sum=-0.8361
【程序】
#include
#include
main()
{
intdenomintor=1,flag=1;
doubleitem,sum=0;
(1)
while(
(2))
{
(3)
denomintor=denomintor+3;
flag=-flag;
}
printf("sum=(4)\n",sum);
}
【供选择的答案】
(1)A.item=0;B.fitem=0.0001;
C.;D.item=2;//答案D
(2)A.fabs(item)>=1E-3B.fabs(item)<1E-3
C.fabs(item)>=0.0001D.fabs(item)<0.001//答案A
(3)A.sum=sum+item;item=flag*1.0/denominator;
B.sum=sum+flag*1.0/denominator;
C.item=flag*1.0/denominator;sum=sum+item;
D.item=item+flag*1.0/denominator;//答案C
(4)A.%.0fB.%.4f
C.%fD.%4.f//答案B
试题2(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
输出1到100之间的所有完数,要求定义和调用函数is(n)判断n是否为完数,若n为完数返回1,否则返回0。
完数是因子和与它本身相等的数,1不是完数。
运行示例:
628
【程序】
#include
main()
{
inti;intis(intn);
for(i=1;i<=100;i++)
if((5))
printf("%d",i);
}
intis(intn)
{
inti,sum;
(6)
sum=0;
for(i=1;i<=n/2;i++)
if((7))
sum=sum+i;
if((8))return1;
elsereturn0;
}【供选择的答案】
(5)A.is(i)==0B.is(i)!
=0
C.!
is(i)D.is(n)//答案B
(6)A.is(n!
=1)return1;
B.is(n!
=1)return0;
C.is(n==1)return0;
D.is(n==1)return1;//答案C
(7)A.n%i==0B.n%i!
=0
C.i%n==0D.i%n!
=0//答案A
(8)A.n==0B.sum!
=n
C.i>n/2D.sum==n//答案D
试题3(每小题3分,共12分)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
计算并输出Fibonacci序列前10项之和。
要求定义和调用函数fun(fib,n),该函数将Fibonacci序列前n项的存放在一维数组fib中。
Fibonacci序列:
1,2,3,5,8,13,21,34,55,……,该序列的第一个数和第二数据是1,从第三个开始,每个数是前两数之和。
运行示例:
sum=143
【程序】
#include
main()
{inti,sum,a[10];
(9)
(10)
sum=0;
for(i=0;i<10;i++)
sum+=(11);
printf("sum=%d",sum);
}
voidfun(intfib[],intn)
{inti;
fib[0]=fib[1]=1;
for(i=2;i(12)
}
【供选择的答案】
(9)A.fun(intfib[],intn);B.voidfun(intfib[],intn)
C.;D.voidfun(intfib[],intn);//答案D
(10)A.fun(fib,10);B.fun(a[],10);
C.fun(a,10);D.fun(a[10],10);//答案C
(11)A.fib[i]B.a[i]
C.a[10]D.fib[0]//答案B
(12)A.fib[i]=fib[i-1]+fib[i-2];
B.fib[i-1]=fib[i-2]+fib[i-3];
C.fib[i+1]=fib[i-1]+fib[i];
D.fib[i]=fib[i-1]+fib[i+1];//答案A
试题4(每小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】
#include
#defineS(a,b)(a)>(b)?
(a):
(b)
intf1(charch)
{intgrade;
switch(ch)
{
case'A':
grade=95;break;
case'B':
grade=85;break;
case'C':
grade=75;
case'D':
grade=65;break;
default:
grade=0;
}
returngrade;
}
intf2()
{
staticintk=1,s;
s=s+k;
k++;
returns;
}
intf3(intn)
{
if(n==1)return2;
elsereturnf3(n-1);
}
main()
{
inti;
printf("%d\n",f1('C'));
for(i=1;i<=3;i++)
f2();
printf("%d\n",f2());
printf("%d\n",f3(4));
printf("%d\n",S(3,2+2));
}
(13)程序运行时,第1行输出(13)。
A.65B.0
C.75D.95//答案A
(14)程序运行时,第2行输出(14)。
A.10B.1
C.6D.2//答案A
(15)程序运行时,第3行输出(15)。
A.24B.2
C.10D.1//答案B
(16)程序运行时,第4行输出(16)。
A.3B.4
C.5D.1//答案B
试题5(每小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】
程序1
#include
main()
{
inti,j,a[3][3]={1,0,0,4,5,0,7,8,9};
intflag=1;
for(i=0;i<3;i++)
for(j=0;j
flag=a[i][j];
printf("%d\n",flag);
for(j=2;j>0;j--)
for(i=2;i>=j;i--)
flag=a[i][j];
printf("%d\n",flag);
}
程序2
#include
main()
{
charstr[10]="4Ae2E";
inti;
for(i=0;str[i];i++)
if(str[i]>='a'&&str[i]<='z')
putchar(str[i]);
putchar('\n');
for(i=0;str[i];i++)
if(str[i]>='a'&&str[i]<='z')
putchar(str[i]-'a'+'A');
elseif(str[i]>='A'&&str[i]<='Z')
putchar(str[i]-'A'+'a');
putchar('\n');
}
(17)程序运行时,第1行输出(17)。
A.0B.1
C.8D.9//答案C
(18)程序运行时,第2行输出(18)。
A.9B.7
C.5D.1//答案C
(19)程序运行时,第3行输出(19)。
A.AeEB.a
C.aeD.e//答案D
(20)程序运行时,第4行输出(20)。
A.4Ae2EB.42
C.AeED.aEe//答案D
试题6(每小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】
#include
#include
main()
{
inti,j;
charstr[10],*s[10]={"SQL","hello","bear","zone"};
gets(str);
for(i=0;i<4;i++){
if(strcmp(str,s[i])>0)continue;
j=3;
while(j>=i){
s[j+1]=s[j];
j--;
}
s[i]=str;
break;
}
if(i==4)s[4]=str;
for(i=0;i<5;i++)
printf("%s",s[i]);
putchar('\n');
}
(21)程序运行时,输入apple,输出(21)。
A.SQLapplehellobearzone
B.appleSQLhellobearzone
C.SQLhellobearzoneapple
D.SQLhelloapplebearzone//答案A
(22)程序运行时,输入I,输出(22)。
A.SQLhellobearIzone
B.ISQLhellobearzone
C.SQLIhellobearzone
D.SQLhellobearzoneI//答案B
(23)程序运行时,输入zoo,输出(23)。
A.zooSQLhellobearzone
B.SQLhellobearzoozone
C.SQLhellobearzonezoo
D.SQLhellobearzoozone//答案C
(24)程序运行时,输入orange,输出(24)。
A.SQLorangehellobearzone
B.SQLhelloorangebearzone
C.orangeSQLhellobearzone
D.SQLhellobearorangezone//答案D
试题7(28分)
1.编写程序,编写程序输入100个整数,将它们存入数组a中,查找并输出数组a中最小值。
参考程序:
#include
#defineN100
main()
{
inta[N],i,min;
printf("请输入%d个整数:
",N);
for(i=0;iscanf("%d",&a[i]);//输入100个整数
min=a[0];
for(i=1;iif(min>a[i])min=a[i];//求最小值
printf("最小值是%d\n",min);//输出最小值
}
2.按下面要求编写程序:
(1)定义函数cal_power(x,n)计算x的n次幂(xn),函数的返回值勤类型是double。
(2)定义函数main(),输入两个浮点数x和整数n,计算并输出下列算式的值。
要求调用函数cal_power(x,n)计算x的n次幂。
参考程序:
#include
doublecal_power(doublex,intn)//第
(1)题
{inti;
doublet=1;
for(i=1;i<=n;i++)
t=t*x;
returnt;
}
main()//第
(2)题
{
doublex,sum=0;
inti,n;
scanf("%f,%d",&x,&n);
for(i=1;i<=n;i++)
sum+=1/cal_power(x,i);
printf("%f\n",sum);
}
2010年上半年浙江省高等学校计算机等级考试
二级C程序设计试卷
一、程序阅读与填空(24小题,每小题3分同,共72分)
1.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
输入一个正整数,求它的各位数字及位数,例如,17的各位数字之和是8,位数是2。
运行示例:
Enteraninteger:
-153
sum=9,count=3
【程序】
#include
main()
{
intcount=0,in,sum=0;
printf("Enteraninteger:
");
scanf("%d",&in);
if(
(1))in=-in;
do
{
sum=sum+
(2);
(3);
count++;
}while((4));
printf("sum=%d,count=%d\n",sum,count);
}【供选择的答案】
(1)A.in==0B.in>0
C.in!
=0D.in<0//答案D
(2)A.in/10B.inmod10
C.in%10D.in//答案C
(3)A.in=in%10B.in/10
C.in=in/10D.in%10//答案C
(4)A.in%10!
=0B.in!
=0
C.!
inD.in/10!
=0//答案B
2.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
输出50到70之间的所有素数,要求定义和调用函数isprime(m)判断m是否为素数,当m为素数时返回1,否则返回0。
素数就是只能被1和自身整除的正整数,1不是素数,2是素数。
运行示例:
53596167
【程序】
#include
#include
main()
{inti,isprime(intm);
for(i=50;i<=70;i++)
if((5))
printf("%d",i);
}
intisprime(intm)
{
inti,k;
(6);
k=(int)sqrt((double)m);
for(i=2;i<=k;i++)
if(m%i==0)(7);
(8);
}
【供选择的答案】
(5)A.isprime(m)!
=0B.isprime(i)!
=0
C.isprime(m)==0D.isprime(i)==0//答案B
(6)A.if(m!
=1)return1;B.if(m==1)return0;
C.;D.if(m==1)return1;//答案B
(7)A.return0B.return1
C.returni<=kD.return//答案A
(8)A.return1B.return0
C.returnD.returni<=k//答案A
3.阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序说明】
输入6个整数,找出最小的数,将它和最后一个数交换,然后输出这6个数。
要求定义和调用函数swap(x,y),该出函数交换指针所指向单元的内容。
运行示例:
Enter6integers:
61821097
Afterswaped:
69782101
【程序】
#include
voidswap(int*x,int*y)
{
intt;
(9);
}
main()
{
inti,index,a[10];
printf("Enter6integers:
");
for(i=0;i<6;i++)
scanf("%d",&a[i]);
(10);
for(i=1;i<6;i++)
if(a[index]>a[i])
(11);
(12);
printf("Afterswaped:
");
for(i=0;i<6;i++)
printf("%d",a[i]);
printf("\n");
}
【供选择的答案】
(9)A.t=*x,*x=*y,*y=t
B.t=x,x=y,y=t
C.*t=*x,*x=*y,*y=*t
D.&t=x,x=y,y=&//答案A
(10)A.index=0B.index=5
C.index=indexD.index=i//答案A
(11)A.a[index]=a[i]B.i=index]
C.a[i]=a[index]D.index=i//答案D
(12)A.swap(a[index],a[5])
B.swap(*a[index],*a[5])
C.swap(a[*index],a[*5])
D.swap(&a[index],&a[5])//答案D
4.阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】
#include
#defineT(c)(((c)>='0')&&((c)<'9')?
(c)-'0':
-1)
voidf1(charch)
{
switch(ch)
{
case'0':
printf("0");
case'1':
printf("1");
case'2':
printf("2");break;
case'3':
printf("3");
default:
printf("9");
}
printf("\n");
}
doublef2()
{
return(double)(5/2);
}
doublef3(intn)
{
if(n==1)return1.0;
elsereturn1.0+1.0/f3(n-1);
}
main()
{
printf("%d%d\n",T('7'),T('a'));
f1('1');
printf("%0.1f\n",f2());
printf("%.3f\n",f3(4));
}
(13)程序运行时,第1行输出(13)。
A.7-1B.-17
C.7aD.-1-1//答案A
(14)程序运行时,第2行输出(14)。
A.1239B.12
C.1D.9//答案B
(15)程序运行时,第3行输出(15)。
A.2.5B.2
C.2.0D.3//答案C
(16)程序运行时,第4行输出(16)。
A.1.00B.2.000
C.1.500D.1.667//答案D
5.阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】
程序1
#include
main()
{
inti,j,t,a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
for(i=0;i<3;i++)
for(j=0;j<=i/2;j++)
{
t=a[i][j],a[i][j]=a[i][3-j],a[i][3-j]=t;}
printf("%d\n",a[0][1]);
printf("%d\n",a[2][2]);
}
程序2
#include
main()
{
charstr[10]="27";
inti,number=0;
for(i=0;str[i]!
='\0';i++)
if(str[i]>='0'&&str[i]<='7')
number=number*8+str[i]-'0';
printf("%d\n",number);
for(i=0;str[i]!
='\0';i++)
if(str[i]>='0'&&str[i]<='5')
number=number*6+str[i]-'0';
printf("%d\n",number);
}
(17)程序1运行时,第1行输出(17)。
A.3B.4
C.1D.2//答案D
(18)程序1运行时,第2行输出(18)。
A.12B.11
C.10D.9//答案C
(19)程序2运行时,第1行输出(19)。
A.2B.27
C.23D.16//答案C
(20)程序2运行时,第2行输出(20)。
A.19B.140
C.147D.2//答案B
6.阅读下列程序并回答问题,在每小题提供的若干可选答案中,挑选一个正确答案。
【程序】
#include
main()
{
inti,j;
charch,*p1,*p2,*s[4]={"four","hello","peak","apple"};
for(i=0;i<4;i++)
{
p1=p2=s[i];
ch=*(p1+i);
while(*p1!
='\0')
{
if(*p1!
=ch)
{
*p2=*p1;
p2++;
}
p1++;
}
*p2='\0';
}
for(i=0;i<4;i+