已知: int a=1,b=1,c=1;执行完表达式c=++a&&b++后,变量b的值是?

如题所述

b应该是2吧
因为&&是与符号
与符号只有在两个条件都为真的时候才为真
所以与前后的都要计算
如果是||的话
b就为1了
因为或是只有一个为真就为真
所以当程序计算前面的为真后
后面的就不会被计算到
所以b就为1了
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-03-16
先一句一句看
1.
b=1
2.
a=b=1,这里a=1
3.
a++,注意这句,不同的编译器产生不同结果,有的编译器在这句执行完成后逗号表达式后面的值还都没执行a的值就已经变成2了!
4.
b+1,不产生任何影响
5.
c+a+b--,这句只对b产生影响,执行后b=0
最后结果a=2,b=0,c至始至终没改变过值,不同的编译器不一样的初始值,有的是0,不能确定。
第2个回答  2019-07-23
B
变量
B++等于B+=1等于B=B+1
B原先
1

等于1++等于1+=1等于1=1+1
B
2

C语言中。int a=1,b=0,c=1; 执行语句 !b||++a&&++c 后,a,b,c
对于!b||++a&&++c;按照规定, 要先计算 && (&&的优先级比||高)也就是需要计算出 ++b和c++;但是按照优化, 只要计算出 a>0 就可以了,不需要计算出 ++b和c++,“||”在这里起到了短路的功能(短路就是,当第一条表达式能决定整条表达式的结果,那么后面的语句都不执行!),这也叫做布...

int a=1 ,b=1 ;执行c=++a||++b a,b,c 的值?
a=2 b=1 c=1 ++a||++b是一个条件表达式,如果“||”前面为真,后面的就不会被计算。由于前面结果为2,++b没有执行。故a=2 b=1 c=1

假设a=1,b=1,c=1表达式 d=++a||++b&&++d 运算后,变量a,b,c,d 的值...
a=2,b=1,c=1,d=1 ||是有一个为真结果为真,而||和&&不是同等优先级的,运算顺序 是由左向右,所以当++a运算后判断为真,则结果为真了,不被继续往下运行,此时a=2,其他的都为以 看C语言书后的附录,有所有运算符的优先级顺序,看了以后就会懂了,,多看书哦 ...

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

C语言中,int a=1,b=a; for(a=1;a<100;a++)... 那么b是赋值为1,还是随...
C语言中是按照命令一条一条向下进行的,如果后面没有再给b赋值的语句的话,b的值不会变,等于1。

#include<stdio.h> main() { int a=1,b=1,c=1; a++||
&& 优先级高于 || 则: a++||b++&&c++;等价于: (a++) || (b++&&c++);而 || 只要一个为真,后续语句不用继续执行。a++ 为非 0 值,则为真;后面的 b++&&c++ 就不用执行了。所以输出结果是: 2 1 1

...且a=b=c=1,执行if(a++||++b) c++;语句后,b的值是
不同的地方是++在前,执行完判断先执行自加,++在后,在循环内部语句执行完后再自加,对写到题来说就是,if判断是a,b都是1,执行完后,先执行++b.在执行内部语句c++,最后执行a++,执行完后全部值都为2,b也是2 另外,在输出sprinf中,++在前或在后,都是先执行自加,在输出,...

设int a=1,b=1;执行(!a||++b)后b的值是什么
b当然等于2了。是运算符优先级的问题 相当于((!a)||(++b))++b是先加再用,b++是先用后加(用是指参加运算)。不过这里不管是哪种,执行完整个表达式,b肯定都加了1。

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

int a=0,b=1,c=1; if(a++==b&&++a!=b) a=b++ + ++c+1; Question:执行该...
先判断if里的是0还是非0 a++这个式子是0,但a=1;所以a++!=b。所以if里面为0(有&&时,只要有一个式子是0则整个为0)。所以不执行后面的a=b++ + ++c+1;所以a=1.这个正解。

相似回答
大家正在搜