标题：C语言程序设计（第2版）
人民邮电出版社最新出版图书
图书信息1书　名　C语言程序设计(第2版)[1]
丛 书 名　21世纪高等学校规划教材
标准书号　ISBN 978-7-115-24579-3
编目分类　TP312
作　者　陈宝明 骆红波 许巨定 主编
译　者　--
责任编辑　蒋亮  
开　本　16 开
印　张　20.5
字　数　541 千字
页　数　320 页
装　帧　平装
版　次　第2版第1次
二版时间　2011年1月
本 印 次　2011年1月
首 印 数　-- 册
定　价　32.00 元
内容提要C语言作为一种结构化程序设计语言，在当今软件开发领域中有着十分广泛的应用，也是高等学校计算机语言类课程的首选语言。本书共分11章，主要内容包括C语言的基本语法和概念、数据类型及应用技巧、C语言程序结构、数组、函数、指针、文件等，并系统阐述了各种程序设计的方法。全书案例丰富，阐述清晰，层次分明，讲述力求理论联系实际、循序渐进，注重培养读者分析问题和程序设计的能力，注重培养良好的程序设计风格和习惯。
本书可作为高等学校理工类专业“C语言程序设计”课程的教学用书，也可作为学习C语言的入门教材，还可作为计算机二级考试的辅导教材。为配合教学，本书配有PPT教学课件，并有配套的《C语言程序设计实验指导(第2版)》，供读者参考。
目 录第1章　C语言概述　1
1.1　C语言简介　1
1.1.1　C语言的发展及其标准　1
1.1.2　C语言的特点　2
1.2　简单的C语言程序介绍　2
1.3　C语言程序的运行步骤和开发环境　4
1.3.1　C语言程序的运行步骤　4
1.3.2　Visual C++6.0简介　5
1.3.3　Turbo C2.0简介　11
1.3.4　C-Free3.5简介　16
习题　19
第2章　C语言程序设计基础　21
2.1　数据类型　21
2.1.1　数据的分类　21
2.1.2　整型数据　22
2.1.3　实型数据　23
2.1.4　字符型数据　23
2.2　常量与变量　24
2.2.1　常量和符号常量　24
2.2.2　变量和变量的定义　25
2.3　运算符与表达式　27
2.3.1　运算符的分类　27
2.3.2　算术运算符和算术表达式　28
2.3.3　赋值运算符和赋值表达式　29
2.3.4　逗号运算符和逗号表达式　30
2.3.5　关系运算符和关系表达式　30
2.3.6　逻辑运算符和逻辑表达式　31
2.4　数据运算　32
2.4.1　自动类型转换　32
2.4.2　赋值类型转换　33
2.4.3　强制类型转换　33
2.5　输入/输出语句　34
2.5.1　字符输出函数(putchar函数)　34
2.5.2　字符输入函数(getchar函数)　35
2.5.3　格式输出函数(printf函数)　35
2.5.4　格式输入函数(scanf函数)　38
习题　40
第3章　C语言程序控制结构　43
3.1　算法及程序　43
3.1.1　算法　43
3.1.2　程序及编写要求　47
3.2　顺序结构　48
3.3　分支结构　49
3.3.1　简单的if语句　50
3.3.2　if语句的嵌套　52
3.3.3　switch语句　54
3.3.4　程序举例　56
3.4　循环结构　57
3.4.1　while语句　58
3.4.2　do-while语句　59
3.4.3　for语句　60
3.4.4　break和continue语句　63
3.4.5　循环的嵌套　65
3.5　综合程序设计举例　67
3.5.1　数值计算问题　67
3.5.2　找最大最小问题　69
3.5.3　数据位数的统计与拆分　70
3.5.4　格式输出及字符处理问题　70
习题　71
第4章　数组　76
4.1　数组的概念　76
4.1.1　一个例子　76
4.1.2　数组的概念　77
4.1.3　数组的分类　77
4.2　一维数组　77
4.2.1　一维数组的定义　77
4.2.2　一维数组的初始化　78
4.2.3　一维数组的引用　79
4.2.4　一维数组应用举例　81
4.3　二维数组　83
4.3.1　二维数组的定义　83
4.3.2　二维数组的初始化　84
4.3.3　二维数组的引用　84
4.3.4　二维数组应用举例　85
4.4　字符数组与字符串　87
4.4.1　字符、字符串和字符数组　87
4.4.2　字符数组的定义及初始化　87
4.4.3　字符数组的输入和输出　89
4.4.4　字符串处理函数　91
4.4.5　字符数组应用举例　92
4.5　数组应用举例　94
4.5.1　排序　94
4.5.2　查找　97
4.5.3　求极值　100
4.5.4　统计　103
习题　104
第5章　函数　106
5.1　函数概述　106
5.1.1　模块化程序设计　106
5.1.2　使用函数的好处　107
5.1.3　函数的基本用法　107
5.2　函数的一般形式　109
5.2.1　函数的定义　109
5.2.2　函数原型的声明　112
5.3　函数的参数传递方式　113
5.3.1　形参与实参　113
5.3.2　多个参数的传递　114
5.3.3　值传递方式　115
5.4　函数的调用　116
5.4.1　函数调用的一般形式　117
5.4.2　函数的调用过程　117
5.4.3　函数的调用方式　118
5.5　函数的嵌套与递归　119
5.5.1　函数的嵌套调用　119
5.5.2　函数的递归调用　121
5.6　变量的作用域与存储类别　125
5.6.1　变量的作用域　125
5.6.2　变量的存储类别　129
5.7　函数应用举例　131
习题　134
第6章　指针　136
6.1　指针的概念　136
6.2　指针变量与变量　137
6.2.1　指针变量的定义　137
6.2.2　指针变量的引用和运算　138
6.2.3　指针变量作为函数参数　142
6.3　指针与数组　143
6.3.1　指向数组的指针　144
6.3.2　通过指针变量访问数组元素　144
6.3.3　数组作为函数参数　147
6.3.4　指向多维数组的指针　155
6.4　指针与字符串　157
6.4.1　指针与字符串　158
6.4.2　字符串指针作为函数参数　159
6.4.3　使用字符串指针变量与字符数组的区别　161
6.5　指针数组和指向指针的指针　162
6.5.1　指针数组　162
6.5.2　指向指针的指针　163
6.5.3　指针的其他用法　164
习题　166
第7章　预处理命令　168
7.1　宏定义　168
7.1.1　不带参数的宏定义　168
7.1.2　带参数的宏定义　171
7.2　文件包含　174
7.3　条件编译　177
习题　180
第8章　结构体与共用体　182
8.1　结构体类型与结构体变量定义　182
8.1.1　结构体类型的定义　182
8.1.2　结构体变量的定义　183
8.2　结构体变量初始化与引用　184
8.2.1　结构体变量的初始化　185
8.2.2　结构体变量的引用　185
8.3　结构体数组　186
8.3.1　结构体数组的定义　187
8.3.2　结构体数组的初始化　187
8.3.3　结构体数组的使用　188
8.4　结构体指针变量　189
8.4.1　指向结构体变量的指针　189
8.4.2　指向结构体数组的指针　190
8.5　结构体与函数　191
8.5.1　结构体变量的成员作函数参数　191
8.5.2　结构体变量作函数参数　192
8.5.3　指向结构体变量的指针作函数参数　193
8.6　链表　194
8.6.1　静态链表　195
8.6.2　动态内存函数　196
8.6.3　链表的基本操作　197
8.7　共用体　202
8.7.1　共用体的概念　202
8.7.2　共用体变量的引用　203
8.7.3　共用体类型数据的说明　203
8.8　枚举类型　204
8.9　用户自定义类型　207
习题　207
第9章　位运算　208
9.1　位运算概述　208
9.1.1　计算机中数据的表示　208
9.1.2　补码的求法　209
9.2　位运算符和位运算　209
9.2.1　位运算操作　210
9.2.2　位运算操作举例　216
9.3　位段　218
习题　220
第10章　文件　221
10.1　C文件概述　221
10.1.1　数据文件的存储形式　221
10.1.2　缓冲文件系统与非缓冲文件系统　222
10.2　文件指针　222
10.3　文件的打开与关闭　223
10.3.1　文件的打开　223
10.3.2　文件的关闭　225
10.4　文件的读写　225
10.4.1　字符读写函数　225
10.4.2　字符串读写函数　228
10.4.3　数据块读写函数　229
10.4.4　格式化读写函数　232
10.4.5　整数读写函数　234
10.5　文件的定位　235
10.6　文件检测函数　237
习题　238
第11章　C语言程序设计综合应用举例　240
11.1　多模块编程技术　240
11.1.1　多模块的组织　240
11.1.2　多模块之间的通信　241
11.2　学生成绩管理系统　241
11.2.1　功能概述　241
11.2.2　设计思路　242
11.2.3　源码分析　245
11.2.4　运行结果　255
11.2.5　小结　258
习题　259
附录A　教材各章习题参考答案　260
附录B　常用字符与ASCII代码对照表　301
附录C　C语言关键字(保留字)　302
附录D　C语言优先级别和结合性　304
附录E　C语言常用库函数　306
附录F　C语言常用语法　312
附录G　C语言常见出错信息　315
参考文献　320
图书信息2书　名　C语言程序设计(第2版)(工业和信息化普通高等教育“十二五”规划教材立项项目)
丛 书 名　21世纪高等学校规划教材
标准书号　ISBN 978-7-115-27051-1
编目分类　TP312  [2]
作　者　郑山红 李万龙 于秀霞 主编
译　者　--
责任编辑　武恩玉
开　本　16 开
印　张　16.5
字　数　428 千字
页　数　254 页
装　帧　平装
版　次　第2版第1次
二版时间　2012年3月
本 印 次　2012年3月
首 印 数　-- 册
定　价　35.00 元
内容提要本书主要介绍C语言的基本概念、组成要素以及在程序设计中的应用，共分10章。全书提供多个综合实例，通过分析、算法描述、源程序及运行结果4步骤的详细阐述，引导读者掌握C语言的程序设计方法，加深对知识的理解。全书针对初学者的特点，在内容的组织方面强调层次性与逻辑性，注重概念定义的严谨性和准确性，叙述由浅入深，通俗易懂。
本书可作为高等院校C语言程序设计课程的教材，也可作为软件开发人员的技术参考书。
目　录第1章　C语言概述　1
1.1　计算机语言的发展　1
1.1.1　机器语言　1
1.1.2　汇编语言　1
1.1.3　高级语言　2
1.2　C语言的发展及特点　2
1.2.1　C语言的发展　2
1.2.2　C语言的特点　3
1.3　认识第一个C程序　3
1.4　开发第一个C程序　5
1.4.1　C程序的开发过程　5
1.4.2　Visual C++环境下运行C程序　7
1.5　深入研究：调试手段与错误定位　9
本章小结　11
习题　11
第2章　数据类型、运算符和表达式　13
2.1　标识符和关键字　13
2.1.1　字符集　13
2.1.2　标识符　14
2.1.3　关键字　14
2.2　数据类型　15
2.3　常量与变量　17
2.3.1　常量　17
2.3.2　变量　21
2.4　运算符与表达式　23
2.4.1　算术运算符及算术表达式　23
2.4.2　关系运算符及关系表达式　27
2.4.3　逻辑运算符及逻辑表达式　28
2.4.4　赋值运算符及赋值表达式　30
2.4.5　条件运算符及条件表达式　32
2.4.6　逗号运算符及逗号表达式　33
2.4.7　求字节数运算符及求字节数表达式　34
2.5　数据类型转换　34
2.6　深入研究：整型数值的溢出问题　36
本章小结　37
习题　37
第3章　控制结构　39
3.1　结构程序设计　39
3.2　顺序结构程序设计　39
3.2.1　表达式语句　39
3.2.2　函数调用语句　40
3.2.3　空语句　45
3.2.4　复合语句　46
3.3　选择结构程序设计　46
3.3.1　if语句　46
3.3.2　switch语句　49
3.4　循环结构程序设计　52
3.4.1　while语句　52
3.4.2　do-while语句　54
3.4.3　for语句　55
3.4.4　循环的嵌套　57
3.5　转移控制语句　59
3.5.1　break语句　59
3.5.2　continue语句　61
3.5.3　goto语句　62
3.6　综合实例　63
3.7　深入研究：程序优化问题　65
本章小结　67
习题　67
第4章　函数　70
4.1　函数的定义　70
4.2　函数的调用　72
4.2.1　函数调用的一般形式　72
4.2.2　函数参数的传递　76
4.2.3　函数的嵌套调用　77
4.3　函数的声明　78
4.4　函数的返回与返回值　80
4.4.1　函数的返回　80
4.4.2　返回值　81
4.5　函数的递归调用　82
4.6　变量的作用域与生命期　85
4.6.1　局部变量　85
4.6.2　全局变量　86
4.7　变量的存储类型　88
4.7.1　自动变量　88
4.7.2　静态变量　89
4.7.3　寄存器变量　91
4.7.4　外部变量　92
4.8　综合实例　93
4.9　深入研究：递归的设计与使用问题　95
本章小结　97
习题　98
第5章　数组　101
5.1　为什么要使用数组　101
5.2　一维数组　102
5.2.1　一维数组的定义　102
5.2.2　一维数组的引用　103
5.2.3　一维数组的初始化　107
5.3　二维数组　108
5.3.1　二维数组的定义　108
5.3.2　二维数组的引用　109
5.3.3　二维数组的初始化　110
5.4　多维数组　112
5.5　字符数组　114
5.5.1　字符数组的定义和引用　114
5.5.2　字符数组的初始化　114
5.5.3　字符数组的输入输出　115
5.5.4　字符串处理函数　116
5.6　数组与函数　118
5.7　综合实例　120
5.8　深入研究：数组的负数下标和动态数组问题　122
本章小结　124
习题　124
第6章　指针　127
6.1　指针与指针变量　127
6.1.1　指针的概念　127
6.1.2　指针变量的提出　128
6.1.3　指针变量的定义　129
6.1.4　指针变量的初始化　130
6.1.5　指针变量的使用　132
6.2　指针与数组　135
6.2.1　指针与一维数组　136
6.2.2　指针与二维数组　140
6.2.3　指针与字符数组　142
6.2.4　指针数组　144
6.3　指针与函数　145
6.3.1　指针作为函数参数　145
6.3.2　指针作为函数的返回值　149
6.3.3　指向函数的指针　150
6.4　指向指针的指针　152
6.5　动态内存分配　153
6.6　带参数的main()函数　155
6.7　综合实例　156
6.8　深入研究：多级指针问题　158
本章小结　159
习题　160
第7章　结构体、共用体和枚举　163
7.1　结构体类型　163
7.1.1　结构体类型的提出　163
7.1.2　结构体类型的定义　163
7.2　结构体类型变量　165
7.2.1　结构体类型变量的定义　165
7.2.2　结构体类型变量的引用　166
7.2.3　结构体类型变量的初始化　167
7.3　结构体类型数组　168
7.3.1　结构体类型数组的定义　168
7.3.2　结构体类型数组的引用　169
7.4　结构体类型指针　170
7.4.1　指向结构体变量的指针　170
7.4.2　指向结构体数组的指针　172
7.5　结构体与函数　173
7.6　共用体　175
7.6.1　共用体类型的提出　175
7.6.2　共用体类型的定义　175
7.6.3　共用体变量的定义　176
7.6.4　共用体变量的引用　176
7.7　枚举　178
7.7.1　枚举类型的定义　178
7.7.2　枚举变量的定义　179
7.7.3　枚举变量的使用　180
7.8　自定义数据类型　182
7.9　综合实例　183
7.10　深入研究：单链表的插入与删除　185
本章小结　187
习题　188
第8章　位运算　191
8.1　位运算符　191
8.1.1　按位与运算符　191
8.1.2　按位或运算符　193
8.1.3　按位异或运算符　194
8.1.4　按位取反运算符　195
8.1.5　按位左移运算符　196
8.1.6　按位右移运算符　196
8.2　位段　198
8.2.1　位段的定义　198
8.2.2　位段的使用　199
8.3　综合实例　201
8.4　深入研究：字段拼装问题　204
本章小结　205
习题　205
第9章　文件　207
9.1　文件概述　207
9.2　文件指针　208
9.3　文件的打开和关闭　208
9.3.1　文件打开函数fopen()　209
9.3.2　文件关闭函数fclose()　210
9.4　文件的读写　210
9.4.1　字符读写函数fgetc()和fputc()　210
9.4.2　字符串读写函数fgets()和fputs()　212
9.4.3　数据块读写函数fread()和fwrite()　213
9.4.4　格式化读写函数fscanf()和fpintf()　215
9.4.5　自定义其他类型数据的读写函数　217
9.5　文件的定位　217
9.6　文件的出错检测　218
9.7　综合实例　219
9.8　深入研究：读写效率问题　222
本章小结　223
习题　224
第10章　编译预处理　226
10.1　宏定义　226
10.1.1　不带参数的宏定义　226
10.1.2　带参数的宏定义　228
10.1.3　宏定义的嵌套　229
10.1.4　取消宏定义　229
10.2　文件包含　230
10.3　条件编译　232
10.4　其他预处理功能　233
10.5　预定义的宏名　234
10.6　深入研究：头文件的重复引用问题　234
本章小结　235
习题　235
附录A　预备知识　237
附录A.1　计算机硬件系统的基本工作原理　237
附录A.2　进制与进制转换　239
附录A.3　规范化编程　243
附录B　ASCII码字符集　245
附录C　运算符的优先级与结合性　248
附录D　C库函数　249
参考文献　254
中国水利水电出版社出版图书
图书信息  作者：丁亚涛 (作者, 编者) 
出版社: 中国水利水电出版社; 第2版 (2011年7月1日) 
丛书名: 21世纪高职高专新概念规划教材 
平装: 266页 
正文语种: 简体中文 
开本: 16 
ISBN: 9787508485874 
条形码: 9787508485874 
产品尺寸及重量: 25.6 x 18.2 x 1.4 cm ; 440 g
内容简介《C语言程序设计(第2版)》在延续第一版编写风格的基础上，根据计算机技术的发展，结合作者多年教学实践与研发经验，并考虑到读者的反馈信息，对各个章节的内容、结构等进行了修订、调整、完善和补充。全书分为12章，主要内容包括：C语言概述、数据类型、运算符和表达式、简单程序设计、选择结构程序设计、循环结构程序设计、数组、函数、指针、结构体、共用体与枚举，位运算，文件，面向对象程序设计及c++简介。《C语言程序设计(第2版)》采用“案例驱动”的编写方式，以程序设计为中心，语法介绍精炼，内容叙述深入浅出、循序渐进，程序案例生动易懂，具有很好的启发性。每章均配备教学课件和精心设计的习题。
编辑推荐《C语言程序设计(第2版)》是21世纪高职高专新概念规划教材之一。
案例驱动
将案例划分为单独的小节，以重点突出案例的层次，方便讲解算法、阅读教材
精选例题
经典案例、重点案例分析和讲解结合独创的“变量跟踪”等阅读技巧，兼具趣味性和知识性，使学习更轻松
新语言元素
第一次将C#、Java等纳入扩展阅读，并制作了计算机语言发展族谱图，以突出C语言目前的地位和应用状态
强大的配套资源
包括配套的《C语言程序设计实训、习题解答与考试指导(第二版)》、模拟的考试系统和大型题库、成熟的单机或网络考试软件、资料丰富的教学网站、精致的教学课件等。
目录前言
第1章 c语言概述
1.1 程序设计和c语言
1.1.1 程序（program）的概念
1.1.2 程序设计（programming）的一般过程
1.1.3 程序设计的方法
1.1.4 C语言的历史和发展
1.2 案例：历史上的第一个C语言程序
1.3 案例：计算圆柱体底面积和体积
1.4 c语言的特点
1.5 案例：计算1+2+3++100
1.6 算法
1.6.1 算法概述
1.6.2 算法的表示
1.7 C语言编程环境
1.7.1 TurboC2.0编程环境
1.7.2 Visualc++6.0编程环境
本章 小结
习题
第2章 数据类型、运算符和表达式
2.1 数据类型
2.1.1 数据类型概述
2.1.2 整型及整型常量
2.1.3 实型及实型常量
2.1.4 字符型及字符型常量
2.2 标识符、符号常量与变量
2.2.1 标识符
2.2.2 符号常量
2.2.3 变量
2.3 运算符与表达式
2.3.1 算术运算符与算术表达式
2.3.2 算术表达式的书写
2.3.3 赋值运算符与赋值表达式
2.3.4 逗号运算符与逗号表达式
2.4 数据类型转换
2.4.1 类型转换概述
2.4.2 自动类型转换
2.4.3 赋值类型转换
2.4.4 强制类型转换
2.5 数据的溢出与误差
2.5.1 数据的溢出
2.5.2 实型数据的误差
2.6 案例：一样的“A”，不一样的输出方式
2.7 案例：代数式和c语言表达式
2.8 案例：时间的换算
本章 小结
习题二
第3章 简单程序设计
3.1 C语言语句
3.2 程序结构
3.2.1 程序结构简介
3.2.2 顺序结构
3.3 赋值语句
3.3.1 基本赋值语句
3.3.2 复合赋值语句
3.4 数据的输入与输出
3.4.1 格式化输出函数printf
3.4.2 格式化输入函数scanf
3.4.3 字符数据的输入与输出
3.5 案例：简单的数据交换算法
3.6 案例：大小写字母的转换
3.7 案例：计算三角形的面积
3.8 案例：求一元二次方程的根
3.9 案例：相同的++运算，不一样的结果
本章 小结
习题三
第4章 选择结构程序设计
4.1 案例：红绿灯
4.2 关系运算符与关系表达式
4.2.1 关系运算符
4.2.2 关系表达式
4.3 逻辑运算符与逻辑表达式
4.3.1 逻辑运算符
4.3.2 逻辑表达式
4.4 逻辑运算符的短路现象
4.5 if语句
4.5.1 单分支if语句
4.5.2 双分支if语句
4.5.3 多分支选择结构
4.6 案例：打车费用的计算
4.7 if语句的嵌套
4.8 案例：闰年的判断
4.9 条件运算符和条件表达式
4.9.1 条件运算符
4.9.2 条件表达式
4.10 switch语句
4.11 案例：判断输入的整数是否含有数字6
4.12 案例：三个数的排序
4.13 案例：分数等级的划分
本章 小结
习题四
第5章 循环结构程序设计
5.1 案例：一次有趣的投币游戏
5.1.1 游戏规则
5.1.2 问题的解决
5.2 while循环
5.3 d0一while循环
5.4 for循环
5.5 案例：倒数的求和
5.6 循环的嵌套
5.7 break语句、continue语句和goto语句
5.7.1 break语句
5.7.2 continue语句
5.7.3 goto语句
5.8 案例：阶乘的计算
5.9 案例：输出星号组成的图形
5.10 案例：计算100以内的素数之和
5.11 案例：计算Fibonacci数列前20项的和
5.12 循环的阅读和技巧
5.13 案例：日历的打印
本章 小结
习题五
第6章 数组
6.1 数组的基本概念
6.2 一维数组
6.3 案例：求10个数中的最大值、最小值、平均值
6.4 二维数组和多维数组
6.5 案例：输入学生成绩，计算每门课程的平均分
6.6 字符数组与字符串
6.7 案例：逆序输出字符串
6.8 字符串函数
6.9 案例：查找最大字符串
6.10 案例：冒泡排序算法
6.11 案例：字符串的连接、插入和删除
6.12 案例：转置矩阵
6.13 案例：杨辉三角形
6.14 案例：日历的打印
本章 小结
习题六
第7章 函数
7.1 案例：计算（1）+（1+2）+（1+2+3）+（1+2+3+4）+（1+2+3+4+5）
7.2 函数的定义和调用
7.2.1 函数定义
7.2.2 函数调用
7.3 参数传递
7.4 函数声明
7.5 作用域
7.6 存储类型
7.6.1 自动（auto）类型
7.6.2 寄存器（register）类型
7.6.3 静态（static）类型
7.6.4 外部（extem）类型
第8章 指针基础
第9章 结构体、共用体与枚举
第10章 位运算
第11章 文件
第12章 面向对象及C++、C#简介
附录A常用字符与ASCII码对照表
附录BTurboc2.0常用库函数
附录CTurboC2.0和VisualC++在编辑C程序时的区别
附录D主要计算机语言发展族谱图
参考文献
中国铁道出版社出版图书
基本信息书名：C语言程序设计（第二版）
套系名称：高职高专计算机系列规划教材
书号：978-7-113-13741-0　
版次：2-3　
开本：16开　
页码：300页[3]
作者：贾学斌 宋海民 
出版时间：2011-12-01 
定价：33 元
适用专业：计算机专业
出版社：中国铁道出版社
内容简介"本书根据C语言课程一体化教学的思想，以能力培养为核心，以实例为主线，本教材分为11章，主要内容包括：C语言概述、基本数据类型和运算符及表达式、数据的输入/输出、结构化程序设计、数组、函数、指针、构造数据类型、文件、编译预处理、位运算等，每章后附有各种类型习题。书末附有常用字符与ASCII代码对照表、运算符的优先级和结合性及C语言常用库函数。有配套一体化实训教材《C程序设计实训教程（第二版）》。
本书体系合理、概念清晰、例题丰富、逻辑性强、文字流畅、通俗易懂。书中内容注重基础，突出应用，每章有程序案例，以便读者能够综合运用本章所学知识提高实际编程能力。
本书既可作为高职高专相关专业的教材，还可供C语言爱好者自学使用。
图书目录第1章 C语言概述 1
1-1 C语言的发展史 1
1-2 C语言的特点 2
1-3 算法 3
1-3-1 算法的概念 4
1-3-2 算法的特性 5
1-3-3 算法的描述 6
1-3-4 结构化程序设计 8
1-4 C语言的语法基础 10
1-4-1 C语言字符集 10
1-4-2 标识符 11
1-4-3 保留字 11
1-5 简单的C程序设计 12
1-5-1 赋值语句 12
1-5-2 printf函数 13
1-5-3 scanf函数 14
1-5-4 库函数和头文件 14
1-6 C程序的开发过程 16
1-7 C语言常用集成开发环境 17
1-8 程序案例 18
1-9 在Visual C++ 6.0中开发C程序 21
1-9-1 Visual C++ 6.0集成
开发环境简介 21
1-9-2 建立控制台应用程序 23
1-10 小结 27
1-11 习题 28
第2章 基本数据类型、运算符
及表达式 30
2-1 C语言的数据类型 30
2-2 常量与变量 31
2-2-1 常量 31
2-2-2 变量 31
2-3 整型数据 33
2-3-1 整型常量 33
2-3-2 整型变量 33
2-4 实型数据 36
2-4-1 实型常量 36
2-4-2 实型变量 37
2-5 字符型数据 38
2-5-1 字符常量 38
2-5-2 转义序列 38
2-5-3 字符串常量 39
2-5-4 符号常量 39
2-5-5 字符型变量 40
2-5-6 字符数据在内存中的存
放形式及其使用方法 41
2-6 运算符和表达式 42
2-6-1 运算符的分类 42
2-6-2 运算符的优先级与
结合性 43
2-6-3 算术运算符和算术
表达式 43
2-6-4 增1、减1运算符及
表达式 45
2-6-5 赋值运算符和赋值
表达式 46
2-6-6 关系运算符和关系
表达式 48
2-6-7 逻辑运算符和逻辑
表达式 50
2-6-8 逗号运算符和逗号
表达式 52
2-6-9 sizeof运算符 52
2-7 数据类型的转换 53
2-7-1 自动类型转换 54
2-7-2 强制类型转换 54
2-8 程序案例 55
2-9 小结 56
2-10 习题 57
第3章 数据的输入/输出 60
3-1 用putchar函数输出一个字符 60
3-2 用getchar函数输入一个字符 61
3-3 用printf函数输出数据 62
3-3-1 printf函数的一般格式 62
3-3-2 格式字符 63
3-4 用scanf函数输入数据 68
3-4-1 scanf函数的一般格式 68
3-4-2 格式字符 68
3-4-3 通过scanf函数从键盘
输入数据 69
3-4-4 scanf函数输入中常见
错误分析 70
3-5 程序案例 71
3-6 小结 72
3-7 习题 72
第4章 结构化程序设计 77
4-1 结构化程序设计的概念 77
4-2 选择结构程序设计 78
4-2-1 if语句 78
4-2-2 if语句的嵌套 81
4-2-3 条件运算符和条件
表达式 83
4-3 switch语句 84
4-4 while语句 88
4-4-1 while循环的一般格式 88
4-4-2 while循环的执行过程 88
4-5 do…while语句 90
4-5-1 do…while循环的
一般格式 90
4-5-2 do…while循环的
执行过程 90
4-5-3 do…while语句和while
语句的区别与联系 91
4-6 for语句 92
4-6-1 for循环的一般格式 92
4-6-2 for循环的执行过程 93
4-6-3 for、while、do…while 
3种循环的比较 96
4-7 循环嵌套 96
4-8 break语句和continue语句 97
4-8-1 break语句 97
4-8-2 continue语句 98
4-9 语句标号和goto语句 99
4-9-1 语句标号 99
4-9-2 goto 语句 99
4-10 程序案例 100
4-11 小结 101
4-12 习题 102
第5章 数组 107
5-1 数组的概念 107
5-2 一维数组 108
5-2-1 一维数组的定义 108
5-2-2 一维数组元素的引用 109
5-2-3 一维数组的初始化 110
5-2-4 一维数组的应用 111
5-3 二维数组 114
5-3-1 二维数组的定义 114
5-3-2 二维数组元素的引用 115
5-3-3 二维数组的初始化 115
5-3-4 二维数组的应用 116
5-4 字符数组 117
5-4-1 字符数组的定义 117
5-4-2 字符数组的初始化 117
5-4-3 字符数组的引用 118
5-4-4 字符串和字符串
结束标志 118
5-4-5 字符数组的输入输出 119
5-4-6 字符串处理函数 121
5-4-7 字符数组的应用 122
5-5 程序案例 123
5-6 小结 125
5-7 习题 126
第6章 函数 129
6-1 C程序的模块化结构 129
6-1-1 概述 129
6-1-2 C程序的模块化结构 130
6-1-3 函数的分类 131
6-2 函数的定义 132
6-2-1 无参函数的定义 132
6-2-2 有参函数的定义 132
6-2-3 函数定义的应用 133
6-3 函数的参数与返回值 133
6-3-1 函数的形式参数
和实际参数 133
6-3-2 返回语句 134
6-4 函数的调用 135
6-4-1 函数调用的一般格式 135
6-4-2 函数调用的方式 135
6-4-3 对被调函数的声明 137
6-5 函数的嵌套调用 138
6-6 函数的递归调用 139
6-6-1 函数的直接递归调用 139
6-6-2 函数的间接递归调用 140
6-6-3 函数的递归调用应用 140
6-7 数组作为函数参数 143
6-7-1 数组元素作函数实参 143
6-7-2 数组名作函数参数 144
6-7-3 二维数组名作函数
参数 145
6-8 变量的作用域和存储类别 146
6-8-1 变量的作用域 146
6-8-2 变量的存储类别 147
6-8-3 局部变量的存储类别 147
6-8-4 全局变量的存储类别 152
6-9 函数的作用域和存储类别 155
6-9-1 内部函数 155
6-9-2 外部函数 155
6-10 程序案例 156
6-11 小结 158
6-12 习题 160
第7章 指针 167
7-1 指针的概述 167
7-2 指针变量 169
7-2-1 指针变量的定义与
初始化 169
7-2-2 指针变量的引用 171
7-2-3 指针变量作为函数
的参数 173
7-3 通过指针引用数组 176
7-3-1 指向数组元素的指针 176
7-3-2 指针变量的运算 176
7-3-3 通过指针引用
数组元素 179
7-3-4 数组名和指针变量
作函数参数 182
7-4 指针与字符串 184
7-4-1 字符串指针变量的
定义与使用 184
7-4-2 使用字符串指针变量与
使用字符数组的区别 187
7-5 指针与函数 188
7-5-1 函数指针变量 188
7-5-2 指针型函数 189
7-6 指针数组和指向指针的指针 190
7-6-1 指针数组 190
7-6-2 指向指针的指针 191
7-7 main函数的形参、动态存储
分配和void指针 192
7-7-1 指针数组作为main
函数的形参 192
7-7-2 动态存储分配 193
7-7-3 void指针类型 194
7-8 程序案例 195
7-9 小结 196
7-10 习题 197
第8章 构造数据类型 201
8-1 结构体 201
8-1-1 结构体类型说明 201
8-1-2 结构体变量的定义 202
8-1-3 结构体成员的引用
和初始化 205
8-2 结构体数组 207
8-2-1 结构体数组的定义 207
8-2-2 结构体数组的初始化 209
8-3 结构体与函数 209
8-3-1 结构体变量作为
函数参数 209
8-3-2 结构体变量为函数
的返回值 212
8-4 结构体与指针 214
8-4-1 结构体变量指针 214
8-4-2 结构体数组指针 216
8-4-3 用指向结构体的
指针作函数参数 217
8-5 链表 218
8-5-1 链表概述 218
8-5-2 链表的基本操作 219
8-6 共用体 221
8-6-1 共用体的概念 221
8-6-2 共用体变量的
引用方式 222
8-7 枚举类型 223
8-8 用typedef定义类型 224
8-9 程序案例 226
8-10 小结 227
8-11 习题 228
第9章 文件 233
9-1 文件概述 233
9-1-1 文件的概念 233
9-1-2 文件指针 234
9-1-3 缓冲文件系统和
非缓冲文件系统 235
9-2 文件的打开和关闭 236
9-2-1 用fopen函数
打开文件 236
9-2-2 用fclose函数
关闭文件 238
9-3 文件的顺序读写 239
9-3-1 文本文件中字符的
输入/输出 239
9-3-2 文本文件中字符串
的输入/输出 240
9-3-3 文本文件的格式化
输入/输出 242
9-3-4 二进制文件的
输入/输出 242
9-4 文件的随机读写 243
9-5 文件检测函数 244
9-6 程序案例 245
9-7 小结 247
9-8 习题 248
第10章 编译预处理 252
10-1 宏定义 252
10-1-1 不带参数的宏定义 252
10-1-2 带参数的宏定义 254
10-1-3 终止宏定义 257
10-2 文件包含 257
10-3 条件编译 259
10-4 程序案例 262
10-5 小结 262
10-6 习题 263
第11章 位运算 267
11-1 位运算符与位运算 267
11-1-1 “按位与”运算 268
11-1-2 “按位或”运算 269
11-1-3 “按位异或”运算 269
11-1-4 “按位取反”运算 270
11-1-5 “左移”运算 271
11-1-6 “右移”运算 271
11-1-7 位运算赋值运算符 271
11-2 位段 271
11-3 程序案例 273
11-4 小结 274
11-5 习题 275
附录A 常用字符与ASCII代码对照表 278
附录B 运算符的优先级和结合性 279
附录C C语言的库函数 280
参考文献 290