第1章 C语言概述 1
1.1 C语言的出现及特点 1
1.2 C语言及其标准 3
1.3 C编程的开发环境 3
1.3.1 C编程常用的开发环境 3
1.3.2 初识Visual C++6.0 3
1.4 创建第1个C程序 4
1.4.1 C程序的编写 4
1.4.2 C程序的运行 8
1.4.3 处理错误 9
1.5 C程序的组成 9
1.6 习题 12
第2章 基本数据类型及运算 14
2.1 C语言的基本数据类型 14
2.1.1 整型 15
2.1.2 浮点型 15
2.1.3 字符型 16
2.2 常量 16
2.2.1 常量的概念 16
2.2.2 整型常量 16
2.2.3 浮点型常量 16
2.2.4 字符常量 17
2.2.5 转义字符 18
2.2.6 字符串常量 18
2.2.7 符号常量 19
2.2.8 各种类型数据之间的转换(显式、隐式转换等) 19
2.3 变量 20
2.3.1 变量的概念 20
2.3.2 整型变量 21
2.3.3 浮点型变量 21
2.3.4 字符变量 22
2.3.5 变量的定义 23
2.3.6 变量的赋值和初始化 23
2.4 C语言中的运算符和表达式 23
2.4.1 算术运算符与算术表达式 24
2.4.2 关系运算符与关系表达式 25
2.4.3 赋值运算符与赋值表达式 25
2.4.4 逻辑运算符与逻辑表达式 26
2.4.5 条件运算符与条件表达式 27
2.4.6 逗号运算符与逗号表达式 27
2.4.7 强制类型转换运算符 28
2.4.8 位运算符 28
2.5 数据的输入与输出 30
2.5.1 用printf函数输出数据 30
2.5.2 用scanf函数输入数据 34
2.5.3 输入与输出字符数据 36
2.6 习题 38
第3章 程序的控制结构 41
3.1 结构化程序设计的概念 41
3.2 结构化程序设计的算法 42
3.2.1 算法的概念 42
3.2.2 算法描述 43
3.3 C语言程序语句 46
3.3.1 C语句概述 46
3.3.2 C语句分类 47
3.4 顺序结构程序设计 48
3.4.1 顺序结构概述 48
3.4.2 顺序结构程序设计应用 48
3.5 选择结构程序设计 51
3.5.1 选择结构概述 51
3.5.2 单分支选择if语句 52
3.5.3 双分支选择if语句 55
3.5.4 多分支嵌套结构 58
3.5.5 多分支选择语句switch 66
3.5.6 条件表达式与分支结构 70
3.6 循环结构 72
3.6.1 循环结构概述 72
3.6.2 while循环语句 73
3.6.3 do-while循环语句 76
3.6.4 for循环语句 78
3.6.5 循环的嵌套 82
3.6.6 baeak语句和continue语句 85
3.7 习题 89
第4章 数组 100
4.1 一维数组 100
4.1.1 一维数组的定义及初始化 100
4.1.2 一维数组元素的引用 102
4.1.3 一维数组的应用 103
4.2 二维数组 108
4.2.1 二维数组的定义及初始化 108
4.2.2 二维数组元素的引用 109
4.2.3 二维数组的应用 110
4.3 字符数组 114
4.3.1 字符串和字符数组 114
4.3.2 字符数组的初始化及引用 114
4.3.3 输入和输出字符数组 116
4.3.4 常用的字符串函数 117
4.3.5 字符数组的应用 122
4.4 习题 123
第5章 函数 130
5.1 模块化程序设计方法 130
5.2 函数的分类 131
5.2.1 按不同的角度对函数分类 131
5.2.2 标准函数(库函数)和用户自定义函数 131
5.2.3 无参函数和有参函数 132
5.3 函数参数和函数返回值 133
5.3.1 形式参数和实际参数 133
5.3.2 函数的返回值 135
5.4 声明及调用函数 136
5.4.1 函数的声明 136
5.4.2 调用函数的形式 137
5.4.3 调用函数的方式 138
5.4.4 函数的嵌套调用 139
5.4.5 函数的递归调用 142
5.5 用数组作为函数参数 145
5.5.1 数组元素作为函数的参数 145
5.5.2 数组名作为函数的参数 148
5.5.3 数组作为函数参数的应用 152
5.6 变量的作用域及存储类别 155
5.6.1 变量的作用域 155
5.6.2 变量的存储类别 159
5.7 编译预处理命令 166
5.7.1 宏定义 166
5.7.2 文件包含 170
5.8 习题 171
第6章 指针 182
6.1 指针 182
6.1.1 指针的概念 182
6.1.2 指针和地址 184
6.2 指针变量和指针运算 185
6.2.1 指针变量的定义 185
6.2.2 地址运算符和指针运算符 186
6.2.3 指针变量的引用 186
6.2.4 指针的运算 187
6.3 数组和指针 190
6.3.1 指向数组元素的指针 190
6.3.2 指向一维数组的指针 194
6.3.3 二维数组和指针 195
6.3.4 指针数组 198
6.3.5 数组和指针的应用举例 199
6.4 字符串和指针 203
6.4.1 字符数组和字符串的访问 203
6.4.2 用字符指针作为函数的参数 207
6.4.3 字符指针的应用举例 208
6.5 函数和指针 210
6.5.1 函数指针变量的定义 210
6.5.2 函数指针作为函数的参数 211
6.5.3 指针函数 213
6.5.4 void类型指针 214
6.6 习题 215
第7章 用户定制数据类型 219
7.1 结构体 219
7.1.1 结构体概述 219
7.1.2 结构体类型的定义 220
7.1.3 结构体变量的定义 221
7.1.4 结构体变量的初始化和引用 223
7.2 结构体数组和结构体指针 228
7.2.1 结构体数组的定义及初始化 228
7.2.2 结构体指针变量的定义和初始化 230
7.2.3 用结构体变量和结构体指针作函数参数 232
7.3 链表 235
7.3.1 单链表的定义 235
7.3.2 动态存储分配函数 236
7.3.3 单链表的基本操作 237
7.4 共用体 246
7.4.1 共用体类型和共用体变量的定义 246
7.4.2 共用体和结构体的比较 247
7.4.3 共用体应用举例 248
7.5 枚举类型 251
7.5.1 枚举类型和枚举变量的定义 251
7.5.2 枚举类型应用举例 252
7.6 用typedef定义类型 254
7.7 习题 255
第8章 文件 262
8.1 文件概述 262
8.1.1 C语言中文件的概念 262
8.1.2 文件的分类 263
8.1.3 文件类型指针和位置指针 263
8.1.4 标准文件和一般文件 264
8.2 打开和关闭文件 265
8.2.1 打开文件的函数 265
8.2.2 关闭文件的函数 266
8.3 读写一般文件 267
8.3.1 fgetc与fputc函数 267
8.3.2 fgets与fputs函数 269
8.3.3 fscanf和fprintf格式化读写函数 272
8.3.4 fread和fwrite数据块读写函数 274
8.4 一般文件的定位 276
8.4.1 rewind函数 277
8.4.2 fseek函数 278
8.4.3 ftell函数 278
8.5 习题 279
附录 284
附录1 C语言常见的源程序错误和警告信息 284
附录2 C语言关键字解析 290
附录3 C语言运算符的优先级与结合性 293
附录4 C语言常用库函数 294
参考文献 303