第六章 循环结构(含答案)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第六章循环控制
一、选择题
1.while (!E);语句中,条件表达式等价于【 A 】。
A. E==0
B. E!=1
C. E!=0
D. E==1
2.下面程序的运行结果是【 C 】。
int n=0;
while(n++<=2);
printf(“%d”,n);
A. 2
B. 3
C. 4
D. 有语法错
3.下面程序段的运行结果是【 A 】。
a=1; b=2; c=2;
while (a
printf (“%d, %d, %d\n”, a, b, c);
A. 1, 2, 0
B. 2, 1, 0
C. 1, 2, 1
D. 2, 1, 1 4.C语言中,while与do-while循环的主要区别是【 A 】。
A. do-while的循环体至少无条件执行一次
B. while的循环控制条件比do-while的循环控制条件严格
C. do-while允许从外部转到循环体内
D. do-while的循环体不能是复合语句
5.对for (表达式1;;表达式3 )可理解为【 B 】。
A. for (表达式1;0;表达式3)
B. for (表达式1;1 ;表达式3)
C. for (表达式1;表达式1;表达式3)
D. for (表达式1;表达式3;表达式3)
6.以下for循环体执行的次数是 (6) C 。
for (x=0,y=0; (y=123) && (x<4);x++);
A. 为无限次循环
B. 循环次数不定
C. 4次
D. 3次
7.下列不是死循环的是【 D 】。
A. int i=100; while (1) { i=i%100+1;
if (i>100) break; }
B. for ( ;;);
C. int k=0; do {++k;} while (k>=0);
D. int s=36;
while (s);――s;
8.执行语句for (i=1;i++<4;);后i的值为【 C 】。
A. 3
B. 4
C. 5
D. 不定
9.下列程序段的输出结果是【 B 】。
int x=3;
do {printf (“%2d\n”,x-=2);} while (!(――x));
A. 1
B. 1 -2
C. 3,0
D. 是死循环
10.以下四个关于C语言的结论中,只有一个是错误的,它是【 D 】。
A. 可以用while语句实现的循环一定可以用for语句实现
B. 可以用for语句实现的循环一定可以用while语句实现
C. 可以用do-while语句实现的循环一定可以用while语句实现
D. do-while语句与while语句的区别仅是关键字“while”出现的地方不同
二、填空题
11.执行下面程序段后,k值是【 36 】。
k=1; n=263;
do
{
k*=n%10;
n/=10 ;
} while(n);
12.鸡兔共有30只,脚共有90个,下面的程序段是计算鸡兔各有多少只
for ( x=1;x<=29;x++ )
{ y=30—x;
if ( x*2+y*4= =90 )
printf(“%d,%d\n”,x,y);
}
13.下面程序的运行结果是 x=1,y=20 。
main ( )
{ int i,x,y; i=x=y=0;
do { ++ i;
if(i%2!=0) {x=x+i; i++; }
y=y+i++;
} while(i<=7);
printf(“x=%d, y=%d\n”,x,y);
}
14.下面程序的运行结果是********# 。
main ( )
{ int i,j=4;
for(i=j;i<=2*j;i++)
switch(i/j)
{ case 0:
case 1: printf (“**”); break;
case 2: printf (“#”);
}
}
15.以下程序段的功能:从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
int n=0,c;c=getchar( );
while ((c!=‘\n’ )
{ if (c>=‘0’&&c<=‘9’ )
n++;
c=getchar( );}
16.下面程序的输出结果是 i=6,k=4 。
main( )
{ int i,j,k=19;
while( i=k-1)
{ k-=3;
if(k%5==0)
{i++;continue;}
else
if(k<5) break;
i ++;
} printf(“i=%d,k=%d\n”,i,k);
}
17.填空完成下面程序,其功能是打印100以内个位数为6且能被3整除的所有数。
main( )
{ int i,j;
for(i=0; i<=100 ;i++)
{ j=i*10+6;
if (j%3= =0 )
continue;
printf(%d”,j);
} }
18.下面程序的运行结果是 2,5,8,11,14
main( )
{ int i=1;
while(i<=15)
if(++i%3!=2)
continue;
else
printf(“%d”,i);
printf(“\n”);
}
19.完善下面程序,其功能是计算100至1000之间有多少个数其各位数字之和是5。
main( )
{ int is,k,count=0;
for(i=100;i<=1000;i++)
{s=0;k=i;
while ( k!=0 )
{
s=s+k%10; k=k/10 。;
}
if (s!=5) continue ;
else count++;
}
printf(%d”,count);
}
20.填空完成下面程序,其功能是从3个红球,五个白球,六个黑球中任意取出八个球,且其中必须有白球,输出所有可能的方案。
void main( )
{ int i,j,k;
printf(“\n hong bai hei \n”);