第一章 C语言概述 1
1.1 C语言发展历史和特点 1
1.1.1 C语言发展史 1
1.1.2 C语言的特点 2
1.2 C程序的基本结构 3
1.3 Turbo C上机操作 5
习题一 6
第二章 数据类型与运算 8
2.1 C语言的数据类型 8
2.2常量 8
2.2.1符号常量 9
2.2.2整型常量 9
2.2.3实型常量 10
2.2.4字符常量 10
2.2.5字符串常量 11
2.3变量 12
2.3.1变量的定义 12
2.3.2变量的初始化 13
2.4运算符和表达式 13
2.4.1算术运算和算术表达式 14
2.4.2自增自减运算符 14
2.4.3关系运算符和关系表达式 15
2.4.4逻辑运算符和逻辑表达式 16
2.4.5赋值运算符和赋值表达式 17
2.4.6逗号运算符和逗号表达式 17
2.4.7条件运算符和条件表达式 18
2.4.8运算符的优先级和类型转换 19
2.4.9表达式的应用举例 20
习题二 22
第三章 C程序设计 24
3.1 C语句简介 24
3.2顺序结构程序设计 25
3.2.1数据输入 25
3.2.2数据输出 27
3.2.3应用举例 29
3.3选择结构程序设计 30
3.3.1 if语句 30
3.3.2 switch语句 33
3.3.3应用举例 35
3.4循环结构程序设计 36
3.4.1 while循环语句 36
3.4.2 do-while循环语句 38
3.4.3 for循环语句 39
3.4.4多重循环 40
3.4.5 break、 continue和goto语句 41
3.4.6应用举例 43
习题三 45
第四章 编译预处理 47
4.1宏定义 47
4.1.1符号常量 47
4.1.2带参数的宏定义 50
4.2文件包含 52
4.3条件编辑 53
4.3.1 # ifdef与#endif命令 53
4.3.2 # ifndef与#endif命令 53
4.3.3#if与#endif命令 54
4.3.4条件编译的主要用途 55
4.4应用举例 55
习题四 57
第五章 数组 58
5.1一维数组 58
5.1.1一维数组的定义与初始化 58
5.1.2一维数组的使用 59
5.2二维数组 60
5.2.1二维数组的定义与初始化 60
5.2.2二维数组的使用 61
5.3字符数组 62
5.3.1字符数组的定义与初始化 62
5.3.2字符数组的使用 63
5.3.3字符数组与字符串 63
5.3.4字符串运算函数 65
5.4应用举例 68
题五 70
第六章 函数 71
6.1函数的定义与调用 71
6.1.1函数定义的一般形式 71
6.1.2函数调用的一般形式 72
6.1.3函数的参数 73
6.1.4函数的返回值 74
6.1.5对被调用函数的说明 76
6.2函数的嵌套调用和递归调用 77
6.2.1函数的嵌套调用 77
6.2.2函数的递归调用 78
6.3函数与数组 80
6.3.1数组元素做函数实参 80
6.3.2数组名做函数参数 80
6.4变量的作用域 83
6.4.1局部变量 83
6.4.2全局变量 84
6.5变量的存储类别 87
6.5.1局部变量的存储方式 87
6.5.2全局变量的存储方式 89
6.6内部函数和外部函数 91
6.7应用举例 92
习题六 95
第七章 指针 96
7.1指针变量 96
7.1.1指针的概念 96
7.1.2指针变量的定义 97
7.1.3指针变量的引用 98
7.2指针与数组 99
7.2.1指针与一维数组 99
7.2.2指针与二维数组 102
7.2.3指针与字符串 106
7.3指针与函数 107
7.3.1变量的指针做函数参数 108
7.3.2数组指针做函数参数 108
7.3.3指向函数的指针变量 111
7.3.4返回指针值的函数 114
7.4指针数组和指向指针的指针 116
7.4.1指针数组 116
7.4.2指向指针的指针 117
7.4.3带参数的main函数 118
7.5应用举例 120
题七 122
第八章 结构体和共用体 124
8.1结构体的基本概念 124
8.1.1结构体类型的定义 124
8.1.2结构体变量的定义 125
8.1.3结构体变量的引用 126
8.1.4结构体变量的初始化 127
8.1.5结构体变量的输入输出 128
8.1.6结构体的嵌套 129
8.2结构体数组 130
8.2.1结构体数组的定义 130
8.2.2结构体数组的初始化 130
8.2.3结构体数组的引用 131
8.3结构体指针 132
8.3.1指向结构体变量的指针 132
8.3.2指向结构体数组的指针 134
8.4结构体与函数 135
8.4.1结构体变量的成员作函数的参数 135
8.4.2结构体变量作为函数的参数 135
8.4.3结构体指针作为函数的参数 137
8.4.4返回结构体类型的函数 139
8.5共用体 140
8.5.1共用体类型及变量的定义 140
8.5.2共用体变量的引用 141
8.5.3共用体的特点 142
8.6枚举类型 142
8.6.1枚举类型及其变量的定义 143
8.6.2枚举类型的特点 143
8.7类型定义typedef 145
8.8应用举例 146
习题八 148
第九章 文件 149
9.1 C语言文件概述 149
9.2文件的打开与关闭 150
9.2.1文件的打开 150
9.2.2文件的关闭 151
9.3文件的读写 151
9.3.1字符的输入输出函数 151
9.3.2字符串的输入输出函数 152
9.3.3记录块数据的输入输出 154
9.3.4格式化输入输出函数 156
9.4文件的定位和随机读写 157
习题九 159
第十章 实用数据结构 161
10.1数据结构与算法 161
10.1.1数据结构的概念 161
10.1.2数据结构的存储 162
10.1.3算法 163
10.1.4算法与数据结构 163
10.2线性表 164
10.2.1线性表的顺序存储结构 164
10.2.2线性表的链式存储结构 166
10.3栈和队列 168
10.3.1栈 168
10.3.2队列 170
10.4树与二叉树 172
10.4.1树 172
10.4.2二叉树 173
10.4.3二叉树的存储结构 174
10.4.4二叉树的遍历 175
10.5查找 176
10.5.1顺序查找 176
10.5.2二分查找 177
10.5.3散列表 178
10.6排序 181
10.6.1插入排序 181
10.6.2交换排序 184
10.6.3选择排序 186
10.6.4二叉排序树 186
10.7图 189
10.7.1图的基本概念 190
10.7.2图的存储结构 190
10.7.3图的遍历 192
10.7.4从一个源点到其余各顶点的最短路径 196
习题十 198
第十一章 软件开发技术 200
11.1程序设计概述 200
11.1.1问题分析 200
11.1.2程序的总计设计和详细设计 201
11.1.3编程 202
11.1.4程序的测试 206
11.1.5程序文挡 207
11.2实例分析 207
11.2.1问题的描述 207
11.2.2输入和输出的确定 207
11.2.3问题的表示 207
11.2.4问题的分解和解题步骤的确立 208
11.3算法 208
11.3.1常用算法介绍 209
11.3.2算法的选择和表示 213
11.3.3数据结构和控制结构的设计 215
11.3.4算法和框图的细化 215
11.4程序的测试 218
11.4.1 程序测试的目的、原则和步骤 218
11.4.2测试用例的设计方法 221
11.4.3错误信息的提供(错误陷阱) 224
11.4.4程序测试实例 224
11.5 程序文档 227
11.5.1用户文档和技术文挡 227
11.5.2程序文档的生成 227
习题十一 237
第十二章 C+++语言简介 238
12.1 C+++语言对C语言的扩展 238
12.1.1 C+++语言对C语言在结构体方法方面的扩展 238
12.1.2 C+++语言的面向对象的特征 239
12.2常量、类型和说明 240
12.2.1声明 240
12.2.2变量的作用域 241
12.2.3类型 242
12.2.4常量和类型 243
12.3指针 244
12.4函数 245
12.4.1函数原型 245
12.4.2内联函数 245
12.4.3缺省参数 246
12.4.4函数名重载 246
12.4.5不确定参数个数的函数 247
12.5对象类 247
12.5.1类和对象 247
12.5.2构造函数和析构函数 250
12.5.3友员 253
12.6导出类和继承性 253
12.6.1单继承的导出类 253
12.6.2多继承 255
12.7多形性与虚函数 257
12.7.1多形性的概念 257
12.7.2虚函数 258
附录Ⅰ 260
附录Ⅱ 261
附录Ⅲ 261
附录Ⅳ 263