第1章 C语言概述 1
1.1 C语言产生的背景 1
1.2 C语言的特点 2
1.3 C语言的程序结构 2
1.4 C程序上机步骤 5
实训1 认识C语言程序 9
习题1 10
第2章 数据类型、运算符与表达式 11
2.1 C语言的数据类型 11
2.2 常量与变量 12
2.2.1 直接常量和符号常量 12
2.2.2 变量 14
2.3 整型数据 14
2.3.1 整型常量的表示方法 14
2.3.2 整型变量 15
实训2 使用整型数据 18
2.4 实型数据 19
2.4.1 实型常量的表示方法 19
2.4.2 实型变量 20
实训3 使用实型数据 22
2.5 字符型数据 23
2.5.1 字符常量 23
2.5.2 字符变量 24
2.5.3 字符串常量 25
实训4 使用字符型数据 25
2.6 算术运算符和算术表达式 26
2.7 赋值运算符和赋值表达式 28
2.8 逗号运算符和逗号表达式 31
实训5 使用运算符和表达式 32
2.9 变量的地址和指向变量的指针 34
2.9.1 变量的地址 34
2.9.2 变量的指针和指向变量的指针变量 34
2.9.3 指针运算符和取地址运算符 35
实训6 指针的初步应用 36
本章小结 37
习题2 37
第3章 基本程序结构 41
3.1 程序的3种基本结构 41
3.1.1 结构化程序设计 41
3.1.2 C语言的语句 43
3.2 赋值语句 44
3.3 数据的输入/输出 45
3.3.1 字符数据的输入/输出函数——getchar()函数/putchar()函数 45
3.3.2 格式输出函数——printf函数 47
3.3.3 格式输入函数——scanf函数 50
实训7 使用输入/输出函数 53
3.4 顺序结构程序设计 56
3.5 选择结构程序设计 57
3.5.1 关系运算符和关系表达式 57
3.5.2 逻辑运算符与逻辑表达式 58
3.5.3 if语句和switch语句 60
实训8 if语句和switch语句的使用 66
3.6 循环结构程序设计 71
3.6.1 goto语句及goto语句构成的循环 72
3.6.2 while语句、do...while语句和for语句 73
实训9 while语句、do...while语句和for语句的使用 79
课程设计1 模拟ATM取款机界面 86
本章小结 89
习题3 89
第4章 数组 95
4.1 一维数组 95
4.1.1 一维数组的定义、引用和初始化 96
4.1.2 数组与指针 99
实训10 一维数组的应用 101
4.2 二维数组 105
4.2.1 二维数组的定义 105
4.2.2 二维数组元素的引用 106
4.2.3 二维数组的初始化 107
4.2.4 二维数组与指针 108
实训11 二维数组的应用 110
4.3 字符数组 113
4.3.1 字符数组的定义、引用和初始化 113
4.3.2 字符串的使用 114
4.3.3 字符串处理函数 116
实训12 英文打字练习程序 119
4.4 指针数组和指向指针的指针 122
4.4.1 指针数组的概念 123
4.4.2 指向指针的指针 123
4.4.3 指针数组作为main函数的形参 124
实训13 指针的应用 125
课程设计2 用高斯消去法解线性方程组 126
本章小结 129
习题4 129
第5章 函数 132
5.1 函数定义与调用 132
5.1.1 函数定义 132
5.1.2 函数调用 135
5.1.3 函数返回值 139
实训14 建立和使用函数 140
5.2 形参与实参 142
5.2.1 函数的值调用和引用调用 143
实训15 值参数和地址参数的传递 144
5.2.2 函数的参数 146
实训16 函数参数传递的形式 148
5.3 返回指针值的函数和指向函数的指针 150
5.3.1 返回指针值的函数 150
5.3.2 指向函数的指针 153
5.4 函数嵌套调用与递归调用 155
5.4.1 函数嵌套调用 155
5.4.2 函数递归调用 157
实训17 嵌套与递归调用的实现 158
5.5 局部变量和全局变量 161
5.5.1 局部变量 161
5.5.2 全局变量 162
5.5.3 变量存储类别 163
实训18 局部变量和全局变量的使用 167
5.6 内部函数与外部函数 168
实训19 多文件程序编译运行 170
课程设计3 马跳日字问题的实现 172
本章小结 176
习题5 177
第6章 编译预处理 180
6.1 宏定义 181
6.1.1 字符串的宏定义 181
6.1.2 带参数的宏定义 183
6.2 文件包含处理 184
6.3 条件编译 186
实训20 定义宏和使用宏 188
本章小结 190
习题6 191
第7章 结构体和共用体 192
7.1 结构体 192
7.1.1 结构体定义、引用和初始化 193
7.1.2 结构体数组和结构体指针 198
实训21 结构体的应用 202
7.2 共用体 209
实训22 定义使用共用体 211
7.3 枚举类型 214
实训23 定义使用枚举类型 215
7.4 类型定义 216
课程设计4 单链表插入、删除、查找等操作的实现 217
本章小结 224
习题7 224
第8章 位运算 227
8.1 位运算概念 227
8.2 位运算符 227
8.3 位段 231
实训24 左右循环移位的实现及位操作 233
课程设计5 使用位运算符解析IP地址 236
本章小结 237
习题8 237
第9章 文件 239
9.1 文件类型指针 241
9.2 文件的打开与关闭 242
9.3 文件的读/写操作 244
实训25 文件加密程序的实现及文件的读/写操作 247
9.4 文件定位与出错检测 252
9.4.1 文件定位函数——fseek()函数 252
9.4.2 出错检测函数——ferror()函数 253
实训26 加解密数据库程序及文件定位操作 253
9.5 其他文件函数 255
课程设计6 给程序加上行号 256
本章小结 258
习题9 258
第10章 项目实践 文件压缩与解压缩 260
10.1 预备知识——数据压缩的原理 260
10.2 结构设计 263
10.3 功能函数的实现 264
本章小结 272
附录A 常用字符与标准ASCII码对照表 273
附录B 运算符和结合性 275
附录C Turbo C标准函数库 276
参考文献 279