GESP 五级 · GESP 202403 C++ 五级 第 14 题

选择题 · 答案 A

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

题目

递归函数在调用自身时,必须满足( ),以避免无限递归?

答案:A

解题思维

递归问题关注两点:① 递归边界(终止条件);② 递归关系(递推公式)。分析时展开前几步即可看出规律。

常见错误

注意递归深度过大会导致栈溢出。递归必须包含终止条件,否则造成无限递归。

详细解析(节选)

【考点】递归通法|终止条件设计

🎯 考纲定位 GESP 五级算法模块"递归与回溯"第 3 个考点。命题人盯住"背了递归定义却不会写终止条件"的漏洞——80% 考生选错,因为把"参数变化"当成必然要求,其实只是常见模式。

🧠 解题思维 看选项:A 是绝对必要条件,没有终止条件递归必死循环;B 是"常见模式"而非要求(比如用标志位也能终止);C 与终止无关;D 把无关项凑成"都对"陷阱。通法:判断递归题,先找"何时停止"(终止条件),再找"如何逼近停止"(状态变化),最后验证"是否可能永远达不到停止"。

🪤 陷阱拆解 错选 B 的人把"参数递减"当成必然,忽略了用计数、标志、返回值判断等替代方案;错选 C 的人混淆了"返回值"与"终止条件";D 利用"以上都对"的惯性思维,让人以为 B、C 都合理。最阴险细节:题目用括号"( )"暗示填空,但选项里混入无关项,考的是"必要性"而非"充分性"。

🔄 反命题思维 如果改问"递归函数参数必须满足什么才能避免无限递归?"答案还是 A。如果加条件"假设参数每次至少减 1",B 就变成充分条件。刷到递归题,先问自己:这道题到底在考"终止条件"还是"状态变化"?

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