习题六循环结构.docx

上传人:b****0 文档编号:10099482 上传时间:2023-05-23 格式:DOCX 页数:26 大小:22.50KB
下载 相关 举报
习题六循环结构.docx_第1页
第1页 / 共26页
习题六循环结构.docx_第2页
第2页 / 共26页
习题六循环结构.docx_第3页
第3页 / 共26页
习题六循环结构.docx_第4页
第4页 / 共26页
习题六循环结构.docx_第5页
第5页 / 共26页
习题六循环结构.docx_第6页
第6页 / 共26页
习题六循环结构.docx_第7页
第7页 / 共26页
习题六循环结构.docx_第8页
第8页 / 共26页
习题六循环结构.docx_第9页
第9页 / 共26页
习题六循环结构.docx_第10页
第10页 / 共26页
习题六循环结构.docx_第11页
第11页 / 共26页
习题六循环结构.docx_第12页
第12页 / 共26页
习题六循环结构.docx_第13页
第13页 / 共26页
习题六循环结构.docx_第14页
第14页 / 共26页
习题六循环结构.docx_第15页
第15页 / 共26页
习题六循环结构.docx_第16页
第16页 / 共26页
习题六循环结构.docx_第17页
第17页 / 共26页
习题六循环结构.docx_第18页
第18页 / 共26页
习题六循环结构.docx_第19页
第19页 / 共26页
习题六循环结构.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

习题六循环结构.docx

《习题六循环结构.docx》由会员分享,可在线阅读,更多相关《习题六循环结构.docx(26页珍藏版)》请在冰点文库上搜索。

习题六循环结构.docx

习题六循环结构

习题

一、选择题

1.设有程序段

intk=10;

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

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

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

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

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

A.while,do-while,for循环中的循环体语句都至少被执行一次

B.do-while循环中,在while(表达式)后面的分号可以省略

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

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

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

A.continue语句的作用是结束整个循环的执行。

B.只能在循环体内和switch语句体内使用break语句。

C.在循环体内使用break语句或continue语句的作用相同。

D.从多层循环嵌套中退出时,只能使用goto语句。

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

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

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

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

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

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

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

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

6.以下for循环的执行次数是()。

for(x=0,y=0;(y=123)&&(x<4);x++);

A.是无限循环B.循环次数不定C.4次D.3次

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

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

8.下面程序的功能是在输入一批正整数中求出最大者,输入0结束循环,请选择填空。

#include"stdio.h"

main()

{inta,max=0;

scanf("%d",&a);

while()

{if(max

scanf("%d",&a);

}

printf("%d",max);}

A.a==0B.aC.!

a==1D.!

a

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

#include

main()

{intnum=0;

while(num<=2)

{num++;

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

}

}

A.1B.1C.1D.1

222

33

4

10.下面程序的功能是计算1~10之间的奇数之和和偶数之和。

请选择填空。

#include

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

}

A.b=i--B.b=i+1C.b=i++D.b=i-1

11.设有以下程序段

intx=0,s=0;

while(!

x!

=0)s+=++x;

printf("%d",s);

则()。

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

C.循环的控制表达式不正确D.程序段执行无限次

12.语句while(!

E);中的!

E等价于()。

A.E==0B.E!

=1C.E!

=0D.E==1

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

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

while(a

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

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

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

x=y=0;

while(x<15)

y++,x+=++y;

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

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

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

intn=0;

while(n++<=2);

printf("%d",n);

A.2B.3C.4D.语法错误

16.以下能正确计算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);

17.以下程序段()。

x=-1;

do

{x=x*x;}while(!

x);

A.是死循环B.循环执行两次C.循环执行一次D.有语法错误

18.若有语句如下,则程序段的输出是()。

intx=3;

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

(--x));

A.1B.1和-2C.3和0D.死循环

19.下面程序的功能是计算正整数2345的各位数字平方和。

#include"stdio.h"

main()

{intn,sum=0;

n=2345;

do{sum=sum+();

n=n/10;

}while(n);

printf("sum=%d",sum);}

A.n%10B.(n%10)*(n%10)C.n/10D.(n/10)*(n/10)

