第一章 计算机基础知识 1
1.1 C语言的发展历史和特点 1
1.1.1 C语言的发展历史 1
1.1.2 C语言的特点 2
1.2 C程序的组成 3
1.2.1 认识C程序 3
1.2.2 C程序的基本组成 6
1.3 C程序的编辑、编译到运行的一般步骤 8
1.3.1 在Turbo C环境下建立和运行C程序 8
1.3.2 在UNIX/Linux下建立和运行C程序 10
习题一 12
第二章 基本数据类型和表达式 14
2.1 C语言的字符集和词法约定 14
2.1.1 C语言的字符集 14
2.1.2 C语言的词法约定 14
2.2 常量 16
2.2.1 整型常量 17
2.2.2 浮点常量 18
2.2.3 字符常量 18
2.2.4 字符串常量 19
2.2.5 符号常量 20
2.3 变量 21
2.3.1 变量的定义 21
2.3.2 变量的初始化 22
2.3.3 左值和右值 22
2.4 基本数据类型 24
2.4.1 整型 24
2.4.2 字符型数据char 27
2.4.3 浮点型 28
2.4.4 不同类型数据的混合运算 28
2.5 数据的输入输出 30
2.5.1 输出函数 30
2.5.2 输入函数 32
2.6 运算符及表达式 34
2.6.1 表达式及C运算符简介 34
2.6.2 算术运算符与算术表达式 35
2.6.3 自增、自减运算 36
2.6.4 关系运算和逻辑运算 38
2.6.5 赋值运算符 40
2.6.6 条件运算符 41
2.6.7 位运算符 42
2.6.8 逗号运算符 46
2.6.9 其他运算符 47
2.7 运算符的优先级和结合性 48
2.8 本章小结 50
2.8.1 主要内容 50
2.8.2 本章常见错误 51
习题二 54
第三章 控制流 59
3.1 语句 59
3.1.1 表达式语句 60
3.1.2 函数调用语句 60
3.1.3 空语句 60
3.1.4 复合语句 61
3.1.5 流程控制语句 61
3.2 顺序结构程序设计 61
3.2.1 顺序结构应用实例 62
3.2.2 语句书写要求 64
3.3 选择结构程序设计 64
3.3.1 if语句 66
3.3.2 if语句的嵌套 69
3.3.3 switch语句 72
3.4 循环结构 74
3.4.1 while语句 75
3.4.2 do...while语句 76
3.4.3 for语句 77
3.4.4 循环语句的嵌套 79
3.5 break和continue语句 82
3.5.1 break语句 82
3.5.2 continue语句 83
3.6 goto语句 84
3.7 应用举例 85
3.8 本章小结 89
3.8.1 本章主要知识点 89
3.8.2 本章易出错的环节 90
习题三 91
第四章 算法 93
4.1 算法的概念和特点 93
4.1.1 编程的步骤 93
4.1.2 合理算法的特点 94
4.2 算法的描述 94
4.2.1 自然语言法 94
4.2.2 流程图描述 95
4.2.3 伪代码法 99
4.3 结构化程序设计的方法 101
4.4 软件测试 107
4.4.1 白盒法 108
4.4.2 黑盒法 110
4.5 本章小结 111
习题四 112
第五章 数组和指针 113
5.1 一维数组的定义和引用 114
5.1.1 一维数组的定义和引用 114
5.1.2 一维数组的初始化 116
5.1.3 一维数组举例 117
5.2 字符数组 121
5.2.1 字符数组的定义 121
5.2.2 字符数组的初始化 122
5.2.3 字符数组的输入与输出 122
5.2.4 字符数组的引用 125
5.2.5 字符串处理函数 125
5.2.6 字符数组举例 127
5.3 二维数组的定义和引用 130
5.3.1 二维数组的定义和引用 130
5.3.2 二维数组的初始化 132
5.3.3 维数组举例 132
5.3.4 多维数组 133
5.4 指针与地址 134
5.5 指针变量的定义与引用 136
5.5.1 指针变量的定义 136
5.5.2 指针变量的引用 138
5.6 指针与地址运算 142
5.6.1 算术运算 142
5.6.2 关系运算 144
5.6.3 赋值运算 147
5.7 数组与指针 148
5.7.1 一维数组元素的两种等价表示法 148
5.7.2 多维数组的指针表示 150
5.7.3 字符串的指针表示 154
5.7.4 指针数组 159
5.7.5 指针的指针 163
5.8 内存动态分配 165
5.8.1 动态存储分配函数 165
5.8.2 动态存储分配函数的使用举例 166
5.9 综合应用 168
5.10 本章小结 171
5.10.1 本章应掌握的知识点 171
5.10.2 本章易出错的环节 173
习题五 174
第六章 结构与联合类型 177
6.1 结构类型的定义和引用 177
6.1.1 结构类型的定义 177
6.1.2 结构类型的引用 180
6.2 结构类型的初始化 183
6.3 结构类型的指针 183
6.3.1 结构指针的定义 183
6.3.2 通过结构的指针引用结构的成员 184
6.4 结构数组 186
6.4.1 结构数组的定义和引用 186
6.4.2 结构数组初始化 188
6.4.3 结构数组举例 188
6.5 结构类型举例 190
6.6 链表 193
6.6.1 链表简介 193
6.6.2 动态链表操作 197
6.7 联合类型 205
6.7.1 联合类型的概念 205
6.7.2 联合类型的定义和引用 205
6.7.3 联合类型的初始化 207
6.7.4 联合类型举例 208
6.8 本章小结 212
习题六 213
第七章 其他数据类型和预处理 214
7.1 枚举类型 214
7.1.1 枚举类型定义 214
7.1.2 枚举类型变量的引用 216
7.1.3 枚举类型举例 217
7.2 位段 219
7.2.1 位段的定义 220
7.2.2 位段的引用 222
7.3 用typedef定义类型别名 223
7.4 宏 224
7.4.1 简单的宏定义 224
7.4.2 带参数的宏定义 226
7.4.3 #、##运算符 227
7.5 文件包含 228
7.6 条件编译 230
7.7 其他预处理命令 233
7.8 本章小结 234
习题七 234
第八章 函数 236
8.1 函数定义 236
8.1.1 库函数和用户自定义函数 236
8.1.2 函数定义的一般形式 237
8.2 函数调用 240
8.2.1 函数调用的一般形式 240
8.2.2 对被调函数的声明和函数原型 241
8.3 函数的返回值和函数参数 243
8.3.1 函数的返回值 243
8.3.2 函数参数的传送方式 246
8.3.3 指针和数组作函数参数 250
8.4 函数指针 256
8.4.1 函数指针 256
8.4.2 用函数指针调用函数 257
8.4.3 用函数指针作函数的参数 258
8.5 命令行参数 260
8.6 函数递归调用 262
8.7 应用举例 267
8.8 变量的作用域及存储类别 272
8.8.1 全局变量和局部变量 272
8.8.2 变量的存储类别 275
8.9 本章小结 285
习题八 286
第九章 文件 288
9.1 文件的基本概念 288
9.1.1 文件概述 288
9.1.2 文件的类别 289
9.1.3 文件的操作流程 290
9.2 常用文件操作的标准函数 291
9.2.1 打开文件 291
9.2.2 关闭文件 293
9.2.3 文本文件的读写 293
9.2.4 二进制文件的读写 297
9.2.5 文件的随机访问与定位 300
9.2.6 文件的其他常用函数 301
9.3 文件使用举例 301
9.4 文件的深入讨论 304
9.5 本章小结 307
习题九 308
第十章 综合程序设计 309
10.1 八皇后问题 309
10.2 集合运算 312
10.3 逆波兰表达式计算 315
10.4 通信录实例 321
10.5 五子棋游戏 328
10.6 本章小结 343
习题十 343
附录1 ASCⅡ码表 345
附录2 常用C库函数 347
附录3 编译、连接和运行时常见出错提示信息 354
参考文献 358