资源描述:
《C语言是通过函数来实现模块化程序设计的所以较大的C语....ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第8章函数C语言是通过函数来实现模块化程序设计的。所以较大的C语言应用程序,往往是由多个函数组成的,每个函数分别对应各自的功能模块。8.1概述8.2函数定义的一般形式8.3函数参数和函数的值8.4函数的调用8.5函数的嵌套调用8.7数组作为函数参数8.8局部变量和全局变量8.9变量的存储类别8.1概述一个较大的程序一般应分为若干个程序模块,每一个模块用来实现一个特定的功能。所有的高级语言中都有子程序这个概念,用子程序实现模块的功能。在C语言中,子程序的作用是由函数完成的。一个C程序可由一个主函数main()和若干个其它函数构成。由主函数调用其它函数,其它函
2、数也可以互相调用。同一个函数可以被一个或多个函数调用任意多次。下图是一个程序中函数调用的示意图。<>程序设计基础C第八章函数8.1概述在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用。要善于利用函数,以减少重复编写程序段的工作量。先举一个简单的例子:n!例8.1<>程序设计基础C第八章函数#include“stdio.h”main(){inti,n;longfact;scanf(“%d”,&n);for(fact=1,i=2;i<=n;i++)fact=fact*i;printf(“%d!=%ld”,n,fact);}m!---
3、------------n!*(m-n)!<>程序设计基础C第八章函数main(){inti,m,n;longfact,c;scanf(“%d%d”,&m,&n);for(fact=1,i=2;i<=m;i++)fact=fact*i;c=fact;for(fact=1,i=2;i<=n;i++)fact=fact*i;c=c/fact;for(fact=1,i=2;i<=m-n;i++)fact=fact*i;c=c/fact;printf(“%d!/(%d!*%d!)=%ld”,m,n,m-n,c);}m!---------------n!*(m
4、-n)!sin(x)m!n!(m-n)!main(){intm,n;longc;scanf("%d%d",&m,&n);c=factorial(m)/factorial(n);/*调用factorial函数*/c=c/factorial(m-n);/*调用factorial函数*/printf("%d!/(%d!*%d!)=%ld",m,n,m-n,c);}longfactorial(intn)/*定义factorial函数*/{longfact;inti;for(fact=1,i=2;i<=n;i++)fact*=i;return(fact);}<>
5、程序设计基础C第八章函数函数定义函数调用说明:(1)一个C程序由一个或多个源程序文件组成。对较大的程序,一般不希望全放在一个文件中,而将函数和其他内容(如预定义)分别放在若干个源文件中,再由若干源文件组成一个C程序。这样可以分别编写、分别编译,提高调度效率。一个源文件可以为多个C程序公用。(2)一个源程序文件由一个或多个函数组成。一个源程序文件是一个编译单位,即以源程序为单位进行编译,而不是以函数为单位进行编译。(3)C程序的执行从main函数开始,调用其他函数后流程回到main函数,在main函数中结束整个程序的运行。main函数是系统定义的。(4)所有
6、函数都是平行的,即在定义函数时是互相独立的,一个函数并不从属于另一函数,即函数不能嵌套定义,函数间可以互相调用,但不能调用main函数。<>程序设计基础C第八章函数longfactorial(intn){longfact;inti;for(fact=1,i=2;i<=n;i++)fact*=i;return(fact);}main(){intm,n;longc;scanf("%d%d",&m,&n);c=factorial(m)/factorial(n);c=c/factorial(m-n);printf("%ld",m,n,m-n,c);}说明:(5
7、)从用户使用的角度看,函数有两种:①标准函数,即库函数。这是由系统提供的,用户不必自己定义这些函数,可以直接使用它们。应该说明,不同的C系统提供的库函数的数量和功能不同,当然有一些基本的函数是共同的。使用时应使用#include命令包含所需的头文件。②用户自己定义的函数。用以解决用户的专门需要。<>程序设计基础C第八章函数(6)从函数的形式看,函数分两类:①无参函数。如例8.1中的main()就是无参函数。在调用无参函数时,主调函数并不将数据传送给被调用函数,一般用来执行指定的一组操作,如:printstar()函数的作用是输出21个星号。无参函数可以带回
8、或不带回函数值,但一般以不带回函数值的居多。②有参函数。在调用函数