函数是c和c++程序的基本模块

函数是c和c++程序的基本模块

ID:12645627

大小:46.50 KB

页数:13页

时间:2018-07-18

函数是c和c++程序的基本模块_第1页
函数是c和c++程序的基本模块_第2页
函数是c和c++程序的基本模块_第3页
函数是c和c++程序的基本模块_第4页
函数是c和c++程序的基本模块_第5页
资源描述:

《函数是c和c++程序的基本模块》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、函数是C和C++程序的基本模块函数:函数是C和C++程序的基本模块,是构成结构化程序的基本单元。在前面的章节中,我们虽然有了函数的初步概念,但那仅是感性的认识。况且,设计一个复杂的C程序,通常不仅包含有多个函数,还可能包含多个源文件。于是,我们就面临一些问题:程序中函数要怎样设计定义,如何调用,函数参数如何传递等。另外,在程序中如何访问各函数和各文件中定义的变量,变量引用时的作用域规则,数据生存期也是我们要重点解决的问题。本章将根据以上问题,以多个实例为引导,循序渐进地讨论函数定义、调用,参数传递,嵌套及递归调用,局部变量和全局变量,变量存储方式,内部函数和外部函数等相关知识。通过本章

2、的学习,将能够使读者掌握C语言函数的操作应用。5.1函数定义与调用在结构化程序设计中,一个较大的程序一般应分为若干个程序模块,每一个模块用来实现一个特定的功能。而模块一般是通过子程序来实现的。在TurboC中,子程序的作用是由函数完成的。函数是一个自我包含地完成一定相关功能的执行代码段。我们可以把函数看成一个“黑盒子”,你只要将数据送进去就能得到结果,而函数内部究竟是如何工作的,外部程序是不知道的。外部程序所知道的仅限于输入给函数什么以及函数输出什么。先看实例。【例5.1】简单的C函数定义与调用程序定义输出一串字符函数:printMessage()/*定义printMessage()函

3、数*/{printf("Hello,world!");/*在屏幕上输出字符串Hello,world!*/}定义在一行打印n个“*”的函数:printStar(intn)/*定义printStar()函数*/{intcnt;for(cnt=0;cnt/*把输入输出函数的头文件包含进来*/main(){intcount;printf("Pleaseintputstarnumbers(count):");scanf("%d",&count);printStar(count);/*调用printStar()函数*/p

4、rintMessage();/*调用printMessage()函数*/printStar(count);/*调用printStar()函数*/return0;/*退出main()函数,并返回0*/}其中,函数printStar()、printMessage()都是用户自定义的函数。在TurboC环境下编辑好上述程序进行编译后,如果无任何错误,就可以按下Ctrl+F9运行程序。例5.1的运行结果如下:(“↙”代表回车,下同)Pleaseinputstarnumbers(count):10↙**********Hello,world!**********我们发现,程序的运行结果一闪而过,

5、按下Alt+F5后,才能看到程序的执行结果,并且,当多次执行上述程序时,发现前面执行的结果仍显示出来。对C的用户来讲,这样的显示方式并不直观。让我们来对这个程序稍加改进,我们只要将上述程序中的main()函数改为以下形式:main(){intcount;clrscr();printf("Pleaseintputstarnumbers(count):");scanf("%d",&count);printStar(count);/*调用printStar()函数*/printMessage();/*调用printMessage()函数*/printStar(count);/*调用print

6、Star()函数*/getch();return0;/*退出main()函数,并返回0*/}然后在程序的开头部分加上语句:#include。因为函数clrscr()及getch()是C的标准库函数,它们都在头文件conio.h中定义说明。其中函数clrscr()的作用是程序执行时先清屏;函数getch()的作用等待从键盘上接收一个字符,但该字符并不显示。5.1.1函数定义1.函数声明形式在C中,从用户使用角度把函数分为标准库函数(如printf()、scanf()、clrscr()、getch()等)和用户自定义函数(如例5.1中的printStar(n)、printMessage()

7、);而从函数的定义形式上把函数分为无参函数和有参函数。首先我们看一个简单的例子。【例5.2】有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13,…。设计一个函数求该数列前20项的和。项数从主程序输入。设计步骤如下:#includefloatindex(intn);/*函数原型声明*/main(){intnumber;clrscr();printf("Pleaseinputelementnumbers(numbe

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。