本書是一本專為CSP-J/S參賽選手打造的備賽指南,旨在幫助讀者從零基礎起步,系統(tǒng)掌握C 編程語言和競賽算法,最終具備沖擊信息學奧賽獎項的能力。全書內(nèi)容編排科學合理,由淺入深,從最基礎的 C 語法(如變量、數(shù)據(jù)類型、運算符、流程控制)講起,逐步過渡到數(shù)組、字符串、排序算法等核心知識,再深入講解枚舉、遞推、遞歸、二分查找等基礎算法,并重點剖析貪心算法、深度優(yōu)先搜索(DFS)、廣度優(yōu)先搜索(BFS)、動態(tài)規(guī)劃(DP)等競賽高頻考點,最后系統(tǒng)介紹棧、隊列、鏈表、樹、圖等數(shù)據(jù)結(jié)構(gòu)及其應用。
本書適合8歲以上對信息學奧賽或C 感興趣的中小學生,也適合從事信息學奧賽教學的教師,或作為線下培訓機構(gòu)的教材。
·名師護航:累計帶教超萬名信奧學生,2024 年單年集訓 4000 余人,深諳學情痛點,教學更具針對性
·內(nèi)容豐富:嚴格緊扣信息學奧賽大綱,從 C 基礎到高階算法逐層遞進,每個知識點均配詳細解析,體系完整
·趣味易讀:摒棄枯燥說教,采用輕松詼諧語氣講解,降低學習門檻,讓孩子輕松投入信奧知識學習
·配套完善:同步配套教學視頻、OJ 測評網(wǎng)站,學完即設通關挑戰(zhàn),學練測一體確保知識點熟練掌握
·適用廣泛:8 歲以上中小學生可零基礎入門,教師可用于教學指導,培訓機構(gòu)也能作為專屬教材使用
本書作者7年信息學教學教研經(jīng)驗,僅2024年所帶信奧CSP-J集訓學員就達到4000余名,全國TOP。所錄制的信息學奧賽系列教學視頻在B站總播放達到30萬 ,深受好評。 B站萬粉UP主、公眾號萬粉博主。
第 1 章 順序結(jié)構(gòu) 1
11 程序入門 1
111 C 簡介 1
112 軟件使用 2
113 標準輸出語句 5
114 實例講解 6
12 初識變量 10
121 什么是變量 10
122 變量的定義 10
123 變量的賦值 11
124 變量的輸出 12
125 標準輸入 12
126 實例講解 13
13 實數(shù)類型 16
131 實數(shù)類型的相關操作 17
132 實例講解一 17
133 格式化輸出 18
134 實例講解二 20
14 除法和求余 22
141 整數(shù)除法 22
142 浮點數(shù)除法 23
143 實例講解一 24
144 余數(shù)的定義及注意事項 25
145 實例講解二 27
15 強制類型轉(zhuǎn)換 29
151 整型轉(zhuǎn)換成浮點型 29
152 實例講解一 30
153 浮點型轉(zhuǎn)換成整型 32
154 實例講解二 32
16 字符類型與ASCII 碼 34
161 ASCII 碼 34
162 字符類型 35
163 字符轉(zhuǎn)換成ASCII 碼 36
164 ASCII 碼轉(zhuǎn)換成字符 37
165 字符的算術運算 38
166 大小寫字母轉(zhuǎn)換 39
17 順序結(jié)構(gòu)及復合運算 40
171 順序結(jié)構(gòu)總結(jié) 40
172 變量的連續(xù)賦值 41
173 實例講解一 42
174 變量的自增自減 42
175 復合運算符 43
176 實例講解二 44
177 交換兩個變量的值 44
第 2 章 選擇結(jié)構(gòu) 46
21 單分支結(jié)構(gòu) 46
211 條件表達式和關系運算符 47
212 奇偶數(shù)問題 48
213 位數(shù)判斷 49
214 打折問題 50
22 雙分支結(jié)構(gòu) 51
221 實例講解 52
222 邏輯運算符 53
223 字母大小寫判斷 55
23 選擇嵌套結(jié)構(gòu) 56
231 選擇嵌套框架 56
232 實例講解一 57
233 三角形的成立條件 59
234 實例講解二 59
24 多分支結(jié)構(gòu) 62
241 多分支結(jié)構(gòu)的基本框架 63
242 實例講解 64
243 不同三角形判斷 65
244 運算符優(yōu)先級 66
25 switch 結(jié)構(gòu) 68
251 switch 語句的基本框架 68
252 switch 語句的執(zhí)行過程 69
253 實例講解 70
第3 章 循環(huán)結(jié)構(gòu) 75
31 for 循環(huán) 75
311 程序執(zhí)行的順序 76
312 死循環(huán) 77
313 實例講解 77
314 逆序輸出 80
32 循環(huán)求和 81
321 循環(huán)求和的操作 81
322 實例講解 82
33 循環(huán)求積 85
331 循環(huán)求積的操作 85
332 實例講解 86
34 while 循環(huán) 91
341 while 循環(huán)的基本框架 91
342 while 中的死循環(huán) 91
343 實例講解 92
35 循環(huán)中斷與繼續(xù) 96
351 循環(huán)中斷break 96
352 實例講解一 97
353 循環(huán)繼續(xù)continue 98
354 實例講解二 98
36 循環(huán)嵌套 100
361 循環(huán)嵌套的基本操作 101
362 實例講解 101
第4 章 數(shù)組與字符串 107
41 一維數(shù)組 107
411 數(shù)組的概念及定義 107
412 實例講解 108
42 二維數(shù)組 112
421 二維數(shù)組的定義與操作 112
422 實例講解一 114
423 矩陣對角線 117
424 實例講解二 118
43 字符串與字符數(shù)組 120
431 字符串 121
432 字符數(shù)組 122
44 字符數(shù)組的基本操作 126
441 輸入和輸出 126
442 實例講解 127
443 復制與比較 129
第5 章 排序算法 134
51 選擇排序 134
511 選擇排序的概念和步驟 134
512 演示及實現(xiàn) 135
513 實例講解 136
52 冒泡排序 138
521 冒泡排序的概念及步驟 138
522 演示及實現(xiàn) 139
523 實例講解 140
524 冒泡排序優(yōu)化 141
53 插入排序 143
531 插入排序的概念及步驟 143
532 演示及實現(xiàn) 144
533 實例講解 145
54 計數(shù)排序 147
541 計數(shù)排序的概念及步驟 147
542 演示及實現(xiàn) 147
543 實例講解 148
544 計數(shù)排序的去重與計數(shù) 149
第6 章 基礎算法 152
61 暴力枚舉 152
611 枚舉的概念與案例實現(xiàn) 152
612 枚舉的優(yōu)缺點 155
613 實例講解 155
62 遞推算法 158
621 遞推算法的概念 158
622 實例講解 160
63 認識函數(shù) 165
631 函數(shù)的定義 166
632 形參與實參 167
633 函數(shù)的聲明 169
634 函數(shù)的值傳遞和引用傳遞 170
635 數(shù)組作為函數(shù)參數(shù) 173
64 結(jié)構(gòu)體及排序 174
641 定義及操作 175
642 實例講解 175
643 結(jié)構(gòu)體成員函數(shù) 178
644 結(jié)構(gòu)體排序 181
65 遞歸算法 184
651 遞歸的實例演示 184
652 遞歸的三大要素 185
653 實例講解 185
654 漢諾塔問題 190
66 二分查找 192
661 二分查找的概念 192
662 二分查找的操作 193
663 二分查找的優(yōu)勢 194
664 實例講解 194
第7 章 數(shù)學問題 201
71 因數(shù)、公約數(shù)和公倍數(shù) 201
711 因數(shù)及其相關知識 202
712 最大公約數(shù) 203
713 輾轉(zhuǎn)相除法 204
714 最小公倍數(shù) 205
72 質(zhì)數(shù)和合數(shù) 207
721 質(zhì)數(shù)的概念及判斷 208
722 合數(shù)和質(zhì)因數(shù) 211
723 埃拉托斯特尼篩 212
第8 章 模擬算法 215
81 一維數(shù)組模擬 215
811 核心考查 215
812 實例講解 215
82 二維數(shù)組模擬 223
821 核心考查 223
822 實例講解 223
83 日期模擬 231
831 基礎模板 231
832 實例講解 233
84 字符串模擬 239
841 常見應用場景 239
842 字符串常用函數(shù) 239
843 實例講解 240
第9 章 算法進階 246
91 貪心算法 246
911 策略演示 246
912 概念及證明 247
913 實例講解 247
92 深度優(yōu)先搜索 253
921 情景引入及建模 253
922 深搜模板 256
923 實例講解 257
93 廣度優(yōu)先搜索 263
931 情景引入及建模 263
932 廣搜模板 268
933 實例講解 269
94 動態(tài)規(guī)劃 274
941 記憶化搜索 274
942 動態(tài)規(guī)劃 276
943 實例講解 277
第 10 章 數(shù)據(jù)結(jié)構(gòu) 283
101 棧及其應用 283
1011 棧的定義、特點和操作 283
1012 STL 中棧的基本使用 285
1013 實例講解 285
102 隊列及其應用 291
1021 隊列的定義和特點 291
1022 數(shù)組模擬隊列 292
1023 STL 中隊列的基本使用 296
103 鏈表及其操作 299
1031 單鏈表 299
1032 指針 301
1033 單鏈表的相關操作 302
1034 完整操作 306
104 樹及其應用 309
1041 樹的相關概念 310
1042 二叉樹及其相關概念 311
1043 二叉樹的遍歷 313
1044 二叉樹的建立 315
105 圖及其應用 316
1051 圖的定義及相關概念 316
1052 圖的存儲 318
106 圖的最短路徑 321
1061 Floyd 算法 321
1062 Floyd 算法實例講解 325
1063 Dijkstra 算法 327
1064 Dijkstra 算法實例講解 331
附錄A 信息學奧賽成長指南 335