07年等级考试二级C语言模拟练习1.docx
《07年等级考试二级C语言模拟练习1.docx》由会员分享,可在线阅读,更多相关《07年等级考试二级C语言模拟练习1.docx(25页珍藏版)》请在冰豆网上搜索。
07年等级考试二级C语言模拟练习1
一、选择题
(1)有以下程序段
intn,t=1,s=0;
scanf("%d",&n);
do{s=s+t;t=t-2;}while(t!
=n);
为使此程序段不陷入死循环,从键盘输入的数据应该是
A)任意正奇数
B)任意负偶数
C)任意正偶数
D)任意负奇数
(2)设变量已正确定义,则以下能正确计算f=n!
的程序段是
A)f=0; B)f=1;
for(i=1;i<=n;i++)f*=i; for(i=1;i C)f=1; D)f=1;
for(i=n;i>1;i++)f*=i; for(i=n;i>=2;i--)f*=i;
(3)有以下程序
main()
{intk=5,n=0;
while(k>0)
{switch(k)
{default:
break;
case1:
n+=k;
case2:
case3:
n+=k;
}
k--;
}
printf("%d\n",n);
}
程序运行后的输出结果是
A)0
B)4
C)6
D)7
(4)有以下程序
main()
{
inta=1,b;
for(b=1;b<=10;b++)
{
if(a>=8)break;
if(a%2==1){a+=5;continue;}
a-=3;
}
printf("%d\n",b);
}
程序运行后的输出结果是
A)3
B)4
C)5
D)6
(5)有以下程序
main()
{ints=0,a=1,n;
scanf("%d",&n);
do
{s+=1;a=a-2;}
while(a!
=n);
printf("%d\n",s);
}
若要使程序的输出值为2,则应该从键盘给n输入的值是
A)-1
B)-3
C)-5
D)0
(6)若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)
s=a;
for(b=1;b<=c;b++)s=s+1;
则与上述程序段功能等价的赋值语句是
A)s=a+b;
B)s=a+c;
C)s=s+c;
D)s=b+c;
(7)有以下程序
main()
{intk=4,n=4;
for(;n{n++;
if(n%3!
=0)continue;
k--;}
printf("%d,%d\n",k,n);
}
程序运行后的输出结果是
A)1,1
B)2,2
C)3,3
D)4,4
(8)要求以下程序的功能是计算:
main()
{intn;floats;
s=1.0;
for(n=10;n>1;n--)
s=s+1/n;
print("%6.4f\n",s);
}
程序运行后输出结果错误,导致错误结果的程序行是
A)s=1.0;
B)for(n=10;n>1;n--)
C)s=s+1/n;
D)printf("%6.4f/n",s);
(9)有以下程序
main()
{inti;
for(i=0;i<3;i++)
switch(i)
{case1:
printf("%d",i);
case2:
printf("%d",i);
default:
printf("%d",i);
}
}
执行后输出结果是
A)011122
B)012
C)012020
D)120
(10)有以下程序
main()
{inti=0,s=0;
do{
if(i%2){i++;continue;}
i++;
s+=i;
}while(i<7);
printf("%d\n",s);
}
执行后输出结果是
A)16
B)12
C)28
D)21
(11)以下程序的功能是:
按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:
main()
{intn,k;
floatscore,sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
{for(k=1;k<=4;k++)
{scanf(“%f”,&score);sum+=score;}
ave=sum/4.0;
printf(“NO%d:
%f\n”,n,ave);
}
}
上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置不正确。
这条语句是
A)sum=0.0;
B)sum+=score;
C)ave=sun/4.0;
D)printf(“NO%d:
%f\n”,n,ave);
(12)有以下程序段
intn=0,p;
do{scanf(“%d”,&p);n++;}while(p!
=12345&&n<3);
此处do—while循环的结束条件是
A)P的值不等于12345并且n的值小于3
B)P的值等于12345并且n的值大于等于3
C)P的值不等于12345或者n的值小于3
D)P的值等于12345或者n的值大于等于3
(13)以下程序中,while循环的循环次数是
main()
{inti=0;
while(i<10)
{if(i<1)continue;
if(I==5)break;
i++;
}
......
}
A)1
B)10
C)6
D)死循环,不能确定次数
(14)以下程序的输出结果是
main()
{inta=0,i;
for(i=;i<5;i++)
{switch(i)
{case0:
case3:
a+=2;
case1:
case2:
a+=3;
default:
a+=5;
}
}
printf("%d\n",a);
}
A)31
B)13
C)10
D)20
(15)以下程序的输出结果是
#include
main()
{inti=0,a=0;
while(i<20)
{for(;;)
{if((i%10)==0)break;
elsei--;
}
i+=11;a+=i;
}
printh("%d\n",a);
}
A)21
B)32
C)33
D)11
(16)t为int类型,进人下面的循环之前,t的值为0
while(t=l)
{……}
则以下叙述中正确的是
A)循环控制表达式的值为0
B)循环控制表达式的值为1
C)循环控制表达式不合法
D)以上说法都不对
(17)以下程序的输出结果是
main()
{intnum=0;
while(num<=2)
{num++;printf(“%d\n”,num);
}
A)1B)1C)1D)l
222
33
4
(18)以下程序的输出结果是
main()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=10)break;
if(b%3==1)
{b+=3;continue;}
}
printf(“%d\n”,a);
}
A)101
B)6
C)5
D)4
(19)有以下程序段
intk=0
while(k=1)k++;
while循环执行的次数是
A)无限次
B)有语法错,不能执行
C)一次也不执行
D)执行1次
(20)以下程序执行后sum的值是
A)15
B)14
C)不确定
D)0
min()
{inti,sum;
for(i=1;i<6;i++)sum+=i;
printf(“%d\n”,sum);
}
(21)有以下程序段
intx=3
do
{printf(“%d”,x-=2);}
while(!
(--x));
其输出结果是
A)中1
B)30
C)1-2
D)死循环
(22)有如下程序
main0
{inti,sum;
for(i=1;i<=3;sum++)sum+=i;
printf(“%d\n”,sum);
}
该程序的执行结果是
A)6
B)3
C)死循环
D)0
(23)有如下程序
main0
{intx=23;
do
{printf(“%d”,x--);}
while(!
x);
}
该程序的执行结果是
A)321
B)23
C)不输出任何内容
D)陷入死循环
(24)有如下程序
main0
{intn=9;
while(n>6){n--;printf(“%d”,n);}
}
该程序段的输出结果是
A)987
B)876
C)8765
D)9876
(25)以下循环体的执行次数是
A)3B)2C)1D)0
main()
{inti,j;
for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i);
}
(26)以下叙述正确的是
A)do-while语句构成的循环不能用其它语句构成的循环来代替。
B)do-while语句构成的循环只能用break语句退出。
C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。
D)用do-while语句构成的循环,在while后的表达式为零时结束循环。
(27)以下程序段的执行结果是
A)a=12y=12B)a=12y=12
a=14y=16 a=16y=28
a=16y=20
a=18y=24
C)a=12y=12D)a=12y=12
a=14y=26
a=14y=44
inta,y;
a=10;y=0;
do
{a+=2;y+=a;
printf("a=%dy=%d\n",a,y);
if(y>20)break;
{while(a=14);
(28)以下程序的输出结果是
A)10192
B)9876
C)10990
D)10109