c语言选择结构试题带答案.docx

上传人:b****5 文档编号:5126878 上传时间:2022-12-13 格式:DOCX 页数:19 大小:23.45KB
下载 相关 举报
c语言选择结构试题带答案.docx_第1页
第1页 / 共19页
c语言选择结构试题带答案.docx_第2页
第2页 / 共19页
c语言选择结构试题带答案.docx_第3页
第3页 / 共19页
c语言选择结构试题带答案.docx_第4页
第4页 / 共19页
c语言选择结构试题带答案.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

c语言选择结构试题带答案.docx

《c语言选择结构试题带答案.docx》由会员分享,可在线阅读,更多相关《c语言选择结构试题带答案.docx(19页珍藏版)》请在冰豆网上搜索。

c语言选择结构试题带答案.docx

c语言选择结构试题带答案

一、选择题

1.以下非法的赋值语句是

A:

n=(i=2,++i);B:

j++;C:

++(i+1);D:

x=j>0;

2.已有定义:

intx=3,y=4,z=5;,则表达式!

(x+y)+z-1&&y+z/2的值是

A:

6B:

0C:

2D:

1

3.阅读以下程序:

  main()

  {intx;

  scanf(“%d”,&x);

  if(x--<5)printf(“%d”,x);

  elseprintf(“%d”,x++);

  }

  程序运行后,如果从键盘上输人5,则输出结果是()。

A:

3B:

4C:

5D:

6

4.有如下程序

main0

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

if(a

if(b<0)c=0;

elsec++

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

}

该程序的输出结果是

A:

0B:

1C:

2D:

3

5.有以下程序

#include

main()

{inta,b,c=246;

a=c/100%9;

b=(-1)&&(-1);

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

}

输出结果是()。

A:

2,1B:

3,2C:

4,3D:

2,-1

6.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是

main()

{intx;

scanf("%d",&x);

if(x++>5)printf("%d",x);

elseprintf("%d\n",x--);}

A:

7和5B:

6和3C:

7和4D:

6和4

7.能表示x为偶数的表达式是

A:

x%2==0B:

x%2==1C:

x%2D:

x%2!

=0

8.下面的程序段中共出现了几处语法错误?

inta,b;

scanf("%d",a);

b=2a;

if(b>0)printf("%b",b);

A:

1B:

2C:

3D:

4

9.C语言中,逻辑“真”等价于

A:

大于零的数B:

大于零的整数C:

非零的数D:

非零的整数

10.C语言的switch语句中,case后

A:

只能为常量

B:

只能为常量或常量表达式

C:

可为常量及表达式或有确定值的变量及表达式

D:

可为任何量或表达式

11.已知inti=10;表达式"20-0<=i<=9"的值是

A:

0B:

1C:

19D:

20

12.设有inti,j,k;则表达式i=1,j=2,k=3,i&&j&&k的值为

A:

1B:

2C:

3D:

0

13.逻辑运算符两侧运算对象的数据类型

A:

只能是0或1

B:

只能是0或非0正数

C:

只能是整型或字符型数据

D:

可以是任何类型的数据

14.能正确表示“当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)

15.已知x=43,ch=’a’,y=0;则表达式(x>=y&&ch<’b’&&!

y)的值

是()

A:

0B:

1C:

语法错误D:

16.执行下列语句后a的值为

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

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

A:

5B:

0C:

2D:

1

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:

6D:

7

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

main()

{intx,y;

scanf(“%d”,&x);

y=x>12?

x+10:

x-12;

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

}

A:

0B:

22C:

12D:

10

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

w:

y

y:

z的值是

A:

4B:

3C:

2D:

1

21.设有inta=2,b;则执行b=a&&1;语句后,b的结果是

A:

0B:

1C:

2D:

3

22.设有intm=1,n=2;则++m==n的结果是

A:

0B:

1C:

2D:

3

23.设有intn=2;则++n+1==4的结果是

A:

trueB:

falseC:

1D:

0

24.设有intn=2;则++n+1==4,n的结果是

A:

1B:

2C:

3D:

4

25.以下使i的运算结果为4的表达式是

A:

inti=0,j=0;(i=3,(j++)+i);

B:

inti=1,j=0;j=i=((i=3)*2);

C:

inti=0,j=1;(j==1)?

(i=1):

(i=3);

D:

inti=1,j=1;i+=j+=2;

26.当a=5,b=2时,表达式a==b的值为

A:

2B:

1C:

0D:

5

27.若执行以下程序时从键盘上输入9,_______则输出结果是

main()

{intn;

scanf("%d",&n);

if(n++<10)printf("%d\n",n);

elseprintf("%d\n",n--);

}

A:

11B:

10C:

9D:

8

28.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

29.若有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

30.下列表达式中能表示a在0到100之间的是

A:

a>0&a<100B:

