设有变量定义“intx=1,y=2,z=3 ;”,计算下列表达式的值1)(x=(float)(y)+0.5)/22) z=(- -x,y++,x+y+z)3) x=y=z4) x*=y-(z=1)5) x=(y++)+(--z)6) x%=(z/=2)
问题描述:
设有变量定义“intx=1,y=2,z=3 ;”,计算下列表达式的值
1)(x=(float)(y)+0.5)/2
2) z=(- -x,y++,x+y+z)
3) x=y=z
4) x*=y-(z=1)
5) x=(y++)+(--z)
6) x%=(z/=2)
答
1)这个是要求什么表达式的值呢?后面的除2(/2)完全没有作用啊,执行后x=2,因为x是整型;若是x=((float)(y)+0.5)/2,执行后x=1;
2)逗号(,)运算符求职顺序为自左至右,所以,执行--x,y++后x=0,y=3,z=3,然后求得最右边x+y+z=6并将此结果赋给z;
3)等号(=)运算符结合方向为自右至左,所以,先有y=z=3,然后x=y=3;
4)z=1是赋值运算,赋值成功,返回为1,所以x*=y-1;x=1,y=2,z=1;
5)y++引用y=2后y=3,--z是z自减为2后引用,所以,x=4,y=3,z=2;
6)z/=2后z=1,然后化为x=x%(z=1),与4)类似,x=x%1=0,y=2,z=1.