2024年06月CCF-GESP編程能力等級認證Python編程五級真題解析

本文收錄于專欄《Python等級認證CCF-GESP真題解析》,專欄總目錄:點這里,訂閱后可閱讀專欄內所有文章。

一、單選題(每題 2 分,共 30 分)

第 1 題

在Python中,print((c for c in “GESP”))的輸出是( )。
A. (‘G’, ‘E’, ‘S’, ‘P’)
B. [‘G’, ‘E’, ‘S’, ‘P’]
C. {‘G’, ‘E’, ‘S’, ‘P’}
D. 以上選項均不正確

答案:D

第 2 題

下面有關快速排序的說法,錯誤的是( )。
A. 快速排序算法通常采用遞歸實現。
B. 快速排序算法是一種穩定排序算法。
C. 如果被排序數組或者list已排序或逆序,其時間復雜度是 O ( N 2 ) O(N^2) O(N2)
D. 快速排序是一種原地(in-place)排序算法。

答案:B

第 3 題

內排序有不同的類別,從排序算法的實現思路上考慮,下面哪種排序算法和插入排序是同一類?( )
A. 希爾排序
B. 快速排序
C. 堆排序
D. 冒泡排序

答案:A

第 4 題

下面Python代碼用于求斐波那契數列,該數列第1、2項為1,以后各項均是前兩項之和。函數Fibo()屬于()。

def Fibo(N):if N == 1 or N == 2:return 1fiboList = [1, 1]for i in range(2, N):fiboList.append(fiboList[i - 1] + fiboList[i - 2])return fiboList[N-1]

A. 枚舉算法
B. 貪心算法
C. 迭代算法
D. 遞歸算法

答案:C

第 5 題

下面Python代碼用于將輸入金額換成最少幣種組合方案,其實現算法是( )。

def findCoins(coins, Money):coins_used = []for coin in coins:while Money >= coin:coins_used.append(coin)Money -= coinreturn coins_usedcoins = [100, 50, 20, 10, 5, 2, 1] #貨幣種類,單位相同
M = int(input()) #輸入換算的金額
coins_needed = find_coins(coins, M)result = [(c,coins_needed.count(c)) for c in coins]
result = [x for x in result if x[1] > 0]

A. 枚舉算法
B. 貪心算法
C. 迭代算法
D. 遞歸算法

答案:B

第 6 題

有關下面Python的代碼,錯誤的是( )。

def count_if(iterData,*,key=None):if key == None:return len(iterData)Count = 0for i in iterData:Count += bool(key(i))return Count

A. 執行 print(count_if(range(100))) 將輸出 100
B. 執行 print(count_if(range(-10,10), key = abs)) 將輸出 19
C. 執行 print(count_if(range(-100,10),key = lambda x:x > 5)) 將輸出 4
D. 代碼 Count += bool(key(i)) 存在錯誤

答案:D

第 7 題

在下面的Python代碼中,最后一行用于輸出小于0的list,橫線處不能填入的代碼是( )。

def LT(a, b):return a < blstData = list(range(-100,100))
print(___________________________)

A. [x for x in lstData if x < 0 ]
B. list(filter(lambda x: x < 0, lstData))
C. list(filter(LT(x,0), lstData))
D. [x for x in lstData if LT(x, 0)]

答案:C

第 8 題

漢字的unicode編碼界于0x4E00和0x9FA5之間。下面Python的代碼用于讀取紅樓們和水滸傳文本。如果要能完整閱讀這兩本小說,求出需要認識的漢字集合,橫線處應填入代碼是( )。

shzFile = open("水滸傳.txt", "r", encoding = "utf-8")
hlmFile = open("紅樓夢.txt", "r", encoding = "utf-8")
sSet = set(shzFile.read())
hSet = set(hlmFile.read())
shzFile.close()
hlmFile.close()print(________________________________)

A. {x for x in (sSet + hSet) if 0x4E00 <= ord(x) <= 0x9FA5 }
B. {x for x in (sSet | hSet) if 0x4E00 <= x <= 0x9FA5 }
C. {x for x in (sSet + hSet) if 0x4E00 <= x <= 0x9FA5 }
D. {x for x in (sSet | hSet) if 0x4E00 <= ord(x) <= 0x9FA5 }

答案:D

第 9 題

求回文子字符串,如:在ABCDDCBAXz中,DD、CDDC、BCDDCB、ABCDDCBA均為回文子字符串。下面Python代碼是其實現,橫線處應填入的代碼是( )。

