c语言第5章 函数与程序结构.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言第5章 函数与程序结构

第5章 函数与程序结构 思考 若两个素数之差为2,则这两个素数就是一对孪生素数。例如,3和5,5和7,11和13等都是孪生素数。编写一个程序,找出1~200之间的所有的孪生素数。 寻找并输出11~999之间的数m,它满足m、m2和m3均为回文数。 回文:各位数字左右对称的整数。 例如:11满足上述条件 112=121,113=1331。 要解决的问题 为什么用函数? 怎样调用函数(即怎样使用函数)? 如何定义函数?(即如何编写自己的函数) 如何把要处理的数据告诉函数? 函数怎样把处理的结果告诉使用者? 什么是形式参数(简称形参)? 什么是实在参数(简称实参)? 什么是返回值? 函数的嵌套调用? 为什么要声明函数原型?如何声明函数原型? 函数的递归调用? 内容提要 函数定义、函数调用、函数原型、函数返回值 难点:函数的参数传递与返回值 全局变量、自动变量、静态变量、寄存器变量 难点:变量的作用域与存储类型 程序调试 结构设计与模块化 代码风格问题 函数的定义 函数名和形式参数都是由用户命名的标识符。 在同一个程序中,函数名必须唯一;形式参数名只要在同一个函数中唯一即可,可以与其它函数中的变量同名。 C语言规定,不能在一个函数的内部再定义函数 若在函数的首部省略了函数返回值的类型名,把函数首部写成: 函数名(类型 参数1, 类型 参数2, ……) c语言默认函数返回值的类型为int型。 例5.1a 计算两个整数的平均数 /* 函数功能: 计算平均数 函数入口参数: 整型x,存储第一个运算数 整型y,存储第二个运算数 函数返回值: 平均数 */ float Average(int x, int y) { float result; result = (x + y) / 2.0; return result; } 函数的参数 函数的参数有两种: 形式参数(简称“形参”) 实际参数(简称“实参”) 形参 函数定义时函数名后括号内是形参列表,每个形参由类型和名称两部分组成。各形参之间用逗号隔开,如 int Average(int x, int y) {……} 参数x和y都是形参。在定义函数时,系统并不给形参分配存储单元,当然形参也没有具体的数值,所以称其为形参,也叫虚参。形参在函数调用时,系统暂时给它分配存储单元,以便存储调用函数时传来的实参。一旦函数结束运行,系统马上释放相应的存储单元。 如果函数没有参数,则用void填充 如教材P112 例4.12 实参 调用函数时,函数名后括号内是实参列表 如ave = Average(a, b);中的a和b就是实参。实参可以是常量、变量或表达式。 有参函数和无参函数 从函数参数角度,函数可分为:有参函数和无参函数 无参函数在定义、说明、调用时均不带参数,但不能省略函数名后的一对圆括号“()” 有参函数在定义、说明、调用时均带参数 函数返回值 函数的返回就是函数执行结束,返回到调用它的函数。当函数返回到主调函数时,有时会有数据带给主调函数,也可以没有任何数据返回给主调函数。返回的数据称为函数的返回值,通常用return语句来实现返回。return语句的形式为: return 表达式; 或return (表达式);或 return; retum 语句中的表达式的值就是所求的函数值。此表达式值的类型必须与函数首部所说明的类型一致。若类型不一致,则以函数值的类型为准,由系统自动进行转换。当程序执行到 return语句时,程序的流程就返回到调用该函数的地方(通常称为退出调用函数),并带回函数值。在同一个函数内,可以根据需要在多处出现 return 语句。 return 语句也可以不含表达式,这时它的作用只是使流程返回到调用函数,并没有确定的函数值。函数体内可以没有 return 语句,程序的流程就一直执行到函数末尾的“ } ,然后返回调用函数,这时也没有确定的函数值带回。 C语言中,凡不加类型说明的函数,一律自动按整型(int)处理。这样做不会有什么好处,却容易被误解为void类型。为了避免混乱,如果函数没有返回值,那么应声明为void类型。 如:用函数实现输出一个数的所有因子。 函数调用(call) 函数名(表达式1, 表达式2, ……); 调用函数时,提供的表达式,叫实际参数, (argument) 有返回值时 放到一个数值表达式中 如 c = max(a,b); 作为另一个函数调用的参数 如 c = max(max(a,b),c); printf(%d\n, max(a,b)); 无返回值时 函数调用表达式 如 display(

文档评论(0)

f8r9t5c + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档