csp2022初賽真題部分解析
2022
第一題:A??print是格式化輸出,c++的輸出方式,且c語言就可以使用,不涉及面向?qū)ο?/p>
面向?qū)ο笳Z言才能進行的操作:定義類或結(jié)構(gòu)體,對象調(diào)用成員函數(shù),構(gòu)造派生類
面向?qū)ο筇匦裕?.封裝 2.繼承 3.多態(tài) 4.消息機制 5.類型轉(zhuǎn)換 6.模板
第四題:C??
數(shù)組和鏈表都能做排序。比如冒泡排序,里面只有交換相鄰元素的操作,這一操作在數(shù)組和鏈表中都可以做;
鏈表和數(shù)組能存儲的信息取決于其長度,哪個更長哪個能存儲更多信息;
一旦申請數(shù)組,數(shù)組的長度固定,而鏈表可以申請和釋放結(jié)點,大小可以動態(tài)調(diào)整
第六題:?B??前綴表達式
中綴表達式轉(zhuǎn)化為前綴表達式的例子:
a+b ---> +ab
a+(b-c) ---> +a-bc
a+(b-c)*d ---> +a*-bcd
a+1+3 ---> ++a13
步驟:
1.加括號
2.按優(yōu)先級從低到高依次去括號,并將運算符移到該括號前面
舉個栗子:
1+(2+3)*4-5
((1+((2+3)*4))-5)
-(1+((2+3)*4))5
-+1((2+3)*4)5
-+1*(2+3)45
-+1*+2345
后綴表達式同理
1+(2+3)*4-5
((1+((2+3)*4))-5)
(1+((2+3)*4))5-
1((2+3)*4)+5-
1(2+3)4*+5-
123+4*+5-
第八題:C?
左孩子下標為偶數(shù),右孩子下標為奇數(shù)
左孩子下標為2i,右孩子為2i+1
第九題???A?
有向連通圖,n個頂點至少存在n條邊,所以有n個非零元素
第十題??D
圖的深度優(yōu)先遍歷算法常使用的數(shù)據(jù)結(jié)構(gòu)為棧
棧的訪問原則為后進先出,隊列的訪問原則是先進先出
?隊列常常被用于廣度優(yōu)先搜索算法
棧與隊列本質(zhì)上都是功能受限的線性表,本質(zhì)是相同的。用棧實現(xiàn)隊列,雖然平時不會這樣做,這樣做也沒什么意義,但還是可以實現(xiàn)的
第十二題??B?
穩(wěn)定:冒泡、插入、歸并、基數(shù)、折半插入
不穩(wěn)定:選擇、快速、希爾、堆排

?第十四題??A
abcab的不相同子串有:
長為1的子串:a,b,c
長為2的子串:ab,bc,ca
長為3的子串:abc,bca,cab
長為4的子串:abca,bcab
長為5的子串:abcab
共有12個第十五題??B?
遞歸是通過調(diào)用自身來求解問題的編程技術(shù)
編譯是將用某種高級語言轉(zhuǎn)換為機器代碼的編程技術(shù)
面向?qū)ο缶幊蹋ɑ蛘哒f“類”)是面向?qū)ο蠛蛿?shù)據(jù)而不是功能和邏輯的編程語言模型