若有定义语句“(int a =25,b=14,c=19)”则下列语句的执行结果是(?)

语句:if(a++<=25&&b--<=2&&c++)printf("***a=%d,b=%d,c=%d\n",a,b,c);elseprintf("###a=%d,b=... 语句:if(a++<=25&&b--<=2&&c++) printf("***a=%d,b=%d,c=%d\n",a,b,c);
else printf("###a=%d,b=%d,c=d\n",a,b,c);要详细过程,
展开
 我来答
笨a小孩
2011-07-10 · TA获得超过2735个赞
知道小有建树答主
回答量:582
采纳率:0%
帮助的人:286万
展开全部
运行结果应该是:
***a=26,b=14,c=19
分析:
if (a++ <= 25 && b-- <= 2 && c++) 这个表达式中,开始a=25,因此a++的值也是25,在执行之后a的值才变成26,这样判断中的第一个条件就是25 <= 25,这是成立的。
因为&&为短路运算符,所以,只要前面的一旦有为真的表达式,后面的就不再继续判断就知道肯定为真了,即&&后面的b--<=2&&c++统统没有执行。
这样,if语句执行完成之后,a=26,b和c都没任何变化;且if判断中为真,执行紧接着的这句:
printf("***a=%d,b=%d,c=%d\n",a,b,c);
从而输出 ***a=26,b=14,c=19

我想我讲得很详细了,希望对你有所帮助:)
追问
“||”或运算符,只要前面的一旦有为真的表达式,后面的就不再继续判断就知道肯定为真了,。
不过,谢谢你的帮助
百度网友d7cef73
2011-07-10 · TA获得超过624个赞
知道小有建树答主
回答量:346
采纳率:0%
帮助的人:271万
展开全部
结果为:
"###a=26,b=13,c=%19"

三个值起始为:a==25,b==14,c==19;
if (a++ <= 25 && b-- <= 2 && c++) ,首先判断a<=25,成立,然后a++==26,然后判断b<=2,不成立(b==14),然后b--==13,由于三个判断之间为&&运算符,只要有不成立的,即不往下判断,跳出,执行else语句,此时三个值分别为:a==26;b==13;c==19;

其实这个题出的挺好的!
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lantuling
2011-07-10 · 超过25用户采纳过TA的回答
知道答主
回答量:144
采纳率:0%
帮助的人:58.3万
展开全部
a++ ++a
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yyxjl222
2018-12-27
知道答主
回答量:1
采纳率:0%
帮助的人:780
展开全部
ppzqefyl 5 2 f к· ㏄ mrup
bxentd
uple
qmszogg
wrfo
vui
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式