第 1章 多进制转换与应用 001
1.1 十进制与二进制 001
1.2 十进制与其他进制 003
1.3 案例 1:n进制的十进制表示 005
1.4 案例 2:进制转换(GESP真题) 006
1.5 案例 3:二进制数分类 007
1.6 练习 1:数位翻转 008
1.7 练习 2:二进制 009
1.8 练习 3:进制判断(GESP真题) 010
1.9 基础知识练习(GESP真题) 011
第 2章 计算机数据编码基础 014
2.1 原码、反码、补码 014
2.2 格雷码、UTF-8和 Base64 017
2.3 案例 1:字母求和(GESP真题) 018
2.4 案例 2:移位(GESP真题) 019
2.5 案例 3:单词覆盖还原 020
2.6 练习 1:凯撒密码 021
2.7 练习 2:解码 021
2.8 练习 3:传送密码 022
2.9 基础知识练习(GESP真题) 023
第 3章 二进制高效算法初探 026
3.1 重新认识二进制 026
3.2 案例 1:二进制数输出 027
3.3 案例 2:二进制数位之和 027
3.4 案例 3:二进制数的拆分 028
3.5 案例 4:快速幂算法(递推实现) 029
3.6 练习 1:奇偶校验(GESP真题) 030
3.7 练习 2:计算 2的幂 031
3.8 练习 3:幂的末尾 032
3.9 练习 4:幂和数(GESP真题) 033
第 4章 位运算基础 035
4.1 位运算及其定义 035
4.2 位运算的优先级 037
4.3 案例 1:数码 1的位置(位运算实现) 039
4.4 案例 2:统计好数(位运算实现) 040
4.5 案例 3:高低位交换 041
4.6 练习 1:取石子 041
4.7 练习 2:找筷子 042
4.8 练习 3:位运算练习 043
4.9 基础知识练习(GESP真题) 045
第 5章 位运算进阶 048
5.1 异或的妙用 048
5.2 位运算的其他应用 049
5.3 案例 1:三位数排序(异或实现) 049
5.4 案例 2:2025(GESP真题) 050
5.5 案例 3:幂和数(GESP真题) 050
5.6 练习 1:奇偶校验(GESP真题) 052
5.7 练习 2:异或最大值 053
5.8 练习 3:异或积 054
5.9 基础知识练习(GESP真题) 056
第 6章 C++一维数组精解 060
6.1 一维数组的定义和特性 060
6.2 一维数组的操作 061
6.3 案例 1:春游(GESP真题) 065
6.4 案例 2:相邻 3个数之和的最小值 066
6.5 案例 3:平衡序列( GESP真题) 067
6.6 练习 1:交换一组数相邻两个数 070
6.7 练习 2:数字替换( GESP真题) 070
6.8 练习 3:小杨的储蓄(GESP真题) 071
6.9 基础知识练习(GESP真题) 072
第 7章 vector容器初步 078
7.1 vector的基本概念 078
7.2 vector的定义和初始化 078
7.3 vector的基本操作 079
7.4 案例 1:基数排序 080
7.5 案例 2:统计数字个数 081
7.6 案例 3:有序数组合并 082
7.7 练习 1:逆序输出 vector元素 084
7.8 练习 2:vector去重 084
7.9 练习 3:ISBN 085
7.10 基础知识练习 086
第 8章 set容器初步 088
8.1 set的基本概念 088
8.2 set的定义与初始化 088
8.3 set的基本操作 089
8.4 案例 1:输出不同的成绩 090
8.5 案例 2:考勤刷卡 090
8.6 案例 3:不重复数字 092
8.7 练习 1:不同字符串 093
8.8 练习 2:有多少个不同的子串 094
8.9 练习 3:木材仓库 094
8.10 基础知识练习 096
第 9章 C风格字符串 098
9.1 C风格字符串的本质与存储结构 098
9.2 C风格字符串的输入与输出方法 099
9.3 库核心函数解析 101
9.4 常见错误 103
9.5 案例 1:字符串逆序 104
9.6 案例 2:输出数字(GESP真题) 105
9.7 案例 3:密码合规(GESP真题) 106
9.8 练习 1:比较大整数的大小关系 108
9.9 练习 2:找第 一个只出现一次的字符 109
9.10 练习 3:垂直柱状图 110
9.11 基础知识练习(GESP真题) 111
第 10章 C++ string类 113
10.1 string类与 C风格字符串的本质区别 113
10.2 string的构造函数与赋值操作 113
10.3 string的容量操作 114
10.4 string的查找与子串操作 115
10.5 string的修改操作 116
10.6 string的迭代器与算法应用 117
10.7 案例 1:字符串逆序 118
10.8 案例 2:输出数字(GESP真题) 119
10.9 案例 3:密码合规(GESP真题) 120
10.10 练习 1:比较大整数的大小关系 122
10.11 练习 2:找第 一个只出现一次的字符 122
10.12 练习 3:垂直柱状图 123
10.13 基础知识练习(GESP真题) 125
第 11章 map容器初步 132
11.1 map的基本概念 132
11.2 map的定义与初始化 132
11.3 map的基本操作 133
11.4 案例 1:词频统计(GESP真题) 135
11.5 案例 2:小杨的字典(GESP真题) 136
11.6 案例 3:阅读理解 139
11.7 练习 1:A-B数对 141
11.8 练习 2:重点单词 142
11.9 练习 3:编码冲突 143
11.10 基础知识练习 145
第 12章 模拟算法应用 147
12.1 模拟算法的基本概念 147
12.2 模拟算法的解题步骤 147
12.3 案例 1:Cantor表 149
12.4 案例 2:小猫分鱼(GESP真题) 150
12.5 案例 3:数组清零(GESP真题) 152
12.6 练习 1:寻找众数 153
12.7 练习 2:高兴的津津 154
12.8 练习 3:覆盖 156
12.9 基础知识练习(GESP真题) 157
第 13章 枚举算法实战 165
13.1 枚举算法的基本概念 165
13.2 枚举算法的优化方向 165
13.3 案例 1:完全平方数(GESP真题) 166
13.4 案例 2:寻找倍数(GESP真题) 167
13.5 案例 3:回文拼接(GESP真题) 168
13.6 练习 1:最大差值 170
13.7 练习 2:铺地毯 171
13.8 练习 3:连续自然数和 173
13.9 基础知识练习(GESP真题) 175
第 14章 算法描述与设计方法 178
14.1 算法描述的方法 178
14.2 如何用流程图描述算法 178
14.3 如何根据流程图编写程序 179
14.4 案例 1:均分纸牌 180
14.5 案例 2:日历制作(GESP真题) 182
14.6 案例 3:分糖果(GESP真题) 184
14.7 练习 1:数列 186
14.8 练习 2:潜伏者 187
14.9 练习 3:Vigenère密码 190
14.10 基础知识练习(GESP真题) 193
第 15章 考场调试技巧 195
15.1 常见错误类型分析 195
15.2 如何看懂 OJ的反馈 196
15.3 简单调试技巧 197
15.4 边界条件测试方法 198
15.5 案例 1:单位转换(GESP真题) 198
15.6 案例 2:含 k个 3的数 201
15.7 案例 3:打分 202
15.8 练习 1:寻找倍数(GESP真题) 204
15.9 练习 2:寻找众数 205
15.10 练习 3:A-B数对 206
15.11 基础知识练习(GESP真题) 207
附录A STL容器快速参考手册 209
A.1 序列式容器 209
A.2 关联式容器 210
A.3 无序关联容器(C++ 11起支持) 211
A.4 容器适配器 211
A.5 常用算法函数 212
A.6 容器选择指南 213
A.7 重要注意事项 213
附录B 位运算技巧速查表 214
B.1 基础位运算符 214
B.2 实用位运算技巧 214
B.3 位运算优先级速查 .215
B.4 常见应用场景 216
B.5 注意事项 217
B.6 实战技巧总结 217
附录C 基础知识练习答案 218
参考文献 223