C语言程序设计:选择结构程序设计单元测试与答案_第1页
C语言程序设计:选择结构程序设计单元测试与答案_第2页
C语言程序设计:选择结构程序设计单元测试与答案_第3页
C语言程序设计:选择结构程序设计单元测试与答案_第4页
C语言程序设计:选择结构程序设计单元测试与答案_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、单选题

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

ttinclude<stdio.h>

intmain()

(

intx;

scanf("%d",&x);

if(x++>5)

printf("%d"zx);

else

printf("%d\n",x-|;

return0;

)

A.7和4

B.6和4

C.6和3

D.7和5

正确答案;D

解析:l.x=6,x++表达式的值为6>5,执行if子句,输出为值为7

2.x=4,x++表达式的值为4<5,执行else子句,因x—表达式的值为5,所以输出为5

2、对于以下程序,输出结果为

include<stdio.h>

intmain()

(

intx=l,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:a++;break;

casel:b++;break;

)

case2:a++;b+-t-;break;

}

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

return0;

)

A.a=l,b=0

B.a=l,b=l

C.a=2,b=2

D.a=2,b=l

正确答案:D

解析:x=l

执行case1子句,

y=0,执行case。广句,a=l,有break,跳出当前switch,case1千句执行完毕。

继续执行case2子句

a=2,b=l,有break,跳出当前所在的switch语句。

输出a,b的值。

3、执行以下程序段后,变量a,b,c的值分别是

intx=10,y=9;

inta,b,c;

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

b=x++;

c=y;

A.a=9/b=9/c=9

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

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

D.a=l,b=ll,c=10

正确答案:B

解析:

a=9==9?8:ll

未被执行)

a=8,b=8,c=10(++y

4、输入一个字符,如果它是一个小写字母,则把它变成大写字母;其他字符不变,请在横

线上填入正确内容。

#include<stdio.h>

intmain()

{

charch;

scanf(”%c”,&ch);

if(ch>='a'&&ch<='z');

printf("%c",ch);

return0;

A.ch=ch-32

B.ch=ch+26

C.h=ch-26

D.ch=ch+32

正确答案:A

解析:小写字母比大写字母大32,详情见教材附录:ASCII代码与字符对照表

5、对于以下程序,输出结果为,

#include<stdio.h>

intmain()

{

intx=3,y=0,z=0;

if(x=y+z)printf("***♦");

elseprintf("####")/

return0;

)

A.可以通过编译,但不能通过连接,因而不能运行

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

C.输出####

D.输出****

正确答案:C

解析:x重新赋值为0,条件为假,执行else子句。

6、对于以下程序,若从键盘输入2.0/,则程序输出为—o

ttinclude<stdio.h>

intmain()

(

floatx,y;

scanf("%f"z&x);

if(x<0.0)y=0.0;

elseif((x<5.0)&&(x!=2.0))y=1.0/(x+2.0);

elseif(x<10.0)y=1.0/x;

elsey=10.0;

printf("%f\n”,y);

return0;

)

A.0.000000

B.1.000000

C.0.250000

D.0.500000

正确答案:D

解析:x=2Qx<0.0条件为假,x!=2.0条件为假,其后面对应的语句都不执行。

x<10.0条件为真,执行其对应的子句y=1.0/2.0=0.50000C

7、若w=l,x=2,y=3,z=4,则表达式w<x?w:y<z?y:z的值是___。

A.1

B.3

C.4

D.2

正确答案:A

解析:1<2?1:(3<4?1:4)

条件为真,所以值为1

8、当a=l,b=2,c=3时,执行以下if语句后,a、b、c中的值分别

为、、o

if(a>c)

b=a;a=c;c=b;

A.132

B.322

C.213

D.123

正确答案:B

解析:a=l,c=3,所以ax不成立,不执行b=a;

执行a=c;c=b;

9、下面程序的输出结果是

#include<stdio.h>

intmain()

(

inta=l;

switch(a)

(

casel:printf("*\n");

case2:printf("**\n");

default:printf("***\n");

)

return0;

}

A.*

**

♦♦♦

B.*

♦♦

c.*

D.**

***

正确答案:A

解析:case语句后没有break语句,所以程序行依次输出。

10、#include<stdio.h>

intmain()

(

inta=l;

switch(a)

|

casel:printf("*\n");break;

case2:printf("**\n");break;

default:printf("***\n");

}

return0;

)

A.***

B.*

c.***

**

D**

正确答案:B

解析:case1后有break,所以输出*后跳出了switch

11、C语言的if语句,当条件表达式为真时执行的语句是

A.if和else后的语句都执行

B.else后的语句

C.不执行语句

D.if后的语句

正确答案:D

解析:当条件表达式为其时执行的语句是if后的语句

12、C语言的if语句中,用作判断的条件表达式为

A.算数表达式

B.关系表达式

C.逻辑表达式

D.任意表达式

正确答案;D

解析:C语言的if语句中,用作判断的条件表达式可以是任意表达式

13、为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系

A.同一行上的if

B.缩排位置相同的if

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

D.在其之前未配对的if

正确答案:C

解析:C、C语言规定else总是与上面离他最近的尚未配对的if组成配对关系。

14、下列程序的运行结果是

include"stdio.h"

intmain()

(

intn=0,m=l,x=2;

if(!n)x-=l;

if(m)x-=2;

if(x)x-=3;

printf(w%d\nJ»;

return0;

A.-3

B.-l

C.-4

D.-2

正确答案:C

解析:if(!0)x-=l;x=2T=l;

if(l)x-=2;x=x-2=l-2=-l;

if(-l)x-=3;x=-l-3=-4.

15、对于以下程序,输出结果为:

//include<stdio.h>

intmain()

{intx=l,y=O,a=O,b=O;

switch(x)

{case1:

switch(y)

{caseO:a++;break;

casel:b++;break;

)

case2:a++;b+-n;break;

)

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

return0;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论