第1章 C语言概述 1
1.1 C语言的发展史 1
1.2 C程序结构特点 2
1.2.1 C程序开发过程 2
1.2.2 C程序结构 3
1.2.3 C语言特点 4
1.3 兼容C程序的开发环境 5
习题1 5
第2章 数据类型 6
2.1 C语言数据类型概述 6
2.2 基本数据类型 7
2.2.1 C基本元素 7
2.2.2 基本数据类型概述 8
2.2.3 变量 10
2.2.4 常量 15
2.3 数据类型的转换 18
2.3.1 自动类型转换 18
2.3.2 强制类型转换 20
2.4 数组 20
2.4.1 数组概述 21
2.4.2 一维数组 21
2.4.3 二维数组与多维数组 24
2.4.4 字符数组 28
2.5 综合构造数据类型 31
2.5.1 结构体struct 32
2.5.2 共用体union 39
2.5.3 枚举类型enum 43
2.5.4 位段 45
习题2 48
第3章 运算符与表达式 51
3.1 运算符 51
3.1.1 运算符概述 51
3.1.2 运算符的操作规则 51
3.2 基本运算表达式 53
3.2.1 算术运算 53
3.2.2 自反运算 55
3.2.3 逻辑运算 56
3.2.4 关系运算 59
3.2.5 条件运算 60
3.3 赋值运算 61
3.3.1 简单赋值表达式 62
3.3.2 复合赋值表达式 62
3.4 逗号运算和长度运算 64
3.4.1 逗号运算 64
3.4.2 长度运算 64
3.5 位运算 65
3.5.1 位运算符 65
3.5.2 位运算的特殊功能及应用 66
3.5.3 移位运算 68
习题3 69
第4章 数据输入输出与流程控制 72
4.1 数据输入输出 72
4.1.1 字符输入与输出 72
4.1.2 格式化输入输出 74
4.2 程序流程的结构控制 83
4.2.1 语句 83
4.2.2 流程控制的基本结构 85
4.2.3 流程图 85
4.3 选择结构 87
4.3.1 条件语句——if语句 87
4.3.2 开关语句——switch语句 94
4.4 循环结构 96
4.4.1 当型语句——while 97
4.4.2 直到型语句——do…while 98
4.4.3 for循环语句 100
4.4.4 循环语句的嵌套规则 101
4.5 辅助控制语句及终止函数 103
4.5.1 间断语句break 104
4.5.2 继续语句continue 105
4.5.3 无条件转向语句goto 106
4.5.4 终止函数exit() 106
4.6 流程结构设计举例 107
4.6.1 数据的比较 107
4.6.2 穷举法和迭代法 109
4.6.3 数据排序 111
4.6.4 查找数据 113
4.6.5 程序设计优化问题 115
习题4 118
第5章 模块化设计 121
5.1 模块化设计策略 121
5.1.1 概述 121
5.1.2 模块化程序主要特征 121
5.2 函数 122
5.2.1 函数式程序结构 122
5.2.2 函数调用流程 123
5.3 函数定义与调用 123
5.3.1 函数定义格式 124
5.3.2 返回语句 129
5.3.3 函数调用 131
5.3.4 函数原型与声明 133
5.3.5 函数的嵌套调用与递归调用 136
5.4 函数的参数传递 140
5.4.1 参数传递方式 141
5.4.2 变量作函数参数 141
5.4.3 数组作函数参数 143
5.4.4 结构体变量作函数参数 146
5.5 变量存储属性 150
5.5.1 变量的存在性与可见性 151
5.5.2 变量存储类别 152
5.5.3 内部函数和外部函数 163
5.6 编译预处理 165
5.6.1 宏替换命令 166
5.6.2 文件包含命令 169
5.6.3 条件编译命令 172
习题5 174
第6章 指针基础 177
6.1 指针类型 177
6.1.1 指针概念 177
6.1.2 指针定义 179
6.1.3 指针变量 180
6.1.4 指针运算 186
6.1.5 指针作函数参数 191
6.2 指针与数组 193
6.2.1 指向一维数组的指针 193
6.2.2 指向二维数组的指针 197
6.2.3 指向数组的指针作函数参数 206
6.2.4 指向字符串的指针 209
6.2.5 指针数组与字符串 215
6.3 返回指针值的函数 221
6.4 指针与自定义类型数据 224
6.4.1 结构体类型指针 224
6.4.2 共用体类型指针 229
6.5 用户定义类型typedef及应用 234
6.5.1 typedef一般定义格式及特点 234
6.5.2 typedef定义类型方法 235
6.5.3 typedef类型重组定义的编程应用 236
习题6 237
第7章 指针的应用 240
7.1 指针动态分配内存的意义 240
7.2 动态分配函数 241
7.2.1 动态分配函数malloc()和释放函数free() 241
7.2.2 重新分配函数realloc() 244
7.2.3 按数据块分配内存函数calloc() 246
7.3 指针动态内存分配与链表设计 246
7.3.1 线性表与链表 246
7.3.2 建立链表的一般方法 249
7.3.3 建立动态链表 250
7.4 链表应用程序设计 253
7.4.1 删除一个记录 253
7.4.2 插入一个记录 257
7.4.3 单链表排序 260
习题7 266
第8章 程序数据文件 267
8.1 文件的概念 267
8.1.1 数据文件的类型 268
8.1.2 C语言文件系统 269
8.1.3 缓冲文件系统的文件类型指针 270
8.2 数据文件的打开与关闭 270
8.2.1 C语言文件类型指针 271
8.2.2 文件打开fopen() 272
8.2.3 文件关闭fclose() 273
8.3 数据文件的读写 274
8.3.1 读写一个字符 274
8.3.2 读写一个字符串 278
8.3.3 按格式读写数据 280
8.3.4 读写一个数据块 282
8.4 数据文件的定位 284
8.4.1 随机文件读写 284
8.4.2 文件指针复位 285
8.4.3 指针定位函数fseek() 285
8.4.4 获得文件指针当前位置 287
习题8 288
第9章 C程序实用设计一般方法 289
9.1 确定设计方案 289
9.1.1 C程序结构组成 289
9.1.2 程序设计构思过程 291
9.2 程序设计流程 292
9.2.1 确定程序主体结构 292
9.2.2 编写自定义函数 294
9.2.3 调试和测试 294
9.3 人机交互设计方法 296
9.3.1 程序与键盘 296
9.3.2 获取键值方法 296
9.3.3 按键扫描码与应用 297
9.4 菜单设计 298
9.4.1 菜单的分类 299
9.4.2 文本方式选项菜单设计举例 300
9.4.3 设计多级文本菜单一般方法 305
9.4.4 文本方式的主菜单和下拉菜单设计 307
9.5 C语言模拟并行设计与实现 318
9.5.1 并行设计思想 318
9.5.2 循环轮询并行设计示例 318
9.5.3 时间片方式并行设计示例 322
9.5.4 中断方式的并行设计示例 324
第10章 综合应用设计实例 329
10.1 设计实例一:通讯录管理系统 329
10.1.1 通讯录内容及数据描述 329
10.1.2 主要功能模块编程 330
10.1.3 程序整合及运行效果 340
10.2 设计实例二:候选人投票管理程序设计 350
10.2.1 设计任务及数据描述 350
10.2.2 设计方案 350
10.2.3 主要功能模块编程思路 351
10.2.4 完整设计及运行效果 355
10.3 设计实例三:温度检测应用设计 368
10.3.1 水温检测系统结构 369
10.3.2 模拟温控与水温检测程序设计 370
10.3.3 程序测试 379
10.3.4 完整程序框架 382
第11章 程序设计总结报告范例 392
11.1 程序设计总结报告撰写思路 392
11.1.1 概述 392
11.1.2 总结报告的基本内容 392
11.1.3 编写程序操作使用说明 395
11.2 总结报告范例——通讯录管理系统 396
附录A 标准ASCII码字符集(含扩展码) 401
附录B C语言运算符 402
附录C 关键字 403
附录D 十、八、十六进制数与二进制数关系表 404
附录E 标准C语言库函数 405
附录F 键盘扫描码 412
参考文献 414