清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第7章 用户自定义函数

清华大学出版社 TSINGHUA UNIVERSITY PRESS 目录 71用户自定义函数的种类 7.2函数的定义 7.3被调函数的声明 74函数的调用 7.5函数的嵌套调用 7.6函数的递归调用 7.7数组作函数参数 78变量的作用域 7.9变量的存储类别 返回本章首页
1 返回本章首页 目录 7.1 用户自定义函数的种类 7.2 函数的定义 7.3 被调函数的声明 7.4 函数的调用 7.5 函数的嵌套调用 7.6 函数的递归调用 7.7 数组作函数参数 7.8 变量的作用域 7.9 变量的存储类别

清华大学出版社 TSINGHUA UNIVERSITY PRESS 7.1用户自定义函数的种类 有返回值函数和无返回值函数 C语言的函数兼有其它语言中的函数和过程两种功能,从这个 角度看,又可把函数分为有返回值函数和无返回值函数两种。 1)有返回值函数 此类函数被调用执行完后将向调用者返回一个执行结果,称 为函数返回值,如数学函数即属于此类函数。由用户定义的这种 要返回函数值的函数,必须在函数定义和函数声明中明确返回值 的类型,在函数调用时要接收函数的返回值。 2)无返回值函数 此类函数用于完成某项特定的处理任务,执行完成后不向调 用者返回函数值,这类函数类似于其它语言的过程。由于函数无 须返回值,用户在定义此类函数时可指定官的返回为空类型,空 类型的声明符为Vod,在函数调用时不能得到函数的返回值。 返回本章首页
2 返回本章首页 7.1 用户自定义函数的种类 1. 有返回值函数和无返回值函数 C语言的函数兼有其它语言中的函数和过程两种功能,从这个 角度看,又可把函数分为有返回值函数和无返回值函数两种。 1)有返回值函数 此类函数被调用执行完后将向调用者返回一个执行结果,称 为函数返回值,如数学函数即属于此类函数。由用户定义的这种 要返回函数值的函数,必须在函数定义和函数声明中明确返回值 的类型,在函数调用时要接收函数的返回值。 2)无返回值函数 此类函数用于完成某项特定的处理任务,执行完成后不向调 用者返回函数值,这类函数类似于其它语言的过程。由于函数无 须返回值,用户在定义此类函数时可指定它的返回为空类型,空 类型的声明符为void,在函数调用时不能得到函数的返回值

清华大学出版社 TSINGHUA UNIVERSITY PRESS 7.1用户自定义函数的种类 2.无参函数和有参函数 从主调函数和被调函数之间数据传送的角度看又可分为无参 函数和有参函数两种。 1)无参函数 函数定义、函数声明及函数调用中均不带参数。主调函数和 被调函数之间不进行参数传送。此类函数通常用来完成一组指定 的功能,可以返回或不返回函数值 2)有参函数 也称为带参函数。在函数定义及函数声明时都有参数,称为 形式参数(简称为形参)。在函数调用时也必须给出参数,称为 实际参数(简称为实参)。形参和实参的个数及对应位置参数的 类型必须一致。进行函数调用时,主调函数将把实参的值传送给 形参,供被调函数使用,这一过程叫形实结合方式,也叫参数传 递方式。 返回本章首页
3 返回本章首页 7.1 用户自定义函数的种类 2. 无参函数和有参函数 从主调函数和被调函数之间数据传送的角度看又可分为无参 函数和有参函数两种。 1)无参函数 函数定义、函数声明及函数调用中均不带参数。主调函数和 被调函数之间不进行参数传送。此类函数通常用来完成一组指定 的功能,可以返回或不返回函数值。 2)有参函数 也称为带参函数。在函数定义及函数声明时都有参数,称为 形式参数(简称为形参)。在函数调用时也必须给出参数,称为 实际参数(简称为实参)。形参和实参的个数及对应位置参数的 类型必须一致。进行函数调用时,主调函数将把实参的值传送给 形参,供被调函数使用,这一过程叫形实结合方式,也叫参数传 递方式

