重磅推荐
【编辑推荐】


◆基础知识->核心技术->典型案例->综合练习->项目案例 ◆239个典型实例,1个项目案例,44个练习题,61个面试题
◆一线开发人员全程贴心讲解,上手毫不费力
◆超值DVD内含12小时多媒体教学视频,以及丰富赠品!
同系列图书推荐:
21天学通C语言(第4版)
21天学通Java(第4版)
21天学通JavaScript(第4版)
21天学通Visual Basic(第4版)
21天学通Visual C (第4版)
21天学通HTML5 CSS3 21天学通Python

【内容简介】
本书从初学者的角度较全面地介绍了C 的相关知识,较系统地介绍了C 语言的基础内容。本书包括6篇共21章的内容。其中,第1篇是C 数据表达篇,包括C 入门、变量和数据类型、运算符和表达式以及程序控制结构等;第2篇是C 面向过程设计篇,包括函数、编译预处理、数组、指针和构造数据类型等内容;第3篇是C 面向对象编程篇,主要包括类和对象、继承、多态、运算符重载和输入/输出流等内容;第4篇主要介绍了C 高级特性,内容包括文件、命名空间和引用与内存管理;第5篇的内容主要是C 编程实践,主要分析了标准模板库STL、模板与C 标准库和异常处理等;后一篇结合学生成绩管理系统开发实例,讲解如何使用C 进行实际开发。 本书适合没有编程基础的C 语言初学者作为入门教程,也可作为大中专院校师生和培训班的教材,对于C 语言开发的爱好者,本书也有较大的参考价值。本书附带DVD光盘1张,内容包括超大容量教学视频、电子教案(PPT)、源代码等。

【作者简介】
本书的作者团队成员为一线开发工程师、资深编程专家或专业培训师,在编程开发方面有着丰富的经验,并已出版过多本相关畅销书,颇受广大读者认可。长期积累的开发实战经验,结合对编程入门爱好者需求与特点的深入调查研究,本书的内容结构十分有利于编程爱好者和相关学员快速提高水平。
【目录】
篇 C 数据表达篇

第1章 C 入门(教学视频:31分钟) 1
1.1 C 概述 1
1.1.1 C 的历史沿革 1
1.1.2 C 与面向对象 1
1.1.3 从C到C 2
1.2 程序设计方法 3
1.2.1 结构化程序设计 3
1.2.2 面向对象程序设计 4
1.2.3 程序设计方法比较 4
1.3 C 开发环境――Visual C 6.0 5
1.3.1 工作区 5
1.3.2 编辑区(Editor Area) 6
1.3.3 输出窗口(Output Panel) 6
1.3.4 菜单栏、工具栏、状态栏 7
1.4 个C 程序――Hello World 7
1.4.1 创建源程序 7
1.4.2 编译连接 9
1.4.3 调试运行 9
1.5 C 源程序组成元素 10
1.5.1 基本组成 10
1.5.2 基本符号 11
1.5.3 标识符 11
1.5.4 保留字 11
1.5.5 分隔符 12
1.6 小结 12
1.7 习题 12

第2章 变量和数据类型(教学视频:32分钟) 16
2.1 常量 16
2.1.1 声明常量 16
2.1.2 常量的应用 17
2.2 变量 19
2.2.1 声明变量 19
2.2.2 变量的命名规则 19
2.2.3 变量的作用范围 20
2.2.4 变量的应用 21
2.3 基本数据类型 22
2.3.1 整型 23
2.3.2 字符型 24
2.3.3 浮点型 26
2.3.4 布尔型 26
2.4 类型转换 27
2.4.1 隐式转换 27
2.4.2 显式转换 28
2.5 小结 29
2.6 习题 29

第3章 运算符和表达式(教学视频:34分钟) 32
3.1 运算符 32
3.1.1 算术运算符 32
3.1.2 赋值运算符 34
3.1.3 关系运算符 35
3.1.4 逻辑运算符 35
3.1.5 条件运算符 36
3.1.6 逗号运算符 37
3.1.7 位运算符 37
3.1.8 sizeof运算符 38
3.1.9 运算符的优先级 38
3.2 表达式 39
3.2.1 算术表达式 40
3.2.2 关系表达式 40
3.2.3 逻辑表达式 41
3.2.4 条件表达式 42
3.2.5 赋值表达式 43
3.2.6 逗号表达式 43
3.3 语句 44
3.3.1 语句中的空格 44
3.3.2 空语句 45
3.3.3 声明语句 45
3.3.4 赋值语句 46
3.4 小结 46
3.5 习题 46

