第九题 答案为什么是c

 我来答
cdyzxy
2016-05-03 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:84%
帮助的人:3242万
展开全部
fun(7); [x=7]
x==0或x==1不成立,不执行return(3); 执行else p=x-fun(x-2); [p=7-fun(5)]
fun(5) [x=5]
x==0或x==1不成立,不执行return(3); 执行else p=x-fun(x-2); [p=5-fun(3)]
fun(3) [x=3]
x==0或x==1不成立,不执行return(3); 执行else p=x-fun(x-2); [p=3-fun(1)]
fun(1) [x=1]
x==0或x==1成立,执行return(3); 返回值3
继续计算p=3-fun(1)=3-3=0,return p;返回值0
继续计算p=5-fun(3)=5-0=5,return p;返回值5
继续计算p=7-fun(5)=7-5=2,return p;返回值2
所以主程序中输出:2
关键点:递归调用时,函数变量每调用一次均是新开设的变量,与上层调用的同名变量不是一个,没有关系,也不会传导原来的值,可以理解第1次调用的变量x叫x1,第二次用x2,...以此类推,避免混淆计算。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式