题目
设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值是( )A. 3B. 0C. 9D. -12
设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值是( )
A. 3
B. 0
C. 9
D. -12
题目解答
答案
D. -12
解析
步骤 1:理解运算符优先级和结合性
在C语言中,算术运算符的优先级从高到低依次为:乘法(*)、除法(/)、取模(%)、加法(+)、减法(-)。赋值运算符(=)的优先级较低。此外,赋值运算符是右结合的,即从右向左进行计算。
步骤 2:计算表达式a*a
根据题目中的语句int a=3;首先计算a*a,即3*3=9。
步骤 3:计算表达式a-=a*a
将上一步的结果代入,得到a-=9。由于a的初始值为3,所以a-=9等价于a=a-9,即a=3-9=-6。
步骤 4:计算表达式a+=a-=a*a
根据步骤3的结果,a的值已经变为-6。现在计算a+=a-=a*a,即a+=-6。由于a的值为-6,所以a+=-6等价于a=a+(-6),即a=-6+(-6)=-12。
在C语言中,算术运算符的优先级从高到低依次为:乘法(*)、除法(/)、取模(%)、加法(+)、减法(-)。赋值运算符(=)的优先级较低。此外,赋值运算符是右结合的,即从右向左进行计算。
步骤 2:计算表达式a*a
根据题目中的语句int a=3;首先计算a*a,即3*3=9。
步骤 3:计算表达式a-=a*a
将上一步的结果代入,得到a-=9。由于a的初始值为3,所以a-=9等价于a=a-9,即a=3-9=-6。
步骤 4:计算表达式a+=a-=a*a
根据步骤3的结果,a的值已经变为-6。现在计算a+=a-=a*a,即a+=-6。由于a的值为-6,所以a+=-6等价于a=a+(-6),即a=-6+(-6)=-12。