清华大学出版社 TSINGHUA UNIVERSITY PRESS 7.2函数的定义 1.无参函数的定义 无参函数的定义形式为: 类型标识符函数名() 声明部分 执行部分 1)函数首部 类型标识符和函数名为函数首部。 (1)类型标识符指明了本函数返回值的类型。无参函数可以 带回或不带回函数值,但一般以不带回函数值的居多,此时函数 类型声明符可以写为void。 返回本章首页
4 返回本章首页 7.2 函数的定义 1.无参函数的定义 无参函数的定义形式为: 类型标识符 函数名() { 声明部分 执行部分 } 1)函数首部 类型标识符和函数名为函数首部。 (1)类型标识符指明了本函数返回值的类型。无参函数可以 带回或不带回函数值,但一般以不带回函数值的居多,此时函数 类型声明符可以写为void

清华大学出版社 TSINGHUA UNIVERSITY PRESS 7.2函数的定义 1.无参函数的定义 1)函数首部 (2)函数名是由用户定义的标识符,应符合标识符命名规则。 函数名后有一个空括号,其中无参数,但括号不可少,作为函数 的标志。 2)函数体 中的内容称为函数体,包括声明部分和执行部分。声明部分 是对函数体内部所用到的变量的类型声明;执行部分完成函数的 功能。 返回本章首页
5 返回本章首页 7.2 函数的定义 1.无参函数的定义 1)函数首部 (2)函数名是由用户定义的标识符,应符合标识符命名规则。 函数名后有一个空括号,其中无参数,但括号不可少,作为函数 的标志。 2)函数体 {}中的内容称为函数体,包括声明部分和执行部分。声明部分 是对函数体内部所用到的变量的类型声明;执行部分完成函数的 功能

清华大学出版社 TSINGHUA UNIVERSITY PRESS 7.2函数的定义 2有参函数的定义 有参函数定义的一般形式为: 类型标识符函数名形式参数表列) 声明部分 执行部分 有参函数比无参函数多了一个内容,即形式参数表 列。在形参表中给出的参数称为形式参数,它们可以是 各种类型的变量,各参数之间用逗号分隔。在进行函数 调用时,主调函数将赋给这些形式参数实际的值。形参 既然是变量,必须在形参表中给出形参的类型声明。 返回本章首页
6 返回本章首页 7.2 函数的定义 2.有参函数的定义 有参函数定义的一般形式为: 类型标识符 函数名(形式参数表列) { 声明部分 执行部分 } 有参函数比无参函数多了一个内容,即形式参数表 列。在形参表中给出的参数称为形式参数,它们可以是 各种类型的变量,各参数之间用逗号分隔。在进行函数 调用时,主调函数将赋给这些形式参数实际的值。形参 既然是变量,必须在形参表中给出形参的类型声明

清华大学出版社 TSINGHUA UNIVERSITY PRESS 7.2函数的定义 3带返回值的函数定义 带返回值的函数,函数体的执行部分必须通过 return语句给 函数返回指定类型的值。 return语句的一般形式为: return表达式; 或者为: return(表达式) 该语句的功能是计算表达式的值,并将该值返回给主调函数。 在函数中允许有多个 return语句,但每次调用只能有一个 return 语句被执行,因此只能返回一个函数值。在定义函数时指定的函 数类型一般应该和 return语句中的表达式类型一致;如果函数值 的类型和 return语句中表达式的值不一致,则以函数类型为准。 返回本章首页
7 返回本章首页 7.2 函数的定义 3.带返回值的函数定义 带返回值的函数,函数体的执行部分必须通过return语句给 函数返回指定类型的值。 return语句的一般形式为: return 表达式; 或者为: return (表达式); 该语句的功能是计算表达式的值,并将该值返回给主调函数。 在函数中允许有多个return语句,但每次调用只能有一个return 语句被执行,因此只能返回一个函数值。在定义函数时指定的函 数类型一般应该和return语句中的表达式类型一致;如果函数值 的类型和return语句中表达式的值不一致,则以函数类型为准

