c语言这程序看不懂

 我来答 举报
拒绝996的潇洒程序员
2014-12-09 · TA获得超过492个赞
知道小有建树答主
回答量:253
采纳率:0%
帮助的人:278万
展开全部
D=20

考的其实是C++的一些约定规则。

背景:c++里的bool和int其实是一种类型(bool是int的一个别名),所以两者可以混用。

约定1:true和false约定。bool的true 本质上是 int 1, false本质上是int 0。所以反过来int 0和int 1均可以取非操作:即!1==0, !0 == 1;

约定2:if(x)约定。 当x为0时为false,x为非0值时默认为true。

约定3:当if或else没有大括号时,默认把下一行作为其执行语句,若下一行也是if或else则继续该规则。因此最后两个if(!c)和else其实是 else if(!b)的子项,因为(!b)不成立所以根本没后面两条的判断。这个题没有进任何判定分支。

基于以上三个规则,就能理解该题了。
learneroner
高粉答主

2014-12-09 · 关注我不会让你失望
知道大有可为答主
回答量:1.1万
采纳率:91%
帮助的人:6727万
展开全部
if(a)为false不执行,if(!b)也为false不执行,也就是跳过了之后的if(!c)和else部分,所以最终是20吧
else和最近的if配对
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
liuyawei900128
2014-12-09 · TA获得超过140个赞
知道小有建树答主
回答量:268
采纳率:0%
帮助的人:83.5万
展开全部
d=15吧最后。。。。。
追问
答案20呀
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
Z的rrk
2014-12-09 · TA获得超过999个赞
知道小有建树答主
回答量:1217
采纳率:50%
帮助的人:571万
展开全部

抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式