新编c语言程序设计教程周二强课后答案,新编C语言程序设计(周二强版)课后习题练习4答案.doc...

练习4

4.1 C语言中“真”和“假”的编码有何特点?e为整型变量,!e与e != 1等价吗?与e == 0等价吗?

答:

C语言中“真”和“假”的编码简单地说,0表示“假”,非0代表“真”。在逻辑运算时如此,0表示“假”,非0代表“真”。不过需注意,在表示逻辑运算结果时,“假”为0, “真”为1。

当e为0时,!e的值为1;e != 1的值为0; e == 0的值为1。

当e为非0时,!e的值为0;e != 1的值可能(e不等于0也不等于1时)为0,可能(e等于1时)为1,; e == 0的值为0。

反之,e == 0的值为0时,e为非0,!e的值也为0。

e == 0的值为1时,e为0,!e的值也为1。

综上所述:

!e与 e != 1不等价,与e == 0等价。

4.2 C语言中逻辑量的编码特点对算术运算和逻辑运算有何影响?

答:由于没有专门的逻辑类型,C语言中的算术运算和逻辑运算可以“混合”,如!5*3,而类似的表达式往往没有什么实际意义。

4.3 给出逻辑或||和逻辑非!的真值表。

答:

逻辑或||的真值表

a 的值b的值a || b的值真(非0)真(非0)真(1)真(非0)假(0)真(1)假(0)真(非0)真(1)假(0)假(0)假(0)逻辑非!的真值表

a 的值!a的值真(非0)假(0)假(0)真(1)4.4 计算下面各逻辑表达式的值,其中字母均为变量,且a=2,b=3,c=5。

1. a * b > c && a + b <= c 2. a + b > c || a + b < c

3. '0' && a < c – 1 4. '\0' || !(a > c) - 1

5. a > b < c 6. !a * c > b || c = a

7. a > 0 && (x = b || 1) 8. !(x = c) || a == b - 1

答:

1. a * b > c的值为真,a + b <= c的值为真,故原表达式为真。

2. a + b > c的值为假,a + b < c的值为假,故原表达式为假。

3. '0'的值为真,a < c – 1的值为真,故原表达式为真。

4. '\0'的值为假,!(a > c) - 1为假,故原表达式为假。

5. a > b的值为假(0),0 < c的值为真,故原表达式为真。

6. !a * c > b为假,c = a的值为真,故原表达式为真。

7. a > 0的值为真,(x = b || 1) 的值为真,故原表达式为真。

8. !(x = c) 的值为假,a == b - 1的值为真,故原表达式为真。

4.5 写出与下面结论等价的C语言表达式。

1. 三边长为a,b,c的三角形是直角三角形。

2. a,b,c 三个整数中b最大。

3. a,b,c三个整数中,至少有两个是负数。

4. a,b,c三个整数中,只有两个是负数。

5. 字符型变量ch为大字字母。

6. x的取值范围在[1,10]或(23,72]。

7. 1 < x < 3或x < 0。

9. x取值为函数f(x)=的定义域。

答:

1. a*a + b*b == c*c || a*a + c*c == b*b|| b*b + c*c == a*a

2. b > a && b > c

3. a < 0 && b < 0 || a < 0 && c < 0 || b < 0 && c < 0

4. a<0 && b<0 && c>=0 || a<0 && c<0 && b>=0 || b<0 && c<0 && a>=0

5. ch >=’A’ && ch <= ‘Z’

6. x >= 1 && x <= 10 || x > 23 && x <= 72

7. x > 1 && x < 3 || x < 0

8. (x >= 2 || x <= 1) && x != 0

4.6 用两条语句x < 0 && (x = -x); printf("%f\n", x);可以输出x的绝对值吗?如何评价这样的语句?

答:可以,不过可读性太差!

4.7 用if结构验证练习三的3.12, 3.13题,并为3.20,3.23和3.27的程序中增加输入数据合法性检查的代码。

答:

3.12

3.13(原答案已经用if结构验证了)

3.20

3.23

if(!(c >= 'b' && c <= 'y'))

{

printf("输入错误,程序退出!\n");

return;

}

3.27

if(!(fa + fb > fc && fa + fc > fb && fc + fb > fa))

{

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值