欢迎来到天天文库
浏览记录
ID:52278688
大小:348.50 KB
页数:65页
时间:2020-04-03
《C++程序设计第5章函数教程.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第5章函数计算机学院C课组函数:clrscr()功能:是清屏,将插入点置于0行0列.clrscr();2第5章函数模块化程序设计是面向过程程序设计的很重要的方法,C语言中的函数体现了这种思想。本章主要介绍:1、函数的定义2、模块化程序设计的实现方法3、函数的定义及函数的调用方式4、内部函数和外部函数的定义和调用方法等。35.1C函数与C程序结构模块化程序特点:模块化程序具备逻辑清晰、层次分明的特点结构;具体应用:在C源程序中,用户可将算法分解成一个个相对独立的函数模块,称为用户函数,然后,通过函数调用来使用这些函数。4模块化程序设计C语言的函数作为一个模块
2、一般应依据下面两个原则:(1)界面清晰。函数的处理子任务明确,函数之间数据传递越少越好。(2)大小适中。若函数太大,处理任务复杂,导致结构复杂,程序可读性较差;反之,若函数太小,则程序调用关系复杂,这样会降低程序的效率。5模块化软件结构的示意图一个C语言程序由主函数和若干个(0个用户函数)组成;C语言中的函数没有隶属关系,即所有的函数都是独立定义的,不能嵌套定义。6函数是通过调用来执行的,允许函数间互相调用,也允许直接或间接的递归调用其自身;【例5.1】用户定义一个无参函数用来输出信息。voidprintstar(){printf("***********
3、******");}main函数可以调用任何一个函数,而其他函数不能调用main函数;例如:main(){printstar()}7【例5.2】编写一个有参函数程序,求长方形的面积。floatarea(floata,floatb){floats;s=a*b;returns;}/*返回值*/main(){floataver,x,y;scanf(“%f%f”,&x,&y);area=area(x,y);/*调用函数,得到返回值*/printf(“%f”,area);}8调用另一个函数的函数称为主调函数、被调用的函数称为被调函数;函数的四种形式:a)从使用的
4、角度来分为用户函数和系统函数b)从形式上分成有参函数和无参函数c)从作用的范围分为外部函数和内部函数d)从返回值的角度分成有返回值函数和无返回值函数voidprintstar()/*无参、无返回值*/floatarea(floata,floatb)/*有参、有返回值*/printf(“***********”)/*系统函数,有参、有返回值*/getchar()/*系统函数,无参、有返回值*/95.2函数的定义及构成函数要先定义后使用,函数定义的一般格式为:[存储类型][数据类型]函数名([形式参数表]){说明部分语句部分}通常把函数名和形参的说明部分称
5、为“函数头”,用花括号括起来的部分称为“函数体”。10函数具有以下特征(1)存储类型定义函数时[存储类型]可以是extern或static两种关键字说明(2)数据类型定义函数时[数据类型]是用来说明该函数返回值的类型,可以是整型、字符型、实型、指针型和其它构造类型。如果省略,则系统默认为int型。(3)函数名函数名是一个标识符,它的命名规则同变量相同。(4)形式参数表形式参数(简称形参)的说明形式如下:数据类型形式参数1,数据类型形式参数2,……11(5)函数体由{}括起来的部分称为函数体。由说明部分和语句部分组成(6)函数的返回值返回值可以是常数、变量或
6、表达式,也可以是指针,但不能是数组名或函数名。return表达式;return(表达式);例如:returns;12关于return语句说明如下:如果不需要从被调函数带回返回值可以不要return语句。一种情况是将函数类型定义为void型,也叫空类型.例如:voidprintstar()2、还可以用不带表达式的return作为函数的逻辑结尾,这时,return的作用是将控制权交给调用函数,而不是返回一个值。也可以不用return。return;13return语句是函数的逻辑结尾,不一定是函数的最后一条语句,一个函数中允许出现多个return语句,但每次只
7、能有一个return语句被执行。if(x<0)return-1;elseif(x==0)return0;elsereturn1;-1x<00x=01x>0Y=145.3函数的调用5.3.1函数的调用函数调用格式:函数名(实参表);函数的调用过程是:(1)如果是有参函数,为形式参数分配存储单元,将实参的值计算出后依次赋予对应的形参,称为值传递(传值),在C语言中这种数据传递是单向的。(2)执行函数体,为其中的变量分配存储单元并执行函数体中的可执行语句。当执行到“返回语句”时,计算返回值返回主调函数继续运行程序,如果是无返回值函数,则省略此操作。系统将释放
8、本函数体中定义的变量(静态型变量不释放),同时收回分配给形参的存储
此文档下载收益归作者所有