库函数、函数的定义与返回值.ppt_第1页
库函数、函数的定义与返回值.ppt_第2页
库函数、函数的定义与返回值.ppt_第3页
库函数、函数的定义与返回值.ppt_第4页
库函数、函数的定义与返回值.ppt_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第七章函数、库函数、函数的定义和上门值函数的调用、函数的说明调用函数和被调用函数之间的数据传递函数的递归调用、程序示例、第七章函数在解决比较复杂的实际问题时,要完成的所有任务都写入main函数在这种情况下,程序通常由一个main函数和多个其他函数组成,每个函数都是相对独立的功能的一部分。 中的组合图层性质变更选项。 在上一章中,所有编写的程序都由main函数组成,main函数调用了scanf、printf等系统函数。 模块化编程方法、函数间相互调用的含义、main() f1() f11() f1(); f11 (); f12() f2(); f12 (); f2() f21() f21 ();

2、、函数的分类是从函数形式到没有残奥元函数的残奥元函数吗? 你学了什么样的无残奥和有残奥的函数?用户看到的标准函数(库函数):由系统提供用户定义的函数,由系统提供库函数,用户以所需格式正确调用即可。 c编译系统提供的库函数稍有不同。7.1使用库函数、库函数时应注意的问题: 1、调用库函数时使用include命令包含相关的头文件。 例如,调用数学函数,在include math.h |中调用输入输出函数,在include stdio.h |中调用字符函数,在include ctype.h | 2、库函数中调用的一般形式:函数名(函数名)例:求平方根的函数s 一种是出现在公式中,也就是说,运算作为公

3、式的一部分来涉及。 例如,如果修正y=x2.5 1.3,则在下面的语句调用中实现。 y=pow(x,2.5) 1.3。 二是调用独立的语句,即函数后加分号。 例如: printf(*n ); 4 .调用库函数时,请注意残奥仪表的特殊要求。 如果三角函数需要以弧度表示参数残奥参数,则开放式平方函数的参数残奥参数值必须大于或等于0。使用程序库函数应注意的问题(续)、函数门限值的类型缺省int型门限值无3: void、函数主体、函数型函数名(残奥仪表型说明表)说明部分执行部分、7.2函数的定义和门限值、1 .函数定义的一般格式、现代样式3330 如果函数类型不是void,则函数主体最后使用retur

4、n语句返回值。 例1残奥仪表函数(现代风格) int max(int x,int y) int z; z=xy? x:y; 返回(z ); 例3无残奥表voidprintstar () printf (* * * * * * * * * n ); 或voidprintstar (语音)打印机(* * * * * * * * * n )。 函数的定义示例,示例4空函数void dummy(void ),函数主体为空(将在以后添加),int max2(int x,int y) /*现代风格*/int max; if (xy )最大值=x; 最大值=y; 打印(最大(最大2 )=% dn,最大);

