设有变量定义char a='a' ; int i=3, j=5, b ; float x=2.5 ; double y=5.0, z; ,下面表达式值。

1. y+=i-=j*=++x; 值为-9.0不为-9.5?2. i-=j*=x+y=-34?而不为-34.5?3. z=(i++)*(j++)=15.0而不为15?4. (int)x/(int)y+y=5?

这和你变量的定义有关,你的j和i是int型的,那第一个++x后是3.5后再乘5是17.5,这是因为j是int型,所以就四舍五入了,j就变为17,然后3-17=-14,5.0+(-14)=-9.0,改法可以把j和i改为double或float
剩下的基本可以类推吧,就是决定数字的值的不是计算的结果,是它本身的类型
第四个是一个强制转换,把x和y都转换为int型,所以x的值是2,y的值是5,2/5的值是0,再加5就是5了
基本就这样了,如果不懂可以再追问
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-06-10
这和你变量的定义有关,你的j和i是int型的,那第一个++x后是3.5后再乘5是17.5,这是因为j是int型,所以就四舍五入了,j就变为17,然后3-17=-14,5.0+(-14)=-9.0,改法可以把j和i改为double或float
剩下的基本可以类推吧,就是决定数字的值的不是计算的结果,是它本身的类型
第四个是一个强制转换,把x和y都转换为int型,所以x的值是2,y的值是5,2/5的值是0,再加5就是5了
相似回答