- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C的函数
第5章 C++的函数 本章要点: ? 函数的概念及其定义 ? 函数的各种参数传递方式 ? 函数的递归调用 ? 函数指针的定义和调用 ? 重载函数的定义和应用 ? 作用域和寿命期 ? 各种局部变量的含义和应用 ? 名字空间域的概念和应用 5.1 循序渐进学理论 5.1.1 函数的定义 5.2 典型实例练能力 5.2.1 典型实例一: 折半查找有序数组中的元素 【实例题目】 假设有一个有序的整型数组: int list[10] = {12,34,55,62,68,76,79,88,91,97}; 编写一个函数,通过折半法查找并返回某个指定元素key的位置,如果指定的元素不存在,则返回-1。 5.2.2 典型实例二:路径问题 【实例题目】 请用递归法输出图5-13中从0到n(n=9)的所有路径,n值可以根据需要由用户从键盘上输入。 5.3 上机练习重应用 5.3.1 上机练习一: 判断正整数n是否为“回文数” 【练习题目】 编写一个函数,判断任意输入的正整数是否是“回文数”,返回值为bool常量true或false。所谓“回文数”是指逆序和正序时都相同的数,比如121,10201。 5.3.2 上机练习二:神奇的汉诺塔 【练习题目】 传说婆罗门庙中有一个塔台,台上有三根用钻石镶嵌的柱子,分别记作A柱、B柱和C柱,在A柱上放着64个金盘,每个金盘的大小都不一样,并且小金盘子放在大金盘的上面,显然,最大的金盘位于最下面,最小的金盘位于最上面。 现在,试着把A柱上的盘子移到C柱上,移动规则是一次只能移动一个金盘,并且在移动过程中大金盘不能位于小金盘的上面。据说,当A柱上的所有金盘都移到C柱上的那一天,就是世界末日。试着用递归法编写一个程序,输入A柱上的盘子数量,输出正确的移动步骤和总的步数。 * * 所谓函数,就是能够完成一定功能的程序段,通常表示一个或一组算法,由函数头和函数体组成,函数头又由函数名、参数列表和返回类型组成,其定义格式如下: 返回类型 函数名 ( [参数列表] ) { 函数体 } 返回类型是指函数返回值的数据类型,如果没有返回值,则为void。参数列表中的参数被称为“形参”。函数体通常包括两个部分:说明部分和执行部分。 5.1.2 函数的调用和声明 调用函数的方法:在函数名后跟调用运算符“()”,如果需要参数,则必须在调用运算符内提供相关的数据,我们称这些数据为实参。例如: double a=203.9822,b=94.247; double *pa=a, *pb=b; is_equal (pa, pb); // 调用函数is_equal() C++语言在编译期间会对函数调用中的每一个实参进行类型和个数的检查。如果实参和形参的类型不匹配,则尝试类型的隐形转换,如果转换失败就会产生编译错误。如果实参的个数不符合形参个数的要求,也会产生编译错误。 函数在被调用之前,必须是可见的,否则系统无法进行实参和形参之间的比较。有两种方法可以令函数可见,一是在调用函数之前定义该函数,二是在调用函数之后定义该函数,但是必须在调用之前先进行声明。例如: void fun(int, int); // ①函数声明在前 void main() { //…… fun(i, j); // 函数调用 } void fun(int x, int y) // 函数定义在后 { // …… } 其中,语句①的函数的声明也称作函数原型,通常由返回类型、函数名、参数列表和分号“;”组成。其主要作用是为编译器提供必要的信息,如返回类型、参数类型,以及调用函数时的参数个数等。 5.1.3 函数实参的缺省
文档评论(0)