《C语言与程序设计》是由西安交通大学出版社出版的。
本书作为程序设计课程的教材,在结构上注重知识的系统性、完整性和连贯性;在内容上突出重点,分散难点;在讲授中循序渐进、深入浅出,将理论与实践有机结合,融知识传授与能力培养于一体。
作者在总结多年教学与实践的基础上,精选了大量内容生动、设计独到的例题来作为典型概念示例和程序精讲,并且兼顾C语言等级考试,许多例题就是选自历年二级C语言等级考题试题。全书给出了近400道例题,且所有程序例题与习题都在VC++6.0环境下上机通过。本书在例题分析中大量采用了图示说明,这样使解题思路更加一目了然。对重点章节如函数和指针内容,作者采用了独创的动态图分析方法来分析程序执行中函数或指针变化的情况,使这些难点更容易被读者理解。此外,对采用指针来指向数组元素的相关内容,作者采用了新颖的表述方法来解决同一个数组元素有多种表示法的问题。
本书在章节内容和安排上也进行了调整,第3~8章均在最后增加了一节“典型例题精讲”,以利于开拓读者解题思路,提高编程能力,从而达到举一反三的目的。此外,对于那些与各章内容没有紧密联系或较少使用的内容,则统统归于第9章“C语言知识补遗”,这样使各章的知识更为紧凑、清晰和精炼。本书所讲授的内容都是基于VC++6.0环境的,对于在VC和TC环境下有分歧的地方,书中也尽量给出说明。本书带“*”的内容为选讲内容,可根据讲授时数进行取舍。
本书除了可以作为程序设计语言教材外,还可以作为全国计算机等级考试的教材或参考书。对于从事计算机专业的工作者,本书也是难得的一本资料书。
欢迎读者对本书的内容及本书中作者的某些见解和表述方法提出批评指正。
第1章 序言
1.3 程序设计与算法
一个程序应包括以下两个方面内容:
(1)对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构。
(2)对操作的描述。即操作步骤,也就是算法。
数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。作为程序设计人员,必须认真考虑和设计数据结构和操作步骤。著名的瑞士计算机科学家Niklaus Wirth提出了一个公式:程序=数据结构+算法。
广义地讲算法是解决问题的逻辑步骤,是对特定问题求解步骤的一种描述。简单地说,任何解决问题的过程都是由一定的步骤组成的,把解决问题的确定方法和有限步骤称为算法。只有通过算法能够描述出来的问题,才能够通过计算机求解。对同一个问题,可以有不同的解题方法和步骤,也就有不同的算法。
计算机算法:是用程序解决问题的逻辑步骤,是指令的有限序列。
1.算法的基本特征
算法是一个有穷规则的集合,这些规则确定了解决某类问题的一个运算序列。对于该类问题的任何初始输入值,它都能机械地一步一步地执行计算,经过有限步骤后终止计算并产生输出结果。归纳起来,算法具有以下基本特征:
(1)有穷性:一个算法应包含有限的操作步骤而不能是无限的。
(2)确定性:算法中每一个步骤应当是确定的,而不能是含糊、模棱两可的。
(3)有效性:算法中每一个步骤应当能有效地执行,并得到确定的结果。
(4)输入:有零个或多个数据的输入。
(5)输出:有一个或多个数据的输出。
……