GESP 六级 · GESP 202403 C++ 六级 第 9 题

选择题 · 答案 D · 考点:数据结构

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

题目

给定一个空栈,执行以下操作序列:

操作序列:push(1),push(2),push(3),pop(),pop(),push(4),push(5),pop()

最终栈中的元素是( )。

答案:D

考点

数据结构

解题思维

排列组合问题:先判断是否考虑顺序(排列P vs 组合C),再确定是否允许重复。乘法原理分步,加法原理分类。

常见错误

区分排列(考虑顺序,$P(n,m)$)和组合(不考虑顺序,$C(n,m)$)。注意特殊元素优先处理、正难则反等计数技巧。

详细解析(节选)

【考点】栈(Stack)|LIFO原则|数据结构模拟

🎯 考纲定位 本题考查【GESP C++ 六级】数据结构模块的栈(Stack)特性。命题人专攻"栈操作顺序"这一基础概念,卡住大量考生对LIFO(后进先出)原则的模糊认知——他们往往凭直觉判断"最后push的元素"一定在栈顶,却忽略了pop操作会改变栈顶元素。

🧠 解题思维 先模拟:push(1,2,3)后栈为[1,2,3],两次pop弹出3和2,栈剩[1];再push(4,5)得[1,4,5],最后pop弹出5,栈为[1,4]。核心观察点是"pop操作总是移除栈顶元素",所以最终栈顶必然是最后一次push的元素被移除前的状态。

🪤 陷阱拆解 A项(1,2)是忘了push(4,5)的"漏操作"陷阱,B项(1,4,5)是忘了最后pop的"少一步"陷阱,C项(1,2,5)是混淆push与pop顺序的"栈顶误判"陷阱——以为pop会移除push(4)而非push(5)。

🔄 反命题思维 若把最后pop换成push(6),答案变[1,4,6];若把push(4)换成pop(),栈空——这类变形题常考。刷到栈题,先问自己"如果多一个pop

同考点真题

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