当前位置:文档之家› C语言 第四章 选择结构程序设计期末测试习题与答案

C语言 第四章 选择结构程序设计期末测试习题与答案

C语言 第四章 选择结构程序设计期末测试习题与答案
C语言 第四章 选择结构程序设计期末测试习题与答案

C语言第四章选择结构程序设计期末测试习题与答案

1、下列条件语句中,功能与其他语句不同的是 ( )。

A.if(a==0) prinff("%d\n",y); else printf("%d\n",x);

B.if(a) printf("%d\n",x); else prinf("%d\n",y);

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

D.if(a==0) printf("%d\n",x); else printf("%d\n",y);

参考答案:D

2、假定所有变量均已正确说明,下列程序段运行后x的值是( )。

a=b=c=0;x=12; if(!a)x--; else x=5; if(c) x=3; else x=4;

A.3

B.4

C.12

D.11

参考答案:B

3、下列叙述中正确的是 ( )。

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

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

C.break语句只能用于switch语句

D.break语句必须与switch语句中的case配对使用

参考答案:A

4、假定所有变量均已正确说明,以下程序段运行后的输出结果是 ( )。

int a=1,b=3,c=5; if(c=a+b) printf("yes\n"); else printf("no\n");

A.3

B.5

C.1

D.2

参考答案:A

5、当把以下4个表达式用作if语句的控制表达式时,有一个选项与其他3个选项含义不同,这个选项是 ( )。

A. k%2==1

B. !k%2==1

C.(k%2)!=0

D. k%2

参考答案:B

6、假定所有变量均已正确说明,以下程序段运行后的输出结果是 ( )。

int n=0,m=l,x=2; if(!n) x-=l; if(!m) x-=2; if(!x) x-=3; printf (" %d\n",x);

A.1

B.3

C.6

D.2

参考答案:A

7、假定所有变量均已正确说明,以下程序段运行后的输出结果是 ( )。

int a=3,b=5,c=7; if(a>b) a=b; c=a; if(c!=a) c=b; printf("%d,%d,%d\n",a,b,c);

A. 3,5,5

B.3,5,7

C.程序段有语法错

D.3,5,3

参考答案:D

8、假定所有变量均已正确说明,执行以下程序段时,从键盘上输入1和2,则结果是( )。

