永发信息网

有以下C语言程序,程序的输出结果是什么?请写出详细的执行过程。

答案:3  悬赏:0  手机版
解决时间 2021-03-12 16:21
有以下C语言程序
#include
long fib(int n)
{ if(n>2) return(fib(n-1)+fib(n-2);
else return(2);
}
main()
{ printf("%ld\n",fib(6));
}
程序的输出结果是什么?请写出程序的执行过程。
最佳答案
你的程序写错了,return(fib(n-1)+fib(n-2)忘记了一个),改为return(fib(n-1)+fib(n-2)),程序就没错误了。
程序的运行结果为:16
代码解释如下:
fib()函数是个递归函数,实现如下功能:当参数n>2时,将n赋值为n-1,和n-2返回,直到n<=2停止,像主函数里面的fib(6),先返回fib(5)+fib(4);然后继续执行fib()函数,fib(4)+fib(3)+fib(3)+2;然后继续执行fib()函数返回【fib(3)+2】+【2+2】+【2+2】+2,然后继续执行fib()函数返回:{【2+2】+2}+【2+2】+【2+2】+2,然后结束将结果输出。
全部回答

sub(x)为宏定义:(x)-(x) 调用时(x)-(x)直接替换sub(x)

计算过程是:

a=4 b=6 c=7

d=sub(a+b)*c = (a+b)-(a+b)*c = (4+6)-(4+6)*7=-60

最后输出结果为:

d=-60 (换行)

^_______^

fib(6)=fib(5)+fib(4)=fib(4)+fib(3)+fib(3)+fib(2)=fib(3)+fib(2)+2*(fib(2)+fib(1))+2=fib(2)+fib(1)+2+2*(2+2)+2=2+2+2+8+2=16
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
郑州好玩的地方有哪些?最好是适合这个季节出
为什么话说多了或干活干累了 说话的声音就很
《OUROBOROS》(轮环) 单机游戏为何18岁以下不
大雄宝殿在哪里啊,我有事要去这个地方
忆当年酒北流旗舰店怎么去啊,有知道地址的么
洛阳到新乡多少公里
济南市中区 二环南路附近哪有 价格合适有放心
我母亲车祸左肱骨近端骨折轻伤能索赔多少钱
蕲春兄弟钢材物流批发地址在什么地方,想过去
如图所示,一物体恰能在一个斜面体上沿斜面匀
关于花的诗词谜语
天信宾馆地址在什么地方,想过去办事
南京信息工程大学的应用气象学怎么样
求一首歌,男生唱的好像有句什么我期待的爱情
渝香苑川菜馆地址在哪,我要去那里办事
推荐资讯
怎么能考上长安大学地质工程专业研究生
翔鹰武校禅武堂怎么去啊,有知道地址的么
女性怎样驱体内的寒气?
这个问题请开示?
广州市越秀区国税局第十一税务分局在什么地方
安徽师范大学怎么样?
share sth to sb 还是 share sth with sb
Themurdererwasbroughtin,withhishand
国外机票如何报销
卤花生能吃多吗?拜托各位了 3Q
重庆市丰都县房价
失恋了好委屈和爸妈说合适吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?