急~~~~~~~~~~~~c语言

来源:百度知道 编辑:UC知道 时间:2024/05/22 12:20:25
若有以下定义:float x=6.5,y=3.7;int a;则表达式(int)(x+y)的值为( ),表达式(int)x+y的值为( ),(int)x+(int)y的值为( ),表达式a=x+y的值为( )。
可否说下怎么算的

10
9.7
9
10
(int)(x+y)是先计算(x+y)的值再强制转换到int
x+y=10.2转成int舍去小数部分自然是10
(int)x+y则是先对x进行强制类型转换到int的6再和float的y加这时就是运算类型转换到float是6+3.7=9.7
(int)x+(int)y是同时对x和y做强制类型转换到int的6和3再加6+3=9
最后这个实际和第一个是一样的只是做隐式的“强制”对x和y做加后再转成int。x+y=10.2舍去小数部分就是10

(int)(x+y)=10-----x+y=10.2 取整
(int)x+y=9.7-----x取整=6,再加3.7
(int)x+(int)y=9--xy分别取整相加
a=10-----------与第一题是一样的,相加后取整再付给a

这样的题也急啊,

(int)(x+y)=10
(int)代表强制类型转换
x+y本来等于10.2,经过转换,成为int型。
以此类推:(int)x+y=9.7

(int)x+(int)y=9
a=x+y=10.2

同意2楼

转化为INT型都是向下取整