第二单元选择结构练习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二单元选择结构练习题

一、选择题:

1、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是(A )。

A.1

B.0

C.2

D.3

2、有以下程序运行时,输入的值在哪个范围才会有输出结果(B )。

main()

{ int x;

scanf("%d",&x);

if(x<=3) ;

else if(x!=10)

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

A.不等于10的整数B.大于3且不等于10的整数

C.大于3或等于10的整数D.小于3的整数

3、在嵌套使用if语句时,C语言规定else总是(C )。

A.和之前与其具有相同缩进位置的if配对B.和之前与其最近的if配对C.和之前与其最近的且不带else的if配对D.和之前的第一个if配对4、希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”,则以下不能满足的表达式是( C )。

A. num%2==1

B. !(num%2==0)

C. !(num%2)

D. num%2

5、若有定义:int a=3,b=2,c=1;并有表达式:①a%b,②a>b>c,③b&&c+1,④c+=1,则表达式值相等的是( C )。

A)①和②B)②和③C)①和③D)③和④

注释:②—>值为0;④—>值为2;其他两项值为1.

6.若有说明语句int i=5,j=4,k=6;int f;则执行f=(i

A 。

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

7.以下程序片段B 。

int x=2,y=3; printf(“%d,%d”,x+2,y);

A)输出为:2,3 B)输出为:4,3

C)输出为:2 3 D)输出为:4 3

8.能正确表示“当x的取值在[1,10]或[200,210]范围内为真,否则为假”的表达式是C。

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)

9.C语言对嵌套if语句的规定是:else总是与(D )。

A)其之前最近的if配对B)第一个if配对

C)缩进位置相同的if配对D)其之前最近的且尚未配对的if配对

10.设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) && (n=c>d)后n的值为B 。A)1 B)2 C)3 D)4

11.下面 B 是错误的if语句(设int x,a,b;)

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

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

12.以下程序片段 D 。

main ( )

{ int x=1,y=2;

if (x>y) printf(“***”);

else printf(“###”); }

A)有语法错误,不能通过编译B)输出:*** C)可以编译,但不能通过连接,所以不能运行D)输出:### 13.对下述程序,是正确的判断。A

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,则输出3和4 D)若输入4和3,则输出4和5 14.若w=1,x=2,y=3,z=4,则条件表达式w

15.下述表达式中,(A)可以正确表示x≤0或x≥1的关系。

A)(x>=1) | | (x<=0) B)x>=1 | x<=0

C)x>=1 && x<=0 D)(x>=1) && (x<=0)

16.以下程序输出结果是B 。

main ( )

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

switch(x) {

case 1:switch (y) {

case 0 : a++ ; break ;

case 1 : b++ ; break ;

}

case 2:a++; b++; break;

case 3:a++; b++;

}

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

}

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

17.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是B 。

if (a

if (c

else

if (a

else x=3;

else x=6;

else x=7;

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

18.在下面的条件语句中(其中S1和S2表示C语言语句),只有一个在功能上与其他三个语句不等价。(D )

A)if (a) S1; else S2; B)if (a==0) S2; else S1;

C)if (a!=0) S1; else S2; D)if (a==0) S1; else S2;

19.若int i=10;执行下列程序后,变量i的正确结果是D 。

switch (i) {

case 9: i+=1 ;

case 10: i+=1 ;

case 11: i+=1 ;

default : i+=1 ;

}

A)10 B)11 C)12 D)13

填空题:

1.C语言提供6种关系运算符,按优先级高低它们分别是___<_____,____<=____ ,___>_____ ,__>=______ ,__==______ ,__!=______ 等。

2.C语言提供三种逻辑运算符,按优先级高低它们分别是____!____ ,___&&_____ ,____||____ 。

3.将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式_(y%4==0 && y%100!=0) || (y%400==0)_______ 。

4.设x,y,z均为int型变量;写出描述“x,y和z中有两个为负数”的C语言表达式:__((x<0)+(y<0)+(z<0))==2______ 。

5.已知A=7.5,B=2,C=3.6,表达式A>B && C>A || AB的值是____0____ 。

6.有int x=3,y=-4,z=5;则表达式(x&&y)==(x||z)的值为___1_____。

7.若有x=1,y=2,z=3,则表达式(x

读程题:

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

main()

{ int a=1,b=0;

if(!a) b++;

else if(a==0) if(a) b+=2;

else b+=3;

printf(”%d\n”,b);

}

2. 写出以下程序的运行结果。*&

main ( )

{ int a=2,b=7,c=5;

switch (a>0) {