选择题 40.  若有正确定义语句“double x=5.16894;”,则语句“printf("%f<n",(int)(x*1000+0.5)/(double)1000);”的输出结果是______。
【正确答案】 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。