- 8
- 0
- 约7.33千字
- 约 40页
- 2017-05-07 发布于河南
- 举报
C程序设计课件_第4章 函数
第4章 函数 本章导读 掌握 C 语言中常见的内置函数 理解函数原型和函数的返回值 熟练掌握自定义函数的定义和调用 理解变量的作用域 理解变量的存储类型 理解参数传递的方式:传值 预处理指令 宏定义 条件编译 函数的优点 函数的优点 (1)使程序变得更简短而清晰; (2)提高了代码的重用性; (3)有利于程序维护; (4)可以提高程序开发的效率。 常见内置函数 函数的定义与调用 一、定义 函数的定义与调用 二、函数的调用 调用形式: 函数名(实参表) 例 1 int f(int a, int b) { int c; if(ab) c=1; else if(a==b) c=0; else c=-1; return(c); } main() { int i=2,p; p=f(i, i++); printf(%d,p); } 函数的定义与调用 三、函数的参数及传递方式 形式参数:定义函数时函数名后面括号中的变量名。 实际参数:调用函数时函数名后面括号中的表达式。 函数的定义与调用 函数参数的传递方式 传值调用 函数的形参与实参有如下特点: (1)形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只有在函数内部有效。函数调用结束返回主调函数后则不能再使用该形参变量; (2)实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使实参获得确定值; (3)实参和形参在数量上,类型上,顺序上应严格一致,否则会发生类型不匹配的错误; (4)函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。 返回语句: 形式: return(表达式); 或 return 表达式; 或 return; 功能:使程序控制从被调用函数返回到调用函数中,同时把返回值带给调用函数。 说明: (1)函数至多可以返回一个值,不能返回多个值; (2)返回值的数据类型必须与函数原型中返回值的数据类型匹配; (3)当遇到 return 语句时,函数执行将终止。程序控制流将立即返回调用函数。 函数的原型 对使用被调用函数的要求: (1)必须是已存在的函数; (2)库函数: #include *.h; (3)用户自定义函数: 函数类型原型说明。 函数原型说明在形式上与函数头部类似,最后加一个分号。原型说明中参数表里的参数名可以不写(只写参数类型)。 函数声明一般形式: 函数类型 函数名(形参类型 [形参名],….. ); 或 函数类型 函数名(); 作用:告诉编译系统函数类型、参数个数及类型,以便检验。 注意:函数定义与函数声明不同。定义是指对函数功能的确立,从无到有对函数进行规划,而声明是对已经存在的函数进行说明并通知给编译系统,便于编译工作顺利完成。 例3 函数原型 main() { float add(float,float); /*function declaration*/ float a,b,c; scanf(%f,%f,a,b); c=add(a,b); printf(sum is %f,c); } float add(float x, float y) { float z; z=x+y; return(z); } 函数的调用 函数的调用方式: 嵌套调用 递归调用 嵌套调用 递归调用 函数直接或间接的调用自身叫函数的递归调用。 递归调用 C编译系统对递归函数的自调用次数没有限制;每调用函数一次,在内存堆栈区分配空间,用于存放函数变量、返回值等信息。实际中不是所有的问题都可以采用递归调用的方法。只有满足下列要求的问题才可使用递归调用方法来解决:能够将原有的问题化为一个新的问题,而新的问题的解决办法与原有问题的解决办法相同,按这一原则依次地化分下去,最终化分出来的新的问题可以解决。 递归调用 例4 求n的阶乘。 #include stdio.h long fac(int n) { long f ; if(n0) printf(n0,data error!); else if(n= =0) f=1; else f=fac(n-1)*n; return(f); } main() { int n; long y;
您可能关注的文档
- 2012染发专家二.ppt
- 2013届高三生物 实验专项突破13 杂交育种问题的分析课件 新人教版.ppt
- 2013届高三生物 实验专项突破12 遗传类实验题的答题技能课件 新人教版.ppt
- 2013届高三生物 实验专项突破17 DNA复制方式的探究课件 新人教版.ppt
- 2012高三物理实验复习4.ppt
- 2013届高三生物 实验专项突破30 调查当地环境污染课件 新人教版.ppt
- 2013届高三生物 实验专项突破31 DNA的粗提取与鉴定 新人教版 课件.ppt
- 2013届高三生物考前实验专项突破名师精品5--观察植物细胞的质壁分享及复原.ppt
- 2013届高考物理考纲专项复习课件:实验-传感器的简单使用(12张PPT).ppt
- 2013届高考物理考纲专项复习课件:实验(一)探究弹力与弹簧伸长的关系(11张PPT).ppt
最近下载
- 附件: 黑龙江省年“村村大学生计划(培养)” 招 生 简 章 “村村 .doc VIP
- 往年江苏省教师招聘考试教育学心理学真题及答案.docx VIP
- 国资集团考试试题及答案.docx VIP
- 部编版语文一年级下册阅读11《浪花》课件PPT.pptx VIP
- 2018海湾GST-QKP04、GST-QKP04 2气体灭火控制器说明书.docx
- 浙江省杭州市西湖区之江中学2024-2025学年高二上学期期末数学试题(解析版).docx VIP
- 人教版五年级上册数学期末测试卷及参考答案ab卷.docx VIP
- [中央]2025年中国建设银行建信养老金管理有限责任公司校园招聘20人笔试历年参考题库频考点试题附带答案详解.docx
- 海南省公务员考试模拟试题库《行测》部分及参考答案.docx VIP
- BS EN 14540-2014 国外国际规范.pdf VIP
原创力文档

文档评论(0)