选择结构程序设计练习题.docx

上传人:b****6 文档编号:4561885 上传时间:2022-12-06 格式:DOCX 页数:25 大小:24.03KB
下载 相关 举报
选择结构程序设计练习题.docx_第1页
第1页 / 共25页
选择结构程序设计练习题.docx_第2页
第2页 / 共25页
选择结构程序设计练习题.docx_第3页
第3页 / 共25页
选择结构程序设计练习题.docx_第4页
第4页 / 共25页
选择结构程序设计练习题.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

选择结构程序设计练习题.docx

《选择结构程序设计练习题.docx》由会员分享,可在线阅读,更多相关《选择结构程序设计练习题.docx(25页珍藏版)》请在冰豆网上搜索。

选择结构程序设计练习题.docx

选择结构程序设计练习题

选择结构程序设计练习题

1.逻辑运算符两侧运算对象的数据类型()

A.只能是0和1

B.只能是0或非0正数

C.只能是整型或字符型数据

D.可以是任何类型的数据

2.下列运算符中优先级最高的是()

A.

=

3.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假"的表达式是()

A.(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)

B.(x>=1)||(x<=10)||(x>=200)||(x<=210)

C.(x>=1)&&(x<=10)||(x>=200)&&(x<=210)

D.(x>=1)||(x<=10)&&(x>=200)||(x<=210)

 

4.表示图中坐标轴上阴影部分的正确表达式是()

A.(x<=a)&&(x>=b)&&(x<=c)

B.(x<=a)||(b<=x<=c)

C.(x<=a)||(x>=b)&&(x<=c)

D.(x<=a)&&(b<=x<=c

5.判断char型量ch是否为大写字母的正确表达式是()

A.‘A’<=ch<=‘Z’

B.(ch>=‘A’)&(ch<=‘Z’)

C.(ch>=‘A’)&&(ch<=‘Z’)

D.(‘A’<=ch)AND(‘Z’>=ch)

6.设x,y,z都是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是

()

A.‘x’&&‘y’

B.x<=y

C.x||y+z&&!

y

D.!

(x

z||1)

 

7.已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<‘B’&&!

y)的值是()

A.0B.语法错误C.1D.“假”

8.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是()

A.A%2==1B.!

(A%2==0)C.!

(A%2)D.A%2

9.设有:

inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后的值为()

A.1B.2C.3D.4

10.下列运算符中优先级最低的是()优先级最高的是()

A.?

B.&&C.+D.!

=

 

11.以下程序的运行结果是()

#include

main()

{inta,b,d=241;a=d/100%9;b=(-1)&&(-1);

printf(“%d,%d”,a,b);}

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

12.执行以下语句后a的值为()

inta,b,c;

a=b=c=1;++a||++b&&++c;

A.错误B.0C.2D.1

A.1B.2C.错误D.0

13.执行以下语句后的值为(),b的值()

inta=5,b=6,w=1,x=2,y=3,z=4;

(a=w>x)&&(b=y>z);

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

A.6B.0C.1D.4

14.以下不正确的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

15.已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是()

if(x>y)z=x;x=y;y=z;

A.x=10,y=20,z=30

B.x=20,y=30,z=30

C.x=20,y=30,z=10

D.x=20,y=30,z=20

16.以下语句语法正确的是:

()

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=xy;printf(“%f”,x);};

elseprintf(“%f”,-x);

D.if(x>0)

{x=x+y;printf(“%f”,x)}

elseprintf(“%f”,-x);

17.请阅读以下程序,该程序()

main()

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

if(a+b+c)printf(“***\n”);elseprintf(“$$$\n”);}

A.有语法错误不能通过编译

B.可以通过编译但不能通过连接

C.输出***

D.输出$$$

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

main()

{intm=5;

if(m++>5)printf(“%d\n”,m);elseprintf(“%d\n”,m--);}

A.4B.5C.6D7

 

19.当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

20.有一函数关系如下:

x-1(x<0)

