第1章 C语言程序设计概述 1
1.1 C语言程序的基本组成 1
1.2 C语言程序设计的一般步骤 4
1.3 C语言程序的上机执行过程 5
1.3.1 Code::Blocks 6
1.3.2 Visual C++6.0 8
1.4 C语言学习方法 12
1.4.1 为什么要学C语言 12
1.4.2 如何学习C语言 13
1.4.3 C语言学习资源 13
1.5 案例:程序的铭牌 13
本章小结 14
习题 15
第2章 C语言基础 17
2.1 C语言的字符集 17
2.2 标识符 17
2.2.1 保留字 17
2.2.2 用户自定义标识符 18
2.3 数据与C语言的数据类型 18
2.3.1 整型数据类型 19
2.3.2 实型数据类型 21
2.3.3 字符型数据类型 22
2.4 常量 23
2.4.1 整型常量 23
2.4.2 实型常量 23
2.4.3 字符常量 24
2.4.4 字符串常量 25
2.4.5 符号常量 25
2.5 变量 26
2.6 运算符 28
2.6.1 算术运算 28
2.6.2 关系运算 31
2.6.3 逻辑运算 32
2.6.4 赋值运算 33
2.6.5 逗号运算 35
2.6.6 条件运算符和条件表达式 35
2.6.7 sizeof运算符 36
2.6.8 类型转换 37
2.7 数据的输入/输出 40
2.7.1 字符数据的输入/输出 40
2.7.2 格式化输出和输入函数 41
2.8 案例:鸡兔同笼 48
本章小结 49
习题 50
第3章 程序设计基本结构 53
3.1 顺序结构 53
3.2 条件判断——选择结构 55
3.2.1 if语句 55
3.2.2 switch语句 60
3.3 一遍又一遍——循环结构 62
3.3.1 while循环语句 62
3.3.2 for循环语句 64
3.3.3 do...while循环语句 66
3.3.4 break和continue语句 68
3.3.5 三种循环语句的比较 70
3.4 嵌套 70
3.5 应用举例 73
3.5.1 一般计算问题 73
3.5.2 穷举法求解问题 76
3.5.3 递推和迭代法求解问题 78
3.5.4 用嵌套的循环求解问题 81
3.6 案例:基因信息处理 83
本章小结 86
习题 87
第4章 数组 99
4.1 数组的基本概念 99
4.2 一维数组 100
4.2.1 一维数组的定义 100
4.2.2 一维数组的引用 101
4.2.3 一维数组的初始化 102
4.2.4 一维数组的应用 102
4.3 二维数组 110
4.3.1 二维数组的定义 110
4.3.2 二维数组的引用 111
4.3.3 二维数组的初始化 111
4.3.4 二维数组的应用 112
4.5 字符数组 114
4.5.1 字符数组的定义 114
4.5.2 字符数组的初始化 114
4.5.3 字符数组的引用 115
4.5.4 字符串的输入/输出 115
4.5.5 字符串处理函数 118
4.5.6 应用举例 120
4.6 案例:抽奖嘉年华 122
本章小结 124
习题 126
第5章 指针 135
5.1 指针的概念 135
5.1.1 内存地址和指针 135
5.1.2 指针变量的声明 136
5.1.3 取地址运算符和间接寻址运算符 136
5.1.4 指针的引用 138
5.2 指针与数组 139
5.2.1 指针的算术运算 140
5.2.2 指针的比较运算 141
5.2.3 指针与一维数组 141
5.2.4 指针与二维数组 143
5.3 字符指针 148
5.3.1 字符指针与字符串 148
5.3.2 字符指针与字符数组 150
5.4 指针数组 151
5.4.1 指针数组的定义 151
5.4.2 指针数组的应用 151
5.5 案例:括号匹配问题 155
本章小结 157
习题 157
第6章 函数 161
6.1 函数的定义与调用 161
6.1.1 函数的定义 162
6.1.2 函数调用 164
6.2 函数间的数据传递 168
6.2.1 通过参数传递 168
6.2.2 通过函数返回值传递 176
6.2.3 函数设计的原则 177
6.3 变量的作用域和生存周期 178
6.3.1 变量的作用域 178
6.3.2 变量的生存周期 181
6.4 函数的嵌套调用和递归调用 186
6.4.1 函数的嵌套调用 186
6.4.2 函数的递归调用 188
6.5 案例:掷骰子游戏 189
本章小结 191
习题 193
第7章 结构体、共用体与枚举类型 199
7.1 结构体 199
7.1.1 结构体的定义 200
7.1.2 结构体变量 201
7.1.3 结构体数组 205
7.1.4 结构体指针 208
7.1.5 结构体与函数 211
7.2 共用体 216
7.2.1 共用体的定义 216
7.2.2 共用体变量的定义 216
7.2.3 共用体变量的引用 218
7.3 枚举类型 220
7.3.1 枚举类型的定义 220
7.3.2 枚举变量的定义和引用 221
7.4 typedef类型定义 223
7.5 案例:维护通讯录数据库 224
本章小结 228
习题 229
第8章 文件 235
8.1 文件概述 235
8.1.1 什么是文件 235
8.1.2 文本文件和二进制文件 235
8.1.3 文件类型指针 236
8.1.4 文件操作 237
8.2 文件的打开与关闭 238
8.2.1 打开文件 238
8.2.2 关闭文件 240
8.3 文件的读写操作 240
8.3.1 按字符读写文件 241
8.3.2 按格式读写文件 245
8.3.3 按数据块读写文件 247
8.4 文件的定位 250
8.5 文件出错检测 251
8.6 案例:打字练习程序 252
本章小结 254
习题 255
第9章 底层程序设计 259
9.1 位运算符 259
9.1.1 按位逻辑运算 260
9.1.2 移位运算 264
9.1.3 位运算赋值运算符 266
9.2 位段 267
9.3 案例:查看内存单元 270
本章小结 271
习题 272
第10章 编译预处理 273
10.1 #include文件包含命令 273
10.2 #define宏定义 274
10.2.1 不带参数的宏定义 275
10.2.2 带参数的宏 276
10.3 条件编译 278
10.4 编写大型程序 280
10.5 案例:数据压缩和解压缩 281
本章小结 284
习题 285
第11章 指针的高级应用 287
11.1 多级指针 287
11.2 main函数带参数 288
11.3 函数指针 289
11.4 动态内存分配 291
11.4.1 动态内存分配函数 291
11.4.2 动态内存空间的使用 293
11.5 链表 295
11.6 案例:简单学生成绩管理系统 300
本章小结 306
习题 307
附录 313
附录A 字符与ASCII码对照表 313
附录B 运算符和结合性 314
附录C C语言中的关键字 315
附录D C常用库函数 315
参考文献 323