计算机软件基础(自考本科函数).pptVIP

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
float f82(float x[ ],int n) {float s=0.0; int i; for(i=0;i=n;i++) s=s+x[i]; s=s/(n+1); return s; } main() /*程序由此开始*/ { float a[N],ave; int i; for(i=0;i=N;i++) scanf(%f,a[i]); max=min=a[0]; f81(a,N); ave=f82(a,N); printf(max=%f,min=%f,ave=%f\n,max,min,ave); } 四、函数的调用 例4-12 int x=3 ,y=8; /*定义x,y为全局变量*/ f9 (int x,int y) /*形参x、y为局部变量,仅在f9函数中有效*/ { int m; m=x+y; /*m、x、y有效范围*/ return(m); } main() {int y=10; /*局部变量y仅在主函数中有效*/ printf(%d\n,f9(x,y)); /*全局变量x=3仅在主函数中有效*/ } 无分号 六、用static声明的局部变量 auto register static 类 型 自动型 寄存器型 静态型 存储区 内存的堆栈区 CPU的寄存器区 内存的数据区 特 点 在调用函数时,分配一个临时的存储空间,而且调用结束时将所分配的临时存储空间收回;如果不赋初值,则其中是一个不确定的值。 访问效率高; 调用函数结束时,所占用的寄存器被回收。 函数调用结束时,所占用的存储区不会被回收,即变量的值不会因为函数调用结束而消失。 四、函数的调用 例4-13计算并输出1~4的阶乘 main() {int i; for(i=1;i=4;i++) printf(%1d!=%d\n,i,fl0(i)); } int fl0(int n) {static int f=1; f=f*n; return(f); } 四、函数的调用 例4-14 main() {int k=4,m=1,p; p=f11(k,m); printf(%d,,p); p=f11(k,m); printf(%d,p); } f11(a,b) int a,b; { static int m,i=2; i*=m+2; m=i+a+b; return(m); } 七、函数的递归调用 程序设计中常常要用到递归的方法,递归过程结构清晰,思路明了,程序易读。 如果在一个函数的定义中又引用了自身,那么这个函数称为是递归定义的。 例如自然数的集合可递归定义为: 1)1是自然数。 2)一个自然数的后继仍为一个自然数。 又比如n!的递归定义为: 七、函数的递归调用 例4-15采用归递方法,编程将一个正整数逆序输出。例如,若输入1234,则输出4321。 void f12 (int n) {if(n10) printf(%1d,n); /*余下1位数输出,函数执行完毕*/ else {printf(%ld,n%10); /*输出右边的数*/ f12(n/10);} /*去掉右边数后余下的数,直接调用本函数fl2*/ } /*返回*/ main( ) /*主程序开始*/ {int n; scanf(%d,n); /*输入整数*/ f12(n); /*调用f12函数*/ } 七、函数的递归调用 例4-16编写求n!的递归程序。 七、函数的递归调用 float f13(int n) { if(n==0||n==1) return(1.0); else return(n*f13(n-1)); } main( ) {int n; float w; scanf (%d,n); w=f13(n); printf(%d!=%f\n,n,w); } 七、函数的递归调用 例4-17用梯形法计算 七、函数的递归调用 七、函数的递归调用 例4-17用梯形法计算 float f14(float x) { float y; y=2.0*x*x+3.0*x+1.0; return(y); } main() {float a,b,h,w,s=0.0,y1,y2; int i,n;

文档评论(0)

celkhn0303 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档