y={x(x=0)

x+1(x>0)

则下面程序段中能正确表示上面关系的是()

A.y=x+1;if(x>=0)if(x==0)y=x;elsey=x-1;

B.y=x-1if(x!

=0)if(x>0)y=x+1;elsey=x;

C.if(x<=0)if(x<0)y=x-1;elsey=x;elsey=x+1;

D.y=x;if(x<=0)if(x<0)y=x-1;elsey=x+1;

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

main()

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

if(x

if(y!

=10)

if(!

ok1)

a=1;

elseif(ok2)a=10;

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

A.1B.0C.-1D.值不确定

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

main()

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

if(x

if(y<0)z=0;

elsez+=1;

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

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

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

else子句总是与()配对。

A.缩进排位置相同的if

B.其之前最近的if

C.其之后最近的if

D.同一行上的if

24.以下不正确的语句为()

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

25.main()

{floata,b;scanf“%f”,&a);

if(a<0.0)b=0.0;

elseif((a<0.5)&&(a!

=2.0))b=1.0/(a+2.0);

elseif(a<10.0)b=1.0/x;

elseb=10.0;

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

若程序运行时输入为2.0,则上面程序的输出结果是()

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

26.若运行时给变量x输入12,则以下程序的运行结果是()

main()

{intx,y;scanf(“%d\n”,y);}

A.0B.22C.12D.10

27.以下程序的运行结果是()

main()

{intk=4,a=3,b=2,c=1;

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

k:

c

c:

a);}

A.4B.3C.2D.1

28.执行以下程序段后,变量a,b,c的值分别是()

intx=10,y=9;inta,b,c;

a=(-x==y++)?

--x:

++y;x=x++;c=y;

A.a=9,b=9,c=9

B.a=8,b=8,c=10

C.a=9,b=10,c=9

D.a=1,b=11,c=10

29.intw,x,y,z,m;则执行以下语句后m的值为()

w=1;x=2;y=3;z=4;

m=(w

w:

x;m=(m

m:

y;

m=(m

m:

z;

A.1B.2C.3D.4

30.若w=1,x=2,y=3,z=4,则表达式w

w:

y

y:

z的值是:

()

A.4B.3C.2D.1

31.执行以下程序段后的输出结果是:

()

intw=3,z=7,x=10;

printf(“%d\n”,x>10?

x+100:

x-10);

printf(“%d\n”,w++||z++);

printf(“%d\n”,!

w>z);

printf(“%d\n”,w&&z);

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

1111

1100

1110

32.当a=3,b=2,c=1时,表达式f=a>b>c的值是________

33.当a=5,b=4,c=2时,表达式a>b!

=c的值是________

34.以下程序的运行结果是___________

main()

{intx=1,y,z;

x*=3+2;printf(“%d\t”,x);

x*=y=z=5;printf(“%d\t”,x);

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

35.在C语言中,表示逻辑“真”用__________

36.设y为int型变量,请写出描述“y是奇数”的表达式__________

37.C语言提供的三种逻辑运算符是______________

38.设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式____________

39.设intx,y,z;请描述“x,y和z中有两个为负数”的表达式____________

40.已知A=7.5,B=2,c=3.6,表达式A>B&&C>A||A

C>B的值是________

41.若a=6,b=4,c=2,则表达式!

(a-b)+c-1&&b+c/2的值是____________

42.若a=2,b=4,则表达式(x=a)||(y=b)&&0的值是___________

43.若a=1,b=4,c=3,则表达式!

(a

c&&1的值____________

44.若a=6,b=4,c=3,则表达式a&&b+c||b-c的值是___________

45.若a=5,b=2,c=1,则表达式a-b

46.设a=3,b=4,c=5,则表达式a||b+c&&b==c的值是_________

47.条件“2

48.当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!

=b)&&(n=b>c)后;n的值为______,m的值为________

49.以下程序运行结果是______

main()

{inta1,a2,b1,b2;inti=5,j=7,k=0;

a1=!

k;a2=i!

=j;

printf(“a1=%d\ta2=%d\n”,a1,a2);

b1=k&&j;b2=k||j;

printf(“b1==%d\tb2=%d\n”,b1,b2);}

51.以下程序的运行结果是:

_________

main()

{intx,y,zx=1;y=1;z=0;

x=x||y&&z;printf(“%d,%d”,x,x&&!

y||z);}

循环控制练习题

 

1.设有程序段intk=10;while(k=0)k=k-1;则下面描述中正确的是()

Awhile循环执行10次

B循环是无限循环

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

D循环体语句执行一次

2.设有以下程序段intx=0,s=0;while(!

x!

=0)s+=++x;printf("%d",s);则()

A运行程序段后输出0B运行程序段后输出1C程序段中的控制表达式是非法的D程序段执行无限次

 

3、语句while(!

E);中的表达式!

E特等价于( )

A、E==0 B、E!

=1C、E!

=0 D、E==1

4、下面程序段的执行结果是()

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

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

x=y=0;

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

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

A、20,7B、6,12C、20,8D8,20

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

intn=0;

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

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

 

7、设有程序段

t=0;

while(printf("*"))

{t++;if(t<3)break;}下面描述正确的是()

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

B、其中循环控制表达式与’0‘等价

C、其中循环表达式是不合法的

D、以上说法都不对

8、下面程序的功能是将从键盘输入的一对数,由小到大排序输出。

当输入一对相等的数时结束循环,请选择填空。

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=bB、a!

=bC、a==bD、a=b

 

9、下面程序的功能是从键盘输入的一组字符中统计出大写字母个数m和小写字母个数n,并输出m,n中较大者,请选择填空。

#include

main()

{intm=0,n=0;

charc;

while((__)!

=’\n’)

{if(c>=’A’&&c<=’Z’)m++;

if(c>’a’&&c<=’z’)n++;}

printf(“%d\n”,m

___);}

A.c==getchar()B.getchar()C.c=getchar()D.scanf(“%c”,c)

A.n:

mB.m:

nC.m:

mD.n:

n

10、下面程序的功能是将小写字母变成对应大写字母后的第二个字母。

其中y变成A,Z变成B。

填空

#include

main()

{charc;

while((c=getchar())!

=’\n’)

{if(c>=’a’&&c<=’z’)

{_______;

if(c>=’Z’&&c<=’Z’+2)

___________;}

printf(“%c”,c);}

A.c+=2B.c-=32C.c=c+32+2D.c-=30

A.c=’B’B.c=’A’C.c-=26D.c=c+26

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

main()

{inta,max=0;scanf(“%d”,&a);

while(____)

{if(max

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

printf(“%d”,max);}

A.a==0B.aC!

a==1D.!

a

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

main()

{intnum=0;

while(num<=2)

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

A.1B.12C.123D.1234

13.若运行以下程序时,从键盘输入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);

case4:

putchar(c+2);break;}

printf(“\n”);}

A.668977B.668966C.66778777D.6688766

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

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

B.while的循环控制条件比do–while的循环控制条件严格

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

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

15.以下程序段()

x=-1

do{x=x*x;}

while(!

x);

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

16、以下描述中正确的是()

A.由于do-while循环中循环语句中只能是一条可执行语句,所以循环体内不能使用复合语句。

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

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

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

17.若有以下后句

intx=3;

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

(-x));则上面程序段()

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

18.下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环,填空。

main()

{longintnum;

scanf("%ld",&num);

do{if(_____)printf("%ld,num);

scanf("%ld",&num);}

while(______);}

A.num%100/10=3.Bnum/100%10=3C.num%10/10=3D.num/10%10=3

A.!

numB.num>0=0C.!

num=0D.!

num!

=0

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

main()

{inty=10;

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

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

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

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

#include

main()

{charc;intv0=0,v1=0,v2=0;

do{switch(c=getchar())

{case'a':

case'A':

case'e':

case'E':

case'i':

case'I':

case'0':

case'0':

case'u':

case'U':

v1+=1;

default:

v0+=1;v2+=1;}

}while(c!

='\n');

print(%d,%d,%d",v0,v1,v2);}

A.7,4,7B.8,4,8C.11,4,11D.12,4,12

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

main()

{inta=1,b=10,

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

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

A.3.11B.2,8C.1,-1D.4,9

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

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

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

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

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

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

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

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

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

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

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

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

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

25.以下for循环的语句是()

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

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

26.以下不是无限循环的语句是()

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;

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

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

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

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

29.下列程序段不是死循环的是()

A.intI=100

while

(1)

{I=I%100+1;

if(I>100)break;}

B.for(;;)

C.intk=0;

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

D.ints=36;while(s);--s;

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

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

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

Main()

{intI,sum=0;

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

if(______)sun+=I;

printf(“%d”,sum);}

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

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

main()

{inta;

for(a=1;a<=5;a++

switch(a%5)

{case0:

printf(“*”);break;

case1;printf(“#”);break;

default:

printf(“\n”);

case2:

printf(“&”);}}

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

main()

{intx,I;

for(I=1;I<100;I++)

{x=I;NO.14

if(++x%2==0)

if(++x%3==0)

if(++x%7==0)

ptintf(“%d”,x);}}

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

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

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

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

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