C语言顺序分支结构选择题部分做了注释.docx

上传人:b****6 文档编号:7227137 上传时间:2023-01-22 格式:DOCX 页数:17 大小:18.57KB
下载 相关 举报
C语言顺序分支结构选择题部分做了注释.docx_第1页
第1页 / 共17页
C语言顺序分支结构选择题部分做了注释.docx_第2页
第2页 / 共17页
C语言顺序分支结构选择题部分做了注释.docx_第3页
第3页 / 共17页
C语言顺序分支结构选择题部分做了注释.docx_第4页
第4页 / 共17页
C语言顺序分支结构选择题部分做了注释.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C语言顺序分支结构选择题部分做了注释.docx

《C语言顺序分支结构选择题部分做了注释.docx》由会员分享,可在线阅读,更多相关《C语言顺序分支结构选择题部分做了注释.docx(17页珍藏版)》请在冰豆网上搜索。

C语言顺序分支结构选择题部分做了注释.docx

C语言顺序分支结构选择题部分做了注释

顺序分支结构选择题:

1.设ch是char型变量,其值为A,且有下面的表达式:

ch=(ch>='A'&&ch<='Z')?

(ch+32):

ch

上面表达式的值是

A)AB)a

C)ZD)z

B

2.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,

值为0的表达式是

A)'a'&&'b'B)a<=b

C)a||b+c&&b-cD)!

((a

c||1)

D

3.能正确表示a≥10或a≤0的关系表达式是

A)a>=10ora<=0B)a>=10|a<=0

C)a>=10||a<=0D)a>=10||a<=0

D

4.设a为整型变量,不能正确表达数学关系:

10

表达式是

A)10

C)a>10&&a<15D)!

(a<=10)&&!

(a>=15)

A

5.设x、y、z、t均为int型变量,则执行以下语句后,t的值为

x=y=z=1;

t=++x||++y&&++z;

A)不定值B)4

C)1D)0

C

6.语句:

printf("%d",(a=2)&&(b=-2));的输出结果是

A)无输出B)结果不确定

C)-1D)1

D

7.能正确表示a和b同时为正或同时为负的逻辑表达式是

A)(a>=0||b>=0)&&(a<0||b<0)

B)(a>=0&&b>=0)&&(a<0&&b<0)

C)(a+b>0&&a+b<=0)

D)a*b>0

D

8.为了避免嵌套的if-else语句的二义性,C语言规定else总是

与()组成配对关系。

A)缩排位置相同的ifB)在其之前未配对的if

C)在其之前未配对的最近的ifD)同一行上的if

C

9.已知intx=10,y=20,z=30,则执行

if(x>y)

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

语句后,x、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

B

if(x>y)

{z=x;}

x=y;y=z;

10.执行下面程序的输出结果是()。

main()

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

if(a=a+b)printf("****\n");

elseprintf("####\n");

}

A)有语法错误不能编译

B)能通过编译,但不能通过连接

C)输出****

D)输出####

C

if(a=a+b)a=a+b是一个赋值表达式,值为5

判断一个数据的“真”或“假”时,以0和非0为根据:

如果为0,则判定为“逻辑假”;如果为非0,则判定为“逻辑真”。

11.运行下面程序后,输出是()。

main()

{intk=-3;

if(k<=0)printf("****\n")

elseprintf("####\n");

}

A)####B)****

C)####****D)有语法错误不能通过编译

D

printf("****\n")后面没有分号;

12.若运行下面程序时,给变量a输入15,则输出结果是()。

main()

{inta,b;

scanf("%d",&a);

b=a>15?

a+10:

a-10;

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

}

A)5B)25

C)15D)10

A

表达式1?

表达式2∶表达式3

条件运算符的执行顺序:

先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。

若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。

条件运算符优先级高于赋值运算符,低于关系运算符和算术运算符。

13.以下选项中,两个条件语句语义等价的是()。

A)if(a=2)printf("%d\n",a);B)if(a-2)printf("%d\n",a);

if(a==2)printf("%\n",a);if(a!

=2)printf("%\n",a);

C)if(a)printf("%d\n",a);D)if(a-2)printf("%d\n",a);

if(a==0)printf("%\n",a);if(a==2)printf("%\n",a);

B

A

(1)无论什么情况都输出a,A

