国产精品久久久久久-国产精品久久久久久久久久直-国产精品久久久久久一级毛片-国产精品久久久久久影院-亚洲激情综合-亚洲激情专区

童程童美少兒編程教育

美國上市公司,專注少兒編程8周年

For investors

股價:  -- 美元   -- %

少兒編程 > 新聞活動 > 真題解析Ⅱ | CCF CSP-S 2019 提高級 C++語言真題及答案(附信奧真題庫)

真題解析Ⅱ | CCF CSP-S 2019 提高級 C++語言真題及答案(附信奧真題庫)

童程童美 2019-10-22

CSP-J/S是CCF創(chuàng)辦的CSP(軟件能力認證)中面向非專業(yè)級的軟件能力認證,也就是我們熟知的信息學奧賽,含金量高。以下為2019CSP-S(提高級)C++語言試題的解題分析~

摘要

2019CCF非專業(yè)級別軟件能力認證第一輪

(CSP-S)提高級C++語言試題A卷

(B卷與A卷僅順序不同)

認證時間:2019年10月19日

考生注意事項:

1、題紙共有10頁,答題紙共有1頁,滿分100分。請在答題紙上作答,寫在試題紙上的一律無效。

2、不得使用任何電子設備(如計算器、手機、電子詞典等)或查閱任何書籍資料。

一、單項選擇題(共15題,每題2分,共計30分;每題有且僅有一個正確選項)

1.若有定義:int a=7; float x=2.5,y=4.7;則表達式x+a%3*(int)(x+y)%2的值是:( )

A.0.000000          B.2.750000          C.2.500000          D.3.500000

答案:D

題目分析:基礎題目,數(shù)據(jù)類型和運算符優(yōu)先順序。x+a%3*(int)(x+y)%2轉化為式子為:

2.5+7%3*(int)(2.5+4.7)%2

= 2.5+7%3*(int)(7.2)%2

= 2.5+1*7%2

= 2.5+7%2

= 3.5

2.下列屬于圖像文件格式的有( )

A.WMV          B.MPEG          C.JPEG          D.AVI

答案:C

題目分析:計算機基礎題目。考前準備的知識點中有,多注意一下電腦信息也能知道。WMV、MPEG、AVI是視頻格式,JPEG是圖像格式。

3. 二進制數(shù)11 1011 1001 0111 和 01 0110 1110 1011 進行邏輯或運算的結果是( )

A.11 1111 1111 1101          B.11 1111 1111 1101

C.10 1111 1111 1111          D.11 1111 1111 1111

答案:D

題目分析:考前單獨強調總結的知識點中有位運算的內容。逐位做或運算,兩個數(shù)字中有一個1即得1,選D。

11 1011 1001 0111

01 0110 1110 1011

11 1111 1111 1111

4.編譯器的功能是( )

A.將源程序重新組合

B.將一種語言(通常是高級語言)翻譯成另一種語言(通常是低級語言)

C.將低級語言翻譯成高級語言

D.將一種編程語言翻譯成自然語言

答案:B

題目分析:編譯成計算機能夠理解的語言,計算機識別二進制0和1。編譯器的主要工作流程:源代碼 → 編譯 → 目標代碼 → 鏈接(dll庫等) → 生成可執(zhí)行程序 。

5.設變量x為float型且已賦值,則以下語句中能將x中的數(shù)值保留到小數(shù)點后兩位,并將第三位四舍五入的是( )

A.X=(x*100+0.5)/100.0          B.x=(int)(x*100+0.5)/100.0;

C.x=(x/100+0.5)*100.0          D.x=x*100+0.5/100.0;

答案:B

題目分析:類型轉換題目,強制轉換,比較簡單,課堂練習過。B選項。

也可以假設x=3.141,然后帶入計算:

(int)(3.141*100+0.5)/100.0

= (int)(314.1+0.5)/100.0

= (int)(314.6)/100.0

= 314/100

= 3.14

