设int a=1,b=2,c,d,e;执行下面的语句c=(-a++)+(++b);d=(b--)+(++a)-a;e=(a/(++b))-(b/(--a));后,

设int a=1,b=2,c,d,e;执行下面的语句后a,b,c,d,e的结果分别是?????
c=(-a++)+(++b);
d=(b--)+(++a)-a;
e=(a/(++b))-(b/(--a));

你好,答案是:a=2,b=3,c=2,d=3,e=0

a++和++a是自增运算,相当于a=a+1;a--和--a是自减运算,相当于a=a-1
“++a”或“--a”是先自增自减再参与计算;“a++”或“a--”是先参与计算再自增自减

如果还不懂,请追问追问

我不太懂a,b的值为什么同时也跟着改变,a++的值,会改变原有a的值?最后输入a的值不是a=1么?

追答

    首先我告诉你了这是一种简写形式,因为你那题目写的是复合语句。C语句是以分号结尾的,所以我说的先后是以分号为界的。

     第一句:c=(-a++)+(++b);  a++是先参与计算,然后在程序执行到分号后才自增,而++b是程序读到该处b的值马上+1变为3,所以c=(-1)+(3)=2,执行到分号,a的值+1变为2

    复合语句【c=(-a++)+(++b);】分解开就是:

    b=b+1;

    c=-a+b;

    a=a+1;

    这就是我说的先后问题呀

    第二句:【d=(b--)+(++a)-a;】分解开就是:

    (注意经过语句1,a=2,b=3)

    a=a+1;

    d=b+a-a;

    b=b-1;

    第三句:【e=(a/(++b))-(b/(--a));】分解开就是:

    (注意经过语句2,a=3,b=2)

    b=b+1;

    e=a/b;

    a=a-1;

    e=e-b/a;

    (注意你定义的e是整型数,所以只要整数部分,小数部分被丢弃)



温馨提示:内容为网友见解,仅供参考
第1个回答  2014-03-22
c=-1+3=2;(b=3,a=2)
d=3+3-3=3;(b=2,a=3)
e=(3/3)-(3/2)=0;(b=3,a=2)

c语言的 ++ 问题, 设int a=1,b=2,c,d,e;
故最终得到的结果为:a=2 b=3 c=2 d=3 e=0

已知整数a=1,b=2,c=3;求表达式执行后a,b,c,d的值,表达式d=(a++...
b = 0 c = 1 d = 2 下面这位兄弟说的对着呢!若a = 1 b1 = ++a 和 b2 = a++的区别:++a、a++都会使a自身加1,即a的值会为2,但是b1 = 2 b2 = 1 b3 = --a 和 b4 = a--的区别:--a、a--都会使a自身减1,即a的值会为0,但是b3 = 0 b4 = 1 也就是说不管是...

int 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; 那么表达式(a++)+(++b) 的值是?
(++b)b先自加1,变成3,然后再被表达式调用.所以答案是:1+3=4 总结下:a++:先用再变 ++a:先变再用

若有定义 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

运行结果: main(){int a=1,b=2,c; c=(a>b)?b++:(++a>4)?b++:a++...
?b++:a++;这一句的意思是:式子(++a>4)?b++:a++先运算即;++a与4比较,++a>4成立,则式子值为b++,反之为a++;因为++a=2<4,则不成立,式子值为a++即2;然后c=(a>b)?b++:2;运算,a此时值为2,b值为3,所以式子不成立,即c值为2;所以输出为3 2 2 ;清楚了没?

C语言,关于条件运算符的右结合性。 void main(){ int a=1,b=2,c
不是这样的,这个是看程序是否有运行到那里,因为(a++)值为真,所以程序直接运行后面的b++,不执行c++?d++;e++,所以结果就是你看到的,如果你是f=0?b++:c++?d++:e++;,,那边程序就执行后面的,而不执行b++,结果就是a=1,b=2,c=4,d=5,e=5,d=4;

int.a=1,b=2,c=3;int k=(a++)+(--b)+a+(b++)+(c--)+c
a =2;b =2;c =2;

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

a=1,b=2,c=3;求表达式执行后a,b,c,d的值表达式d=--a||b++||c++
b的值为2,先与(--a)进行||运算,再自加,由于b=2,所以(--a)||b=1。然后b自加变成3。这里就是||的规则了。无论多少项进行||运算,只要有一个是真的(非零),整个式子就是真的(非零)了。它后面的就不会参与运算。所以b++后面的c++就不会执行了。所以c还是3.所以a=0,b=3,c...

相似回答