weihuiwei123 发表于 2014-10-27 15:38:13

关于c语言选择结构程序设计

答案是0,1
求详解,谢谢啦

fireofsun 发表于 2014-10-27 16:11:00

首先,=的优先级很低,所以先计算a!=b结果是1,所以m=1,之后b>c等于0,d=0,所以m&&n=0,于是d=0

weihuiwei123 发表于 2014-10-27 16:20:04

我有疑问:不是有句话是:对于逻辑与运算,如果第一个操作数被判定为“假”,系统不再判定或求解第二个操作数(因为与运算是有一个条件为假,则整个逻辑表达式的值就为假)

weihuiwei123 发表于 2014-10-27 16:21:02

fireofsun 发表于 2014-10-27 16:11
首先,=的优先级很低,所以先计算a!=b结果是1,所以m=1,之后b>c等于0,d=0,所以m&&n=0,于是d=0

我有疑问:不是有句话是:对于逻辑与运算,如果第一个操作数被判定为“假”,系统不再判定或求解第二个操作数(因为与运算是有一个条件为假,则整个逻辑表达式的值就为假)

fireofsun 发表于 2014-10-28 08:45:59

对于C语言是这样的,有短路效应,因此(m=a!=b)&&(n=b>c)可看成是(m=(a!=b))&&(n=(b>c))
&&前面a!=b为真,在C里面就是1,因此m=1,而m=1返回值为1,因此(m=(a!=b))整个为真,所以(n=(b>c))这部分还是会计算

weihuiwei123 发表于 2014-10-28 09:25:54

fireofsun 发表于 2014-10-28 08:45
对于C语言是这样的,有短路效应,因此(m=a!=b)&&(n=b>c)可看成是(m=(a!=b))&&(n=(b>c))
&&前面a!=b为真 ...

懂了,灰常感谢!

weihuiwei123 发表于 2014-10-29 21:55:34

fireofsun 发表于 2014-10-28 08:45
对于C语言是这样的,有短路效应,因此(m=a!=b)&&(n=b>c)可看成是(m=(a!=b))&&(n=(b>c))
&&前面a!=b为真 ...

明白了,灰常感谢!

沉思的牛 发表于 2014-10-29 22:40:52

楼主不错哦代码用手写!
你敲上去看看结果然后分分析最好;
其实C语言二级考试很操蛋,操蛋的题目

weihuiwei123 发表于 2014-10-29 22:47:09

是啊,考了两次都没过
页: [1]
查看完整版本: 关于c语言选择结构程序设计