图书前言

前    言

  C语言是一门使用最为广泛的程序设计语言,也是计算机等相关专业的必修课程,它是今后继续学习数据结构和算法的基础课程。C语言功能丰富,表达能力强,使用方便灵活,程序执行效率高,移植性好,既具有高级语言的特点,又具有低级语言的特征。现在流行的Visual C++和C++ Builder就是以C语言为基础的开发工具。

  本书适合初、中级程序员阅读,是入门级用户的首选教材和参考用书。如果您还在犹豫应选择哪门程序设计语言作为开始,或者您刚下定决心要学好C语言,选择本书一定没有错。但如果您是一名高级程序员,想了解一些专门领域的内容,那么这本书不适合您,希望您将本书放回书架比较显眼的位置,在此表示感谢。

  本书全面地介绍C语言的基本概念、基本语法及程序设计方法,以学习程序设计的基本路线进行讲解,通过实例,分析程序的结构和含义,每个实例都给出具体的代码,并配合流程图进行讲解。

  本书内容全面,不仅详细介绍C语言的基础知识,还涉及C语言相关的高级技术和理论知识,是一部难得的技术参考书和自学教材,主要内容包括C语言概述、常用的程序开发环境、基本数据类型、表达式、顺序结构程序设计、选择结构程序设计、循环结构程序设计、数组、函数、预处理命令、指针、结构体和共用体、位运算、文件、链表、键盘和鼠标、网络编程基础、常用算法、栈和队列、排序、C语言常见错误与调试技术。

  学完本书之后,读者基本上就可以熟练地掌握程序设计的方法了,并能够熟练地开发C语言程序。

1. 本书特点

  (1) 内容全面,讲解详细

  为了方便读者学习,本书首先对C语言的特点及优势进行讲解,然后讲解各种C语言开发工具。本书内容全面,覆盖C语言的全部知识,对于每个知识点,都使用具体实例和生活中的实例进行讲解、对比,以便读者能够迅速地掌握C语言。

  (2) 层次清晰,结构合理

  本书将C语言按章、节和小节划分知识点,将知识点细化,层次清晰、结构合理,易于读者理解和学习。每一章、每一节、每一小节都划分为单独的知识点,每一小节还可分为更多的知识点。在知识点的讲解过程中,循序渐进、由浅入深,先用提问的方式引出概念,然后再进行讲解,最后通过例子来强化知识点,这样的讲解方式使读者更容易理解和消化。

  (3) 结合图表,叙述简单

  针对每个知识点,都结合图表和具体的实例去说明,将抽象的概念具体化,以利于读者领会。在语言的叙述上,普遍采用短句子、易于理解的语言,而避免使用复杂句子和晦涩难懂的语言,使读者可以更加容易地学会C语言。

  (4) 例子典型,深入剖析

  在讲解每一个C语言知识点时,结合具体例子进行剖析。所选取的例子都是一些最为常见的典型程序,且每个例子都准确说明了相关的知识点。在每一章的最后或比较大的知识点后面,都给出一个完整的程序;给出程序的同时,对程序通过图进行具体讲解,并深入分析,在程序的最后给出运行结果。

  (5) 语言诙谐,结合生活

  在知识的讲解方面,本书采用诙谐的语言,将每个概念与现实生活结合起来对比,从而使晦涩难懂的知识变得有趣,让学习C语言程序设计变得易如反掌,使读者能够快速地从外行变为内行。

