(float)(a+b)/2+(int)x%(int)y的值为多少?
设a=2,b=3,x=3.5,y=2.5本题正确答案为3.5可我觉得应该是这样2+3%2=2+1=3虽然左边float强制的仅仅是定义5.0实型,没有定义后面的除法运算符...
设a=2,b=3,x=3.5,y=2.5
本题正确答案为3.5
可我觉得应该是这样2+3%2=2+1=3
虽然左边float强制的仅仅是定义5.0实型,没有定义后面的除法运算符(根据向0取整,结果就为2)......不知道哪儿出错了?
注:float型/2等于几?(问题不是求float与int之间的关系)
注:除法运算的结果是整数!!!就算是10.4/2结果也应该是5 展开
本题正确答案为3.5
可我觉得应该是这样2+3%2=2+1=3
虽然左边float强制的仅仅是定义5.0实型,没有定义后面的除法运算符(根据向0取整,结果就为2)......不知道哪儿出错了?
注:float型/2等于几?(问题不是求float与int之间的关系)
注:除法运算的结果是整数!!!就算是10.4/2结果也应该是5 展开
2个回答
展开全部
首先,我们假设a=2,b=3,x=3.5,y=2.5,其运算过程如下,
(1)a+b=5(float型)
(2)5(float型)/2(int型)=2.5(float型)
(3)(int)x=3,(int)y=2
(4)(int)x%(int)y=3%2=1
(5)2.5(float型)+1(int型)=3.5(float型)
a,b,x,y取其他值其计算过程类似。
这题中设计到类型的自动提升,关于类型的自动提升规则:
第一,所有的short型和char型的值在于int型计算时将被提升到int型;
第二,如果一个操作数是long型,计算结果就是long型;
第三,如果一个操作数是float型,计算结果就是float型;
第四,如果一个操作数是double型,计算结果就是double型。
(1)a+b=5(float型)
(2)5(float型)/2(int型)=2.5(float型)
(3)(int)x=3,(int)y=2
(4)(int)x%(int)y=3%2=1
(5)2.5(float型)+1(int型)=3.5(float型)
a,b,x,y取其他值其计算过程类似。
这题中设计到类型的自动提升,关于类型的自动提升规则:
第一,所有的short型和char型的值在于int型计算时将被提升到int型;
第二,如果一个操作数是long型,计算结果就是long型;
第三,如果一个操作数是float型,计算结果就是float型;
第四,如果一个操作数是double型,计算结果就是double型。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询