!

(a<0||a>100)C:

0

!

(a>0&&a<100)

31.为了避免嵌套的if—else语句的二义性,C语言规定else总是与()

组成配对关系。

A:

缩排位置相同的if

B:

在其之前未配对的if

C:

在其之前未配对的最近的if

D:

同一行上的if

32.已知:

intx,a,b;下列选项中错误的if语句是

A:

if(a=b)x++;B:

if(a<=b)x++;

C:

if(a-b)x++;D:

if(x)x++;

33.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它

三个选项含义不同,这个选项是()。

A:

k%2B:

k%2==1C:

(k%2)!

=0D:

!

k%2==1

34.设有定义:

inta=2,b=3,c=4;,则以下选项中值为0的表达式是()。

A:

(!

a==1)&&(!

b==0)B:

aC:

a&&bD:

a||(b+b)&&(c-a)

35.以下程序段的输出结果是。

inta=10,b=50,c=30;

if(a>b)

a=b;

b=c;

c=a;

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

A:

a=10b=50c=10B:

a=10b=30c=10C:

a=50b=30c=10D:

a=50b=30c=50

36.以下4个选项中,不能看作一条语句的是

A:

{;}B:

a=0,b=0,c=0;C:

if(a>0);D:

if(b==0)m=1;n=2;

以下题目为二级题

37.if语句的基本形式是:

if(表达式)语句,以下关于“表达式”值的叙述中正确的是

A)必须是逻辑值

B)必须是整数值

C)必须是正数

D)可以是任意合法的数值

38.有以下程序段

inti,n;

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

{n=rand()%5;

switch(n)

{case1:

case3:

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

case2:

case4:

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

case0:

exit(0);

}

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

}

以下关于程序段执行情况的叙述,正确的是

A)for循环语句固定执行8次

B)当产生的随机数n为4时结束循环操作

C)当产生的随机数n为1和2时不做任何操作

D)当产生的随机数n为0时结束程序运行

39.有以下程序

#include

main()

{intx=1,y=0;

if(!

x)y++;

elseif(x==0)

if(x)y+=2;

elsey+=3;

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

}

程序运行后的输出结果是

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

41.有以下程序:

#include

main(){

inta=0,b=0,c=0,d=0;

if(a=1)b=1;c=2;

elsed=3;

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

}

程序输出().

A)1,1,2,0B)0,0,0,3C)编译有错D)0,1,2,0

42.有以下程序:

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

case3:

a++;b++;

}

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

}

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

43.若有定义intx,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?

(x++):

(y++)中的条件表达式(x-y)等价的是()

A)(x-y<0||x-y>0)

B)(x-y<0)

C)(x-y>0)

D)(x-y==0)

44.有以下程序:

#include

main(){

intx=1,y=0;

if(!

x)y++;

elseif(x==0)

if(x)y+=2;

elsey+=3;

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

}

程序运行后的输出结果是()

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

45.若有定义:

floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()

A)switch(a+b)

{case1:

printf("*\n");

case2+1:

printf("**\n");}

B)switch((int)x);

{case1:

printf("*\n");

case2:

printf("**\n");}

C)switch(x);

{case1.0:

printf("*\n");

case2.0:

printf("**\n");}

D)switch(a+b)

{case1:

printf("*\n");

casec:

printf("**\n");}

46.若变量已正确定义,在if(W)printf("%d\n",k);中,以下不可替代W的是()。

A)a<>b+cB)ch=getchar()C)a==b+cD)a++

47.下列叙述中正确的是().

A)在switch语句中,不一定使用break语句

B)在switch语句中必须使用default

C)break语句必须与switch语句中的case配对使用

D)break语句只能用于switch语句

48.有如下嵌套的if语句

if(a

if(a

elsek=c;

else

if(b

elsek=c;

以下选项中与上述语句等价的语句是()

A)k=(a

((b

a:

b):

((b>c)?

b:

c);B)k=(a

((a

a:

c):

((b

b:

c);

C)k=(a

a:

b;k=(b

b:

c;D)k=(a

a:

b;k=(a

a:

c;

49.设有宏定义:

#defineIsDIV(k,n)((k%n==1)?

1:

0)

且变量m已正确定义并赋值,则宏调用:

IsDIV(m,5)&&IsDIV(m,7)

为真时所要表达的是:

A)判断m是否能被5和7整除B)判断m被5和7整除是否都余1

C)判断m被5或者7整除是否余1D)判断m是否能被5或者7整除

50.有以下程序

#include

main(){

inta=1,b=2,c=3,x;

x=(a^b)&c;

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

}

程序运行结果是

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

51.以下选项中,当x为大于1的奇数时,值为0的表达式是

A)x%2==0B)x/2C)x%2!

=0D)x%2==1

52.有以下程序

#include

