int a=1,b=2,c=3; 执行表达式(a=b+c)||(++b)后a,b,c的值分别是多少啊

如题所述

这是实际运行后的结果


.|| 逻辑或运算符,形式:(TRUE)||(TRUE),只要有一个真,就返回,程序的执行过程是:

a = b + c 这句已经是真(TRUE)了,所以,++b 就不执行了,b 的值还是 2

追问

对啊 b就是2啊 怎么理解啊

求教啊

追答

.|| 逻辑或运算符,形式:(TRUE)||(TRUE),只要有一个真,就返回,程序的执行过程是:
a = b + c 这句已经是真(TRUE)了,所以,++b 就不执行了,b 的值还是 2

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-19
a=5
b=3
c=3追问

答案b是2啊

追答

答案不一定正确。
++b 是B先自增1 在运算
B++ 应该是2

...a=1,b=2,c=3; 执行表达式(a=b+c)||(++b)后a,b,c的值分别是多少啊
a = b + c 这句已经是真(TRUE)了,所以,++b 就不执行了,b 的值还是 2

若有定义int a=1,b=2,c=3则执行表达式(a=b+c)||(++b)后a.b.c的值...
我用 GCC 3.4.2 和 VC 6.0 编译后的结果都是5,2,3 因为 || 号,只执行了前面的部分,a=b+c 已经返回了结果“真”,所以没有执行 ++b 部分的。很可能是编译器进行了优化的结果。不知道你用的编译器是什么。

int a =1 b= 2 c= 3 语句(++b,a)||(a++,c++);执行后a,b,c是多少
首先计算(++b,a):逗号表达式(++b,a)=a=1 过程中++b:b==3 由于使用||的逻辑运算符,当左边的值为真的时候,整个表达式的值即为真,计算机就不会再去计算(a++,c++),因此 a=1(参加左边运算,却没改变值的大小)b=3(参加运算,值自加1)c=3(不参加右边运算,值不变)...

c语言中int a=1,b=2,c=3;(a=b+c)||(++b);printf("a=%d,b=%d,c=%d\\...
故a值为5,bc都仍是原值

已知a=1,b=2,c=3,则表达式a*b&&(b++,!c)&&(a++,c++)的值是。该表达式...
所以,(b++,!c)经计算后为(2,0),逗号表达式的值是0,同时b为3,而a*b&&(b++,!c)&&(a++,c++)=2&&0&&(a++,c++)已为假,不会再计算(a++,c++),因此,结果是表达式a*b&&(b++,!c)&&(a++,c++)的值是0,该表达式运算过后,a=1,b=3,c=3。

...int a=1,b=2,c=3;语句++a||++b&&++a运行后b 的值为___。 答案是...
答案是2,不是3 ++a||++b&&++a 按照运算符优先级,等价于:++a||(++b&&++a)因为++a的值为2,为真,所以整个表达式的值为真,||右边的表达式不再运算,即逻辑或短路,所以b的值还是原来的值,即2

已知:int a=1,b=2,c=3,d=4;,则执行语句a>b && ++c>=d;后,变量c的_百度...
c的值没有变,还是3。先判断a>b,结果是逻辑假,”逻辑假 && 其他表达式“的时候,因为前面已经是假,后面无论是什么结果,总的表达式也都是假,就不会再去执行”其他表达式“,所以++c没有执行,c还是3。

假设inta=1,b=2,c=3,求下列表达式的值.(1)a&&(a>b)||!(c) (2...
第一题&&优先级比||高,先看||左边a为真但a>b为假所以为假,||右边!(c)为假,故第一题为0。第二题||左边(a<b)?b++:++a)执行b++,为真,||右边就不用看了,为真,故第二题为0。这类题目通常按照一定的顺序给出一系列量,要求根据这些已知的量找出一般规律,而找出的规律通常包...

已知整数a = 1, b = 2, c = 3; 求表达式执行后a, b, c, d的值, 表达 ...
b++ 值为 3 ,c++ 值为 4 , - - a 值为 0, 但是此题考查的是 ++ 或者 - - 在前还是在后,例如:b++,则先拿b去运算在将b+1,而++b 是先把b+1再拿结果去运算,所以执行表达式后: d= 1, a=0,b=3,c=4. 表达式右边结果返回为真,三个表达式进行或运算 ,不知楼主懂否?

inta=1,b=2,c=3求表达式c+=a>b?++a:++b
三目运算的优先级高于赋值运算,所以先计算三目表达式a>b?++a:++b.由于a>b为0,所以取++b的值3,再算赋值运算c+=3,结果是6.

相似回答