《C语言程序设计》第6篇 函数.ppt

  1. 1、本文档共91页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 函 数 ——结构化程序设计基础 6.1函数的概念 函数的分类及调用过程 6.2 函数的定义和调用 函数定义的目的 ⒉函数的定义 ⒊函数的调用 ⑵调用过程 关于返回值的几点说明: 举例:通过函数求 xn 。 专题:函数间的数据传递 函数间数据传递方式 ⑴传值方式 ⑵传地址方式 函数的原型声明 函数的原型声明的说明 6.3 变量的作用域与生存期 变量的四种存储类型 ⒈auto存储类型(局部变量) ⒊局部static(静态)存储类型 ⒋外部变量(extern存储类型、全局变量) 关于全局变量的几点说明: 关于全局变量的几点说明: 全局变量应用举例:用函数交换两个全局变量的值。 全局变量的副作用 全局变量传递参数 6.4 数组与函数参数 举例:通过函数求数组元素的平均值。 举例:通过函数将字符串中的大写字母转换为小写字母。 6.5 返回指针的函数 例:通过返回最大值的地址求最大值 例:通过函数在某字符串中搜索一个特定的字符第一次出现的地址,在主函数调用并输出结果。 续例: 6.6 指向函数的指针 举例:求a、b的最大值。 举例:通过参数传递,求a、b之和、之差。 6.7 递归函数 递归举例:求n!。 例:通过递归求斐波那契数列 续例: 6.8 主函数参数 举例:回显命令行参数。 6.9 编译预处理 说明: ⑵带参数的宏定义 ⒉文件包含 文件包含举例:求半径为r的园面积、园周长。 ⒊条件编译 举例:通过条件编译选择求最大值或最小值 6.10 模块化程序设计方法 模块分解的重要原则 分解后的每个模块应含有以下几个主要的属性 /* 函数名:GenFun */ /* 功 能:通过参数传递函数的入口地址,实现多个函数调用 */ /* 参 数:p指向函数的指针,x,y浮点型 */ float GenFun(float (*p)(float ,float) ,float x,float y) { float z; z = (*p)(x,y); /* 调用p指向的函数 */ return z; } float GetAdd(float x,float y) /* 两个浮点数求和函数 */ { return (x + y); } float GetSub(float x,float y) /* 两个浮点数求差函数 */ { return (x – y); } float GetMul(float x,float y) /* 两个浮点数求积函数 */ { return (x * y); } float GetDiv(float x,float y) /* 两个浮点数求商函数 */ { return (x / y); } 概念:函数直接或间接地自我调用称为递归函数。 int fun1(int x) { … z=fun1(y); … } int fun1(int x) int fun2(int t) { { … … z=fun2(y); c=fun1(a); … … } } 直接引用自身。 间接引用自身。 递归在没有控制条件的情况下是无穷的递归。 void main(void) { printf(“*****\n”); main(); } 只有通过控制条件,使递归调用终止,才具有应用价值 。 void main(void) { printf(“*****\n”); ch=getchar(); if(ch!=‘9’)main(); } n!= 1 n=0或n=1 n(n-1)! n1 f(n)= 1 n=0或n=1 nf(n-1) n1 #include stdio.h long lfac(long); void main(void) {long i,x; scanf(“%ld”,i); x=lfac(i); printf(“\n%ld”,x); } long lfac(long n) { if (n==0||n==1) return 1; else return(n*lfac(n-1)); } lfac

文档评论(0)

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

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

1亿VIP精品文档

相关文档