图书前言

本书根据作者长期从事教学和科研的丰富实践经验编写而成。全书由浅入深地介绍了C语言的基本理论、基本知识以及编程的基本技能和方法,使读者能全面、系统地理解和掌握用C语言进行程序设计的方法。

本书注重C语言在学科中的基础地位,在整体结构上进行了精心的构思,侧重于对专业发展有影响的内容;在章节结构上做了合理的安排,内容全面,概念清晰,层次分明,实例丰富,将概念、知识点与案例相结合;在重难点概念的阐述上,语言清晰,解释到位;讲述力求理论联系实际、循序渐进、深入浅出、通俗易懂,尽可能地贴切读者的接受能力,并注重培养良好的程序设计风格和习惯。 

本书注重培养读者分析问题和实际编程能力,给出了两个典型的综合应用。

与本书配套的实践教材为《C语言程序设计实验指导与课程设计》 (ISBN: ) ,可以从http://computer.bbxy.edu.cn/czdkc/zhongdian.htm上下载本书的电子课件、所有例程源代码、习题解答及相关实验和课程设计等内容。

序C语言程序设计序

1. 关于本书

C语言是一种在世界范围内被普遍采用的优秀的程序设计语言,是现代最流行的通用程序设计语言之一。其功能丰富、使用灵活、可移植性好,既有高级语言的优点,又有低级语言的许多特点;既可以用来编写系统软件,又可用于编写应用软件。因此,C语言被迅速地推广和普及。

C语言作为计算机专业的一门专业基础课程,其专业地位是很重要的,对其掌握的程度如何,直接影响到后继相关课程的学习和掌握。在教学过程中,学习者普遍反映C语言难学难懂,其实并不是C语言本身难,而是教和学的方法不是很得体。首先,教师在教学过程中应整体把握C语言的课程体系,让学生理解相关的结构性概念的作用和意义,在此基础上讲透重点和难点。如在编程语言中为什么会有数组的概念,没有数组能不能编程,数组的本质是什么,在学习数组内容时重难点在哪里;为什么要有指针一章,没有指针可以不可以,指针的作用是什么,学习指针的方法应怎样;为什么要有结构体,没有这个概念行不行,如果没有应该怎么做,有什么不方便等;在讲解某个具体的典型程序时,要讲清楚为什么要这样设计,为什么要定义这么多相关的变量,所使用的算法思想及其实现等。总之要有针对性地按照提高其编程能力的目标进行教学。另一方面要掌握好学习方法,先理解相关的概念,再注重对典型程序的学习和掌握,每一个典型程序的学习过程应分为4个阶段:听懂到看懂、理解到熟悉、基本掌握到掌握、完全掌握。如果通过学习能够“完全掌握”书中的十几个典型程序,应该说教学是成功的。鉴于以上理解,结合十多年本课程的教学经验和体会,编写了本教材。

2. 本书结构

本书全面地、系统地讲述了C语言的基础知识、语法规则以及编程方法。全书共分11章。第1章为C语言概述,主要内容包括程序与程序设计语言、算法概述、C语言概况和C程序的开发过程与开发环境。第2章为C程序设计基础,主要内容包括C语言的语法基础、数据与数据类型、基本数据类型、数据的输入与输出、基本运算符和表达式。第3章为程序流程控制,主要内容包括选择结构程序设计、循环结构程序设计、几种控制语句和程序设计举例。第4章为数组,主要内容包括一维数组、二维数组与多维数组、字符串数组和字符串和程序设计举例。第5章为模块设计,主要内容包括模块的实现--函数、函数调用中数据的传递、变量的存储类别与作用域、函数的嵌套调用与递归调用、程序设计举例和编译预处理。第6章为指针,主要内容包括地址与指针的概念、指针变量的定义与引用、指针的运算、指针变量作为函数参数、指针与数组、指针与字符串、指针数组、指针与函数和程序设计举例。第7章为结构体与共用体,主要内容包括结构体类型的定义、结构体类型变量的定义及其初始化、结构体类型变量的引用、结构体数组、指向结构体的指针、结构体与函数、链表、共用体类型、枚举类型、用typedef重定义类型名和程序设计举例。第8章为位运算,主要内容包括几个基本概念、位运算符和位运算、位域(位段)和程序设计举例。第9章为文件,主要内容包括文件指针、文件的打开与关闭、文件的读写、文件的随机读写、文件检测函数和程序设计举例。第10章为综合实训,目的是为了提高读者的综合编程能力。第11章为 C++语言概述,主要内容包括面向过程和面向对象编程概述、C++语言的发展过程、将C源程序简单改写成 C++源程序、面向过程和面向对象的程序设计方法比较。附录A为“标准ASCII码表”,附录B为“运算符的优先级和结合性”,附录C 为“C语言的库函数”. 

