int a=1,b=2;执行c=a++||b++;语句后变量b的值是

如题所述

b=2;

||运算从左到右,但只要左边的值非0,那么整个表达式的值就是1,||右边就不再运行

由于

int a=1,

所以

c=a++ || b++;

相当于

c=(a++)||(b++);

所以||左边非0,所以b++不运算,

所以b就是原值2

 

运行结果:

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-26
b=3,++操作符的优先级较高
第2个回答  2019-02-01
逻辑或和逻辑与都有短路的特性;
当第一个表达式的值已经能够判断出这个逻辑运算的值时,后面的运算将不再进行;
比如这个题,a++的值已经为1了,逻辑或一定为真,所以后边的语句就不再执行了。
第3个回答  2013-03-26
b++即b=b+1;
b=3;
第4个回答  2013-03-26
同学你太幸福了,哥当年的C++,考了四年,那叫一个无助啊追问

呵呵~~~你考的是几级的呀

int a=1,b=2;执行c=a++||b++;语句后变量b的值是
int a=1,所以 c=a++ || b++;相当于 c=(a++)||(b++);所以||左边非0,所以b++不运算,所以b就是原值2 运行结果:

int a=1,b=2,c;a++;c=b++;printf("%d%d",a++,++b,c++);分别写出运行之后...
a++;然后 a=2 输出时,a++,此时a=2输出,然后a再加1 c=b++;然后b=3 输出时,++b,此时b先再加1,变为b=4,然后b=4输出

int a=1,b=2;a++;b++;printf("%d%d",a++,++b);分别写出运行之后a,b的...
a 2 b 4 解释:当执行完 int a=1,b=2;a++;b++; 之后,a = 2,b=3 当执行 printf("%d%d",a++,++b); 由于 a++ 是先赋值再自加,因此a++ 为2,执行之后 a等于3 ++b 是先自加,再赋值,所以 ++b 为4,b 为 4

若定义int a=1,b=2,c=3,则运行++a‖++b&&++c,后b的值为多少?
即a = 2, b= 2 ,c =3

若有定义int a=1,b=2;,执行语句a++>=b&&b++; 之后,变量a和b的值分别...
因为编译器在判断a++>=b 是逻辑假后就不会再计算后面的b++了 因为逻辑假与逻辑真或逻辑假相与都是逻辑假所以就不会计算了。

若有定义: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;c=a+++b++;”,则a,bc的值分别为多少?
a=2,b=3,c=3;自增运算符在后边,表示先运算在自增,即先是c=a+b=3,然后a自增到2,b自增到3

int a=1,b=2; 那么表达式(a++)+(++b) 的值是:
a++是先使用a的值,然后再改变a的值。++b是先改变b的值加1,然后再使用b的值。结果为 1+3 =4

若有定义 int a=1,b=2; 表达式(a++)+(++b) 的值是( )?
B 相当于1+3 在完成运算后a的值才变成2,3,若有定义 int a=1,b=2; 表达式(a++)+(++b) 的值是( )A、3 B、4 C、5 D、6

int a=1,b=2 . a>b?a++:b++ 最后结果a和b的值
a=1 b=3 "? :"意思就是说满足">"就运行冒号前的内容,否则就运行冒号后面的句子。

相似回答