- 1、本文档共113页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 函数 C语言是通过函数来实现模块化程序设计的。较大的C语言应用程序往往是由多个函数组成的,每个函数分别对应各自的功能模块。从用户的使用角度看,函数有两种:标准函数(即库函数)和用户自定义函数。本章主要讨论的是用户自定义函数。通过本章的学习,读者应该掌握以下内容: 函数的定义与函数声明 函数的调用 函数的嵌套调用与递归调用 数组作为函数参数 内部变量与外部变量 变量的动态存储与静态存储 内部函数与外部函数 7.1 函数的定义与函数说明 7.1.1 相关知识 C语言是由函数组成,一个C语言程序必须包含一个且仅一个main函数,由main 函数开始调用其他函数,其他函数也可相互调用,但最终返回主函数结束程序。 7.1.2 程序范例 通过下例程序认识和学习函数的定义,理解函数的执行过程。 1.范例一 任务:定义一个函数,用于求两个数中的大数。 源程序: int max(int n1,int n2) /*定义一个int类型的名为max的函数*/ { return (n1n2?n1:n2); /*函数体*/ } main() /*主函数main()*/ { int max(int n1, int n2); /*函数声明*/ int num1,num2; printf(input two numbers:\n); scanf(%d%d, num1,num2); printf(max=%d\n, max(num1,num2)); /*调用max函数*/ getchar(); /*使程序暂停,按任一键继续*/ } 输入:5 18 运行结果: max=18 程序说明:上述程序由两个函数组成:main()和max()。程 序由main()为入口,当执行到printf(max=%d\n, max(num1,num2));语句时,暂停主函数,转去执行max()函数,当max()函数执行完毕,通过return返回一个int型值到main()函数的暂停处继续后面语句的执行。 2.范例二 任务:编写函数将小写字母转换成大写字母作为函数值返回,其他字符不变。用字符@结束输入。 源程序: #includestdio.h char bigchar(char ch) /*定义一个char类 型的名为bigchar的函数*/ { if(ch=a ch=z) /*bigchar函数的函数体*/ ch=ch-32; return ch; } main() /*定义一个main()函数*/ { char c; while((c=getchar())!=@) /*循环判断是否为@*/ { c=bigchar(c); /*调用bigchar()*/ putchar(c); } } 输入:ab123WER@ 输出:AB123WER 程序说明:上述程序由main()和bigchar()函数组成,由main()为入口,当执行到c=bigchar(c);语句时,暂停主 函数的执行,转去执行bigchar()函数,当bigchar()函数执行完毕,通过return返回一个char型值到main()暂停处继续后面语句的执行。 7.1.3 知识归纳 通过观察以上程序,我们可以得出以下要点: 1.函数的定义 (1)任何函数(包括主函数main())都是由函数说明和函数体两部分组成。根据函数是否需要参数,可将函数分为无参函数和有参函数两种。 1)无参函数的一般形式: 函数类型 函数名( ) { 说明语句部分; 可执行语句部分; } 2)有参函数的一般形式: 函数类型 函数名( 数据类型 参数1[,数据类型 参数2……] ) { 说明语句部分; 可执行语句部分; } 有参函数比无参函数多了一个参数表。调用有参函数时,调用函数将赋予这些参数实际的值。为了与调用函数提供的实际参数区别开,将函数定义中的参数表称为形式参数表,简称形参表。 (2)注意事项。 1)函数定义不允许嵌套。在C语言中,所有函数(包括主函数main())都是平行的。一个函数的定义可以放在程序 中的任意位置,主函数main()之前或之后。但在一个函数的函数体内,不能再定义另一个函数,即不能嵌套定义。 2)空函数是既无参数、函数体又为空的函数。其一般形式为: 函数类型 函数名( ) { } 调用此函数时,什么工作也不做,没有任何实际作用。 3)在老版本C语言中,参数类型说明允许放在函数说明部分的第2行单独指定。 2.函数类型与函数的返回值 (1)函数类型。在定义函数时,对函数类型的说明,应与return语句中、返回值表达式的类型一致。如果不一致,
您可能关注的文档
- C++面向对象程序设计 曹静 第05章 类的继承与派生新.ppt
- C++面向对象程序设计 曹静 第07章 模板新.ppt
- C++面向对象程序设计 曹静 第08章 数据流与文件的输入输出新.ppt
- C++面向对象程序设计 曹静 第09章 异常处理新.ppt
- CorelDRAW基础教程 栗青生 第2章 CorelDRAW的基本操作新.ppt
- CorelDRAW基础教程 栗青生 第3章 图形绘制及编辑新.ppt
- CorelDRAW基础教程 栗青生 第4章 对象的编辑与造形新.ppt
- CorelDRAW基础教程 栗青生 第5章 图形的特殊效果新.ppt
- CorelDRAW基础教程 栗青生 第6章 文本处理新.ppt
- CorelDRAW基础教程 栗青生 第7章 透镜应用和图框裁剪新.ppt
- C语言程序设计实用教程 唐新国 第三章 最简单的C新.ppt
- C语言程序设计实用教程 唐新国 第一章 C语言概论新.ppt
- C语言程序设计与数据结构 刘信杰 C语言程序设计与数据结构 课件第01章新.ppt
- C语言程序设计与数据结构 刘信杰 C语言程序设计与数据结构 课件第03章新.ppt
- C语言程序设计与数据结构 刘信杰 C语言程序设计与数据结构 课件第05章新.ppt
- C语言程序设计与数据结构 刘信杰 C语言程序设计与数据结构 课件第06章新.ppt
- C语言程序设计与数据结构 刘信杰 C语言程序设计与数据结构 课件第09章新.ppt
- C语言程序设计与数据结构 刘信杰 C语言程序设计与数据结构 课件第11章新.ppt
- C语言程序设计与数据结构 刘信杰 C语言程序设计与数据结构 课件第13章新.ppt
- C语言程序设计与数据结构 刘信杰 C语言程序设计与数据结构 课件第14章新.ppt
文档评论(0)