选择题
40.
若有正确定义语句“double x=5.16894;”,则语句“printf("%f<n",(int)(x*1000+0.5)/(double)1000);”的输出结果是______。
A、
输出格式说明与输出顶不匹配,输出无定值
B、
5.170000
C、
5.168000
D、
5.169000
【正确答案】
D
【答案解析】
(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/(double)1000)->5.169,所以printf("%f<n",5.169)的结果是5.16900。因此,本题的正确答案为选项D。
提交答案
关闭