C语言小问题 a+b>c && b==c

假设a=3,b=4,c=5,求下列逻辑表达式的值:1、a+b>c&&b==c解:原式等价于3+4>5&&4==57>5&&4==51&&00不知道这样做对不对?但如果是这... 假设a=3,b=4,c=5,求下列逻辑表达式的值:

1、a+b>c && b==c
解:原式等价于 3+4>5 && 4==5
7>5 && 4==5
1 && 0
0
不知道这样做对不对?
但如果是这题呢?
2、a||b+c && !c ||1
3||4+5 && !5 ||1
3||9 && 0 ||1
3||9 && 0 ||1
3||0||1
3||1
第二题哪里错了?

或者像“9 && 2”这样的式子结果应该是多少?
展开
 我来答
小梅儿玉婷
2011-04-12
知道答主
回答量:27
采纳率:100%
帮助的人:5.4万
展开全部
1、a+b>c && b==c
解:原式等价于 3+4>5 && 4==5
7>5 && 4==5
1 && 0
0
这样做是对的。
2、a||b+c && !c ||1
3||4+5 && !5 ||1
3||9 && 0 ||1
3||9 && 0 ||1
3||0||1
3||1
解:a||b+c && !c ||1
3||4+5 && !5 ||1
3||4+5 && 0 ||1(先计算非)
3||9 && 0 ||1 (计算加法)
3||0 ||1 (计算逻辑与
1 (计算第一个逻辑或=1,则不用再计算第二个逻辑或)
iceser
2017-07-24 · TA获得超过2708个赞
知道大有可为答主
回答量:695
采纳率:100%
帮助的人:446万
展开全部
根据从左到右计算顺序,结合运算符优先级,根据定义

a = 3, b = 4, c = 5,假定 a,b,c 为 int。真值为1,假值为0。
计算步骤如下:
1、计算 a + b,结果为 a + b = 7
2、计算 !( a + b) 结果为 0,也可以认为是false(假)。
3、计算 c/2,假定c为int时,结果为 2(取整),为float或者double时为2.5,但不影响最终结果,因为都是真值(非零值)。
4、计算 0 + c,结果为 5
5、计算 5 -1,结果为 4。
6、计算 b + 2 或者 b + 2.5,结果为 6 或者 6.5。

7、计算 4 && 6 后者 4 && 6.5,因为两边都为非零值,所以结果为 1,或者true。
这里主要是一个运算符优先级的问题,在本表达多中。

小括号的优先级最高,所以最先计算括号内的值。
其次是逻辑非,然后是除法,然后是 加减法,最终是 逻辑与。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
番茄大圣
2011-04-12
知道答主
回答量:40
采纳率:0%
帮助的人:12.5万
展开全部
如果是在if()语句里的话除了0代表fail之外其他都代表true,也就是说9&&2等于 1&&1 。
第二题错在&&运算符的优先级要比||运算符高,所以要先算&&再算||。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式