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