GESP編程能力等級認證一本通(C++ 三級)
劉寄 張兵 來章潤
相關主題
商品描述
“GESP編程能力等級認證一本通”是專門為中小學生編寫的一套學習C++編程和算法的圖書。本套圖書嚴格圍繞計算機學會(CCF)發布的《CCF編程能力等級認證(GESP)C++認證標準》而設計。
本書對應C++三級,共15章,內容包括多進制轉換與應用、計算機數據編碼基礎、二進制高效算法初探、位運算基礎、位運算進階、C++一維數組精解、vector容器初步、set容器初步、C風格字符串、C++ string類、map容器初步、模擬算法應用、枚舉算法實戰、算法描述與設計方法、考場調試技巧等。
本書配備了題庫、課件、課程視頻(在線)、OJ等資源,可以作為中小學編程社團的教學用書,也可以作為青少年編程培訓機構的培訓用書,還可以作為青少年編程等級考試和編程競賽的入門參考書。
作者簡介
張兵,CCF GESP & PTA自由度服務中心主任、重慶大學繼續教育學院家校社中心主任、國際人工智能奧林匹克學術活動中國區(NOAI)重慶組委會主任、“傲夢少年”聯盟負責人。在編程教育與信奧教育、青少年人工智能、青少年多元化成長路徑、醫工融合等領域均有深入研究。主導並參與了1項重慶市技術創新與應用示範項目、1 項重慶市科技型企業技術創新與應用發展專項項目。
劉寄,工學博士,副研究員,世界魔方協會(WCA)會員。研究方向為嵌入式操作系
統、嵌入式人機交互設備。從事操作系統、算法與數據結構、面向對象編程教學工作 10余年,指導學生參加 ACM 國際大學生程序設計競賽、微軟創新杯等賽事,所帶學生累計獲全球級獎項 20 余人次。已發表相關論文20 余篇,參與編寫相關教材 3 部,獲授權發明專利 10 余項。
來章潤,重慶市巴蜀中學校競賽教練,重慶市第九屆渝中區骨幹教師,重慶市青少年
科技輔導員協會第五次代表大會代表、理事,重慶市教育科學研究院創新教育項目評審專家。多次獲評全國高中數學競賽優秀教練員,所指導學生中,1 人入選第 61 屆國際數學奧林匹克(IMO)中國國家集訓隊,並以全球唯一滿分成績斬獲該屆 IMO 金牌;22 人入選全國中學生數學冬令營(CMO),其中 5人選入中國數學奧林匹克國家集訓隊;14 人獲 CMO 金牌,5 人獲中國女子數學奧林匹克金牌。
目錄大綱
第 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

