第一章 引论 1
1.1 程序设计语言概述 1
1.2 C语言的发展和ANSI标准 2
1.3 C语言的特点 4
1.4 C程序结构 6
1.5 C程序的开发过程 8
第二章 数据与算术表达式 11
2.1 C语言的基本符号 11
2.2 常量 13
2.2.1 整型常量 13
2.2.2 实型常量 14
2.2.3 字符常量 15
2.2.4 字符串常量 16
2.2.5 符号常量 16
2.3 变量 17
2.3.1 整型变量 17
2.3.2 实型变量 19
2.3.3 字符型变量 19
2.3.4 变量的初始化 20
2.4 算术运算和赋值运算 21
2.4.1 C运算符及其特点 21
2.4.2 基本的算术运算符、自增自减运算符和赋值运算 21
2.5 表达式及其运算顺序 24
2.6 数据类型转换 26
2.7 逗号运算符和逗号表达式 29
2.8 数据输出 30
2.8.1 字符输出函数putchar 30
2.8.2 格式输出函数printf 31
2.9 数据输入 37
2.9.1 字符输入函数getchar 37
2.9.2 格式输入函数scanf 38
2.10 程序举例 41
习题 44
第三章 选择程序设计 47
3.1 程序流程图 47
3.2 结构化程序设计初步 51
3.3 关系运算 55
3.4 逻辑运算 56
3.5 表达式语句和复合语句 58
3.6 条件if语句 59
3.6.1 if语句的一般形式 59
3.6.2 if语句的嵌套 62
3.6.3 条件运算符 64
3.7 开关switch语句 65
3.8 程序举例 67
习题 70
第四章 循环程序设计 72
4.1 while循环 72
4.2 do-while循环 73
4.3 for循环 75
4.4 循环的嵌套 79
4.5 break语句和continue语句 81
4.5.1 break语句 81
4.5.2 continue语句 82
4.6 go to语句 83
4.7 程序举例 84
习题 88
第五章 数组 90
5.1 数组和数组元素 90
5.2 一维数组 92
5.3 多维数组 97
5.4 字符数组 102
5.5 字符数组的输入和输出 106
5.6 程序举例 109
习题 115
第六章 指针 118
6.1 指针的概念 118
6.2 指针变量 120
6.2.1 指针和指针变量 120
6.2.2 指针变量的定义 122
6.2.3 指针变量的引用 123
6.3 数组的指针 125
6.4 字符串指针 128
6.5 指针运算 132
6.6 指针数组 135
6.7 多级指针 139
6.8 带参数的main函数和命令行参数 141
6.9 程序举例 144
习题 148
第七章 函数 150
7.1 函数的定义性说明与引用性说明 151
7.2 函数的调用 155
7.2.1 函数的表达式调用 155
7.2.2 函数的语句调用 156
7.2.3 函数的参数调用 157
7.3 函数间参数的传递 158
7.3.1 值传递 158
7.3.2 地址传递 160
7.3.3 用外部变量传递数据 163
7.4 递归调用 163
7.5 数组在函数间的传递 165
7.5.1 一维数组在函数间的传递 165
7.5.2 二维数组在函数间的传递 168
7.5.3 数组元素在函数间的传递 171
7.5.4 字符串在函数间的传递 171
7.6 返回指针的函数 172
7.7 指向函数的指针变量 173
7.8 内部变量和外部变量 176
7.8.1 内部变量 177
7.8.2 外部变量 179
7.9 动态存储变量和静态存储变量 182
7.9.1 自动变量 183
7.9.2 寄存器变量 184
7.9.3 静态变量 185
7.10 局部函数和全局函数 187
习题 188
第八章 结构体和共用体 194
8.1 结构体和结构体变量的定义 194
8.1.1 结构体的定义 194
8.1.2 结构体变量的定义 195
8.2 结构体变量的初始化与结构体变量成员的引用 197
8.2.1 结构体变量的初始化 197
8.2.2 结构体变量成员的引用 197
8.3 结构数组 201
8.4 结构体指针变量 204
8.4.1 结构体指针变量的定义 204
8.4.2 用指针变量访问所指结构体的成员 204
8.5 结构体变量在函数间的传递及返回结构体类型值的函数 207
8.5.1 结构体变量在函数间的传递 207
8.5.2 返回结构体类型值的函数 210
8.6 联合体 212
8.7 用户定义的类型名 216
8.8 枚举类型 218
8.9 用const关键字修饰的变量 223
习题 223
第九章 文件的输入和输出 228
9.1 文件和流 228
9.2 文件的打开和关闭 230
9.2.1 文件的打开 230
9.2.2 文件的关闭 232
9.3 文件数据的顺序读/写 233
9.3.1 每次读/写一个字符的函数 233
9.3.2 每次读/写一行的函数 235
9.3.3 每次读/写一个数据块的函数 236
9.3.4 格式化输入/输出函数 238
9.3.5 输入/输出方法的选择 240
9.4 文件的随机读/写 240
9.5 非缓冲文件系统 243
9.5.1 文件的打开和关闭 243
9.5.2 数据的读/写 244
习题 247
第十章 编译预处理语句 250
10.1 宏定义语句 250
10.1.1 定义符号常量的宏定义语句 250
10.1.2 带参数的宏定义语句 252
10.1.3 宏定义的取消 254
10.2 文件包含语句 254
10.3 条件编译语句 256
习题 259
第十一章 位运算和位字段结构体 262
11.1 数的机器码表示及位的概念 262
11.2 位操作 263
11.2.1 位逻辑运算 263
11.2.2 移位操作 265
11.3 位字段结构体 267
习题 270
第十二章 从C到C++ 271
12.1 概述 271
12.1.1 C++语言的发展史 271
12.1.2 C++语言的特点及其和C语言的关系 271
12.2 简单的输入和输出 272
12.2.1 输出 273
12.2.2 输入 273
12.3 C++对C的非面向对象扩充 274
12.3.1 注释 275
12.3.2 枚举名、结构名和类名 275
12.3.3 变量的说明 275
12.3.4 const和inline说明符 276
12.3.5 无名共用体 276
12.3.6 显式类型转换 276
12.3.7 作用域限定运算符 276
12.3.8 new和delete运算符 277
12.3.9 C++中的函数 278
12.3.10 引用 281
12.3.11 运算符重载 282
12.4 C++与面向对象程序设计 283
第十三章 上机步骤及常见的编程错误 285
13.1 C语言程序上机步骤 285
13.2 常见编程错误 289
附录A 各种运算符的优先级和结合性规则 294
附录B ASCII码字符表 296
附录C C语言中的保留字 297
附录D Turbo C常用库函数 298
参考文献 305