第6章 循环控制.docx

上传人:b****5 文档编号:4277796 上传时间:2022-11-28 格式:DOCX 页数:17 大小:21.07KB
下载 相关 举报
第6章 循环控制.docx_第1页
第1页 / 共17页
第6章 循环控制.docx_第2页
第2页 / 共17页
第6章 循环控制.docx_第3页
第3页 / 共17页
第6章 循环控制.docx_第4页
第4页 / 共17页
第6章 循环控制.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

第6章 循环控制.docx

《第6章 循环控制.docx》由会员分享,可在线阅读,更多相关《第6章 循环控制.docx(17页珍藏版)》请在冰豆网上搜索。

第6章 循环控制.docx

第6章循环控制

第六章循环控制

一单项选择题

1.下面程序段的运行结果是()。

intn=0;

while(n++<=2);

printf(“%d”,n);

A)2     B)3     C)4     D)有语法错

2.设有程序段:

t=0;

while(printf(“*”))

{t++;

if(t<3)break;

}

下面描述正确的是()。

A)其中循环控制表达式与0等价

B)其中循环控制表达式与'0'等价

C)其中循环控制表达式是不合法的

D)以上说法都不对

3.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空()。

#include

main()

{inta,b,t;

scanf(“%d%d”,&a,&b);

while(___________)

{if(a>b)

{t=a;a=b;b=t;}

printf(“%d,%d\n”,a,b);

scanf("%d%d",&a,&b);

}

}

A)!

a=b     B)a!

=b     C)a==b     D)a=b

4.C语言中,while和do-while循环的主要区别是()。

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

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

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

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

5.对以下程序段描述正确的是()。

x=-1;

do

{x=x*x;}

while(!

x);

A)是死循环       B)循环执行二次

C)循环执行一次     D)有语法错误

6.以下描述中正确的是()。

A)do-while循环中循环体内不能使用复合语句

B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号

C)在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作

D)do-while循环中,根据情况可以省略while

7.若有如下语句

intx=3;

do{printf(“%3d”,x-=2);}while(!

(--x));

则上面程序段()。

A)输出的是1       B)输出的是1和-2

C)输出的是3和0     D)是死循环

8.下面有关for循环的正确描述是()。

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

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

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

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

9.对for(表达式1;;表达式3)可理解为()。

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

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

10.若i为整型变量,则以下循环执行次数是()。

for(i=2;i==0;)printf(“%d”,i--);

A)无限次     B)0次     C)1次     D)2次

11.以下不是无限循环的语句为()。

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;

12.下面程序段的运行结果是()。

for(y=1;y<10;)y=((x=3*y,x+1),x-1);

printf(“x=%d,y=%d”,x,y);

A)x=27,y=27     B)x=12,y=13     C)x=15,y=14     D)x=y=27

13.执行语句for(i=1;i++<4;);后变量i的值是()。

A)3     B)4     C)5     D)不定

14.有一堆零件(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(______)

printf(“%d”,i);

}

A)i%9=5     B)i%9!

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

=0     D)i%9==5

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

#include

main()

{inti=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%11     C)k/11==0     D)k%11==0

16.下面程序的运行结果是()。

#include

main()

{inty=10;

do{y--;}while(--y);

printf(“%d\n”,y--);

}

A)-1     B)1     C)8     D)0

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

#include

main()

{charc;

intv0=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=12,v1=4,v2=12

18.下面程序的运行结果是()。

#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=11     B)a=2,b=8

C)a=1,b=-1     D)a=4,b=9

19.以下程序的输出结果是()。

main()

{intnum=0;

while(num<=2)

{num++;printf(“%d\n”,num);}

}

A)1     B)1     C)1     D)l

2      2      2

3      3

4

20.设有程序段

intk=10;

while(k=0)k=k-1;

则下面描述中正确的是()。

A)while循环执行10次      B)循环是无限循环

C)循环体语句一次也不执行     D)循环体语句执行一次

21.设有以下程序段

intx=0,s=0;

while(!

x!

=0)s+=++x;

printf("%d",s);

则()。

A)运行程序段后输出0          B)运行程序段后输出1

C)程序段中的控制表达式是非法的     D)程序段执行无限次

22.语句while(!

E);中的表达式!

E等价于()。

A)E==0     B)E!

=1     C)E!

=0     D)E==1

23.下面程序段的运行结果是()。

a=1;b=2;c=2;

