若有定义:int a; 执行赋值语句a+=a*=a%=a-=4;后,变量a的值是

请详细说明计算过程。我自己算出的结果是2a-4.

第一步:执行a-=4(a不能为4,不然a的值会变为0,a%a会程序错误);
第二步:执行a%=a(此时a的值为上个a-4的差,不过不影响),余数为0,并把0赋给a,a的
值为0;
第三步:a*=a,a的值还是0;
第四步:a+=a,a的值依旧为0。

只要a的初值不为4,结果就是0。.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-01-23
从右向左计算。
a-=4 ==> a=?(是几无所谓,只要不是0),运算结果是a,用它继续
a%=a ==> a=0(如果上一步a已经为0这一步会导致异常),运算结果是a,用它继续
a*=a
a+=a
后两个运算之后a依然是0.

我估计你把题目写错了,“%”是否应该是“/”啊?如果是这样,第二步之后a就是1,最后a是2.
第2个回答  2011-01-23
不用算了,肯定是0;
a+=a*=a%=a-=4;的等效语句为
a-=4;
a%=a;//这一步就决定了必然是0,不管a是多少,自己取模,肯定为0;
a*=a;
a+=a;
第3个回答  2011-01-23
0
第4个回答  2011-01-23
4
相似回答