第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.1 0习题 58
第5章 流程控制语句 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.1 0习题 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