while(a

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

A)1,2,0     B)2,1,0     C)1,2,1     D)2,1,1

24.下面程序段的运行结果是()。

x=y=0;

while(x<15)y++,x+=++y;

printf("%d,%d",y,x);

A)20,7     B)6,12     C)20,8     D)8,20

25.以下程序段的执行结果是()。

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);

A)a=12y=12     B)a=12y=12

a=14y=16     a=16y=28

a=16y=20

a=18y=24

C)a=12y=12     D)a=12y=12

a=14y=26

a=14y=44

26.t为int类型,进人下面的循环之前,t的值为0,则以下叙述中正确的是()。

while(t=l)

{……}

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

C)循环控制表达式不合法     D)以上说法都不对

27.有以下程序段

intk=0;

while(k=1)k++;

while循环执行的次数是()。

A)无限次        B)有语法错,不能执行

C)一次也不执行     D)执行1次

28.以下程序执行后sum的值是()。

main()

{inti,sum;

for(i=1;i<6;i++)sum+=i;

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

}

A)15     B)14     C)不确定     D)0

29.有以下程序段

intx=3;

do

{printf("%d",x-=2);}

while(!

(--x));

其输出结果是()。

A)1     B)30     C)1-2     D)死循环

30.若输入12、8,以下程序的输出结果是()。

main()

{inta,b,num1,num2,temp;

scanf(“%d,%d”,&num1,&num2);

if(num1>num2)

{temp=num1;

num1=num2;

num2=temp;

}

a=num1,b=num2;

while(b!

=0)

{temp=a%b;

a=b;

b=temp;

}

printf(“%d,%d”,a,num1*num2/a);

}

A)4,24     B)3,24     C)5,25     D)4,25

31.以下程序的输出结果是()。

#include

#include

main()

{ints=1;

floatn=1,pi=0;

doublet=1;

while(fabs(t)>=2e-6)

{pi+=t;

n+=2;

s=-s;

t=s/n;

}

pi*=4;

printf(“pi=%.6f\n”,pi);

}

A)3.141592     B)1     C)2e-6     D)0

32.以下程序的输出结果是()。

main()

{inti,f1,f2;

f1=f2=1;

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

{printf(“%d%d”,f1,f2);

f1+=f2;

f2+=f1;

}

}

A)12345678      B)1123581321

C)1135791113     D)13579111315

33.下列叙述中,正确的一条是()。

A)语句“goto12;”是合法的

B)for(;;)语句相当于while

(1)语句

C)if(表达式)语句中,表达式的类型只限于逻辑表达式

D)break语句可用于程序的任何地方,以终止程序的执行

34.以下程序的输出结果是()。

main()

{inta,b;

for(a=1,b=1;a<=100;a++)

{if(b>=20)break;

if(b%3==1)

{b+=3;

continue;

}

b-=5;

}

printf(“%d\n”,a);

}

A)7     B)8     C)9     D)10

35.以下的for循环()

for(x=0,y=0;(y!

=123)&&(x<4);x++);

A)是无限循环     B)循环次数不定

C)执行4次      D)执行3次

36.C语言中()

A)不能使用do-while语句构成的循环

B)do-while语句构成的循环必须用break语句才能退出

C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环

D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环

37.以下程序的输出结果是()。

main()

{inti;

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

{if(i%2)

printf(“*”);

else

continue;

printf(“#”);

}

printf(“$\n”);

}

A)*#*#*#$     B)#*#*#*$     C)*#*#$     D)#*#*$

38.有以下程序,从第一列开始输入数据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)668977     B)668966     C)6677877     D)6688766

39.执行以下程序片段的结果是()。

intx=23;

do

{printf(“%d”,x--);}

while(!

x);

A)打印出321       B)打印出23

C)不打印任何内容     D)陷入死循环

40.若x是int型变量,则执行以下程序片段的结果是()。

for(x=3;x<6;x++)printf((x%2)?

(“**%d”):

(“##%d\n”),x);

A)**3##4**5     B)##3**4##5     C)##3     D)**3##4

**4##5**5

41.有以下程序,若运行时从键盘输入3.62.4代表一个回车符),则程序的输出结果为()。

#include

#include

main()

{floatx,y,z;

scanf(“%f%f”,&x,&y);

z=x/y;

while

(1)

{if(fabs(z)>1.0)

{x=y;y=z;z=x/y;}

elsebreak;

}

printf(“%f\n”,y);

}

A)1.500000     B)1.600000     C)2.000000     D)2.400000

