C语言知识学习函数递归调用.ppt
《C语言知识学习函数递归调用.ppt》由会员分享,可在线阅读,更多相关《C语言知识学习函数递归调用.ppt(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第6章 函 数,函数的递归调用,函数的递归调用,在调用一个函数的过程中,出现直接或间接地调用该函数本身,称为函数的递归调用。,int f (int x) int z; if(x=0) return 1; if(x0) z=f (x-1); else if(x0) z=f (x+1); return (2*z); ,例1:函数的递归调用,#include void recur(int); int main (void) recur(1); return 0; void recur(int n) /递归函数 printf(第%d级调用n, n); /1 if (n 4) recur(n+1); /
2、递归 printf(第%d级返回n, n); /2 ,输出结果: 第1级调用 第2级调用 第3级调用 第4级调用 第4级返回 第3级返回 第2级返回 第1级返回,解析: 从结果可以看出,1和2相当于循环体,当符合测试条件(即n4)时,#1部分循环;当测试条件为false时,2部分循环。 在递归函数中,位于递归调用之前的语句(即1部分),按被调函数(即recur())的顺序执行;位于递归调用之后的语句(即2部分),按被调函数相反的顺序执行。 每级函数调用都有自己的变量,递归调用就相当于又从头开始执行函数的代码。 每次函数调用都会返回一次,并且按顺序逐级返回递归。,例2:函数的递归调用,#incl
3、ude int fun(int n) /定义函数 if(n=0|n=1) n=1; else n=n*fun(n-1); /递归调用函数 return n; int main() int i,j; printf(请输入一个数字:n); scanf(%d, ,例3:函数的递归调用,有3个人坐在一起,问第3个人多少岁?他说比第2个人大2岁。问第2个人多少岁?他说比第1个人大2岁。最后问第1个人,他说是10岁。请问第3个人多大? 分析: age(3)=age(2)+2; age(2)=age(1)+2; age(1)=10; 归纳: n=1 age(n)=10 n1 age(n)=age(n-1)+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 知识 学习 函数 递归 调用
限制150内