求第七题解答方法,c++ 问题是程序输出的第一,二,三行分别是?

 我来答
百度网友bb29ad2
2016-06-21 · TA获得超过2271个赞
知道小有建树答主
回答量:890
采纳率:33%
帮助的人:222万
展开全部
这题考察两点:1是全局变量和局部变量,2是递归调用
主函数第一个f(6)调用过程:
第一层递归调用时,传进来的a=6,所以 全局::a=0+6=6,局部a先递减为5,
经过if判断进了else 然后就调用f(a-1) ;
第二层递归调用时,传进来的a=4, 全局::a=6+4=10,局部a先递减为3,
经过if判断进了else 然后就调用f(a-1) ;
第三层递归调用时,传进来的a=2, 全局::a=10+2=12,局部a先递减为1,
经过if判断满足条件,输出全局::a即12;
然后返回第二层递归执行 ::a+=a;此时第二层的a=3,所以:a=12+3=15,
输出全局::a即15;
然后返回第一层递归执行 ::a+=a;此时第二层的a=5,所以:a=15+5=20,
输出全局::a即20;
所以第一个f(6)调用输出了3次::a,分别为12,15,20
类似可推出f(4)调用输出了2次::a 分别为26,29
故此程序输出结果为:
第一行 12
第二行 15
第三行 20
第四行 26
第五行 29

朋友,请【采纳答案】,您的采纳是我答题的动力,如果没有明白,请追问。谢谢。
wenqing8585
2016-06-21 · TA获得超过8253个赞
知道大有可为答主
回答量:8078
采纳率:70%
帮助的人:3883万
展开全部
输出的五行依次是
12
15
20
26
29
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
速度之王66
2016-06-21 · TA获得超过4654个赞
知道大有可为答主
回答量:6708
采纳率:33%
帮助的人:1426万
展开全部
有难度。。
追问
可以解决吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式