3. 本书特点

本书采用通俗易懂的语言,全面系统地介绍了C语言程序设计的基本概念、结构化编程思想和方法以及解决实际问题的技巧。注重C语言在学科中的基础地位,在整体结构上进行了精心的构思,侧重于对专业发展有影响的内容。在章节结构上做了合理的安排,先讲概念再讲方法,从用法中加深对概念的理解,将概念、知识点与案例相结合,应用实例贯穿于本书始终,力求将复杂的概念用简洁浅显的语言来描述,做到深入浅出。通过综合实训,注重实际编程能力的培养提高。此外,还具备以下特点:

 (1)  针对性强。本书定位在初学高级语言的读者。通过本书的学习,使读者能够掌握一种计算机中较复杂的高级语言的用法。掌握了C语言再学习其他高级语言就容易多了。

 (2)  可读性好。本书内容实际上是一线教师十多年讲述C语言课程的教案的整理、经验和体会的提炼。语言通俗易懂、重点突出、难点讲述清楚。本书尽可能地贴切学生的接受能力,从学习者的角度去思考每部分内容,对可能产生的疑问进行解释并结合实例进行详细的分析和说明。

 (3)  体系结构合理。本书从提高读者的实际编程能力出发,合理安排各章节的内容,突出重点和难点。注重C语言对后继课程的基础作用,书中加强了结构体部分的内容,是出于为数据结构和面向对象语言课程提供基础的考虑。书中精选了大量典型例题和习题,突出实践环节,以期读者深刻理解编程思想和增强实际动手编程能力。通过本书的学习,使读者不仅掌握C语言的基本语法和规则,还能够体会结构化程序设计的思想和方法。

本书所有的例程都在Turbo C 2.0和Visual C++ 6.0环境下调试通过。本书配有《C语言程序设计实验指导与课程设计》教材,其中附有主教材中的习题参考答案,给出了实验内容及课程设计样例等,供学习时参考。本书配有电子教案,并提供例题程序源代码,以方便自学。

4. 适用对象

本书是集众多长期从事C语言教学工作的一线教师的经验和体会,并参考大量的国内外有关资料编写而成。其内容丰富、结构紧凑、概念阐述清楚、注重能力培养,是一本内容全面的教材。可作为高等院校各专业计算机程序设计教学用书,以及计算机爱好者自学用书和各类工程技术人员的参考书。

本书由郭有强担任主编(编写第9~11章),负责总体设计并统稿;姚保峰(编写第6章)和戚晓明(编写第1、8章)担任副主编,负责本书全部例题源代码的测试和制作电子讲稿。参加编写工作的还有周会萍(编写第2章)、刘娟(编写第3章)、谢娜(编写第4章)、何爱华(编写第5章)和王磊(编写第7章)。以上人员不仅在本书内容编写、程序测试、文字校对等工作中付出了辛勤劳动,还参与完成了与本书配套的《C语言程序设计实验指导与课程设计》的内容编写和文字工作。电子讲稿和本书全部例题的源代码一起放在课程网站http://computer.bbxy.edu.cn/czdkc/zhongdian.htm上,供下载。

本书的编写大纲及内容均经袁兆山教授审阅,在此谨致谢忱。

感谢胡学钢教授和王浩教授,他们对该书给予了极大的关注和支持,提出了宝贵的建设性意见。感谢本书所列参考文献的作者。感谢清华大学出版社各位编辑,他们为本教材的出版倾注了大量的心血和热情,也正是由于他们前瞻性的眼光和忙碌,才让读者有机会看到本教材。

由于作者水平有限,加之时间仓促,错误与疏漏之处在所难免,敬请读者不吝赐正。在使用该书时如遇到问题需要与作者商榷,或需要索取其他相关资料,请与作者联系。