关于c语言的问题? 30

a为0,b为1,c为3,计算并输出执行语句“y=(++a)&&(--b)&&(c=b+3);”后a、b、c、y的值。如果将语句改为“y=(++a)||(--b)||(c=... a 为 0,b 为 1,c 为 3,计算并输出执行语句
“y=(++a)&&(--b)&&(c=b+3);”后 a、b、c、y 的值。
如果将语句改为“y=(++a)||(--b)||(c=b+3);”,结果又是多少?
展开
 我来答
shine1991
科技发烧友

2022-12-14 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.3亿
展开全部

根据运算符优先级/结合性

y=(++a)&&(--b)&&(c=b+3)

y=(  (++a)&&( (--b)&&(c=b+3) )  )

代入数值后,子表达式

++a的值为1,且变量a自增为1

--b的值0,且变量b自减为0

由于子表达式--b的值为0(假),所以&&右操作数(c=b+3)不会判断,c还是原值3,而表达式整体值为0

所以,a=1,b=0,c=3,y=0

同理,y=(++a)||(--b)||(c=b+3)

分别对子表达式求值

++a值为1,且a自增为1

由于||表达式的做左操作数已经为1(真),所以右操作数不会再判断,b和c还是原值,表达式整体值为1

所以,a=1,b=1,c=3,y=1

arongustc
科技发烧友

2022-12-14 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:5947万
展开全部
任何一个包含了++和任何其他运算符组合的题目尽量少做。这种式子再工作中绝对不会出现,谁写都可能被开除的
y=(++a)&&(--b)&&(c=b+3)
根据&&运算规则,首先算++a,得到1,然后算--b,得到0,由于--b为0,c=b+3不计算
所以a=1,b=0,c=3,y=0
y=(++a)||(--b)||(c=b+3)
同样,++a得到a=1, 后面的--b, c=b+3都 不计算
所以a=1,b=1,c=3, y=1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式