int a,b,s; scanf("%d%d",&a,&b); s=a; if(a

A.1

B.2

C.4

D.9

参考答案:C

9、有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不等于3的是 ( )。

A.if(c<3)x=1; else if(b<2)x=2; else x=3;

B. if(a<2)x=3; else if(a<1)x=2; else x=1;

C.if(a<3)x=3; if(a<2)x=2; if(a<1)x=1;

D.if(a<2)x=b; if(b<3)x=c; if(c<1)x=a;

参考答案:C

10、下面选项if语句形式不正确的是 ( )。

A.if (x==y) x+=y,

B.if(x

C.if(x!=y) scanf("%d",&x); else scanf("%d",&y);

D.if (x>y&&x!=y);

参考答案:A

11、为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:else子句总是与配对。

A.缩排位置相同的if

B.同一行上的if

C.其之后最近的if

D.其之前最近的没有else配对的if

参考答案:D

12、在下面的条件语句中,只有一个在功能上与其它三个语句不等价,它是 ( )。

A.if (a) 语句1 else 语句2

B.if (a!=0) 语句1 else 语句2

C.if (a==0) 语句2 else 语句1

D.if (a==0) 语句1 else 语句2

参考答案:D

13、在C语言语句中,用来决定分支流程的表达式是 ( )。

A.只能用逻辑表达式

B.只能用关系表达式

C.可用任意表达式

D.只能用逻辑表达式或关系表达式

参考答案:C

14、假定所有变量均已正确说明,以下程序段运行后的输出结果是 ( )。

int k; k=-3; if(k<=0) printf(“####”); else printf(“&&&&”);

A.####

B.####&&&&

C.有语法错误,无输出结果

D.&&&&

参考答案:A

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

#include

main()

{ int x=0,a=0,b=0;

switch(x){

case 0: b++;

case 1: a++;

case 2: a++;b++;}

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

}

A.a=2,b=1

B.a=2,b=2

C.a=1,b=0

D.a=1,b=1

参考答案:B

16、假定所有变量均已正确说明,以下程序段运行后的输出结果是 ( )。int a=1,b=5,c=3;

if(a>b)

a=b;

b=c;

c=a;

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

A.a=5 b=3 c=5

B. a=1 b=3 c=1

C.a=5 b=3 c=1

D. a=1 b=5 c=1

参考答案:B

17、有以下程序

#include

main()

{

int a=5,b=4,c=3,d=2;

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

else if((c-1>=d)==1) printf("%d\n",d+1); else printf("%d\n",d+2);

}

执行后输出结果是 ( )。

A.编译时有错,无结果

B.2

C.3

D.4

参考答案:C

18、对下述程序,是正确的判断。

#include

main ( )

{ int x,y;

scanf(“%d,%d”,&x,&y);

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

else x++;y++;

printf(“%d,%d”,x,y);

}

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

B.若输入3和4,则输出4和5

C.若输入4和3,则输出4和5

D.若输入4和3,则输出3和4

参考答案:A

19、下述程序的输出结果是 ( )。

#include

main ( )

{ int a=0,b=0,c=0;

if (++a>0 | | ++b>0)

++c;

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

}

A.0,0,0

B.1,1,1

C.1,0,1

D.0,1,1

参考答案:C

20、在C语言中,多分支选择结构语句为:

switch(c)

{ case 常量表达式1:语句1;

……

case 常量表达式n-1:语句n-1;

default 语句n;}

其中括号内表达式c的类型: ( )。

A.只能为整型

B.可以为整型或实型

C.可以是任意类型

D.可以是整型或字符型

参考答案:D

21、若有以下定义:float x; int a,b; 则正确的switch语句是 ( )。

A.switch(x)

{ case 1.0: printf("*\n");

case 2.0: printf("**\n");

}

B.switch(x)

{ case 1,2: printf("*\n");

case 3: printf("**\n");

}

C.switch(a+b)

{ case 1: printf("*\n");

case 1+2: printf("**\n");

}

D. switch(a+b);

{ case 1: printf("*\n");

case 2: printf("**\n");

}

参考答案:A

22、以下程序中与语句k=a>b? (b>c?1:0):0功能等价的是 ( )。

A. if(a>b) k=1;

B. if((a>b)&&(b>c)) k=1;

else k=0;

C. if((a>b)||(b>c)) k=1;

else k=0;

D. if (a<=b) k=0;

else if (b<=c) k=1;

else if (b

else k=0;

参考答案:B

23、若欲表示在if后a不等于0的关系,则能够正确表示这一关系的表达式为 ( )。

A.!a

B.a

C.a<>0

D.a=0

参考答案:B

24、下列各语句序列中,能够将变量a和b中的较大值赋值到变量t中的是 ( )。

A.t=b; if(a>b) else t=a;

B.t=a ; if(a>b) t=b;

C.t=b; if(a>b) t=a;

D.if(a>b) t=a ; t=b;

参考答案:C

25、有以下程序

#include

main()

{ int x;

scanf("%d",&x);

if(x<=3) ;

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

}

程序运行时,输入的值在______范围才会有输出结果。

A.小于3的整数

B.大于3或等于10的整数

C.不等于10的整数

D.大于3且不等10的整数

参考答案:D

26、以下4个选项中,不能看作一条语句的是( )。

A. if(a>0);

B.a=0,b=0,c=0;

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

D.{;}

参考答案:C

27、有以下程序

#include

main()

{ int a=0,b=4,c=0,d=10,x;

if(a) d=d-10;

else if(!b)

if(!c) x=15;

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

}

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

A.3

B.20

C.10

D.5

参考答案:C

28、若变量已正确定义,有以下程序段

int a=3,b=5,c=7; if(a>b)a=b; c=a; if(c!=a)c=b;

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

其输出结果是( )。

A.3,5,3

B.3,5,7

C.程序段有语法错

D.3,5,5

参考答案:A

29、有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不为3的是( )。

A.if (c

B.if (a<3) x=3; if (a<2) x=2;if (a<1) x=1;

C.if (a<3) x=3;else if (b

D.if (a

参考答案:B

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

if(a

A.2

B.3

C.1

D.6

参考答案:A

相关主题
文本预览
相关文档 最新文档