C语言基础篇 1
第1章C语言概述 1
1.1程序与程序设计 1
1.2 C语言的发展和特点 2
1.2.1 C语言的发展 2
1.2.2 C语言的特点 3
1.3 C语言的程序结构及特点 4
习题1 6
第2章 基本数据类型与运算 8
2.1类型的重要性 8
2.2 C语言的基本数据类型 8
2.3标志符 9
2.4常量与变量 10
2.4.1常量 10
2.4.2符号常量 10
2.4.3变量 11
2.4.4变量的定义 11
2.5整型数据 12
2.5.1整数类型 12
2.5.2整型常量 12
2.5.3整型变量 13
2.6实型数据 13
2.6.1实型类型 13
2.6.2实型常量 14
2.6.3实型变量 14
2.7字符型数据 14
2.7.1字符型常量 15
2.7.2字符型变量 16
2.7.3字符串常量 16
2.8变量赋值 17
2.8.1变量初始化 17
2.8.2变量赋值 17
2.9运算符和表达式 18
2.9.1算术运算符和算术表达式 18
2.9.2简单赋值运算符和赋值表达式 21
2.9.3关系运算符和关系表达式 23
2.9.4逻辑运算符和逻辑表达式 24
2.9.5自增、自减运算符 25
2.9.6条件运算符和条件表达式 27
2.9.7逗号运算符和逗号表达式 28
2.9.8数据类型长度运算符 29
2.9.9算术自反赋值运算符 30
2.10位运算 30
2.10.1逻辑位运算符 31
2.10.2移位运算符 32
2.10.3位自反赋值运算符 34
2.11运算符的结合性和优先级总结 35
习题2 36
第3章 语句与流程控制 39
3.1三种基本的程序控制结构 39
3.2数据的输入与输出 39
3.2.1格式化输出函数 40
3.2.2格式化输入函数 42
3.3字符输入与输出函数 44
3.3.1字符输入函数 44
3.3.2字符输出函数 45
3.4顺序结构语句 45
3.4.1语句概述 45
3.4.2顺序结构语句概述 46
3.4.3程序举例 47
3.5选择结构语句 49
3.5.1选择性问题 49
3.5.2 if条件语句 50
3.5.3开关语句 55
3.6循环结构语句 57
3.6.1问题的引入 57
3.6.2 While语句 57
3.6.3 for语句 59
3.6.4 do…while语句 61
3.6.5 break和continue语句 62
3.6.6多重循环 64
3.6.7 goto语句和标号 65
习题3 65
第4章 数组 72
4.1数组的引入与定义 72
4.1.1问题的引入 72
4.1.2一维数组的定义 73
4.2一维数组的使用 74
4.2.1一维数组初始化 74
4.2.2一维数组元素的引用 74
4.2.3一维数组应用举例 75
4.3二维数组 80
4.3.1二维数组的定义及使用 80
4.3.2二维数组应用举例 81
4.4字符串与字符数组 84
4.4.1引入字符串 84
4.4.2字符串与字符数组的概念 84
4.4.3字符数组初始化 84
4.4.4字符串基本处理函数 86
4.4.5字符数组应用举例 87
习题4 88
第5章 指针 93
5.1指针的概念 93
5.1.1指针的引入 93
5.1.2指针变量与指针常量 93
5.2指针的使用 94
5.2.1指针变量的定义与初始化 94
5.2.2指针的运算 95
5.2.3指针的安全 99
5.3指针与一维数组 99
5.4指针与二维数组 101
5.4.1理解二维数组 101
5.4.2通过指针访问二维数组 103
5.4.3指向一维数组的指针变量 104
5.5指针数组与指针的指针 106
5.5.1指针数组 106
5.5.2指向指针的指针 107
5.6对指针的几点说明 109
习题5 109
第6章 函数 114
6.1引入函数 114
6.1.1函数的概念 114
6.1.2使用函数的目的 115
6.1.3函数的分类 116
6.2函数的定义与说明 116
6.2.1自定义函数的定义 116
6.2.2函数的返回值 119
6.2.3自定义函数的说明 120
6.3函数调用 121
6.3.1函数调用的一般形式 121
6.3.2参数传递 122
6.3.3函数的递归调用 126
6.4函数指针 128
6.4.1函数指针变量定义 128
6.4.2函数指针变量的使用 129
6.5函数应用举例 131
习题6 132
第7章 复杂数据类型 137
7.1变量的存储类别 137
7.1.1存储空间分类 137
7.1.2变量的存储类别 137
7.2变量的生存期和作用域 141
7.2.1变量的生存期 142
7.2.2变量的作用域 142
7.2.3变量的存储类别与作用域和生存期总结 144
7.3结构体与共用体 144
7.3.1结构体 144
7.3.2共用体 152
7.4枚举类型 155
7.5用typedef定义类型 158
习题7 159
第8章 编译预处理与外部函数 162
8.1编译预处理 162
8.1.1宏替换 162
8.1.2文件包含 166
8.1.3条件编译 168
8.2外部函数 170
8.3多个源程序文件的编译连接 172
习题8 172
第9章 文件的操作 177
9.1文件的基本概念 177
9.1.1 C语言支持的文件格式 177
9.1.2文件操作的基本思路 178
9.2文件的基本操作 179
9.2.1文件指针 179
9.2.2文件的打开与关闭 180
9.2.3字节级的文件的读/写 181
9.2.4文件结束判断函数 183
9.3字符串文件读/写 186
9.3.1 fgets函数 186
9.3.2 fputs函数 187
9.4数据的格式化读/写 187
9.4.1 fprintf函数 187
9.4.2 fscanf函数 187
9.5记录级的文件读/写 188
9.5.1 fread函数 189
9.5.2 fwrite函数 189
9.6文件位置指针的移动 190
9.6.1 rewind函数 191
9.6.2 ftell函数 191
9.6.3 fseek函数 191
9.7文件应用举例 192
习题9 195
程序设计提高篇 198
第10章 程序设计方法 198
10.1算法 198
10.1.1算法的概念 198
10.1.2算法描述 198
10.1.3算法效率的衡量 199
10.2查找 199
10.2.1顺序查找法 199
10.2.2折半查找法 199
10.2.3分块查找法 200
10.3排序 200
10.3.1插入排序 200
10.3.2交换排序 201
10.3.3选择排序 201
10.4程序设计的基本思维原则 202
10.4.1枚举原则 202
10.4.2归纳原则 204
10.4.3抽象原则 205
10.5链表 206
10.5.1空间的申请 207
10.5.2空间的释放 207
10.5.3链表的引入 208
10.5.4链表的基本操作 209
10.6应用举例 213
习题10 216
第11章 工程化程序设计 219
11.1程序设计概述 219
11.1.1程序设计方法与风格 219
11.1.2程序设计的基本步骤 220
11.1.3程序设计方法的发展 221
11.2结构化程序设计 222
11.2.1结构化程序设计的基本思想 222
11.2.2结构化程序设计的优缺点 223
11.3面向对象程序设计简述 223
11.3.1面向对象程序设计的基本概念 224
11.3.2面向对象程序设计的优点 226
11.4工程化程序设计 227
11.4.1软件工程的基本概念 227
11.4.2可行性分析 228
11.4.3需求分析 229
11.4.4概要设计 231
11.4.5详细设计 232
11.4.6编码 234
11.4.7软件测试 235
11.4.8软件维护 237
习题11 238
附录A Visual C++集成环境使用指南 240
附录B常用运算符及其优先级和结合性 244
附录C标准C语言头文件 245
附录D C语言系统关键字 246
附录E ASCII码表 247
参考文献 248