解释一个C语言程序

#include(stdio.h)
#include(math.h)
main()
{
inta=1,b=4,c=2;
float x=10.5,y=2.0,z;
z=(a+b)/c+sqrt((double)y)*1.2/c+x;
printf(“%f\n".z);
}
麻烦详细讲一下这个程序的运算过程,谢谢!
还有这个程序是怎么运算的:
main()
{
int k=2,i=2,m;
m=(k+=i*=k);
printf("%d,%d\n",m,i);
}

第一个程序:首先整型变量int后应有一个空格即int a=1……
运行过程:
首先定义整形变量a,b,c,并使值为1,b值为4,c值为2,
然后定义float型变量x,y,z,并使x值为10,y值为2.0,z不赋值。
然后进行计算,算式整体可由加号分为三部分,第一部分是(a+b)/c 明白吧,不用说。第二部分是sqrt((double)y)*1.2/c,/与*优先级相同,所以先算sqrt((double)y),看括号里的,是(double)y,即把y转换为double类型数据,然后 求y的平方根,然后*1.2,再除以c。第三部分是一个x。
这三部分相加,然后把得到的值,是一个double型数据,赋值给z。
最后输出z,以float型数据输出。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-04
(a+b)/c 第一步,之后是sqrt((double)y)*1.2/c
最后连同 x 三部分求和。

i=i*k;
k=k+i;
m=6;
i=4;
第2个回答  2010-05-04
1.
z=((a+b)/c)+(sqrt((double)y)*1.2/c)+x;

2.
i=i*k;
k=k+i;
m=k;
所以最后的输出结果为:
m=6,i=4
第3个回答  2010-05-04
第一个
main()
{
inta=1,b=4,c=2; //给整数a,b,c赋值
float x=10.5,y=2.0,z; //给小数x,y赋值,申明小数z
z=(a+b)/c+sqrt((double)y)*1.2/c+x;
//计算z的算式:sqrt表示开根号,要加#include(stdio.h)才能用,(double)表示把y强制类型转换成double型,*表示乘法,/表示除法
printf(“%f\n".z);//输出浮点数z
}

第二个
m=(k+=i*=k);
赋值语句结合顺序是从右往左结合:最右边i*=k 是i=i*k的简写,计算结果i=2*2=4;同理,k+=i是k=k+i;计算结果k=2+4=6最后m=k;所以m=6;
相似回答