dy循环结构oue.docx

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

dy循环结构oue.docx

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

dy循环结构oue.docx

dy循环结构oue

第三章循环结构

3.1选择题

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

main()

{intn=4;

while(n--)

printf(〞%d〞,--n);

}

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

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

main()

{intx=10,y=10,i;

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

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

}

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

3.当执行以下程序段时。

x=-1;

do

{x=x*x;}

while(!

x);

A.循环体将执行一次      B.循环体将执行两次

C.循环体将执行无数多次    D.系统将提示有语法错误

4.执行以下程序后输出的结果是()。

main()

{inty=10;

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

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

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

5.下面程序的输出结果是()。

main()

{intx=3,y=6,a=0;

while(x++!

=(y-=1))

{a+=1;

if(y

}

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

}

A.x=4,y=4,a=1B.x=5,y=5,a=1

C.x=5,y=4,a=3D.x=5,y=4,a=1

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

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

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

{…}

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

7.请读程序:

#include

main()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:

a++;break;

case1:

b++;break;

}

case2:

a++;b++;break;

}

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

}

上面程序的输出结果是()。

A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2

8.若有以下程序段,w和k都是整型变量

w=k;

LB:

if(w==0)gotoLE;

w--;

printf(〞*〞);

gotoLB;

LE:

则不能与上面程序段等价的循环语句是()。

A.for(w=k;w!

=0;w--)

print(〞*〞);

B.w=k;

while(w--!

=0)

printf(〞*〞);

w++;

C.w=k;

do{w--;printf(〞*〞);}

while(w!

=0);

D.for(w=k;w;--w)printf(〞*〞);

9.下面程序的输出是()。

main()

{

char*s=〞12134211〞;

intk,v1=0,v2=0,v3=0,v4=0;

for(k=0;s[k];k++)

switch(s[k])

{

default:

v4++;

case1:

v1++;

case2:

v2++;

csse3:

v3++;

}

printf(〞v1=%d,v2=%d,v3=%d,v4=%d\n〞,v1,v2,v3,v4);

}

A.v1=4,v2=2,v3=1,v4=1    B.v1=4,v2=9,v3=3,v4=1

C.v1=5,v2=8,v3=6,v4=1    D.v1=8,v2=8,v3=8,v4=8

10.有以下程序

#include〞stdio.h〞

intabc(intu,intv);

main()

{

intc,a=24,b=16;

c=abc(a,b);

printf(〞%d\n〞,c);

}

intabc(intu,intv)

{

intw;

while(v)

{w=u%v; u=v; v=w;}

returnu;

}

输出结果是()。

A.6B.7C.8D.9

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

A.inti=100;

while

(1)

{

i=i%100+1;

if(i>100)break;

}

B.for(;;);

C.intk=1000;

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

D.ints=36;

while(s);

--s;

12.若输入B,以下程序的运行结果为()。

main()

{chargrade;scanf("%c",&grade);

switch(grade)

{case'A':

printf(">=85.");

case'B':

case'C':

printf(">=60.");

case'D':

printf("<60.");

default:

printf("error.");

}

}

A.>=85.B.>=60.C.>=60.<60.error.D.error.

13.列程序运行的情况是()。

main()

{inti=1,sum=0;

while(i<10)sum=sum+1;i++;

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

}

A.i=10,sum=9B.i=9,sum=9C.i=2,sum=1D.运行出现错误

14.有以下语句:

i=1;

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

与以上语句序列不等价的有()。

A.for(i=1;;i++){sum+=i;if(i==100)break;}

B.for(i=1;i<=100;){sum+=i;i++;}

C.i=1;for(;i<=100;)sum+=i;

D.i=1;for(;;){sum+=i;if(i==100)break;i++;}

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

main()

{intn;

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

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

printf("%d",n);

}

}

A.12457810B.369C.12D.12345678910

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

main()

{intx,y,z;

x=0;y=z=-1;

x+=-z---y;

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

}

A.x=4B.x=0C.x=2D.x=3

17.标有/**/的语句的执行次数是()。

inty,i;

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

{if(i%2==0)continue;

y+=i;/**/

}

A.20B.19C.10D.9

18.在C语言中,if语句后的一对圆括号中,用以决定分支的流程的表达式。

A.只能用逻辑表达式B.只能用关系表达式

C.只能用逻辑表达式或关系表达式D.可用任意表达式

19.在以下给出的表达式中,与do-while(E)语句中的(E)不等价的表达式是()。

A.(!

E==0)B.(E>0||E<0)C.(E==0)D.(E!

=0)

20.假定所有变量均已正确定义,下列程序段运行后x的值为()。

k1=1;k2=2;k3=3;x=15;

if(!

k1)x--;

elseif(k2)if(k3)x=4;elsex=3;

A.14B.4C.15D.3

21.执行下面语句的输出为()。

