基础篇 3
第1章 C语言概述 3
1.1 程序设计语言的发展及其特点 3
1.2 C语言的发展过程及其特点 4
1.2.1 C语言的发展过程 4
1.2.2 当代最优秀的程序设计语言 4
1.2.3 C语言的版本 5
1.2.4 C语言的特点 5
1.2.5 C语言的应用 5
1.3 认识简单的C语言程序 6
1.4 Visual C++6.0集成开发环境的使用 10
1.4.1 Visual C++6.0简介和启动 10
1.4.2 利用Visual C++6.0集成开发环境建立工程 10
1.5 C程序开发过程 15
本章小结 17
习题1 17
第2章 数据类型、运算符与表达式 19
2.1 计算机的工作原理 19
2.2 C语言的数据类型 20
2.3 常量、变量和标识符 21
2.3.1 标识符 21
2.3.2 常量和符号常量 22
2.3.3 变量 23
2.4 整型数据 23
2.4.1 整型常量的表示方法 23
2.4.2 整型变量 24
2.4.3 整型常量的分类 28
2.5 实型数据 28
2.5.1 实型常量的表示方法 28
2.5.2 实型变量 29
2.5.3 实型常数的类型 31
2.6 字符型数据 31
2.6.1 字符常量 31
2.6.2 字符变量 32
2.6.3 字符数据在内存中的存储形式及使用方法 33
2.6.4 字符串常量 35
2.7 C语言的运算符与表达式 35
2.7.1 赋值运算符、赋值表达式 36
2.7.2 不同数据类型间的赋值规则 37
2.7.3 算术运算符和算术表达式 39
2.7.4 逗号运算符和逗号表达式 42
2.7.5 sizeof运算符和复合赋值运算符 42
本章小结 44
习题2 45
第3章 顺序程序设计 46
3.1 程序的控制结构 46
3.1.1 算法的基本概念 46
3.1.2 算法的特性 47
3.1.3 算法的表示 47
3.1.4 用N-S流程图表示算法 49
3.1.5 用计算机语言表示算法 49
3.1.6 结构化程序设计方法 50
3.2 C语句概述 50
3.3 数据输入输出的概念及在C语言中的实现 52
3.4 字符数据的输入与输出 52
3.4.1 字符输出函数putchar 52
3.4.2 键盘输入函数getchar 53
3.5 格式化输出函数printf 53
3.5.1 printf函数调用的一般形式 53
3.5.2 使用printf函数的注意事项 56
3.6 格式化输入函数scanf 56
3.6.1 scanf函数调用的一般形式 56
3.6.2 使用scanf函数的注意事项 58
3.7 顺序结构程序设计举例 61
本章小结 62
习题3 62
第4章 选择结构程序设计 64
4.1 关系运算符和表达式 64
4.1.1 关系运算符及其优先级 64
4.1.2 关系表达式 65
4.2 逻辑运算符和逻辑表达式 66
4.2.1 逻辑运算符 66
4.2.2 逻辑表达式 66
4.3 if语句 68
4.3.1 if语句的三种形式 68
4.3.2 if语句的嵌套 72
4.3.3 条件运算符和条件表达式 73
4.4 switch语句 74
4.5 程序举例 78
本章小结 79
习题4 80
第5章 循环控制 83
5.1 概述 83
5.2 goto语句以及用goto语句构成循环 83
5.3 while语句 84
5.4 do-while语句 86
5.5 for语句 87
5.6 循环的嵌套 90
5.7 几种循环的比较 92
5.8 break和continue语句 92
5.8.1 break语句 92
5.8.2 continue语句 93
5.9 程序举例 94
5.10 循环控制进阶应用 96
本章小结 102
习题5 102
第6章 函数 106
6.1 函数概述 106
6.2 函数的定义与调用 107
6.2.1 无参函数的定义形式 107
6.2.2 有参函数定义的一般形式 109
6.3 函数的返回值 112
6.4 函数参数的传递方式 112
6.5 函数的调用 114
6.5.1 函数调用的方式 114
6.5.2 函数的嵌套调用 115
6.5.3 函数的递归调用 116
6.6 变量的作用域和生命周期 118
6.6.1 局部变量的作用域和生命周期 118
6.6.2 全局变量的作用域和生命周期 120
6.7 变量的存储类别 122
6.7.1 动态存储方式与静态存储方式 122
6.7.2 auto变量 123
6.7.3 用static声明局部变量 124
6.7.4 register变量 125
6.8 函数的进阶应用 125
本章小结 130
习题6 131
第7章 预处理命令 134
7.1 概述 134
7.2 宏定义 134
7.2.1 无参宏定义 135
7.2.2 带参宏定义 137
7.3 文件包含 142
7.4 条件编译 143
本章小结 145
习题7 146
第8章 数组 147
8.1 一维数组 147
8.1.1 一维数组的定义方式 147
8.1.2 一维数组在内存中的存放形式 149
8.1.3 一维数组元素的引用 149
8.1.4 一维数组的初始化 150
8.1.5 一维数组程序举例 151
8.2 二维数组的定义和引用 154
8.2.1 二维数组的定义 154
8.2.2 二维数组在内存中的存放形式 154
8.2.3 二维数组元素的引用 155
8.2.4 二维数组的初始化 156
8.2.5 二维数组程序举例 158
8.3 字符数组和字符串 159
8.3.1 字符数组的定义 159
8.3.2 字符数组在内存中的存放形式 160
8.3.3 字符数组的初始化 160
8.3.4 字符数组的应用 160
8.3.5 字符串和字符串结束标志 161
8.3.6 字符数组的输入输出 161
8.3.7 字符串处理函数 163
8.4 数组元素或数组名作为函数的参数 166
8.4.1 数组元素作为函数的参数 166
8.4.2 数组名作为函数的参数 167
8.5 程序举例 169
本章小结 172
习题8 172
第9章 指针 176
9.1 地址和指针的基本概念 176
9.2 变量的指针和指向变量的指针变量 177
9.2.1 定义一个指针变量 177
9.2.2 指针变量在内存中的表示 178
9.2.3 指针变量的引用 178
9.2.4 指针变量作为函数参数 181
9.3 数组的指针和指向数组的指针变量 183
9.3.1 指向数组元素的指针变量 184
9.3.2 通过指针引用数组元素 185
9.3.3 数组名作函数参数 188
9.4 字符串的指针和指向字符串的指针变量 193
9.4.1 字符串的表示形式 193
9.4.2 使用字符串指针变量与字符数组的区别 196
9.5 函数指针变量 197
9.6 指针型函数 197
9.7 指针数组和指向指针的指针变量 198
9.7.1 指针数组的概念 198
9.7.2 指向指针的指针变量 199
9.7.3 main函数的参数 201
9.8 指针的数据类型和指针运算 203
9.8.1 指针的数据类型 203
9.8.2 指针运算 203
9.8.3 void指针类型 204
9.9 数组与指针进阶应用 204
9.9.1 数组和指针的区别 204
9.9.2 数组和指针的联系 204
9.9.3 数组和指针的联合应用 206
本章小结 211
习题9 211
第10章 结构体与共用体 214
10.1 定义一个结构体的一般形式 214
10.2 结构体变量的说明 215
10.3 结构体成员变量的表示方法 218
10.4 结构体变量的赋值 218
10.5 结构体变量的初始化 221
10.6 结构体数组 222
10.6.1 结构体数组的定义 222
10.6.2 结构体数组的初始化 223
10.6.3 结构体数组元素的引用 223
10.6.4 结构体数组的应用 223
10.7 结构体指针变量的说明和使用 225
10.7.1 指向结构体变量的指针变量 225
10.7.2 指向结构体数组的指针 227
10.7.3 结构体变量和指针变量作函数参数 228
10.8 动态存储分配 229
10.9 链表的概念 231
10.9.1 创建动态链表 232
10.9.2 链表结点的查找与输出 233
10.9.3 链表的插入操作 235
10.9.4 删除结点的操作 238
10.10 联合体 239
10.10.1 联合体类型的定义 240
10.10.2 联合体变量的定义和引用 240
10.10.3 联合体变量的赋值 240
10.11 枚举类型 242
10.11.1 枚举类型的定义和枚举变量的说明 242
10.11.2 枚举类型变量的赋值和使用 243
本章小结 244
习题10 244
第11章 位运算 247
11.1 位运算符 247
11.1.1 按位与运算 247
11.1.2 按位或运算 249
11.1.3 按位异或运算 249
11.1.4 取反运算 251
11.1.5 左移运算 251
11.1.6 右移运算 251
本章小结 252
习题11 252
第12章 文件 253
12.1 文件概述 253
12.2 文件指针 254
12.3 文件的打开与关闭 255
12.3.1 文件的打开(fopen函数) 255
12.3.2 文件的关闭(fclose函数) 257
12.4 文件的读写 257
12.4.1 字符读写函数fgetc和fputc 257
12.4.2 字符串读写函数fgets和fputs 260
12.4.3 数据块读写函数fread和fwtrite 261
12.4.4 格式化读写函数fscanf和fprintf 263
12.5 文件的随机读写 264
12.5.1 文件定位 264
12.5.2 文件的随机读写 265
12.6 文件检测函数 266
12.6.1 文件结束检测函数feof 266
12.6.2 读写文件出错检测函数 266
本章小结 267
习题12 267
应用篇 271
第13章 应用问题示例 271
13.1 逻辑推理问题 271
13.2 高精度计算 273
13.3 模拟题 277
附录A 程序调试篇 291
附录B 关键字 296
附录C ASCII码表 298
附录D 运算符的优先级及结合方式 300
附录E 常用函数 302
参考文献 306