42.以下程序的输出结果是()。

main()

{intx=10,y=10,i;

for(i=0;x>8;y=++i)

printf(“%d%d”,x--,y);

}

A)10192     B)9876     C)10990     D)101091

43.以下程序的输出结果是()。

main()

{intn=4;

while(n--)

printf(“%d”,--n);

}

A)20     B)31     C)321     D)210

44.以下程序的输出结果是()。

main()

{inti;

for(i=’A’;i<’I’;i++,i++)

printf(“%c”,i+32);

}

A)编译通不过,无输出     B)aceg     C)acegi     D)abcdefghi

45.若i、j已定义为int型,则以下程序段中内循环体的总的执行次数是()。

for(i=5;i;i--)

for(j=0;j<4;j++){}

A)20     B)24     C)25     D)30

46.若j为int型变量,则以下for循环语句的执行结果是()。

for(j=10;j>3;j--)

{if(j%3)j--;--j;--j;printf(“%d”,j);}

A)63     B)74     C)62     D)73

47.以下程序的执行结果是()。

main()

{inti,x;

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

{x=i;

if(++x%2==0)

if(x%3==0)

if(x%7==0)

printf(“%d”,i);

}

}

A)28     B)27     C)42     D)41

48.以下程序的执行结果是()。

main()

{inti,j;

for(j=10;j<11;j++)

{for(i=9;i

if(!

(j%i))break;

if(i>=j-1)printf(“%d”,j);

}

}

A)11     B)10     C)9     D)1011

49.在下列选项中,没有构成死循环的程序段是()。

A)inti=100;     B)for(;;);

while

(1)

{i=i%100+1;

if(i>100)break;

}

C)intk=1000;     D)ints=36;

do{++k;}while(s);--s;

while(k>=10000);

50.以下程序的输出结果是()。

main()

{inti,j,x=0;

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

{x++;

for(j=0;j<=3;j++)

{if(j%2)continue;

x++;

}

x++;

}

printf(“x=%d\n”,x);

}

A)x=4     B)x=8     C)x=6     D)x=12

51.运行以下程序后,如果从键盘上输入6514<回车>,则输出结果是()。

main()

{intm,n;

scanf(“%d%d”,&m,&n);

while(m!

=n)

{while(m>n)m-=n;

while(n>m)n-=m;

}

printf(“m=%d\n”,m);

}

A)m=3     B)m=2     C)m=1     D)m=0

52.以下程序的输出结果是()。

main()

{inti,j,m=0,n=0;

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

for(j=0;j<2;j++)

if(j>=i)m=1;n++;

printf(“%d\n”,n);

}

A)4     B)2     C)1     D)0

53.以下程序执行后sum的值是()。

main()

{inti,sum=0;

for(i=1;i<=3;sum++)sum+=i;

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

}

A)6     B)3     C)死循环     D)0

二填空题

1.以下程序运行后的输出结果是。

main()

{inti=10,j=0;

do

{j=j+i;i--;}

while(i>2);

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

}

2.设有以下程序:

main()

{intn1,n2;

scanf("%d",&n2);

while(n2!

=0)

{n1=n2%10;

n2=n2/10;

printf("%d",n1);

}

}

程序运行后,如果从键盘上输入1298,则输出结果为。

3.若输入字母b,程序输出结果为;若输入字符*,程序将怎样。

#include

main()

{charc1,c2;

c1=getchar();

while(c1<97||c1>122)

c1=getchar();

c2=c1-32;

printf("%c,%c\n",c1,c2);

}

4.用以下程序计算1到100的整数的累加和。

main()

{inti=1,sum=;

for()

{sum+=i;

i++;

}

printf("sum=%d\n",);

}

5.以下程序的功能是:

从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束。

请填空。

main()

{floatx,amax,amin;

scanf(“%f”,&x);

amax=x;

amin=x;

while()

{if(x>amax)amax=x;

if()amin=x;

scanf(“%f”,&x);

}

printf("amax=%f\namin=%f\n",amax,amin);

}

6.设i、j、k均为int型变量,则执行完下面的for循环后,k的值为。

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

7.下面程序的功能是:

计算1到10之间的奇数之和及偶数之和,请填空。

main()

{inta,b,c,i;

a=c=0;

for(i=0;i<=10;i+=2)

{a+=i;

;

c+=b;

}

printf("偶数之和=%d\n",a);

printf("奇数之和=%d\n",c-11);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1