递归函数最终会结束,那么这个函数一定(不定项选择)

匆匆过客 提交于 2020-01-23 03:50:33

递归函数最终会结束,那么这个函数一定(不定项选择):
1. 使用了局部变量
2. 有一个分支不调用自身
3. 使用了全局变量或者使用了一个或多个参数

1显然不是,局部变量只在一次调用局部范围有效,出了这次调用的范围就无效了,它不能控制递归的结束。(这个选项是考查局部变量生命周期/有效范围的问题)需要注意的就是局部变量不是局部静态变量。

对于2,很自然了,如果没有一个分支不调用自身,递归就不会结束了。(这是在考查递归的定义:编程语言中,函数Func(Type a,……)直接或间接调用函数本身,则该函数称为递归函数。递归函数不能定义为内联函数。必定存在可使递归调用终止的条件,否则导致出现无限递归。)

对于3,这是最有迷惑性的,因为使用全局变量或使用一个或多个参数的确可以控制递归的结束,但是不是只有这两种方式呢?所以题目中指出了"一定"。答案是并不是只有这两种方式。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!