- 1、本文档共63页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章函数与变量.ppt
第8章 函数与变量 函数的定义 函数的参数和返回值 函数的声明和调用 函数的递归调用 外部函数与内部函数 变量的作用域和存储类型 ? 8.1 函数 C语言提供的标准库中存放着若干已定义的函数,如常用的printf()、scanf()、fabs()、sqrt()等函数,在使用这些库函数时,需要使用文件包含命令(#include)将带有该函数定义的头文件包含到当前C程序中; 对于标准库函数中没有提供的函数常常需要用户编写自定义函数来实现诸多应用功能。 8.1.1 函数的定义 函数的定义形式有两种:经典C函数定义和标准C函数定义。在Turbo C中使用两种定义形式均可。 经典C中函数定义的一般形式是: 函数类型 函数名(形参表列) 形参说明 { 声明部分 执行部分 } 8.1.1 函数的定义 标准C又提供了另一种形式的函数定义——函数原型定义,即将形参表列和形参说明和并在一起,放在函数名后面的括号中,其一般形式为: 函数类型 函数名(类型 形参1,类型 形参2,?,类型 形参n) { 声明部分 执行部分 } 其中第一行构成函数头,下面用花括弧括起来的部分构成函数体。 8.1.2 函数的参数和返回值 1 函数的参数 由前述可知,定义函数时的参数为形参,调用函数时的参数为实参。 形参和实参不同: 当函数未被调用时,形参只是形式上的参数,不占内存也无确定值。只有 当函数被调用时,形参才被分配内存单元,接收传递来的实参值; 8.1.2 函数的参数和返回值 2.函数的返回值 函数返回值的取得是通过在被调函数中设置return语句得到的, 其格式一般为: ? return(表达式); return语句的执行过程是:先计算return后括号内表达式的值,再将计算结果返回给主调函数。 8.1.3 函数的声明和调用 1 函数声明 一个函数调用另一个函数必须具备的前提是: ⑴ 被调函数已存在,也就是说,被调函数的定义已经存在。该被调函数可以是库函数,也可以是用户自定义的函数。 ⑵ 对于库函数,调用前要在主调函数所在的源文件中用#include命令包含相应的头文件(即包含有该库函数的定义的文件);对于自定义函数,要在主调函数中对其进行声明。 8.1.3 函数的声明和调用 2.函数调用 函数调用即主调函数通过传递某些信息来使用被调函数的功能。 函数调用的一般格式是: 函数名(实参表列); 其中,圆括弧内实参的个数、出现的顺序必须与函数定义中的形参保持一致,实参类型一般也应与形参表列对应相同,实参之间用逗号隔开。 函数调用过程 函数嵌套调用执行顺序 例8.9 弦截法解方程的思想如图8.5所示。 程序算法N-S流程图如图8.6所示。 源程序如下: #include math.h float f(float x) { float y; y=((x-5.0)*x+16.0)*x-80.0; return(y); } float xpoint(float x1,float x2) { float y; y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1)); return(y); } float root(float x1,float x2) { float x0,y0,y1; y1=f(x1); do{x0=xpoint(x1,x2); y0=f(x0); if (y0*y10) {y1=y0;x1=x0;} else x2=x0; }while(fabs(y0)=1e-6); return(x0); } main() {float x1,x2,f1,f2,x0; do{printf(Input x1,x2: ); scanf(%f,%f,x1,x2); f1=f(x1); f2=f(x2); }while(f1*f2=0); x0=root(x1,x2); printf(A root of equation is %8.4f,x0); } 程序运行如图8.7所示。 8.1.4 函数的递归调用 递归调用有直接递归和间接递归两种调用方式,其
您可能关注的文档
- 电动公交车大功率高容量锂电池.pdf
- 电动汽车充换电设施典型设计方案研究.pdf
- 百尺竿头.ppt
- 皇家墨尔本理工大学统计与运筹学硕士申请.pdf
- 禁忌搜索算法浅析.doc
- 离散设施选址问题研究综述.pdf
- 移动通信基站中继接入中的几种无线接入方式.pdf
- 站场及枢纽第六篇 -.pdf
- 站点勘察.pdf
- 竞赛班练习题2 浙教版.ppt
- 中国国家标准 GB/T 22517.2-2024体育场地使用要求及检验方法 第2部分:游泳场地.pdf
- GB/T 22517.2-2024体育场地使用要求及检验方法 第2部分:游泳场地.pdf
- 《GB/T 22517.2-2024体育场地使用要求及检验方法 第2部分:游泳场地》.pdf
- 苏教版(2017秋)科学三年级下册1.《种子发芽了》 教案(含课堂练习和反思).docx
- 2024-2025学年小学数学六年级上册冀教版(2024)教学设计合集.docx
- 地理商务星球版七年级上册4.5形成气候的主要因素 同步教案.docx
- 2024-2025学年中职中职专业课金融类73 财经商贸大类教学设计合集.docx
- 2024-2025学年初中地理七年级上册(2024)仁爱科普版(2024)教学设计合集.docx
- 2024-2025学年小学英语二年级上册外研版(一起)教学设计合集.docx
- 2024-2025学年高中数学选择性必修 第二册北师大版(2019)教学设计合集.docx
文档评论(0)