下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、结构特点函数与主函数程序由一个或多个函数组成必须有且只能有一个主函数main()程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。2第七章 函数 库函数 函数的定义 函数的调用 函数的返回值 函数的说明函数分类从用户角度标准函数(库函数):由系统提供用户自定义函数7.1 库函数使用库函数应注意:1、函数功能2、需要使用的包含文件#include stdio.h#include math.hmain() double x,a,b; a=5;b=2; x=pow(3,2); printf(%lfn,x); x=pow(a,b); printf(%lfn,x); 结果 9.00
2、0000 25.0000007.2 函数的定义一般格式合法标识符函数体函数类型 函数名(形参类型说明表)说明部分语句部分现代风格:例 有参函数(现代风格) int max(int x,int y) int z; z=xy?x:y; return(z); 例 有参函数(现代风格) int max(int x, y) int z; z=xy?x:y; return(z); 没有时默认为int例 有参函数 int max(int x,int y) int z; z=xy?x:y; return(z); 例 无参函数 a( ) printf(“*n”); 7.5 函数参数及其传递方式c=max(a,b
3、);(main 函数)(max 函数)max(int x, int y) int z; z=xy?x:y; return(z); 例 比较两个数并输出大者main() int a,b,c; scanf(%d,%d,&a,&b); c=max(a,b); printf(Max is %d,c);int max(int x, int y) int z; z=xy?x:y; return(z);123457.3 函数的调用p79调用形式 函数名 (实在参数表)调用方式函数语句: 例: printstar(); 出现在表达式中: 例 m=max(a,b)*2;作为函数参数: 例 printf(“%d”
4、,max(a,b); m=max(a,max(b,c);7.5 函数参数及其传递方式 形参与实参形式参数:定义函数时函数名后面括号中的变量名实际参数:调用函数时函数名后面括号中的表达式说明:实参可以是常量,变量或表达式,但必须有确定的值形参必须指定类型说明:形参与实参应该类型一致,个数相同若形参与实参类型不一致,自动按形参类型转换函数调用转换实参表求值顺序,因系统而定(V C6.0 自右向左)函数参数及其传递方式main() double a,b; int c; scanf(%lf,%lf,&a,&b); c=max(a,b); printf(Max is %d,c);max(int x, i
5、nt y) int z; z=xy?x:y; return(z);main() int i=2,p; p=f(i,+i); printf(%d,p);int f(int a, int b) int c; if(ab) c=1; else if(a=b) c=0; else c=-1; return(c);例 参数求值顺序运行结果:07.4 函数的返回值p78返回语句形式: return(表达式); 或 return 表达式; 功能:使程序控制从被调用函数返回到调用函数中,同时把返值带给调用函数说明:函数中可有多个return语句,但只执行一个例若无return语句,遇时,自动返回调用函数例若函
6、数类型与return语句中表达式值的类型不一致,按前者为准,自动转换-函数调用转换 例void型函数例例 函数带回返回值 mm() return 10; return 15;main() int a; a=mm(); printf(%d,a);输出:10例 函数无返回值 a() printf(*);main() a();例 函数带回不确定值void a() printf(*);main() int x; x=a(); printf(%d,x);编译错误!当用void定义函数后主函数中禁止再用到函数 a() 的值反之,若主函数中想要用到函数 a() 的值,则绝不可用void来定义函数,此时,用r
7、eturn把值带回来。例 函数返回值类型转换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); 若输入: 3.14 , 5.6结果:Max is 5#include main() int x=5; printf(x=%dn,x); swap(x); printf(x=%dn,x);swap(int a) printf(“a=%dn”,a); a=10; printf(“a=%dn”,a);
8、值传递特点:形参与实参占用不同的内存单元调用结束,形参单元被释放,实参单元仍保留并维持原值单向传递711x:y:调用前:调用结束:711x:y:例 交换两个数/*ch7_2.c*/#include main() int x=7,y=11; swap(x,y); printf(x=%d,ty=%dn,x,y);swap(int a,int b) int temp; temp=a; a=b; b=temp;调用:711a:b:711x:y:swap:711x:y:117a:b:temp7.5函数说明对被调用函数要求:必须先定义,后使用如果定义放在调用后,则需要在调用前对函数说明,除 (int和ch
9、ar)函数说明作用:告诉编译系统函数类型、参数个数及类型,以便检验一般形式: 类型名 函数名(形数类型1 形参名1,. );下列情况下,可不作函数说明若函数返值是char或int型,系统自动按int型处理被调用函数定义出现在主调函数之前函数说明位置:程序的数据说明部分(函数内或外) 函数调用:先定义后使用#includedouble add(double a, double b) double s; s=a+b; return s; main() double y; y=add(3.0,4.0); printf(“y=%f”,y);函数说明#includedouble add(double ,
10、double);main() double y; y=add(3.0,4.0); printf(“y=%f”,y);double add(double a, double b) double s; s=a+b; return s; 例 函数说明举例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);/*ch7_5.c*/float add(float x, float y) float z; z=x+y; return(z);main() float a,b,c; scanf(%f,%f,&a,&b); c=add(a,b); printf(sum is %f,c);/*ch7_5.c*/main() float add(float,float); float a,b,c; scanf(%f,%f,&a,&b); c=add(a,b); printf(sum is %f,c);float add(float x, flo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年线上推广服务合同
- 2026年建筑工程成效评估合同
- 房屋提前购买合同(标准版)
- 2025年修复性司法服务体系建设项目可行性研究报告
- 2025年智能仓储系统方案优化项目可行性研究报告
- 2025年医药供应链数字化解决方案可行性研究报告
- 浙江拟就业协议书
- 中国驻美协议书
- 老板要写解协议书
- 2025年智慧农业合作社发展项目可行性研究报告
- 全新版尹定邦设计学概论5
- 军品运输合同范本
- 治具维修基础知识培训课件
- 第一章 安培力与洛伦兹力 练习题 (含解析) 2024-2025学年物理人教版(2019)选择性必修第二册
- 跨文化感官差异-洞察及研究
- 2025一建《建设工程经济》精讲课程讲义
- 2025年全国事业单位联考D类《综合应用能力》真题及答案
- 2025CSCO非小细胞肺癌诊疗指南解读
- 护士长的精细化管理课件
- 酒店人力资源管理(第2版)全套教学课件
- 2025 肾癌手术术后护理课件
评论
0/150
提交评论