设有定义:doublex=5.16894;,则语句printf("%lf\n",(int)(x*1000+0.5)/1000.);的输出结果是( )。

admin2021-04-28  23

问题 设有定义:doublex=5.16894;,则语句printf("%lf\n",(int)(x*1000+0.5)/1000.);的输出结果是(    )。

选项 A、5.16900
B、5.16800
C、0.00000
D、输出格式说明符与输出项不匹配,产生错误信息

答案A

解析 (x*1000+0.5)表示x移动3位小数,加0.5,也就是小数第4位加5,若这位大于等于5,则进1到个位。因为“5.16894*1000 5168.94+0.5 5169.44”所以(int)(x*1000+0.5)强制转换为整型结果为5169。(5169/1000.0)5.169,由于1000.0结果自动转换为浮点数所以printf(“%lf\n”,5.169)结果是5.16900。故答案为A选项
转载请注明原文地址:https://jikaoti.com/ti/BWz0FFFM
0

相关试题推荐
最新回复(0)