2. 本书内容

  本书共分21章,各章内容介绍如下。

  第1章:如果读者还不知道应该学习C、C++、C#、Java中的哪一种编程语言,则通过阅读该章,可以坚定学习C语言的决心。该章介绍C语言的特点、为什么要学习C语言和基本的理论基础。

  第2章:对几种常用的C语言开发工具进行详细的讲解。主要包括Turbo C、Win-TC、LCC、Visual C++ 6.0,读者可以选择一个自己喜欢的工具。

  第3章:主要介绍变量和常量。首先讲解为什么要有变量、为什么要有数据类型,然后讲解各种类型的变量定义及使用,最后讲解常量。

  第4章:主要介绍运算符和表达式。首先介绍运算符的分类、什么是表达式,然后讲解常用的算术表达式、赋值表达式、关系表达式、逻辑表达式、逗号表达式。通过对该章内容的学习,读者将学会各种表达式的使用。

  第5章:主要介绍顺序结构程序设计。首先介绍语句的概念,然后介绍顺序结构程序的特点,最后通过具体实例讲解如何编写顺序结构的程序。

  第6章:主要介绍选择结构程序设计。首先讲解条件运算符和条件表达式,然后讲解单分支的if选择语句、双分支的if选择语句、多分支的if选择语句、switch选择语句,最后给出一个具体的实例。

  第7章:主要介绍循环结构程序设计。首先介绍3种常用的循环语句——while循环语句、do-while循环语句、for循环语句,接着介绍goto语句、break语句和continue语句、多重循环结构的程序设计,最后给出几个典型的实例。

  第8章:主要介绍数组。首先通过具体问题引出数组的概念,然后介绍一维数组、二维数组、字符数组。

  第9章:主要介绍函数。首先介绍函数的分类,然后介绍函数的定义形式、局部变量和全局变量、函数的参数和函数的值、函数的调用、函数的嵌套调用、函数的递归调用、数组作为函数的参数,最后给出几个实例。通过学习该章的内容,读者将掌握模块化程序设计知识。

  第10章:讲解预处理命令。依次介绍宏定义、文件包含命令、条件编译,通过学习该章的内容,可以提高所编写程序的编译效率。

  第11章:主要介绍C语言的灵魂——指针。首先介绍指针与地址的区别,然后讲解指针变量、数组与指针、字符串与指针、指针数组与指向指针的指针、函数与指针、返回指针值的函数。指针是C语言中最难的一个知识点,该章通过对比学习指针中容易混淆的概念,使读者可以编写出高效的C语言程序。

  第12章:主要介绍结构体和共用体。首先介绍结构体的定义、引用、初始化,然后讲解结构体数组、指针与结构体、共用体、枚举类型。通过对该章内容的学习,读者将能够定义及使用比较复杂的数据,设计出更加实用的程序。

  第13章:主要介绍位运算。首先介绍位运算符及位运算的优先级与结合性,然后介绍各种位运算符,并通过一个典型实例讲解位运算符的使用方法。通过对该章内容的学习,读者将了解到计算机的底层操作。

  第14章:主要介绍文件的知识。首先介绍文件的分类,然后讲解打开和关闭文件、读取文件和写入文件、文件的定位等操作,最后讲解常见的其他文件操作函数。通过对该章内容的学习,读者将掌握文件的相关操作。

  第15章:主要介绍链表的知识。首先介绍链表的概念、动态存储分配,然后讲解创建链表、插入链表、删除链表等操作,最后给出具体的应用实例。通过学习该章内容,读者将掌握如何进行动态内存分配,构造出最简单的数据结构。

  第16章:主要介绍键盘和鼠标操作。首先介绍键盘和鼠标操作的一些基础知识,然后通过实例分析键盘和鼠标操作的具体应用技术。通过对该章内容的学习,读者将掌握计算机内部的工作原理,理解控制键盘和鼠标的技术。

  第17章:主要介绍网络编程基础。首先介绍网络的基本知识,然后介绍Winsock基础知识和相关函数,最后给出一个基于TCP和UDP的网络聊天程序。通过对该章内容的学习,读者将学会如何使用C语言编写简单的网络应用程序。

  第18章:主要介绍常用算法。首先介绍算法设计的基础知识,然后分别介绍迭代算法、递推算法、穷举算法、递归算法、分治算法、贪心算法和矩阵算法。通过对该章内容的学习,读者将掌握软件开发中最常见的算法,进一步提高软件开发水平。

  第19章:主要介绍栈和队列。首先介绍队列和栈的有关概念,然后介绍队列和栈的表示与实现,最后介绍队列和栈的应用。通过对该章内容的学习,读者将能够利用栈和队列这种最简单的数据结构对事物进行抽象。

  第20章:主要介绍排序技术。首先介绍排序的有关概念,然后分别介绍插入排序、选择排序、交换排序、归并排序和分配排序,最后对各种排序算法进行比较。

  第21章:主要介绍学生成绩管理系统。通过一个具体的软件项目来告诉读者如何进行软件开发,首先对需要开发的软件系统进行目标分析,然后进行总体设计、详细设计,最后是编码和测试。通过对该章内容的学习和实践,读者将能够掌握软件开发的流程,初步学会软件开发技术。

  第22章:主要介绍C语言常见错误和程序调试技术。首先介绍C语言开发过程中的常见错误,然后举例说明如何利用Visual C++ 6.0进行程序调试。根据一些热心读者和学生在学习C语言过程中遇到的问题,进行有针对性的分析和讲解。通过对该章内容的学习,读者将学会识别最常见的C语言错误信息,并初步掌握Visual C++ 6.0程序调试技术。

  本书的第1~9章及第15~20章、第22章由陈锐编写,第10章、第11章、第21章由杨宇晶编写,第12~14章由郭天娇编写。

  由于作者水平有限,书中难免存在一些疏漏和不足之处,恳请读者批评指正。请通过nwuchenrui@126.com与作者联系。

3. 适合的读者

  本书适合下列人员阅读和使用:

* 大中专院校的学生。

* 准备参加计算机等级考试的人员。

* 准备参加软考的人员。

* 软件开发人员。

* 计算机相关的科研工作者。

4. 致谢

  感谢我的导师张蕾教授,她丰富的知识储备及敏锐的洞察力极大地影响了我的学习态度和认识能力,使我在职业生涯中受益,也为本书的编写奠定了良好的基础。

  感谢我的家人,是因为有他们默默的付出和鼓励,我才能顺利地做好各项工作。

  最后特别感谢温县教育局及所有支持我写作的朋友们!

  

  

                                                    陈  锐   

  2013年7月