理论教育 C语言程序设计应用教程:函数概述及例

C语言程序设计应用教程:函数概述及例

时间:2023-11-21 理论教育 版权反馈
【摘要】:例7.1 输入一个整数,输出其绝对值。图7-1方法3调用子函数的流程图编写程序:方法1:创建一个名为“eg7_1 _ 1.c”的新文件,在编辑窗口中输入下面的程序代码。其中有且仅有一个主函数,子函数可以有若干个。1)有返回值函数。此类函数被调用后向调用者返回一个执行结果,这个执行结果称为函数的返回值。此类函数用于完成某项特定的处理任务,执行完成后不向调用者返回函数值。

C语言程序设计应用教程:函数概述及例

例7.1 输入一个整数,输出其绝对值。

解题思路:

本题可使用3种方法解决。方法1是仅在主函数中使用简单语句实现求绝对值;方法2是调用标准库函数fabs ()实现求绝对值;方法3是定义一个子函数fabsFun ()实现求绝对值,其流程图如图7-1所示。请比较这3种方法,理解子函数的功能及使用方法。

图7-1 方法3调用子函数的流程图

编写程序:

方法1:创建一个名为“eg7_1 _ 1.c”的新文件,在编辑窗口中输入下面的程序代码。

方法2:创建一个名为“eg7_1_2.c”的新文件,在编辑窗口中输入下面的程序代码。

方法3:创建一个名为“eg7_1_3.c”的新文件,在编辑窗口中输入下面的程序代码。

运行结果:

对于3个方法分别运行,依次输入6和-10,运行的结果都相同,如下图所示。

程序说明:

方法3是模块化程序设计的一个实例,数值的输入和结果的输出放在主函数模块里完成,求绝对值这一特定功能放在子函数模块里完成。(www.daowen.com)

C语言模块化程序设计层次图如图7-2所示。从图中可以看出,一个C语言程序可以由若干源文件组成,每个源文件又可以由若干函数组成,函数是组成C语言程序的基本单位。其中有且仅有一个主函数,子函数可以有若干个。每个函数都是由函数首部和函数体构成。

图7-2 C语言模块化程序设计层次图

由于采用了函数模块式的结构,C语言易于实现结构化程序设计,使程序的层次结构清晰,便于程序的编写、阅读和调试。

在C语言中可从不同的角度对函数分类。

(1)从用户使用的角度看,函数可分为库函数和用户定义的函数两种。

1)库函数。库函数是由系统定义的,其函数声明一般是放在系统的include目录下以.h为后缀的头文件中,若在程序中要用到某个库函数,必须在调用该函数之前把包含有该函数原型的头文件以#include<头文件名>命令将库函数信息包含到本程序中。例如,printf( ) ,scanf( ) ,getchar( ) ,putchar()等函数都是库函数。

2)用户定义的函数。该函数是由用户根据需要而编写的。对于用户定义的函数,需要在程序中定义函数之后才能使用。

(2)根据函数有无返回值,又可把函数分为有返回值函数和无返回值函数两种。

1)有返回值函数。此类函数被调用后向调用者返回一个执行结果,这个执行结果称为函数的返回值。例如,例7.1 中定义的fabsFun()函数就是有返回值函数。

2)无返回值函数。此类函数用于完成某项特定的处理任务,执行完成后不向调用者返回函数值。由于函数无须返回值,用户在定义此类函数时可指定它的返回值为“空类型”,说明符为“void”。

(3)从函数的形式看,又可分为无参函数和有参函数两种。

1)无参函数。无参函数即不带参数的函数。

2)有参函数。有参函数也称为带参函数。在函数定义和函数声明时所带的参数,称为形式参数(简称为形参)。在函数调用时必须给出的参数,称为实际参数(简称为实参)。进行函数调用时,主调函数把实参的值传递给形参,供被调函数使用。

在C语言中,所有的函数定义,包括主函数main ()在内,都是平行的,即在定义函数时是分别进行且互相独立的。一个函数并不从属于另一个函数,即函数不能嵌套定义。但是函数之间允许相互调用,也允许嵌套调用。函数还可以自己调用自己,称为递归调用。

C语言程序的执行总是从main ()函数开始,完成对其他函数的调用后再返回到main()函数,最后由main ()函数结束整个程序。一个C语言程序必须有也只能有一个主函数main( ) 。 main()函数可以调用其他函数,而不允许被其他函数调用。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