int a=b=c=1; ++a||++b&&++c; a= ,b= ,c= .

如题所述

当然不是这样。在c语言中,&&的优先级比||高,所以当这两个一起出现的时候,是先算&&再算||,
当然,||在c语言也有个陷阱。就是当||的前半部分为真的时候,就不执行后半部,只有前半部分为假的时候才执行后半部分。
本题中:a=b=c=1;
于是a,b,c的值都是1,
++a||++b&&++c;
中,&&的优先级高,所以先算++b&&++c,
再跟++a做||运算。
于是++a是||的前半部分。而++a的值此时是2,a的值就是2,即为真。于是就不做后半部分的运算。
也就没有++b&&++c的运算。于是b,c的值还是都为1.
这下明名为什么是a=2
b=1
c=1,而不是a,b,c都为2的原因了吧。
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-04-01
a\b\c初是1
后面的逻辑表达式本来是先算&&再算||
但是最终还是算||,||中当左边表达式为真时就不会计算右边表达式
所以只运算++a,所以结果是a=2,b=1,c=1
第2个回答  2019-08-07
a=1,b=2,c=2;因为第一个运算是从右到左执行的,执行++c后,下一条语句变为2,但该条语句还要继续执行,接着执行++b,b变为2,为真,不需要在执行或语句了,因为已经知道结果了,所以a的值仍为1.
第3个回答  2019-08-01
结果是2,1,1
++a得出a为2,
运算到||时,发现前面为真,后面也就不会执行了。

int a=b=c=1; ++a||++b&&++c; a= ,b= ,c= .
a\\b\\c初是1 后面的逻辑表达式本来是先算&&再算|| 但是最终还是算||,||中当左边表达式为真时就不会计算右边表达式所以只运算++a,所以结果是a=2,b=1,c=1

a=b=c=1;++a||++b&&++c;执行后输出a,b,c各是多少
1 a=b=c=1;++a||++b&&++c;执行后输出a,b,c分别是2 1 1。2 ++a||++b&&++c;这个语句只会执行++a,++b&&++c不会执行。C语言在做||运算时,如果第一个操作数++a为真(非零),直接返回真,而不计算第二个操作数++b&&++c。

...a,b,c均为int型变量,执行以下语句:++a||++b&&++c;则变量a的值是多少...
4).所以最后的结果就是a=2,b=1,c=1;5)代码如下 include<stdio.h> main(){int a,b,c;a=b=c=1;if(++a||++b&&++c)printf("%d,%d,%d\\n",a,b,c);} 6).你可以结合我所说的,在TC或者VC下调试一下;可惜我等级不够,要不然把结果图片也放上去,就这样吧。祝你好运!

a=b=c=1时++a||++b&&++c和++a&&++b||++c,++a&&++b&&++c的区别是啥?a...
++a||++b&&++c根据于运算符优先级,即++a||(++b&&++c),又由于逻辑运算符的短路效应,所以只有a自增了1,最后,a=2,b=1,c=1 ++a&&++b||++c根据于运算符优先级,即(++a&&++b)||++c,又由于逻辑运算符的短路效应,所以只有a和b自增了1,最后,a=2,b=2,c=1 ++a&&++b&&++c,abc均自...

C语言a=b=c=1,++a||++b||++c,a.b的值为多少。为什么
都是2。显然,a,b,c初值是1,后面那个运算中是先算++的,相当于(++a)||(++b)||(++c),于是a,b,c的值各增加了1,得2。

c程序中输入: int a,b,c; a=b=c=1; ++a||++b&&++c; 执行后abc的值为什 ...
++a||++b&&++c是逻辑表达式,它的值只有“真”与“假”两种,常用“非零”和“零”来表示。++a||++b&&++c第一个逻辑操作符为||,它是“或”操作,就是说它两边的表达式只要有一边为“真”整个表达式的值就为真。而++a使a为2,这已为“真”了,所以整个表达式的值已经肯定为“真”了,|...

c语言int a,b,c.a=b=c=1. ++a||++b&&++c. 求a和b的值
结果是a=2,b=1,因为||和&&的优先级相同,||的执行规则是左边的如果为真就不再执行右边的++b,++a之后a=2,不为0,所以为真

int a,b,c; a=b=c=1; ++a||++b&&++c ,请解来看看?
是不是++a|++b&++c 此时|(or)和 &(and)都是位运算,答案是 2 ++a ++b ++c为1 2&2=2 2|2=2 所以答案是2 你说的这个是逻辑运算符,答案是1(逻辑运算的答案只有0,1所以为1)

int a,b,c; a=b=c=1; ++a||++b&&++c。求a的值是多少?
执行inta,b,c;a=b=c=-1;++a&&++b||++c;后a,b,c值分别为 a是0 b是-1 c是0 因为++a&&++b||++c这个逻辑表达式 先计算&&因为++a是0所以这部分为0++b不执行 再计算||++c要计算所以c=0

...int a, b, c; a=b=c=1; ++a || ++b && ++c;
首先要知道三点:1.&&优先级比||高 2.||运算,如果左边为真,则右边不用再判断.&&运算,如果左边为假,则右边不用再运算 3.一般编程语言中,非零则为真 ++a || ++b && ++c <=> ++a || (++b&&++c)a=1,++a=2为真,语句就执行到这里跳过了 所以a=2,b=1,c=1 ...

相似回答