第4章 程序控制结构(教学视频:32分钟) 50
4.1 顺序结构 50
4.1.1 表达式语句 50
4.1.2 输入语句 51
4.1.3 输出语句 51
4.1.4 格式控制符 52
4.1.5 应用示例 55
4.2 选择结构 56
4.2.1 if语句 56
4.2.2 if…else语句 57
4.2.3 多重if…else语句 58
4.2.4 switch语句 60
4.2.5 应用示例 62
4.3 循环结构 63
4.3.1 for语句 63
4.3.2 while语句 64
4.3.3 do?while语句 65
4.3.4 多重循环 66
4.3.5 应用示例 67
4.4 转向语句 68
4.5 小结 69
4.6 习题 69

第二篇 C 面向过程设计篇

第5章 函数(教学视频:36分钟) 73
5.1 定义函数 73
5.1.1 函数概述 73
5.1.2 定义函数 74
5.1.3 应用示例 75
5.2 函数参数及原型 76
5.2.1 函数的参数及返回值 76
5.2.2 函数原型 77
5.2.3 main()函数 77
5.2.4 带参数的main()函数 79
5.3 调用函数 80
5.3.1 函数调用格式 80
5.3.2 传值调用 81
5.3.3 引用调用 82
5.3.4 嵌套调用 83
5.3.5 递归调用 83
5.3.6 带默认形参值的函数 85
5.4 变量的作用域 85
5.4.1 局部变量 86
5.4.2 全局变量 87
5.5 函数的作用域 88
5.6 函数重载 89
5.6.2 参数类型不同的函数重载 90
5.6.3 参数个数上不同的重载函数 91
5.7 小结 92
5.8 习题 92

第6章 编译预处理(教学视频:37分钟) 95
6.1 预处理命令 95
6.2 宏 95
6.2.1 宏概述 95
6.2.2 不带参数的宏定义 96
6.2.3 取消宏 97
6.2.4 宏嵌套 99
6.2.5 带参数的宏定义 99
6.2.6 内联函 103
6.2.7 宏与函数的区别 104
6.3 文件包含 105
6.3.1 #include命令 105
6.3.2 合理使用文件包含 106
6.4 条件编译 107
6.4.1 #ifdef形式 108
6.4.2 #ifndef形式 109
6.4.3 #if形式 109
6.5 其他命令 110
6.5.1 #error命令 110
6.5.2 #line命令 111
6.6 小结 111
6.7 习题 111

第7章 数组(教学视频:35分钟) 114
7.1 声明数组 114
7.1.1 声明一维数组 114
7.1.2 声明多维数组 115
7.2 引用数组 116
7.2.1 引用一维数组 116
7.2.2 引用多维数组 117
7.3 数组的赋值 118
7.3.1 初始化数组 118
7.3.2 通过赋值表达式赋值 120
7.3.3 通过输入语句赋值 121
7.3.4 通过循环语句赋值 121
7.3.5 多维数组的赋值 123
7.4 字符串 123
7.4.1 传统字符串 124
7.4.2 字符数组 126
7.5 数组与函数 127
7.6 数组应用 129
7.6.1 顺序查找 129
7.6.2 折半查找 130
7.6.3 排序 133
7.7 小结 135
7.8 习题 135

第8章 指针(教学视频:33分钟) 138
8.1 指针概述 138
8.1.1 指针是什么 138
8.1.2 定义指针 139
8.1.3 指针的初始化 139
8.2 指针的运算 141
8.2.1 取地址与取值运算 141
8.2.2 指针的算术运算 142
8.2.3 指针的关系运算 144
8.2.4 指针的赋值运算 145
8.2.5 void指针和const指针 145
8.3 指针与数组 147
8.3.1 访问数组元素的方法 147
8.3.2 多维数组元素的访问 149
8.3.3 数组指针与指针数组 150
8.4 指针与函数 151
8.4.1 指针作为函数参数 151
8.4.2 指针型函数 153
8.4.3 函数指针 154
8.5 指针与字符串 155
8.6 二级指针 156
8.7 小结 157
8.8 习题 158