清华大学出版社 TSINGHUA UNIVERSITY PRESS 7.2函数的定义 4不带返回值的函数定义 不带返回值的函数应明确定义为空类型,类型声明符 为void。一旦函数被定义为空类型,就不能在主调函数 中使用被调函数的函数值了。 5函数定义的位置 在C程序中,一个函数的定义可以放在任意位置,既 可放在主函数main之前,也可放在main之后。 在C语言中,所有函数的定义,包括主函数main在 内,都是平行的。也就是说,在一个函数的函数体内, 不能再定义另一个函数,即不能嵌套定义。 返回本章首页
8 返回本章首页 7.2 函数的定义 4.不带返回值的函数定义 不带返回值的函数应明确定义为空类型,类型声明符 为void。一旦函数被定义为空类型,就不能在主调函数 中使用被调函数的函数值了。 5.函数定义的位置 在C程序中,一个函数的定义可以放在任意位置,既 可放在主函数main之前,也可放在main之后。 在C语言中,所有函数的定义,包括主函数main在 内,都是平行的。也就是说,在一个函数的函数体内, 不能再定义另一个函数,即不能嵌套定义

清华大学出版社 TSINGHUA UNIVERSITY PRESS 7.3被调函数的声明 对于用户自定义函数,不仅要在程序中定义函 数,而且在主调函数中还要对该被调函数进行声 明,然后才能使用。 在一个函数中调用另一个自己定义的函数,如 果被调函数在主调函数之后定义,那么在主调函 数中调用被调函数之前应对该被调函数进行声明, 这与使用变量之前要先进行变量声明是一样的。 在主调函数中对被调函数作声明的目的是使编译 系统知道被调函数返回值的类型,以便在主调函 数中按此种类型对返回值作相应的处理。 返回本章首页
9 返回本章首页 7.3 被调函数的声明 对于用户自定义函数,不仅要在程序中定义函 数,而且在主调函数中还要对该被调函数进行声 明,然后才能使用。 在一个函数中调用另一个自己定义的函数,如 果被调函数在主调函数之后定义,那么在主调函 数中调用被调函数之前应对该被调函数进行声明, 这与使用变量之前要先进行变量声明是一样的。 在主调函数中对被调函数作声明的目的是使编译 系统知道被调函数返回值的类型,以便在主调函 数中按此种类型对返回值作相应的处理

