选择题 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。