6. 由數(shù)字1,1,2,4,8,8所組成的不同的4位數(shù)的個數(shù)是( )

A.104          B.102          C.98          D.100

答案:B

題目分析:排列組合題,最后專項講解中有類似的。

不能直接A(6,4),要分情況討論:

(1)只有2個相同的數(shù)構成的4位數(shù),1、1、2、4;1、1、2、8;1、1、4、8;1、2、8、8;1、4、8、8;2、4、8、8組成。

每種有A(4,4)/A(2,2)=4×3=12(種)

共有12×6=72種.

(2)4個不同的數(shù)構成,只有1、2、4、8組成,有A(4,4)=4×3×2×1=24(種)

(3)2個重復的數(shù)字構成,只有1、1、8、8,有C(4,2)=6(種)

所以,共有72+24+6=102(種)

7.排序的算法很多,若按排序的穩(wěn)定性和不穩(wěn)定性分類,則( )是不穩(wěn)定排序。

A.冒泡排序          B.直接插入排序          C.快速排序          D.歸并排序

答案:C

題目分析:上課和復習時講過。選擇排序、快速排序、希爾排序、堆排序不是穩(wěn)定的排序算法,而冒泡排序、插入排序、歸并排序和基數(shù)排序是穩(wěn)定的排序算法。

8. G是一個非連通無向圖(沒有重邊和自環(huán)),共有28條邊,則該圖至少有( )個頂點

A.10          B.9          C.11          D.8

答案:B

題目分析:圖的知識點。前幾天練習的題有相似的。也可以驗證答案。題目要求:沒有自環(huán),而且是非連通圖。一個n 階的完全無向圖含有n*(n-1)/2 條邊,n=8的時候是8*7/2=28,意味著8個頂點最多有28條邊,第9個點可以單獨存在,不連通,可滿足條件。

9.一些數(shù)字可以顛倒過來看,例如0、1、8顛倒過來看還是本身,6顛倒過來是9,9顛倒過來看還是6,其他數(shù)字顛倒過來都不構成數(shù)字。類似的,一些多位數(shù)也可以顛倒過來看,比如106顛倒過來是901。假設某個城市的車牌只有5位數(shù)字,每一位都可以取0到9。請問這個城市有多少個車牌倒過來恰好還是原來的車牌,并且車牌上的5位數(shù)能被3整除?( )

A.40          B.25          C.30          D.20

答案:B

題目分析:排列組合題。枚舉每位數(shù)字的可能性。顛倒后還得是個數(shù)字,因此前2位有0,1,8,6,9,5種選擇,第3位只能放0,1,8,后2位由前2位決定。而0,1,8模3正好余0,1,2,所以給定其他4位,第3位有且僅有1種選擇,總數(shù)=5*5*1*1*1=25。

10.一次期末考試,某班有15人數(shù)學得滿分,有12人語文得滿分,并且有4人語、數(shù)都是滿分,那么這個班至少有一門得滿分的同學有多少人?( )

A.23          B.21          C.20          D.22

答案:A

題目分析:容斥原理,初賽課和沖刺課都講過。總滿分人數(shù)=數(shù)學滿分+語文滿分-語文數(shù)學滿分=15+12-4=23。

11.設A和B是兩個長為n的有序數(shù)組,現(xiàn)在需要將A和B合并成一個排好序的數(shù)組,請問任何以元素比較作為基本運算的歸并算法,在最壞情況下至少要做多少次比較?( )

A.n2           B.n㏒n          C.2n          D.2n-1

答案:D

題目分析:往年考過。也可枚舉n=1,一共2個數(shù)字,只需要比較1次,AD中選,n=2再驗證……

12.以下哪個結構可以用來存儲圖( )

A.棧          B.二叉樹          C.隊列          D.鄰接矩陣

答案:D

題目分析:可用排除法,講過數(shù)據(jù)結構的分類。

13.以下哪些算法不屬于貪心算法?( )

A.Di.jkstra算法          B.Floyd算法

C.Prim算法          D.Kruskal算法

