[数学]8第七章 函数1.ppt

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

函数 函数的嵌套调用 C语言的函数定义都是互相平行、独立的,也就是说,在定义函数时,一个函数内不能包含另一个函数。但C语言允许在一个函数的定义中出现对另一个函数的调用,这样就出现了函数的嵌套调用。即在被调函数中又调用其它函数。 例: #include stdio.h void sum(int); void fact(int); main() { int a=5; fact(a); sum(a+5); } void fact(int a) {int i; for(i=1;i=3;i++) a*=i; 递归函数 函数调用函数本身,称为函数的递归调用。递归调用形式如下: void a( ) {...… a ( ); ...… } 例 :用递归算法计算n! n!的递归定义形式的: 1 ( n=0); n!= n* (n-1)! (n0); 参考程序 #include stdio.h long fact(int); main() { int a; do { printf(“input an integer:”); scanf(“%d”,a); } while (a0); printf(“1*2*…*%d=%ld\n”a,fact(a)); } long fact(int n) { if (n0) return n*fact(n-1); else return 1; } 分析:当程序输入4时 y=fact(4) 4*fac(3)      3*fac(2)           2*fac(1)        1*fac(0)     1 递归函数fact()的执行过程及返回结果 必须注意: 程序中使用递归函数一定要有可以结束函数执行的终止条件,使得函数可以返回上一层调用的地方,否则容易造成无穷循环,最后因内存空间不足而停止。 递归函数计算次方 #include stdio.h int power(int,int); main() { int a=2,b=3; printf(“%d*%d=%d\n”,a,b,power(a,b)); } int power(int,int) { if (b==0) return 1; else return (a*power(a,b-1)); } 递归函数输出斐波纳契数列 #include stdio.h int fib(int); main() { int n; for (n=1;n=10;n++) printf(“%d”,fib(n)); } int fib(int) { if (n==1||n==2) return 1; else return (fib(n-1)+fib(n-2)); } 递归函数fib(4)的执行过程及返回结果 递归函数的特性 函数本身会一直调用自己,但是在程序中一定要有终止的条件让函数得以返回上一层调用。 内部变量与外部变量 C语言中所有的变量都有自己的作用域。变量说明的位置不同,其作用域也不同,据此将C语言中的变量分为内部变量和外部变量。 内部变量 在一个函数内部说明的变量是内部变量,它只在该函数范围内有效。 也就是说,只有在包含变量说明的函数内部,才能使用被说明的变量,在此函数之外就不能使用这些变量了。所以内部变量也称“局部变量”。 void f1( ) { int t=2; a *= t; b /= t; } main() { int a, b; printf(“ Enter a,b:”); scanf(“%d,%d”, a, b); f1( ); /* 调用函数f1( ) */ printf (“a=%d,b=%d”, a, b); } 1.主函数main()中定义的内部变量,也只能在主函数中使用,其它函数不能使用。同时,主函数中也不能使用其它函数中定义的内部变量。因为主函数也是一个函数,与其它函数是平行关系。 2.形参变量也是内部变量,属于被调用函数;实参变量,则是调用函数的内部变量。 3.允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。 4.在复合语句中也可

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档