C语言程序设计基础与应用
2012-11
清华大学出版社
刘丽,朱俊东,张航 编著
398
618000
《C语言程序设计基础与应用(高等院校计算机教育系列教材)》由刘丽、朱俊东、张航编著,本书是在作者多年讲授C语言程序设计的基础上,总结多年的教学经验和实践体会编写而成的。本书采用由浅入深、循序渐进的原则,系统地介绍了C语言的基本语法知识,通过大量实例描述C语言的程序设计方法,并针对实例给出了算法分析,注重培养学生程序设计的思维方法和程序设计能力。
本书共分为13章,第1~3章介绍C语言的概念、数据类型和基础知识;第4~6章介绍C语言的三种基本结构;第7~13章介绍C语言中的数组、函数、结构体、文件和编译预处理的基础知识和编程技巧。综观全书,既有基础知识的介绍,也有各种算法的分析:既有生动的实例讲解,也有典型经验的分享。
《C语言程序设计基础与应用(高等院校计算机教育系列教材)》既可以作为高等学校各专业的正式教材,也适合自学使用。另外,在本书中,兼顾了全国计算机等级考试二级C语言程序设计考试大纲的相关内容,也可以作为考试辅导教材使用。
第1章 C语言程序设计概述
第2章 数据类型
第3章 运算符与表达式
第4章 顺序结构程序设计
第5章 选择结构程序设计
第6章 循环结构程序设计
第7章 数组
第8章 函数
第9章 编译预处理
第10章 指针
第11章 结构体、共用体与枚举类型
第12章 位运算
第13章 文件
答案
附录
版权页: 插图: 从上面分析的程序执行过程可以看出,在递归中有两个过程:“递推”和“回归”。在递推阶段,把规模较大较复杂的问题转换为对较简单规模较小的问题的求解,层层转换,直到该问题已经到最简单,可给出直接的结果。当已经取得最简单的问题的结果时,可进入回归阶段,在回归阶段,层层返回,逐渐获得稍复杂的问题的解。 在设计递归算法时,需要注意以下几点。 (1)一个问题是否可以使用递归解决,程序设计人员可以根据以下两个条件来判断。 ①一个规模较大的问题是否可以向下分解成一个或若干个性质相同的规模较小的问题,这些规模较小的问题是否仍可以采用相同方法向下分解。 ②问题分解到一定程度时,该问题是否具有一个或多个简单的实例具有一目了然的解。 如果具备以上两个条件,则这个问题可以使用递归实现。 (2)如果一个问题可以使用递归实现,那么它应该有以下两个要素。 ①递归出口:一个递归算法,问题的规模应该是越来越小的,当小到一个可以直接给出结果的情况时,就应该停止递归,这就是递归的出口,如例6求阶乘的问题,当求到1的阶乘时就没必要再进行递归,可以直接给出1的阶乘的结果,f(1)=1,之后层层“回归”。 ②递归体: 每次递归时执行的语句序列。例如,例6中的递归体为f(n)=f(n—1)*n。 (3)设计递归算法的设计思路。 如果一个问题可以用递归来解决,可以从以下两个步骤来实现递归的设计。 ①分析问题,将问题分解成较小规模的问题,并用算法语言写成通用的递归体。 ②不断分解的过程中,考虑递归的出口在哪里,确定递归终止的条件。 (例7] 用递归法求斐波拉契数列。 在循环中介绍过斐波拉契数列,它的形式是:1,1,2,3,5,8,13,21,…通过分析可知,要想知道第n个数,必须知道第n—1个和第n—2个数,其形式为f(n)=f(n—1)+f(n—2)。那么就可以把求f(n)的问题转换为求f(n—1)、f(n—2)的问题,所以递归体就是f(n)=f(n—1)+f(n—2)。依次向下递归分解,当到第1项和第2项时,可以终止递归,给出递归的出口f(1)=1,f(2)=1。得到f(1)和f(2)的值后,层层回退,直到求出f(n)。
《高等院校计算机教育系列教材:C语言程序设计基础与应用》既可以作为高等学校各专业的正式教材,也适合自学使用。另外,在《高等院校计算机教育系列教材:C语言程序设计基础与应用》中,兼顾了全国计算机等级考试二级C语言程序设计考试大纲的相关内容,也可以作为考试辅导教材使用。
恩,书不错,内容很充实,挺值得的,就是送的有些慢,等了7天才到。