第1章 预备知识 1
1.1计算机软件基础 1
1.2 C语言发展史 2
1.3 C语言特征 3
1.4 C语言学习方法 5
1.5程序与算法 6
1.6 C程序开发过程 7
1.7 Visual C++集成环境介绍 8
1.7.1初识Visual C+++ 8
1.7.2 Visual C++集成环境的使用 9
习题1 11
第2章 基本数据类型和表达式 12
2.1 C的数据类型 12
2.2常量 12
2.2.1整型常量 13
2.2.2实型常量 13
2.2.3字符常量 13
2.2.4字符串常量 15
2.2.5符号常量 15
2.3变量 16
2.3.1整型变量 17
2.3.2实型变量 19
2.3.3字符变量 20
2.3.4变量赋初值 22
2.3.5各类数值型数据的混合运算 22
2.4库函数的使用 23
2.5 C的运算符与表达式 24
2.5.1 C运算符简介 24
2.5.2算术运算符和算术表达式 25
2.5.3逗号运算符和逗号表达式 27
2.5.4表达式举例 28
习题2 30
第3章 C程序的流程控制 34
3.1 C语句 34
3.2赋值语句 36
3.2.1赋值表达式 36
3.2.2赋值语句 36
3.2.3复合赋值运算 37
3.2.4用赋值语句实现简单计算 37
3.3输入/输出 39
3.3.1格式输出函数(printf()函数) 39
3.3.2格式输入函数(scanf()函数) 42
3.3.3字符输出函数(putchar()函数) 44
3.3.4字符输入函数(getchar()函数) 45
3.4顺序结构程序设计 46
3.5选择结构 48
3.5.1关系运算符和关系表达式 48
3.5.2逻辑运算符和逻辑表达式 49
3.5.3 if语句 50
3.5.4 switch语句 58
3.5.5选择结构程序举例 60
3.6循环结构 62
3.6.1 goto语句 63
3.6.2 while语句 63
3.6.3 do...while语句 64
3.6.4 for语句 66
3.6.5三种循环语句的比较 69
3.6.6循环结构的嵌套 69
3.6.7 break和continue语句 70
3.6.8循环结构程序举例 72
习题3 73
第4章 复杂数据类型 84
4.1数组 84
4.1.1数组的概念 84
4.1.2一维数组 85
4.1.3二维数组 88
4.1.4字符数组 91
4.2指针 95
4.2.1指针和指针变量概念 95
4.2.2指针变量的定义及其运算 96
4.2.3指针变量和数组 99
4.2.4字符串指针变量和字符串 105
4.2.5指针数组与多级指针 107
4.3结构体 108
4.3.1结构体的定义 109
4.3.2定义结构体类型变量的方法 109
4.3.3结构体变量的引用 111
4.3.4结构体变量的赋值和初始化 111
4.3.5结构体数组的定义 112
4.3.6结构体指针变量的说明和使用 113
4.4共用体 115
4.4.1共用体的概念 115
4.4.2对共用体变量的访问方式 116
4.4.3共用体类型数据的特点 116
4.5枚举类型 116
4.5.1枚举类型的定义和枚举变量的说明 116
4.5.2枚举类型变量的赋值和使用 117
4.6类型定义符typedef 117
习题4 118
第5章 结构化程序设计的应用 125
5.1结构化程序设计思想 125
5.1.1结构化程序设计思想 125
5.1.2使用N-S图和流程图表示基本结构 126
5.2选择和循环的应用 127
5.3指针的应用 144
5.3.1数组与指针 144
5.3.2字符串与指针 148
5.3.3指针数组与指向指针的指针 149
5.4结构体的应用 151
5.4.1结构体数组 151
5.4.2结构体的嵌套定义 152
5.4.3结构体指针 153
5.4.4动态存储分配——链表 154
习题5 158
第6章 函数和预处理 165
6.1函数概述 165
6.2函数的定义和调用 166
6.2.1无参函数的定义 166
6.2.2有参函数的定义 167
6.2.3函数的参数和返回值 168
6.2.4函数的调用 169
6.3函数间的参数传递 170
6.3.1值传递 171
6.3.2地址传递 171
6.3.3数组作函数参数 172
6.3.4指针数组名作函数参数 176
6.4函数的嵌套调用和递归调用 177
6.4.1函数的嵌套调用 177
6.4.2函数的递归调用 178
6.5变量的作用域和存储类别 181
6.5.1变量的作用域 181
6.5.2变量的存储类别 184
6.6内部函数和外部函数 186
6.6.1内部函数 186
6.6.2外部函数 186
6.7带参数的main()函数 187
6.8编译预处理 188
6.8.1概述 188
6.8.2宏定义 189
6.8.3文件包含 195
6.8.4条件编译 196
6.9程序举例 198
习题6 203
第7章 文件 212
7.1文件的基本概念 212
7.2文件类型指针 213
7.3文件的打开与关闭 214
7.3.1文件打开函数fopen() 214
7.3.2文件关闭函数fclose() 216
7.4文件的读/写 216
7.4.1字符读写函数fgetc()和fputc() 216
7.4.2字符串读写函数fgets()和fputs() 220
7.4.3数据块读写函数fread()和fwrite() 221
7.4.4格式化读写函数fscanf()和fprintf() 223
7.5文件的随机读/写 225
7.5.1 rewind()函数 225
7.5.2 fseek()函数 225
7.5.3 ftell()函数 227
7.6文件检测函数 227
7.6.1文件结束标志检测函数feof() 227
7.6.2读/写文件出错检测函数ferror() 227
7.6.3文件错误标志和文件结束标志置0函数clearerr() 227
习题7 227
第8章 面向对象程序设计 231
8.1 C++的输入/输出 231
8.1.1数据输出 231
8.1.2数据输入 232
8.1.3输入/输出的应用 232
8.2类的定义 234
8.2.1基本概念 234
8.2.2类定义 235
8.3对象及对象初始化 238
8.3.1对象 238
8.3.2访问数据成员 239
8.3.3对象初始化 241
8.4构造函数重载及参数的缺省值 242
8.4.1理解函数重载 242
8.4.2构造函数重载 243
8.4.3函数参数的缺省值 245
8.5静态成员及友元 246
8.5.1静态数据成员 246
8.5.2静态成员函数 247
8.5.3友元函数 247
8.6对象数组和对象指针 249
8.6.1对象数组 249
8.6.2对象指针 251
8.6.3指向类成员的指针 252
8.7综合实例 252
8.8基类和派生类 254
8.8.1基本概念 254
8.8.2单继承 254
8.8.3多重继承 261
8.9虚函数与多态性 263
8.9.1虚函数 264
8.9.2多态性实例 265
8.10运算符重载 267
8.10.1类成员函数格式 267
8.10.2友元函数格式 268
习题8 269
参考文献 274