1. 程式人生 > >【第二十四屆全國青少年資訊學奧林匹克聯賽】NOIP2018普及組初賽試題解析(C++語言)

【第二十四屆全國青少年資訊學奧林匹克聯賽】NOIP2018普及組初賽試題解析(C++語言)

選擇題

1.D 【解析】印表機屬於輸出裝置,它將一些資訊通過印表機打印出來。掃描器,鍵盤,滑鼠屬於輸入裝置。
2.D 【解析】 A,B,C選項的十進位制數值都是 617 617 ,D選項的數值是 619 619


3.D 【解析】 1 M B = 1024 K B = 1024
× 1024 B 1MB=1024KB=1024×1024B

4.B 【解析】 廣域網的縮寫是 W A N
WAN
,區域網是 L A N LAN ,都會網路是 M A N MAN
5.B 【解析】 常識,要對資訊學競賽的背景有所瞭解。背景:1984年鄧小平指出:“計算機的普及要從娃娃做起。”中國計算機學會於1984年創辦全國青少年計算機程式設計競賽(簡 稱:NOI),當年參加競賽的有8000多人。
6.A 【解析】首先我們要知道CapsLock是鍵盤上用於切換大小寫得鍵。例如,你們來輸入的是小寫的a,如果你按了CapsLock鍵,輸出的就是大寫的 A A 。模擬題目中的規矩,可以得到迴圈: A S D F a s d f (A,S,D,F,a,s,d,f) 。其中每八個字母一個迴圈。 81 m o d 8 = 1 81 mod 8=1 ,那麼輸出的就是迴圈節的第一個字元 A A
7.A 【解析】 節點總數為: k k 0 + + k k 1 + + + + k k h,接下來的問題就是如何化簡這個等比數列了。設 S = k S=k 0 + + k k 1 + + + + k k h,則 k S = k kS=k 1 + + k k 2 + + + + k k 3 k S S = S ( k 1 ) = k kS-S=S(k-1)=k h+1 1 -1 ,化簡一下就是 S = k S=(k h+1 1 / k 1 -1)/(k-1)
8.A 【解析】 基數排序是根據每一個數位的大小進行排序的,類似於桶排序的思想。而氣泡排序,堆排序和直接插入排序都是基於比較的。
9.A 【解析】我們可以選用遞推的方法,設f[i]為i個數比大小的最小次數, f [ i ] = f [ i 2 ] + 3 , f [ 1 ] = 0 , f [ 2 ] = 1 f[i]=f[i-2]+3,f[1]=0,f[2]=1 。含義就是對於每一組數,取兩個數比大小要 1 1 次,對於剩下的 i 2 i-2 個數要 f [ i 2 ] f[i-2] 次,一次最大,一次最小,所以要 f [ i 2 ] + 1 + 2 = f [ i 2 ] + 3 f[i-2]+1+2=f[i-2]+3 次,n=3-10的資料分別是 3 , 4 , 6 , 7 , 9 , 10 , 12 , 13 3,4,6,7,9,10,12,13 ,帶入得A (好吧我也不是特別會)
10.B【解析】NOIP原題,不斷的出現重複和遞迴的結構十分相似。
11.A【解析】畫圖,略。
12.B【解析】對於我們所要求的S,相當於一個 10 10 位的二進位制位, 1 1 表示取, 0 0 表示不取,則共有 2 2 10 = 256 =256 種方案,或者暴力一點, C ( 0 , 10 ) + C ( 1 , 10 ) + C ( 2 , 10 ) + . . . + C ( 10 , 10 ) = 1024 C(0,10)+C(1,10)+C(2,10)+...+C(10,10)=1024 ,顯然這兩種方法都是可行的;對於T,顯然是10選7的組合數,即 C ( 7 , 10 ) = 120 C(7,10)=120 ,那麼 T / S = 120 / 1024 = 15 / 128 T/S=120/1024=15/128 ,選擇答案B。
13.B【解析】求10000的尤拉函式,根據唯一分解定理, 10000 = 2 10000=2 4 5 *5 4,那麼就可以直接根據公式, φ ( 10000 ) = 10000 × ( 1 1 / 2 ) × ( 1 1 / 5 ) = 4000 φ(10000)=10000×(1-1/2)×(1-1/5)=4000。
14.B【解析】樹狀陣列 l o w b i t lowbit 運算,求二進位制位有多少個 1 1 。當然考場上最簡單的方法莫過於帶一個數進去了,算完後就知道ACD算不出答案。
15.B【解析】結構類似於桶,先進後出,屬於資料結構棧。


問題求解

第一題.去了 沒去 沒去 沒下雨
【解析】
從中我們知道一個規律,如果 A B AB 都成立那麼 C C 成立,若C不成立,A和B中有一個成立的時候另一個便不成立。
因為丙去了,根據已知 可知丁不去。
根據 ,如果丁和甲同時不去,說明丙也不能去,而因為丁去了,只有讓甲去丙才能不去。
根據 ,如果乙去則丁去,當丁沒去說明乙也沒有去。
根據 ,如果下雨且乙不去那麼甲也不去,而乙去了,甲卻沒去,說明沒有下雨。
我們要根據已知去推,這也是一道比較簡單的邏輯題了。
第二題. 544 544
【解析】
我們從位數去考慮。
1位數: 1 1 個。只有一個數字 8 8 .
2位數:如果十位 1 , 2 , 3 , 4 , 5 , 6 , 7 , 9 1,2,3,4,5,6,7,9 ,那麼有 8 8 個(後面都接上1位的方案數);如果十位是 8 8 ,則有 10 10 個數字( 8 8 後接任意陣列均可)。共有 8 + 10 = 18 8+10=18 (個)
3位數:如果百位 1 , 2 , 3 , 4 , 5 , 6 , 7 , 9 1,2,3,4,5,6,7,9