第1章 预备知识 1
1.1 程序设计与算法概述 1
1.1.1 计算机语言与程序设计 1
目录 1
1.1.2 算法 4
1.1.3 结构化程序设计 6
1.2 C语言概述 8
1 .2.1 C语言的发展 8
1.2.2 C语言的特点 8
1.2.3 C程序的基本结构 10
1.3 C程序的符号系统 13
1.2.4 C程序的执行过程 13
1.3.1 基本字符 14
1.3.2 标识符 14
1.4 小结 15
习题 16
第2章 C语言基础 18
2.1 基本数据类型 18
2.1.1 整型数据 19
2.1.2 实型数据 21
2.1.3 字符型数据 22
2.2.1 常量 23
2.2 常量、变量与标准库函数 23
2.1.4 空类型 23
2.2.2 变量 27
2.2.3 标准库函数 29
2.3 运算符和表达式 31
2.3.1 算术运算符和算术表达式 31
2.3.2 赋值运算符和赋值表达式 35
2.3.3 关系运算符和关系表达式 36
2.3.4 逻辑运算符和逻辑表达式 37
2.3.5 位运算符和位运算表达式 39
2.3.6 条件运算符和条件表达式 42
2.3.7 逗号运算符和逗号表达式 43
2.4.1 数据类型的自动转换 44
2.3.8 其他运算符及其运算 44
2.4 各种运算中数据类型的转换 44
2.4.2 数据类型的强制转换 46
2.5 小结 47
习题 48
第3章 顺序结构程序设计 51
3.1 C语言的语句类型 51
3.1.1 说明性语句 51
3.1.2 表达式语句 51
3.1.3 控制语句 52
3.2 数据输出 53
3.2.1 字符输出函数 53
3.1.4 复合语句 53
3.2.2 格式输出函数 54
3.3 数据输入 60
3.3.1 字符输入函数 60
3.3.2 格式输入函数 61
3.4 顺序结构程序设计 66
3.4.1 顺序结构程序的一般算法描述 66
3.4.2 顺序结构程序设计举例 66
3.5 小结 68
习题 69
4.1 if语句 73
4.1.1 if语句的一般形式 73
第4章 选择结构程序设计 73
4.1.2 if语句的嵌套 77
4.2 switch语句 80
4.2.1 switch语句的一般形式 80
4.2.2 break语句 81
4.3 选择结构程序设计举例 82
4.4 小结 87
习题 88
第5章 循环结构程序设计 93
5.1 while循环控制 93
5.1.1 while语句 93
5.1.2 while语句的简单应用 95
5.2.1 do-while语句 97
5.2 do-while循环控制 97
5.2.2 do-while语句的简单应用 98
5.3 for循环控制 99
5.3.1 for语句 99
5.3.2 for语句的简单应用 101
5.4 用goto语句实现循环控制 102
5.4.1 goto语句 102
5.4.2 goto语句的简单应用 103
5.5 循环结构中的跳转语句 104
5.5.1 continue语句及应用 104
5.6 循环的嵌套 106
5.6.1 循环嵌套的基本形式 106
5.5.2 循环结构中break语句的应用 106
5.6.2 多重循环程序举例 107
5.7 循环结构程序设计举例 109
5.8 小结 113
习题 114
第6章 数组 121
6.1 一维数组 121
6.1.1 一维数组的定义 121
6.1.2 一维数组元素的引用 122
6.1.3 一维数组的初始化 123
6.1.4 一维数组应用举例 123
6.2.2 二维数组元素的引用 129
6.2 二维数组 129
6.2.1 二维数组的定义 129
6.2.3 二维数组的初始化 130
6.2.4 二维数组应用举例 131
6.3 字符数组与字符串 132
6.3.1 基本概念 132
6.3.2 字符数组的定义 133
6.3.3 字符数组的初始化 133
6.3.4 字符数组的引用 134
6.3.5 字符串处理函数 135
6.3.6 字符数组应用举例 139
6.4 小结 141
习题 142
第7章 函数与预处理命令 147
7.1 概述 147
7.2 函数的定义与调用 149
7.2.1 函数的定义 149
7.2.2 函数的调用 151
7.2.3 函数参数与函数的返回值 152
7.2.4 对被调函数的声明和函数原型 155
7.3 数组作函数参数 157
7.3.1 一维数组元素作函数参数 157
7.3.2 一维数组名作函数参数 158
7.3.3 多维数组作函数参数 160
7.4.2 函数的递归调用 162
7.4 函数的嵌套调用和递归调用 162
7.4.1 函数的嵌套调用 162
7.5 局部变量和全局变量及其作用域 167
7.5.1 变量的作用域 167
7.5.2 局部变量及其作用域 167
7.5.3 全局变量及其作用域 168
7.6 变量的存储类别及变量的生存期 169
7.6.1 变量的生存期与变量的存储分类 169
7.6.2 变量的存储类别 169
7.6.3 归纳变量的分类 175
7.7.2 静态函数 176
7.7.1 外部函数 176
7.7 函数的存储分类 176
7.8 编译预处理 177
7.8.1 不带参数的宏定义 178
7.8.2 带参数的宏定义 179
7.8.3 文件包含 180
7.9 多文件程序的调试方法 181
7.10 小结 183
习题 184
第8章 指针 190
8.1 指针和指针变量 190
8.1.1 指针和指针变量的概念 190
8.1.2 指针变量的定义 191
8.1.3 指针的基本运算 192
8.2 指针与数组 196
8.2.1 指向数组的指针变量 196
8.2.2 指向字符串的指针变量 202
8.2.3 指针数组 205
8.2.4 多级指针 208
8.3 指针与函数 210
8.3.1 指针变量作函数参数 210
8.3.2 带参数的主函数 217
8.3.3 指针型函数 219
8.3.4 指向函数的指针变量 220
8.4 小结 225
习题 226
第9章 结构体与共用体 231
9.1 结构体 231
9.1.1 结构体与结构体类型的定义 231
9.1.2 结构体变量的定义与初始化 233
9.1.3 结构体的指针 237
9.1.4 函数间结构体数据的传递 239
9.1.5 结构体的应用——链表 241
9.2 共用体 252
9.2.1 共用体与共用体类型定义 252
9.2.2 共用体变量的定义与初始化 253
9.3.1 枚举类型 257
9.3 枚举类型与类型命名 257
9.3.2 类型的重新命名 260
9.4 小结 262
习题 263
第10章 文件 271
10.1 文件的概念 271
10.1.1 文件和文件指针 271
10.1.2 文件的打开与关闭 273
10.2 文本文件的读写 274
10.2.1 文件的字符输入输出函数 275
10.2.2 文件结束测试函数feof() 276
10.2.3 文件的字符串输入输出函数 277
10.2.4 文件的格式输入输出函数 279
10.3 二进制文件的读写 280
10.3.1 文件的字输入输出函数 280
10.3.2 文件的数据块输入输出函数 282
10.3.3 文件读写指针定位函数 284
10.4 小结 286
习题 287
附录A C语言常用库函数 293
附录B C语言中运算符的优先级和结合性 297
附录C 基本ASCII表 298
参考文献 299