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

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

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

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

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

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

第5章函数人们在求解一个复杂问题时,通常采取是化整为零、逐一处理方法,也就是把一个大问题分解成若干个比较轻易求解小问题,然后分别求解。程序员在设计一个复杂应用程序时,往往也是把整个程序划分为若干功效较为单一程序模块,然后分别给予实现,最终再把全部程序模块像搭积木一样装配起来,这种在程序设计中逐一处理分而治之策略,被称为模块化程序设计方法。 在C语言中,函数是程序基本组成单位(相当于其它高级语言子程序),所以能够很方便地用函数作为程序模块来实现C语言程序。C语言不但提供了极为丰富库函数(如TurboC、MSC都提供了三百多个库函数),还允许用户建立自己定义函数。用户可把自己算法编成一个个相对独立函数模块,然后用调用函数换算方法来使用函数。这不但能够实现程序模块化,而且还能够使程序层次结构清楚,便于程序编写、阅读、调试。5.1函数分类5.1.2有返回值函数和无返回值函数 C语言函数兼有其它语言中函数和过程两种功效,从这个角度看,可把函数分为有返回值和无返回值函数两种。 1.有返回值函数 这类函数被调用执行完后将向调用者返回一个执行结果,称为函数返回值。如数学函数即属于这类函数。由用户定义要返回函数值函数,必须在函数定义和函数说明中明确返回值类型。 2.无返回值函数 这类函数用于完成某项特定处理任务,执行完成后不向调用者返回函数值。这类函数类似于其它语言过程。因为函数无须返回值,用户在定义这类函数时可指定它返回为“空类型”,空类型说明符为“void”。5.1.3无参函数和有参函数 从主调函数和被调函数之间数据传送角度看函数可分为无参函数和有参函数两种。 1.无参函数 函数定义、函数说明及函数调用中均不带参数。主调函数和被调函数之间不进行参数传递。这类函数通惯用来完成一组指定功效,能够返回或不返回函数值。 2.有参函数 有参函数,也称为带参函数。在函数定义及函数说明时都有参数,此时参数称为形式参数(简称为形参)。在函数调用时也必须给出参数,此时参数称为实际参数(简称为实参)。进行函数调用时,主调函数将把实参值传递给形参,供被调函数使用。5.2函数定义5.2.2有参函数普通形式 函数类型函数名(数据类型参数1[,数据类型参数2…]) { 说明语句部分; 可执行语句部分; } 形式参数:将函数定义中参数表称为形式参数表,简称形参表。与调用函数提供实际参数区分。 实际参数:调用有参函数时,调用函数必须赋予这些参数实际值,调用函数中参数称为实际参数。空函数其形式为: [函数类型]函数名(void) {} “空函数”既无参数、函数体为空函数,什么操作也不做。 其作用是在此处留一函数位置,方便未来扩充功效之用。 函数名也在未来换取实际函数名。函数定义说明: ⑴在C语言中,全部函数(包含主函数main())都是平行、独立。 ⑵在一个包含多个函数程序中,一个函数定义,能够放在程序中任意位置,即能够放在主函数main()之前或放在主函数main()之后。 ⑶在一个函数函数体内,不能再定义另一个函数,即函数不能嵌套定义。 ⑷函数之间允许相互调用,以能够嵌套调用。例5.1在程序主函数中,执行了3次调用无参函数s()语句。 #include<stdio.h> voidmain() { voids();/*函数调用说明*/ inti=0,a=10; while(i<3) {++a;printf(“%d,”,a++); s();i++;} } voids(void) { intz=300;z++; printf(“%d\n”,z++); }例5.2定义一个函数,用于求两个数中大数。 main() {intmax(intx,inty);/*函数调用说明*/ inta1,a2,a3; printf("inputtwonumbers:\n"); scanf("%d%d",&a1,&a2); a3=max(a1,a2); printf("max=%d\n",a3); } intmax(intx,inty) {intz; z=x>y?x:y; return(z); }intmax(intx,inty) {intz; z=x>y?x:y; return(z); } 在老版本C语言中,参数类型说明允许放在函数说明部分第2行单独指定。 例: intmax(x,y) intx,y; {intz; z=x>y?x:y; return(z); }5.2.3函数说明与返回值返回非整型数据函数被使用之前,必须把它类型向程序其余部分说明。若不这么做,C语言编译程序就认为函数是返回整型数据函数,假如调用点又在函数类型说明之前,编译程序就会对调用生成错误代码。为了预防上述问题出现,必须使用一个尤其说明语句。 对被调函数说明有两种格式,一个为传统格式,一个为当代格式。 (1)