返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:
本店所有商品

  • [正版新书]C/C++简明双链教程 李昕 吴春雷 郭磊 清华大学出版社 C++ 编程 计算机
  • 新商品上架
    • 作者: 无著
    • 出版社: 清华大学出版社
    • 出版时间:2024-09
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    江莱图书专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: 无著
    • 出版社:清华大学出版社
    • 出版时间:2024-09
    • 开本:16开
    • ISBN:9787302669920
    • 版权提供:清华大学出版社

     书名:  C/C++简明双链教程
     出版社:  清华大学出版社
     出版日期  2024-09
     ISBN号:  9787302669920
    本书按照程序设计的基本要求,采用简明易用原则组织内容。全书案例实现以 C++ 语法为主,面向 在线评测(Online Judge ,OJ)系统,提高学生解决实际问题的能力,既注重知识点的凝练,又强调其应 用场景,结合了大量的例题。本书与清览、PTA、力扣等平台紧密衔接,构建了全方位、全时段的学习 环境。在知识点之间、知识点和习题之间构建双链知识网络,构建新形态教材,形成理论与实践的紧密 互补。
    全书共分 8 章:第 1 章指明了教程的特色和 C++ 的学习准备;第 2 章重点阐述数据类型、操作符和 输入输出等语法基础;第 3 章包括分支结构和函数初步设计等内容;第 4 章重点介绍循环结构及其应用; 第 5 章介绍数组以及其应用,以及 C++ 和C 形式的字符串;第 6 章通过指针重点了解空间地址分配的概 念;第 7 章简单介绍了面向对象的概念;第 8 章介绍了模板和容器的应用。
    本书适合作为高等院校计算机、软件工程、人工智能等专业本科生编程课程的入门教材,同时可作 为面向 OJ 平台的各类竞赛的参考书。
    版权所有,侵权必究。举报:010-62782989 ,beiqinquan@tup.tsinghua.edu.cn。
    图书在版编目 (CIP) 数据
    C/C++ 简明双链教程 / 李昕 , 吴春雷 , 郭磊主编 . 北京 : 清华大学出版社 , 2024. 8. -- ( 国家级实验教
    学示范中心联席会计算机学科组规划教材 ). -- ISBN 978-7-302-66992-0
    Ⅰ . TP312
    中国国家版本馆 CIP 数据核字第 20243H9N29 号
    责任编辑:贾 斌 封面设计:刘 键 版式设计:方加青 责任校对:刘惠林 责任印制:丛怀宇

     


     

    本书包含丰富的习题和实践案例。

     

    目 录


    第 1 章 学习准备 / 1
    1.1 教程特色 / 1
    1.1.1 双链知识网络 / 1
    1.1.2 面向 OJ 系统 / 1
    1.1.3 简明原则 / 2
    1.1.4 易用原则 / 2
    1.2 计算机基本原理 / 2
    1.2.1 运算器基本原理 / 3
    1.2.2 程序执行和内存管理基本原理 / 4
    1.3 C++ 程序设计 / 8
    1.3.1 C++ 程序基本结构/ 8
    1.3.2 C++ 程序的编译与运行/ 8
    1.4 IDE 的使用 / 9
    1.4.1 CodeBlocks 新建项目 / 10
    1.4.2 CodeBlocks 调试基础 / 13
    1.4.3 CodeBlocks 常用功能 / 15
    1.5 在线评测系统 / 16
    1.5.1 PTA / 16
    1.5.2 其他 OJ / 17
    第 2 章 程序设计基础 / 19
    2.1 数据类型 / 19
    2.1.1 常见数据类型 / 19
    2.1.2 转义字符 / 21
    2.1.3 标识符 / 21
    2.1.4 C 语言的输出方式/ 21
    2.2 整型 / 23
    2.2.1 整型的数值范围 / 23
    2.2.2 整数 N 进制转十进制/ 26
    2.2.3 整数十进制转换为 N 进制/ 27
    2.3 浮点型 / 27
    2.3.1 浮点数的内存表示 / 27
    2.3.2 纯小数十进制转换为二进制 / 29
    2.4 其他数据类型 / 30
    2.4.1 字符 / 30
    2.4.2 字符串 / 34
    2.4.3 布尔型 / 35
    2.5 数据类型转换 / 36
    2.5.1 隐式类型转换 / 36
    2.5.2 显式类型转换 / 39
    2.5.3 整型提升 * / 40
    2.5.4 类型转换的精度损失 / 41
    2.5.5 四舍五入和趋零舍入 / 42
    2.6 操作符 / 46
    2.6.1 运算符 / 46
    2.6.2 除法和整除 / 46
    2.6.3 求模运算 / 48
    2.6.4 逻辑运算符 / 49
    2.6.5 自增和自减运算 / 51
    2.6.6 sizeof 运算符 / 52
    2.6.7 位运算 * / 52
    2.6.8 三个层次的变量交换 / 54
    2.7 获取用户输入 / 56
    2.7.1 整型和浮点型的 cin 输入/ 56
    2.7.2 字符串的输入 / 58
    2.7.3 字符的输入 / 60
    2.7.4 数字和字符的混合输入 / 60
    2.7.5 逗号分隔的数值 / 62
    C/C++ 简明双链教程

    2.8 时间处理 / 64
    2.9 常用数学函数 / 65
    2.10 运算效率的底层分析 * / 67
    ========================================
    @@@0@@@2.10.12.10.22.10.3 题单 / 70
    @@@1@@@负数和补码 / 67 整型的极限值 / 69常见运算的效率分析 / 70
    第 3 章 分支与函数初步 / 72
    3.1 分支结构 / 72
    3.1.1 单分支控制 / 72
    3.1.2 双分支控制 / 75
    3.1.3 多分支控制 / 77
    3.1.4 分支嵌套 / 78
    3.2 分支程序优化 / 80
    3.2.1 三天打鱼两天晒网 / 80
    3.2.2 虫子吃苹果 / 81
    3.3 自定义函数 / 83
    3.3.1 函数定义 / 83
    3.3.2 函数执行顺序 / 84
    3.3.3 函数声明 / 85
    3.3.4 函数返回值 / 87
    3.3.5 变量的作用域 / 88
    3.3.6 参数传递和引用 / 90
    3.3.7 函数重载 / 91
    3.3.8 参数的默认值 * / 93
    3.4 局部变量和函数的内存模型 / 94
    3.5 变量的深度理解 * / 97 题单 / 98
    第 4 章 循环 / 99
    4.1 while 循环 / 99
    4.2 do-while 循环 / 101
    4.3 for 循环 / 102
    4.4 嵌套循环 / 105
    4.4.1 嵌套循环基本方法 / 105
    4.4.2 内循环变量的初始化 / 108
    4.5 break 和 continue / 109
    4.5.1 死循环与 break / 109
    4.5.2 循环与 continue / 110
    4.6 循环与递归 / 111
    4.6.1 递归的演化 / 111
    4.6.2 简单递归 / 114
    4.6.3 分类递归 / 116
    4.7 经典循环问题 / 119
    4.7.1 整数分解和倒序重组 / 119
    4.7.2 素数判断 / 119
    4.7.3 穷举法 / 121
    4.7.4 对称数判断 / 122
    4.7.5 二进制中 1 的个数 / 123
    4.7.6 乘法的加法实现 * / 125
    4.8 循环与输入 / 127
    4.8.1 输入重定向 / 127
    4.8.2 数量不确定输入 / 129
    4.8.3 多级数量不确定输入 / 130
    4.9 程序优化案例 / 131 题单 / 135
    第 5 章 数组与字符串 / 136
    5.1 一维数组的定义和初始化 / 136
    5.1.1 一维数组的定义 / 136
    5.1.2 一维数组的初始化 / 137
    5.1.3 一维数组的内存模型 / 138
    5.1.4 数组的基本运算 / 139
    5.1.5 数组作为函数参数 / 141
    5.2 一维数组的应用 / 142
    5.2.1 数组的插入与删除 / 142
    5.2.2 数组与循环的联动 / 143
    5.2.3 尺取法 / 145
    5.2.4 空间换时间 / 148
    5.2.5 打表法 / 151
    5.2.6 排序 / 156
    5.2.7 动态规划 * / 160
    5.3 二维数组 / 164
    5.4 C++ 的字符串 / 167
    5.4.1 字符串的基本操作 / 167
    5.4.2 字符串的长度和容量 * / 170
    5.4.3 字符串与整型的相互转换 / 173



    5.4.4 字符串分割 / 175
    5.4.5 子串问题 / 176
    5.4.6 高精度计算 / 178
    5.5 C 风格的字符串 / 179
    5.5.1 C 风格字符串的定义和初始化 / 179
    5.5.2 C 风格字符串的基本操作/ 180
    5.5.3 C 风格字符串的应用/ 184 题单 / 187
    第 6 章 指针 / 188
    6.1 指针的概念与指针变量的定义 / 188
    6.1.1 指针与指针变量 / 188
    6.1.2 指针变量的定义 / 189
    6.1.3 指针的两个“值”/ 190
    6.1.4 强大的指针 / 191
    6.2 数组与指针 / 192
    6.2.1 一维数组与指针 / 192
    6.2.2 二维数组与指针 / 196
    6.2.3 二维数组与一维数组 / 198
    6.2.4 数组作为函数参数 / 199
    6.2.5 C 风格字符串与指针/ 200
    6.3 堆内存与动态空间分配 * / 202 题单 / 204
    第 7 章 面向对象 / 205
    7.1 类和对象 / 205
    7.2 动态对象和 this 指针 / 207
    7.3 动态属性和析构函数 / 209
    7.4 封装 / 210
    7.5 继承 / 211
    7.6 多态 / 213
    7.7 操作符重载 / 216
    7.8 静态属性 / 217
    7.9 综合练习——构建链表 / 219 题单 / 223
    第 8 章 模板和容器 / 224
    8.1 泛型编程 / 224
    8.1.1 模板函数 / 224
    8.1.2 模板类 * / 226
    8.2 STL 容器 / 227
    8.2.1 容器的分类 / 228
    8.2.2 迭代器 / 230
    8.3 向量(vector)/ 232
    8.3.1 遍历 / 232
    8.3.2 向量的典型操作 / 235
    8.3.3 查找重复元素 / 237
    8.4 高级应用 / 238
    8.4.1 降序排序 / 238
    8.4.2 全部删除指定元素 / 239
    8.4.3 for_each 算法 * / 241
    8.5 堆栈(stack)/ 242
    8.6 其他典型序列容器 * / 244
    8.6.1 双向队列 deque / 244
    8.6.2 单向队列 queue / 246
    8.6.3 链表(list)/ 247
    8.7 字典 / 253
    8.7.1 关联容器字典 map / 253
    8.7.2 无序容器字典 unordered_map / 255
    8.7.3 无序容器字典 unordered_set / 257
    8.7.4 字典与循环的联动 / 258 题单 / 261
    附录 A 知识点汇总 / 262 附录 B C++ 运算符 / 274 参考文献 / 276

     

    前 言

    编者讲授了 C 语言 20 年,一直为 C 语言的灵活和强大所感慨。虽然 Java 、Python 等 新的语言层出不穷,广受关注,但从基本编程思想的角度考虑,计算机专业的学生,还是 要首先学习 C/C++。从 2019 年开始,根据专业培养需要,整个学院的第一门编程语言修 改为 C/C++。与 C 语言相比,C++ 不仅提供了流、引用等新增语法,还提供了面向对象、 泛型编程等。从算法角度,STL 的出现极大提升了 C++ 的应用范围。新知识太多,对于 大一的初学者不是一件好事。从新手的角度,应该更多地掌握编程的基本语法和基本理 念。因此,本教材并不贪大求全,对内容做了精简。第 1 章描述了一些学习的知识准备; 第 2 章至第 6 章,主要从面向过程的角度,讲授基本语法和基本算法。函数是一种编程理 念,没有独立成为一章,并且从第 3 章就早早引入,希望初学者能够在潜移默化中接受这 样一种思想。第 7 章的面向对象不是本教材的重点,是为了让读者能更好地了解 STL 中 的各种语法形式,并为后续专业课的学习奠定基础。第 8 章以模板和容器为主,并没有逐 个讲解每个 API 的用法,而是以案例为引导,让学习者能够用容器解决一些典型的算法 问题。
    第 1 章 学习准备 mm



    < 1.1 教 程 特 色 >

    1.1.1 双链知识网络
    C/C++ 发展至今,存在大量的语法和知识点,容易让学习者茫然无措,不知从何下 手。本教程仔细梳理了初学者应该掌握的知识点,按照从易到难的顺序进行组织,并在每 个小节进行总结。构建了知识点之间的双链依存关系,形成知识网络。并按照知识点的顺 序构建了习题,进一步构建了知识点和习题之间的双链关系。信息粒度是双链知识网络的 最核心优势。将大块的知识细化为一个个相对独立的知识点,并把各个知识点从原有的语 境中解放(抽象)出来,进而形成能够在长时间的考验下保留下来的知识。这样,当遇到 新问题的时候,能迅速链接已有知识结构,解决新问题。
    1.1.2 面向 OJ 系统
    计算机是一门应用科学,实践是学习编程不变的真理。目前互联网上有大量开放的在 线评测(online judge ,OJ)系统,例如洛谷、力扣和 PTA 等。OJ 系统能够对学习者编写 的代码进行实时反馈,面向实际应用,解决实际问题,是现代编程学习的必备环节。
    OJ 系统的存在具有时代必然性。从实战角度出发,需要很多特别的技巧。本教程在 讲解过程中,特别注意对这些实战技巧的引导。习题布置在洛谷、力扣等开放性 OJ 平台 上,就是为了让更多的学习者能够受益。同时在 PTA 系统上布置了习题的副本,利于教 师对教学进度的掌控。事实上,只有通过在 OJ 系统上的不断练习,才能掌握真正的编程 能力,对学生未来继续深造和工作都具有巨大的好处。

    C/C++ 简明双链教程
    1.1.3 简明原则
    大学中目前普遍存在的现象就是课时不足。如何在有限的课时里让学生掌握最主要的 部分是一个挑战。因此在编著本教程时,不求面面俱到,只要学生能对实战编程的要点掌 握即可。例如,switch ,goto 等不建议使用的语法,在本教程中不会出现。知识学习有用 即可,“内容丰富”绝大部分时候会给学生带来负面影响,阻碍学习的积极性。简明也体 现在代码的书写优化上。每增加一行代码,甚至多增加一个字符,都会增加出错的概率。 本教程在给出例题解决方案时,力求简洁,用最有效的方式完成。长期进行这种训练,能 够提升学习者的计算思维。
    1.1.4 易用原则
    作为第一门编程课,很多同学迟迟不能入门,这是对计算机专业认知的一个重要阻 碍。因此本教程在构造时,从问题下手,对于解决同一问题的多种方法,讲解最简单的方 式,让学生快速入门,建立成就感,形成正反馈。易用原则对学习是一个重要的原则。
    例如,在输入方式上,可以用 C 语言的scanf,也可以用 C++ 的 cin,但是很明显 cin 在书写和理解上都要更加简单方便,因此教程中对 scanf 的讲解非常粗略。但对非空白符 分隔的数值输入问题,scanf 具有明显的使用优势,学习者只要掌握 scanf 处理这种特殊 情况的方法即可。再比如 C 语言字符串中的结束符 '\0',对学习者造成了大量的困扰,但 C++ 中的 string 在解决字符串问题时具有明显的简洁性,因此本教程中的字符串问题主要 采用 string 方式进行解决,对 C 语言的字符串方式没有太多笔墨。
    < 1.2 计算机基本原理 >
    现代电子计算机仍然没有超出由匈牙利科学家冯 · 诺依曼(von Neumann)于 1945 年提出的冯 ·诺依曼体系结构的范畴。在该结构中,计算机被认为由五大部件组成,如 图 1.1 所示。

     


    ="">

     

     

     

    1
    • 商品详情
    • 内容简介

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购