华中科技大学光电子学院C语言课件第五章.ppt

华中科技大学光电子学院C语言课件第五章.ppt

ID:49554551

大小:224.00 KB

页数:38页

时间:2020-02-27

华中科技大学光电子学院C语言课件第五章.ppt_第1页
华中科技大学光电子学院C语言课件第五章.ppt_第2页
华中科技大学光电子学院C语言课件第五章.ppt_第3页
华中科技大学光电子学院C语言课件第五章.ppt_第4页
华中科技大学光电子学院C语言课件第五章.ppt_第5页
资源描述:

《华中科技大学光电子学院C语言课件第五章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第五章自定义函数和程序结构要点:1.自定义函数之间的参数传递------值传递及参数类型转换(参数传递原则)2.自定义函数中的变量作用域问题------外部变量和内部变量(作用域和生存期规则)3.自定义函数调用关系------------直接调用和递归调用(结构原则)§1.函数的定义与调用一.函数结构的作用及种类1.函数结构的作用.作用:适用于大型程序模块化的程序设计.函数可存放在文件中.并可单独编译,组成目标文件.然后连接装配生成可执行文件2.函数的种类分两类标准库函数:C编译系统预先定义的函数,供用户调用.

2、用户自定义函数:用户自定义,并且调用的函数.标准库函数:调用:给出函数所在的文件名:即,利用头文件方式进行(见附录)包括sin(x),cos(x),tan(x)等,x为弧度sqrt(x),log(x)自然对数,exp(x),e指数函数abs(x),求整型绝对值,fabs(x)求浮点数绝对值pow(x,y)求x的y次方值,I/O函数:getchar(),putchar(),scanf(),printf(),可省头文件等,字符类测试函数:islower(c)小写字

3、母,isupper(c)大写字母,等中,字符串函数:strlen(cs)求cs串长,等中,实用函数:数的转换函数,存储分配函数等二.函数的定义与调用将程序中常常公用的程序块定义成函数形式,然后在需要处进行调用.1.函数定义和调用形式(1)函数定义形式存储类型符函数类型说明符函数名(形式参数表)〔 形参类型说明 〕{说明部分语句部分}其中:函数类型说明符:指明函数返回值的类型:若返回值是int型或无返回值,此项可省.2)若函数类型说明符为void,显示说明函数无返回值3)函

4、数返回值时,由return(表达式)语句实现,无返回值时,return语句可省1)指出函数被调用的范围:由static和extern指定2)用static指定:函数可被同一文件中定义的函数调用,即静态函数局部于所在的文件3)用extern指定或省缺指定:称为外部函数,它可被所有的函数调用.函数名:标识符定义,函数名不能相同形式参数表:1)函数的入口参数(自变量),若无形参,可省或写出void,若有多个形参.则用逗号隔开2)形参表中也可说明形参的类型:如p(intx,inty)若不说明类型,可在下行”{“外单独说

5、明:p(x,y)intx,y;{…}存储类型说明符:函数体:一个复合语句.注:函数定义中不允许再定义函数:即,函数不能嵌套定义.(2)函数调用形式函数名(实参表)函数名与定义的函数名相同实参表的参数与形参表中的参数个数相同,顺序,类型一致三.例子例:编程求/*求K!的函数*/longintfact(k)intk;{inti;longintfac=1;for(i=2;i<=k;++i)fac=fac*i;return(fac);}main(){intx,y;doublef;printf(“Inputnandm(m

6、>n):”);scanf(“%d%d”,&x,&y);if(y>=x&&x>=0&&y>0){f=fact(y)/fact(x)*fact(y-x);printf(“%f”,f);}elseprintf(“error”);}注:(结构原则)1)被调用函数int型时,调用函数和被调用函数前后位置无关要紧.2)若调用函数不为int型,C语言允许先调用后定义,或者被调用函数,在其他文件中,必须在调用函数之前作函数说明(即向前引用).指出被调用函数的类型和参数的类型,否则编译程序认为被调用函数为int型3)

7、任何函数不能调用main()主函数.但函数自己可调用自己称为递归调用例:(同上例)main(){intx,y;longintf,fact(int);/*或fact()*/…..}longintfact(intk){……}四:调用时参数传递函数之间的参数传递:按值调用按值调用:将实参数的当前值拷贝到对应的形参单元中.特点:形参的改变不会影响对应实参的值.例:voidswap(intx,inty)/*无参数返回函数交换x和y*/{inttemp;temp=x;x=y;y=temp;}main(){inta=1,b=

8、2;swap(a,b);/*调用语句*/printf(“a=%d,b=%d”,a,b);}说明:1)不带值返回函数,return语句可省,且函数名前冠以void.2)在调用函数中,不带值返回函数调用形式为单独的语句(而不能作为表达式的分量).3)一般来说,函数带值返回时,每一次只能返回一个值,若要返回多个值,方法1.通过外部变量带出返回值(一个或多个),2把形参定义为指针(或数组)可以

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。