选择题
16.
设有定义“double x=5.16894;”,则语句“printf("%1f\n",(int)(x*1000+0.5)/1000.0);”的输出结果是______。
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+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。
提交答案
关闭