第1章 C语言概述 1
1.1 C语言发展历史简介 1
1.2 C语言的特点 1
1.3 C程序入门与一般形式 3
1.3.1 C程序入门 3
1.3.2 C程序的结构和一般形式 5
1.4 C程序的编辑、编译、连接和执行过程 7
1.4.1 编译型语言源程序的运行 7
1.4.2 用Turbo C运行C程序 7
习题 10
实验1 Turbo C源程序的编辑、编译、调试和运行 10
第2章 数据类型、运算符与表达式 11
2.1 C语言的词法 11
2.1.1 字符集 11
2.1.2 关键字 11
2.1.3 标识符 11
2.2.1 基本数据类型 12
2.2 数据类型 12
2.2.2 类型修饰词 13
2.2.3 其他数据类型 14
2.3 常量 14
2.3.1 数值常量 14
2.3.2 字符常量 15
2.3.3 字符串常量 16
2.4 变量 17
2.3.4 符号常量 17
2.4.1 整型变量 18
2.4.2 字符型变量 19
2.4.3 浮点型和双精度型变量 19
2.4.4 字符串变量 19
2.4.5 变量赋初值 21
2.5 运算符与表达式 21
2.5.1 算术运算符与算术表达式 22
2.5.2 增1和减1运算符 22
2.5.3 关系运算符与关系表达式 23
2.5.4 逻辑运算符与逻辑表达式 24
2.5.5 位运算符 25
2.5.6 赋值运算符和赋值表达式 26
2.5.7 逗号运算符和逗号表达式 27
2.5.8 条件运算符 27
2.6 混合运算及类型转换 28
2.6.1 二元算术运算 28
2.6.2 赋值运算 28
2.7.1 枚举类型及变量定义 29
2.7 枚举类型及其说明 29
2.7.2 枚举类型变量可参与的操作 30
2.8 输入/输出方式 31
2.8.1 字符输入库函数getchar()和输出库函数putchar() 31
2.8.2 字符串的输入函数gets()和输出函数puts() 32
2.8.3 有格式的输入函数scanf()和输出函数printf() 32
2.9 编程风格 40
习题 41
实验2 基本输入/输出函数和运算符、表达式 42
3.2 基本语句 43
第3章 语句和流程控制 43
3.1 C语句概述 43
3.3 复合语句 44
3.4 控制语句 45
3.4.1 顺序结构 45
3.4.2 选择结构 45
3.4.3 循环结构 45
3.5 分支结构程序设计语句 46
3.5.1 if语句 46
3.5.3 switch语句(开关语句) 48
3.5.2 if语句的嵌套 48
3.6 循环语句 50
3.6.1 while循环语句 50
3.6.2 do-while循环语句 51
3.6.3 for循环语句 52
3.6.4 goto语句和带标号的语句 53
3.7 其他控制语句 54
3.7.1 break语句(中止语句) 54
3.7.2 continue语句(继续语句) 55
3.7.3 return语句(返回语句) 56
3.8 循环的退出及死循环的避免 56
3.8.1 循环的退出 56
3.8.2 死循环问题 56
3.9 程序举例 57
习题 58
实验3 分支结构、循环结构程序设计 60
4.1.1 函数定义的一般形式 61
4.1 函数定义 61
第4章 函数 61
4.1.2 函数定义的说明 62
4.1.3 函数的返回值 63
4.2 函数调用 64
4.2.1 函数调用的一般形式 64
4.2.2 对被调用函数的说明 64
4.3 函数的嵌套调用及递归调用 66
4.3.1 函数的嵌套调用 66
4.3.2 函数的递归调用 68
4.4.1 内部函数 71
4.4.2 外部函数 71
4.5 函数的应用 71
4.4 内部函数和外部函数 71
习题 72
实验4 函数 72
5.1 变量类别概述 73
5.2 局部变量 73
第5章 变量的存储类别和作用域 73
5.3 全局变量 76
5.3.1 全局变量及其定义和作用范围 76
5.3.2 全局变量的有关说明 76
5.4 寄存器变量 80
5.5 静态存储变量 80
5.5.1 局部静态存储变量 81
5.5.2 全局静态存储变量 82
5.6 动态存储变量 83
5.7 变量存储类别 84
习题 85
实验5 变量的存储类型和作用域 86
第6章 数组 87
6.1 一维数组的定义及引用 87
6.1.1 一维数组的定义 87
6.1.2 一维数组定义的几点说明 87
6.1.3 一维数组元素的引用 88
6.1.4 一维数组的初始化 88
6.1.5 一维数组的应用举例 89
6.2.2 二维数组定义中的几点说明 91
6.2 二维数组的定义和引用 91
6.2.1 二维数组的定义 91
6.2.3 二维数组的引用 92
6.2.4 二维数组的初始化 92
6.2.5 二维数组的应用举例 92
6.3 字符数组 93
6.3.1 字符数组的定义 93
6.3.2 字符数组的初始化 93
6.3.4 字符数组的输入、输出 94
6.3.3 字符数组、字符串及字符三者间的关系 94
6.3.5 字符串处理函数 95
6.3.6 字符数组的应用举例 96
6.4 数组的综合应用举例 97
习题 101
实验6 数组 101
第7章 预处理命令 102
7.1 宏定义 102
7.1.1 不带参数的宏定义 102
7.1.2 带参数的宏定义 104
7.2 文件包含 105
7.3 条件编译 106
习题 107
实验7 预处理命令 108
第8章 指针 109
8.1 指针的概念 109
8.2 指针变量的定义和使用 110
8.2.1 指针变量的定义 111
8.2.2 指针变量的使用 112
8.3 指针与数组 114
8.3.1 指向数组的指针 114
8.3.2 通过指针引用数组元素 114
8.3.3 指向多维数组的指针 116
8.3.4 字符指针 118
8.3.5 指针数组 119
8.4 指针与函数 120
8.4.1 指向函数的指针 120
8.4.2 指针类型数据用做函数参数 121
8.4.3 带参数的主函数 123
8.4.4 返回指针的函数 124
8.5 指向指针的指针 125
习题 126
实验8 指针 127
第9章 位运算、结构体和联合 128
9.1 位运算 128
9.1.1 按位取反运算符 128
9.1.2 按位与运算符 129
9.1.3 按位或运算符 130
9.1.4 位异或运算符 131
9.1.5 左移运算符 131
9.1.6 右移运算符 132
9.1.7 计算机中的几种码制 132
9.2 结构体 133
9.2.1 结构体的概念 133
9.2.2 结构体变量的定义 134
9.2.3 结构体变量的引用 136
9.2.4 结构体变量的初始化 137
9.2.5 结构体数组 138
9.2.6 指向结构体的指针 139
9.3 链表 140
9.3.1 链表的概述 140
9.3.2 链表的操作 141
9.4 联合 146
习题 147
实验9 位运算、结构体和联合 148
第10章 文件 149
10.1 文件概述 149
10.2 文件的打开与关闭 150
10.2.1 打开文件函数 150
10.2.2 关闭文件函数 151
10.3 文件的读写 152
10.3.1 字符的输入输出函数 152
10.3.2 字符串的输入输出函数 153
10.3.3 数据块的输入输出函数 154
10.3.4 指定文件的输入输出函数 155
10.3.5 文件的定位函数 155
10.4 出错检测函数 156
10.4.1 ferror函数 156
10.4.2 clearerr函数 157
习题 157
实验10 文件 157
11.1 C++的特点 158
第11章 转向C++ 158
11.2 从C到C++的转变 159
11.2.1 标识符、关键字 159
11.2.2 声明语句 159
11.2.3 运算符 161
11.2.4 特有的输入输出语句 162
11.2.5 函数原型与函数声明 163
11.2.7 结构体 165
11.2.8 sizeof运算符 165
11.2.6 存储类 165
11.3 C++新特征 166
11.3.1 注释 166
11.3.2 常量类型 166
11.3.3 显式类型转换 167
11.3.4 作用域运算符 168
11.3.5 内联函数和宏 169
11.3.6 参数缺省 171
11.3.7 引用类型 172
11.3.8 指针 176
11.3.9 函数重载 178
11.3.10 类型参数化 180
11.3.11 常量与函数 183
11.3.12 动态内存分配 184
习题 186
实验11 转向C++ 189
第12章 类与对象 190
12.1 类 190
12.1.1 类的定义 190
12.1.2 成员函数的定义 192
12.2 对象 193
12.2.1 对象声明 193
12.2.2 构造函数与析构函数 194
12.2.3 类、对象的内存分配 199
12.2.4 静态类数据 199
12.2.5 源文件的组织 201
12.3 对象行为与组织 202
12.3.1 友元 202
12.3.2 对象组织 204
习题 207
实验12 类与对象 208
第13章 继承 209
13.1 派生类 209
13.1.1 派生类声明 209
13.1.2 友元与继承 212
13.1.3 派生类的构造函数与析构函数 213
13.2 多基派生 216
13.3 虚基类 217
13.4 虚函数 218
13.4.1 方法的多态性与虚函数 218
13.4.2 虚函数的访问 221
13.4.3 纯虚函数与抽象类 226
13.4.4 多基派生中虚函数的二义性 228
习题 231
实验13 继承 232
第14章 重载与转换 233
14.1 概述 233
14.2 运算符的重载 236
14.2.1 重载复合运算符 237
14.2.2 重载=运算符 238
14.2.3 重载++和--运算符 240
14.2.4 重载比较运算符 242
14.2.5 重载插入符和提取符 243
14.2.6 重载[]运算符 245
14.2.7 重载()运算符 246
14.3.1 不同数据类型之间的转换 248
14.3 转换 248
14.3.2 不同类类型之间的转换 250
习题 252
实验14 重载与转换 252
第15章 Visual C++.NET集成开发环境 253
15.1 Microsoft.NET 253
15.2 Visual Studio.NET概述 257
15.2.1 Visual Studio.NET概述 257
15.2.2 Visual Studio.NET安装和设置 258
15.2.3 Visual Studio.NET的特色 260
15.2.4 Visual Studio.NET的启动和退出 261
15.3 Visual C++.NET 2003的开发环境 268
15.3.1 Visual C++.NET新特点 269
15.3.2 Visual C++.NET 2003功能 270
15.3.3 解决方案和项目 274
15.3.4 托管C++ 274
15.3.5 Visual C++.NET 2003窗口 276
15.4.1 使用MFC应用程序向导生成应用程序框架 282
15.4 单文档应用程序举例 282
15.4.2 在文件中添加代码并运行程序 286
习题 287
实验15 Visual C++.NET集成开发环境 287
第16章 Visual C++.NET 2003程序设计实例 288
16.1 实现目标 288
16.2 准备工作 289
16.3 操作步骤 291
习题 300
实验16 Visual C++.NET 2003程序设计实例 300