GESP 四级 · GESP 202312 C++ 四级 第 22 题

判断题 · 答案 A

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

题目

在 C++ 中,两个字符串相加的运算符为 + 相当于字符串的合并运算。下面 C++ 代码执行后,将输出 chenadai 。( )

string a="chen";
string b="a";
string c="dai";
string name=a+b+c;
cout<<name<<endl;
答案:A

解题思维

这题其实就在考 C++ 里 string 类型用 + 号是干嘛的。别被数学加法带偏,直接看变量名 a、b、c 都是 string,那 + 就是拼接。把三块拼起来读一遍,'chen'+'a'+'dai',结果自然就是'chenadai',答案选 A。

常见错误

很多同学看到 + 号第一反应是算术加法,觉得两个字符串怎么相加?或者担心有隐式转换、报错之类的。其实 C++ 标准库早就重载了 string 的 + 运算符,专门用来做字符串合并。只要确认操作数是 string 类型,就能放心大胆地用 + 连接。这道题的坑就在于命题人故意用绝对化的语气让你怀疑,如果你只背结论不理解运算符重载的本质,很容易选错。

详细解析(节选)

考点与命题视角

这道题属于 GESP 四级《字符串处理》模块,核心考查的是C++ 运算符重载这一基础语法概念。命题人之所以出这道题,是因为在编程入门阶段,学生最容易产生的认知冲突就是:看到 + 号,大脑本能地调用“数学加法”的经验;而 C++ 中 string 类型的 + 被重载为“字符串拼接”。命题人就是想通过这种“看似简单实则概念陷阱”的方式,检验你是否真正理解了运算符重载的机制,而不是死记硬背代码。

概念人话版:字符串加法是什么?

在 C++ 中,std::string 是一个类类型。当你对两个 string 对象使用 + 运算符时,编译器会调用该类定义的 operator+ 函数。这个函数的作用非常直观:它把左边字符串的内容和右边字符串的内容挨个字符拼在一起,生成一个新的 string 对象。

比如: "hello" + "world" 等价于调用 std::string("hello").append("world") 并返回新字符串。

所以,a + b + c 实际上是从左到右依次执行:先算 a + b 得到一个中间字符串,再把这个中间字符串和 c 拼起来。

题目逐行推演

代码很简单,我们按顺序看变量变化:

1. string a = "chen"; 此时内存里 a 指向一个包含字符 c, h, e, n 的字符串对象。

2. string b = "a"; b 指向单个字符 a。

3. string c = "dai"; c 指向 d, a, i。

4. string name = a + b + c; 这里发生了两次拼接运算: - 第一步:a + b "chen" 和 "a" 拼起来,结果是 "chena"。 - 第二步:("chena") + c "chena" 和 "dai" 拼起来,结果是 "chenadai"。 最终 name 就是一个包含 c, h, e, n, a, d, a, i 的字符串。

5. cout << name << endl; 输出 name 的内容,就是 chenadai。

所以,题目说“将输出 chenadai”,这个陈述是完全正确的。

易错点与避坑指南

这道题的陷阱主要在于心理预期和对运算符的刻板印象:

避坑心法:拿到这类题,先问自己“操作数是什么类型?”,确认是 string 后,直接联想到“拼接”,然后按顺序模拟一下拼接过程。不要纠结于“字符串怎么相加”,因为 C++ 已经帮你定义好了。

考频与趋势分析

从题库数据来看,基础语法(含运算符重载)是历年考试的高频考点,共考过 1295 题,覆盖 11 个级别。逐年分布显示:2023 年 287 题、2024 年 413 题、2025 年 401 题、2026 年 109 题,说明近年来对基础语法的考查力度持续加大。在 GESP 四级中,这类基础语法题占比约为 186 题(四级总题量约 186 题,基础语法是其中重要组成部分)。

控制结构和循环结构虽然题量更大,但本题并不涉及,属于干扰项。

未来预测

基于上述数据趋势,可以合理预测:

暂无足够依据预测具体某一年会出什么新题型,但“字符串拼接”这一核心概念的重要性不会减弱。

总结

这道题的答案是 A. 正确。解题的关键在于: 1. 识别出 a, b, c 都是 string 类型; 2. 理解 C++ 中 + 对 string 是拼接运算符; 3. 按顺序模拟拼接过程:"chen" + "a" = "chena","chena" + "dai" = "chenadai"; 4. 输出结果即为 chenadai,与题目描述一致。

记住:遇到字符串用 +,放心拼接,别被数学加法带偏。

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