- 1、本文档共66页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[C讲义第4章
函数概述 函数是构成C++程序的基本模块,每个函数均具有相对独立的功能。任一C++程序都是由若干个函数组成的,即使最简单的程序,也要有一个主函数(即main函数)。因此,程序的设计最终都落实到一个个函数的设计和编写上。而合理地编写函数可以简化程序模块的结构,便于阅读和调试,是结构化程序设计方法的主要内容之一。 在C++中,关于函数的规定如下: (1)一个C++程序由一个或多个源程序文件(程序模块)组成。对较大的程序,一般不希望把所有内容全放在一个文件中,而是将它们分别放在若干个源程序文件中,再由若干个源程序文件组成一个C++程序。这样便于分别编写、分别编译,提高调试效率。一个源程序文件可以为多个C++程序共用。 (2)一个源程序文件由一个或多个函数以及其它有关内容(如命令行、变量定义等)构成。一个源程序文件是一个编译单位,即在程序编译时是以源程序文件为单位进行编译的,而不是以函数为单位进行编译的。 (3)C++程序的执行是从main函数开始的,并在main函数中结束整个程序的运行。如果在main函数中调用其它函数,则在调用后流程还返回到main函数。 (4)所有函数都是平等的。在定义函数时是分别进行的,即函数不能嵌套定义。函数间可以互相调用,但不能调用main函数。main函数是由系统调用的。 (5)从用户使用的角度看,函数有如下两种。 ①标准函数。标准函数即库函数,它们是由系统提供的,用户不必自己定义而直接使用。使用库函数时,必须要包含相应的头文件。 ②用户自定义函数。它们是用户自己定义的函数,用以实现用户专门需要的功能。 (6)从函数的形式看,函数分为下面两类。 ① 无参函数。在调用无参函数时,主调函数不向被调用函数传递数据。无参函数一般用来执行指定的一组操作。 ② 有参函数。在调用该类函数时,主调函数通过参数向被调用函数传递数据。一般情况下,执行有参函数会得到一个函数值,供主调函数使用。 函数的定义 一个函数必须定义后才能使用。所谓定义函数,就是编写完成函数功能的程序块。 (1)无参函数的定义 定义无参函数的一般格式为: 类型标识符 函数名 ( void ) { 函数体 } 其中: (1) 函数名是指用户要定义的函数的名字,它应符合C++对标识符的规定。 (2) 函数体是由一对花括号“{ }”括起来的语句序列,这些语句实现函数的功能。 (3) 类型标识符是调用该函数后所得到的函数值的类型,即函数返回值的类型,它可以是任一标准数据类型或导出的数据类型。 例4.1 用函数实现下面字符串的打印。 How do you do! 算法分析:该问题只涉及字符的打印,不需要从主调函数传递过来数据,同时也不需要返回任何数值,因此可用无返回值无参数函数来实现,程序如下。 void print_string (void ){ cout How do you do!\n ; } (2)有参函数的定义 定义有参函数的一般格式为: 类型标识符 函数名 ( 形参表列 ) { 函数体 } 有参函数的定义格式与无参函数的定义格式相比,除圆括号中的“形参表列”外,其余均相同。形参是函数与外界联系的接口,必须明确指出形参的名字和类型。形参表列的格式为: 类型 参数1,类型 参数2,…,类型 参数n 函数的返回值 当函数需要返回处理的结果数据时,可用如下语句: return 表达式; (1)定义函数时,函数的类型和函数体中return后的表达式值的类型应保持一致。如果两者不一致,则以函数类型为准,系统会自动进行类型转换。 (2)在函数体中允许有多个return语句,但每次调用只能有一个return 语句被执行,因此函数只能返回一个函数值。 (3)对于不需要返回值的函数,在函数定义中应规定函数返回值类型为void,但在函数体的中间要结束函数的执行,并返回调用处时,可使用不带表达式的return语句。此时return语句的格式为: return ; 例4.2 编写函数判断一个整数是否素数的。 函数中对整数参数是否为素数进行判断,是则返回1,否则返回0。 int is_prime(int x){ int j; for(j = 2; j = x / 2; j++) if( x % j == 0) return 0; return 1; } 例4.3 编写函数求正整数a、b的最大公约数。 思路:整数a、b的公约数是整数,函数的返回值类型即为整数。 int gcb(int a, int b){ int c; while( c =
文档评论(0)