答案:B

題目分析:提高組課上講過。Floyd是枚舉所有情況。

14.有一個等比數(shù)列,共有奇數(shù)項,其中第一項和最后一項分別是2和118098,中間一項是486,請問一下哪個數(shù)是可能的公比?( )

A.5          B.3          C.4          D.2

答案:B

題目分析:可以枚舉答案。等比數(shù)列,首項是2,公比是5,末項不可能是118098;

公比是4,486%4!=0;公比是2,可演算2的n次方不是118098。排除法,選B。

15.有正實數(shù)構成的數(shù)字三角形排列形式如圖所示。第一行的數(shù)為a1,1,第二行a2,1,a2,2,第n行的數(shù)為an,1,an,2,…,an,n。從a1,1開始,每一行的數(shù)ai,j只有兩條邊可以分別通向下一行的兩個數(shù)ai+1,j和ai+1,j+1。用動態(tài)規(guī)劃算法找出一條從a1,1向下通道an,1,an,2,…,an,n中某個數(shù)的路徑,使得該路徑上的數(shù)之和最大。

真題解析Ⅱ | CCF CSP-S 2019 提高級 C++語言真題及答案

令C[i][j]是從a1,1到ai,j的路徑上的數(shù)的最大和,并且C[i][0]= C[0][j]=0,則C[i][j]=( )

A.max{C[i-1][j-1],C[i-1][j]}+ ai,j

B.C[i-1][j-1]+C[i-1][j]

C.max{C[i-1][j-1],c[i-1][j]}+1

D.max{C[i][j-1],C[i-1][j]}+ ai,j

答案:A

題目分析:dp基礎題:數(shù)塔,基礎講過,路徑只能從左上方和上方過來。

二、閱讀程序(程序輸入不超過數(shù)組或字符串定義的范圍;判斷題正確填?,錯誤填?;除特殊說明外,判斷題1.5分,選擇題4分,共計40分)

1.

真題解析Ⅱ | CCF CSP-S 2019 提高級 C++語言真題及答案

概述:基礎題,大家模擬即可,可以帶入幾組數(shù)據(jù)執(zhí)行。例如:

5

1 2 3 4 5

判斷題

1)(1分)第16行輸出ans時,ans的值一定大于i。( )

答案:×

題目分析:第一次輸出,ans=i。(猜題小技巧:說“一定”的,很可能錯。)

2) 1分)程序輸出的ans小于等于n。( )

答案:√

題目分析:13行i<=n,15行ans<n才會自增,所以不會超過n。

3)若將第12行的“<”改為“!=”,程序輸出的結果不會改變。( )

答案:√

題目分析:最后結果不變。

4)當程序執(zhí)行到第16行時,若ans-i>2,則a[i+1]≦a[i]。( )

答案:√

題目分析:14行,由于ans是第一個大于a[i]的,所以a[i+1]..a[ans-1]都不超過a[i],結論成立。

5)(3分)若輸入的a數(shù)組是一個嚴格單調遞增的數(shù)列,此程序的時間復雜度是( )。

A.0(logn)          B.0(n2)

C.0(nlog n)          D. 0(n)

答案:D

題目分析:根據(jù)舉例,單調增,復雜度為O(n)

6)最壞情況下,此程序的時間復雜度是( )。

A. 0(n2)          B. 0(logn)

C. 0(n)            D. 0(nlog n)

答案:A

題目分析:最壞情況下,while循環(huán)會一直執(zhí)行n,復雜度為1+2+..+n=O(n^2)

2.

真題解析Ⅱ | CCF CSP-S 2019 提高級 C++語言真題及答案

分析:getroot函數(shù)是并查集中的find函數(shù)啊。下面就好辦了。

判斷題

1)(1分)輸入的a和b值應在[0,n-1]的范圍內。( )

答案:√

題目分析:找a、b的根結點,下標范圍為0到n-1,所以a、b范圍也在0到n-1。

2) (1分)第16行改成“fa[i]=0;”, 不影響程序運行結果。( )

