欢迎来到天天文库
浏览记录
ID:40238590
大小:545.50 KB
页数:68页
时间:2019-07-28
《C语言程序设计基础与实训教程 第6章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章函数第页主要内容概述函数定义和函数说明函数的参数和返回值函数的调用函数的嵌套调用函数的递归调用数组作为函数参数综合应用举例第页6.1概述C语言是一种模块化程序设计语言。模块化是一种对复杂问题“自顶向下,分而治之”,即将一个复杂问题划分为若干较小问题,然后根据实际需要又把一些较小问题划分成若干小问题,直到一些简单问题,从而使一个复杂问题得到解决的程序设计方法。第页6.1概述一般地,一个复杂问题对应一个大型的程序,根据模块化程序设计方法,大型的程序应分为若干个程序模块,每一个模块用来实现一个特定的功能,解决一个特定的子问题。任何高级程序设计语言都提供了子
2、程序功能,可以用子程序实现模块。在C语言中,用函数完成子程序的功能。C程序是由一系列函数构成的,函数是构成C程序的基本单位。C语言程序设计,无论问题是复杂还是简单,任务只有一个,就是编写函数,至少要编写一个名为main的函数(主函数)。执行C程序就是执行main函数,从它的第一个“{”开始,依次执行后面的语句,直到最后一个“}”为止,其他函数只有在main函数执行过程中被调用才执行。第页6.1概述【例】简单的函数示例。printstar()/*printstar函数*/{printf("********************");}print_mes
3、sage()/*print_message函数*/{printf("Howdoyoudo!");}main(){printstar();/*调用printstar函数*/print_message();/*调用print_message函数*/printstar;/*调用printstar函数*/}运行情况如下:********************Howdoyoudo!********************第页6.1概述printstar和print_message都是用户定义的函数名,分别用来输出一排“*”号和一行信息。说明:一个源程序文件由一
4、个或多个函数组成。一个源程序文件是一个编译单位,即以源程序为单位进行编译,而不是以函数为单位进行编译。一个C程序由一个或多个源程序文件组成。对较大的程序,一般不希望全放在一个文件中,而将函数和其他内容(如预定义)分别放在若干个源文件中,再由若干个源文件组成一个C程序。这样可以分别编写、分别编译,提高调试效率。一个源文件可以为多个C程序共用。第页6.1概述C程序的执行从main函数开始,调用其他函数后流程回到main函数,在main函数中结束整个程序的运行。main函数是系统定义的。所有函数都是平行的,即在定义函数时是互相独立的,一个函数并不从属于另一个函数
5、,即函数不能嵌套定义,函数间可以互相调用,但不能调用main函数。第页6.1概述从用户使用的角度看,函数有两种。标准函数,即库函数。这是由系统提供的,用户不必自己定义这些函数,可以直接使用它们。应该说明,不同的C系统提供的库函数的数量和功能不同,当然有一些基本的函数是共同的。用户自定义的函数。用以解决用户专门需要。第页6.1概述从函数的形式看,函数分两类。无参函数。如例6.1中的printstar和print_message就是无参函数。在调用无参函数时,主调函数并不将数据传送给被调用函数,一般用来执行指定的一组操作。无参函数可以带回或不带回函数值,但一般
6、以不带回函数值的居多。有参函数。在调用函数时,在主调函数和被调函数之间有数据传递。也就是说,主调函数可以将数据传给被调函数使用,被调函数中的数据也可以带回来供主调函数使用。第页6.2函数定义和函数说明函数的定义函数的说明第页6.2.1函数的定义函数的定义就是编写完成特定功能的程序模块。它包含对函数类型(即函数返回值类型)、函数名、形式参数个数和类型、函数体等的定义。其一般格式为:类型说明符函数名(形式参数表){变量说明函数执行语句}第页6.2.1函数的定义【例】求1+2+3+…+m的值,m由键盘输入。intsum(intn){inti,s=0;for(i=
7、1;i<=n;i++)s+=i;return(s);}main(){intm,sum;printf("Inputanintegernumber:");scanf("%d",&m);sum=sum(m);printf("Sumof1to%dis:%d",m,sum);}第页6.2.1函数的定义说明:函数名形式参数函数体函数的返回函数类型函数定义的外部性第页6.2.1函数的定义【例】函数intfunl(intm,intn)的功能:计算并返回正整数m和n的最大公约数。intfunl(intm,intn){while(m!=n){if(m>n)m=m-n;else
8、n=n-m;}returnm;}第页6.2.2函数的说明在一个函数
此文档下载收益归作者所有