为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

c语言第五讲ppt课件

2021-01-26 26页 ppt 544KB 1阅读

用户头像 机构认证

爱赢

公司经营范围:网络软件设计、制作、图文设计、影视制作(编辑)

举报
c语言第五讲ppt课件函数.引例/*【例5-1】输入圆柱的高和半径,求圆柱体积,volume=3.1415926*r*r*h。要求定义和调用函数cylinder(r,h)计算圆柱体的体积。*//*计算圆柱体积*/#includeintmain(void){doubleheight,radius,volume;doublecylinder(doubler,doubleh);/*函数声明*/printf("Enterradiusandheight:");/*输入提示*/scanf("%lf%lf",&radius,&height);/*输入圆柱的半径和...
c语言第五讲ppt课件
函数.引例/*【例5-1】输入圆柱的高和半径,求圆柱体积,volume=3.1415926*r*r*h。要求定义和调用函数cylinder(r,h)计算圆柱体的体积。*//*计算圆柱体积*/#includeintmain(void){doubleheight,radius,volume;doublecylinder(doubler,doubleh);/*函数声明*/printf("Enterradiusandheight:");/*输入*/scanf("%lf%lf",&radius,&height);/*输入圆柱的半径和高度*/volume=cylinder(radius,height);/*调用函数,返回值赋给volume*/printf("Volume=%.3f\n",volume);/*输出圆柱的体积*/return0;}/*定义求圆柱体积的函数*/doublecylinder(doubler,doubleh){doubleresult;result=3.1415926*r*r*h;/*计算圆柱体积*/returnresult;/*返回结果*/}.函数的定义函数是指完成一个特定工作的独立程序模块。库函数:由C语言系统提供定义如scanf()、printf()等函数自定义函数:需要用户自己定义如计算圆柱体体积函数cylinder()main()也是一个函数,C程序由一个main()或多个函数构成。程序中一旦调用了某个函数,该函数就会完成一些特定的工作,然后返回到调用它的地方。函数经过运算,得到一个明确的运算结果,并需要回送该结果。例如,函数cylinder()返回圆柱的体积。函数完成一系列操作步骤,不需要回送任何运算结果。.1.返回运算结果的函数定义函数类型函数名(形参表){/*函数首部*//*函数体*/函数实现过程return表达式;}把函数运算的结果回送给主函数只能返回一个值函数返回值的类型doublecylinder(doubler,doubleh){doubleresult;result=3.1415926*r*r*h;returnresult;}.形参类型1参数1,类型2参数2,……,类型n参数n参数之间用逗号分隔,每个参数前面的类型都必须分别写明函数类型函数名(形参表){函数实现过程return表达式;}不能写成doubler,hdoublecylinder(doubler,doubleh){doubleresult;result=3.1415926*r*r*h;returnresult;}.分析函数的定义doublecylinder(doubler,doubleh){/*函数首部*//*函数体,写在一对大括号内*/doubleresult;result=3.1415926*r*r*h;/*计算圆柱体积*/returnresult;/*返回运算结果*/}函数类型函数名形参表与函数类型一致.2.不返回运算结果的函数定义void函数名(参数表){/*函数首部*//*函数体*/函数实现过程return;/*可以省略return*/}这类函数通常用于屏幕输出等表示不返回结果不能省略否则函数类型被默认定义为int./*【例5-2】输出5之内的数字金字塔。*//*输出数字金字塔*/#includeintmain(void){voidpyramid(intn);/*函数声明*/pyramid(5);/*调用函数,输出数字金字塔*/return0;}voidpyramid(intn){/*函数定义*/inti,j;for(i=1;i<=n;i++){/*需要输出的行数*/for(j=1;j<=n-i;j++)/*输出每行左边的空格*/printf("");for(j=1;j<=i;j++)/*输出每行的数字*/printf("%d",i);putchar('\n');}}122333444455555.函数的调用定义一个函数后,就可以在程序中调用这个函数。调用标准库函数时,在程序的最前面用#include命令包含相应的头文件。调用自定义函数时,程序中必须有与调用函数相对应的函数定义。.1.函数调用的形式和过程使用返回值:volume=cylinder(radius,height);printf(“%f\n”,cylinder(radius,height));完成操作:pyramid(5);常用于void类型函数的调用常用于返回结果的函数的调用常量、变量、表达式函数名(实参表).函数调用的过程计算机在执行程序时,从主函数main开始执行,如果遇到某个函数调用,主函数被暂停执行,转而执行相应的函数,该函数执行完后,将返回主函数,然后再从原先暂停的位置继续执行。函数遇return或最后的大括号,返回主函数.分析函数调用的过程#includeintmain(void){doubleheight,radius,volume;doublecylinder(doubler,doubleh);printf("Enterradiusandheight:");scanf("%lf%lf",&radius,&height);volume=cylinder(radius,height);printf("Volume=%.3f\n",volume);return0;}doublecylinder(doubler,doubleh){doubleresult;result=3.1415926*r*r*h;returnresult;}调用函数实参形参执行函数中的语句返回调用它的地方.2.参数传递函数定义时的参数被称为形式参数(简称形参)doublecylinder(doubler,doubleh);函数调用时的参数被称为实际参数(简称实参)volume=cylinder(radius,height);实参形参在参数传递过程中,实参把值复制给形参。形参和实参一一对应:数量一致,类型一致,顺序一致形参:变量,用于接受实参传递过来的值实参:常量、变量或表达式单向传递.3.函数结果返回函数返回的两种情况完成确定的运算,有一个运算结果返回给主调函数。完成指定工作,没有确定的运算结果需返回给主调函数(函数类型void)。函数结果返回的形式:return表达式;return(表达式);./*【例5-3】定义一个判断奇偶数的函数even(n),当n为偶数时返回1,否则返回0。*//*判断奇偶数的函数*/inteven(intn){/*函数首部*/if(n%2==0)/*判别奇偶数*/return1;/*偶数返回1*/elsereturn0;/*奇数返回0*/}.4.函数原型声明函数类型函数名(参数表);doublecylinder(doubler,doubleh);voidpyramid(intn);函数必须先定义后调用,将主调函数放在被调函数的后面,就像变量先定义后使用一样。如果自定义函数在主调函数的后面,就需要在函数调用前,加上函数原型声明。函数声明:说明函数的类型和参数的情况,以保证程序编译时能判断对该函数的调用是否正确。./*【例5-4】输入精度e,使用格里高利求π的近似值,精确到最后一项的绝对值小于e。要求定义和调用函数funpi(e)求π的近似值。*//*用格里高利公式计算π的近似值,精度为e*/#include#includeintmain(void){doublee,pi;/*e代表精度*/doublefunpi(doublee);/*函数声明*/printf("Entere:");/*提示用户输入精度*/scanf("%lf",&e);pi=funpi(e);/*调用函数,把返回值赋值给pi*/printf("pi=%.4f\n",pi);return0;}doublefunpi(doublee){/*定义计算pi的函数*/intdenominator,flag;doubleitem,sum;flag=1;/*flag表示第i项的符号,初始为正*/denominator=1;/*denominator表示第i项的分母,初始为1*/item=1.0;/*item中存放第i项的值,初值取1*/sum=0;/*置累加和pi的初值为0*//*当|item|≥e时,执行循环*/while(fabs(item)>=e){item=flag*1.0/denominator;/*计算第i项的值*/sum=sum+item;/*累加第i项的值*/flag=-flag;/*改变符号,为下一次循环做准备*/denominator=denominator+2;/*分母递增2,为下一次循环做准备*/}returnsum*4;}./*【例5-5】求100以内的全部素数,每行输出10个。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。要求定义和调用函数prime(m)判断m是否为素数,当m为素数时返回1,否则返回0。*//*使用函数求100以内的全部素数*/#include#include/*调用求平方根函数,需要包含数学库*/intmain(void){intcount,m;intprime(intm);/*函数声明*/count=0;/*count记录素数的个数,用于控制输出格式*/for(m=2;m<=100;m++){if(prime(m)){/*调用prime(m)判断m是否为素数*/printf("%6d",m);/*输出m*/count++;/*累加已经输出的素数个数*/if(count%10==0)printf("\n");/*如果count是10的倍数,换行*/}}printf("\n");}/*定义判断素数的函数,如果x是素数则返回1("真");否则返回0("假")*/intprime(intm){inti,n;if(m==1)return0;/*1不是素数,返回0*/n=sqrt(m);for(i=2;i<=n;i++)if(m%i==0){/*如果m不是素数*/return0;/*返回0*/}return1;/*m是素数,返回1*/}.变量与函数——局部变量和全局变量局部变量在函数内定义的变量(包括形参)作用范围:本函数内部定义在复合语句内的变量作用范围:复合语句内部全局变量在函数以外定义的变量,不从属于任一函数。作用范围:从定义处到源文件结束(包括各函数).例5-6在复合语句中定义局部变量。#includeintmain(void){inta;a=1;{/*复合语句开始*/intb=2;b=a+b;a=a+b;}/*复合语句结束*/printf("%d",a);return0;}b:小范围内的临时变量4.例5-7全局变量定义#include"stdio.h"intx;/*定义全局变量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;函数调用时,定义变量,分配存储单元。函数调用结束,收回存储单元。全局变量:从程序执行开始,到程序的结束,存储单元始终保持。变量生命周期变量从定义开始分配存储单元,到运行结束存储单元被回收的整个过程。.存储区存储类型:动态存储:自动变量静态存储:全局变量、静态局部变量用户存储空间.静态局部变量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.
/
本文档为【c语言第五讲ppt课件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索