答案:×

題目分析:初始化,標準寫法。

3) 若輸入的a和b值均在[0, n-1]的范圍內,則對于任意0≤i<n,都有0≤fa[i]<n。( )

答案:√

題目分析:并查集知識。

4) 若輸入的a和b值均在[0,n-1]的范圍內,則對于任意≤i<n,都有≤cnt[i] ≤n。( )

答案:×

題目分析:cnt表示集合數(shù)量。

選擇題

5)當n等于50時,若a、b的值都在[0,49]的范圍內,且在第25行時總是不等于y,那么輸出為( )

A.1276          B.1176          C.1225          D.1250

答案:C

題目分析:x和y都不同,每次都是單獨一個去和整體合并。此時cnt[y]增加cnt[x]的值,也就是加1。1*1+1*2+...1*49=50*49/2=1225。

6)此程序的時間復雜度是( )

A. O(n)          B. O(logn)          C. O(n)          D. O(nlogn)

答案:C

題目分析:并查集getroot函數(shù)沒有路徑壓縮,單次查找最壞為O(n)。總效率為O(n^2)。

3.本題t是s的子序列的意思是:從s中刪去若干個字符,可以得到t;特別的,如果s=t,那么t也是s的子序列;空串是任何串的子序列。例如“acd”是“abcde”的子序列,“acd”是“acd”的子序列,但“acd”不是“abcde”的子序列。

s[x..y]表示s[x]…s[y]共y-x+1個字符構成的字符串,若x>y則s[x..y]是空串。t[x..y]同理。

真題解析Ⅱ | CCF CSP-S 2019 提高級 C++語言真題及答案

注意:是子序列,而不是子串。可以舉例輸入兩個字符串,進行驗證,即可模擬出pre數(shù)組和suf數(shù)組的內容。Pre數(shù)組保存的是前面匹配了多少個字符,suf保存的是從后面比較匹配了多少個字符。ans是匹配字符之間的距離最大值。

例如 abca ac

判斷題

1.(1分)程序輸出時,suf數(shù)組滿足:對任意0≤i<slen,suf[i] ≤suf[i+1].( )

答案:√

題目分析:15到19行程序中,循環(huán)變量初值是從大到小,從最后一個位置開始判斷,可以得出該結論。

2. (2分) 當t是s的子序列時,輸出一定不為0.( )

答案:×

題目分析:如果s==t時,結果是0。

3.(2分)程序運行到第23行時,“j-i-1”一定不小于0.( )

答案:×

題目分析:這個不一定,如果22行條件不成立,j=i=0,j-i-1就可能是負數(shù)。

4 (2分)當t時s的子序列時,pre數(shù)組和suf數(shù)組滿足:對任意0≤i<slen,pre[i]>suf[i+1]+1.( )

答案:×

題目分析:這個不一定。如果t==s='cc'代入檢驗,有的i可以pre[i]==suf[i+1]+1。

選擇題

5.若tlen=10,輸出為0,則slen最小為( )

A. 10          B. 12          C.0          D.1

答案:D

題目分析:求的是最小可能的長度。s的長度為1的時候,t=10,是空串,輸出是0。

6.若tlen=10,輸出為2,則slen最小為( )

A. 0          B.10          C.12          D.1

答案:C

題目分析:輸出是2說明存在子序列。s串刪去兩個元素后至少為10,因此刪前至少為12。

三、完善程序(單選題,每題3分,共計30分)

1.(匠人的自我修養(yǎng))一個匠人決定要學習n個新技術,要想成功學習一個新技術,他不僅要擁有一定的經(jīng)驗值,而且還必須要先學會若干個相關的技術。學會一個新技術之后,他的經(jīng)驗值會增加一個對應的值。給定每個技術的學習條件和習得后獲得的經(jīng)驗值,給定他已有的經(jīng)驗值,請問他最多能學會多少個新技術。

輸入第一行有兩個數(shù),分別為新技術個數(shù)n(1≤n≤103),以及已有經(jīng)驗值(≤10^7)。

