刘明军、韩玫瑰主编的《C语言程序设计(第2版)》从模块化程序设计的思想引入函数,调整了全书结构,使结构层次更清晰,并以实例的方式说明模块化程序设计的优点。对于构造数据类型,除更清楚地介绍基本概念和使用方法外,重点介绍与指针的关系,并结合实例,突出将其作为函数参数的使用方法,与指针内容紧密结合。对于文件操作,增加了实用例题,使其更具有指导性。实用程序设计技巧更侧重于实用性和技巧性,并针对Visual C++ 6.0环境设计了例题。将程序移植到Visual C++ 6.0环境中运行、调试。所有例题均按照Visual C++ 6.0的格式编写。
刘明军、韩玫瑰主编的《C语言程序设计(第2版)》是国家精品课程教材,以任务驱动的方式,通过实例讲授程序设计的基本概念和基本方法,把重点放在解题思路上,试图贯穿以程序编写带动语法教学的模式,引导读者掌握C语言的核心编程方法,提高应用能力。《C语言程序设计(第2版)》共7章,主要内容包括:C语言程序基础、C语言程序基本结构、模块化程序设计思想、简单构造数据类型、复杂构造数据类型、磁盘数据存储、实用程序设计技巧等。《C语言程序设计(第2版)》配套《C语言程序设计实验教程(第2版)》,并提供课程网站、电子课件、习题答案及程序源代码。
《C语言程序设计(第2版)》可作为高等学校本科生教材,也可作为专科和高职高专教材及计算机等级考试的参考书,还可供相关领域的工程技术人员学习参考。
第1章 C语言程序基础/1
1.1 C语言程序的基本结构/2
1.1.1 认识C语言程序/2
1.1.2 基本结构/3
1.1.3 程序举例/5
1.2 C语言基本语法成分/7
1.3 C语言数据类型/9
1.3.1 基本数据类型/10
1.3.2 指针类型/13
1.3.3 构造数据类型/13
1.4 C语言的表达式和语句/13
1.5 C语言程序运行过程/15
1.5.1 源程序、目标程序和可执行程序的概念/15
1.5.2 C语言程序的开发步骤/15
1.6 编写简单的C语言程序/17
1.7 数据的输入与输出/19
1.7.1 printf( )函数/19
1.7.2 scanf( )函数/20
1.8 C语言中的宏定义/23
1.8.1 不带参数的宏定义/23
1.8.2 带参数的宏定义/24
1.9 算法/26
1.9.1 算法的概念及特性/26
1.9.2 算法的表示方法/27
1.10 C语言的产生、发展及特点/30
1.10.1 C语言的产生及发展/30
1.10.2 C语言的特点/31
习题/32
第2章 程序基本结构/37
2.1 分支结构/38
2.1.1 单分支结构/38
2.1.2 双分支结构/38
2.1.3 多分支结构/40
2.1.4 if语句的嵌套/41
2.1.5 条件运算符/43
2.1.6 switch语句/44
2.2 关系运算和逻辑运算/46
2.2.1 关系运算符和关系表达式/46
2.2.2 逻辑运算符和逻辑表达式/47
2.3 循环结构/49
2.3.1 概述/49
2.3.2 当型循环while/49
2.3.3 直到型循环do-while/51
2.3.4 当型循环for/53
2.3.5 几种循环的比较/55
2.4 Break和Continue语句/57
2.4.1 break语句/57
2.4.2 continue语句/59
2.5 Goto语句/59
2.6 指针程序设计/60
2.6.1 指针/60
2.6.2 指针变量的使用/61
2.7 经典算法举例/64
习题/70
第3章 模块化程序设计/75
3.1 模块化程序设计思想/76
3.2 函数定义/78
3.3 函数调用/79
3.3.1 函数调用的形式/79
3.3.2 函数间的参数传递/80
3.3.3 函数的返回值/82
3.4 函数的原型与声明/83
3.5 函数的嵌套与递归/84
3.5.1 函数的嵌套调用/84
3.5.2 函数的递归调用/85
3.6 库函数/87
3.7 变量的作用域与存储类型/88
3.7.1 变量的作用域/88
3.7.2 变量的存储类型/91
3.8 指针与函数/95
3.8.1 指针作为函数参数/95
3.8.2 返回指针值的函数/98
3.8.3 指向函数的指针变量/99
3.9 典型例题/100
习题/103
第4章 简单构造数据类型/109
4.1 一维数组/110
4.1.1 一维数组的引出/110
4.1.2 一维数组的定义和引用/110
4.1.3 一维数组程序举例/112
4.2 二维数组/114
4.2.1 二维数组的引出/114
4.2.2 二维数组的定义和引用/115
4.2.3 二维数组程序举例/117
4.3 字符数组与字符串/119
4.3.1 字符数组的引出/119
4.3.2 字符数组的定义和引用/120
4.3.3 字符串的定义和引用/121
4.3.4 字符数组程序举例/127
4.4 数组与指针/129
4.4.1 一维数组与指针/129
4.4.2 多维数组与指针/131
4.4.3 数组作为函数参数/132
4.5 字符串与指针/137
4.5.1 用字符指针访问字符串/137
4.5.2 字符指针和字符数组的区别/138
4.5.3 字符串作为函数参数/140
4.6 典型例题/142
习题/151
第5章 复杂构造数据类型/158
5.1 结构体/159
5.1.1 结构体的引出及使用/159
5.1.2 结构体数组/164
5.1.3 结构体程序举例/166
5.1.4 结构体与指针/168
5.2 共用体/171
5.2.1 共用体的引出/171
5.2.2 共用体的定义和引用/173
5.2.3 共用体类型数据的特点/174
5.3 枚举类型/174
5.3.1 枚举类型的引出/174
5.3.2 枚举类型的定义和引用/176
*5.4 链表/177
5.4.1 概述/177
5.4.2 简单链表/177
5.4.3 动态链表/178
5.4.4 输出链表结构的实现和使用/179
习题/183
第6章 磁盘数据存储/187
6.1 将数据写入文件/188
6.1.1 打开文件函数/188
6.1.2 关闭文件函数/189
6.2 文件读写分类函数/190
6.2.1 单字符写入函数/191
6.2.2 单字符读取函数/191
6.2.3 字符串读取函数/192
6.2.4 字符串写入函数/193
6.2.5 格式化读写函数/193
6.2.6 数据块读写函数/195
6.3 文件定位函数/197
6.3.1 位置指针复位函数/197
6.3.2 位置指针的随机移动函数/200
6.3.3 文件指针当前位置函数/201
6.4 其他文件函数/202
6.4.1 文件结束检测函数/202
6.4.2 出错检测函数/202
习题/203
第7章 实用程序设计技巧/207
7.1 程序的模块化结构/208
7.1.1 软件工程的思想/208
7.1.2 模块设计/208
7.1.3 使用模块化方法开发程序的好处/209
7.2 模块的组装/210
7.2.1 文件包含与头文件的使用/210
7.2.2 模块间的连接/212
7.2.3 标识符的一致性/215
7.2.4 条件编译/216
7.3 模块设计风格简述/218
7.3.1 数据风格/218
7.3.2 标识符风格/218
7.3.3 算法风格/219
7.3.4 输入/输出风格/219
7.3.5 书写风格/220
7.4 应用程序设计实例/221
习题/229
附录/232
附录A 常用C语言库函数/232
A.1 数学函数/232
A.2 输入/输出函数/233
A.3 字符函数/235
A.4 字符串函数/236
A.5 动态存储分配函数/237
A.6 时间函数/237
A.7 其他函数/238
附录B ASCII码表/240
附录C C语言运算符的优先级与结合/243
参考文献/245