第9章 构造数据类型(教学视频:34分钟) 161
9.1 结构体 161
9.1.1 结构体概述 161
9.1.2 结构体类型说明 162
9.1.3 定义结构体类型变量 163
9.1.4 初始化结构体变量 164
9.1.5 引用结构体成员变量 166
9.1.6 结构体作为函数参数 168
9.2 共用体 169
9.2.1 共用体类型说明 169
9.2.2 定义共用体类型变量 170
9.2.3 引用共用体成员变量 170
9.3 枚举 172
9.3.1 定义枚举类型 172
9.3.2 定义枚举类型变量 174
9.3.3 引用枚举类型变量 175
9.4 类型重定义typedef 176
9.5 位域 178
9.5.1 定义位域变量 178
9.5.2 使用位域 179
9.6 小结 180
9.7 习题 181

第三篇 C 面向对象编程篇

第10章 类和对象(教学视频:35分钟) 184
10.1 类 184
10.1.1 什么是类 184
10.1.2 结构到类 185
10.1.3 类的声明 187
10.1.4 类的访问控制 188
10.1.5 类的定义 190
10.2 对象 192
10.2.1 对象概述 192
10.2.2 对象数组 193
10.3 构造函数 195
10.3.1 构造函数的概念 195
10.3.2 构造函数的声明和定义 195
10.3.3 构造函数的调用 197
10.3.4 不带参数的构造函数 197
10.3.5 带有默认参数的构造函数 198
10.3.6 构造函数的重载 200
10.4 拷贝构造函数 201
10.4.1 定义拷贝构造函数 201
10.4.2 调用拷贝构造函数 202
10.4.3 默认拷贝构造函数 204
10.5 析构函数 205
10.6 友元 206
10.6.1 友元函数 206
10.6.2 友元成员 208
10.6.3 友元类 209
10.7 小结 211
10.8 习题 211

第11章 继承(教学视频:38分钟) 215
11.1 继承与派生 215
11.1.1 继承与派生概述 215
11.1.2 声明派生类 216
11.2 访问控制 216
11.2.1 公有继承 217
11.2.2 私有派生 219
11.2.3 保护继承 220
11.3 派生类的构造函数和析构函数 224
11.3.1 执行顺序和构建原则 224
11.3.2 派生类的构造函数 224
11.3.3 派生类析构函数的构建 225
11.4 多重继承 227
11.4.1 二义性问题 227
11.4.2 声明多重继承 229
11.4.3 多重继承的构造函数和析构函数 231
11.5 虚基类 233
11.5.1 虚基类的引入 233
11.5.2 定义虚基类 234
11.5.3 虚基类的构造函数和初始化 236
11.6 小结 237
11.7 习题 237

第12章 多态(教学视频:34分钟) 242
12.1 多态 242
12.1.1 什么是多态 242
12.1.2 多态的作用 243
12.1.3 多态的引入 243
12.2 函数重载 245
12.3 虚函数 246
12.3.1 虚函数的引入 246
12.3.2 定义虚函数 248
12.3.3 使用虚函数 249
12.3.4 多重继承和虚函数 250
12.3.5 虚函数的注意事项 252
12.4 抽象类 252
12.4.1 纯虚函数 252
12.4.2 抽象类 254
12.5 小结 255
12.6 习题 256

第13章 运算符重载(教学视频:31分钟) 259
13.1 运算符重载简介 259
13.1.1 运算符重载的定义 259
13.1.2 运算符重载的特点 260
13.1.3 运算符重载的规则 261
13.2 运算符重载的形式 262
13.2.1 重载为类的成员函数 262
13.2.2 双目运算符重载为成员函数 262
13.2.3 单目运算符重载为成员函数 263
13.2.4 运算符重载为类的友元函数 265
13.2.5 双目运算符重载为友元函数 265
13.2.6 单目运算符重载为友元函数 266
13.2.7 成员运算符函数与友元运算符函数的比较 268
13.3 特殊运算符的重载 268
13.3.1 “ ”和“--”的重载 268
13.3.2 赋值运算符“=”的重载 270
13.3.3 下标运算符“[ ]”的重载 272
13.4 类类型转换 273
13.5 小结 275
13.6 习题 275

