支付宝一元碎屏险:我现在迫切想知道!

来源:百度文库 编辑:高考问答 时间:2024/04/30 03:52:28
请问:int x=3,y=2;float ax=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为多少?能不能详细讲下怎么来的?特别是float a=2.5转为int a时是怎么转换的?float转换为int型时有什么规定?谢谢!

ax=2.5?是a=2.5吧?
看你要把(x+y)%2+(int)a/(int)b的值以什么形式输出了……
假设以整数形式%d输出的话,(int)a/(int)b :a,b被强制转化为整型数即2/3
(x+y)%2:5除以2的余数为1。所以最后的输出的结果是:1
如果是以实数%f输出的话,不同的编译器结果是不一样的turbo c2.0 会输出0.000000,发生了“underflow”。
至于float转换为int型时也没什么规定:就是去掉小数部分取整数部分就ok了。

float a=2.5转为int a要看机器,有的向左取整,有的向右取整
x+y=5
5%2=1
向左取整:
2.5/3.5=2/3=0
结果=1