c语言第五章 选择结构程序设计(习题册答案)

  • 格式:doc
  • 大小:75.00 KB
  • 文档页数:7

下载文档原格式

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

第五章选择结构程序设计

基础练习(A)

一、填空题

1、关系表达式的运算结果是逻辑值。C语言没有逻辑型数据,以1代表“真”,以0代表“假”。

2、逻辑运算符!是单目运算符,其结合性是由右结合性。

3、C语言提供的三种逻辑运算符是&&、|| 、!。其中优先级最高的为!,优先级最低的为| | 。

4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。系统最终以0 和非0 来判定它们属于“真”或“假”。

5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2==0)。

6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式x

7、条件“22&&x<3。

8、判断char型变量ch是否为大写字母的正确表达式是(ch>=‘A’)&&(ch<=‘Z’)。

9、当a=3,b=2,c=1时,表达式f=a>b>c的值是0。

10、当a=5,b=4,c=2时,表达式a>b!=c的值是1。

11、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是0。

12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是1。

13、有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为1。

14、有int x,y,z;且x=3,y=-4,z=5,则以下表达式的值为1。

!(x>y)+(y!=z)||(x+y)&&(y-z)

15、有int a=3,b=4,c=5,x,y;,则以下表达式的值为0。

!(x=a)&&(y=b)&&0

16、if (!k) a=3;语句中的!k可以改写为k= =0,使其功能不变。

二、选择题

1、逻辑运算符两侧运算对象的数据类型(D)。

A)只能是0或1

B)只能是0或非0正数

C)只能是整型或字符型数据

D)可以是任何类型的数据

2、以下关于运算符优先顺序的描述中正确的是(C)。

A)关系运算符<算术运算符<赋值运算符<逻辑与运算符

B)逻辑与运算符<关系运算符<算术运算符<赋值运算符

C)赋值运算符<逻辑与运算符<关系运算符<算术运算符

D)算术运算符<关系运算符<赋值运算符<逻辑与运算符

3、下列运算符中优先级最高的是(B)。

A)< B)+ C)&& D)!=

4、为判断字符变量c的值不是数字也不是字母时,应采用下述表达式(D)。

A)c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122

B)!(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122)

C)c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122

D)!(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)

5、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表

达式是(C)。

A) (x>=1)&&(x<=100)&&(x>=200)&&(x<=300)

B) (x>=1)||(x<=100)||(x>=200)||(x<=300)

C) (x>=1)&&(x<=100)||(x>=200)&&(x<=300)

D) (x>=1)||(x<=100)&&(x>=200)||(x<=300)

6、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是(D)。

A)‘x’&&‘y’

B) x<=y

C) x||y+z&&y-z

D) !((x

7、已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<‘B’&&!y)的值是(C)。

A)0 B)语法错C)1 D)“假”

8、设有: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

9、以下不正确的if语句形式是(C)。

A) if(x>y&&x!=y);

B) if(x==y) x+=y;

C) if(x!=y) scanf(“%d”,&x) else scanf(“%d”,&y);

D) if(x

10、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是(B)。

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

11、以下if语句语法正确的是(B)。

A) if(x>0)

printf(“%f”,x)

else printf(“%f”,-x);

B) B)if(x>0)

{ x=x+y; printf(“%f”,x);}

else printf(“%f”,-x);

C) C)if(x>0)

{ x=x+y; printf(“%f”,x);};

else printf(“%f”,-x);

D) D)if(x>0)

{ x=x+y; printf(“%f”,x)}

else printf(“%f”,-x);

12、请阅读以下程序:

main()

{

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

if(a==b+c) printf(“***\n”);

else printf(“$$$\n”);

}

以下程序(C)。

A)有语法错不能通过编译B)可以通过编译但不能通过连接

C)输出*** D)输出$$$

三、写出下列程序的运行结果

1、若运行时输入:2<回车>,则以下程序的运行结果是2nd class postage is 14p。

#include

void main(void)

{

char Class;

printf(“Enter 1 for 1st class post or 2 for 2nd post”);

scanf(“%c”,&Class);

if(Class==‘1’)

prin tf(“1st class postage is 19p”);

else