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

admin2022-10-24  34

问题 有以下程序
 #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.1400013

答案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/GDkp777K
0

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