函数与宏定义公开课一等奖优质课大赛微课获奖课件.pptx
上传人:靖烟****魔王 上传时间:2024-09-11 格式:PPTX 页数:49 大小:1MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

函数与宏定义公开课一等奖优质课大赛微课获奖课件.pptx

函数与宏定义公开课一等奖优质课大赛微课获奖课件.pptx

预览

免费试读已结束,剩余 39 页请下载文档后查看

10 金币

下载此文档

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

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

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

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

第六章函数与宏定义§6.1函数概念§6.1.1函数定义阐明:3.函数名由任何合法标识符构成。提议将函数名命名与函数内容有一定关系。6.函数返回语句形式有下列两种:①函数无返回值情况:return;②函数有返回值情况:return(表示式值);在第②种情况下要注意“表示式值”类型必须与函数返回值类型相一致。函数定义下列:intabs_sum(intm,intn){if(m<0)m=-m;if(n<0)n=-n;return(m+n);}二.函数调用函数调用是通过函数调用语句来实现,分两种形式:§6.1.3函数传值方式【例6-1】编程序,通过调用函数abs-sum(),求任意两个整数绝对值和。用传值方式调用函数时,实参也能够是函数调用语句注意:x=x*2;y=y*2;printf("z=%f,mul(%f,%f)=%f\n",z,x,y,mul(x,y));/*③*/}floatmul(floata,floatb){returna*b;}程序阐明:§6.2变量作用域和存储类型局部变量和全局变量作用域如图所表示:【例6-4】变量作用域应用举例,阅读下面程序,注意区别局部变量和全局变量作用域。{intx=7;printf("localxininnerscopeofmainis%d\n",x);}printf("localxinouterscopeofmainis%d\n",x);a();b();c();a();b();c();printf("localxinmainis%d\n",x);getchar();return0;}voida(void){intx=25;printf("\nlocalxinais%dafterenteringa\n",x);++x;printf("localxinais%dbeforeexitinga\n",x);}voidb(void){staticintx=50;printf("\nlocalstaticxis%donenteringb\n",x);++x;printf("localstaticxis%donexitingb\n",x);}voidc(void){printf("\nglobalxis%donenteringc\n",x);x*=10;printf("globalxis%donexitingc\n",x);}程序运营结果:后6次函数调用二.变量存储类型局部变量存储类型缺省值为auto型。全局变量存储类型缺省值为extern型。/*exam6_5.c用static型变量保留上次阶乘值*/#include<stdio.h>longfac(intn){staticintf=1;f=f*n;returnf;}main(){inti;for(i=1;i<=5;i++)printf("%d!=%ld\n",i,fac(i));}§6.3内部函数与外部函数比如:有两个源文献file1.c和file2.c下列所表示:intmod(inta,intb){return(a%d);}/*file2.c外部函数*/externintadd(intm,intn){return(m+n);}2.在文献2(file2.c)中函数定义:externintadd(intm,intn){return(m+n);}事实上相称于:intadd(intm,intn){return(m+n);}4.多个源文献连接方式有三种:§6.4递归函数设计和调用C语言中还允许在函数中调用本身,或函数之间互相调用,这种调用方式称之为递归。递归又分为直接递归调用和间接递归调用。间接递归:【例6-6】编程,从键盘输入一个正整数n,求n!。完整程序下列:scanf("%d",&x);if(x<=0)printf("Yourinputiswrong!\n");else{f=fac(x);printf("%d!=%ld\n",x,f);}}【例6-7】求Fibonacci数列第i项值。Fibonacci数列:0,1,1,2,3,5,8,13,21,…程序下列所表示:longfibonacci(intn){if(n==0||n==1)returnn;elsereturnfibonacci(n-1)+fibonacci(n-2);}以x=4为例,下图阐明了fibonacci函数是如何计算fibonacci(4)。图中把fibonacci简写成f。§6.6综合范例#de