接下來n行。第i行的兩個整數(shù),分別表示學習第i個技術所需的最低經(jīng)驗值(≤10^7),以及學會第i個技術后可獲得的經(jīng)驗值(≤10^4)。

接下來n行。第i行的第一個數(shù)mi(0≤mi<n),表示第i個技術的相關技術數(shù)量。緊跟著m個兩兩不同的數(shù),表示第i個技術的相關技術編號,輸出最多能學會的新技術個數(shù)。

下面的程序已O(n^2)的時間復雜完成這個問題,試補全程序。

真題解析Ⅱ | CCF CSP-S 2019 提高級 C++語言真題及答案

分析:學技術有先后,經(jīng)驗值還得夠,根據(jù)已有的經(jīng)驗值選擇新技術,也可以用有向圖分析理解。可以用二維數(shù)組實現(xiàn)。n小于1000。

1) ①處應填( )

A. unlock[i]<=0

B. unlock[i]>=0

C. unlock[i]==0

D. unlock[i]==-1

答案:C

試題分析:學習新技術的條件之一。unlock判斷是否能解鎖任務。解鎖條件是需要0個前提任務。

2) ②處應填( )

A. threshold[i]>points

B. threshold[i]>=points

C. points>threshold[i]

D. points>=threshold[i]

答案:D

試題分析:學習新技術的條件之一。,經(jīng)驗點要夠,大于等于任務的需求點。

3) ③處應填( )

A. target = -1

B. --cnt[target]

C. bbonus[target]

D. points += bonus[target]

答案:D

題目分析:經(jīng)驗點增加。條件都滿足,可以學習新技術了。

4) ④處應填( )

A. cnt [child[target][i]] -=1

B. cnt [child[target][i]] =0

C. unlock[child[target][i]] -= 1

D. unlock[child[target][i]] =0

答案:C

題目分析:學習下一個技術需要解鎖的任務數(shù),解鎖一個任務,unlock值都要減1。

5) ⑤處應填( )

A. unlock[i] = cnt[i]

B. unlock[i] =m

C. unlock[i] = 0

D. unlock[i] =-1

答案:B

題目分析:“開門”階段,讀入信息,由題意可知,m是任務依賴的任務數(shù),當unlock[i]為-1時表示解鎖成功。其他選項沒有意義。

2.(取石子) Alice和Bob兩個人在玩取石子游戲,他們制定了n條取石子的規(guī)則,第i條規(guī)則為:如果剩余的石子個數(shù)大于等于a[i]且大于等于b[i],那么她們可以取走b[i]個石子。他們輪流取石子。如果輪到某個人取石子,而她們無法按照任何規(guī)則取走石子,那么他就輸了,一開始石子有m個。請問先取石子的人是否有必勝的方法?

輸入第一行有兩個正整數(shù),分別為規(guī)則個數(shù)n(1≤n≤64),以及石子個數(shù)m(≤10^7)。

接下來n行。第i行有兩個正整數(shù)a[i]和b[i]。(1≤a[i]≤10^7,1b[i]≤64)

如果先取石子的人必勝,那么輸出“Win”,否則輸出“Loss”。

提示:

可以使用動態(tài)規(guī)劃解決這個問題。由于b[i]不超過64,所以可以使用位無符號整數(shù)去壓縮必要的狀態(tài)。

status是勝負狀態(tài)的二進制壓縮,trans是狀態(tài)轉移的二進制壓縮。

試補全程序。

代碼說明:

“~”表示二進制補碼運算符,它將每個二進制位的0變成1、1變?yōu)?;

而“^”表示二進制異或運算符,它將兩個參與運算的數(shù)重的每個對應的二進制位一一進行比較,若兩個二進制位相同,則運算結果的對應二進制位為0,反之為1。

U11標識符表示它前面的數(shù)字是unsigned long long 類型。

真題解析Ⅱ | CCF CSP-S 2019 提高級 C++語言真題及答案

