首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有以下面程序: #include<iostream> using namespace std; long fib(int n) { if (n>2) return(fib(n-1)+fib(n-2));
有以下面程序: #include<iostream> using namespace std; long fib(int n) { if (n>2) return(fib(n-1)+fib(n-2));
admin
2009-02-15
76
问题
有以下面程序:
#include<iostream>
using namespace std;
long fib(int n)
{
if (n>2)
return(fib(n-1)+fib(n-2));
else
return 2;
}
int main()
{
cout<<fib(3)<<end1;
rcturn 0;
}
则该程序的输出结果应该是【 】。
选项
答案
4
解析
本题主要考查C++中递归函数。递归函数即自调用函数,在函数体内部直接或间接的自己调用自己,即函数的嵌套调用是函数本身。递归调用分为直接递归调用和间接递归调用两种形式。本题程序为求解典型递归数列Fibonacci数列中任意项值的简化程序(主函数中的调用改成fib(n)即变成求解任意项值)。主函数通过调用fib()函数,fib()函数内部再通过一个分支结构判断是否进行递归调用或退出递归调用,调用方式为直接递归调用。主函数通过实参将值3赋给fib()函数的形参n,由于n=3满足if 分支语句条件,因此函数进行递归调用,即计算fib(2)和fib(1)的值;将2赋给fib()函数的形参后,由于n=2不满足if分之语句条件,因此程序退出递归,返回2;将1赋给fib()函数的形参后,函数同样返回2。因此函数递归调用的最终结果为返回2+2=4,即fib(3)=4,程序最后输出值为4。
转载请注明原文地址:https://kaotiyun.com/show/v7kp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
若变量已正确定义为int型,要通过语句scanf("%d,%d,%d",&a,&b,&c);给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是(u代表一个空格)()。
有以下程序#includeintm1(intx,inty){returnx
请编写函数fun,函数的功能是:将M行N列自二维数组中的数据,按行的顺序依次放到一维数组中一维数组中数据的个数存放在形参n所指的存储粤元中。例如,二维数组中的数据为:333333334444
关于算法,以下叙述中错误的是()。
表达式:(int)((double)9/2)-9%2的值是()。
下列工具中,小属于结构化分析的常用二L具的是()。
在软件设计中不使用的工具是()。
以下不能将S所指字符串正确复制到t所指存储空间的是
随机试题
直接汇入冠状窦的静脉:()
按份之债和连带之债只可能发生在()
大秦艽汤的主治不包含
A.《医疗废物管理条例》B.《中华人民共和国母婴保健法实施办法》C.《室内空气质量卫生规范》D.《中华人民共和国护士管理办法》E.《中华人民共和国职业病防治法》具有最低层次法律效力的是
小蓟饮子组成中含有归脾汤组成中含有
抽样把模拟信号变成了()上离散的脉冲信号,而再对脉冲的()进行离散化处理,这个过程称为量化。
下列关于协方差和相关系数的说法中,正确的有()。
针对特殊困难女性人口的妇女社会工作的内容包括()。
根据以下资料,回答下列问题。2010年平均每个参保人员享受的基本医疗保险次数约比2006年:
Theseoldbuildingsaregorgeous.
最新回复
(
0
)