C流程设计练习题及答案.docx

上传人:b****5 文档编号:8635687 上传时间:2023-02-01 格式:DOCX 页数:24 大小:43.03KB
下载 相关 举报
C流程设计练习题及答案.docx_第1页
第1页 / 共24页
C流程设计练习题及答案.docx_第2页
第2页 / 共24页
C流程设计练习题及答案.docx_第3页
第3页 / 共24页
C流程设计练习题及答案.docx_第4页
第4页 / 共24页
C流程设计练习题及答案.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

C流程设计练习题及答案.docx

《C流程设计练习题及答案.docx》由会员分享,可在线阅读,更多相关《C流程设计练习题及答案.docx(24页珍藏版)》请在冰豆网上搜索。

C流程设计练习题及答案.docx

C流程设计练习题及答案

第三章C流程设计练习题及答案

一、选择题

1、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()

A、a<>0B、a!

=0C、a=0D、a

2、若k是int型变量,且有下面的程序片段:

k=-3;if(k<=0)

printf(“####”)

elseprintf(“&&&&”);上面程序的输出结果是()

A、####B、&&&&C、####&&&&D、有语法错误

3、以下不正确的语句为()

A、if(x>y);B、if(x=y)&&(x!

=0)x+=y;

C、if(x!

=y)scanf("%d",&x);elsescanf("%d",&y);

D、if(x

4、以下if语句语法正确的是()1--5BDBAC

A、if(x>0)printf("%f",x);elseprintf("%f",-x);

B、if(x>0){x=x+y;printf("%f",x);elseprintf("%f",-x);}

C、if(x>0){x=x+y;printf("%f",x);};elseprintf("%f",-x);

D、if(x>0){x=x+y;printf("%f",x)}elseprintf("%f",-x);}

5、程序的运行结果是()

main()

{inta=5;

if(a++>5)

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

else

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

}

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

6、下列程序的输出结果是()

main()

{inta=-1,b=1,k;

if((++a<0)&&!

(b--<=0))

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

else

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

A、-11B、01C、10D、00

7、试读程序:

#include

main()

{floatx,y;scanf(“%f”,&x);6--10CCADC

if(x<0.0)

y=0.0;

elseif((x<5.0)&&(x!

=2.0))

y=1.0/(x+2.0);

elseif(x<10.0)

y=1.0/x;

else

y=10.0;

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

}

若运行时从键盘输入2.0后回车,则上面程序输出结果是()

A、0.000000B、0.250000C、0.500000D、1.000000

8、程序的输出结果是()

#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

9、请阅读以下程序:

main()

{inta=5,b=0,c=0;

if(a=b+c)

printf("***\n");

elseprinrf("$$$\n");

}以上程序()

A、有语法错不能通过编译B、可以通过编译但不能通过连接

C、输出 ***D、输出$$$

10、以下不正确的if语句形式是()

A、if(x>y&&x!

=y);B、if(x==y)x+=y;

C、if(x!

=y)scanf("%d",&x)elsescanf("%d",&y);D、if(x

11、下面程序的运行结果是()

#include

main()

{intk=0;charc='A';

do

{switch(c++)

{case'A':

k++;break;

case'B':

k--;break;

case'C':

k+=2;break;

case'D':

k=k%2;break;

case'E':

k=k*10;break;

default:

k=k/3;

}

k++;

}while(c<'G');

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

}

A、k=3B、k=4C、k=2D、k=8

12、以下程序的输出结果是()

main()

{

inta=100,x=10,y=20,ok1=5,ok2=0;

if(x

if(y!

=10)

if(!

ok1)

a=1;

elseif(ok2)a=10;

elsea=-1;

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

}

A、100 B、10 C、-1D、1

13、已知intx=10,y=20,z=30;以下语句执行后x,y,z的值为()

if(x>y)此题为神题

z=x;x=y;y=z;

A、x=10,y=20,z=30B、x=20,y=30,z=30

C、x=20,y=30,z=10D、x=20,y=30,z=20

14、为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:

else子句总是与()配对。

A、缩排位置相同的ifB、其之前最近的if

C、其之后最近的ifD、同一行上的if

15、以下程序的输出结果是()11--15BCBBB

main()

{intx=2,y=-1,z=2;

if(x

if(y<0)

z=0;

Else

z+=1;

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

}

A、3B、2C、1D、0

16、当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是()

if(a

if(c

elseif(a

if(b

elsex=3;

elsex=6;

elsex=7;

A、1B、2C、3D、6

17、设有下面程序段,则下面描述中正确的是()

intk=10;

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

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

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

18、语句while(!

E);中的表达式!

E等价于()16--20BCACD

A、E==0(当发现判断条件值为0时,退出循环)B、E!

=1C、E!

=0D、E==1

19、下面程序段的运行结果是()

intn=0;

while(n++<=2);printf("%d",n);

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

20、下面程序的输出结果是()

main()

{intunm=0;

while(num<=2)

{num++;

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

}

}

A、012B、0C、123D、1

12

23

21、以下程序段的输出结果是()

main()

{intx=3;

do

printf(“%3d”,x-=2);21--25CCBBC

while(!

(--x));

}

A、1B、30C、1–2D、死循环

22、以下程序段()

x=-1;

do{

x=x*x;

}while(!

x);

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

23、若有如下语句,则下面程序段()

intx=3;

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

(--x));

A、输出的是1B、输出的是1和-2C、输出的是3和0D、是死循环

24、下列程序运行结果

#include

main()

{

inti=0,sum=1;

do

sum+=i++;

while(i<6);

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

A、15B、16C、17D、18

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

A、for(i=1;;){if(++i%2==0)continue;if(++i%3==0)break;}

B、i=32767;do{if(i<0)break;}while(++i);

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、以下不是无限循环的语句为()26--30CABCB

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;

28、下面程序的运行结果是()

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

}

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

29、以下描述正确的是()

A、goto语句只能用于退出多层循环B、switch语句中不能出现continue语句

C、只能用continue语句来终止本次循环D、在循环中break语句不能独立出现

30、对for(表达式1;;表达式3)可理解为()

A、for(表达式1;0;表达式2)B、for(表达式1;1;表达式2)

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

31、下面程序的功能是计算1到50中是7的倍数的数值之和,请选择填空()

#include

main()

{inti,sum=0;

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

if()sum+=i;

printf("%d",sum);

}

A、(int)(i/7)==i/7B、(int)i/7==i/7C、i%7=0D、i%7==0

32、若i为整型变量,则以下循环体执行次数是()

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

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

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、以下for循环体的执行次数是()31--35DBBCD

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

printf("%d",x);

A、是无限循环B、执行0次C、执行4次D、执行3次

35、下面有关for循环的正确描述是()

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

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

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

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

二、填空题

1、执行以下程序时,从键盘输入3和4,则输出结果是()

main()

{inta,b,r;

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

r=a;

if(a

r*=r;

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

}

2、以下程序的运行结果是()

main()

{inta=2,b=3,c;

c=a;

if(a>b)c=1;

elseif(a==b)c=0;

elsec=-1;

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

}

3、以下程序的运行结果是(200)

main()

{ints,w,t,a,b,c;

s=w=t=0;

a=-1;b=3;c=3;

if(c>0)s=a+b;

if(a<=0)

{if(b>0)

if(c<=0)w=a-b;

}

elseif(c>0)w=a-b;

elset=c;

printf("%d,%d,%d",s,w,t);

}

4、请阅读下面的程序,为了使输出结果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("s=%d,t=%d",s,t);

}

5、以下程序的运行结果是(554)

#include

main()

{intx,y=1,z;

if(y!

=0)x=5;

printf("%d,",x);

if(y==0)x=4;

elsex=5;

printf("%d,",x);

x=1;

if(y<0)

if(y>0)x=4;

elsex=5;

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

}

6、若运行时输入3,5,/<回车>,则以下程序的运行结果是(0.6)

main()

{floatx,y;

charo;

doubler;

scanf("%f,%f,%c",&x,&y,&o);

switch(o)

{case'+':

r=x+y;break;

case'-':

r=x-y;break;

case'*':

r=x*y;break;

case'/':

r=x/y;break;

}

printf("%f",r);

}

7、有以下语句,请写出输出结果(3)

inti=3;

if(i)

printf("%d",i);

else

printf("%d",-i);

8、当运行时输入:

1992<回车>,则以下程序的运行结果是(1992isaleapyear)

main()

{inty,t;

scanf("%d",&y);

t=((y%4==0&&y%100!

=0)||y%400==0)?

1:

0;

if(t)printf("%dis",y);

elseprintf("%disnot",y);

printf("aleapyear");

}

9、以下程序的运行结果是()

main()

{inta,b,c,d,x;

a=c=0;

x=b=1;

d=20;

if(a)d=d-10;

elseif(!

b)

if(!

c)x=15;

elsex=25;

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

}

10、下面程序运行后的结果为(755)

main()

{inta,b,c;

a=2;b=5;c=7;

if(a>c)

b=a;a=c;c=b;

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

}

11、运行下面程序时,分别输入-5,0,16,则运行结果分别是(-101)

main()

{intx,y;

scanf(“%d”,&x);

if(x)

if(x>0)y=1;

elsey=-1;

elsey=0;

printf(“%d”,y);

}

12、写出下面程序的运行结果(#@)

#include

main()

{inta=-1,b=1,c=5;

switch(a>0){

case1:

switch(b-2<0){

case1:

printf("&");break;

case2:

printf("*");break;

}

case0:

switch(c==5){

case0:

printf("!

");break;

case1:

printf("#");break;

default:

printf("%%");

}

default:

printf("@");

}

}

13、下面程序的输出结果为(ae),若将y,z的初值都改为1,运行结果为(cd)

main()

{intx=0,y=2,z=3

switch(x)

{case0:

switch(y==2)

{case1:

pritnf(“a”);break;

case2:

printf(“b”);break;

}

case1:

switch(z)

{case1:

printf(“c”);

case2:

printf(“d”);break;

default:

printf(“e”);

}

}

}

14、若k为整型,则while循环执行(0)次。

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

15、下列程序中while循环执行(无限次)次。

main()

{intk=2;

while(k)printf(“%d”,k);

k--;

printf(“\n”);

}

16、下列程序中while循环执行()次。

main()

{intk=32764;

while(k>0)

{printf(“%d,”,k);k++;

}

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

}

17、下列程序的运行结果为()

main()

{inta,b,c,d,m,n;

a=7;b=c=d=5;m=n=0;

for(;a>b;++b)m++;

while(a>++c)n++;

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

}

18、执行下面的程序,运行结果为(x=-1k=5)

main()

{intx=100,a=10,k=0,d=5;

while(x--);(当发现判断条件值为0时,退出循环)

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

do

k++;

while(a>d++);

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

}

19、下面程序的输出结果是(sum=11)

#include

main()

{intk=0,sum=1;

do

sum+=k++;

while(k<5);

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

}

20、若从键盘输入65,14表示回车符,)则下面程序的运行结果是(m=1)

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

}

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

#include

main()

{inti=1;

while(i<=15)

if(++i%3!

=2)continue;

elseprintf("%d",i);

}

22、当运行以下程序时,从键盘输入-1,0表示回车),则下面程序的运行结果是()

#include

main()

{inta,b,m,n;

m=n=1;

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

do{if(a>0){m=2*n;b++;}

else{n=m+n;a+=2;b++;}

}while(a==b);

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

}

23、下面程序的运行结果是()

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

}

24、当运行以下程序时,从键盘键入right?

代表回车),则下面程序的运行结果是()

#include

main()

{charc;

while((c=getchar())!

='?

')

putchar(++c);

}

25、下面程序的输出结果是()

#include

main()

{inti,j,k=19;

while(i=k-1)

{k-=3;

if(k%5==0){i++;continue;}

elseif(k<5)break;

i++;

}

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

}

26、下面程序段是找出整数的所有因子,请填空。

()

#include"math.h"

main()

{inti,x;

scanf("%d",&x);

;

while(i<=fabs(x))

{if(x%i==0)printf("%3d",i);

i++;

}

}

27、当运行以下程序时,从键盘输入12345-1表示回车),则下面程序的运行结果是()

#include

main()

{intk=0,n;

do

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

k+=n;

}while(n!

=-1);

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

}

28、下面程序的输出结果是()

main()

{inty=9;

for(;y>0;y--)

{if(y%3==0)

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

continue;

}

}

}

29、以下程序的运行结果是()

main()

{inti,k;

for(i=

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

当前位置:首页 > 初中教育

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

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