图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果......
2023-11-20
前面章节中的程序都是规模相对较小的程序。在实际应用中,典型的商业软件通常有数十万、数百万、数千万行代码甚至更多。为了降低开发大规模软件的复杂度,程序员必须将大的问题分解为若干个小问题,小问题再分解为更小的问题。这种把较大的任务分解成若干个较小、较简单的任务,并提炼出公用任务的方法,称为分而治之。它是人们解决复杂问题的一种常用方法。
模块化程序设计就体现了这种“分而治之”的思想。在结构化程序设计中,主要采用功能分解的方法来实现模块化程序设计,功能分解是一个自顶向下、逐步求精的过程,即一步一步地把大功能分解为小功能,从上到下,逐步求精,各个击破,直到完成最终的程序。模块化程序设计不仅使程序更容易理解,也更容易调试和维护。
函数是C语言中模块化程序设计的最小单位,既可以把每个函数都看作是一个模块,也可以将若干相关的函数合并成一个模块。如果把程序设计比作制造机器,那么函数就好比是它的“零部件”,可以将这些“零部件”单独设计、调试、测试好,用的时候拿出来装配,并进行总体调试。这些“零部件”既可以是自己设计的,也可以是别人设计的,或者是现成的标准产品。
图5.1显示了一个典型的C程序结构。如图所示,一个C程序可以由一个或多个源程序文件组成,一个源程序文件又可以由一个或多个函数组成。设计得当的函数可以把函数内部的信息(包括数据和具体的操作的细节)对不需要这些信息的其他模块隐藏起来,既不能访问,让使用者不必关注函数内部是如何做的,只知道它能做什么以及如何使用它即可,从而使整个程序的结构更加紧凑,逻辑也更加清晰。这就是所谓的信息隐藏的思想。显然,在进行模块化程序设计时,我们应该遵循信息隐藏的原则。
模块化程序设计在C语言中通过函数来体现。C程序由一个或多个函数组成,有且仅有一个名为main的主函数。一个可以运行的C程序总是从主函数开始执行,完成对其他函数的调用后再返回到main函数,执行完main函数后结束整个程序运行。(www.chuimin.cn)
主函数常常通过调用其他函数来实现它的功能,这些被调用的函数可以分为两类:标准库函数和用户自定义函数。
图5.1 C程序结构
有关C语言程序设计基础(第3版)的文章
图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果......
2023-11-20
A.与参数x的类型相同B.无法确定C.void类型D.int类型3.为了避免嵌套的条件语句if-else的二义性,C语言规定()。A.else与缩排位置相同的if配对B.else与同一行上的if配对C.else与其之后最近的if配对D.else与其之前最近的尚未配对的if配对4.设x、y、z和k都是int型变量,则执行表达式:x=后,x的值为()。A.7 B.6 C.5 D.47.在C语言程序中,用关键字()定义无符号型变量。else语句实现两个分支。......
2023-09-19
C语言中逻辑运算符及其含义见表3.2。表3.2逻辑运算符及其含义逻辑运算符“&&”和“||”是双目运算符,具有左结合性;“!”表3.3逻辑运算真值表C语言中进行逻辑表达式求值运算时,不但要注意逻辑运算符本身的运算规则,而且还必须要遵循下面的两条原则:·对逻辑表达式从左到右进行求解。......
2023-11-20
针对不同的实际应用,数据排序方法有很多种。本节介绍两种常用排序方法的基本思想和实现方法,帮助读者初步理解排序方法的计算机解决思路。②不考虑已排好序的数据,将剩下的数据作为待排序列。编写程序实现冒泡排序算法,对随机生成的10个3位整数按升序进行排序并输出。......
2023-11-20
一个函数直接或间接地调用自己,称为函数的递归调用。所以函数递归调用的实现必须依靠系统提供一个特殊部件(堆栈)存放未完成的操作,以保证当递归调用结束回溯时不会丢失任何应该执行而没有执行的操作。为了理解函数递归调用的特性,参照例5.9的程序讨论函数递归调用的执行过程,为了讨论方便为程序加上行号。函数递归调用示例。......
2023-11-20
在程序设计中,许多问题的解“隐藏”在多个可能之中。在一个集合内对集合中的每一个元素进行一一测试的方法称为穷举法。穷举方法的实现主要依赖于以下两个基本要点:·搜寻可能值的范围如何确定。程序设计中应据问题的描述具体分析,确定时应尽量缩小搜索范围,提高程序效率。编写程序找出所有的“水仙花数”。程序可以依次取出区间[100,999]之间的每一个数,然后将该数分解为3个数字,按照判定条件判定即可。......
2023-11-20
例如,有如下所示的C语句序列:则结构体指针变量p1指向结构体数组元素a[2],其关系如图10.2所示。此时应该注意到被指针变量p1指向的结构体数组元素本身是不能作为整体操作的,所以*p1也不能作为整体操作。......
2023-11-20
用符合C语言规范的方式书写并保存的C程序称为源程序文件,源程序文件不能直接执行,需要将它翻译成计算机能够识别并执行的机器语言程序。编辑是指C语言源程序的输入和修改,程序保存时,文件名由用户自己选定,扩展名一般为“.c”,也可以使用开发环境默认的扩展名。图2.1表明了上述过程。图2.1C语言程序的执行过程本教材选用Microsoft Visual C++6.0 IDE作为教学环境,使用该环境处理C程序的方法请参考附录C。......
2023-11-20
相关推荐