设有定义: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的结果。

C语言表达式求值:哪个表达式的值不等于6?

原文地址: https://www.cveoy.top/t/topic/joyG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录