(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
展开
 我来答
wchyumo2011
推荐于2017-09-05 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2772万
展开全部
首先,我们假设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型。
akfucc
推荐于2017-10-05 · TA获得超过5454个赞
知道大有可为答主
回答量:1771
采纳率:0%
帮助的人:2186万
展开全部
5.0是实型
float/int 结果是 float型

书没看透

表达式中数据类型的转换:
当在一个表达式中有不同类型的变量或常量时,要遵循一定的原则进行转换。可以理解为从大到小

char - int - float - double
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式