有以下程序 #include<stdio.h> void main( ) { double x=3.14159; printf("%f\n",(int)(x*1000+0.5)/(double)1000); } 程序运行后的输出结果是( )。

admin2019-01-11  21

问题 有以下程序
#include<stdio.h>
void main( )
{
double x=3.14159;
printf("%f\n",(int)(x*1000+0.5)/(double)1000);
}
程序运行后的输出结果是(    )。

选项 A、3.142000
B、3.141000
C、3.143000
D、3.140000

答案A

解析 根据算术表达式和运算符的优先级与结合性,对于题意表达式:int(x*1000+0.5)/(double)1000,首先计算x*1000,由于x是double类型,1000是整型,所以x*1000的结果默认是double类型:3141.59;再加0.5后执行int的强制转换,结果为3142;分母(double)1000强制转换为double类型,此时3142/(double)1000中,3142需要转换成double类型,然后除以1000,结果为3.142000,保留小数点后6位,本题答案为A。
转载请注明原文地址:https://kaotiyun.com/show/Spxp777K
0

相关试题推荐
最新回复(0)