inti=-1;

if(i<=0)printf(“****\n”);

elseprintf(“%%%%\n”);

A.****B.%%%%C.%%%%cD.有错,执行不正确

22.下列程序的输出是()。

#include

main()

{inti;charc;

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

{c=getchar();putchar(c);

}

}

程序执行时从第一列开始输入以下数据,代表换行符。

u

w

xsta

A.uwxstaB.uC.uD.u

www

xxsxsta

23.下列程序的输出为()。

#include"stdio.h"

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

24.下列程序的输出为()。

#include

main()

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

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

{for(j=0;j<3;j++)k++;k-=j;}

m=i+j;

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

}

A.k=0,m=3B.k=0,m=5C.k=1,m=3D.k=1,m=5

25.在C语言中,为了结束while语句构成的循环,while后一对圆括号中表达式的值应该为()。

A.0B.1C.trueD.非0

26.在C语言中,为了结束由do-while语句构成的循环,while后一对圆括号中表达式的值应为()。

A.0B.1C.trueD.非0

27.下列程序的输出为()。

#include

main()

{intk=0;charc='A';

do

{switch(c++)

{case'A':

k++;break;

case'B':

k--;

case'C':

k+=2;break;

case'D':

k=k%2;continue;

case'E':

k=k*10;break;

default:

k=k/3;

}

k++;

}

while(c<'G');

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

}

A.k=3B.k=4C.k=2D.k=0

28.C语言的if语句嵌套时,if与else的配对关系是()。

A.每个else总是与它上面的最近的if配对

B.每个else总是与最外的if配对

C.每个else与if的配对是任意的

D.每个else总是与它上面的if配对

29.下列程序的输出为()。

#include

main()

{inti=0,j=0,a=6;

if((++i>0)||(++j>0))a++;

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

}

A.i=0,j=0,a=6B.i=1,j=1,a=7C.i=1,j=0,a=7D.i=0,j=1,a=7

30.下列程序段的输出结果为()。

main()

{intx=3;

do

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

while(!

(--x));}

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

3.2填空题:

1.当输入19,2,21时下列程序运行的结果是。

main()