20.下面程序的功能是把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/11B.k%11C.k/11==0D.k/11==0

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

#include

main()

{inty=10;

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

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

}

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

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

#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

23.若运行以下程序时,从键盘输入Total<回车>,则下面程序的运行结果是()。

#include

main()

{charc;

intv1=0,v2=0;

do{

switch(c=getchar())

{case'a':

v1+=1;

case't':

case'T':

v2+=1;

default:

v1+=1;v2+=1;

}

}while(c!

='\n');

printf("v1=%d,v2=%d\n",v1,v2);

}

A.v1=3,v2=4B.v1=4,v2=4C.v1=6,v2=8D.v1=7,v2=9

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

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;

25.以下是死循环的程序段是()。

A.for(i=1;;)B.i=32767;

{if(++i%2==0)continue;do{if(i<0)break;}while(++i);

if(++i%3==0)break;}

C.for(i=1;;)if(++i<10)continue;D.i=1;

while(i--);

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

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

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

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

28.有一堆零件(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=5B.i%9!

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

=0D.i%9==5

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

#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("%3d",x);

}

}

A.3981B.4284C.2668D.2870

30.下面程序的功能是求算式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(();z<10;z++)

{i=100*x+10*y+z+100*y+10*z+z;

if(i==result)

printf("x=%d,y=%d,z=%d\n",x,y,z);

}

}

A.z=xB.z=1C.z=0D.z=y

31.下面程序段()。

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个非负整数

32.与下面程序段等价的是()。

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

{if(n%3==0)continue;

printf(“%4d”,n);

}

A.for(n=100;(n%3&&n<=200;n++)printf(“%4d”,n);

B.for(n=100;(n%3)||n<=200;n++)printf(“%4d”,n);

C.for(n=100;n<=200;n++)if(n%3!

=0)printf(“%4d”,n);

D.for(n=100;n<=200;n++)

{if(n%3)printf(“%4d”,n);

elsecontinue;

break;

}

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

#include

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=4B.x=8C.x=6D.x=12

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

main()

{inti,j,a=0;

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

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

{if(j%2)break;

a++;}

a++;

}

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

}

A.4B.5C.6D.7

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

#include

main()

