c语言 从外部转到循环体内,2012年计算机等级二级C语言章节习题及答案(5)

第6章 循环控制

一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。)6.1 对表达式for(表达式1; ;表达式3)可理解为

A)for(表达式1;0;表达式3)

B)for(表达式1;1;表达式3)

C)for(表达式1;表达式1;表达式3)

D)for(表达式1;表达式3;表达式3)

正确答案: B

6.2 在下列选项中,没有构成死循环的是

A)int i=100;

while(1)

{i=i0+1;

if(i>100)break;

}

B)for(;;);

C)int k=10000;

do{k++;}while(k>10000);

D)int s=36;

while(s)--s;

正确答案: D

6.3 下面有关for循环的正确描述是

A)for循环只能用于循环次数已经确定的情况

B)for循环是先执行循环体语句,后判断表达式

C)在for循环中,不能用break语句跳出循环体

D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

正确答案: D

6.4 若int i,j;,则for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体执行的次数是

A)9

B)8

C)3

D)2

正确答案: C

6.5 阅读下列程序段,则程序的输出结果是

#include "stdio.h"

main()

{ int a=10,b=10,k;

for(k=0;a>8;b=++k)

printf("%d,%d,",a- -,- -b);

printf("\n");}

A)10,10,10,0,

B)10,9,9,0,

C)10,10,9,1,

D)9,9,9,1,

考生答案: 正确答案: B

6.6 有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数,请选择填空。

#include

main()

{ int i;

for(i=100;i<200;i++)

if((i-2)%4==0)

if(!((i-3)%7))

if(_______)

printf("%d",i);

}

A)i%9=5

B)i%9!=5

C)(i-5)%9!=0

D)(i-5)%9==0

正确答案: D

6.7 下列程序的输出结果是

#include "stdio.h"

main()

{int i,a=0,b=0;

for(i=1;i<10;i++)

{ if(i%2= =0)

{ a++;

continue; }

b++; }

printf("a=%d,b=%d",a,b);}

A)a=4,b=4

B)a=4,b=5

C)a=5,b=4

D)a=5,b=5

正确答案: B

6.8 阅读下列程序,则执行结果是

#include "stdio.h"

main()

{int a=0,b=0,c=0,i;

for(i=0;i<4;i++)

switch(i)

{ case 0:a=i++;

case 1:b=i++;

case 2:c=i++;

case 3:i++; }

printf("%d,%d,%d,%d\n",a,b,c,i);}

A)0,1,3,4

B)1,2,3,4

C)0,1,2,5

D)0,2,3,4

正确答案: C

6.9 阅读下列程序,程序的输出结果是

#include "stdio.h"

main()

{

int m,n;

float k;

for(m=6;m>2;m- -)

{ k=0;

for(n=m;n>1;n- -)

k=k+m*n;

}

printf("%f\n",k);

}

A)5.000000

B)15.000000

C)25.000000

D)35.000000

正确答案: B

6.10 下面程序的运行结果是

#include "stdio.h"

main()

{ int j,i,k=0;

for(j=50;j<=60;j++)

{ if(!(k)) printf("\n");

for(i=2;iif(!(j%i)) break;

if(i>=j-1)

{ printf("%d",j);

k++; }

}

}

A)5359

B)5953

C)3595

D)9535

正确答案: A

6.11 已知

int t=0;

while(t=1)

{...}

则以下叙述正确的是

A)循环控制表达式的值为0

B)循环控制表达式的值为1

C)循环控制表达式不合法

D)以上说法都不对

正确答案: B

6.12 设有以下程序段

int x=0,s=0;

while(!x!=0)s+=++x;

printf("%d",s);

A)运行程序段后输出0

B)运行程序段后输出1

C)程序段中的控制表达式是非法的

D)程序段执行无限次

正确答案: B

6.13 下列程序的输出结果是

#include "stdio.h"

main()

{ int i=6;

while(i- -)

printf("%d",- -i);

printf("\n");}

A)531

B)420

C)654321

D)死循环

正确答案: B

6.14 对下Ⅰ,Ⅱ两个语句描述正确的是

Ⅰ.while(1)Ⅱ.for(;;)

A)都是无限循环

B)Ⅰ是无限循环,Ⅱ错误

C)Ⅰ循环一次,Ⅱ错误

D)以上答案都错

正确答案: A

6.15 以下程序段的描述,正确的是

x=-1;

do

{x=x*x;}

while(!x);

A)是死循环

B)循环执行两次

C)循环执行一次

D)有语法错误

正确答案: C

6.16 若有如下语句

int x=3;

do{ printf("%d\n",x-=2);}while(!(- -x));

则上面程序段

A)输出的是1

B)输出的是1和-2

C)输出的是3和0

D)是死循环

正确答案: B

6.17 下面程序的运行结果是

#include

main()

{ int a=1,b=10;

do

{ b-=a; a++; }while(b- -<0);

printf("a=%d,b=%d\n",a,b);

}

A)a=3,b=11 B)a=2,b=8 C)a=1,b=-1 D)a=4,b=9

正确答案: B

6.18 若运行以下程序时,从键盘输入 ADescriptor(表示回车),则下面程序的运行结果是#include

main()

{char c;

int v0=1,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=7

B)v0=8,v1=4,v2=8

C)v0=11,v1=4,v2=11

D)v0=13,v1=4,v2=12

正确答案: D

6.19 下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。

#include

main()

{ int i=0,j,k;

do{ i++; k=316-13*i; }while(______);

j=k/11;

printf("316=13*%d+11*%d",i,j);

}

A)k/11

B)k

C)k/11==0

D)k==0

正确答案: B

6.20 C语言中 while 和do-while循环的主要区别是

A)do-while的循环体至少无条件执行一次

B)while的循环控制条件比do-while的循环控制条件更严格

C)do-while允许从外部转到循环体内

D)do-while 的循环体不能是复合语句

正确答案: A

6.21 下列说法中错误的是

A)只能在循环体内使用break语句

B)在循环体内使用break语句可以使流程跳出本层循环体,从而提前结束本层循环

C)在while和do…while循环中,continue语句并没有使整个循环终止

D)continue的作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环判断

正确答案: A

二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)6.22 设i,j,k均为int型变量,则执行完下面的for语句后,k的值为【1】。

for(i=0, j=10; i<=j; i++, j- -) k=i+j;

正确答案: 10

6.23 下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。

main()

{int i, x, y=1;

scanf("%d", &x);

for(i=2; i<=x/2; i++)

if【2】{ y=0; break;}

printf("%d\n", y);

}

正确答案: (x%i= =0)

6.24 以下程序的输出结果是【3】。

main()

{ int y=9;

for(; y>0; y- -)

if (y%3= =0)

{ printf("%d", - -y); continue; }

}

正确答案: 852

6.25 阅读下面程序段,则执行后的输出结果为 【4】 。

#include "stdio.h"

main()

{ int a=1;

for(;a<=15;)

if(++a%5!=2) continue;

else printf("%d",a);

printf("\n"); }

正确答案: 2712

6.26 阅读下面语句,则执行后的输出结果为 【5】

#include "stdio.h"

main()

{char a,b;

for(a=′0′,b=′9′;aprintf("%c%c",a,b);

printf("\n");}

正确答案: 0918273645

6.27 阅读下面程序,则执行后程序的结果为 【6】

#include "stdio.h"

main()

{ int a=0,b=0;

while(a<15)a++;

while(b++<15);

printf("%d,%d\n",a,b);}

正确答案: 15,16

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值