为适应和推进新时期计算机基础教育的改革,推进精品课程建设以及与之配套的精品教材建设,从素质教育的理念出发,结合信息化社会对高素质、复合型人才的需求,特出版此教材,力求较为全面地介绍C语言的基本内容与程序设计思想。
本教材从C语言程序设计的基本原理及程序设计的基本思想出发,贯穿“基础-应用-专题”这一主线,紧扣基础,循序渐进,面向应用。为方便授课和学习,本教材配套了电子课件和习题解析。
基础部分的主要内容包括程序设计中的基本概念与应用,如变量、数组、控制结构及判断结构等,并在掌握了这些基本概念与应用的基础上适时引入函数的结构与应用、指针的概念及其应用、算法设计与实现、结构型数据的应用及文件的操作等面向应用的知识点介绍,然后在上述知识点的基础上进一步介绍数据结构专题,包括链表、栈、队列和二叉树的概念与应用。
本教材可供高等院校、水平考试、各类成人教育等教学使用,也可供计算机爱好者自学。
前 言C语言程序设计(第2版)人类已经步入信息化的21世纪,信息时代的到来,使社会经济向知识经济发展。为了推进21世纪计算机基础教育改革,推进精品课程建设以及与之配套的精品教材建设,从素质教育的理念出发,结合信息化社会对高素质、复合型人才的需求,特出版此教材。此教材力求较为全面地介绍C语言的基本内容与程序设计思想。
C语言是目前国内外广泛使用的程序设计语言之一,是国内外大学都在开设的重要的基础课之一。C语言功能丰富、表达能力强、使用方便灵活、程序执行效率高并且可移植性好;既具有高级语言的特点,又具有汇编语言的特点,具有较强的系统处理能力。它支持自顶向下逐步求精的程序设计技术,其函数式结构为实现程序的模块化设计提供了强有力的保障。因此,它被广泛应用于系统软件和应用软件的开发。
本教材从C语言程序设计的基本原理及程序设计的基本思想出发,贯穿“基础-应用-专题”这一主线,紧扣基础,面向应用,循序渐进地引导读者学习程序设计的思想和方法。基础部分的主要内容包括程序设计中的基本概念与应用,如变量、数组、控制结构及判断结构等,并在掌握了这些基本概念与应用的基础上适时引入函数的结构与应用、指针的概念及其应用、算法设计与实现、结构型数据的应用及文件的操作等面向应用的知识点介绍,然后在上述知识点的基础上进一步介绍数据结构专题,包括链表、栈、队列和二叉树的概念与应用。为方便授课和学习,本教材还配套有电子教案和习题解析。
本书的特点之一是通俗易懂,突出“三基”(基本概念、基本原理与基本应用)的介绍与应用。
本书的特点之二是在介绍“算法设计与实现”这部分内容时,重点介绍经典的排序与查找的算法及其实现,同时通过几种不同算法的比较,讨论算法的效率及代码实现的效率。计算机程序设计,很大一部分工作是为了实现某一特定的模型或算法。本书通过介绍算法设计并通过计算机程序加以实现,可以使读者更好地学习程序设计的思想、体系结构和方法,尤其是优化的程序设计方法。
本书的特点之三是介绍了数据结构的基本内容,如链表、栈、队列和二叉树的“三基”,将这些内容作为综合应用的专题,使读者从实际应用中对C语言程序设计的基本知识得以融会贯通和进一步提高。
本书的特点之四是教材中有代码的详细注释。为了用最简洁的语言讲解代码结构及功能,本教材在例题代码中给出了详细的代码注释,以利于读者更好地理解代码,同时,教材中的所有代码均在TC 3.0下面完全通过调试。
本书的特点之五是重点突出、难点分散。这样从学习者对知识的掌握角度来说是有利的,而且这样也有利于自学。本教材标有“”的内容为选学内容,各学校可以根据自己的实际情况决定教材的学习内容。如果这些内容不作为教学内容学习的话,也不影响其他内容在知识点上的承接关系。
本教材中将“编译预处理”内容放到附录中去,由于此部分的内容跨越了很多知识点,如果单独作为一章内容,那么只能将这部分内容放到较靠后的位置。但基础知识的学习中也牵涉编译预处理的内容,因此,将这部分内容放到附录中,可以根据需要及时查询。读者可以根据实际情况安排学习编译预处理内容的进度。
本书可供高等院校、计算机水平考试培训、各类成人教育学校作为开设程序设计课程的教材,也可供计算机爱好者自学。
参与本书编写的有黄维通、刘晓静(第10、11、12、13章内容)、王瑞(第1、8、9章内容),马力妮、王晓青、金鑫、解辉、贾续涵核对了全书的例题代码,王晓英对本教材进行了通读审核,感谢清华大学出版社为编写本书给予的大力支持。
由于作者水平有限,加上时间仓促,书中缺点和错误在所难免,恳请读者批评指正并通过作者的电子信箱告知。不胜感激,谢谢!
黄维通2010年12月于清华园
第1章 C语言的基本概念
1.1 程序设计语言的历史和发展
1.2 程序设计过程中的几个基本概念
1.3 软件工程的概念
1.4 C语言的发展与特点
1.5 C语言程序的基本标识符
1.6 C程序的几个简单实例
1.7 C程序的结构特点
1.8 C语言程序的编译和执行
1.9 习题
第2章 C语言程序的基本数据类型及其运算
2.1 C语言的数据类型
2.2 数据类型及变量
2.3 运算符和表达式
2.4 位运算符
2.5 C语言基本输入输出函数
2.6 习题
第3章 基本控制结构及其应用
3.1 算法及结构化程序设计
3.2 顺序结构程序设计
3.3 分支结构程序设计
3.4 循环结构程序设计
3.5 结构化程序设计及应用举例
3.6 习题
第4章 数组及其应用
4.1 一维数组
4.2 多维数组
4.3 字符型数组与字符串
4.4 综合应用举例
4.5 习题
第5章 函数及其应用
5.1 函数的定义与调用
5.2 函数间的信息传递方式
5.3 函数与数组
5.4 递归函数与递归调用
5.5 变量的存储类型及作用域
5.6 习题
第6章 指针
第7章 排序及查找算法及其实现
第8章 结构体、联合体和枚举
第9章 文件操作
第10章 线性表及其应用
第11章 栈及其应用
第12章 队列及其应用
第13章 二叉树及其应用
附录A 预处理命令的应用
附录B Turbo C 3.0的上机过程
附录C Turbo C 3.0程序的调试
附录D Turbo C 3.0部分库函数表
附录E ASCII码表
参考文献