GESP 二级 · GESP 202303 C++ 二级 第 9 题

选择题 · 答案 B

← 整套速查表 GESP 二级 全部真题

题目

如果 a 为 char 类型的变量,且 a 的值为 '2',则下列哪条语句执行后,a 的值不会变为 '3'?

答案:B

解题思维

这题考变量赋值和表达式语句的区别。拿到题先别急着算,把每个选项按行读一遍,核心就盯住有没有等号或者自增运算符,只有真正把结果存回变量的操作,a 才会变。

常见错误

学生最容易犯的错就是把 a + 1 当成赋值,以为执行了就能改值;或者看到自增就以为它和 a + 1 一样只是算不算,分不清前缀自增会回赋。还有个坑是选项 C,有人会觉得 1 + a 和 a + 1 不一样,其实 char 类型下它们完全等价,都会让 a 变成 3,别被加法顺序绕进去。

详细解析(节选)

【考点】变量赋值与表达式语句的区别、char 类型运算、自增运算符语义

这题是 GESP 二级很典型的“语法陷阱”题。命题人就是想卡住那些“看到运算符就以为会运算”的同学,把 a 的值从 '2' 变成 '3' 的关键,不在于你有没有用 + 号,而在于有没有把运算结果存回去。C++ 里,只有赋值语句(含 = 或自增/自减)才会改变变量值,纯表达式就算出结果也是扔进垃圾桶,变量原封不动。

咱们逐项看:

所以只有 B 不会改 a 的值。

命题人挖坑的点很明确: 1. 利用“表达式会计算”的错觉,让学生误以为 a + 1 也能改值; 2. 用自增运算符 D 来测试你是否真正理解“改值”的机制,而不是死记“有 + 就变”; 3. 用 C 选项的加法顺序来试探你是否知道 char 类型下加法交换律成立,避免你只盯着“a + 1”这个形式。

避坑指南:以后看到类似题,先问自己“这条语句有没有把结果存回变量?”如果没有等号又没有自增/自减,那变量绝对不变。别被运算符迷惑,也别纠结加法顺序,抓住“赋值”这个核心就稳了。

考频与趋势:从题库数据看,基础语法模块在 GESP 二级里非常高频,2023 年考了 287 题,2024 年冲到 413 题,2025 年 401 题,2026 年 109 题,说明这类“变量与表达式”的辨析是二级必考的重灾区。变量与常量专题在二级也占 15 题,基本数据类型专题二级考了 48 题,三者叠加,这类题未来大概率会继续以单选题形式出现,偶尔会结合输入输出或数组下标做变式,但核心还是“有没有赋值”。暂无足够依据预测具体年份分布,但趋势是稳中有升,提醒同学务必把赋值语句和表达式语句的区分练熟。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断