第1章 C语言概述 1
1.1 程序设计语言的发展 1
1.2 C语言的发展及其特点 2
1.3 C程序的基本结构与书写规则 4
1.3.1 C程序的基本结构 4
1.3.2 C程序的书写规则 8
1.4 计算机运算基础(进位计数制、数值转换) 8
1.4.1 数的二进制、十进制、八进制和十六进制表示 8
1.4.2 数制转换 8
1.5 C程序的编辑、编译和运行 10
1.5.1 一般C程序的解题步骤 10
1.5.2 在Turbo C++环境中运行C程序的步骤 11
习题一 15
第2章 基本数据类型、运算符和表达式 17
2.1 字符集及词法约定 17
2.1.1 C语言的字符集 17
2.1.2 词法约定 18
2.2 C语言的基本数据类型 19
2.2.1 常量与变量 20
2.2.2 整型数据 21
2.2.3 实型数据 24
2.2.4 字符型数据 25
2.3 C语言的运算符与表达式 28
2.3.1 算术运算符与算术表达式 28
2.3.2 关系及逻辑运算符 33
2.3.3 赋值运算符与赋值表达式 35
2.3.4 条件运算符与条件表达式 39
2.3.5 逗号运算符与逗号表达式 39
2.3.6 sizeof运算符 40
2.3.7 运算符与优先级小结 41
2.4 常见错误 42
习题二 46
第3章 顺序结构程序设计 50
3.1 程序设计概述 50
3.1.1 基本概念 50
3.1.2 算法 51
3.2 C语句 52
3.3 赋值语句 53
3.4 数据输入输出在C语言中的实现 54
3.5 格式化输入输出函数 55
3.5.1 格式化输出函数printf() 55
3.5.2 格式化输入函数scanf() 57
3.6 字符输入输出函数 62
3.6.1 字符输出函数putchar() 62
3.6.2 字符输入函数getchar() 63
3.7 顺序程序设计举例 64
习题三 65
第4章 选择结构程序设计 70
4.1 if语句 70
4.1.1 if语句的三种基本形式 70
4.1.2 if语句的嵌套 75
4.1.3 条件表达式 77
4.2 switch语句 80
4.3 选择分支程序举例 83
习题四 89
第5章 循环结构程序设计 95
5.1 循环语句概述 95
5.2 goto语句 96
5.3 while语句 96
5.4 do-while语句 98
5.5 for语句 100
5.6 三种循环语句的选用 103
5.7 break语句 104
5.8 continue语句 106
5.9 循环的嵌套 108
5.10 程序举例 111
5.11 常见错误 115
习题五 117
第6章 数组 123
6.1 一维数组 123
6.1.1 一维数组的定义 123
6.1.2 一维数组元素的引用 124
6.1.3 一维数组的初始化 124
6.1.4 一维数组程序举例 125
6.2 二维数组 129
6.2.1 二维数组的定义 129
6.2.2 二维数组元素的引用 130
6.2.3 二维数组的初始化 130
6.2.4 二维数组程序举例 131
6.3 字符数组和字符串 135
6.3.1 字符数组的定义 135
6.3.2 字符串 135
6.3.3 字符数组的初始化 136
6.3.4 字符数组的引用 137
6.3.5 字符数组的输入与输出 137
6.3.6 字符串处理函数 139
6.3.7 字符数组程序举例 141
习题六 145
第7章 函数 148
7.1 函数的定义 148
7.2 函数的返回值与函数类型说明 149
7.2.1 函数的返回值 149
7.2.2 函数类型说明 151
7.3 函数的调用 152
7.3.1 函数的形式参数和实际参数 152
7.3.2 函数的调用 154
7.3.3 被调用函数的声明和函数原型 156
7.4 函数的嵌套调用与递归调用 157
7.4.1 函数的嵌套调用 157
7.4.2 函数的递归调用 160
7.5 变量的存储属性 166
7.5.1 局部变量 166
7.5.2 全局变量 167
7.5.3 动态存储变量 169
7.5.4 静态存储变量 169
7.6 多文件中函数和变量的处理 172
习题七 174
第8章 指针 180
8.1 指针变量的定义与引用 180
8.1.1 指针与指针变量 180
8.1.2 指针变量的定义 181
8.1.3 指针变量的赋值 182
8.1.4 指针变量的引用 182
8.2 指针运算符 184
8.2.1 指针运算符与指针表达式 184
8.2.2 指针变量作函数的参数 186
8.3 指针变量与数组 188
8.3.1 指针变量与一维数组 188
8.3.2 指针变量与二维数组 192
8.3.3 数组指针作函数的参数 194
8.4 字符指针 200
8.4.1 字符指针的定义和使用 200
8.4.2 字符指针用作函数参数 203
8.4.3 字符指针变量与字符数组 205
8.5 函数与指针 206
8.5.1 指针型函数 206
8.5.2 函数指针变量 207
8.6 指针数组和指向指针的指针变量 208
8.6.1 指针数组 208
8.6.2 指向指针的指针变量 210
8.6.3 main函数的参数 213
习题八 214
第9章 其他数据类型 221
9.1 结构体 221
9.1.1 结构说明和结构变量定义 221
9.1.2 结构变量的使用 223
9.1.3 结构数组和结构指针 225
9.1.4 类型名定义 231
9.2 动态数据结构 232
9.2.1 动态分配内存 232
9.2.2 链表 233
9.2.3 堆栈 239
9.2.4 队列 243
9.3 共用体 245
9.4 枚举类型 247
习题九 248
第10章 编译预处理与位运算 252
10.1 位运算符与位运算 252
10.1.1 “按位与”运算符 252
10.1.2 “按位或”运算符 252
10.1.3 “按位异或”运算符 253
10.1.4 “按位取反”运算符 253
10.2 位移位运算 254
10.2.1 左移运算 254
10.2.2 右移运算 255
10.2.3 与位运算有关的复合赋值运算符 255
10.3 位域 258
10.3.1 位域的定义和位域变量的说明 258
10.3.2 位域的使用 259
10.4 宏定义 259
10.4.1 无参宏定义 260
10.4.2 带参宏定义 263
10.5 文件包含 265
10.6 条件编译 266
习题十 268
第11章 文件 270
11.1 C文件概述 270
11.2 文件的打开与关闭 270
11.3 文件的输入和输出 272
11.4 文件的定位 278
11.5 文件的错误检测及错误处理函数 279
习题十一 280
附录A 部分习题参考答案 282
附录B 常用字符与ASCII代码对照表 286
附录C Turbo C常用库函数 288
参考文献 294