main(){

intx;

scanf("%d",&x);

if(x<=3)else

if(x!

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

}

程序运行时,输入的值在哪个范围才会有输出结果()

A)小于3的整数B)不大于10的整数

C)大于3或等于10的整数D)大于3且不等于10的整数

53.在以下给出的表达式中,与while(E)中的E不等价的表达式是()

A) (E>0||E<0)B)(E==0)C)(!

E==0)D) (E!

=0)

54.以下选项中与

if(a==1)a=b;

elsea++;

语句功能不同的switch语句是()

A)switch(a==1)

{case0:

a=b;break;

case1:

a++;

}

B)switch(a)

{case1:

a=b;break;

default:

a++;

}

C)switch(a)

{default:

a++;break;

case1:

a=b;

}

D)switch(a==1)

{case1:

a=b;break;

case0:

a++;

}

55.有以下程序

#include

main()

{

inta=1,b=2,c=3,d=0;

if(a==1&&b++==2)

if(b!

=2||c--!

=3)

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

elseprintf("%d,%d,%d\n",a,b,c);

elseprintf("%d,%d,%d\n",a,b,c);

}

程序运行后的输出结果是()

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

56.下列条件语句中,输出结果与其他语句不同的是()

A)if(a!

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

B)if(a==0)printf("%d\n",y);elseprintf("%d\n",x);

C)if(a==0)printf("%d\n",x);elseprintf("%d\n",y);

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

57.有以下程序

#include

main(){

intx=1,y=2,z=3;

if(x>y)

if(y

elseprintf("%d",++y);

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

}

程序的运行结果是()

A)1B)41C)2D)331

58.若有以下程序

#include

main(){

inta=1,b=2,c=3,d=4,r=0;

if(a!

=1);elser=1;

if(b==2)r+=2;

else;if(c!

=3)r+=3;

else;if(d==4)r+=4;

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

}

则程序的输出结果是()

A)10B)7C)6D)3

59.有以下程序

#include

main(){

inta;

scanf("%d",&a);

if(a++<9)printf("%d\n",a);

elseprintf("%d\n",a--);

}

程序运行时从键盘输入9<回车>,则输出结果是

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

60.设x=3,y=-4,z=6,写出表达式!

(x>y)+(y!

=z)||(x+y)&&(y-z)的结果()

A、0B、1C、-1D、6

二、填空题

1、C语言中用_____表示逻辑值“真”,用_____表示逻辑值“假”

2、C语言中的关系运算符“!

=”的优先级_____“<=”的优先级。

3、C语言中的逻辑运算符“&&”的优先级_____“||”的优先级。

4、C语言中的关系运算符"=="的优先级_____逻辑运算符“&&”的优先级

5、将下列数学式改写成C语言关系表达式或逻辑表达式

A)_______________

B)_______________

A)a=b或a4

6、请写出以下程序的输出结果是_____________

#include

main(){

inta=100;

if(a>100)printf("%d\n",a>100);

elseprintf("%d\n",a<=100);

}

7、请写出与以下表达式等价的表达式

A)_______________

B)_______________

A)!

(x>0)B)!

0

8、若变量已正确定义,以下语句段的输出结果是______________

x=0;y=2;z=3

switch(x){

case0:

switch(y==2)

{case1:

printf("*");break;

case2:

printf("%");break;

}

case1:

switch(z)

{case1:

printf("$");

case2:

printf("*");break;

default:

printf("#");

}

}

9、inta=3;

a+=(a<1)?

a:

1;

printf(“%d”,a);

结果是__________

 

以下题目为二级题

10、有以下程序

#include

main()

{intx;

scanf("%d",&x);

if(x>15)printf("%d",x-5);

if(x>10)printf("%d",x);

if(x>5)printf("%d\n",x+5);

}

若程序运行时从键盘输入12<回车>,则输出结果为__________。

11、以下程序运行后的输出结果是_________。

#include

main()

{intx=10,y=20,t=0;

if(x==y)t=x;x=y;y=t;

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

}

12、以下程序的运行结果是_________。

main()

{

inta=2,b=7,c=5;

switch(a>0)

{case1:

switch(b<0)

{case1:

printf("@");break;

case2:

printf("!

");break;

}

case0:

switch(c==5)

{case0:

printf("*");break;

case1:

printf("#");break;

case2:

printf("$");break;

}

default:

printf("&");

}

printf("\n");

}

13、以下程序的运行结果i的值为_________.

main()

{

charch='$';

inti=1,j;

j=!

ch&&i++;

printf("%d",i);

}

14、以下程序用于判断a,b,c能否构成三角形,若能输出YES,若不能输出NO。

当a,b,c输入三角形三条边长时,确定a,b,c能构成三角形的条件是需要同时满足三

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

当前位置:首页 > 高等教育 > 艺术

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

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