第1章 C语言概述 1
1.1 C程序设计语言发展 1
1.2 C语言特点 2
1.3 简单的C程序开发 4
1.4 C语言的运行环境 7
1.5 完整的C程序运行过程 14
1.6 算法 18
本章小结 21
习题1 21
第2章 数据类型、运算符和表达式 24
2.1 C语言的数据类型及作用 24
2.1.1 整型数据 25
2.1.2 字符类型 27
2.1.3 浮点类型 28
2.2 常量、变量和标识符 29
2.2.1 常量 29
2.2.2 变量 30
2.2.3 标识符 32
2.3 运算符与表达式 32
2.3.1 算术运算符 33
2.3.2 关系和逻辑运算符 35
2.3.3 赋值运算符 36
2.3.4 逗号运算符 38
2.3.5 条件运算符 39
2.3.6 sizeof运算符 40
2.3.7 地址运算符 42
2.3.8 运算符的优先级及结合性 42
2.4 表达式 43
2.5 数据类型的转换 47
2.6 综合举例 49
本章小结 50
习题2 51
第3章 顺序结构程序设计 53
3.1 程序基本结构 53
3.2 输入输出语句 54
3.2.1 scanf()函数 55
3.2.2 printf()函数 57
3.2.3 getchar()函数与putchar()函数 60
3.3 综合举例 61
本章小结 65
习题3 65
第4章 选择结构程序设计 70
4.1 if语句 70
4.1.1 if选择结构 70
4.1.2 if…else选择结构 71
4.1.3 if…else…if选择结构 71
4.1.4 if语句的嵌套 73
4.2 switch语句 76
4.3 选择结构程序举例 79
本章小结 84
习题4 84
第5章 循环结构程序设计 89
5.1 while循环语句 89
5.2 do…while循环语句 90
5.3 for循环语句 92
5.4 三种循环语句的比较 94
5.5 循环结构程序举例 94
5.5.1 单重循环应用举例 94
5.5.2 嵌套循环及其应用举例 96
5.5.3 break语句和continue语句 98
5.6 程序排错 102
5.6.1 程序中常见的出错原因 102
5.6.2 程序调试与排错基本方法 103
本章小结 104
习题5 104
第6章 数组 109
6.1 一维数组 109
6.1.1 一维数组的定义 109
6.1.2 一维数组的引用 110
6.1.3 一维数组的初始化 110
6.1.4 一维数组应用举例 111
6.2 二维数组与多维数组 113
6.2.1 二维数组的定义 114
6.2.2 二维数组元素的引用 114
6.2.3 二维数组的初始化 115
6.3 字符数组与字符串 118
6.3.1 字符数组的定义 118
6.3.2 字符数组的初始化 118
6.3.3 字符数组的引用 119
6.3.4 字符串和字符串结束标志 119
6.3.5 字符数组的输入输出 120
6.3.6 字符串处理函数 120
6.4 数组程序设计举例 124
本章小结 127
习题6 127
第7章 函数 130
7.1 函数概述 130
7.2 库函数简介 131
7.3 函数定义 133
7.3.1 无参函数的定义 133
7.3.2 有参函数的定义 133
7.4 函数调用 134
7.4.1 形式参数和实际参数 134
7.4.2 函数的返回值 135
7.4.3 函数的调用 136
7.5 函数的嵌套和递归 139
7.5.1 函数的嵌套 139
7.5.2 函数的递归调用 140
7.6 变量的作用域及存储类型 144
7.6.1 静态、动态 144
7.6.2 变量的作用域 145
7.7 外部、内部函数 147
7.8 应用举例 148
本章小结 151
习题7 152
第8章 预处理 157
8.1 宏定义 157
8.1.1 不带参数的宏定义 157
8.1.2 带参的宏 159
8.2 文件包含 161
8.3 条件编译 163
本章小结 165
习题8 165
第9章 指针 168
9.1 指针概述 168
9.1.1 指针的概念 168
9.1.2 指针变量的定义和使用 169
9.2 指针运算符与指针表达式 171
9.2.1 指针运算符与指针表达式概述 171
9.2.2 指针变量作函数的参数 173
9.3 指针与数组 174
9.3.1 指针与一维数组 174
9.3.2 指针与二维数组 178
9.3.3 数组指针作函数的参数 181
9.3.4 指针与字符数组 186
9.3.5 指针数组 188
9.4 指针与函数 190
9.4.1 指向函数的指针变量的定义及使用 190
9.4.2 用指针类型数据作函数参数 191
9.4.3 带参的主函数 194
9.4.4 返回指针的函数 194
9.5 指向指针的指针 196
9.6 指针应用举例 197
本章小结 201
习题9 202
第10章 结构体、联合体与枚举类型 205
10.1 结构体类型变量的定义和引用 205
10.1.1 结构体类型变量的定义 206
10.1.2 结构体类型变量的引用 206
10.1.3 结构体类型变量的初始化 207
10.2 结构体数组的定义和引用 208
10.3 结构体指针的定义和引用 214
10.3.1 指向结构体类型变量的使用 214
10.3.2 指向结构体类型数组的指针的使用 216
10.4 链表 218
10.4.1 链表的概述 218
10.4.2 链表操作 219
10.5 联合 224
10.5.1 联合体的定义 224
10.5.2 联合体变量的引用 225
10.6 枚举类型 228
10.6.1 枚举类型的定义和枚举变量的说明 228
10.6.2 枚举类型变量的赋值和使用 228
10.7 综合应用举例 230
本章小结 234
习题10 234
第11章 位运算 239
11.1 位运算概述 239
11.2 位运算符和位运算 239
11.3 位运算综合举例 243
本章小结 246
习题11 246
第12章 文件 249
12.1 C文件概述 249
12.2 文件的打开与关闭 250
12.2.1 文件类型指针 250
12.2.2 文件的打开函数 250
12.2.3 文件的关闭函数 252
12.3 文件的读写 252
12.3.1 文件读写函数 252
12.3.2 文件读写举例 255
12.4 文件定位 257
12.4.1 文件定位函数——fseek()函数 257
12.4.2 出错检测函数——ferror()函数 259
12.5 文件综合举例 259
本章小结 263
习题12 263
第13章 综合实例程序设计 266
13.1 程序设计的基本过程 266
13.2 综合程序设计实例 267
13.2.1 题目的内容要求 267
13.2.2 程序的功能设计 268
13.2.3 程序的数据设计 269
13.2.4 程序的函数设计 270
13.2.5 函数编程及调试 271
13.2.6 整体调试 290
13.2.7 程序维护 290
本章小结 290
习题13 290
附录A 常用ASCII码字符对照表 291
附录B 编译错误信息 293
附录C 常用库函数 306
参考文献 314