- 1、本文档共48页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
universityC程序设计的教程
大学C++程序设计教程 西安交通大学 计算机教学实验中心 第6章 函数 本章目标: 掌握C++程序中函数的定义方法和函数调用规则。 掌握C++程序中主调函数和被调函数之间进行数据传递的规则 掌握函数的返回值和它的类型。 掌握内联函数的概念 掌握函数重载的概念 授课内容 6.1 函数概述 6.2 函数的定义 6.3 函数的调用 6.4 函数原型 6.5 函数间的参数传递 6.6 局部变量和全局变量 6.7 带有缺省参数的函数 调试技术 程序设计举例 6.1 函数概述 C++语言程序的结构特点是,程序整体由一个或多个称为函数的程序块组成。每个函数都具有各自独立的功能和明显的界面,从而使程序具有清晰的模块结构。 在C++语言程序中的若干个函数中必须有一个且只能有一个函数成为主函数。程序的执行总是从主函数开始,主程序的语句执行完,则程序执行结束。 在一个函数中可以使用另一个函数的功能,这成为函数调用。C++提供三种类型的函数: main主函数 标准库函数 用户自定义函数 说明: (1)一个源程序文件由一个或多个函数组成。 (2)一个C程序由一个或多个源程序文件组成。 (3)C程序的执行从main函数开始,调用其他函数后流程回到main函数,在main函数中结束整个程序的运行。 (4)所有函数都是平行的,即在定义函数时是互相独立的,一个函数并不从属于另一函数,即函数不能嵌套定义,函数间可以互相调用,但不能调用main函数。 (5)从用户使用的角度看,函数有两种: ① 标准函数;② 用户自己定义的函数 (6) 从函数的形式看,函数分两类: ① 无参函数;② 有参函数 6.2 函数定义 函数的定义就是编写完成函数功能的程序块。 函数定义的一般格式: 函数值类型 函数名(形式参数表 ) { 函数体 } 函数值类型 C++语言函数返回值所具有的数据类型与变量类型相同。当函数返回值是数值时,它可以是带符号或unsigned的char、int、short、long型以及float、double型。当返回值是地址时,函数的数据类型是指针型。当函数没有返回值时,它的类型是void。 形式参数 1.函数可以带有零个或多个形式参数。 2.函数的是函数的内部变量。即形式参数的生存期和作用域仅限于函数内部。 3.形式参数只是被初始化的内部变量,即只有当函数被调用,形式参数才被赋予调用函数传递来的实参数值 2.函数值类型声明 说明调用该函数后所得到的函数值类型,是通过函数体内部的return语句提供。 return语句提供的表达式的值的类型应与函数说明中的函数值类型一致。 如果某一函数确实没有返回值,则使用说明符void。例如: void main() { … …} 这时函数中不能出现有返回值的return语句。 3.形式参数声明 表示将从主调函数中接收哪些类型的信息 例: double grav(double m1, double m2, double distance) 形式参数可以在函数体中引用,可以输入、输出、赋值或参与运算 参数说明格式为: 类型参数1,类型参数2,…,类型参数n 例: int array[],int count 4. 函数间的信息交换 C++语言中可以使用参数在函数之间传递数据。 主函数和子函数之间的信息交换是通过参数的结合和return语句来实现的。 数据流程是: 在主程序中,先给实参赋值 通过函数调用,将数据从主函数带到子函数 形参带值后,即可进行相应的数据处理 如果有结果值,通过return语句带回到主函数 参数传递可以分为: 1.数据复制方式 2.地址传递方式 3.利用参数返回结果 4.利用返回值传递数据 5.使用全局变量传递数据 例6.1 求N的阶乘n! 算法分析: 计算公式为: n!= n×(n-1)×…×3×2×1,且0!=1 在子函数中只需一个数据x,故设一个参数n 计算结果要返回主函数,故设一个变量result n的阶乘可在一重循环中实现 因阶乘的结果值很大,故设结果变量为长整数 例6.1 求N的阶乘n!(续) int fac(int n) { int result=1; if(n0)return -1;else if(n==0)return 1; while(n1) { result*=n; n--; } return result; } 6.2 函数的调用 在C++中,除了主函数外,其他任何函数都不能单独作为程序运行。任何函数功能的实现都是通过被主函数直接或间接调用进行的。所谓函数调用,就是使程序转去执行函数体。 无参函数的调用格式为: 函数名( ) 有参函数的调用格式为: 函数名(实参表) 其中实际参数简称实
文档评论(0)