第14章 输入/输出流(教学视频:34分钟) 279
14.1 输入/输出流的引入 279
14.1.1 printf与scanf的缺陷 279
14.1.2 输入/输出流简介 280
14.1.3 输入/输出流类层次 281
14.2 标准输入/输出流 282
14.2.1 标准输出流对象 282
14.2.2 标准输入流对象 283
14.2.3 标准错误输出流对象 284
14.3 输入/输出流成员函数 285
14.3.1 get()函数:输出字符串 285
14.3.2 getline()函数:获取字符串 287
14.4 输入/输出的格式控制 287
14.4.1 用ios类的成员函数进行格式控制 287
14.4.2 使用格式控制符进行格式控制 290
14.5 用户自定义数据类型的输入/输出 292
14.5.1 重载输出运算符“<<” 292
14.5.2 重载输入运算符“>>” 293
14.6 小结 295
14.7 习题 295

第四篇 C 高级特性篇

第15章 文件(教学视频:28分钟) 298
15.1 文件和流 298
15.1.1 文件概述 298
15.1.2 文件流类 299
15.2 文件的打开与关闭 300
15.2.1 打开文件 300
15.2.2 关闭文件 302
15.3 文件的顺序读写 303
15.3.1 读写文本文件 303
15.3.2 文本文件应用示例 304
15.3.3 二进制文件概述 306
15.3.4 读写二进制文件 306
15.4 文件的随机读写 309
15.5 小结 311
15.6 习题 311

第16章 命名空间(教学视频:34分钟) 314
16.1 命名空间 314
16.1.1 什么是命名空间 314
16.1.2 定义命名空间 315
16.2 使用命名空间 317
16.2.1 使用作用域运算符引用成员 317
16.2.2 使用using指令 318
16.2.3 使用using声明 319
16.2.4 using指令与using声明的比较 320
16.3 类的作用域 320
16.3.1 静态数据成员 320
16.3.2 静态成员函数 322
16.4 作用域 323
16.4.1 局部作用域 323
16.4.2 全局作用域 325
16.4.3 作用域嵌套 326
16.5 this指针 327
16.6 小结 329
16.7 习题 329

第17章 引用与内存管理(教学视频:31分钟) 332
17.1 引用 332
17.1.1 引用概述 332
17.1.2 引用的使用 333
17.2 引用的操作 334
17.2.1 引用作为函数参数 334
17.2.2 引用作为返回值 335
17.3 动态内存分配 336
17.3.1 申请动态内存 336
17.3.2 释放空间 337
17.3.3 malloc和free库函数 339
17.4 const引用 340
17.5 指针与引用的区别 342
17.6 小结 343
17.7 习题 343

第五篇 C 编程实践篇

第18章 标准模板库STL(教学视频:30分钟) 346
18.1 标准模板库 346
18.1.1 STL概述 346
18.1.2 STL的引入 346
18.1.3 STL的组成 347
18.2 算法 348
18.3 容器 350
18.3.1 什么是容器 350
18.3.2 向量 350
18.3.3 列表 352
18.3.4 集合 354
18.3.5 双端队列 355
18.3.6 栈 356
18.3.7 映射和多重映射 357
18.4 迭代器 358
18.5 小结 360
18.6 习题 360

第19章 模板与C 标准库(教学视频:33分钟) 363
19.1 模板概述 363
19.1.1 模板简介 363
19.1.2 模板的引入 364
19.2 函数模板 365
19.2.1 定义函数模板 365
19.2.2 生成模板函数 366
19.2.3 函数模板的异常处理 367
19.3 类模板 368
19.3.1 定义类模板 368
19.3.2 模板类 369
19.4 C 标准库概述 371
19.5 字符串库 372
19.5.1 读写字符串 372
19.5.2 字符串赋值 372
19.5.3 字符串比较 373
19.5.4 字符串长度和空字符串 374
19.6 小结 376
19.7 习题 376