srcStr = input()symList = [] #保存回文子字符串
for i in range(len(srcStr)):for j in range(i + 2, len(srcStr) + 1):subStr = ___________if subStr == _____________:symList.append(subStr)for i in sorted(symList, key = lambda x: len(x)):print(i)

A. srcStr[i:j] , subStr[::-1]
B. srcStr[i:j] , subStr[j:i:-1]
C. srcStr[i+2:j] , subStr[j-1:i:-1]
D. srcStr[i:j+2] , subStr[j-1:i-1:-1]

答案:A

第 10 題

上面代碼的時間復雜度是( )。
A. O ( l o g N ) O(logN) O(logN)
B. O ( N l o g N ) O(NlogN) O(NlogN)
C. O ( N ) O(N) O(N)
D. O ( N 2 ) O(N^2) O(N2)

答案:A

第 11 題

有關下面Python代碼的說法,錯誤的是( )。

def Sort(lst):for i in range(1, len(lst)):key = lst[i]j = i - 1while j >= 0 and key < lst[j]:lst[j + 1] = lst[j]j -= 1lst[j + 1] = key
lst = [4,5,13,2,7,10,1,3,8,11,6,9,12]
lst = Sort(lst)
print("sorted list:", lst)

A. 該段代碼是插入排序算法的實現
B. 如果lst完全有序,則時間復雜度為
C. 如果lst完全逆序,則時間復雜度為
D. 由于Sort()函數沒有返回值,沒有最終達到排序效果

答案:D

第 12 題

下面Python函數nGram()用于逐一從字符串中截取n個字符,如:nGram(“ABCDEF”,2)將逐一截取為AB、BC、CD、DE、EF,如:nGram(“ABCDEF”,3)將逐一截取為ABC、BCD、CDE、DEF,并統計每種截取的數量,橫線處應填入代碼是( )。

def nGram(S,n):Result = {}#保存截取字符串及其數量for i in range(________________):nChar = ________________Result[nChar] = Result.get(nChar,0) + 1return Result

A. len(S)-n , S[i:n]
B. len(S)-n+1 , S[i:i+n]
C. len(S) , S[i:i+n]
D. len(S)-n , S[i:i+n]

答案:B

第 13 題

上題代碼的時間復雜度是( )。
A. O ( l o g N ) O(logN) O(logN)
B. O ( N l o g N ) O(NlogN) O(NlogN)
C. O ( N ) O(N) O(N)
D. O ( N 2 ) O(N^2) O(N2)

答案:C

第 14 題

下面是埃氏素數篩的Python實現,橫線上應填入的代碼是( )。

def listPrime(N):primeList = list(range(N+1))primeList[0] = primeList[1] = Falsefor i in range(2,int(N ** 0.5) + 1):if primeList[i] != False:for j in range(_____________):primeList[j] = Falsereturn [x for x in primeList if x != False]

A. i + i, N + 1, 2
B. i * i, N + 1, i
C. i * i, N, i * i
D. i, N + 1, i

答案:B

第 15 題

上題代碼的時間復雜度是( )。
A. O ( N 2 ) O(N^2) O(N2)
B. O ( N l o g N ) O(NlogN) O(NlogN)
C. O ( N l o g l o g N ) O(NloglogN) O(NloglogN)
D. O ( N ) O(N) O(N)

答案:C

二、判斷題(每題 2 分,共 20 分)

第 16 題

在程序設計中,i * i的效率通常比i ** 2 更高。( )

答案:正確

第 17 題

求解指定正整數范圍內所有質數,采用線性篩算法比埃氏篩效率更高。( )

答案:正確

第 18 題

Python沒有指針語法,不能實現C++中涉及指針的算法。( )

答案:錯誤

第 19 題

如果將雙向鏈表的最后一個元素指向第一個元素,則構成環狀鏈表。( )

答案:正確

第 20 題

鏈表不能采用快速排序或堆排序,但可以采用插入排序。( )

答案:正確

第 21 題

在Python中,set或dict因為存儲時即自動排序,因此可以用二分法查找,時間復雜度為 O ( l o g N ) O(logN) O(logN)。( )

答案:錯誤

第 22 題

如果自定義class已經定義了 __lt__() 魔術方法,則包含該類實例的數據結構,則將自動支持內置函數sorted()。( )

答案:正確

第 23 題

歸并排序和快速排序都采用遞歸實現,也都是不穩定排序。( )

答案:錯誤

第 24 題

下面的Python代碼能實現十進制正整數N轉換為2、8、10、16,可適用于16進制以內進制。其中n和ds分別表示將轉換的數以及目標進制。( )