{inti;

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

{if(i%2)printf(“*”);

elsecontinue;

printf(“#”);}

printf(“$\n”);

}

A.*#*#*#$B.#*#*#*$C.*#*#$D.#*#*$

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

#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

37.下面程序段()。

x=3;

do

{y=x--;

if(!

y){printf(“*”);continue;}

printf(“#”);

}while(1<=x<=2);

A.将输出##B.将输出##*C.是死循环D.含有不合法的控制表达式

38.若运行以下程序时,从键盘输入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.500000B.1.600000C.2.000000D.2.400000

39.若运行以下程序时,从键盘输入2473<回车>,则下面程序的运行结果是()。

#include"stdio.h"

{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

40.有以下程序:

#include

main()

{inta1=0,a2=0,a3=0;

charch;

while((ch=getchar())!

=’\n’)

switch(ch)

{case’A’:

a1++;

case’B’:

a2++;

default:

a3++;}

printf(“%d,%d,%d”,a1,a2,a3);

}

现从键盘上输入AAAAABBBC<回车>,则程序执行后的输出结果是()。

A.5,8,9B.5,3,1C.5,3,9D.5,8,1

二、填空题

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

x=2;

do{printf("*");x--;}while(!

x==0);

2.鸡兔共有30只,脚共有90只,下面程序段是计算鸡兔各有多少只。

请填空。

for(x=0;x<=30;x++)

{y=30-x;

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

}

3.若for循环用以下形式表示:

for(表达式1;表达式2;表达式3)循环体语句

则执行语句for(i=0;i<3;i++)printf("*");时,表达式1执行1次,表达式3执行

次。

4.下面程序的功能是打印100以内个位数为6且能被3整除的所有数。

请填空。

#include

main()

{inti,j;

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

{j=i*10+6;

if()continue;

printf("%d",j);

}

}

5.下面程序的运行结果是。

#include

main()

{inti=1;

while(i<=15)

if(++i%3!

=2)continue;

elseprintf("%d",i);

printf("\n");

}

6.当运行下列程序时,从键盘键入”right?

<回车>“,则下面程序的运行结果是。

#include

main()

{charc;

while((c=getchar())!

=’?

’)putchar(++c);

}

7.下面程序的运行结果是。

#include

main()

{inta,s,n,count;

a=2;s=0;n=1;count=1;

while(count<=7){n=n*a;s=s+n;++count;}

printf("s=%d",s);

}

8.执行下面程序段后,k的值是。

k=1,n=263;

do{k*=n%10;n/=10;}while(n);

9.下面程序段中循环体的执行次数是。

a=10;b=0;

do{b+=2;a-=2+b;}while(a>=0);

10.等差数列的第一项a=2,公差d=3,下面程序的功能是在前n项和中,输出能被4整除的所有数的和。

请填空。

#include

main()

{inta,d,sum;

a=2;d=3;sum=0;

do

{sum+=a;

a+=d;

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

}while(sum<200);

}

11.当运行以下程序时,从键盘输入”12345-1<回车>“,则下面程序的运行结果是。

#include

main()

{intk=0,n;

do

{scanf("%d",&n);k+=n;

}while(n!

=-1);

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

}

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

#include

main()

{inti,t,sum=0;

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

{sum+=t;++i;

if(i%3==0)t=-1;

elset=i;

}

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

}

13.下面程序的运行结果是。

#include

main()

{inti,j=4;

for(i=j;i<=2*j;i++)

switch(i/j)

{case0:

case1:

printf("*");break;

case2:

printf("#");}

}

14.下面程序的功能是从键盘输入的10个整数中,找出第一个能被7整除的数。

若找到,输出出此数;若未找到,打印notexit。

请填空。

#include

main()

{inti,a;

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

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

if(a%7==0);

}

if(i<=10)printf("%d\n",a);

elseprintf("notexit\n");

}

15.下面程序的运行结果是。

i=1;s=3;

do

{s+=i++;

if(s%7==0)continue;

else++i;

}while(s<15);

printf("%d",i);

16.下面程序的功能是求1000以内的所有完全数。

请填空。

(说明:

一个数如果恰好等于它的因子之和(除自身外),则称该数为完全数。

例如:

6=1=2+3,6是完全数)

#include

main()

{inta,i,m;

for(a=1;a<=1000;a++)

{for(m=0,i=1;i<=a/2;i++)if(!

(a%i));

if(m==a)printf("%4d",a);

}

}

17.下面程序的运行结果是。

#include

main()

{inti,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);

}

18.若从键盘输入6514<回车>,则下面程序的运行结果是。

#include

main()

{intm,n;

printf("Enterm,n:

");

scanf("%d%d",&m,&n);

while(m!

=n)

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

while(n>m)n-=m;

}

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

}

19.下面程序的功能是计算100——1000之间有多少个数其各位数字之和是5。

请填空。

#include

main()

{inti,s,k,count=0;

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

{s=0;k=i;

While(k){s=s+k%10;k=k/10;}

if(s!

=5);

elsecount++;

}

printf("%d",count);

}

20.下面程序的运行结果是。

#include

main()

{inta,y;

a=10;y=0;

do

{a+=2;y+=a;

if(y>50)break;

}while(a=14);

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

}

三、编程题

1.编写程序,计算1~50中7的倍数的数值之和。

2.编写程序,用辗转相除法求两个正整数的最大公约数。

3.编写程序,输入一个正整数,找出并输出该正整数的所有因子。

4.编写程序,计算1-3+5-7+…-99+101的值。

5.编写程序,求1~1000之间满足”用3除余2,用5除余3,用7除余2”的数,且一行只输出5个数。

6.编写程序,用公式:

π2/6≈1/12+1/22+1/32+...+1/n2求π的近似值,直到最后一项的值小于10-6为止。

7.编写程序,找出1~99之间的全部同构数,同构数是这样一组数:

该数出现在其平方数的右边。

例如:

5是25右边的数,

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2