C语言表达式求值:哪个表达式的值不等于6?
设有定义:int x = 2;,以下表达式中,值不为6的是( )
A. 2x, x+=2 B. x++, 2x C. x*=(1+x) D. x*=x+1
答案:B
解析:
-
A. 2*x, x+=2
- 2*x = 4
- x+=2 (等价于 x = x + 2),此时 x 的值为 4
- 最终结果为 4,符合题意。
-
B. x++, 2*x
- x++ (自增运算符,先使用后自增),此时 x 的值为 2
- 2*x = 4
- x 自增后值为 3,但最终结果为 4,不符合题意。
-
C. x=(1+x)*
- 1+x = 3
- x*=(1+x) (等价于 x = x * (1 + x)),此时 x 的值为 6
- 最终结果为 6,符合题意。
-
D. x=x+1*
- x+1 = 3
- x*=(x+1) (等价于 x = x * (x + 1)),此时 x 的值为 6
- 最终结果为 6,符合题意。
总结: 由于B选项中,x++运算符先使用x的值进行计算,然后再自增,导致最终结果不为6。其他选项均能正确计算出值为6的结果。
原文地址: https://www.cveoy.top/t/topic/joyG 著作权归作者所有。请勿转载和采集!