霍金多少岁:有关C语言的问题6

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/11 16:28:54
以下程序的输出结果是__
#include<stdio.h>
#include<math.h>
main()
{
int a=2,b=3,c=4;
float x=5.5,y=1.0,z;
z=(a+b)/c+sqrt((double)y)*1.2/c+x;
printf("%f\n",z);
}
最好解释一下z=(a+b)/c+sqrt((double)y)*1.2/c+x;

(a+b)/c整形除整形的结果还是整形,所以5/4=1
sqrt((double)y)是1.0开方结果是1.0然后乘以一个实行数结果是双精度型,由数值型数据运算的规则知道,应先将c转换为实型在进行运算,结果是0.3,所以最后结果是1+0.3+5.5结果是6.8 最后按单精度打印,保留五位小数,结果是6.800000

得6.65吧

输入的答案是6.8!

是6.8.(a+b)/c=1;

答案是6.8
z=(a+b)/c+sqrt((double)y)*1.2/c+x中难懂的是sqrt((double)y)*1.2/c这一句吧,这里是先把y转化为双精度型,再用sqrt函数求y的开平方数,后乘1.2再除以c。