单选题 设有定义:double x=5.16894;,则语句printf("%lf\n",(int)(x*1000+0.5)/1000.);的输出结果是( )。
【正确答案】 A
【答案解析】[解析](x *1000+0.5)表示x向右移动3位小数,加0.5,也就是x的小数第4位加5,若这位大于等于5,则进1到个位。因为“5.16894*1000=5168.94,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选项。