预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共99页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第四章函数主要内容:函数定义,函数参数、函数值,函数调用。函数嵌套调用,递归调用,局部变量和全局变量,动态、静态存放变量。内部函数和外部函数。宏定义,文件包含,条件编译。重点:掌握函数调用,掌握嵌套调用,掌握递归调用、动态、静态存放变量、局部变量、全局变量。掌握宏定义,掌握文件包含。难点:递归调用,静态存放变量,局部变量,全局变量。带参数宏定义。4.1函数概述引例1:求圆面积和周长。(书P106例4.1)(需返回值)#include<stdio.h>floats(floatr){floatres;res=3.14*r*r;returnres;}floatl(floatbj){floatres;res=2*3.14*bj;returnres;}main(){floatr,area,circle;printf(“Pleaseinputradius:”);scanf(“%f”,&r);引例2:(不需返回值)#include<stdio.h>print_point(){printf(“………………………………………\n”);}print_message(){printf(“ThisisaCprogram!\n”);}main(){print_point();print_message();print_point();}模块化程序设计基本思想:将一个大程序按功效分割成一些小模块对程序和函数关系,有以下几点说明:1.一个C程序由一个或多个源程序文件组成;一个源程序文件由一个或多个函数组成。函数是C程序基本组成单位。2.一个C程序执行总是从main()函数开始,调用其它函数后,流程返回到main()函数,在main()函数中结束整个程序运行;main()函数由系统定义,是程序中必不可少一个函数。3.全部函数都是平行,在定义时都是相互独立,一个函数并不隶属于另一个函数,函数间能够相互调用,但不能调用main()。4.函数分类:从用户使用角度:*标准函数(即系统库函数)*用户自定义函数。从函数形式看:*无参函数*有参函数(依据主调与被调函数有没有参数传递)例4.2定义一个求和函数。书P108floatsum(floatx,floaty){floatz;z=x+y;return(z);}例有参函数intmax(intx,y){intz;z=x>y?x:y;return(z);}4.3函数调用与返回值调用格式:函数名(实际参数表)例4.3经过函数调用求两数中最小值。书P109#include<stdio.h>min(intx,inty){intz;z=x<y?x:y;return(z);}main(){inta,b,c;scanf(“%d,%d”,&a,&b);c=min(a,b);printf(“Minis%d\n”,c);}4.3.1实参加形参区分(有参函数)1.形参:定义函数时,函数名后面括弧中变量名;存在于定义函数之内变量。实参:主调函数调用一个函数时,函数名后面括弧中参数(表示式);存在于定义函数之外变量。例:比较两个数并输出大者4.3.2函数调用一、普通形式:1.函数名(实际参数表)2.说明:①调用无参函数时,实参列表可无,但括弧不能省;如:getchar()print_point()print_message()②多个实参时,实参间用,分隔;③实参加形参要个数相等,类型一致,按次序一一对应,传递数据。二、调用方式:(按函数在程序中出现位置来看)分三种:1.函数语句——把函数调用作为一个语句。如例4.1中print_point();printf();和scanf();2.函数表示式——函数调用出现在一个表示式中。如:c=min(a,b);3.函数参数——函数调用作为一个函数实参。如:n=min(a,min(b,c));及printf(“%d”,min(a,b));4.3.3对被调用函数申明一、调用系统库函数应在程序文件开头用#include命令将包含库函数定义信息“头文件”嵌入到本文件中来。如:#include<stdio.h>二、调用用户自定义函数普通应在主调函数中对被调函数进行“申明”。main(){floata,b,c;scanf(“%f,%f”,&a,&b);c=sum(a,b);printf(“Sumis%f\n”,c);}floatsum(floatx,floaty){floatz;z=x+y;return(z);}函数原型(函数申明)有两种写法:(1)类型标识符函数名(参数类型1参数名1,参数类型2参数名2…….)(2)类型标识符函数名(参数类型1,参数类型2…….)floatsum(floatx,floaty);floatsum(float,float);可不加申明情况:(1)被调函数定义出现在主调函数之前;(2)在全