第20章 异常处理(教学视频:31分钟) 379
20.1 错误与异常 379
20.1.1 什么是异常 379
20.1.2 异常处理的基本思想 379
20.2 异常处理的实现 381
20.2.1 使用try/catch捕获异常 381
20.2.2 使用throw抛出异常 382
20.2.3 应用示例 383
20.3 类和结构的异常处理 384
20.3.1 异常处理中的构造和析构 385
20.3.2 处理结构类型的异常 386
20.4 异常处理机制 387
20.5 小结 389
20.6 习题 389

第六篇 实例篇

第21章 简单学生成绩管理系统开发实例(教学视频:31分钟) 392
21.1 需求分析 392
21.2 总体设计 392
21.3 功能模块实现 393
21.3.1 成绩录入模块 394
21.3.2 成绩统计模块 394
21.3.3 成绩排名模块 395
21.3.4 成绩查询模块 397
21.3.5 输出模块 398
21.4 系统集成 398
21.5 系统实现 400
21.5.1 结构和变量定义部分 401
21.5.2 功能函数定义部分 402
21.5.3 主函数部分 403
21.6 小结 405
【前言】

前言

  千里之行,始于足下!

  ——老子

  “21天学编程系列”自2009年1月上市以来一直受到广大读者的青睐。该系列中的大部分图书从一上市就登上了编程类图书销售排行榜的前列,很多大中专院校也将该系列中的一些图书作为教材使用,目前这些图书已经多次印刷、改版。可以说,“21天学编程系列”是自2009年以来国内原创计算机编程图书有影响力的品牌之一。

  为了使该系列图书能紧跟技术和教学的发展,更加适合读者学习和学校教学,我们结合技术和读者的建议,对该系列图书进行了改版(即第4版)。本书便是该系列中的C 分册。

  本书有何特色

  1.细致体贴的讲解

  为了让读者更快地上手,本书特别设计了适合初学者的学习方式,用准确的语言总结概念用直观的图示演示过程用详细的注释解释代码用形象的比方帮助记忆。

  【知识点介绍】 准确、清晰是其显著特点,一般放在每一节开始位置,让零基础的读者了解相关概念,顺利入门。

  【范例】 书中出现的完整实例,以章节顺序编号,便于检索和循序渐进地学习、实践,放在每节知识点介绍之后。

  【代码清单】 与范例编号对应,层次清楚、语句简洁、注释丰富,体现了代码优美的原则,有利于读者养成良好的代码编写习惯。对于大段程序,均在每行代码前设定编号便于学习。

  【运行结果】 对范例给出运行结果和对应图示,帮助读者更直观地理解范例代码。

  【范例解析】 将范例代码中的关键代码行逐一进行解释,有助于读者掌握相关概念和知识。

  【贴心的提示】 为了便于读者阅读,全书还穿插着一些技巧、提示等小贴士,体例约定如下:

  提示:通常是一些贴心的提醒,让读者加深印象或提供建议,或者解决问题的方法。

  注意:提出学习过程中需要特别注意的一些知识点和内容,或者相关信息。

  警告:对操作不当或理解偏差将会造成的灾难性后果做警示,以加深读者印象。

  经作者多年的培训和授课证明,以上讲解方式是适合初学者学习的方式,读者按照这种方式会非常轻松、顺利地掌握本书知识。

  2.实用超值的DVD光盘

  为了帮助读者比较直观地学习,本书附带DVD光盘,内容包括多媒体视频、电子教案(PPT)和实例源代码等。

  【多媒体视频】本书配有长达12小时教学视频,讲解关键知识点界面操作和书中的一些综合练习题。作者亲自配音、演示,手把手教会读者使用。

  【 电子教案(PPT)】本书可以作为高校相关课程的教材或课外辅导书,所以作者特别为本书制作了电子教案(PPT),以方便老师教学使用。

  【 职场面试法宝】本书附赠“职场面试法宝”,含常见的职场经典面试题及解答。

  3.提供完善的技术支持

  本书的技术支持论坛为:http://www.rzchina.net,读者可以在上面提问交流。另外,论坛上还有一些教程、视频动画和各种技术文章,可帮助读者提高开发水平。

  推荐的学习计划表

  本书作者在长期从事相关培训或教学实践过程中,归纳了适合初学者的学习模式,并参考了多位专家的意见,为读者总结了合理的学习时间分配方式,列表如下:

  第1周

  第1天

  了解C 的历史及其特点

  掌握C 编译环境及个C 程序

  熟悉C 源程序的基本组成和组成元素

  第2天

  掌握C 中的常量、变量及其定义

  掌握C 中数据类型及其转换

  熟练掌握在C 程序中如何声明及使用常量、变量和数据类型

  第3天

  掌握C 支持的各种运算符及应用

  掌握C 支持的由各种运算符和常量变量构成的表达式、语句及其应用

  第4天

  了解C 的面向过程的结构化设计方法

  熟练掌握C 支持的顺序结构、选择结构和循环结构

  掌握转向语句的功能及其使用

  第5天

  掌握C 中函数的声明与定义

  熟练掌握函数的参数、原型和返回值,以及在程序中调用函数

  了解C 中函数的重载

  第6天

  了解预处理命令的功能

  掌握宏定义及其使用

  掌握文件包含的使用

  掌握常用的编译预处理命令

  第7天

  了解数组的概念

  熟练掌握一维和多维数组的声明与引用

  掌握数组的多种赋值方法

  熟悉数组在实际程序中的应用

  第2周

  第8天

  了解指针的概念

  熟练掌握指针的定义和运算

  掌握指针与数组、函数和字符串的运算

  掌握指向指针的使用

  第9天

  掌握结构体、共用体和枚举类型的定义和使用

  了解类型重定义符的使用

  了解位域的应用

  第10天

  掌握C 中类和对象的概念

  掌握C 中类的构造函数、析构函数的定义和应用

  掌握友元的概念和相关应用

  第11天

  了解C 中继承与派生的概念

  掌握C 支持的派生方式

  掌握派生类的构造函数和析构函数的定义和使用

  掌握多重继承和虚基类的应用

  第12天

  理解多态的概念

  熟练掌握C 中多态的实现方法

  熟练掌握虚函数的定义及其使用

  掌握纯虚函数和抽象类

  第13天

  理解运算符重载的概念及定义

  掌握运算符重载的两种形式及其实现

  掌握特殊运算符的重载

  第14天

  了解C 中引入标准输入/输出流的原因

  掌握常用标准输入/输出流对象

  掌握输入/输出流成员函数的使用和格式控制

  第3周

  第15天

  了解文件和流的概念

  掌握文件的打开与关闭操作

  掌握顺序文件和随机文件的读写及其应用

  第16天

  理解命名空间的作用

  掌握命名空间的使用方法

  掌握类的作用域及this指针的应用方法

  第3周

  第17天

  理解引用的概念

  掌握引用在实际程序中的使用和操作及其与指针的区别

  掌握动态内存分配的方法

  第18天

  了解标准模板库STL的基本概念及其在C 程序设计中的作用

  掌握常用的STL容器的类别及其相关应用

  掌握算法和迭代器的使用

  第19天

  理解模板的概念

  掌握函数模板和类模板的定义和生成

  理解C 标准库及字符串库

  第20天

  了解错误与异常的概念及其处理基本原则

  掌握实际程序中实现异常处理的方法

  了解异常处理机制

  第21天

  了解开发一个应用程序的软件工程生命周期

  掌握使用C 开发具体应用程序的流程

  掌握使用Visual C 6.0的控制台程序开发C 应用程序

  本书适合哪些读者阅读

  本书非常适合以下几类人员阅读:

  ◆从未接触过C 编程,但对C 有兴趣的自学人员;

  ◆各大中专院校的在校学生和相关授课老师;

  ◆了解一些C ,但还需要进一步学习的人员;

  ◆在某些需要使用C 编程的特殊领域的工作人员;

  ◆其他编程爱好者。


【书摘与插画】

返回顶部