n,ds = map(int,input().split())
rst = "" #保存轉換結果digDict = {i:c for i,c in enumerate("0123456789ABCDEF")}
while n != 0:rst = digDict[n % ds] + rstn //= ds
print(rst)

答案:正確

第 25 題

Python代碼 print(sorted(range(10),key=lambda x:x%5)) 執行時將報錯。( )

答案:錯誤

三、編程題(每題 25 分,共 50 分)

第 26 題

試題名稱:黑白格
時間限制:1.0 s
內存限制:512.0 MB
題面描述
小楊有一個 n n n m m m 列的網格圖,其中每個格子要么是白色,要么是黑色。
小楊想知道至少包含 k k k 個黑色格子的最小子矩形包含了多少個格子。
輸入格式
第一行包含三個正整數 n , m , k n,m,k n,m,k,含義如題面所示。
之后 n n n 行,每行一個長度為 m m m 01 01 01 串,代表網格圖第 i i i 行格子的顏色,如果為 0 0 0,則對應格子為白色,否則為黑色。
輸出格式
輸出一個整數,代表至少包含 k k k 個黑色格子的最小子矩形包含格子的數量,如果不存在則輸出 0 0 0
樣例1

4 5 5
00000
01111
00011
00011
6

樣例解釋
對于樣例1,假設 ( i , j i,j i,j) 代表第 i i i 行第 j j j 列,至少包含 5 5 5 個黑色格子的最小子矩形的四個頂點為 (2,4),(2,5),(4,4),(4,5),共包含 6 6 6 個格子。
數據范圍
在這里插入圖片描述

對于全部數據,保證有 1 ≤ n , m ≤ 100 , 1 ≤ k ≤ n × m 1 ≤ n,m ≤ 100,1 ≤ k ≤ n × m 1n,m100,1kn×m
參考程序

N = 110
w = [[0] * N for _ in range(N)]
sum_w = [[0] * N for _ in range(N)]def main():n, m, k = map(int, input().split())for i in range(1, n+1):s = input()for j in range(1, m+1):w[i][j] = int(s[j-1])sum_w[i][j] = sum_w[i][j-1] + w[i][j]ans = 0for i in range(1, m+1):for j in range(i, m+1):num = []now = 0for l in range(1, n+1):tmp = sum_w[l][j] - sum_w[l][i-1]now += tmpnum.append(now)if now >= k:if ans == 0:ans = (j-i+1) * lelse:ans = min(ans, (j-i+1) * l)L, R = 1, lwhile L < R:mid = (L + R + 1) // 2if now - num[mid-1] >= k:L = midelse:R = mid - 1if now - num[L-1] >= k:if ans == 0:ans = (j-i+1) * (l-L)else:ans = min(ans, (j-i+1) * (l-L))print(ans)if __name__ == "__main__":main()

第 27 題

試題名稱:小楊的幸運數字
時間限制:1.0 s
內存限制:512.0 MB
題面描述
小楊認為他的幸運數字應該恰好有兩種不同的質因子,例如, 12 = 2 × 2 × 3 12=2×2×3 12=2×2×3 的質因子有 2 , 3 2,3 2,3,恰好為兩種不同的質因子,因此 12 12 12是幸運數字,而 30 = 2 × 3 × 5 30=2×3×5 30=2×3×5 的質因子有 2 , 3 , 5 2,3,5 2,3,5,不符合要求,不為幸運數字。
小楊現在有 n n n 個正整數,他想知道每個正整數是否是他的幸運數字。
輸入格式
第一行包含一個正整數 n n n,代表正整數個數。
之后 n n n 行,每行一個正整數。
輸出格式
輸出 n n n 行,對于每個正整數,如果是幸運數字,輸出 1 1 1,否則輸出 0 0 0
樣例1

3
7
12
30
0
1
0

樣例解釋
7 7 7的質因子有 7 7 7,只有一種。
12 12 12的質因子有 2 , 3 2,3 2,3 ,恰好有兩種。 ,
30 30 30的質因子有 2 , 3 , 5 2,3,5 2,3,5,有三種。 , ,
數據范圍
在這里插入圖片描述

對于全部數據,保證有 1 ≤ n ≤ 1 0 4 1≤n≤10^4 1n104,每個正整數 a i a_i ai? 滿足 2 ≤ a i ≤ 1 0 6 2≤a_i≤10^6 2ai?106

參考程序