5、返回(最大); 电话主机() int a、b、最大; scanf(%d,%d,实例函数的定义,残奥参数和函数体中定义的变量只有在调用函数时才暂时分配存储单元,在函数结束时,这些存储单元全部被释放(称为局部性,因此与其他函数的变量同名) 对于main (),main函数是什么类型? 可以改写成max=xy吗? x:y;波形残奥仪表、实际残奥仪表、函数和函数之间是平等的,void main() int max2(int x,int y) int z; 射频(xy ) z=x; 欧洲z=y; 返回(z ); int a、b、最大值; scanf(%d,%d,函数的定义是平行的,不能在一个函数内部定义

6、其他函数。 也就是说,每个函数都是相对独立的模块,在编写一个函数时不能包含其他函数的定义(请参见运行main函数时具有稍微小的权限)返回语句的形式return (表达式)。 或返回表达式或返回; 功能:将程序控件转换为从被调用函数调用的函数,转换为被调用函数的说明:即使函数有多个return语句,也只能执行其中一个return语句。 函数没有return语句或没有表达式的return语句如果此函数结束时自动返回调用函数的不确定值函数类型与return语句中的表达式值类型不一致,则根据前者,自动转换函数调用转换void类型函数:明确说明函数没有门限值x:y; 返回(z ); 主()浮点a,b;

7、扫描(%f,%f,例如函数门限值类型转换,主() int a,b,最大; scanf(%d,%d,实例函数可以有多个return语句。 注意:在c语言中,不能指定函数名称。 return语句只返回一个值。 int max2(int x、int y) max2=xy? x:y; 打印机,打印机,打印机。 主()接口; a=打印开始(); 打印机(a=% dn,a ); 输出: a=10,实例函数带回不确定值,printstar ()是什么类型? void型函数:明确函数没有门值,# include/* void */print star () printf (* * * * * * * * *

8、* * * n ); 主()接口; a=打印开始(); a=打印开始(); 打印机(a=% dn,a ); voidprintstar ()打印机(* * * * * * n )。 主()接口; a=打印开始(); 打印机(a=% d,a ); 编译错误! (VC ) errorc 21203360 voidillegalwithalltypes,说明: (1)调用函数时,其名称必须与定义的名称相同。 (2)只写函数调用时的实参数名的情况下,没有必要在名前附加实参数类型。 上面对main函数中对max2函数的调用可以是: max=max2(入口a,入口b ); 7.3函数的调用1 .函数调用的

9、一般形式:函数名称(实残奥仪表),说明: (3)实参加形残奥仪表,个数必须一致。 如果实际残奥仪表少,有形残奥仪表就不能得到值(不确定值),影响结果。 实参多,馀佗无效(TC )。 例如: c=max2(3); 如果c的值是: 761 (随机值),则c=max2(3,5,8 ); c的值,5 (4)实际参加形式残奥仪表的类型必须一对一地一致。 如果不匹配,程序可以运行,但不能得到正确的结果(TC )。 示例: c=max (3. 0,5.0 ); c的值为: 0时: c=max(3L,5L ); c的值为: 3,函数调用说明(续),(5)函数必须先定义后调用。 调用函数的定义在前面,调用在后面

10、。 门值类型为int或char的函数除外。 (6)函数可以直接或间接地调用自己(递归调用,在7.6节中介绍),函数调用描述(续),(7)实际参考表的评估顺序由系统决定(turbo c从右到左)、#includestdio.h printf(%d,% ) /*tc:3、3、2vc33603、3、2 */# include stdio.hvoidmain () intp=2。 打印机(%d、%d、%dn、p、p ); /* TC :3,2,2 VC 33602,2,2 * /,2 .函数调用的方式,1 .函数表达式:示例m=max(a,b)*2。 2 .函数语句:例如printstar (); 打

11、印机(健康,世界! n ); 3 .函数残奥定参数:例如printf(%d,max(a,b): m=max(a,max(b,c ) )、7.4函数的说明、在c语言中,除了主函数以外,对用户定义函数遵循“先定义,后使用”的规则。 在调用前未定义的函数时,c编译器的缺省函数的上限值为int类型。 对于具有其他类型的门值的函数,如果将函数定义放在调用之后,则必须在调用之前描述该函数(也称为函数原型描述)。 对c语言调用函数的要求:现有的函数库函数: #include用户定义函数:函数类型说明,1 .函数说明一般形式,函数说明文作用:编译系统max2函数是浮点型的两个浮点型的残奥参数中的组合图层性质变

12、更选项。 在VC中不被允许。 说明,(1)函数的说明可以是独立的句子,如上例所示,采用独立的句子形式。(2)函数说明中的波形残奥仪表名称是伪的,可以是任意的用户标识符,不需要与函数头中的波形残奥仪表名称一致,也可以是与程序中的任意的用户标识符相同的名称。 因此,可以省略残奥仪表名称。 上例函数的说明可以写成浮点max2(浮点,浮点)。 (3)注意函数的定义和函数的说明不同,定义是写出函数的完整形式,说明是把这个函数的过户值的类型、残奥仪表的个数和类型传达给系统,编译时容易进行有效的类型检查。 (4)如果函数的上限值的类型是int或char,则也可以不进行函数的说明(系统默认)。 但是,这种方法

13、不能检查残奥仪表的类型。 在函数调用时使用不正确的残奥参数不会在编译时报告错误。 因此,为了程序明确安全,建议全部说明。 (5)如果被调函数的定义出现在基调函数之前,则也可以不进行函数的说明。 (在某些系统(如Borland C、VC等)中,函数说明需要说明函数的类型和残奥仪表的类型,还需要说明void和int类型的函数。 中的组合图层性质变更选项。 例函数的说明例,2 .函数的说明位置,(1)放置在调用函数的说明部分(只有该调用函数才能识别被调用的函数)。 您可以将独立陈述式放置在与其他变数定义相同的陈述式中。 以上的用法是浮点a、b、c、最大值2 (浮点、浮点); (2)放在所有函数的外部

14、,在被调用之前。 (在这种情况下,可以在函数说明后的所有位置调用此函数。) 浮动最大值2 (浮动、浮动); 主()浮点a、b、c; scanf(“%f%f”,float max2(float x,float y ),函数说明放置在所有函数的外部,例如函数说明例,(3)在调用程序库函数时, 在程序开头使用命令: #iii的形式参加实变量的概念形式残奥仪表:定义函数时函数名后面括弧中的变量名称的实际残奥仪表:调用函数时函数名后面括弧中的公式、被称为7.5函数的函数之间的数据传输、形变量:x、 y形自变量必须指定类型,实际残奥仪表:a、b实际残奥仪表:a、100、(1)实际残奥仪表式可以是变量或常数

15、,但需要确定值(2)形参加实际残奥仪表类型一致,要求个数相同(多3360略/) 波形残奥仪表在函数调用之前不占用内存在函数调用时向形状残奥仪表分配内存调用结束后释放内存(5) C语言的残奥仪表传递方式值传递方式:函数调用时,系统暂时向被调制函数的残奥仪表分配内存在将实际残奥仪表值复制到残奥仪表的被调制函数结束时,残奥仪表单元被释放,实际残奥仪表单元维持原来的值。 特征:单向传递值(数值或地址值)。 一个残奥仪表传递的一些描述是x,1.2,1.2,1.728,1,1 .变量为残奥仪表(单向数值传递),Cube kju:b n .立方体,立方体,主() voidsss,其中int x=10,y=20; 打印机(“(1) x=% dy=% dn”、x、y ); 交换(x,y ); 打印机(“(4) x=% dy=% dn”、x、y ); 音频交换(入口、出口)入口。 打印机(“(2) a=% db=% dn”、a、b ); t=a; a=b; b=t; 打印机(“(3) a=% db=% dn”、a、b ); 在函数关残奥字计量器之间的单向传输,程序的执行结果是: (1) x=10 y=20 (2) a=10 b=20 (3) a=20 b=10 (4) x=10 y int x=10,y=20,z=30。 打印机(“(1) x=% dy=% dz=% dn”、x、y、z )。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论