《C程序设计》课程PPT教学课件(电子教案)第六章 函数

第六章函数 令函数定义与分类 ◆函数参数和返回值 ◆函数与数组 函数与指针 ◆递归函数 命令行参数
❖ 函数定义与分类 ❖ 函数参数和返回值 ❖ 函数与数组 ❖ 函数与指针 ❖ 递归函数 ❖ 命令行参数 第六章 函数

6.1概述 main函数又叫主函数,任何个可执行的C 程序必须有一个也只能有一个ma网数,它 是程序执行的起点。 >利用函数,可以很方便地实现程序的模块 化设计。 》使用函数可以把一些常用功能的代码段组 织为一个紧凑的可重复使用的单元,这样就 可以大大减少重复输入程序代码的工作量, 同时更增加了程序的可读性
6.1 概述 ➢ main函数又叫主函数,任何一个可执行的C 程序必须有一个也只能有一个main函数,它 是程序执行的起点。 ➢ 利用函数,可以很方便地实现程序的模块 化设计。 ➢ 使用函数可以把一些常用功能的代码段组 织为一个紧凑的可重复使用的单元,这样就 可以大大减少重复输入程序代码的工作量, 同时更增加了程序的可读性

6.2函数定义与分类 函数定义 函数分类
6.2 函数定义与分类 ➢ 函数定义 ➢ 函数分类

6.2.1函数定义 类型标志符:表明函 数返回值的类型,如果/数名:命名规 由类型标识符、函数 省略,系统则认为是 则同变量名。用于名和形参列表组成的 int型的。 调用该函数。 部分称为函数的百 部 void login Exec(char moudle) 形参列表:定义要传值 的局部变量,保存调用 switch(moudle) 该函数时的输入信息。 形参多于一个时,用逗 号分隔。没有形参时, 括号不能省略。形参列 函数体:该函数功能具体的实现过程。道表的方式如下: 常包括若干变量的定义和若干语句。函数类型标志符参数名1, 体由一对大括号和其中包括的语句组构成。类型标志符参数名2, 大括号内可为空
4 6.2.1 函数定义 void loginExec(char moudle) { switch(moudle) …… } 类型标志符:表明函 数返回值的类型。如果 省略,系统则认为是 int型的。 函数名:命名规 则同变量名。用于 调用该函数。 形参列表:定义要传值 的局部变量,保存调用 该函数时的输入信息。 形参多于一个时,用逗 号分隔。没有形参时, 括号不能省略。形参列 表的方式如下: 类型标志符 参数名1, 类型标志符 参数名2, …… 函数体:该函数功能具体的实现过程。通 常包括若干变量的定义和若干语句。函数 体由一对大括号和其中包括的语句组构成。 大括号内可为空 由类型标识符、函数 名和形参列表组成的 部分称为函数的首 部

6.2.2函数分类 从函数的参数个数来看,函数分为以下两类 无参函数 无需根据任何其它外部输入信息,完成预先设计的固定功能 的函数。 void outputCourseInfoTitle() dcout < 课程号- 课程名---1 <<"-学分--总学时--周学时--学期-"<<end; 有参函数 必须根据其它外部输入信息,才能完成预先设计的一定功能 的函数。 void login Exec(char moudle)
5 ❖无参函数 无需根据任何其它外部输入信息,完成预先设计的固定功能 的函数。 6.2.2 函数分类 从函数的参数个数来看,函数分为以下两类: ❖有参函数 必须根据其它外部输入信息,才能完成预先设计的一定功能 的函数。 void outputCourseInfoTitle() {cout << " |----课程号----|------课程名------|" << "-学分-|-总学时-|-周学时-|-学期-|" << endl; } void loginExec(char moudle) { …… }

6.2.2函数分类 从函数的返回值个数来看,函数分为以下两类: 无返回值函数 调用该函数,完成预先设计的功能后,迸不返回任何值的函 数。通常,无参函数都不返回值。 void outputCourseInfo( dcout y) return(X); else return y)i y
6 ❖无返回值函数 调用该函数,完成预先设计的功能后,并不返回任何值的函 数。通常,无参函数都不返回值。 6.2.2 函数分类 从函数的返回值个数来看,函数分为以下两类: ❖有返回值函数 调用该函数,完成预先设计的功能后,有返回值的函数。 int maxInt(int x, int y) { if(x > y) return(x); else return(y); } void outputCourseInfoTitle() {cout << " |----课程号----|------课程名------|" << "-学分-|-总学时-|-周学时-|-学期-|" << endl; }

6.2.2函数分类 从函数的来源看,函数分为以下两类: 系统库函数 由系统提供的,不需要用户编写可以直接使用的函数。 不同的C编译系统提供的库函数的数量和功能是不同的,但 有一些基本的函数是共同的,如 printf、sca。 用户自定义函数 只使用系统库函数无法完成需要的功能,由用户自已编写的 函数。 用户自定义函数根据结构化程序设计要求,对实际问题进行 模块分解后而产生,往往是在调用若干系统库函数的基础上 实现的。 void outputCourseInfoTitleO Scout < 课程号 课程名 <<"-学分--总学时-周学时-学期-"<<endl;
7 ❖系统库函数 由系统提供的,不需要用户编写可以直接使用的函数。 不同的C 编译系统提供的库函数的数量和功能是不同的,但 有一些基本的函数是共同的,如printf、scanf等。 6.2.2 函数分类 从函数的来源看,函数分为以下两类: ❖用户自定义函数 只使用系统库函数无法完成需要的功能,由用户自己编写的 函数。 用户自定义函数根据结构化程序设计要求,对实际问题进行 模块分解后而产生,往往是在调用若干系统库函数的基础上 实现的。 void outputCourseInfoTitle() {cout << " |----课程号----|------课程名------|" << "-学分-|-总学时-|-周学时-|-学期-|" << endl; }