N = 10**5 + 10
a = [0] * Ndef calc(x):i = 2mp = {}while i * i <= x:if x % i == 0:mp[i]=1while x % i == 0:x //= ii += 1if x != 1:mp[x]=1return int(len(mp.items()))def main():n = int(input())for i in range(1, n + 1):a[i] = int(input())x = calc(a[i])if x == 2:print("1")else:print("0")if __name__ == "__main__":
main()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/42580.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/42580.shtml
英文地址,請注明出處:http://en.pswp.cn/web/42580.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MiniGPT-Med 通用醫學視覺大模型:生成醫學報告 + 視覺問答 + 醫學疾病識別

MiniGPT-Med 通用醫學視覺大模型&#xff1a;生成醫學報告 視覺問答 醫學疾病識別 提出背景解法拆解 論文&#xff1a;https://arxiv.org/pdf/2407.04106 代碼&#xff1a;https://github.com/Vision-CAIR/MiniGPT-Med 提出背景 近年來&#xff0c;人工智能&#xff08;AI…

如何讓自動化測試框架更自動化?

一、引言 ?對于大廠的同學來說&#xff0c;接口自動化是個老生常談的話題了&#xff0c;畢竟每年的MTSC大會議題都已經能佐證了&#xff0c;不是大數據測試&#xff0c;就是AI測試等等&#xff08;越來越高大上了&#xff09;。不可否認這些專項的方向是質量智能化發展的方向&…

刷題(day02)

1、leetcode136.刪除鏈表的結點 給定單向鏈表的頭指針和一個要刪除的節點的值&#xff0c;定義一個函數刪除該節點。 返回刪除后的鏈表的頭節點。 示例 1: 輸入: head [4,5,1,9], val 5 輸出: [4,1,9] 解釋: 給定你鏈表中值為 5 的第二個節點&#xff0c;那么在調用了你的函數…

Windows圖形界面(GUI)-SDK-C/C++ - 應用程序結構

公開視頻 -> 鏈接點擊跳轉公開課程博客首頁 -> 鏈接點擊跳轉博客主頁 目錄 入口函數 窗口注冊 窗口創建 窗口顯示 窗口更新 消息循環 窗口過程 窗口銷毀 調試信息 示例代碼 入口函數 在Windows應用程序中&#xff0c;WinMain是主函數&#xff0c;作為應用程序…

網格化監控:Eureka與分布式服務網格的協同監控

網格化監控&#xff1a;Eureka與分布式服務網格的協同監控 引言 在微服務架構中&#xff0c;服務網格技術提供了一種有效的方式來管理和監控服務間的通信。Eureka作為Netflix開源的服務發現框架&#xff0c;雖然本身不直接提供服務網格的監控功能&#xff0c;但可以與服務網格…

設計模式探索:適配器模式

1. 適配器模式介紹 1.1 適配器模式介紹 適配器模式&#xff08;adapter pattern&#xff09;的原始定義是&#xff1a;將一個類的接口轉換為客戶期望的另一個接口&#xff0c;適配器可以讓不兼容的兩個類一起協同工作。 適配器模式的主要作用是把原本不兼容的接口&#xff0c…

【Python_GUI】thinker布局管理——place方法

place方法可以設置組件的大小以及組件在容器中的精確位置&#xff0c;其參數及含義如下&#xff1a; 參數含義X設置組件距離窗口左側的水平距離y設置組件距離窗口頂部的垂直距離width設置組件的寬度height設置組件的高度relx設置組件距離窗口左側的相對距離&#xff0c;范圍為…

c++初階學習----入門(上)

大家好啊。最近學習了一點關于c的知識。這不就迫不及待的來與大家分享了嘛。但我這也是現學現賣所以咧。有很多遺落甚至不對的地方希望大家可以在評論區里面指出來。這樣也可以增加大家對知識的鞏固。 c語言與c的聯系 不知道大家看到c會不會不由自主的聯想到C語言啊。畢竟都是…

手機自帶錄屏在哪?6個軟件教你快速進行手機錄屏

手機自帶錄屏在哪&#xff1f;6個軟件教你快速進行手機錄屏 手機自帶的錄屏功能可以讓你輕松錄制屏幕上的內容&#xff0c;記錄游戲過程、制作教程或捕捉其他重要時刻。不同品牌的手機可能在不同位置提供錄屏功能。以下是一些常見的手機品牌及其錄屏功能位置&#xff0c;以及一…

【康復學習--LeetCode每日一題】724. 尋找數組的中心下標

題目&#xff1a; 給你一個整數數組 nums &#xff0c;請計算數組的 中心下標 。 數組 中心下標 是數組的一個下標&#xff0c;其左側所有元素相加的和等于右側所有元素相加的和。 如果中心下標位于數組最左端&#xff0c;那么左側數之和視為 0 &#xff0c;因為在下標的左側不…

