计算机二级第4章函数课件.ppt

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

4.1 概述 例8:斐波那契数列:1,1,2,3,5,8,13,21,…… /*兔子繁殖问题或称为斐波那契数列*/ #includestdio.h main() { int n,k=3,a1=1,a2=1,h=0; /*h为第n月兔子总对数*/ printf(请输入月份:); scanf(%d,n); printf(\n第%d月有%d对兔子,1,1); printf(\n第%d月有%d对兔子,2,1); while(k=n) { h=a1+a2; printf(\n第%d月有%d对兔子,k,h); a1=a2; a2=h; k++; } } 例9:求两个整数a,b的最大公约数 C语言中的变量: 1、数据类型 2、作用域 由变量定义的位置决定 局部变量和全局变量 3、生命期 由变量在内存中的储存方式决定 静态存储类和动态存储类 在函数体(或复合语句)内部,用以下定义格式定义的变 量称为静态局部变量: static 数据类型 变量表; 例如:static int a=8; 静态局部变量的初始化只在编译时进行一次,每次调 用它们所在的函数时,不再重新赋初值,只是保留上次调 用结束时的值。若定义但不初始化,则自动赋以“0”(数 值型)或\0(字符型)。 结束 改写例 5 # include stdio.h float add(float x,float y) /*函数首部*/ { float z; /* 函数体 */ z=x+y; return(z); } void main() { float a,b,c; scanf("%f,%f",&a,&b); c=add(a,b); printf("sum is %f \n",c); } 由于:函数add写在主函数之前,可以在主函数中省略对add函数的声明 4.4 函数的嵌套调用 1、 被调函数在调用过程中,调用其他函数称为函 数的嵌套调用。 2、 函数可以嵌套调用,不允许嵌套定义。 一个函数不能定义在其他函数的内部,函数之间是互相独立的,是平行的 函数的外部性 嵌套调用函数执行情况如图所示 main函数 { …… …… 调用函数 A; …… } 函数 A { …… …… 调用函数B; …… } 函数 B { …… …… …… } 例6:计算s的值 #includestdio.h long int f1(int n, int k) 计算n的k次方 {long int power=1; int i; for(i=1;i=k;i++) power=power*n; return power;} long int f2(int n, int k) 计算累加和 {long int sum=0; int i; for(i=1;i=n;i++) sum+=f1(i,k); return sum;} main( ) {scanf(“%d,%d”,n,k); printf(“%d\n”,f2(n,k)); } 当输入:4,2 运行结果: 30 4.5 函数的递归调用 在调用一个函数的过程中又出现直接或间 接地调用该函数本身,称为函数的递归调 用。例如: 例7:用递归方法求n! 求n!也可以用递归方法,即5!等于4!×5,而4!=3!×4…1!=1。可用下面的递归公式表示: n!=1 (n=0,1) n·(n-1)! (n>1) (1)递推: 从一个已知的事实出发,按一定的规律推出下一个事 实。用同一个变量存放推出的结果,给同一个变量赋新的值 n!=1*2*3*…*(n-2)*(n-1)*n i 1 2 3 … n 初值: n=1 m m=m*i m=1 程序段为: m=1;

文档评论(0)

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

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

1亿VIP精品文档

相关文档