本书编写的目的旨在提高C语言的教学质量,改善C语言难讲、难学、难以掌握的现状,着眼于培养学生的独立编程能力,书中按照难点分解、平滑过渡、循序渐进的思路组织结构框架和编配内容。各章均配有大量上机指导和习题,努力为课堂教学过渡到独立编程提供模拟环境和更大的知识惯性。本书分为五部分:第1~6章介绍了C语言程序设计的基础知识,这也是高级语言的共性和基础部分;第7~12章是C语言程序设计的提高部分,对C语言公认的难点(例如指针、结构体、预处理等)进行了详细的介绍和重点讲解;第13~14章为C语言高级编程部分,介绍了图形程序和字符处理程序的编写;第15~18章为C语言程序设计的技巧部分,重点介绍了C语言的调试、编程风格以及部分编程的技巧;第16~17章介绍了C++的初步知识以及初步的编程方法,介绍C++对C的扩充以及面向对象编程的基础知识,以便让学生能快速地从C过渡到C++编程。 本书内容新颖,体系合理,逻辑性强,文字流畅,通俗易懂,是学习C和C++语言的理想教材,只要具有计算机的初步知识即可学会本书所介绍的内容,可作为大中专院校和各类计算机培训学校的专用教材,也可作为自学的参考用书。第1章 程序设计基础 1
1.1 程序设计的基本概念 1
1.1.1 数据 1
1.1.2 指令 1
1.1.3 程序 1
1.1.4 算法 2
1.1.5 程序设计语言 4
1.2 程序设计方法 5
1.2.1 结构化程序设计方法 5
1.2.2 面向对象程序设计 5
1.3 C语言简介 6
1.3.1 语言的发展历史 6
1.3.2 C语言特点 6
1.3.3 学习C语言的必要性 6
1.3.4 C语言程序结构 7
1.4 Turbo C++编译器 9
1.4.1 Turbo C++集成开发环境 10
1.4.2 Turbo C++的命令行编译 连接 11
1.5 上机指导 12
1.5.1 使用Turbo C++编译器编 译程序 12
1.5.2 阅读和理解程序 14
1.6 习题 16
第2章 数据类型 18
2.1 C语言的数据类型 18
2.2 常量 19
2.2.1 一般常量 19
2.2.2 符号常量 20
2.3 变量 22
2.3.1 变量定义赋值 22
2.3.2 整型变量 24
2.3.3 实型变量 25
2.3.4 字符变量 26
2.3.5 变量初始化 27
2.4 数值运算符与优先级 28
2.4.1 算术运算符 28
2.4.2 数值运算与优先级 28
2.4.3 赋值运算符与表达式 30
2.4.4 逗号运算符与表达式 31
2.5 类型转换 31
2.6 自加1、自减1运算 32
2.6.1 自增运算符 32
2.6.2 自减运算符 33
2.7 数据的输入与输出 33
2.7.1 #include 命令与头文件 34
2.7.2 格式输入与输出—— printf与scanf 35
2.7.3 输出/输入 44
2.8 上机指导 44
2.9 习题 46
第3章 逻辑运算 50
3.1 关系运算符及表达式 50
3.1.1 关系运算符及其优先次序 50
3.1.2 关系表达式 51
3.2 逻辑运算符及表达式 52
3.2.1 逻辑运算符及其优先顺序 52
3.2.2 逻辑表达式 54
3.3 if语句及条件运算符 54
3.3.1 if语句 54
3.3.2 条件运算符 58
3.3.3 开关语句 60
3.4 上机指导 63
3.5 习题 66
第4章 循环语句 70
4.1 for循环 70
4.2 while循环 73
4.3 do-while 循环 76
4.4 break、continue和goto语句 77
4.4.1 break语句 77
4.4.2 continue语句 78
4.4.3 goto 语句 79
4.5 几种循环的比较 80
4.6 上机指导 80
4.6.1 乘法表 80
4.6.2 输出国际象棋棋盘 81
4.6.3 求解最大公约数和最小 公倍数 82
4.7 习题 83
第5章 数组 90
5.1 一维数组 90
5.1.1 一维数组的定义与赋值 90
5.1.2 一维数组元素的引用 93
5.1.3 一维数组应用举例 95
5.1.4 一维数组的排序 95
5.2 字符数组 97
5.2.1 字符数组的声明与初值 97
5.2.2 字符数组的引用 97
5.2.3 字符串操作 98
5.3 二维数组与多维数组 102
5.3.1 二维数组的定义 102
5.3.2 二维数组中元素的引用 102
5.3.3 二维数组的初始化 103
5.3.4 二维数组程序举例 104
5.4 多维数组 106
5.5 字符数组应用举例 106
5.5.1 统计单词 106
5.5.2 输入三个字符串并找出其中 最大者 107
5.6 上机指导 108
5.6.1 计算Fibonicci数列 108
5.6.2 找出二维矩阵中的最小值 及其位置 109
5.6.3 身份验证 109
5.7 习题 110
第6章 函数 114
6.1 函数的声明与定义 114
6.1.1 函数声明 115
6.1.2 函数定义 116
6.2 函数的调用 117
6.2.1 函数的简单调用 117
6.2.2 函数的参数传递 118
6.3 函数的调用 123
6.3.1 函数的简单调用 123
6.3.2 函数的嵌套调用 124
6.3.3 函数的递归调用 125
6.4 函数的作用范围 127
6.4.1 内部函数 127
6.4.2 外部函数 128
6.5 函数变量的作用域 129
6.5.1 局部变量 130
6.5.2 形式参数 130
6.5.3 全局变量 131
6.6 变量的生存期 131
6.6.1 auto类型 132
6.6.2 static类型 133
6.6.3 extern类型 134
6.6.4 register 类型 135
6.7 上机指导 135
6.7.1 定义函数求最大、 最小值 135
6.7.2 定义函数求直角三角形 面积 136
6.8 习题 137
第7章 指针和地址 145
7.1 指针变量的定义 145
7.2 指针变量的引用 146
7.3 地址运算 148
7.3.1 运算方式 148
7.3.2 指针和数组 148
7.4 字符指针 153
7.5 指针数组 155
7.6 指针与函数 156
7.6.1 指针函数 156
7.6.2 指针作为函数参数 158
7.6.3 指向函数的指针 160
7.7 上机指导 163
7.7.1 利用变量指针进行排序 163
7.7.2 求一个字符串的长度 164
7.8 习题 165
第8章 预处理指令 170
8.1 #define 指令 170
8.2 #error指令 173
8.3 #include 指令 174
8.4 条件编译预处理指令 176
8.5 #undef指令 179
8.6 上机指导 179
8.6.1 定义宏 179
8.6.2 定义带参数的宏 180
8.6.3 灵活应用#include 181
8.7 习题 182
第9章 文件操作 186
9.1 标准文件函数 186
9.1.1 文件的打开和关闭 186
9.1.2 有关文件操作的函数 188
9.2 非标准文件函数 193
9.2.1 文件的打开和关闭 193
9.2.2 读写函数 194
9.2.3 随机定位函数 194
9.3 上机指导 194
9.4 习题 196
第10章 结构体 200
10.1 结构声明和结构变量定义 200
10.2 结构变量的使用 201
10.3 结构数组和结构指针 204
10.3.1 结构数组 204
10.3.2 结构指针 206
10.4 结构的复杂形式 208
10.4.1 嵌套结构 208
10.4.2 位结构 208
10.5 链表 209
10.5.1 单链表的概念 210
10.5.2 创建一个链表 212
10.5.3 输出一个链表 213
10.5.4 连接两个链表 214
10.6 上机指导 216
10.7 习题 219
第11章 联合、枚举、类型说明 226
11.1 联合的使用 226
11.2 枚举类型的说明 228
11.3 类型声明方法 229
11.4 上机指导 231
11.5 习题 235
第12章 位运算 241
12.1 概述 241
12.1.1 字节与位 241
12.1.2 数的表达方式 242
12.1.3 符号的表达方式 243
12.1.4 电压的编码表示 244
12.1.5 声音、图像的编码表示 244
12.2 位运算 244
12.2.1 按位与运算符“&” 245
12.2.2 按位或运算符“|” 246
12.2.3 异或运算符“^” 247
12.2.4 取反运算符“~” 248
12.2.5 左移运算符“<<” 248
12.2.6 右移运算符“>>” 249
12.2.7 位运算符与赋值运算符 结合,组成新的赋值 运算符 249
12.3 位段 249
12.4 上机指导 251
12.5 习题 255
第13章 Turbo C++作图 258
13.1 图形模式的初始化 258
13.2 独立图形运行程序的建立 261
13.3 屏幕颜色的设置和清屏函数 262
13.4 基本图形函数 263
13.4.1 画点 264
13.4.2 画线 264
13.4.3 任意封闭图形的填充 270
13.4.4 有关图形窗口和图形屏幕 操作函数 271
13.4.5 图形模式下的文本 输出 273
13.5 上机指导 277
13.6 习题 281
第14章 字符屏幕 285
14.1 文本窗口的定义 285
14.2 文本窗口颜色的设置 286
14.3 窗口内文本的输入输出函数 288
14.3.1 窗口内文本的输出函数 288
14.3.2 窗口内文本的输入函数 288
14.4 有关屏幕操作的函数 289
14.5 上机指导 290
14.6 习题 292
第15章 程序调试 293
15.1 Turbo C++集成调试器 293
15.2 Turbo C++编译、连接和运行时 的常见错误 295
15.2.1 编译时的常见错误 296
15.2.2 连接时的常见错误 300
15.2.3 运行时的常见错误 300
15.3 上机指导 303
15.4 习题 305
第16章 在C基础上C++的扩充 311
16.1 简单数据类型的扩充 311
16.1.1 引用变量 311
16.1.2 无名联合体 312
16.2 运算的扩充 313
16.3 函数功能的扩充 314
16.3.1 参数带默认值的函数 314
16.3.2 函数重载 315
16.4 对输入输出的扩充 318
16.5 动态管理内存 320
16.6 上机指导 321
16.7 习题 324
第17章 面向对象编程基础 ——类与对象 327
17.1 概述 327
17.1.1 对象 327
17.1.2 类 327
17.1.3 继承和派生 328
17.1.4 类的属性和方法 328
17.1.5 类的构造与析构 328
17.1.6 成员类型 328
17.2 类与对象的定义 328
17.3 类的构造与析构 332
17.3.1 构造函数 332
17.3.2 带参数的构造函数 334
17.3.3 重载的构造函数 335
17.3.4 类的析构函数 337
17.4 类的继承与派生 339
17.4.1 派生类的声明 339
17.4.2 成员覆盖 340
17.4.3 派生类的构造函数 341
17.4.4 从多个类继承 342
17.5 上机指导 342
17.6 习题 346
第18章 C/C++语言编程格式 与技巧 349
18.1 C/C++语言的编程格式 349
18.2 C语言“switch语句”的 使用技巧 351
18.3 “=”的使用技巧 352
18.4 排序 353
18.4.1 快速排序 353
18.4.2 整数希尔排序 355
18.4.3 整数堆排序 356
18.5 单链表的基本运算 357
18.5.1 查找 357
18.5.2 插入(后插) 359
18.5.3 删除 361
18.6 上机指导 364
18.7 习题 369
附录A ASCII码表 377
附录B C语言中的关键字 378
附录C 部分库函数 379
附录D 参考答案 386
[图书资源]