单选题
Fibnacci数列的定义为:F0=0,F1=1,Fn=Fn-1+Fn-2(n≥2,n∈N*),要计算该数列的任意项Fn,既可以采用递归方式编程也可以采用循环语句编程,由于( ),所以需要较多的运行时间。
A递归代码经编译后形成较长目标代码
B递归代码执行时多次复制同一段目标代码
C递归代码执行时需要进行一系列的函数调用及返回且存在重复计算
D递归代码执行过程中重复存取相同的数据
正确答案
答案解析
本题考查程序语言基础知识。 分析递归代码执行过程可知,由于调用函数时系统需要在栈区开辟支持函数运行时需要的空间(大多数局部变量的存储单元即分配在此空间中),同时还需造成控制流的转移、返回位置的记录和恢复等工作,同时在该例子中存在着重复计算,例如计算只时要通过递归调用分别计算F3和F2,而在计算F3时,则要通过递归调用分别计算F2和F1,其中F2的计算会重复,因此递归代码执行时需要进行一系列的函数调用及返回且存在重复计算都是比较耗时的。