前言

引子:C语言作为一门最通用的语言,在过去很流行,将来依然会如此。几乎每一个理工科或者其他专业的学生毫不例外地要学习它。记得大学里,很多学校都把谭浩强教授的《C程序设计》作为入门教材,这是绝佳的选择。然而,要更进一步,更全面而深入地学习呢?显然有点力不从心。本书正是为了弥补这个缺憾而写的,希望能对想比较全面而深入学习C语言程序设计的人有所帮助。

从C语言产生到现在,它已经成为最重要和最流行的编程语言之一。在各种流行编程语言中,都能看到C语言的影子,如Java的语法与C语言基本相同。学习、掌握C语言是每一个计算机技术人员的基本功之一。

C语言具有高级语言的强大功能,却又有很多直接操作计算机硬件的功能(这些都是汇编语言的功能),因此,C 语言通常又被称为中级语言。学习和掌握C 语言,既可以增进对于计算机底层工作机制的了解,又为进一步学习其他高级语言打下了坚实的基础。

本书特点

从入门到精通:本书分上下两篇,上篇针对初学者,从 C 语言的基础开始,使略有计算机基础的人都能容易地学会C语言编程;下篇则介绍了C语言的高级程序设计技巧,包括常用算法、底层控制鼠标、绘图、加密、压缩等应用。

适用多种操作系统:本书实例都通过 GCC 编译器调试,读者不仅可在 Windows环境下使用本书学习C语言,也可在Linux环境下使用本书学习C语言。

循序渐进:本书编写顺序按 C 语言的知识点循序渐进地介绍。例如,先介绍数据的存储,再介绍数据的输入/输出;先介绍简单的程序设计概念,再介绍指针等 C语言的难点。

重点突出:指针是 C 语言的重点和难点,本书用了大量的篇幅,从不同方面对其进行讲解,并列举了大量的实例,帮助读者理解并掌握指针。

实例丰富,讲解详细:学习程序设计时,必须要多上机操作。本书对每个知识点都配有实例代码,并对实例代码进行了详细的讲解,在实例后,一般都附有实例程序的运行结果,方便读者对比理解相应的知识点。

注重实用:在本书下篇,详细介绍了数据加密、压缩、控制鼠标、绘制图形等实用程序。通过这些内容,可进一步提高读者C语言的应用能力。

实用超值的DVD光盘:为帮助读者更深入地学习,本书附赠DVD光盘1张,内容包括本书所有的章节实例,入门视频以及长达21小时的C语言学习视频教学课件,讲解关键知识点界面操作,手把手教会读者使用。

本书内容

本书分上下两篇,共26章,上篇共16章,主要介绍C语言的语法基础;下篇共10章,主要介绍C语言的高级程序设计。各章内容如下:

第1章为C语言概述,介绍了C语言的发展、特点,C语言程序的开发过程,最后,以一个简单的C程序,演示了编写C语言程序的方法。

第2章介绍了一个完整的C程序各部分的含义。

第3章介绍了C语言几种常见的开发环境,包括Dev-C++、Visual C++、Linux下C语言开发环境的使用等内容。

第4章介绍了C语言数据的表示方法,包括数据的存储、常量、变量、整数类型、字符类型、实数类型、混合运算及类型转换、C99新增数据类型等内容。

第5章详细介绍C语言中的表达式、各种运算符及运算优先级、C语言各类语句等内容。

第6章介绍了格式化输入/输出函数的使用,包括printf函数、scanf函数、getchar函数、getch函数、gets函数、putch函数、puts函数等的使用。

第7章介绍C语言分支结构程序设计的方法,包括使用if语句、嵌套if语句、if else if语句、switch语句等进行多种分支程序设计的内容。

第8章介绍C语言循环结构程序设计的方法,包括使用while循环、for循环,以及循环嵌套等内容。

第9章介绍在C语言中使用数组的方法,主要介绍了一维数组、二维数组、字符数组和字符串的使用。

第10章介绍在C语言中创建和使用函数的方法,包括函数的概念、编写函数、设置函数的参数、函数调用、递归函数的编写等内容。

第11章介绍模块化程序设计方法,包括模块化程序设计概念、C程序的组织、变量的作用域、变量的存储类型等内容。

第12章介绍C语言中指针的使用,指针是C语言最显著的特征。本章首先介绍变量在内存中的保存形式,然后介绍了指针和简单变量、指针和数组、指向多维数组的指针、指针和字符串、指针数组、指针和函数等内容。

第 13 章介绍结构、联合和枚举,包括结构的概念、结构的嵌套、结构数组、结构指针、向函数传递结构、联合、枚举等内容。

第14章介绍位运算和位域的使用,通过位运算符,可以方便地操作二进制位。

第15章介绍文件输入/输出的方法,主要介绍了数据流的概念、文件的打开与关闭、从文件中读写字符、从文件中读写字符串、二进制文件的读写、文件检测函数、文件的随机读写、管理缓冲区、输入/输出的重定向、文件管理等内容。

第 16 章介绍编译预处理,包括宏定义命令、条件编译、其他预处理命令、内联函数等内容。

第 17 章介绍处理字符串的方法,包括字符串的存储、字符和字符串检测函数、查找字符串、比较字符串、连接字符串、复制字符串、字符和字符串的转换等内容。

第18章介绍C语言的数学函数和时间函数,使用这些函数,可方便地处理数值、日期时间等类型的数据。

第19章介绍常用算法的C语言程序,包括用C语言编写的完成排序、查找、队列、堆栈、链表等程序。

第20章介绍用C语言进行存储管理的方法,包括内存动态分配和回收等内容。

第21章介绍用C语言编写鼠标的底层操作函数,包括初始化鼠标、复位鼠标、显示鼠标指针、隐藏鼠标指针、获取按钮信息等操作鼠标的底层函数。

第22章介绍用C语言编写数据加密程序的方法,如换位加密法、替换加密法、位加密法等程序的编写,最后,还简单介绍了MD5算法。

第23章介绍用C语言编写数据压缩程序的方法,首先,介绍了数据压缩基础,最后,详细介绍了LZW压缩算法的原理及实现过程。

第24章介绍C语言底层图形函数的编程,首先介绍了显示系统的基本概念,然后介绍了直接读取显存编写图形函数的方法,在此基础上,完成绘制线、圆、矩形、多边形等函数,最后还介绍了编辑图形的方法。

第25章介绍GCC调用汇编程序的方法,包括AT&T汇编简介、GCC内嵌汇编、调用汇编程序等内容。

第26章为一个用C语言编写的信息管理系统——员工管理系统,通过该实例程序的编写,可巩固本书前面各章所学内容。

读者对象

程序设计初学者入门

大中院校学生

大中院校教师

C程序员

电脑培训班

计算机爱好者

由于计算机技术发展很快,且编者水平和学识有限,书中难免有疏漏之处,敬请广大读者朋友批评指正,并多提出宝贵意见。

编者

2009年3月