運動愛好者的新選擇:哈氪聆光氣傳導耳機,輕巧又安全

平時不管是漫步街頭、騎行穿梭&#xff0c;還是乘坐公共交通時&#xff0c;我總是喜歡佩戴耳機&#xff0c;借此隔絕外部的喧囂&#xff0c;享受音樂的樂趣。在戶外使用耳機&#xff0c;我更傾向于選擇氣傳導耳機&#xff0c;它們更符合我的需求&#xff0c;因為這種耳機能讓我…

優雅下線的藝術:Eureka服務管理深度解析

優雅下線的藝術&#xff1a;Eureka服務管理深度解析 引言 在微服務架構中&#xff0c;服務的動態注冊與發現是保證系統高可用性的關鍵。Eureka作為Netflix開源的服務發現框架&#xff0c;提供了服務注冊與發現的基本功能。然而&#xff0c;服務在下線時如何做到"優雅&qu…

每日一編程,早點拿offer

計算字符串最后一個單詞的長度&#xff0c;單詞以空格隔開 輸入描述&#xff1a; 輸入一行&#xff0c;代表要計算的字符串&#xff0c;非空 輸出描述&#xff1a; 輸出一個整數&#xff0c;表示輸入字符串最后一個單詞的長度。 輸入&#xff1a;hello world輸出&#xff1a…

kubernetes集群證書過期問題解決

kubernetes集群證書過期問題解決 問題描述檢查證書是否過期更新證書master節點操作node節點操作 問題描述 K8S 各個組件需要與 api-server 進行通信&#xff0c;通信使用的證書都存放在 /etc/kubernetes/pki 路徑下&#xff0c;kubeadm 生成的證書大部分默認有效期為 1 年&…

SECS/GEM快速完成半導體設備通訊

金南瓜幫助國內大量從事半導體前道設備開發研制、生產的設備廠商&#xff0c;通過快速提供穩定可靠的SECS/GEM、GEM300產品&#xff0c;為客戶在激光退火、濕法設備&#xff08;清洗、鍍膜等&#xff09;、離子注入、MOCVD、PVD等客戶專注于核心工藝提升&#xff0c;提升企業的…

`CyclicBarrier` 是 Java 中的一個同步輔助工具類,它允許一組線程相互等待,直到所有線程都達到了某個公共屏障點(barrier point)

CyclicBarrier 是 Java 中的一個同步輔助工具類&#xff0c;它允許一組線程相互等待&#xff0c;直到所有線程都達到了某個公共屏障點&#xff08;barrier point&#xff09;。當所有線程都到達屏障點時&#xff0c;它們可以繼續執行后續操作。CyclicBarrier 的特點是可以重復使…

中介子方程五十

XXFXXaXnXaXXαXLXyXXWXuXeXKXXiXyXΣXXΣXXVXuXhXXWXηXXiXhXXpXXhXiXXηXWXXhXuXVXXΣXXΣXyXiXXKXeXuXWXXyXLXαXXaXnXaXXFXXaXnXaXXαXLXyXXWXuXeXKXXiXyXΣXXΣXXVXuXhXXWXηXXiXhXXpXXhXiXXηXWXXhXuXVXXΣXXΣXyXiXXKXeXuXWXXyXLXαXXaXnXaXXFXXuXXWXXuXXdXXrXXαXXuXpX…

Gen4Gen:多概念個性化圖像生成的數據驅動革新

個性化文本到圖像生成模型在用戶控制生成過程方面取得了重要進展。這些模型能夠通過少量訓練樣本學習并合成包含新穎個性化概念的圖像&#xff0c;例如用戶的寵物或特定物品。然而&#xff0c;現有技術在處理多概念個性化時存在局限性&#xff0c;尤其是在生成包含多個相似概念…

連接與隔離:Facebook在全球化背景下的影響力

在當今全球化的背景下&#xff0c;Facebook作為全球最大的社交網絡平臺&#xff0c;不僅連接了世界各地的人們&#xff0c;還在全球社會、經濟和文化中發揮著深遠的影響。本文將深入探討Facebook在全球化進程中的作用&#xff0c;以及其對個體和社會之間連接與隔離的雙重影響。…

【續集】Java之父的退休之旅:從軟件殿堂到多彩人生的探索

Java之父的退休之旅&#xff1a;從軟件殿堂到多彩人生的探索-CSDN博客 四、科技領袖退休后的行業影響 4.1 傳承與啟迪 Gosling等科技領袖的退休&#xff0c;為行業內部年輕一代提供了更多的發展機會和成長空間。他們的退休不僅意味著權力和責任的交接&#xff0c;更是一種精…