int a =25时 ,求 a -=a *= a += a /= 2的值

如题所述

解答:
这是一个程序上的题。应该是C语言上的编程计算题。
关于a -=a *= a += a /= 2,应该按照从右向左的顺序计算;
从右边数第一个等号:a /= 2 ---->a=a/2,取整数 结果是12;
从右边数第二个等号:a += a /= 2----->a =a+ (a /= 2)=25+12=37;
从右边数第三个等号: a *= a += a /= 2---->a =a*( a += a /= 2)---->a=25*37=925
从右边数第四个等号:a -=a *= a += a /= 2---->a =a-(a *= a += a /= 2)=25-925=-900
结果是:-900;
并且运用了java程序计算的结果也是-900;追问

3 / 2 + 2.o 的值为多少

追答

3 / 2 + 2.o 的值为多少?
这个有没有说必须是整型呢? 没有要求的话就是3.5啦。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-08
这是C语言的问题吧?a+=2是a=a+2,-*/类似。不过连续赋值时,是从后到前计算的。所以你给的计算式的计算顺序如下:
a-={a*=[a+=(a/=2)]}
( )内计算是将a/2的值赋给a,即此时a变为25/2,由于a为int,所以取整,为12,( )内的计算返回值为12;
[ ]内的计算是将a+12赋给a,实际效果等同于a*2,所以此时a变为24,[ ]内的计算返回值为24;
{ }内的计算是将a*24赋给a,实际效果等同于a的平方,所以a变为576,{ }内的计算返回值为576;
最后一级运算是将a-576赋给a,实际效果等同于a减自身,所以最后a值为0。
第2个回答  2012-11-08
0追问

怎么算的,把式子发过来呗。谢谢了

追答

其实不管后面怎么算出a,最后一步a-=a是a=a-a=0

追问

哎,是的啊,谢谢了。在问你一道 3 / 2 + 2.0 的值为什么啊

追答

取整吗?关键是看数的定义是什么了