c语言,第八题为什么选c?

 我来答
匿名用户
推荐于2016-09-10
展开全部

关键知识点

1、非零数看成逻辑真

2、算数运算符优先级高于逻辑运算符

3、单目运算符!优先级高于算数运算符


!(a+b)*c-1&&b+c%2相当于(!(a+b)*c-1) && (b+c%2) = (!7*5-1) && (4+1) = (0*5-1) && 1=1


参考代码

#include <stdio.h>

int main()
{
   int a=3, b=4, c=5;
   int r;

   r=!(a+b)*c-1&&b+c%2;

   printf("%d\n",r);

return 0;
}

效果图

追问
1+4不是等于5吗?那里为什么是1?
追答
非零数看成逻辑真,所以5就看成1,-1也被看成1
百度网友ae58d71
2015-07-31 · TA获得超过350个赞
知道小有建树答主
回答量:371
采纳率:100%
帮助的人:256万
展开全部
首先,逻辑表达式不是1就是0,这个要知道,然后呢,第八题是一个与表达式,第一个条件!(a+b)*c-1呢,a+b是7,然后!之后呢变为0,所以第一个表达式就为-1了,不是0就都为真了,同理第二个表达式也为真,所以两个真的与也为真,也就是1了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
q小布丁吃西瓜q
2015-07-31
知道答主
回答量:35
采纳率:0%
帮助的人:6.2万
展开全部
谁告诉你选c的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a250758092
2015-07-31 · TA获得超过148个赞
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:117万
展开全部
首先答案不可能是0或者1外的答案……另外不要走进另外一个误区,只要不是0则为真,所以左边算出负数仍为真,右边估计你也懂了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式