若有以下程序段: double x=5.16894; printf("%f\n",(int)(x*1000+0.5)/(double)1000); 则程序段的输出结果是( )。

admin2019-02-02  28

问题 若有以下程序段:
      double x=5.16894;
      printf("%f\n",(int)(x*1000+0.5)/(double)1000);
    则程序段的输出结果是(    )。

选项 A、5.170000
B、5.175000
C、5.169000
D、5.168000

答案C

解析 本题考查强制类型转换与输出格式。%f的输出格式是以带小数点的数学形式输出浮点数。首先计算x*1000,结果为5168.94,加0.5为5169.44,然后进行强制类型转换,转换成整型为5169,然后除以双精度数据1000,结果为双精度数据5.169,输出时按照%1的格式输出,所以输出结果为5.169000。
转载请注明原文地址:https://kaotiyun.com/show/nERp777K
0

最新回复(0)