网站大量收购独家精品文档,联系QQ:2885784924

C语言程序设计 (8).ppt

  1. 1、本文档共88页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.1 函数 7.2 函数的定义 7.3 函数的参数和返回值 7.4 函数的调用 7.5 函数的嵌套与递归调用 7.6 数组与函数参数 7.7 指针与函数 7.8 变量的存储类别 7.9 模块化程序设计方法 补充:如何运行一个多文件的程序 ; 一个较大的程序一般应分为若干个程序模块,每一个模块 用来实现一个特定的功能.一个C程序可由一个主函数和若干 个函数构成。由主函数调用其他函数,其他函数也可以互相调 用。同一个函数可以被一个或多个函数调用任意多次。 下图是一个程序中函数调用的示意图:;main() /* 主函数 */ { print_star(); /*调用print_star函数画****/ print_message(); /*调用print _message函数写字*/ print_star(); /*调用print_star函数画****/ } print_star() /*定义print_star函数*/ { prinf(“\n**********”); } print_message() /*定义print_message函数*/ { prinf(“\n Hello! ”); };说明:;(5)从用户使用的角度看,函数有两种:;1、无参函数的定义形式;例如: int max(int x,int y) { int z; z=xy? x:y; return(z); };3、可以有“空函数”;4、对形参的声明的传统方式;1、形式参数和实际参数;例:调用函数时的数据传递;(1)在定义函数中指定的形参,在未出现函数调用时,它们并 不占内存中的存储单元。只有在发生函数调用时,函数 max中的形参才被分配内存单元。在调用结束后,形参所 占的内存单元也被释放。;(3)在被定义的函数中,必须指定形参的类型。;函数的返回值;; C语言规定,凡不加类型说明的函数,一律自动按整型处 理。在定义函数时对函数值说明的类型一般应该和return语句 中的表达式类型一致。;(3)如果函数值的类型和return语句中表达式的值不一致,则 以函数类型为准。对数值型数据,可以自动进行类型转 换。即函数类型决定返回值的类型。;1、函数调用的一般形式 ;2、函数调用的方式 ;(2)函数表达式;3、对被调用函数的声明和函数原型 ;例 对被调用的函数作声明;在函数声明中也可以不写形参名,而只写形参的类型。如: float add(float,float);;说明:;③ 如果已在所有函数定义之前,在函数的外部已做了函数声 明,则在各个主调函数中不必对所调用的函数再作声明。 例如:;例题:写出下列程序的输出结果 (1);(2);分析: 通过对上面两程序,理解两种参数传递方式的区别: ; C语言的函数定义都是互相平行、独立的,也就是说在 定义函数时,一个函数内不能包含另一个函数。 C语言不能嵌套定义函数,但可以嵌套调用函数,也就 是说,在调用一个函数的过程中,又调用另一个函数。;例 编一个程序计算下列函数值;;float p(long i) { long k,j; for(k=j=1;j=i;j++) k=k*j; return((float)(k)); } float s(long n) { float sum=0.0; long k; for(k=1;k=n;k++) sum=sum+p(k); return(sum); }; 上述程序中,函数f()通过函数s()调用了函数p(),主函数通 过函数f()调用函数s()都称为两层嵌套调用;主函数调用通过函 数f()、s()调用函数p()称为三层嵌套调用。 原则上说,C语言不限制嵌套调用的层数,嵌套调用层数仅 受计算机内存的限制。 ; 在调用一个函数的过程中又出现直接或间接调用该函数 本身,称为函数的递归调用。 ;如果有一条调用语句“k=p(4);”,用图示的方式描述其执行过程。; 我们把向下的递归调用过程称为“递归过程”,把向上的携带 返回值计算返回表达式的过程称为“回溯过程”。其中递归过程 的关键在于每次递归时,参数的值都要逐步趋向某个特定值(例 子中这个特定值是1)。当递归到参数值等于特定值时,递归过程 结束,

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档