C语言程序设计教程（第3版）

2020年高等教育出版社出版的图书
《C语言程序设计教程（第3版）》是由龚本灿主编，高等教育出版社于2020年8月11日出版的“十二五”普通高等教育本科国家级规划教材。该书适合作为高等学校各专业的C语言程序设计课程教材，也可作为从事计算机相关工作的科技人员、计算机爱好者及各类自学人员的参考书。
该书共10章，分别为：C语言概述、数据类型、分支结构程序设计、循环结构程序设计、数组、函数、指针、文件、编译预处理、用户定制数据类型。
成书过程
该书由龚本灿任主编并进行统稿，吴西燕任副主编，参编人员有任小燕、付云侠、宋建萍、王少蓉。参与该书讨论和校对工作的有赵昕、郭德明、杨华甫、杨景华、高蓉、冯家林、袁伟、丰京丹、叶华、石勇涛。在该书的编写过程中，董方敏教授和周学君副教授对书中内容提出了意见和建议。
2020年8月11日，《C语言程序设计教程（第3版）》由高等教育出版社出版发行。
内容简介
该书以“学生信息管理系统”案例贯穿全书，并以此为主线将C语言各章节的主要知识点有机结合，全书共10章，内容包括：C语言概述、数据类型、分支结构程序设计、循环结构程序设计、数组、函数、指针、文件、编译预处理和用户定制数据类型。
教材目录
前辅文	第1章 C语言概述	1.1 计算机程序设计语言的发展	1.2 C语言的发展及特点	1.2.1 C语言的发展	1.2.2 C语言的特点	1.3 简单的C语言程序	1.4 算法及其描述	1.4.1 算法的概念	1.4.2 算法的描述	1.5 学生信息管理系统案例简介	1.6 C语言程序的上机过程与调试方法	1.6.1 C语言程序的开发步骤	1.6.2 C语言程序的上机过程	1.6.3 C语言程序的调试方法	本章小结	习题	第2章 数据类型	2.1 数据类型的分类	2.2 整型数据	2.2.1 整型变量	2.2.2 整型常量	2.3 实型数据	2.3.1 实型变量	2.3.2 实型常量	2.4 字符型数据	2.4.1 字符型变量	2.4.2 字符型常量	2.4.3 字符串常量	2.5 一维数组的基本概念	2.6 案例中学生结构体的定义和使用	2.6.1 结构体类型的定义	2.6.2 结构体变量的定义和使用	2.7 数据类型转换	2.8 格式化输入输出函数	2.8.1 格式化输入函数	2.8.2 格式化输出函数	本章小结	习题	第3章 分支结构程序设计	3.1 关系运算符及其表达式	3.2 逻辑运算符及其表达式	3.3 if语句	3.3.1 单分支条件语句	3.3.2 双分支条件语句	3.3.3 多分支条件语句	3.3.4 if语句的嵌套	3.4 switch语句	3.5 运算符及其表达式	3.5.1 算术运算符及其表达式	3.5.2 赋值运算符及其表达式	3.5.3 条件运算符及其表达式	3.5.4 逗号运算符及其表达式	3.5.5 运算符的优先级和结合方向	3.6 案例中的分支结构程序设计	本章小结	习题	第4章 循环结构程序设计	4.1 for语句	4.2 while语句	4.3 do-while语句	4.4 break语句和continue语句	4.4.1 break语句	4.4.2 continue语句	4.5 循环语句的嵌套	4.6 逻辑推理程序设计实例	4.7 案例分析与实现	4.7.1 学生结构体数组的定义和使用	4.7.2 案例中输入和显示功能模块的实现	本章小结	习题	第5章 数组	5.1 一维数组	5.1.1 一维数组的定义	5.1.2 一维数组的使用	5.1.3 一维数组的初始化	5.1.4 一维数组的应用举例	5.2 二维数组	5.2.1 二维数组的定义	5.2.2 二维数组的使用	5.2.3 二维数组的初始化	5.2.4 二维数组的应用举例	5.3 字符数组	5.3.1 一维字符数组	5.3.2 字符串输入输出函数	5.3.3 字符串处理函数	5.3.4 二维字符数组	5.4 排序与查找算法	5.4.1 排序算法	5.4.2 查找算法	5.5 案例中统计和排序功能模块的实现	本章小结	习题	第6章 函数	6.1 案例中的自定义函数简介	6.2 函数的定义、调用和声明	6.2.1 函数的定义	6.2.2 函数的调用	6.2.3 函数的声明	6.2.4 函数的调用过程	6.3 函数的应用举例	6.4 函数的递归调用	6.5 数组作为函数参数	6.5.1 数组元素作为函数实参	6.5.2 数组名作为函数实参	6.6 变量的作用域	6.6.1 局部变量	6.6.2 全局变量	6.7 变量的存储	6.8 外部函数与内部函数	6.9 案例分析与实现	6.9.1 案例中函数之间的调用关系	6.9.2 案例中查找、修改和删除功能模块的实现	6.9.3 多文件的编译与连接	本章小结	习题	第7章 指针	7.1 指针概述	7.1.1 指针的概念	7.1.2 指针变量的定义和使用	7.1.3 指针变量作为函数参数	7.2 指向一维数组的指针	7.2.1 指向一维数组的指针变量的定义	7.2.2 指针变量的算术运算	7.2.3 指针变量的应用举例	7.2.4 指向字符串的指针	7.3 指向结构体的指针	7.3.1 指向结构体变量的指针	7.3.2 指向结构体数组的指针	7.4 返回指针的函数	7.5 动态内存分配	7.6 指针数组	7.7 指向二维数组的指针	7.7.1 二维数组的地址	7.7.2 指向二维数组的指针	7.8 指向函数的指针	7.9 指向指针的指针	7.10 案例分析与实现	7.10.1 链表简介	7.10.2 学生链表中结点的定义	7.10.3 学生链表的操作	本章小结	习题	第8章 文件	8.1 文件的基本知识	8.1.1 文件的概念	8.1.2 文件的分类	8.1.3 缓冲文件系统	8.2 文件的打开与关闭	8.2.1 文件的打开	8.2.2 文件的关闭	8.3 文件的读写操作	8.3.1 字符读写函数	8.3.2 字符串读写函数	8.3.3 格式化文件读写函数	8.3.4 数据块读写函数	8.4 文件的随机读写	8.5 案例中的文件操作	本章小结	习题	第9章 编译预处理	9.1 宏定义	9.1.1 无参数的宏定义	9.1.2 有参数的宏定义	9.2 文件包含	9.3 案例中的宏定义与文件包含	9.4 条件编译	本章小结	习题	第10章 用户定制数据类型	10.1 共用体类型	10.1.1 共用体类型的定义	10.1.2 共用体变量的定义和使用	10.2 枚举类型	10.2.1 枚举类型的定义	10.2.2 枚举变量的定义和使用	10.3 自定义类型名	10.4 位段与位运算	10.4.1 位段	10.4.2 位运算	本章小结	习题	附录A ASCII码表	附录B C运算符的优先级与结合性	附录C C语言常用库函数	附录D “学生信息管理系统”源代码	参考文献
（注：目录排版顺序为从左列至右列）
教学资源
配套教材
《C语言程序设计教程（第3版）》有配套的习题集——《C语言程序设计习题集（第3版）》。
书名	作者	出版社	出版时间	ISBN
《C语言程序设计习题集（第3版）》	龚本灿	高等教育出版社	2020年7月21日	978-7-04-053624-9
课程资源
《C语言程序设计教程（第3版）》的数字课程与纸质教材一体化设计，数字课程涵盖电子教案、微视频、源代码等板块。
作品名称	C语言程序设计教程数字课程
作者	龚本灿、吴西燕
出版发行	高等教育出版社、高等教育电子音像出版社
出版时间	2020年8月
策划编辑	刘娟
责任编辑
教材特色
在案例的求解过程中，讲授程序设计的基本方法，侧重对模块化程序设计思想的介绍，并将软件工程的相关思想渗透其中，以提高读者编程解决实际问题的能力。
采取案例驱动、设问解答、举例分析的组织方式，选用的案例与学生联系较强、易于理解，内容的讲解由问题驱动，让读者以当事人身份，从实际应用系统开发的角度出发来分析问题，培养读者的初步编程能力，帮助读者掌握C语言的语法知识，引导读者掌握大规模应用程序的编写方法。
选择了一些知识性、趣味性较强的实例，如鸡兔同笼问题、百钱买百鸡问题、汉诺塔问题、案件推理问题等，通过这些实例来开拓读者思路，引导读者理解程序设计的基本思想，培养读者的计算思维能力。
作者简介
龚本灿，男，博士，1970年1月出生，三峡大学计算机与信息学院教授。主要研究方向：无线传感器网络、移动边缘计算。
吴西燕，女，硕士，1972年出生，三峡大学计算机与信息学院副教授。研究学科：计算机科学与技术；研究方向：数据库与信息系统、视频传输控制等。