(2)只有a==2的时候才输出a;

B

(1)当a!

=2时输出a,B

(2)也是当a!

=2时输出a输出a;

C

(1)当a!

=0时输出a,C

(2)也是当a==0时输出a输出a;

D

(1)当a!

=2时输出a,D

(2)当a==2时输出a输出a;

14.在执行以下程序时,为了使输出结果为:

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("t=%d\n",t);

}

A)a>bB)a

C)0>a>bD)0

D

本题应该是a<0&&a

15.下面程序的输出结果是

main()

{intx=100,a=10,b=20,ok1=5,ok2=0;

if(a

if(b!

=15)

if(!

ok1)

x=1;

else

if(ok2)x=10;

x=-1;

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

}

A)-1B)0

C)1D)不确定的值

A

main()

{intx=100,a=10,b=20,ok1=5,ok2=0;

if(a

{if(b!

=15)

{if(!

ok1)

x=1;

else

if(ok2)x=10;

}

}

x=-1;

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

}

16.下面程序的输出结果是

#include

main()

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

switch(a>0)

{case1:

switch(b<0)

{case1:

printf("@");break;

case0:

printf("!

");break;

}

case0:

switch(c==5)

{case0:

printf("*");break;

case1:

printf("#");break;

default:

printf("%%");break;

}

default:

printf("&");

}printf("\n");

}

A)&B)!

#&

C)%%D)@*&

B

#include

main()

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

switch(a>0)

{case1:

switch(b<0)

{case1:

printf("@");break;

case0:

printf("!

");break;

}没有break;

case0:

switch(c==5)

{case0:

printf("*");break;

case1:

printf("#");break;

default:

printf("%%");break;

}没有break;

default:

printf("&");

}printf("\n");

}

17.运行下面程序时,若从键盘输入数据为"123",

则输出结果是()。

main()

{intnum,i,j,k,place;

scanf("%d",&num);

if(num>99)

place=3;

elseif(num>9)

place=2;

else

place=1;

i=num/100;

j=(num-i*100)/10;

k=(num-i*100-j*10);

switch(place)

{case3:

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

break;

case2:

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

break;

case1:

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

}

}

A)123B)1,2,3

C)321D)3,2,1

C

main()

{intnum,i,j,k,place;

scanf("%d",&num);

if(num>99)

place=3;

elseif(num>9)

place=2;

else

place=1;

i=num/100;

j=(num-i*100)/10;

k=(num-i*100-j*10);

switch(place)

{case3:

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

break;

case2:

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

break;

case1:

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

}

}

18.运行下面程序时,若从键盘输入数据为"86",

则输出结果是()。

main()

{intt;

scanf("%d",&t);

if(t>=90)printf("A\n");

elseif(t>=80)printf("B\n");

elseif(t>=70)printf("C\n");

elseif(t>=60)printf("D\n");

elseprintf("E\n");

printf("OK\n");

}

A)BB)BOK

C)BD)B

OKC

D

E

OK

C

main()

{intt;

scanf("%d",&t);

if(t>=90)printf("A\n");

elseif(t>=80)printf("B\n");

elseif(t>=70)printf("C\n");

elseif(t>=60)printf("D\n");

elseprintf("E\n");

printf("OK\n");

}

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

main()

{inta=0,b=1,c=0,d=20,x;

if(a)d=d-10;

elseif(!

b)

if(!

c)x=15;

elsex=25;

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

}

A)15B)25

C)20D)10

C

main()

{inta=0,b=1,c=0,d=20,x;

if(a)d=d-10;

elseif(!

b)

if(!

c)x=15;

elsex=25;

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

}

20.运行下面程序时,从键盘输入"1605",

则输出结果是()。

main()

{intt,h,m;

scanf("%d",&t);

h=(t/100)%12;

if(h==0)h=12;

printf("%d:

",h);

m=t%100;

if(m<10)printf("0");

printf("%d",m);

if(t<1200||t==2400)

printf("AM");

elseprintf("PM");

}

A)6:

05PMB)4:

05PM

C)16:

05AMD)12:

05AM

B

main()