6.3函数参数和返回值 函数参数 函数返回值
6.3 函数参数和返回值 ➢ 函数参数 ➢ 函数返回值

6.3.1函数参数 函数参数的作用在于在调用某个函数时由调用者向 该被调用函数传递信息。 函数参数有两类:形式参数和实际参数简称形参 和实参。 在C语言中,当发生函数调用时,由实参到形参的参 数传递方式常用的有两种调用方式:传值调用和传址 调用。此外,C+还实现了传引用这一种调用方式,综 合了传值调用和传址调用两者的优点
6.3.1 函数参数 • 函数参数的作用在于在调用某个函数时由调用者向 该被调用函数传递信息。 • 函数参数有两类:形式参数和实际参数,简称形参 和实参。 • 在C语言中,当发生函数调用时,由实参到形参的参 数传递方式常用的有两种调用方式:传值调用和传址 调用。此外,C++还实现了传引用这一种调用方式,综 合了传值调用和传址调用两者的优点

6.3.1传值调用 例6.1用户选择不同身份登录程序:61.cpp int nino char choice /打开登录菜单 crtt.退 系统登录 n"; n"; cout>choice,,g') 入选探 if(choice 元为零,则退出程序 return 函数形参 loginEXec(choice); /调用登求采甲 return 5 在传值调用中,调用函数时mn00ra 参数的传递过程是由实参变量 /登录菜单执行函数 “单向值传递”给对应的形参变 switch(moudle) 量,形参的变化是不能影响实参 cas oe 的。在此例中,只能由主函数的 return /退出程序 choice变量传递其值给被调用函 break; case 1 数的形参变量 module,在被调函 studentLogin() //调用学生登录函数 数中不管 module变量发生了什么 break e"2 变化,都不会再传递回 choice变 teacherLogin(); /调用教师登录函数 量, choice变量的值在整个函数 break 调用过程中不会发生任何变化
6.3.1 传值调用 例6.1 用户选择不同身份登录 程序:6_1.cpp 函数实参 函数形参 在传值调用中,调用函数时 参数的传递过程是由实参变量 “单向值传递”给对应的形参变 量,形参的变化是不能影响实参 的。在此例中,只能由主函数的 choice变量传递其值给被调用函 数的形参变量module,在被调函 数中不管module变量发生了什么 变化,都不会再传递回choice变 量,choice变量的值在整个函数 调用过程中不会发生任何变化
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 安徽理工大学:《汇编语言》课程教学资源(PPT课件讲稿)第五章 循环与分支程序设计.ppt
- 四川大学:Object-Oriented Design and Programming(Java,PPT课件).ppt
- 《编译原理和技术》课程PPT教学课件:第十三章 函数式语言的编译.ppt
- 《Microsoft Access 2003》教程PPT:第9章 报表设计.ppt
- 北京大学远程教育:《计算机应用基础》课程PPT教学课件(专科)串讲(综合复习).pptx
- 计算机问题求解(PPT讲稿)B树.pptx
- 香港理工大学:INSTRUCTION SETS 指令.pptx
- 《计算机网络原理》课程教学资源(PPT课件讲稿)第二章 网络实现模型.ppt
- 上海交通大学:《软件开发》课程教学资源(PPT课件)第一讲 概述.ppt
- 香港浸会大学:《Data Communications and Networking》课程教学资源(PPT讲稿)Socket Programming Part II:Design of Server Software.ppt
- 中国科学技术大学:《网络算法学》课程教学资源(PPT课件)第六章 传输控制.ppt
- 西安电子科技大学:《MATLAB程序设计语言》课程教学资源(PPT讲稿)Chapter1 Matlab系统概述.ppt
- 清华大学:Mandarin Pronunciation Variation Modeling.ppt
- 清华大学出版社:《C语言程序设计》课程教学资源(PPT课件讲稿)第7章 用户自定义函数.ppt
- 中国科学技术大学:《算法基础》课程教学资源(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
- 基于语义关联和信息增益的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
- 中国科学技术大学:《计算机体系结构》课程教学资源(PPT课件讲稿)动态调度(Cont)、推断执行和ILP.ppt
- 香港浸会大学:《Experiencing Cluster Computing》Class 8 Case Studies.ppt
- 香港理工大学:Building Robust Wireless LAN for Industrial Control with DSSS-CDMA Cell Phone Network Paradigm.ppt
- International Trade Forms.ppt
- 因特网多媒体技术(PPT讲稿).ppt
- 长春工业大学:《电子商务》课程教学资源(PPT课件)第9章 网络鞋城前台页面.ppt
- 数据传送类指令(PPT讲稿).ppt
- Lower bound for sorting, radix sort.ppt
- 《ASP动态网页设计实用教程》教学资源(PPT课件讲稿)第8章 Web数据库基础.ppt
- 卷积码的概率译码(PPT讲稿).ppt
- 电子工业出版社:《计算机网络》课程教学资源(第五版,PPT课件讲稿)第十章 下一代因特网.ppt
- 复旦大学:Trapping in scale-free networks with hierarchical organization of modularity.pptx
- Network and System Security Risk Assessment(PPT讲稿)Introduction.ppt
- 香港科技大学:Latent Tree Models.pptx