NOIP 普及组初赛 · NOIP 2008 普及组初赛试题 第 11 题

选择题 · 答案 D · 考点:栈(stack)、递归函数

← 整套速查表 NOIP 普及组初赛 全部真题

题目

递归过程或函数调用时,处理参数和返回地址,通常使用一种称为( )的数据结构。

答案:D

考点

栈(stack) 讲解 →栈(stack) 真题汇总 →递归函数

解题思维

这题考的是函数调用机制。拿到题先想:递归一层层往下跳,系统怎么记路?答案就是靠‘后进先出’的结构——栈。每次调用压栈,返回弹栈,完美对应。

常见错误

很多同学一看到递归就只想到‘栈’,却容易把‘队列’、‘线性表’这些通用术语混进来。队列是先进先出,用来做任务调度或 BFS,跟函数调用顺序完全相反;线性表太笼统,不体现‘后进先出’的核心特征。还有同学会纠结于数组,其实栈在底层常用数组实现,但题目问的是‘数据结构’,不是‘实现方式’,所以选 D 最精准。

详细解析(节选)

这题考什么

题目问的是:递归过程或函数调用时,处理参数和返回地址,通常使用一种称为( )的数据结构。

正确答案是 D. 栈。

知识点:为什么是栈?

当程序调用一个函数(包括递归调用)时,系统需要记住:

这些信息必须被保存起来。当函数执行完毕返回时,这些信息又要被完整地恢复。这就需要一个后进先出(LIFO)的机制:最后压进去的,最先取出来。

栈正是这样的数据结构:

同考点真题

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