循环和条件习题.docx
《循环和条件习题.docx》由会员分享,可在线阅读,更多相关《循环和条件习题.docx(20页珍藏版)》请在冰豆网上搜索。
循环和条件习题
C语言程序设计辅导班第5章练习题
一、选择题
51、以下正确的if语句是____
A、if(n>0)printf("%f",n)
printf("%f",-n);
B、if(n>0)
{n=n+m;printf("%f",n);}
elseprintf("%f",-n);
C、if(n>0)
{n=n+m;printf("%f",n);};
elseprintf("%f",-n);
D、if(n>0)
{n=n+m;printf("%f",n)};
elseprintf("%f",-n);
52、以下程序____
main()
{intx1=3,x2=0,x3=0;
if(x1=x2+x3)
printf("****");
else
printf("####"); }
A、输出:
**** B、输出:
####
C、存在语法错误 D、无输出结果
53、为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:
else子句总是与__
A、缩排位置相同的if配对B、其之前最近且不带else的if配对
C、其之前最近的if配对D、第一个if配对
54、若w、x、y、z、k均为int类型变量,则执行下面语句后的k的值是____
w=1;x=2;y=3;z=4;
k=(ww:
x;
k=(kk:
y;
k=(kk:
z;
A、1 B、2 C、3 D、4
55、下面程序段所表示的数学函数关系是____
x=-1;
if(a!
=0)
if(a>0)x=1;
elsex=0;
-1(a<0) 1(a<0)
A、x=0(a=0)B、x=-1(a=0)
1(a>0)0(a>0)
0(a<0)-1(a<0)
C、x=-1(a=0) D、x=1(a=0)
1(a>0)0(a>0)
56、以下关于switch语句和break语句的描述中正确的是____
A、在switch语句中必须使用break语句
B、break语句只能用于switch语句体中
C、break语句只能用于循环语句中
D、在switch语句中使用break语句或continue语句的作用相同
57、设有说明:
inta=1,b=0;则执行以下语句后的输出结果是____
switch(a)
{case1:
switch(b)
{case0:
printf("**0**\n");break;
case1:
printf("**1**\n");break;
}
case2:
printf("**2**\n");break;
}
A、**0**B、**0**
**2**
C、**0** D、switch语句中存在语法错误
**1**
**2**
58、设有程序段____
intx=10;
while(x=0)
x=x-1;
A、while循环执行10次 B、循环是无限循环
C、循环体语句一次也不执行D、循环体语句只执行一次
59、语句while(!
y)中的表达式!
y等价于____
A、y==0B、y!
=1 C、y!
=0 D、y==1
60、以下关于do-while循环不正确的描述是___
A、d0-while的循环体至少执行一次
B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C、在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作
D、do-while的循环体可以是复合语句
61、设x、y均是int类型变量,且x值为100,则关于以下for循环的正确判断是____
for(y=100;x!
=y;++x,y++)
printf("****\n");
A、循环体只执行一次 B、是无限循环
C、循环体一次都不执行
D、for语句中存在语法错误
62、以下程序段中的do-while循环____
m=-1;
do
{m=m*m;
}while(!
m);
A、是死循环 B、执行二次 C、执行一次 D、有语法错误
63、以下关于for循环的正确描述是____
A、for循环只能用于循环次数已经确定的情况
B、for循环是先执行循环体语句,后判断表达式
C、在for循环中,不能用break语句跳出循环体
D、for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
64、语句for(表达式1;;表达式3)等价于____
A、for(表达式1;0;表达式3)
B、for(表达式1;1;表达式3)
C、for(表达式1;表达式1;表达式3)
D、for(表达式1;表达式3;表达式3)
65、若k为整型变量,则以下for循环的执行次数是____
for(k=2;k==0;)
printf("%d",k--);
A、无限次 B、0次 C、1次 D、2次
66、以下程序段的执行结果是____
intx=-3;
do
{printf("%d\n",x++);
}while(!
x);
A、-3D、-3
B、-2-2
C、陷入死循环-1
67、执行以下程序段后,y的值是____,x的值是____
intx=1,y=10;
do
{y-=x;
x++;
}while(y--<0);
A、9B、8C、-2D、2 E、4F、3
68、执行以下程序段后a的值是____,b的值是____
inta,b;
for(b=1,a=1;b<=50;b++)
{if(a>=10)break;
if(a%2==1)
{a+=5;
continue;
}
a-=3; }
A、10B、6C、7D、8E、4
69、以下程序段的执行结果是____
inta,b;
for(a=1;a<5;a+=2)
{for(b=1;b<5;b++)
printf("%2d",a*b);
if(b==5)
printf("\n");
}
A、1234 B、1234
36912691215
C、2346912
D、234
6912
101520
70、以下程序段中是死循环的是____
A、intn=1; B、intn=1;
while(!
n)do{n--;
n++;}while(n);
C、intn=1;D、for(n=5;n<1;);
do{n++;
}while(n);
71、下面程序的运行结果是____
main()
{intm=0;
while(m<=2)
{m++;
printf("%d\n",m);
}
}
A、1 B、1
2
C、1D、1
22
33
4
72、以下能正确计算1×2×3×…×10的程序段是____
A、doB、do
{k=1;n=1;{k=1;n=0;
n=n*k;n=n*k;
k++;k++;
}while(k<=10);}while(k<=10);
C、k=1;n=1;D、k=1;n=0;
dodo
{n=n*k;{n=n*k;
k++;k++;
}while(k<=10);}while(k<=10);
73、下面程序的功能是计算1至10之间的奇数之和以及偶数之和。
请选择填空。
main()
{intx,y,z,k;
x=z=0;
for(k=0;k<=10;k+=2)
{x+=k;
________;
z+=y;
}
printf("偶数之和=%d\n",x);
printf("奇数之和=%d\n",________);
}
①、A、y=k--B、y=k+1C、y=k++D、y=k-1
②、A、z-10B、zC、z-11D、z-y
74、下面程序段的功能是计算1000!
的末尾含有多少个零。
请选择填空。
(提示:
只要算出1000!
中含有因数5的个数即可。
)
for(m=0,n=5;n<=1000;n+=5)
{t=n;
while(________)
{m++;t=t/5;}
} A、t%5B、t=t%5==0
C、t%5==0D、t%5!
=0
75、若有以下程序段:
for(m=1;m<=100;m++)
{scanf("%d",&y);
if(y<0)
continue;
printf("%3d",m);}
正确的描述是____
A、当y<0时整个循环结束
B、y>=0时什么也不输出
C、printf函数永远也不执行
D、最多允许输出100个非负整数
76、以下程序段等价于____
for(k=100;k<=200;k++)
{if(k%3==0)
continue;
printf("%4d",k);
}
A、for(k=100;(k%3)&&k<=200;k++)
printf("%4d",k);
B、for(k=100;(k%3)||k<=200;k++)
printf("%4d",k);
C、for(k=100;k<=200;k++)
if(k%3!
=0)printf("%4d",k);
D、for(k=100;k<=200;k++)
{if(k%3)
printf("%4d",k);
else
continue;
break;
}
二、填空题
20、以下程序的功能是:
输入三个整数n1、n2、n3,按从大到小的顺序进行输出。
请填空。
main()
{intn1,n2,n3,temp;
scanf("%d%d%d",&n1,&n2,&n3);
if(______)
{temp=n2;n2=n3;n3=temp;}
if(______)
{temp=