C语言程序设计第4章函数.ppt

上传人:wuy****n92 文档编号:70107008 上传时间:2023-01-16 格式:PPT 页数:57 大小:535KB
返回 下载 相关 举报
C语言程序设计第4章函数.ppt_第1页
第1页 / 共57页
C语言程序设计第4章函数.ppt_第2页
第2页 / 共57页
点击查看更多>>
资源描述

《C语言程序设计第4章函数.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计第4章函数.ppt(57页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、y?x:y;return(z);C语言程序设计4.1.1 函数的定义三、一个函数可以是空函数。如:dummy()返回返回#C语言程序设计一、函数的返回1.被调用函数执行到最后的“”时,自动返回2.被调用函数执行到return语句时返回4.1.2 函数的返回和返回值C语言程序设计二、函数的返回值1.return语句 return(表达式);或:return 表达式;或:return;return语句的用途有二:(1)用于结束函数的执行并返回到调用者;(2)用来向调用者传递一个返回值。注意:注意:该语句对非void函数适用。4.1.2 函数的返回和返回值C语言程序设计4.1.3 函数的声明和调用要

2、正确实现函数间的调用需满足下列条件:必须给出满足函数运行时要求的参数;被调用函数必须存在;被调用函数必须允许调用。C语言程序设计例:c=max(a,b);int max(int x,int y)一、函数调用形式函数名函数名(实参表列实参表列);4.1.3 函数的声明和调用C语言程序设计1函数语句 如:printf(“One worle”);2函数表达式 如:c=max(a,b);3函数参数 如:m=max(a,max(b,c);printf(“%d”,max(a,b);4.1.3 函数的声明和调用二、函数调用的方式C语言程序设计main()float a,b,c;scanf(“%f,%f”,&

3、a,&b);c=add(a,b);printf(“sum is%f”,c);float add(float x,float y)float z;z=x+y;return z;4.1.3 函数的声明和调用float add(float x,float y);C语言程序设计三、函数声明的一般形式 函数类型 函数名(类型1,类型2,类型n);或:函数类型 函数名(类型1 名1,类型2 名2);例如:float add(float a,float b);或:float add(float,float);再如:char fun2(int i,char p1);4.1.3 函数的声明和调用C语言程序设计注

4、意:函数声明与函数定义不同!函数声明与函数定义不同!main()int a,b,c;void print();scanf(“%d,%d”,&a,&b);c=max(a,b);print();printf(“max=%d”,c);int max(int x,int y)int z;z=xy?x:y;return(z);void print()int i;for(i=0;i0;x-)y=y*x;return(y);C语言程序设计4.1.4 形式参数和实在参数一、形式参数和实际参数 形式参数:定义函数时函数名后括号中的变量名,简称形参;实际参数:调用函数时函数名后括号中的表达式,简称实参。C语言程序

5、设计4.1.4 形式参数和实在参数二、二、参数值的传递参数值的传递 实参传值给形参C语言程序设计main()int a,b,c;scanf(“%d,%d”,&a,&b);c=max(a,b);/*调用max函数*/printf(“max=%d”,c);int max(int x,int y)int z;z=xy?x:y;return(z);4.1.4 形式参数和实在参数C语言程序设计n关于形参和实参的说明:1.实参可以是常量、变量或表达式,如:c=max(3,a+b);2.定义函数时,必须指定形参的类型;3.实参与形参的类型应一致或兼容。4.C语言规定,实参对形参的数据传递是“值传递值传递”。

6、5.函数未调用时,形参并不占内存中的存储单元。在函数调用时,形参才被分配内存单元。调用结束后,形参所占的内存单元被释放。4.1.4 形式参数和实在参数C语言程序设计main()int a,b,c;scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“max=%d”,c);int max(int x,int y)int z;z=xy?x:y;return(z);abc58xy58z884.1.4 形式参数和实在参数returnC语言程序设计2.函数值的类型 如:int max(int x,int y)char letter(char c1,char c2)double

7、min(int x,double y)C C语言默认函数返回值为语言默认函数返回值为intint型。型。3.如果函数值的类型和return语句中表达式 的值不一致,则以函数类型为准函数类型为准。如:4.1.4 形式参数和实在参数C语言程序设计main()float a,b;int c;scanf(“%f,%f”,&a,&b);c=max(a,b);printf(“Max is%dn”,c);max(float x,float y)float z;z=xy?x:y;return(z);若输入的数据流如下:1.5,2.5则输出的结果为:Max is 24.1.4 形式参数和实在参数C语言程序设计4

8、.可用“void”定义“无类型”函数。如:void printstar()printf(“*n”);void p_message()printf(“How do you do!n”);4.1.4 形式参数和实在参数 返回返回C语言程序设计例1:写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。分析:编写函数 prime(int n),其功能是判断n是否是素数,如是则返回1,否则返回0;编写main(),输入一个整数,调用prime函数,输出是否是素数的信息。程序清单:4.2 带自定义函数的程序设计 返回返回判断素数判断素数main()int m;scanf(“%d”,&m);i

9、f(prime(m)printf(“nTrue”);else printf(“nFlase”);prime(int n)int i,flag=1;for(i=2;i=n/2;i+)if(!(n%i)flag=0;break;return flag;prime(int n)int i,flag=1;for(i=2;ib?a:b;return(c);main()int a=8;/*a局部变量*/printf(“%d”,max(a,b);形参a,b作用范围局部变量a作用范围全局变量b作用范围printf(“%d,%d”,a,b);返回返回C语言程序设计4.3.2 变量的生存期一、动态存储方式与静态存

10、储方式n静态存储方式:指在程序运行期间分配固定的存储空间的方式。n动态存储方式:在程序运行期间根据需要进行动态的分配存储空间的方式。程序区静态存储区动态存储区内存中供使用的情况全局变量、静态量全局变量、静态量函数形式参数、自动变量、函数调用时的现场保护和返回地址等C语言程序设计4.3.2 变量的生存期静态存储区:存储空间的分配在编译阶段进行,且存于其中的数据对象相对于程序的执行是永久的。动态存储区:存储空间的分配是在程序的运行过程中进行的。C语言程序设计n二、auto变量n调用函数时系统自动分配存储空间,在函数调用结束时自动释放这些存储空间,称这类局部变量为自动变量。n自动变量用关键字auto

11、作存储类别的声明。它也可省。n三、用static声明局部变量n静态的n局部的4.3.2 变量的生存期C语言程序设计f(int a)auto int b=0;static int c=3;b=b+1;c=c+1;return(a+b+c);main()int a=2,i;for(i=0;i3;i+)printf(“%d”,f(a);第一次调用开始 0 3 b c 第一次调用结束 1 4 第二次调用开始 0 4 运行结果为:789第二次调用结束 1 5 第三次调用开始 0 5 第三次调用结束 1 6 4.3.2 变量的生存期C语言程序设计n四、register变量n说明:1、只有局部自动变量和形式

12、参数可作为register变量。2、不能定义任意多个寄存器变量。3、局部静态变量不能定义为寄存器变量。4.3.2 变量的生存期C语言程序设计n五、用extern声明外部变量 在一个文件内声明外部变量例:main()extern A;/*外部变量声明*/printf(“%d”,A);int A=13;/*定义外部变量*/4.3.2 变量的生存期 返回返回C语言程序设计例:用弦截法求方程x3-5x2+16x-80=0的根。方法如下:yx0 x1xx2f(x1)f(x)f(x2)计算x点的公式为:x=x1 f(x2)-x2 f(x1)f(x2)-f(x1)思路:根据x1和x2两点的值求x的值,当f(

13、x)10-5x就作为方程的近似根。C语言程序设计#include float f(float x)float y;y=(x-5.0)*x+16.0)*x-80.0);return y;定义函数fC语言程序设计float xpoint(float x1,float x2)float y;y=(x1*f(x2)-x2*f(x1)/(f(x2)-f(x1);return y;定义xpoint 函数,求弦与x轴的交点。C语言程序设计float root(float x1,float x2)int i;float x,y,y1;y1=f(x1);do x=xpoint(x1,x2);y=f(x);if(

14、y*y1)0)y1=y;x1=x;else x2=x;while(fabs(y)=1e-5);return x;定义root函数,求近似根C语言程序设计main()float x1,x2,f1,f2,x;do printf(“input x1,x2:n”);scanf(“%f,%f”,&x1,&x2);f1=f(x1);f2=f(x2);while(f1*f20);x=root(x1,x2);printf(“x=%10.4fn”,x);C语言程序设计main函数 root函数 xpoint函数 f函数调用 root 函数 调用 xpoint 函数 调用 f 函数结束C语言程序设计 用牛顿迭代法

15、求根。方程为ax3+bx2+cx+d=0,系数a、b、c、d由主函数输入。求x在1附近的一个实根。求出根后,由主函数输出。牛顿迭代法先给定方程f(x)=0一个较好的近似根x,迭代公式:xn+1=xn-f(xn)/f(xn)C语言程序设计#include“math.h”float solut(float a,float b,float c,float d)float x=1,x0,f,f1;do x0=x;f=(a*x0+b)*x0+c)*x0+d;f1=(3*a*x0+2*b)*x0+c;x=x0-f/f1;while(fabs(x-x0)=1e-5);return(x);main()floa

16、t a,b,c,d;printf(“n input a,b,c,dn”);scanf(“%f,%f,%f,%f”,&a,&b,&c,&d);printf(“5.2fx3+%5.2fx2+%5.2fx +%5.2f=0”,a,b,c,d);printf(“nX=%10.7fn”,solut(a,b,c,d);C语言程序设计 用二分法求解方程 2x34x2+3x-6=0的根,要求绝对值误差不超过0.001mnrf(r)f(n)f(m)C语言程序设计float f(float x)return(2*x*x*x-4*x*x+3*x-6);main()float m=-100,n=90,r;r=(m+n)/2;while(f(r)*f(n)!=0)if(f(r)*f(n)0)m=r;else n=r;if(fabs(f(r)0.001)break;r=(m+n)/2;printf(“方程解为:%6.3fn”,r);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com