歷屆初賽真題詳解

2021-08-16 20:00:10 字數 3131 閱讀 7328

第一題

假設有兩種微生物 x 和 y

x出生後每隔3分鐘**一次(數目加倍),y出生後每隔2分鐘**一次(數目加倍)。

乙個新出生的x,半分鐘之後吃掉1個y,並且,從此開始,每隔1分鐘吃1個y。

現在已知有新出生的 x=10, y=89,求60分鐘後y的數目。

如果x=10,y=90  呢?

本題的要求就是寫出這兩種初始條件下,60分鐘後y的數目。

題目的結果令你震驚嗎?這不是簡單的數字遊戲!真實的生物圈有著同樣脆弱的性質!也許因為你消滅的那只 y 就是最終導致 y 種群滅絕的最後一根稻草!

請忍住悲傷,把答案寫在「解答.txt」中,不要寫在這裡!

**如下:

#include

int main()

printf("%d",y);

}return 0;

}執行結果:

第二題

福爾摩斯到某古堡探險,看到門上寫著乙個奇怪的算式:

abcde * ? = edcba

他對華生說:「abcde應該代表不同的數字,問號也代表某個數字!」

華生:「我猜也是!」

於是,兩人沉默了好久,還是沒有算出合適的結果來。

請你利用計算機的優勢,找到破解的答案。

把 abcde 所代表的數字寫出來。

答案寫在「解答.txt」中,不要寫在這裡!

暴力**如下:

#include

int main()}}

}}}   

return 0;

}第三題

有一群海盜(不多於20人)

,在船上比拼酒量。過程如下:開啟一瓶酒,所有在場的人平分喝下,有幾個人倒下了。再開啟一瓶酒平分,又有倒下的,再次重複...... 直到開了第4瓶酒,坐著的已經所剩無幾,海盜船長也在其中。當第4瓶酒平分喝下後,大家都倒下了。

等船長醒來,發現海盜船擱淺了。他在航海日誌中寫到:「......昨天,我正好喝了一瓶.......奉勸大家,開船不喝酒,喝酒別開船......」

請你根據這些資訊,推斷開始有多少人,每一輪喝下來還剩多少人。

如果有多個可能的答案,請列出所有答案,每個答案佔一行。

格式是:人數,人數,...

例如,有一種可能是:20,5,4,2,0

答案寫在「解答.txt」中,不要寫在這裡!

暴力!!!

**如下:

#include

int main()}}

}return 0;

}第四題

某電視台舉辦了低碳生活大獎賽。題目的計分規則相當奇怪:

每位選手需要回答10個問題(其編號為1到10),越後面越有難度。

答對的,當前分數翻倍;答錯了則扣掉與題號相同的分數(選手必須回答問題,不回答按錯誤處理)。 

每位選手都有乙個起步的分數為10分。

某獲勝選手最終得分剛好是100分,如果不讓你看比賽過程,你能推斷出他(她)哪個題目答對了,哪個題目答錯了嗎? 

如果把答對的記為1,答錯的記為0,則10個題目的回答情況可以用僅含有1和0的串來表示。例如:0010110011 就是可能的情況。

你的任務是算出所有可能情況。每個答案佔一行。

答案寫在「解答.txt」中,不要寫在這裡!

**如下;

#include

int main()

if(mark==100)

}return 0;

}第五題

對乙個方陣轉置,就是把原來的行號變列號,原來的列號變行號

例如,如下的方陣:

1 2  3  4

5 6  7  8

9 1011 12

13 14 15 16

轉置後變為:

1 5  9 13

2  6 1014

3  7 1115

4  8 1216

但,如果是對該方陣順時針旋轉(不是轉置),卻是如下結果:

13 9  5  1

14 10 6  2

15 11 7  3

16 12 8  4

下面的**實現的功能就是要把乙個方陣順時針旋轉。

void rotate(int* x, int rank)

for(i=0;i

free(y);

}int main(int argc, char* argv)

,,,};

intrank = 4;

rotate(&x[0][0],rank);

for(inti=0; i

printf("\n");

}return0;

}請分析**邏輯,並推測劃線處的**。

答案寫在 「解答.txt」 檔案中

注意:只寫劃線處應該填的內容,劃線前後的內容不要抄寫。

第九題

足球比賽具有一定程度的偶然性,弱隊也有戰勝強隊的可能。

假設有甲、乙、丙、丁四個球隊。根據他們過去比賽的成績,得出每個隊與另乙個隊對陣時取勝的概率表:

甲  乙  丙  丁  

甲   -  0.10.3 0.5

乙 0.9  -   0.70.4

丙 0.7  0.3 -  0.2

丁 0.5  0.6 0.8 -

資料含義:甲對乙的取勝概率為0.1,丙對乙的勝率為0.3,...

現在要舉行一次錦標賽。雙方抽籤,分兩個組比,獲勝的兩個隊再爭奪冠軍。(參見【1.jpg】)

請你進行10萬次模擬,計算出甲隊奪冠的概率。

注意:請仔細除錯!您的程式只有能執行出正確結果的時候才有機會得分!

在評卷時使用的輸入資料與試卷中給出的例項資料可能是不同的。

請把所有函式寫在同乙個檔案中,除錯好後,存入與【考生資料夾】下對應題號的「解答.txt」中即可。

相關的工程檔案不要拷入。

源**中不能能使用諸如繪圖、win32api、中斷呼叫、硬體操作或與作業系統相關的api。

允許使用stl類庫,但不能使用mfc或atl等非ansi c++標準的類庫。例如,不能使用cstring型別(屬於mfc類庫)。

歷屆CSP真題題解 CSP刷真題之路

2020 12 題目編號 題解鏈結 csp202012 1 期末 之安全指數 csp202012 1 期末 之安全指數題解 csp202012 2 期末 之最佳閾值 csp202012 2 期末 之最佳閾值題解 csp202012 3 帶配額的檔案系統 csp202012 3 帶配額的檔案系統題解 ...

藍橋杯歷屆真題 翻硬幣

原題 小明正在玩乙個 翻硬幣 的遊戲。桌上放著排成一排的若干硬幣。我們用 表示正面,用 o 表示反面 是小寫字母,不是零 比如,可能情形是 oo oooo 如果同時翻轉左邊的兩個硬幣,則變為 oooo oooo 現在小明的問題是 如果已知了初始狀態和要達到的目標狀態,每次只能同時翻轉相鄰的兩個硬幣,...

藍橋歷屆真題 連號區間數

試題 歷屆試題 連號區間數 時間限制 1.0s 記憶體限制 256.0mb 問題描述 小明這些天一直在思考這樣乙個奇怪而有趣的問題 在1 n的某個全排列中有多少個連號區間呢?這裡所說的連號區間的定義是 如果區間 l,r 裡的所有元素 即此排列的第l個到第r個元素 遞增排序後能得到乙個長度為r l 1...