GESP 三级 · GESP 202409 C++ 三级 第 20 题

判断题 · 答案 B

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

题目

下列程序输出的是 A。( )

char x=65;
x++;
cout<<x++<<endl;
答案:B

解题思维

答案B。数组和位运算的代码追踪要特别小心:数组下标从0开始,位运算结果可能不直观。建议画图辅助。

常见错误

位运算追踪时建议把数字写成二进制形式再逐位计算。

详细解析(节选)

【考点】自增运算符|ASCII码|输出流

🎯 考纲定位:考查 C++ 基础运算与字符类型理解。命题人卡住的是考生对后置自增 x++ 与输出流求值顺序的混淆,这是 C 系语言最经典的"陷阱题"。

🧠 解题思维:解题链:x=65('A')→x++ 后x=66('B')→cout<<x++ 先输出当前x('B')再自增。通法:后置 x++ 在表达式中取其原值,副作用是变量自增;前置 ++x 先自增再取新值。

🪤 陷阱拆解:选项A错误源于两误区:1) 误以为cout<<x++会先自增再输出(实为先输后增);2) 忽略x是char,65对应'A'而非'65'。命题人特意用++而非+=,利用考生对运算符优先级与结合性的模糊记忆。

🔄 反命题思维:若问最终x值,答案为'C';若将x++换成++x,输出即为'C'。刷到此类题先问:后置自增的求值时机是在输出表达式中还是输出之后?——这能瞬间判断你是否真正理解运算符语义。

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