若有定义语句“(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);要详细过程, 展开
else printf("###a=%d,b=%d,c=d\n",a,b,c);要详细过程, 展开
4个回答
展开全部
运行结果应该是:
***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
我想我讲得很详细了,希望对你有所帮助:)
***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
我想我讲得很详细了,希望对你有所帮助:)
追问
“||”或运算符,只要前面的一旦有为真的表达式,后面的就不再继续判断就知道肯定为真了,。
不过,谢谢你的帮助
展开全部
结果为:
"###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;
其实这个题出的挺好的!
"###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;
其实这个题出的挺好的!
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a++ ++a
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ppzqefyl 5 2 f к· ㏄ mrup
bxentd
uple
qmszogg
wrfo
vui
bxentd
uple
qmszogg
wrfo
vui
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询