前言 C语言既是目前应用极为广泛的高级程序设计语言之一,也是非常优秀的程序设计入门语言。一旦掌握C语言的使用方法,再学习其他程序设计语言就轻而易举了。 本书共10章。第1章是C语言概述,主要介绍C程序的结构及其特点; 第2章是程序与算法,主要介绍算法及其结构化程序设计; 第3章是数据类型和表达式,主要介绍程序中常量和变量的概念,以及C语言中常用的数据类型的输入输出及其运算; 第4章是程序控制结构,主要介绍顺序结构、选择结构和循环结构及其应用; 第5章是数组,主要介绍一维数组、二维数组和字符数组的定义、初始化及其应用,并对指针变量访问数组元素进行了详细说明; 第6章是函数,主要介绍函数的定义和调用、变量的作用域与生存期、编译预处理命令等,对函数参数及其数据传递进行了重点叙述; 第7章是结构体与共用体,主要介绍结构体、共用体和枚举类型的定义和引用,并举例说明单链表的操作; 第8章是文件,主要介绍文件的打开、关闭与读写操作; 第9章是位运算,介绍位运算操作; 第10章是综合案例,系统地介绍通过C语言程序设计解决实际问题的较完整的过程。 全书主要章节知识点如下图所示。 全书知识点导图 本书的主要特点如下。 (1) 主要章节的内容采用任务驱动的方式,通过一个实例引入基本概念和基本方法,内容叙述自然,顺理成章。 (2) 将指针及其相关内容分布于各章节。从指针的概念引入指针变量的使用、指针访问数组、指针作为函数参数等,内容编排由浅入深、层层推进,便于读者理解和掌握。 (3) 以综合实例为主线,贯穿各主要章节始终,使读者在应用中加深对C语言基本语法和程序设计方法的理解,不断提高分析问题和解决问题的能力。 (4) 课程资源丰富,除了提供教学课件、习题答案和实例源码外,重点内容和案例配有微课视频,请读者先扫描封底刮刮卡内二维码,再扫描书中相应章节处的二维码,可以随时随地反复观看学习。 本书第2版于2018年9月出版发行,在受到肯定的同时,也收到较多读者对本书的使用体会和建议,尤其得到嘉兴南湖学院一起教授本课程的各位同事的大力帮助,提出了很多建设性的意见和建议。编者对本书进行再修订,从读者角度考虑,对部分章节的内容进行了调整,更符合学习的渐进过程。前期版本中出现的个别文字或符号错误也已进行修正。在此,向给予帮助的读者和同事表示感谢,也希望继续得到大家的支持,并提出批评和指正建议,使之更加完善。 本书具有通俗易懂、分析透彻、开拓思路的特点,有利于读者自学。教材中所有实例的程序均在Microsoft Visual C++6.0集成环境中调试通过。本教材推荐使用时间为一学期(64学时或80学时,含实验32学时)。通过循序渐进地系统学习,读者能较好地掌握C语言程序设计方法和技巧,为后续的学习打下扎实的基础。 本书的编者均是多年从事C语言程序设计的教学,具有丰富实践教学经验的高校教师。本书融合了编者长期教学实践经验的积累。本书由张丽华、梁田主编,参加编写的人员还有刘小军、殷联甫,具体分工如下: 殷联甫编写第1章和第2章,张丽华和殷联甫共同编写第3章,梁田编写第4章和第7章,刘小军编写第5章和第9章,张丽华编写第6章、第8章和第10章。全书由张丽华统稿。 “程序设计”课程是一门实践性较强的课程,实践环节特别重要。为了更好地帮助读者学习C语言,编者还编写了《C语言程序设计学习指导》(第3版),提供上机实验项目、C程序典型题解和C程序设计习题集,为课堂教学、实验教学和读者自学提供全方位的支持。 对支持本书出版的清华大学出版社表示感谢! 由于编者水平有限,不足与疏漏之处在所难免,敬请广大读者及同仁不吝赐教。 编者 2022年10月