以下不能正确表示代数式2ab/cd的C语言表达式是 ______ 这个答案2*a*b/c*d为什么中得把c*d改成(c*d)才能和表达式等价?
因为c和d在原题中都是分母,如果不加括号的话d就会变成分子,乘除符号是统一优先级,所以2*a*b/c*d会从左到右依次计算,所以这个表达式最终结果是2abd/c,与题目要求不同;如果加了括号那么表达式变为2*a*b/(c*d)括号的优先级是最大的,所以结果会变成2ab/cd;不要把数学表达式和c语言中的表达式混淆了
回复 嘿嘿大人:谢谢您,可是还是有点迷糊,乘除符号是统一优先级,为什么d就会变成分子了,2*a*b/c*d会从左到右依次计算,结果怎么是2abd/c。麻烦您一下。
以下不能正确表示代数式2ab/cd的C语言表达式是 ______ 。
A. 2*a*b/c/d
B. a*b/c/d*2
C. a/c/d*b*2
D. 2*a*b/c*d
答案:D
解析:C语言中乘法和除法优先级相同,所以从左向右进行计算。A、B、C都和表达式等价,D中得把c*d改成(c*d)才能和表达式等价。因此选D。