首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有以下面程序: #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
52
问题
有以下面程序:
#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全国计算机二级
相关试题推荐
若有函数声明voidfun(floatarray[],int*ptr);以下叙述正确的是
下列关于C语言数据文件的叙述中正确的是()。
若有定义:floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是()。
给定程序中已建立一个带有头结点的单向链表,链表中的各结点按数据域递增有序链接。函数fun的功能是:删除链表中数据域值相同的结点,使之只保留一个。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件
函数fun的功能是:逆置数组元素中的值。例如:若a所指数组中的数据依次为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数据的个数。请在程序的下划线处填入正确的内容并把下划线删除,使程序得
程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数fun(inta[][N],intn),该函数的功能是:使数组左下半三角元素中的值乘以n。例如,若n的值为3,a数组中的值为:则返回主程序后a数组中的值应为:注意:部分源程序给出如下。
下列特征中不是面向对象方法的主要特征的是()。
交换两个变量的值,不允许用临时变量,应该使用下列()位运算符。
交换两个变量的值,不允许用临时变量,应该使用下列()位运算符。
下列关于逻辑运算符两侧运算对象的叙述中正确的是()。
随机试题
以下关于法定继承的说法,错误的是()。
栝蒌桂枝汤中栝蒌指()
A.肾上腺素B.α-巨球蛋白C.尿激酶D.5-羟色胺E.钙可抑制纤溶酶的物质是
某市调查学生患牙龈炎情况,已知以前调查结果患病率为50%,要求抽样误差为10%,需要调查的人数为
重力和黏滞力分别属于()。
三相鼠笼式异步电动机在空载和满载两种情况下启动电流的关系是( )。
在选择路堤填料时,严禁作为填料的土有()。
持票人甲将汇票遗忘在出租车上,随即通知付款银行暂时停止支付该汇票金额的行为是票据保全措施。()
某企业2011年度有关工资和福利费资料如下:本期用银行存款支付离退休人员工资500000元。假定应付职工薪酬本期减少额均以银行存款支付,应付职工薪酬期初和本期期末均为贷方余额。假定应付职工薪酬年初余额、本期分配或计提金额和期末余额中均不包含离退休人员工
计算机软件可分为(1)两大类。
最新回复
(
0
)