5-4函数的嵌套调用及递归调用讲解.pptx

5-4函数的嵌套调用及递归调用讲解.pptx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

;C语言的函数定义都是相互平行的、独立的,即在定义函数时,一个函数内部不能包含另一个函数。但是,C语言允许函数的嵌套调用,即一个函数调用了另一个函数,被调用函数在执行过程中又调用了另外一个函数。

如下图嵌套调用执行过程是:

①执行main函数的开头部分

②遇函数调用a的操作语句,流程转去a函数

③执行a函数的开头部分

④遇调用b函数的操作语句,流程转去函数b

⑤执行b函数的操作语句,如果再无其他嵌套函数,则完成b函数的全部操作

⑥返回调用b函数处,即返回a函数

⑦继续执行a函数中尚未执行的部分,直到a函数结束

⑧返回main函数中调用a函数处

⑨继续执行main函数的剩余部分,直到结束。;例1输入两个整数,使用函数嵌套实现求平方和程序。

#includestdio.h

intfun1(intx,inty)

{intfun2(intm);

return(fun2(x)+fun2(y));

}

intfun2(intm)

{return(m*m);

}

intfun(intx,inty);

voidmain(void)

{inta,b;

scanf(%d%d,a,b);

printf(Theresultis:%d\n,fun1(a,b));

};递归;函数的递归调用:

直接递归调用指函数直接调用自己;

间接递归调用调用另外一个函数的过程中出现

调用该函数自身。;使用递归调用解决问题的方法:

;递归调用过程(两个阶段)

1、递推阶段。

2、回归阶段。

;例1用递归法求n!

;例21!+2!+3!+……+n!求和用C语言编写,要求使用函数嵌套调用。

#includestdio.h

longfunc(intn)

{if(n==1||n==0)

return1;

else

returnn*func(n-1);

}

intmain()

{inti,n;

longsum;

scanf(%d,n);

sum=0;

for(i=1;i=n;i++)

sum+=func(i);

printf(sum=%ld\n,sum);

return0;

};课堂思考:;

文档评论(0)

一笑倾洁 + 关注
实名认证
内容提供者

PPT课件

1亿VIP精品文档

相关文档