GESP 四级 · GESP 202509 C++ 四级 第 23 题

判断题 · 答案 B

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

题目

对整数数组 $\{4, 1, 3, 1, 5, 2\}$ 进行冒泡排序(将最大元素放到最后),执行一轮之后是 $\{4, 1, 3, 1, 2, 5\}$。

答案:B

解题思维

答案B。选择排序每轮找最小值交换到前面。补全时要确保比较的是当前元素与当前最小值。

常见错误

选择排序每轮找到最小值下标后与当前位置交换。注意比较的是数组元素值而不是下标。

详细解析(节选)

【考点】冒泡排序|一轮冒泡|数组操作

🎯 考纲定位 本题位于 GESP 四级 C++ 算法模块,考查“冒泡排序”与“一轮冒泡”的精确执行逻辑。命题人特意构造含重复元素数组,卡住对“相邻交换”与“最大元素上浮”关系的理解——多数考生只记得“冒泡会把最大放最后”,却忽略每轮只比较相邻元素,容易误判排序过程。

🧠 解题思维 一轮冒泡需从头到尾依次比较相邻元素:4>1交换→{1,4,3,1,5,2};4>3交换→{1,3,4,1,5,2};4>1交换→{1,3,1,4,5,2};4<5不交换;5>2交换→{1,3,1,4,2,5}。最终为{1,3,1,4,2,5},与题干{4,1,3,1,2,5}不符,故错误。

🪤 陷阱拆解 命题人设下三重陷阱:一是利用“最大值已在末尾”的直觉,让人忽略前面元素的错位;二是混淆“一轮冒泡”与“排序完成”,误以为只需调整最大元素;三是未注意到重复元素 1 和 3 在排序过程中会被重新排列。若只记结论而不模拟过程,极易误选 A。

🔄 反命题思维 若将数组改为已排序{1,2,3,4,5,6},一轮冒泡后仍为原数组,答案变 A;若问“排序完成后的结果”,则需多轮冒泡;若问“交换次数”,一轮需交换 4 次。刷到此类题先自问“命题人想考我什么”,避免机械记忆。

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