scanf(“%d”,&a);
}
printf(“%d”,max);
}
【1】A)a==0B)aC)!
a==1D)!
a
【题6.12】下面程序的运行结果是 。
#include
main()
{
intnum=0;
while(num<=2)
{
num++;
printf(“%d\n”,num);
}
}
A)1B)1C)1D)1
222
33
4
【题6.13】若运行以下程序时,从键盘输入2473<回车>,则下面程序的运行结果是 。
#include
main()
{
intc;
while((c=getchar())!
=‘\n’)
switch(c-‘2’)
{
case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
default:
putchar(c+2);break;
}
printf(“\n”);
}
A)668977B)668966C)66778777D)6688766
【题6.14】C语言中while和do-while循环的主要区别是 。
A)do-while的循环体至少无条件执行一次
B)while的循环控制条件比do-while的循环控制条件严格
C)do-while允许从外部转到循环体内
D)do-while的循环体不能是复合语句
【题6.15】以下能正确计算1×2×3×…×10的程序段是 。
A)do{i=1;s=1;B)do{i=1;s=0;
s=s*i;s=s*i;
i++;i++;
}while(i<=10);}while(i<=10);
C)i=1;s=1;D)i=1;s=0;
do{s=s*i;do{s=s*i;
i++;i++;
}while(i<=10);}while(i<=10);
【题6.16】以下程序段 。
x=-1;
do
{x=x*x;}
while(!
x);
A)是死循环B)循环执行二次
C)循环执行一次D)有语法错误
【题6.17】以下描述中正确的是 。
A)由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C)在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作
D)do-while循环中,根据情况可以省略while
【题6.18】若有如下语句
intx=3;
do{printf(“%d\n”),x-=2;}while(!
(--x));
则上面程序段 。
A)输出的是1B)输出的是1和-2C)输出的是3和0D)是死循环
【题6.19】下面程序的功能是计算正整数2345的各位数字平方和,请选择填空。
#include
main()
{
intn,sum=0;
n=2345;
do{
sum=sum+【1】;
n=【2】;
}while(n);
printf(“sum=%d”,sum);
}
【1】A)n%10B)(n%10)*(n%10)C)n/10D)(n/10)*(n/10)
【2】A)n/1000B)n/100C)n/10D)n%10
【题6.20】下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环。
请选择填空。
#include
main()
{
longintnum;
scanf(“%ld”,&num);
do{
if(【1】)printf(“%ld”,num);
scanf(“%ld”,&num);
while(【2】);
}
【1】A)num%100/10==3B)num/100%10==3
C)num%10/10==3D)num/10%10==3
【2】A)n=n-2B)n=nC)n++D)n-=1
【题6.21】等比数列的第一项a=1,公比q=2,下面程序的功能是求满足前n项和小于100的最大n,请选择填空。
#include
main()
{
inta,q,n,sum;
a=1;q=2;n=sum=0;
do{
【1】;
++n;a*=q;
}while(sum<100);
【2】;
printf(“%d\n”,n);
}
【1】A)sum++B)sum+=aC)sum=a+aD)a+=sum
【2】A)n=n-2B)n=nC)n++D)n-=1
【题6.22】下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除。
请选择填空。
#include
main()
{
inti=0,j,k;
do{i++;k=316-13*i;}while(【1】);
j=k/11;
printf(“316=13*%d+11*%d”,i,j);
}
【1】A)k/11B)k%11C)k/11==0D)k%11==0
【题6.23】下面程序的运行结果是 。
#include
main()
{
inty=10;
do{y--;}while(--y);
printf(“%d\n”,y--);
}
A)-1B)1C)8D)0
【题6.24】若运行以下程序时,从键盘输入ADescriptor(表示回车),则下面程序的运行结果是 。
#include
main()
{
charc;
intv0=0,v1=0,v2=0;
do{
switch(c=getchar())
{
case‘a’:
case‘A’:
case‘e’:
case‘E’:
case‘i’:
case‘I’:
case‘o’:
case‘O’:
case‘u’:
case‘U’:
v1+=1;
default:
v0+=1;v2+=1;
}
}while(c!
=‘\n’);
printf(“v0=%d,v1=%d,v2=%d\n”,v0,v1,v2);
}
A)v0=7,v1=4,v2=7B)v0=8,v1=4,v2=8
C)v0=11,v1=4,v2=11D)v0=12,v1=4,v2=12
【题6.25】下面程序的运行结果是 。
#include
main()
{
inta=1,b=10;
do{b-=a;a++;}while(b--<0);
printf(“a=%d,b=%d\n”,a,b);
}
A)a=3,b=11B)a=2,b=8C)a=1,b=-1D)a=4,b=9
【题6.26】下面有关for循环的正确描述是 。
A)for循环只能用于循环次数已经确定的情况
B)for循环是先执行循环体语句,后判断表达式
C)在for循环中,不能用break语句跳出循环体
D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
【题6.27】对for(表达式1;;表达式3)可理解为 。
A)for(表达式1;0;表达式3)B)for(表达式1;1;表达式3)
C)for(表达式1;表达式1;表达式3)
D)for(表达式1;表达式3;表达式3)
【题6.28】若i为整型变量,则以下循环执行次数是 。
for(i=2;i==0;)printf(“%d”,i--);
A)无限次B)0次C)1次D)2次
【题6.29】以下for循环的执行次数是 。
for(x=0,y=0;(y=123)&&(x<4);x++)
A)是无限循环B)循环次数不定C)执行4次D)执行3次
【题6.30】以下不是无限循环的语句为 。
A)for(y=0,x=1;x>++y;x=i++)i=x
B)for(;;x++=i);
C)while
(1){x++;}
D)for(i=10;;i--)sum+=i;
【题6.31】下面程序段的运行结果是 。
for(y=1;y<10;)y=((x=3*y,x+1),x-1);
printf(“x=%d,y=%d”,x,y);
A)x=27,y=27B)x=12,y=13C)x=15,y=14D)x=y=27
【题6.32】下面程序段的运行结果是 。
for(x=3;x<6;x++)printf((x%2)?
(“**%d”):
(“##%d\n”),x);
A)**3B)##3C)##3D)**3##4
##4**4**4##5**5
**5##5
【题6.33】下列程序段不是死循环的是 。
A)inti=100;
while
(1)
{
i=i%100+1;
if(i>100)break;
}
B)for(;;);
C)intk=0;
do{++k;}while(k>=0);
D)ints=36;
while(s);--s;
【题6.34】执行语句for(i=1;i++<4;);后变量i的值是 。
A)3B)4C)5D)不定
【题6.35】有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。
下面程序是求这堆零件总数,请选择填空。
#include
main()
{
inti;
for(i=100;i<200;i++)
if((i-2)%4==0)
if(!
((i-3)%7))
if(【1】)
printf(“%d”,i);
}
A)i%9=5B)i%9!
=5C)(i-5)%9!
=0D)i%9==5
【题6.36】下面程序的功能是计算1至50中是7的倍数的数值之和,请选择填空。
#include
main()
{
inti,sum=0;
for(i=1;i<=50;i++)
if(【1】)sum+=I;
printf(“%d”,sum);
}
A)(int)(i/7)==i/7B)(int)i/7==i/7C)i%7=0D)i%7==0
【题6.37】下面程序的功能是计算1至10之间的奇数之和及偶数之和。
请选择填空。
#include
main()
{
inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{
a+=i;
【1】;
c+=b;
}
printf(“偶数之和=%d\n”,a);
printf(“奇数之和=%d\n”,【2】);
}
【1】A)b=i--B)b=i+1C)b=i++D)b=i-1
【2】A)c-10B)cC)c-11D)c-b
【题6.38】下面程序的运行结果是 。
#include
main()
{
inti;
for(i=1;i<=5;i++)
switch(i%5)
{
case0:
printf(“*”);break;
case1:
printf(“#”);break;
default:
printf(“\n”);
case2:
printf(“&”);
}
}
A)#&&&*B)#&C)#D)#&
&&
&*&*
&
*
【题6.39】下面程序的运行结果是 。
#include
main()
{
intx,i;
for(i=1;i<=100;i++)
{
x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf(“%d”,x);
}
}
【题6.40】下面程序段的功能是计算1000!
的末尾含有多少个零。
请选择填空。
(提示:
只要算出1000!
中含有因数5的个数即可)
for(k=0,i=5;i<=1000;i+=5)
{
m=i;
while(【1】){k++;m=m/5;}
}
【1】A)m%5==0B)m=m%5==0C)m%5==0D)m%5!
=0
【题6.41】下面程序的功能是求算式xyz+yzz=532中x,y,z值(其中xyz和yzz分别表示一个三位数),请选择填空。
#include
main()
{
intx,y,z,i,result=532;
for(x=1;x<10;x++)
for(y=1;y<10;y++)
for(【1】;z<10;z++)
{
i=100*x+10*y+z+100*y+10*z+z;
if(【2】)
printf(“x=%d,y=%d,z=%d\n”,x,y,z);
}
【1】A)z=xB)z=1C)z=0D)z=y
【2】A)i/result==1B)i=resultC)i!
=resultD)i==result
【题6.42】下面程序是输出一个正整数等差数列的前十项,此数列前四项之和及之积分别是26和880,请选择填空。
#include
main()
{
inta,d,i,s,f,x;/*a是第一项*/
for(a=1;a<30;a++)
for(d=1;【1】;d++)
{
s=0;f=1;x=a;
for(i=1;i<=4;i++)
{
s=s+x;
f=f*x;
x=x+d;
}
if(s==26&&f==880)
for(i=0;i<10;i++)
printf(“%3d”,【2】);
}
printf(“\n”);
}
【1】A)d<=aB)空C)d<=5D)d【2】A)a+i*dB)i*dC)a+(i+1)*dD)a+d
【题6.43】下面程序的运行结果是 。
#include
main()
{
inti,b,k=0;
for(i=1;i<=5;i++)
{
b=i%2;
while(b-->=0)k++;
}
printf(“%d,%d”,k,b);
}
A)3,-1B)8,-1C)3,0D)8,-2
【题6.44】以下正确的描述是 。
A)continue语句的作用是结束整个循环的执行
B)只能在循环体内和switch语句体内使用break语句
C)在循环体内使用break语句或continue语句的作用相同
D)从多层循环嵌套中退出时,只能使用goto语句
【题6.45】下面程序段 。
for(t=1;t<=100;t++)
{
scanf(“%d”,&x);
if(x<0)continue;
printf(“%3d”,t);
}
A)当x<0时整个循环结束B)x>=0时什么也不输出
C)printf函数永远也不执行D)最多允许输出100个非负整数
【题6.46】下面程序段 。
x=3;
do{
y=x--;
if(!
y){printf(“x”);continue;}
printf(“#”);
}while(1<=x<=2);
A)将输出##B)将输出##*
C)是死循环D)含有不合法的控制表达式
【题6.47】以下是死循环的程序段是 。
A)for(i=1;;)
{
if(++i%2==0)continue;
if(++i%3==0)break;
}
B)i=32767;
do{if(i<0)break;}while(++i);
C)for(i=1;;)if(++i<10)continue;
D)i=1;
while(i--);
【题6.48】以下描述正确的是 。
A)goto语句只能用于退出多层循环
B)switch语句中不能出现continue语句
C)只能用continue语句来终止本次循环
D)在循环中break语句不能独立出