c语言选择结构程序设计习题册答案

  • 格式:doc
  • 大小:81.55 KB
  • 文档页数:14

第五章 选择结构程序设计

基础练习(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’)

printf(“1st class postage is 19p”); else

printf(“2nd class postage is 14p”);

}

2.若运营时输入: 4.4, 则以下程序的运营结果是 Selling Price(0.30)$5.72 。

#include

void main(void)

{

float CostPrice,SellingPrice;

printf(“Enter Cost Price $:”);

scanf(“%f”,&CostPrice);

if(CostPrice>=5)

{

SellingPrice=CostPrice+CostPrice*0.25;

printf(“Selling Price(0.25)$%6.2f”,SellingPrice);

}

else

{

SellingPrice=CostPrice+CostPrice*0.30;

printf(“Selling Price(0.30)$%6.2f”,SellingPrice);

}

}

3.以下程序的运营结果是 F 。

main()

{

if(2*2==5<2*2==4)

print(“T”);

else

printf(“F”); }

能力提高(B)

一、选择题

1.若希望当A的值为奇数时, 表达式的值为“真”, A的值为偶数时, 表达式的值为“假”, 则以下不能满足规定的表达式是( D )。

A)A%2==1 B)!(A%2==0) C)!(A%2) D)A%2

2.下列运算符中优先级最低的( A ), 优先级最高的是( C )。

A)?: B)&& C)+ D)!=

3.请阅读以下程序:

main()

{

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

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

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

}

以下程序( D )。

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

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

4.以下程序的运营结果是( C )。

main()

{

int m=5;

if(m++>5) printf(“%d\n”,m);

else printf(“%d\n”,m--);

}

A)4 B)5 C)6 D)7 二、根据程序的功能, 将以下程序补充完整

1、以下程序对输入的四个整数, 按从小到大的顺序输出。请在 内填入对的内容。

main()

{

int t,a,b,c,d;

printf(“input a,b,c,d:”)

scanf(“%d,%d,%d,%d”, &a,&b,&c,&d );

if(a>b) { t=a;a=b;b=t; }

if ( a>c ) {t=a;a=c;c=t;}

if (a>d) {t=a;a=d;d=t;}

if ( b>c ) {t=b;b=c;c=t;}

if (b>d) {t=b;b=d;d=t;}

if (c>d) {t=c;c=d;d=t;}

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

}

三、编程:

1、试编程判断输入的正整数是否既是5又是7的整倍数。若是, 则输出yes;否则输出no。

2.编制程序规定输入整数x、y和z, 若x2+y2+z2大于1000,则输出x2+y2+z2千位以上的数字, 否则输出三数之和。

3.编写程序, 输入三角型的三条边长, 求其面积。注意: 对于不合理的边长输入要输出数据错误的提醒信息。

1.参考答案

main()

{ int x;

if (x%5==0 && x%7==0)

printf(“yes”);

else