題目分析:博弈論類的問題,講過。位運算,考前專門復習過。題目里說了,用動態(tài)規(guī)劃實現(xiàn),并且用位運算代替數(shù)組實現(xiàn)。

1)①處應填( )

A.0

B .~0ull

C.~0ull^1

D.1

答案:C

題目分析:根據(jù)題目要求,狀態(tài)壓縮到64位,A和D默認是32位整數(shù),所以B或者C。最開始石子是0個,應該是輸?shù)臓顟B(tài),所以最低位不能是1,選C。

2)處應填( )

A.a[j]< i

B.a[j]==i

C.a[j] !=i

D.a[j] >i

答案:B

題目分析:n個條件范圍內,符合題目要求的石子個數(shù),即可發(fā)生狀態(tài)轉移,選B。并且根據(jù)代碼,狀態(tài)轉移到trans變量。增加狀態(tài),位運算|實現(xiàn)加的功能,下一個選A。

3)③處應填( )

A. trans |= 1ull <<(b[j] - 1)

B. status |= 1ull << (b[j]- 1)

C. status += 1ull << (b[j]-1)

D. trans += 1ull<< (b[j]-1)

答案:A

4)④處應填( )

A. ~status|trans

B. status&trans

B. status|trans

D. ~status&trans

答案:D

題目分析:判斷win的值。先手必勝,對當前狀態(tài)和以前狀態(tài)做判斷。

5)⑤處應填( )

A. trans = status | trans ^win

B. status = trans >> 1^win

C. trans = status ^trans |win

D. status =status <<1^win

答案:D

更新status狀態(tài)值,將當前win值記錄到status中。

以上是2019CSP-S(提高級)C++語言題目的解題分析,參加此次考試的學員們,你們都答對了嗎?另,關注童程童美微信公眾號,后臺回復【真題】即可免費領取“信息學奧賽歷年真題資料包”哦~

童程童美微信公眾號

CSP-J/S是CCF創(chuàng)辦的CSP(軟件能力認證)中面向非專業(yè)級的軟件能力認證,也就是我們熟知的信息學奧賽,含金量高。

童程童美信息學奧賽課程是由專業(yè)教研團隊與北京知名學府聯(lián)合研發(fā),課程內容循序漸進,指導學員圍繞每個考試階段的重點知識進行學習;教研團隊強大專業(yè),授課老師經(jīng)驗充足,確保準確把握競賽方向和特點,保證學員學習進度和質量,助力學員在測評中取得優(yōu)異成績!

主站蜘蛛池模板: 一区二区三区在线观看免费 | 91视频国产精品 | 国产亚洲一级精品久久 | 久久国产精品1区2区3区网页 | 99在线精品日韩一区免费国产 | 久久精品视频网站 | 国产成人精品一区二区视频 | 免费观看精品视频999 | 国产第一页亚洲 | 久久久精品免费 | 久久久久久综合一区中文字幕 | 深夜免费小视频 | 99久在线精品99re6视频 | 成年黄网站色视频免费观看 | 久久这里只有精品免费看青草 | 国产精品路线1路线2路线 | 一区二三区国产 | 四虎影视国产精品一区二区 | 色老板在线视频观看 | 久久久国产精品va麻豆 | 久久久久久久久一级毛片 | 在线国产91 | 国产精品福利在线观看 | 欧美人xxxx另类 | 久久福利青草狠狠午夜 | 看全色黄大色黄大片色黄看的 | 中文字幕久热精品视频免费 | 久久久久久久久亚洲 | 亚洲国产综合精品中文字幕 | 欧美成人性色区 | 亚洲精品在线网站 | 婷婷狠狠 | 日韩午夜在线视频 | 一本久久道 | 91网址在线播放 | 在线观看一区二区精品视频 | 久久久久久综合一区中文字幕 | 国产精品400部自产在线观看 | 国产在线观看一区二区三区四区 | 久久黄色影片 | 亚洲一区二区三区高清 |