AI智能推荐题库-试题通 AI智能整理导入题库-试题通
×
首页 题库中心 c语言选择判断题库 题目详情
CA4E3A01C46000013755684012D01E55
c语言选择判断题库
379
单选题

1、第237题 (1.0分) 题号:144 设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是()。

A
552
B
144
C
264
D
-264

答案解析

正确答案:D

解析:

这道题考察的是 C 语言(或类似语法的编程语言如 Java、C++)中**赋值运算符的结合性**以及**复合赋值运算**的执行顺序。 ### 1. 核心知识点 * **结合性**:赋值运算符(`=`、`+=`、`-=` 等)具有**右结合性**(Right-to-Left associativity)。这意味着表达式 `a += a -= a * a` 会被解析为 `a += (a -= (a * a))`。 * **副作用与求值顺序**:在同一个表达式中多次修改同一变量的值,且没有序列点(sequence point)分隔时,行为在某些标准(如旧版 C 标准)中可能是未定义的。但在大多数现代编译器实现及各类计算机二级/等级考试的标准答案逻辑中,通常遵循**从右向左**依次计算并更新变量值的逻辑。 ### 2. 逐步推导过程 初始状态:`a = 12` 表达式:`a += a -= a * a` 根据右结合性,等价于:`a += (a -= (a * a))` **第一步:计算最右边的 `a * a`** 此时 `a` 的值为 12。 $$12 \times 12 = 144$$ **第二步:执行 `a -= 144`** 这等价于 `a = a - 144`。 注意:此时参与运算的 `a` 仍然是初始值 12(因为在赋值发生前,右操作数已计算完毕,或者按照从右向左的顺序,先算出减法的结果再赋给 a)。 $$a = 12 - 144 = -132$$ **关键点**:执行完这一步后,变量 `a` 的值已经被更新为 **-132**。 **第三步:执行 `a += (-132)`** 这等价于 `a = a + (-132)`。 注意:此时左边的 `a` 取的是**当前最新值**,即上一步更新后的 **-132**。 $$a = -132 + (-132)$$ $$a = -264$$ ### 3. 结论 执行完语句后,`a` 的最终值为 **-264**。 因此,正确选项是 **D**。
题目纠错
c语言选择判断题库

扫码进入小程序
随时随地练习

关闭登录弹窗
专为自学备考人员打造
勾选图标
自助导入本地题库
勾选图标
多种刷题考试模式
勾选图标
本地离线答题搜题
勾选图标
扫码考试方便快捷
勾选图标
海量试题每日更新
波浪装饰图
欢迎登录试题通
可以使用以下方式扫码登陆
APP图标
使用APP登录
微信图标
使用微信登录
试题通小程序二维码
联系电话:
400-660-3606
试题通企业微信二维码