清华大学出版社 TSINGHUA UNIVERSITY PRESS 7.3被调函数的声明 1函数声明的一般形式 类型声明符被调函数名(类型形参类型形参.) 或为: 类型声明符被调函数名(类型类型…) 括号内给出了形参的类型和形参名,或只给出形参类 型。便于编译系统进行检错,以防止可能出现的错误。 例如: int max(int a, int b) 或写为: int max(int, int); 10 返回本章首页
10 返回本章首页 7.3 被调函数的声明 1.函数声明的一般形式 类型声明符 被调函数名(类型 形参,类型 形参…); 或为: 类型声明符 被调函数名(类型,类型…); 括号内给出了形参的类型和形参名,或只给出形参类 型。便于编译系统进行检错,以防止可能出现的错误。 例如: int max(int a,int b); 或写为: int max(int,int);
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 中国科学技术大学:《算法基础》课程教学资源(PPT课件讲稿)第七讲 顺序统计学(主讲人:吕敏).pptx
- 《Java语言程序设计》课程教学资源(PPT课件讲稿)第三章 面向对象特征.ppt
- Virtual Topologies - Faculty of Science, HKBU.ppt
- 《Adobe Photoshop CS》软件教程(PPT讲稿)第13章 使用路径.ppt
- 《软件开发》课程PPT教学课件:Chapter 16 异常处理 Exception Handling.ppt
- 西安电子科技大学:《计算机网络 Computer Networks》课程教学资源(PPT课件讲稿)基于CORBA的分布式平台(CORBA编程-Hello World例程).ppt
- 电子工业出版社:《计算机网络》课程教学资源(第五版,PPT课件讲稿)第七章 网络安全.ppt
- 北京大学:浅谈计算机研究的层次与境界(李振华).pptx
- 南京大学:《计算机图形学》课程教学资源(PPT课件讲稿)计算机图形学引言(主讲:路通).ppt
- 国家十一五规划教材:《电子商务案例分析》课程教学资源(PPT课件)第11章 网络社区模式案例分析.ppt
- 西安电子科技大学:《操作系统 Operating Systems》课程教学资源(PPT课件讲稿)Chapter 08 多处理器系统 Multiple Processor Systems.ppt
- 计算机问题求解(PPT讲稿)图论中的其它专题.pptx
- SIGCOMM 2002:New Directions in Traffic Measurement and Accounting.ppt
- 厦门大学计算机科学系:《大数据技术原理与应用》课程教学资源(PPT课件)第十章 数据可视化.ppt
- 成都信息工程大学(成都信息工程学院):分层分流培养个性发展的计算机卓越工程师——专业课分层教学探索与实践.ppt
- 沈阳理工大学:《Java程序设计基础》课程教学资源(PPT课件讲稿)第1章 创建Java开发环境.ppt
- 北京师范大学网络教育:《计算机应用基础》课程教学资源(PPT讲稿)第8章 计算机安全、第9章 多媒体技术.pptx
- 西安电子科技大学:《8086CPU 指令系统》课程教学资源(PPT课件讲稿,共五部分,王晓甜).pptx
- 北京大学:《搜索引擎 Search Engines》课程教学资源(PPT讲稿)Evaluating Search Engines(Search Engines Information Retrieval in Practice).ppt
- 香港浸会大学:《Data Communications and Networking》课程教学资源(PPT讲稿)Chapter 4 Transmission Media.ppt
- 清华大学:Mandarin Pronunciation Variation Modeling.ppt
- 西安电子科技大学:《MATLAB程序设计语言》课程教学资源(PPT讲稿)Chapter1 Matlab系统概述.ppt
- 中国科学技术大学:《网络算法学》课程教学资源(PPT课件)第六章 传输控制.ppt
- 香港浸会大学:《Data Communications and Networking》课程教学资源(PPT讲稿)Socket Programming Part II:Design of Server Software.ppt
- 上海交通大学:《软件开发》课程教学资源(PPT课件)第一讲 概述.ppt
- 《计算机网络原理》课程教学资源(PPT课件讲稿)第二章 网络实现模型.ppt
- 香港理工大学:INSTRUCTION SETS 指令.pptx
- 计算机问题求解(PPT讲稿)B树.pptx
- 北京大学远程教育:《计算机应用基础》课程PPT教学课件(专科)串讲(综合复习).pptx
- 《Microsoft Access 2003》教程PPT:第9章 报表设计.ppt
- 《编译原理和技术》课程PPT教学课件:第十三章 函数式语言的编译.ppt
- 四川大学:Object-Oriented Design and Programming(Java,PPT课件).ppt
- 安徽理工大学:《汇编语言》课程教学资源(PPT课件讲稿)第五章 循环与分支程序设计.ppt
- 《C程序设计》课程PPT教学课件(电子教案)第六章 函数.ppt
- 基于语义关联和信息增益的TFIDF改进算法研究.ppt
- Integrated analysis of regulatoryand metabolic networks revealsnovel regulatory mechanisms inSaccharomyces cerevisiae.ppt
- 山东大学:《计算机图形学》课程PPT教学课件(Programming with OpenGL)Part 3:Three Dimensions.ppt
- 《算法设计技巧与分析》课程教学资源(PPT讲稿)Lecture 8 贪婪法则 Greedy Approach.ppt
- 山西国际商务职业学院:《网页设计与制作》课程教学资源(PPT课件)第一章 网页设计基础知识.ppt
- 《多媒体教学软件设计》课程PPT教学课件:第13章 多媒体教学软件中脚本编程技巧.ppt