- 1、本文档共66页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[教学研究]ch08 函数
2005年3月 第8章 函数 第8章 函数 8.1 概述 【例】求一个整数的立方。 int cube (int x) /* 函数定义 */ { return (x * x * x); } main( ) { int f, a; printf(\nEnter an integer number:); scanf(%d, a); f = cube (a); printf(%d * %d * %d = %d\n, a, a, a, f); } 函数的种类 从函数定义形式分: ① 有参函数: 在主调(用)函数和被调(用)函数之间通过参数进行数据传递, 如: int cube (int x) { … } ② 无参函数: 如:getchar( ) 在调用无参函数时,主调函数不需要将数据传递给无参函数。 【例】 void welcome ( ) { printf(*********************************\n); printf( Welcome to China \n); printf(*********************************\n); } main( ) { welcome( );} 8.2 函数的定义 int max(x,y) int x,y; { int z; z = x y ? x : y; return( z ); } 形式参数:定义函数时函数名后面括号中的变量名 实际参数:调用函数时函数名后面括号中的表达式 有关形参和实参的说明: 实参可以是常量、变量或表达式,但要求实参必须有确定的值。 形参必须指定类型 形参与实参类型一致,个数相同,字符型与整型可以兼容。 若形参与实参类型不一致,自动按形参类型转换———函数调用转换 形参在函数被调用前不占内存;函数调用时为形参分配内存;调用结束,内存释放 【例】函数调用中实参的求值顺序。 void fun(int a,int b) { printf(a=%d,b=%d\n,a,b); } main( ) { int m=5; fun(3+m, m++); } 参数的传递方式 值传递方式 函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值 特点: 形参与实参占用不同的内存单元 单向传递 地址传递方式 函数调用时,将数据的存储地址作为参数传递给形参 特点: 形参与实参占用同样的存储单元 “双向”传递 实参和形参必须是地址常量或变量 8.4 函数的类型与函数的返回值 max(int x,int y) { int z; z=xy?x:y; return (z); /* 返回z的值 */ } main( ) { int a,b,c; scanf(%d,%d,a,b); c=max(a,b); printf(max is %d\n,c); } 函数的返回值是通过return语句带回到主调函数的 功能:终止函数的运行,返回主调函数,若有返回值,将返回值带回主调函数。 【例】计算并输出圆的面积。 s(int r) { return 3.14*r*r;} main( ) { int r,area; scanf(%d,r); printf(%d\n,s(r)); } 函数调用的含义 对实际参数列表中的每一个表达式求值 将表达式的值以及对应的赋值给形参 执行被调函数的函数体 若有return语句被执行,则控制返回到主调函数中。若return语句中包含表达式,将return语句中的表达式的值返回到主调函数 若没有return语句,则运行到函数体末尾的时候自动返回到主调函数。 int sum100( ) { int i,t=0; for (i=1; i=100; i++) t+=i; return (t);} main( ) { int s; s=sum100( ); printf(%d\n, s); } 对被调函数进行声明的一般形式 函数类型 函数名(参数类型1 参数名1,…); 或 函数类型 函数名(参数类型1,参数类型2,…); 【例】计算并输出两个数的和、差、积、商。 程序如下: #include math.h int prime(int n); main( ) { int a,b,c,n; scanf(%d,n); for (a=6; a=n; a+=2) for (b=3; b=a/2; b+=2) if (prime(b))
您可能关注的文档
- [所有分类]分子扩散与菲克定律.ppt
- [所有分类]初中数学教学设计与案例分析.ppt
- [所有分类]分布式发电技术 第5章.ppt
- [所有分类]募集说明书摘要.pdf
- [所有分类]化雨镇学校微机室的各种管理制度和常用表格.doc
- [所有分类]PPT_3D立体白色小人608个.ppt
- [所有分类]北京理工大学毕业论文.doc
- [所有分类]创业教育.ppt
- [所有分类]十七世纪古典主义文学.ppt
- [所有分类]南京邮电学院高等函授英语3.doc
- 初中生智能手机使用与家庭教育方式的关联研究教学研究课题报告.docx
- 基于自然语言处理的人工智能技术在中学生地理学习反思中的应用教学研究课题报告.docx
- 基于人工智能的小学阶段学生个性化学习困难诊断与辅导策略研究教学研究课题报告.docx
- 融合情感识别技术的初中历史智能学习环境情感交互设计研究教学研究课题报告.docx
- 6 农产品电商物流配送过程中的物流配送成本分析与控制教学研究课题报告.docx
- 金融行业金融科技风险防范与监管框架构建研究教学研究课题报告.docx
- 初中历史教师教学画像构建及教学反思工具应用探索教学研究课题报告.docx
- 环保教育在小学生健康教育中的应用与成效教学研究课题报告.docx
- 基于翻转课堂的初中数学逻辑思维能力培养的实证研究教学研究课题报告.docx
- 《数据仓库在环境监测与保护决策支持系统中的实施》教学研究课题报告.docx
文档评论(0)