第4章函数与程序结构

第4章函数与程序结构

ID:44958065

大小:1004.00 KB

页数:81页

时间:2019-11-06

第4章函数与程序结构_第1页
第4章函数与程序结构_第2页
第4章函数与程序结构_第3页
第4章函数与程序结构_第4页
第4章函数与程序结构_第5页
资源描述:

《第4章函数与程序结构》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、函数与程序结构第四章函数与程序结构函数的定义、说明与调用函数之间参数传递规则变量的存储类型与特性函数递归的概念与执行过程递归程序的编程方法本章要点2§4-1函数的定义、说明、调用与返回模块化是结构化程序设计的基础。采用模块化程序设计有很多优越性:控制程序设计的复杂性,提高软件的可靠性,提高软件开发的效率,提高软件的可维护性,提高程序的重用性。一、程序的模块化3§4-1函数的定义、说明、调用与返回函数是C程序的最小单元。C程序是由一个主函数以及若干个函数构成主函数可以调用其它函数,其它函数可以相互调用例如:intmain(){printf

2、(”ThisisCprogram”);}函数main调用了函数printf。printf是一个库函数。为了完成一个特定的任务,在程序开发中一般要定义若干函数。二、C语言程序的结构4§4-1函数的定义、说明、调用与返回函数的一般形式数据类型函数名(形式参数说明表){语句}1.数据类型是说明函数中return语句返回的值的类型,我们称这个数据类型为该函数的类型2.函数名是标识符,是函数定义中唯一不可省略的3.形式参数说明表是用逗号分隔开的一组变量及类型的声明名。()不可省略。形式参数表中的参数简称为形参4.{}括起来的部分是函数体。{}

3、不可省略三、函数的结构与定义5§4-1函数的定义、说明、调用与返回函数定义实例1.C语言中一个最简单的函数:dummy()/*函数名:dummy*/{}没有数据类型说明和形参说明,函数体为空。2.求阶乘函数facto的定义。longfacto(intx){longy;for(y=1;x>0;--x)y*=x;return(y);}函数名形式参数列表函数类型函数体函数返回6§4-1函数的定义、说明、调用与返回函数定义实例3.求两个变量的最大值。main(){inta,b,c;printf(”Entera,b”);scanf(”%d,%

4、d”,&a,&b);c=max(a,b);printf(”Max=&d”,c);}intmax(intx,y)/*max函数的定义*/{intz;z=x>y?x:y;return(z);}函数调用7§4-1函数的定义、说明、调用与返回从函数返回的两种方法用return语句从被调函数中退出,返回调用它的程序中(也称为主调函数);被调函数如果没有return语句,被调函数执行结束遇到最外面的},返回主调函数。return的两重作用:控制程序从当前函数(被调用函数)中退出,返回到调用函数中继续执行;从被调用函数向主调函数返回一个值(称为返回值

5、)。四、函数的返回值与函数的数据类型8§4-1函数的定义、说明、调用与返回返回语句的格式与功能格式1:return;功能:将控制从被调函数返回到主调函数。格式2:return(表达式);或:return表达式;功能:在被调函数中计算表达式的值,将计算结果按照函数说明的函数类型返回到主调函数,并将控制返回主调函数。例如:通过函数max求变量a和b的最大值。c=max(a,b);9§4-1函数的定义、说明、调用与返回在调用函数之前,要先进行函数说明“说明”与“定义”的区别:“说明”就是说明函数返回值的类型。“定义”是给出函数的程序体。五、函

6、数说明10§4-1函数的定义、说明、调用与返回函数说明的一般形式数据类型函数名(形参说明表);数据类型必须与函数定义时的函数类型一致。函数说明与函数定义的首部唯一区别:函数说明语句的()之后必须有分号,而函数定义头部的()之后没有分号。五、函数说明11§4-1函数的定义、说明、调用与返回函数的调用形式函数名(实际参数表);函数调用时实际参数表中给出的数据简称为实参。实参的数量、类型和排列顺序必须与函数定义时形式参数表中形参的数量、类型和排列顺序一致,不允许任意改变。六、函数调用12§4-1函数的定义、说明、调用与返回函数调用的过程在一个

7、函数中调用另一个函数时,程序将控制从调用函数处转移到被调用函数,并执行被调用函数。在执行完被调用函数的所有语句或者遇到return语句时,程序的控制要返回到调用函数中原来调用函数的地方继续执行。六、函数调用13§4-1函数的定义、说明、调用与返回例C4-1.C:用函数facto计算m阶乘。main(){intm;longmm;longfacto(intx);scanf("%d",&m);mm=facto(m);printf("%d!=%ld.",m,mm);}longfacto(intx){longy;for(y=1;x>0;--x

8、)y*=x;return(y);}/*函数定义*//*函数说明*//*m:实参数,调用函数facto,返回值送入变量mm中*/函数执行过程main(){mm=facto(m);}facto(x){retur

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。