{inta,b,c,max;

printf("pleasescanthreenumbera,b,c:

\n");

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

max=a;

if(max

if(max

printf("maxis:

%d",max);

}

2.若输入字母C,程序输出结果为【】;若输入字符*,程序将【等待继续输入,直到输入小写字母。

】。

#include

main()

{charc1,c2;

c1=getchar();

while(c1<97||c1>122)c1=getchar();

c2=c1-32;

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

}

3.以下程序运行的结果为________。

main()

{inta,b,c,x,y,z;

a=10;b=2;

c=!

(a%b);x=!

(a/b);

y=(a=0);

z=(a=0);

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

}

4.若输入4,程序运行结果为【】,若输入-4,运行结果为【】,若输入10,运行结果为【】.

main()

{intx,y;

scanf("%d",&x);

if(x<1)

{y=x;

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

}

elseif(x<10)

{y=2*x-1;

printf("x=%d,y=2*x-1=%d\n",x,y);

}

else

{y=3*x-11;

printf("x=%d,y=3*x-11=%d\n",x,y);

}

}

5.以下程序运行的结果________。

main()

{inti=1,sum=0;

loop:

if(i<=10)

{sum+=i;

i++;

gotoloop;

}

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

}

6.以下程序运行的结果。

main()

{intx=2,y,z;

x*=3+1;

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

x+=y=z=5;

printf("%d,",x);

x=y==z;

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

}

7.以下程序运行的结果_。

#include

#include

main()

{inti,k,m,n=0;

for(m=1;m<=10;m+=2)

{if(n%10==0)printf("\n");

k=sqrt(m);

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

if(m%i==0)break;

if(i>k)

{printf("%2d",m);

n++;

}

}

}

8.如果输入‘1’,‘2’,‘3’,‘4’,程序运行输出的是________。

#include

main()

{charc;

inti,k;

k=0;

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

{while

(1)

{c=getchar();if(c>='0'&&c<='9')break;}

k=k*10+c-'0';

}

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

}

9.运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为________。

#include

main()

{intv1=0,v2=0;

charch;

while((ch=getchar())!

='#')

switch(ch)

{case'a':

case'h':

default:

v1++;

case'0':

v2++;

}

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

}

10.程序运行结果是_________。

#include

main()

{inti;

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

{if(i>4){printf("%d\t",i++);break;}

printf("%d\t",i++);

}

}

11.以下程序运行的结果是________。

#include

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

}

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

main()

{inti=1;

while(i<10)

if(++i%3!

=1)continue;

elseprintf("%d",i);

}

13.程序运行的结果是_______。

main()

{intn=0;

while(n++<=1)

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

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

}

14.此程序运行时,输入qwert?

程序的运行结果是_________。

#include

main()

{charc;

while((c=getchar())!

='?

')putchar(++c);

}

15.对以下程序:

当输入6514时,其运行结果是【】。

当输入1463时,其运行结果是【】。

当输入25125时,其运行结果时【】。

#include

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

}

16.在执行以下程序时,为了使输出结果为t=4,则给a和b输入的值应满足的条件是______。

main()

{ints,t,a,b;

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

s=1; t=1;

if(a>0) s=s+1;

if(a>b) t=s+t;

elseif(a==b)t=5;

elset=2*s;

printf(〞t=%d\n〞,t);

}

17.求出1000以内的“完全数”。

(提示:

如果一个数恰好等于它的因子之和(因子包括1,不包括数本身),则称该数为“完全数”。

如:

6的因子是1,2,3而6=1+2+3,则6是个“完数”)。

main()

{inti,a,m;

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

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

if(!

(i%a))【m】;

if【】)printf("%4d",i);

}

}

18.鸡问题:

100元钱买100只鸡,公鸡一只5元钱,母鸡一只3元钱,小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡各多少只?

#include

main()

{intcocks,hens,chicks;

cocks=0;

while(cocks<=19)

{hens=0;

while(hens<=33)

{chicks=100.0-cocks-hens;

if(5.0*cocks+3.0*hens+chicks/3.0==100.0)

printf("%d,%d,%d\n",cocks,hens,chicks);

【】;

}

【】;

}

}

19.爱因斯坦的阶梯问题:

设有一阶梯,每步跨2阶,最后余1阶;每步跨3阶,最后余2阶;每步跨5阶,最后余4阶;每步跨6阶,最后余5阶;只有每步跨7阶时,正好到阶梯顶。

问共有多少阶梯。

main()

{intladders=7;

while(【】)ladders+=14;

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

}

20.下列程序计算平均成绩并统计90分及以上人数。

main()

{intn,m;

floatgrade,average;

average=n=m=【】;

while(【】)

{scanf("%f",&grade);

if(grade<0)break;

n++;

average+=grade;

if(grade<90)【】;

m++;

}

if(n)printf("%.2f%d\n",average/n,m);

}

21.下列程序计算Fibonacci数列:

1,1,2,3,5,8,13……的前40项。

main()

{intI;longf1,f2;

【】;

for(I=0;I<20;I++)

{printf("%12ld%12ld",f1,f2);

if(I%2)printf("\n");

f1+=f2;

【】;

}

}

22.下列程序判断一个数是否为素数。

#include

#include

main()

{intI,k,m;

scanf("%d",&m);

k=sqrt(;

for(I=2;I<=k;I++)

if(m%I==0)【】;

if(【】)printf("%dyes\n",m);

elseprintf("%dno\n",m);

}

23.求100~499之间的所有水仙花数,即各位数字的立方和恰好等于该数本身的数。

main()

{intI,j,k,m,n;

for(I=1;【】;I++)

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

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

{【】;

n=I*I*I+j*j*j+k*k*k;

if(【】)

printf("%d",m);

}

}

24.从键盘上输入两个整数m和n,求其最大公约数。

main()

{inta,b,num1,num2,temp;

scanf("%d,%d",&num1,&num2);

if(【】)

{temp=num1;

num1=num2;

num2=temp;

}

a=num1;b=num2;

while(b!

=0)

{temp=【】;

a=b;

b=temp;

}

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

}

3.3答案及部分解题分析

一.选择题答案

1.A2.D3.A4.D5.D6.A

7.A8.C9.D10.C11.C12.C

13.D14C15.A16.C17.C18.D

19.C20.B21.A22.C23.B24.B

25.A26.A27.B28.A29.C30.C

1.答案:

A

解析:

此题中判断while后面的条件时,先使用n的值再n--,而打印时打印的是n减1

后的值。

所以第一次循环,n=4,执行完后n=2,打印出2;第二次循环,n=2, 经过n—和—n,n变成了0,打印出0;第三次循环时while后面的条件不成立(n=0),所以循环结束。

故输出为20。

2.答案:

D

解析:

第一次循环时打印的x和y的值都是10,然后x通过x—后变成9,因此第二次循环时x=9,而“y=++i”执行完后,y变成1,所以第二次循环时打印的x和y的值是9和1,然后x—变成8;第三次循环时,x>8条件不成立,循环结束。

故D为正确答案。

3.答案:

A

解析:

对于一个不为0的数,!

x即为0,故对于x=-1,while后条件不成立,但是do循环体是先执行的,故等判断条件时,循环体已执行了一次。

4.答案:

D

解析:

此题是一个do-while循环,当y值为1时,while后的条件--y变成0,从而循环结束,这时打印出0,然后y--变成-1。

故D为正确答案。

5

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

当前位置:首页 > 法律文书 > 调解书

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

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