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

如题所述

这题考察两点: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

朋友,请【采纳答案】,您的采纳是我答题的动力,如果没有明白,请追问。谢谢。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-06-21
输出的五行依次是
12
15
20
26
29
第2个回答  2016-06-21
有难度。。追问

可以解决吗?

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网