C语言7-class-while和函数.ppt

上传人:tia****nde 文档编号:12805494 上传时间:2020-05-25 格式:PPT 页数:39 大小:536.50KB
返回 下载 相关 举报
C语言7-class-while和函数.ppt_第1页
第1页 / 共39页
C语言7-class-while和函数.ppt_第2页
第2页 / 共39页
C语言7-class-while和函数.ppt_第3页
第3页 / 共39页
点击查看更多>>
资源描述
4.3while循环(二),例题:用while循环求1!+2!+.+100!分析:先求出n!然后在累加,第五章函数,5.1使用函数编写程序入门5.2自己编写几个函数程序5.3变量与函数,本章要点,怎样定义函数?如何调用函数?如何声明函数?什么是函数的参数?在函数调用时,参数是如何传递的?在使用函数的过程中,要注意哪些问题?怎样确定函数的参数?如何使用局部变量和全局变量?什么是静态变量?,5.1使用函数编写程序入门,5.1.1第一个使用函数程序(计算圆柱体体积)的解析5.1.2函数的定义例题5-2输出数字金字塔5.1.3函数的调用及说明,5.1.1第程序计算圆柱体积,例5-1输入圆柱体的高和半径,求圆柱体积,volume=*r2*h。要求定义和调用函数cylinder(r,h)计算圆柱体的体积。,例5-1源程序,/*计算圆柱体积*/#includevoidmain()doubleheight,radius,volume;doublecylinder(doubler,doubleh);/*函数声明*/printf(Enterradiusandheight:);scanf(“%lf,%lf,例5-1源程序,doublecylinder(doubler,doubleh)/*定义求圆柱体积的函数*/doubleresult;result=3.1415926*r*r*h;/*计算体积*/returnresult;/*返回结果*/,运行结果:Enterradiusandheight:3.0,10Volume=282.743,5.1.2函数的定义,函数是指完成一个特定工作的独立程序模块。库函数:由C语言系统提供定义如scanf()、printf()等函数自定义函数:需要用户自己定义如计算圆柱体体积函数cylinder()main()也是一个函数,C程序由一个main()或多个函数构成。程序中一旦调用了某个函数,该函数就会完成一些特定的工作,然后返回到调用它的地方。函数经过运算,得到一个明确的运算结果,并需要回送该结果。例如,函数cylinder()返回圆柱的体积。函数完成一系列操作步骤,不需要回送任何运算结果。,1返回运算结果的函数定义,函数类型函数名(形参表)/*函数首部*/*函数体*/函数实现过程return表达式;,把函数运算的结果回送给主函数,只能返回一个值,函数返回值的类型,没有分号,doublecylinder(doubler,doubleh)doubleresult;result=3.1415926*r*r*h;returnresult;,1)形参说明:,类型1参数1,类型2参数2,类型n参数n参数之间用逗号分隔,每个参数前面的类型都必须分别写明,函数类型函数名(形参表)函数实现过程return表达式;,不能写成doubler,h,doublecylinder(doubler,doubleh)doubleresult;result=3.1415926*r*r*h;returnresult;,doublecylinder(doubler,doubleh)/*函数首部*/*函数体,写在一对大括号内*/doubleresult;result=3.1415926*r*r*h;/*计算圆柱体积*/returnresult;/*返回运算结果*/,2)分析函数的定义,函数类型,函数名,形参表,与函数类型一致,2不返回运算结果的函数定义,void函数名(参数表)/*函数首部*/*函数体*/函数实现过程return;/*可以省略return*/,这类函数通常用于屏幕输出等,表示不返回结果,不能省略否则函数类型被默认定义为int,例5-2输出5之内的数字金字塔。,/*输出数字金字塔*/#includevoidmain()voidpyramid(intn);/*函数声明*/pyramid(5);/*调用函数,输出数字金字塔*/voidpyramid(intn)/*函数定义*/inti,j;for(i=1;i=n;i+)/*需要输出的行数*/for(j=1;j=n-i;j+)/*输出每行左边的空格*/printf();for(j=1;j=e)item=flag*1.0/denominator;sum=sum+item;flag=-flag;denominator=denominator+2;returnsum*4;,Entere:0.0001pi=3.1418,上机作业:1、用函数实现三个数求最大值。(分有参数传递和无参数传递两种)(2分)2、用函数实现Fibonacci序列:1,1,2,3,5,8,13,(求出10位)(1分),5.3变量与函数,5.3.1局部变量和全局变量5.3.2变量生命周期和静态局部变量,5.3.1局部变量和全局变量,局部变量在函数内定义的变量(包括形参)作用范围:本函数内部定义在复合语句内的变量作用范围:复合语句内部全局变量在函数以外定义的变量,不从属于任一函数。作用范围:从定义处到源文件结束(包括各函数),例5-6在复合语句中定义局部变量。,#includeintmain(void)inta;a=1;/*复合语句开始*/intb=2;b=a+b;a=a+b;/*复合语句结束*/printf(%d,a);return0;,b:小范围内的临时变量,4,例5-7全局变量定义,#includestdio.hintx;/*定义全局变量x*/intf()intx=4;/*x为局部变量*/returnx;intmain(void)inta=1;x=a;/*对全局变量x赋值*/a=f();/*a的值为4*/intb=2;b=a+b;/*b的值为4*/x=x+b;/*全局变量运算*/printf(%d%d,a,x);return0;,4,7,若局部变量与全局变量同名,局部变量优先,变量作用范围示例,intx=1;voidmain()inta=2;.intb=3;.f();.intt=4;voidf()intx=5,b=6;.inta=7;,x=?a=?b=?,b=?,x=5b=6t=4a没定义,x=?b=?t=?a=?,自动变量(auto):普通的局部变量intx,y;autointx,y;charc1;autocharc1;函数调用时,定义变量,分配存储单元。函数调用结束,收回存储单元。全局变量:从程序执行开始,到程序的结束,存储单元始终保持。变量生命周期变量从定义开始分配存储单元,到运行结束存储单元被回收的整个过程。,5.3.2变量生命周期和静态局部变量,存储类型:动态存储:自动变量静态存储:全局变量、静态局部变量用户存储空间,存储区,static类型名变量表作用范围:局部变量生命周期:全局变量,静态局部变量,例5-9静态局部变量示例,#includevoidfun(intk);intmain(void)intk;for(k=1;k=3;k+)fun(k);return0;voidfun(intk)staticinta;printf(%d,a);a+=k;,0,1,3,静态变量会记住前一次调用时留下来的值,静态变量的初值为0,附加例题1.找出500以内的所有素数。,例2求Fibonacci序列:1,1,2,3,5,8,13,1,1,2,3,5,8,13,x1x2xx1x2x,x1=x2=1;x=x1+x2;x1=x2;x2=x;,x1=1;x2=1;printf(%6d%6d,x1,x2);/*输出头两项*/for(i=1;i=8;i+)/*循环输出后8项*/x=x1+x2;/*计算新项*/printf(%6d,x);x1=x2;/*更新x1和x2*/x2=x;,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!