浙江省秋季二级C语言试题.docx
《浙江省秋季二级C语言试题.docx》由会员分享,可在线阅读,更多相关《浙江省秋季二级C语言试题.docx(12页珍藏版)》请在冰点文库上搜索。
浙江省秋季二级C语言试题
2008年秋浙江省高等学校
计算机等级考试试卷(二级C)
试题1(第小题3分,共12分)
【程序说明】
输入一批学生的成绩,遇到负数表示输入结束,要求统计并各等级成绩的学生个数。
成绩等级分为三级,分别为A(90~100)、P(60~80)和F(0~59)。
运行示例:
Enterscores:
887168705981910607783-10
A:
1;P:
8;F:
2;
[程序]
#include
main()
{intmark,a,p,f;
a=p=f=0;
printf("Enterscores:
");
scanf("%d",&mark);
while(
(1))
{
if(mark>=90)
a++;
(2)p++;
(3)f++;
(4)
}
printf("A:
%d;P:
%d;F:
%d;\n",a,p,f);
}
【供选择的答案】
(1)A、mark>=0B、mark>0
C、mark<=0D、mark<0答案:
A
(2)A、elseif(mark>=60)B、if(mark>=60)
C、else(mark>=60)D、if(mark<90)答案:
A
(3)A、else(mark<60)B、else
C、elseif(mark>0)D、elseif(mark<=60)答案:
B或填elseif(mark>=0)
(4)A、scanf("%d",mark);B、scanf("%d",&mark);
C、;D、mark=getchar();答案:
B
试题2(第小题3分,共12分)
【程序说明】
求1~999之间所有满足各位数字的立方之和等于它本身的数。
例如153的秋位数字的立方和是13+53+33=153
运行示例:
1153370371407
[程序`]
#include
main()
{intdigit,j,sum,x;
for(j=1;j<1000;j++){
(5)
(6)
do{
(7)
sum=sum+digit*digit*digit;
x=x/10;
}while((8));
if(j==sum)printf("%d",sum);
}
}
【供选择的答案】
(5)A、sum=0;B、sum=1;
C、sum=j;D、;答案:
A
(6)A、x=1;B、x=j;
C、;D、x=sum;答案:
B
(7)A、digit=x/10;B、digit=x;
C、digit=x%10;D、;答案:
C
(8)A、x==0B、j!
0
C、j==0D、x!
=0答案:
D
试题3(第小题3分,共12分)
【程序说明】
输入10个整数,将它们从大到小排序后输出。
运行示例:
Enter10integers:
1098-9369100-102
Aftersorted:
100981096320-1–9
[程序]
#include
(9)
voidsort((10))
{inti,index,k,t;
for(k=0;kindex=k;
for(i=k+1;iif(a[i]>a[index])index=i;
(11)
}
}
voidswap(int*x,int*y)
{intt;
t=*x;*x=*y;*y=t;
}
main()
{inti,a[10];
printf("Enter10integers:
");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
(12);
printf("Aftersorted:
");
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
}
【供选择的答案】
(9)A、voidswap(int*x,int*y)B、;
C、voidswap(int*x,int*y);D、voidswap(int*x,*y);答案:
C
(10)A、int&a,intnB、int*a,int*n
C、int*a,intnD、inta,int*n答案:
C
(11)A、swap(*a[index],*a[k])B、swap(a[index],a[k])
C、swap(index,k)D、swap(&a[index],&a[k])答案:
D
(12)A、sort(a)B、sort{a[10]}
C、sort(a[],10)D、sort(a,10)答案:
D
试题4(第小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。
[程序]
程序1
#include
main()
{intj,k,s1,s2;
s1=s2=0;
for(j=0;j<=5;j++){
s1++;
for(k=1;k<=j;k++)
s2++;
}
printf("%d%d",s1,s2);
}
程序2
#include
main()
{intj,k,s1,s2;
s1=0;
for(j=1;j<=5;j++){
s1++;
for(k=1,s2=0;k<=j;k++)
s2++;
}
printf("%d%d",s1,s2);
}
程序3
#include
main()
{intj,k,s1,s2;
s1=0;
for(j=1;j<=5;j++){
s1++;
for(k=1;k<=j;k++,s2=0)
s2++;
}
printf("%d%d",s1,s2);
}
程序4
#include
main()
{intj,k,s1,s2;
s1=s2=0;
for(j=1;j<=5;j++,s1=0){
s1++;
for(k=1;k<=j;k++)
s2++;
}
printf("%d%d",s1,s2);
}
(13)程序1运行时。
输出(13)。
答案:
D
A、015B、50
C、55D、515
(14)程序2运行时。
输出(14)。
答案:
C
A、015B、50
C、55D、515
(15)程序3运行时。
输出(15)。
答案:
B
A、015B、50
C、55D、515
(16)程序4运行时。
输出(16)。
答案:
A
A、015B、50
C、55D、515
试题5(第小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。
【程序】
程序1
#include
main()
{inti,m=15,y=-1;
for(i=2;i<=m/2;i++)
if(m%i==0)y=0;
elsey=1;
printf("%d",y);
}
程序2
#include
main()
{inti,m=15,y=-1;
for(i=2;i<=m/2;i++)
if(m%i==0){y=0;break;}
printf("%d",y);
}
程序3
#include
main()
{inti,m=15,y=-1;
for(i=2;i<=m/2;i++)
if(m%i==0)break;
if(i>m/2)y=1;
elsey=0;
printf("%d",y);
}
程序4
#include
main()
{inti,m=15,y=-1;
for(i=2;i<=m/2;i++)
if(m%i==0){break;y=0;}
printf("%d",y);
}
(17)程序1运行时。
输出(17)。
答案:
A
A、1B、0
C、15D、-1
(18)程序1运行时。
输出(18)。
答案:
B
A、1B、0
C、15D、-1
(19)程序1运行时。
输出(19)。
答案:
B
A、1B、0
C、15D、-1
(20)程序1运行时。
输出(20)。
答案:
D
A、1B、0
C、15D、-1
试题6(第小题3分,共12分)
阅读下列程序并回答问题,在每小题提供的若干可选答案中挑选一个正确答案。
【程序】
#include
main()
{intk;
charch,a[10],*s[10]={"one","two","three","four"};
k=0;
while((ch=getchar())!
='\n'&&k<9)
if(ch>'5'&&ch<'8')a[k++]=ch;
a[k]='\0';
for(k=0;a[k]!
='\0';k++)
printf("%s",s['9'-a[k]-1]);
}
(22)程序运行时,输入5678,输出(22)。
答案:
D
A、twothreeB、two
C、onefourthreeD、fourthreetwoone
(23)程序运行时,输入8561#,输出(23)。
答案:
C
A、twothreeB、two
C、onefourthreeD、fourthreetwoone
(24)程序运行时,输入7902#,输出(24)。
答案:
B
A、twothreeB、two
C、onefourthreeD、fourthreetwoone
(25)程序运行时,输入7633#,输出(25)。
答案:
B
A、twothreeB、two
C、onefourthreeD、fourthreetwoone
试题7(28分)
(1)定义函数fact(n)计算n的阶乘:
n!
=1*2*……*n,函数的返回值类型是double。
(2)定义函数cal(e)计算下列算式的值,直到最后一项的绝对值小于e,函数的返回值类型是double。
(3)定义函数main()。
输入正整数n,当精度e分别取值10-1、10-2、10-3……、10-n时,分别计算并输出下列式的值,直到最后一项的绝对值小于精度e,以比较不同精度下算出的结果。
要求调用函数cal(e)计算下列算式的。
参考程序:
#include
#include
(1)doublefact(intn)
{inti;
doublet=1;
for(i=1;i<=n;i++)
t=t*i;
returnt;
}
(2)doublecal(doublee)
{
doublesum=0,t=1;
inti=1;
while(1/t>=e)
{t=fact(i);
sum=sum+1.0/t;
i++;
}
returnsum;
}
(3)main()
{intn,i;
while(scanf("%d",&n),n<=0);
for(i=1;i<=n;i++)
{printf("i=%d1+1/2!
+1/3!
+……=%f\n",i,cal(pow(10,-i)));
}
}