第1章C语言及开发环境 1
1.1 C语言概述 1
1.1.1 C语言的特点 1
1.1.2 C语言的版本 2
1.1.3 C++语言 2
1.2 Visual C++ 6.0集成开发环境 2
1.2.1 C语言程序开发工具 2
1.2.2安装Visual C++ 6.0 3
1.2.3 Visual C++ 6.0集成开发环境概述 5
1.3本章小结 7
1.4习题 7
第2章 简单的C语言程序 8
2.1 C语言程序结构 8
2.1.1 Hello,World程序解析 8
2.1.2 C语言程序的结构特点 9
2.2 C语言程序的书写格式 10
2.3 C语言的字符集 11
2.4 C语言的词法 11
2.5编写和运行Hello,World程序 13
2.6本章小结 15
2.7习题 16
第3章 基本数据类型、常量与变量 17
3.1 C语言的数据类型 17
3.2常量与变量 18
3.2.1常量和符号常量 18
3.2.2变量 20
3.2.3变量的声明与定义 21
3.2.4变量的赋值和初始化 22
3.3整型数据 23
3.3.1整型常量的表示方法 24
3.3.2整型变量 25
3.3.3整型变量的分类 26
3.3.4整型变量的溢出 27
3.4浮点型数据 29
3.4.1浮点型常量的表示方法 29
3.4.2浮点型变量 29
3.4.3浮点型变量的类型 30
3.5字符型数据 31
3.5.1字符常量 32
3.5.2字符变量 34
3.5.3字符串常量 35
3.6类型转换 36
3.6.1隐式转换 36
3.6.2显式转换 38
3.7本章小结 38
3.8习题 39
第4章C语言基本语句、表达式及运算符 41
4.1表达式 41
4.2运算符 41
4.2.1运算符概述 42
4.2.2运算符优先级 42
4.2.3运算符结合性 42
4.3表达式与运算符 43
4.3.1算术表达式与算术运算符 43
4.3.2自加、自减表达式与自加、自减运算符 43
4.3.3赋值表达式与赋值运算符 44
4.3.4逗号表达式与逗号运算符 46
4.4赋值语句 46
4.4.1赋值语句的概念 46
4.4.2赋值语句的使用 47
4.4.3赋值语句与赋值表达式 47
4.5 C语言基本语句 48
4.5.1表达式语句 48
4.5.2函数调用语句 48
4.5.3控制语句 48
4.5.4复合语句 49
4.5.5空语句 49
4.6数据的输入/输出 49
4.7格式输出与输入 49
4.7.1格式输出函数(printf()函数) 50
4.7.2格式输入函数(scanf()函数) 53
4.8字符数据的输出与输入 56
4.8.1字符输出函数(putchar()函数) 56
4.8.2字符输入函数(getchar()函数) 57
4.9本章小结 58
4.10习题 58
第55.章 流程控制语句 60
5.1关系运算符和关系表达式 60
5.1.1关系运算符及其优先次序 60
5.1.2关系表达式 61
5.1.3使用关系运算符注意事项 61
5.2逻辑运算符和逻辑表达式 62
5.2.1逻辑运算符及其优先次序 63
5.2.2逻辑表达式 63
5.3条件运算符和条件表达式 65
5.4 if条件选择语句 67
5.4.1 if语句的一般形式 67
5.4.2 if语句的嵌套 72
5.4.3使用if语句注意事项 73
5.5 switch条件选择语句 74
5.6循环结构 77
5.6.1 while语句 77
5.6.2 do-while语句 79
5.6.3 for语句实现循环 80
5.6.4循环的嵌套 84
5.7 break、continue、goto语句 87
5.7.1 break语句 87
5.7.2 continue语句 89
5.7.3 goto语句 92
5.8程序举例 93
5.9本章小结 95
5.10习题 95
第6章 数组 97
6.1数组概述 97
6.2一维数组 98
6.2.1一维数组的定义 98
6.2.2一维数组的引用 98
6.2.3一维数组的初始化 99
6.2.4程序实例 99
6.3二维数组 101
6.3.1二维数组的定义 101
6.3.2二维数组的引用 102
6.3.3二维数组的初始化 103
6.3.4多维数组 104
6.3.5程序实例 105
6.4字符数组与字符串 107
6.4.1字符数组的说明与初始化 107
6.4.2字符串和字符数组 108
6.4.3字符串的处理函数 109
6.4.4字符数组的实例解析 113
6.5数组应用实例 114
6.6本章小结 117
6.7习题 117
第7章 算法 120
7.1算法的概念 120
7.2算法的特性 120
7.3算法的表示 121
7.3.1自然语言表示法 121
7.3.2伪代码表示法 121
7.3.3流程图表示法 122
7.3.4 N-S流程图表示法 125
7.3.5计算机语言表示法 127
7.4结构化程序设计方法 127
7.5本章小结 127
7.6习题 128
第8章 指针 129
8.1指针的概述 129
8.2指针变量 130
8.2.1指针变量的使用 132
8.2.2指针变量作为函数参数 135
8.3数组指针和指向数组的指针变量 137
8.3.1数组指针 137
8.3.2通过指针引用数组元素 138
8.3.3用数组名作为函数参数 142
8.4指针与数组 146
8.4.1指针与数组的关系 146
8.4.2一维数组指针 147
8.4.3指向多维数组的指针 148
8.4.4二维数组指针 149
8.5指针的运算 151
8.6字符串指针 155
8.6.1字符串的表示与引用 155
8.6.2字符串指针作为函数参数 156
8.6.3字符数组和字符串指针处理字符串时的区别 158
8.7指针数组和指向指针的指针 160
8.7.1指针数组 160
8.7.2指针数组的应用 161
8.7.3指向指针的指针 165
8.7.4指向指针的指针应用 165
8.7.5带形式参数的main函数 167
8.8指针与函数 168
8.8.1怎样定义和使用指向函数的指针变量 168
8.8.2用指向函数的指针作为函数参数 170
8.8.3指针函数 171
8.9 void指针类型 174
8.10本章小结 175
8.11习题 175
第9章 函数 177
9.1函数的概述 177
9.1.1函数的分类 178
9.1.2函数定义的一般形式 179
9.2函数的调用 180
9.2.1函数调用的形式 180
9.2.2函数调用的方式 180
9.2.3函数的返回值 182
9.2.4对被调用函数的声明和函数原型 185
9.3函数的嵌套调用 187
9.4函数的递归调用 188
9.5函数的参数 194
9.5.1函数参数的传递 194
9.5.2数组元素作为函数参数 195
9.5.3数组名作为函数参数 196
9.6内部函数和外部函数 197
9.6.1内部函数 198
9.6.2外部函数 198
9.7局部变量和全局变量 200
9.7.1局部变量 200
9.7.2全局变量 202
9.8变量的存储类型 205
9.8.1 auto(自动)变量 206
9.8.2 static(静态)变量 206
9.8.3 register(寄存器)变量 209
9.8.4 extern(外部)变量 210
9.9本章小结 212
9.10习题 213
第10章 结构体、共用体和枚举 215
10.1结构体 215
10.2结构体类型与结构体变量 215
10.2.1结构体类型的定义 216
10.2.2结构体类型变量的定义 217
10.2.3结构体变量的初始化和引用 219
10.3结构体数组 221
10.3.1结构体数组的定义 221
10.3.2结构体数组的初始化和引用 223
10.3.3结构体数组的应用实例 224
10.4结构体指针 225
10.4.1指向结构变量的指针 226
10.4.2指向结构数组的指针 227
10.4.3结构体变量作为函数参数 229
10.4.4结构体变量的指针作为函数参数 230
10.4.5结构体作为函数的返回值 231
10.5共用体 232
10.5.1共用体的定义 232
10.5.2共用体变量的定义、初始化和引用 233
10.6枚举 238
10.6.1枚举类型 238
10.6.2枚举变量 239
10.7本章小结 242
10.8习题 243
第11章 预处理指令 246
11.1概述 246
11.2宏命令 246
11.2.1无参宏命令 246
11.2.2带参宏命令 248
11.3文件包含命令 251
11.4条件编译命令 253
11.4.1 #ifdef命令 253
11.4.2 #ifndef命令 254
11.4.3 #if命令 255
11.5本章小结 256
11.6习题 257
第12章 文件 259
12.1 C文件概述 259
12.2文件指针 260
12.3文件的打开与关闭 260
12.3.1文件的打开(fopen()函数) 260
12.3.2文件的关闭(fclose()函数) 262
12.4文件的读/写 263
12.4.1字符读/写函数fgetc()和fputc() 263
12.4.2字符串读/写函数fgets()和fputs() 267
12.4.3数据块读/写函数fread()和fwtrite() 269
12.4.4格式化读/写函数fscanf()和fprintf() 272
12.5文件定位与文件的随机读/写 275
12.5.1文件头定位函数(rewind()函数) 275
12.5.2当前读/写位置函数(ftell()函数) 275
12.5.3随机定位函数(fseek()函数) 275
12.6文件检测函数 276
12.6.1文件结束检测函数(feof()函数) 276
12.6.2读/写文件出错检测函数(ferror()函数) 277
12.6.3文件出错标志和文件结束标志置0函数(clearerr()函数) 277
12.7编制课程表 277
12.8本章小结 280
12.9习题 280
第13章 位处理 282
13.1位的概念 282
13.2位运算符 282
13.2.1二进制数 283
13.2.2按位与运算符 284
13.2.3按位或运算符 285
13.2.4按位异或运算符 286
13.2.5按位取反运算符 287
13.2.6左移运算符 288
13.2.7右移运算符 289
13.2.8位复合赋值运算符 289
13.3位段 290
13.3.1位段的定义 290
13.3.2位段中数据的引用 291
13.4位运算应用举例 293
13.5本章小结 295
13.6习题 295
第14章 动态数据结构 297
14.1动态存储分配概述 297
14.1.1分配内存空间函数malloc 297
14.1.2分配内存空间函数calloc 298
14.1.3释放内存空间函数free 298
14.2链表概述 299
14.2.1链表的建立 300
14.2.2链表的遍历 301
14.3创建结点 302
14.3.1链表结点的插入 302
14.3.2链表结点的删除 303
14.4本章小结 308
14.5习题 309
第15章 数据结构进阶 311
15.1数据结构概述 311
15.2线性表 312
15.3栈 312
15.3.1栈的基本运算 313
15.3.2顺序栈的类型定义 313
15.3.3链式栈的类型定义 314
15.4队列 316
15.4.1队列的基本运算 316
15.4.2顺序队列类型定义 317
15.4.3链式队列类型定义 317
15.5二叉树 321
15.6查找 323
15.6.1顺序查找 323
15.6.2折半查找 325
15.7综合实例 326
15.8本章小结 330
15.9习题 331
第16章 排序 332
16.1排序的概述 332
16.2希尔排序 333
16.3插入排序 335
16.4冒泡排序 336
16.5快速排序 338
16.6选择排序 342
16.7堆排序 347
16.8归并排序 349
16.9链表基数排序 351
16.10本章小结 357
16.11习题 357
第17章 图书管理系统 359
17.1开发背景 359
17.2需求及功能分析 359
17.2.1总体功能分析 359
17.2.2各模块功能分析 360
17.3系统功能的实现 360
17.3.1建立相关类及属性 360
17.3.2系统选择菜单的实现 361
17.3.3图书上架功能的实现 361
17.3.4图书下架功能的实现 363
17.3.5查找图书功能的实现 365
17.3.6借书功能的实现 367
17.3.7还书功能的实现 368
17.3.8主函数功能的实现 369
17.4系统运行 370
17.5本章小结 371
第18章 通讯录管理系统 373
18.1开发背景 373
18.2需求及功能分析 373
18.2.1总体功能分析 373
18.2.2各模块功能分析 374
18.3系统功能的实现 374
18.3.1建立联系人结构 374
18.3.2系统选择菜单的实现 375
18.3.3新建联系人功能的实现 376
18.3.4添加联系人功能的实现 376
18.3.5修改联系人功能的实现 376
18.3.6删除联系人功能的实现 377
18.3.7浏览联系人功能的实现 378
18.3.8查找联系人功能的实现 378
18.3.9主函数功能的实现 379
18.4系统运行 382
18.5本章小结 383