- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2000年1月25日 北京化工学院信息基础教研室 引:设计算法求组合数C(m,n)=m!/(n!(m-n)!) 函数:long getFactorial(int k){…;return..;} 简化编程 提高复用率 增强易读性 第七章 函数 函数基本概念 函数用法 函数参数传递 函数嵌套与递归 数组作函数参数 变量的作用域与生存期 内部函数与外部函数 1、函数基本概念 函数:对应一个功能模块,是块独立代码,有自己的名字,通常有形参和返回值。在被调用时执行函数代码,执行完后返回计算结果给调用语句。 函数代码包括函数头和函数体.函数头分返回值类型、函数名和形参列表;函数体包括声明语句部分和执行语句部分 函数举例:int getMin(int x,int y) { int r=x; if(ry)r=y; return r; } 相关概念:函数首部、函数声明和函数调用 函数首部:int getMin(int x,int y) {if(xy)return x;else return y;} 函数调用:x=getMin(3,5);注意以下代码存在的问题 getMin(3,5);printf(“%d”,getMin(3,5)); 函数声明:int getMin(int x,int y);函数原型 函数用法(2) 提高软件复用率 函数使用举例—回文数 3、 函数参数传递—值传递 补充:C++中的引用传递(.cpp文件方可使用) 4、函数的嵌套调用和递归调用 例7.6 计算, 其中n是用户输入的一个整数。 说明:例子仅说明函数嵌套的概念,但算法结构不合理,莫细看,以补充例子为主进行学习 补充:弦截法求方程x3-5x2+16x-80=0根 作业1:参照补充例题编写代码用弦截法求方程ex-x-5=0的根,注意用函数!将代码写入作业 回顾: 概述:结构化程序设计过程中每个模块用一个独立的函数实现。简化编程,使程序清晰易读,并提高复用率. 语法:函数的形参和返回值类型等由功能决定。定义时函数头如int f(int x,int y)后不能有分号,函数体中通常有return;声明时给出函数原型如int f(int,int)或int f(int x,int y)均可,且其后必须有分号;调用时给出函数名和实参即可如y=f(a,3),不能写y=int f(int a,int 3);无参函数也要写括号,如PrtVersion().此外注意避免无用/多余调用 参数传递:C语言中采用值传递的形式,当发生函数调用时为形参分配空间,同时将实参的值传递给形参变量,形参和实参完全独立。C++中新引入引用传递,形参变量是实参变量的别名,两者对应同一内存空间 函数不能嵌套定义,但允许嵌套调用,注意执行过程(主函数开始,主函数结束)。注意m=max(a , max( b , c ) ) 7.4.2 函数的递归调用 7.5—7.8 7.5 数组元素与数组名作函数参数 7.6 局部变量与全部变量 7.7 内部函数与外部函数 7.8 应用举例 7.5.1 数组元素作函数参数 例void main(){ int a[7]; float r; r=f(a[3]); printf(“%d”,r); } float f(int n){ float r; r=n/2; return r; } 说明:数组元素作函数参数与普通变量作函数参数一样,均是值传递,数组元素与形参是两个独立的变量 例7.10:判断一个数组中有多少个素数 7.5.2 一维数组名作函数参数 例:void main(){int a[N];…;inv(a);…;} void inv(int b[ ]){ for(int i=0;iN/2;++i)b[i]?b[N-1-i];} 说明:数组名代表数组首地址,数组名作实参时,把数组名的值传递给形参b就相当于把数组首地址传递给形参b,从而形参b的值也是原数组首地址。因此,形参b与a指向同一个数组,b相当于实参数组a的一个别名,子函数中修改b[i]则主函数中a[i]也变。故上例虽然返回值为void型,但也有作用,因形参数组和实参数组是同一个数组 注意:实参写数组名a,不应写a[N];形参是一个能接受数组起始地址的变量,不能写int b,而应是int b[ ] 。加上长度也可但无用,因并不重新开辟一个数组 例7.11 数组a中存放一学生5门课程的成绩,求平均成绩。 例7.12 利用数组名作函数参数实现冒泡排序。 7.5.3 多维数组名作函数参数 说明:多维数组名也是数组存储区域的首地址,与一维数组名作参数类似,形参相当于实参数组的一个别名,子函数中对形参数组的改变就是对实参
您可能关注的文档
- 6第五章新生儿及其心理的发生林崇德版老师提供程序.ppt
- 1书籍装帧形式的演进历史程序.ppt
- 3.1世界文化的多样性程序.ppt
- 2.1荒漠化的防治以我国西北地区为例程序.ppt
- 5.3万有引力定律与天文学的新发现程序.ppt
- 7植物病原原核生物程序.ppt
- 5呼吸系统06程序.ppt
- 01本科2015级临床专业--骨总论躯干上肢骨程序.ppt
- 2.5.3人类遗传病程序.ppt
- 4脑血管疾病脑梗死程序.ppt
- 2024年海南琼海市教育研究培训中心选聘学科教研专业技术人员9人笔试模拟试题带答案详解.docx
- 2025年乐山市林业和园林局下属事业单位考核招聘笔试模拟试题及参考答案详解.docx
- 2024年贵州六盘水市水城区公安局招聘警辅94人笔试模拟试题参考答案详解.docx
- 2025年云南曲靖市事业单位定向招聘29人(含定向招聘计划)笔试模拟试题带答案详解.docx
- 商务部配额许可证事务局2024年第一次公开招聘工作人员笔试备考题库及完整答案详解1套.docx
- 云南楚雄双柏县公安局招聘警务辅助人员25人笔试模拟试题带答案详解.docx
- 2024年贵州兴仁市事业单位引进人才23人方案笔试模拟试题及参考答案详解一套.docx
- 2024年江西南昌市财政评审中心招聘笔试备考题库及答案详解1套.docx
- 2025年甘肃酒泉市教育系统引进高层次教师人才214人笔试模拟试题附答案详解.docx
- 2024年浙江杭州市萧山区第四次机关事业单位招聘编外人员51人笔试模拟试题及参考答案详解一套.docx
文档评论(0)