C语言:18/4*sqrt(4.0)/8这个表达式在C语言中的结果是多少?

如题所述

18/4*sqrt(4.0)/8
这个算式只有乘除运算,优先级相同,从左往右依次计算:
=(18/4)*sqrt(4.0)/8
先计算18/4,因为18和4都是整型数,系统默认是做整型除法计算,计算的结果只取商的整数部分:即18/4=4
=4*sqrt(4.0)/8
接下来计算这个乘法:
=[4*sqrt(4.0)]/8
这里有一个系统函数sqrt,它是开平方运算,返回值是浮点数,4.0开平方结果是2,因为是浮点数,我们用2.0代表(真实结果可能是类似2.000002或1.999997这样的数):
=(4*2.0)/8
这个乘法的因为有一个乘数是浮点数,运算结果也是浮点数,我们用8.0表示:
=8.0/8
最后这一步计算是除法,因为有一个数值是浮点数,系统就会做普通除法,得到的结果也是浮点数,因为8.0/8=1,我们也用1.0表示。真实结果可能是1.000006或0.999998。
=1.0
结果就是浮点数的1.0000。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-05-11
*和/是同一个优先级,按规则按部就班从左至右算——
结果=((18/4)*sqrt(4.0))/8=4*2.0/8=8.0/8=1.0。本回答被提问者采纳