资源描述:
《C语言程序设计能力教程 教学课件 作者 赵凤芝 等 第7章应用函数编制程序.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第七章应用函数编制程序第一节函数的引入模块化程序设计基本思想:将一个大的程序按功能分割成一些小模块,特点:各模块相对独立、功能单一、结构清晰、接口简单控制了程序设计的复杂性提高元件的可靠性缩短开发周期避免程序开发的重复劳动易于维护和功能扩充开发方法:自上向下,逐步分解,分而治之第六章函数6.1概述模块化程序设计基本思想:将一个大的程序按功能分割成一些小模块,特点:各模块相对独立、功能单一、结构清晰、接口简单控制了程序设计的复杂性提高元件的可靠性缩短开发周期避免程序开发的重复劳动易于维护和功能扩充开发方法:自上向下,逐步分解,分而治之C是模块化程序设计语言C程序
2、结构C是函数式语言必须有且只能有一个名为main的主函数C程序的执行总是从main函数开始,在main中结束函数不能嵌套定义,可以嵌套调用函数分类从用户角度标准函数(库函数):由系统提供用户自定义函数从函数形式无参函数有参函数使用库函数应注意:1、函数功能2、函数参数的数目和顺序,及各参数意义和类型3、函数返回值意义和类型4、需要使用的包含文件Ch7_201.c一、函数定义的一般形式第二节函数的定义[函数类型]函数名([函数参数类型1函数参数名1][,…,函数参数类型n,函数参数名n]){[声明部分][执行部分]}函数头函数体一个函数(定义)由函数头(函数首部
3、)和函数体两部分组成。函数头(函数首部):说明函数类型、函数名及参数。函数类型:函数返回值的类型,可以是基本数据类型也可以是构造类型。如果省略默认为int,如果不返回值,定义为void类型。函数名:给函数取的名字,以后用这个名字调用。函数名由用户命名,命名规则同标识符。参数表:函数名后面是参数表。无参函数没有参数传递,但“()”号不能省略,这是格式的规定。参数表说明参数的类型和形式参数的名称,各个形式参数用“,”分隔。函数体:函数首部下面用一对{}括起来的部分。函数体一般包括声明部分、执行部分。声明部分:在这部分定义本函数所使用的变量和进行有关声明(如函数声明
4、)。执行部分:程序段,由若干条语句组成命令序列(可以在其中调用其它函数)。例如:下面定义了一个名为max的函数。intmax(x,y)/*函数头部,说明函数返回值为整型,有两个参数x,y*/intx,y;/*函数头部,说明函数参数的类型*/{intz;/*以下为函数体,z为函数体中的局部变量*/z=x>y?x:y;return(z);};注意:函数不能单独运行,函数可以被主函数或其它函数调用,也可以调用其它函数,但是不能调用主函数。【例7.1】输入三个整数,求三个整数中的最大值并打印出来。/*不使用子函数*/main(){intn1,n2,n3,max;sca
5、nf("%d%d%d",&n1,&n2,&n3);if(n1>n2)max=n1;elsemax=n2;if(n3>max)max=n3;printf("max=%d",max);/*使用子函数*/intmaxnumber(intx,inty,intz){intm;if(x>y)m=x;elsem=y;if(z>m)m=z;return(m);}main(){intn1,n2,n3,max;scanf("%d%d%d",&n1,&n2,&n3);max=maxnumber(n1,n2,n3);/*函数调用*/printf("max=%d",max);二、函
6、数的参数和返回值(1)形式参数(简称形参):函数定义时设定的参数。1、形式参数与实际参数(2)实际参数(简称实参):调用函数时所使用的实际的参数。c=max(a,b);(main函数)(max函数)max(intx,inty){intz;z=x>y?x:y;return(z);}例比较两个数并输出大者main(){inta,b,c;scanf("%d,%d",&a,&b);c=max(a,b);printf("Maxis%d",c);}max(intx,inty){intz;z=x>y?x:y;return(z);}形参实参注意:形参在函数未调用时,并不占内存
7、中的存储单元。只有在发生函数调用时,函数中的形参才被分配内存单元。在调用结束后,形参所占的内存单元被释放。实参可以是常量、变量或表达式,要求它们有确定的值。在被定义的函数中,必须指定形参的类型,实参与形参的类型应一致。(3)参数的传递在调用函数时,主调函数和被调函数之间有数据的传递——实参传递给形参。具体的传递方式有两种:值传递方式(传值):将实参单向传递给形参的一种方式。地址传递方式(传址):将实参地址单向传递给形参的一种方式。“传值”与“传址”的区别“传值”、“传址”只是传递的数据类型不同(传值——一般的数值,传址——地址)。系统分配给实参、形参的内存单元
8、是不同的。两种参数传递方式中,实参可以