{intt,h,m;

scanf("%d",&t);

h=(t/100)%12;/*h=4*/

if(h==0)h=12;

printf("%d:

",h);

m=t%100;/*m=5*/

if(m<10)printf("0");

printf("%d",m);

if(t<1200||t==2400)

printf("AM");

elseprintf("PM");

}

21、运行下面程序时,从键盘输入数据为"2,13,5",

则输出结果是()。

#include

main()

{inta,b,c;

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

switch(a)

{case1:

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

case2:

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

case3:

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

case4:

{if(c!

=0){printf("%d\n",b/c);break;}

else{printf("error\n");break;}

}

defualt:

break;

}

}

A)10B)8

C)65D)error

B

#include

main()

{inta,b,c;

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

switch(a)

{case1:

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

case2:

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

case3:

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

case4:

{if(c!

=0){printf("%d\n",b/c);break;}

else{printf("error\n");break;}

}

defualt:

break;

}

}

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

k=8;

if(k<=0)

if(k==0)printf("####")

elseprintf("&&&&");

elseprintf("****");

上面程序片段的输出结果是

A)####B)&&&&

C)****D)有语法错误,无输出结果

D

k=8;

if(k<=0)

if(k==0)printf("####")/*缺分号;*/

elseprintf("&&&&");

elseprintf("****");

23、若执行下面的程序从键盘上输入5,则输出结果是

main()

{intx;

scanf("%d",&x);

if(x++>5)printf("%d\n",x);/*(x++>5)x先和5比较,结果未假,不执行此if语句执行else,x加1成为6*/

elseprintf("%d\n",x--);/*x为6,先输出6,x变为5*/

}

A)7B)6

C)5D)4

B

main()

{intx;

scanf("%d",&x);

if(x++>5)printf("%d\n",x);/*(x++>5)x先和5比较,结果假,不执行此if语句执行else,x成为6*/

elseprintf("%d\n",x--);/*x为6,先输出6,x变为5*/

}

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

if(a

if(c

else

if(a

if(b

elsex=3;

elsex=6;

elsex=7;

A)1B)2

C)3D)6

B

if(a

if(c

else

if(a

if(b

elsex=3;

elsex=6;

elsex=7;

25、下面的程序片段所表示的数学函数关系是

┌-1(x<0)┌1(x<0)

││

A)y=┤0(x=0)B)y=┤-1(x=0)

││

└1(x>0)└0(x>0)

┌0(x<0)┌-1(x<0)

││

C)y=┤-1(x=0)D)y=┤1(x=0)

││

└1(x>0)└0(x>0)

y=-1;

if(x!

=0)

if(x>0)y=1;

elsey=0;

C

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

a=b=c=0;x=35;

if(!

a)x--;

elseif(b);

if(c)x=3;

elsex=4;

A)34B)4

C)35D)3

B

a=b=c=0;x=35;

if(!

a)x--;

elseif(b);

if(c)x=3;

elsex=4;

27、与y=(x>0?

1:

x<0?

-1:

0);的功能相同的if语句是

A)if(x>0)y=1;B)if(x)

elseif(x<0)y=-1;if(x>0)y=1;

elsey=0;elseif(x<0)y=-1;

elsey=0;

C)y=-1;D)y=0;

if(x)if(x>=0)

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

elseif(x==0)y=0;elsey=-1;

elsey=-1;

A

28、执行下列程序,输入为1的输出结果是()。

#include

main()

{

intk;

scanf("%d",&k);

switch(k)

{

case1:

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

case2:

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

case3:

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

case4:

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

default:

printf("Full!

\n");

}

}

A)1B)2

C)2D)1

32

43

54

D

#include

main()

{

intk;

scanf("%d",&k);

switch(k)

{

case1:

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

case2:

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

case3:

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

case4:

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

default:

printf("Full!

\n");

}

}

29.执行下面程序时,若从键盘输入"2",则程序的

运行结果是()。

#include

main()

{intj,k;charcp;

cp=getchar();

if(cp>='0'&&cp<='9')

k=cp-'0';

elseif(cp>='a'&&cp<='f')

k=cp-'a'+10;

elsek=cp-'A'+10;

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

}

A)2B)4

C)1D)10

A

#include

main()

{intj,k;charcp;

cp=getchar();

if(cp>='0'&&cp<='9')

k=cp-'0';

elseif(cp>='a'&&cp<='f')

k=cp-'a'+10;

elsek=cp-'A'+10;

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

}

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

当前位置:首页 > 高等教育 > 研究生入学考试

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

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