
2022年12月青少年軟件編程Python等級(jí)考試試卷四級(jí)真題(含答案和解析)
11頁(yè)2022年12月青少年軟件編程Python等級(jí)考試試卷四級(jí)(含答案和解析)分?jǐn)?shù):100 題數(shù):38一、單選題(共25題,共50分)1.有n個(gè)按名稱排序的商品,使用對(duì)分查找法搜索任何一商品,最多查找次數(shù)為5次,則n的值可能為?(C)A. 5B. 15C. 30D. 35解析:對(duì)分查找最多查找次數(shù)m與個(gè)數(shù)之間n的關(guān)系是:n對(duì)2的對(duì)數(shù)的取整后加1,現(xiàn)在最多查找次數(shù)是5次,因此n的取值范圍在[2^4+1,2^5]即[16,31]之間,因此選C2.下列有關(guān)分治算法思想的描述不正確的是?(D)A. 將問(wèn)題分解成的子問(wèn)題具有相同的模式B. 當(dāng)問(wèn)題足夠小時(shí),可以直接求解C. 可以將子問(wèn)題的結(jié)果合并成原問(wèn)題的解D. 將問(wèn)題分解出的各個(gè)子問(wèn)題相互包含,相互之間可以有公共子問(wèn)題解析:將問(wèn)題分解出的各個(gè)子問(wèn)題是相互獨(dú)立的,即子問(wèn)題之間不包含公共子子問(wèn)題3.下列問(wèn)題使用分治算法思想的是?(D)A. 求100以內(nèi)的素?cái)?shù)B. 求100個(gè)整數(shù)之和C. 求斐波那契數(shù)列第n項(xiàng)D. 快速排序算法對(duì)n個(gè)數(shù)排序解析:快速排序算法使用了分治算法因此選D4.李宇同學(xué)利用Python語(yǔ)言編寫了一段“根據(jù)出.生.年月判斷生肖屬相”的程序,調(diào)試運(yùn)行時(shí),程序沒(méi)有報(bào)錯(cuò)且順利運(yùn)行,但未能正確輸出對(duì)應(yīng)屬相,造成這個(gè)結(jié)果的原因可能是?(C)A. 程序語(yǔ)句語(yǔ)法錯(cuò)誤B. 時(shí)間復(fù)雜度太高C. 求解算法邏輯錯(cuò)誤D. Python環(huán)境配置不對(duì)解析:程序能正常運(yùn)行,排除了其他三個(gè)可能。
5.一般來(lái)說(shuō),遞歸需要有邊界條件、遞歸前進(jìn)段和遞歸返回段當(dāng)不滿足邊界條件時(shí),();當(dāng)滿足邊界條件時(shí),()C)A. 返回,前進(jìn)B. 中斷,前進(jìn)C. 前進(jìn),返回D. 中斷,返回解析:遞歸運(yùn)行的條件,不滿足邊界條件前進(jìn),滿足返回6.以下哪一項(xiàng)不是遞歸算法的特征?(D)A. 要實(shí)現(xiàn)遞歸必須有一個(gè)函數(shù),并且在這個(gè)函數(shù)體內(nèi)要自己調(diào)用自己B. 遞歸必須要有判斷條件,這個(gè)判斷條件可以是判斷次數(shù)C. 到達(dá)判斷的條件后必須有返回,目的是結(jié)束遞歸D. 未到達(dá)判斷條件時(shí),不可以返回該函數(shù)解析:未到達(dá)判斷條件時(shí),可以返回該函數(shù),也可以不返回7.關(guān)于斐波那契數(shù)列,下列空白處的代碼填寫正確的是?(C)def func(num): if num==1: return 1 elif num==2: return 1 else: lst=[]b=input('請(qǐng)輸入選擇的數(shù)字:')b1=int(b)for a in range(1,b1+1): print(func(a)) lst.append(func(a)) a+=1print(lst)A. return func(num+1)+func(num-2)B. return func(num-1)+func(num)C. return func(num-1)+func(num-2)D. return func(num-1)+func(num+2)解析:斐波那契數(shù)列,從第三項(xiàng)開始,每一項(xiàng)都等于前兩項(xiàng)之和。
8.在有序列表[2,3,10,15,20,25,28,29,30,35,40]中,使用二分法查找20,需要查找多少次能找到?(B)A. 5B. 4C. 3D. 2解析:可以模擬二分法的執(zhí)行過(guò)程分析得出9.下列程序輸出正確的是?(C)def ac(n): if n < 0: return else: ac(n-1) print(n)ac(4)A. 0,1,2,3,4B. 1,2,3,4C. 0 1 2 3 4D. 1 2 3 4解析:依次輸出0-4,print()默認(rèn)換行10.閱讀下列程序,運(yùn)行結(jié)果正確的是?(D)def power(x,y): if y==0: return 1 else: return x * power(x,y-1)print(power(4,5))A. 243B. 81C. 1206D. 1024解析:power(a,b)表示a的b次冪,當(dāng)y不等于0,返回x*power(x,y-1)據(jù)題,x=4,y=5,因此4*power(4,4),即4*(4的4次冪),結(jié)果為1024。
11.下載但不安裝一個(gè)第三方庫(kù)的命令格式是?(D)A. pip search 第三方庫(kù)名B. pip uninstall 第三方庫(kù)名C. pip install 第三方庫(kù)名D. pip download 第三方庫(kù)名解析:pip search為搜索三方包;pip install為安裝三方包;pip uninstall為卸載三方包12.不需要使用Python的pip工具安裝的是?(A)A. Python標(biāo)準(zhǔn)庫(kù)B. 第三方庫(kù)C. 用戶自己開發(fā)的庫(kù)D. Python擴(kuò)展庫(kù)解析:除了A選項(xiàng),其他都要安裝13.使用lambda定義匿名函數(shù)如下:f=lambda x:x+1,則f(f(1))代碼運(yùn)行結(jié)果是?(C)A. 1B. 2C. 3D. 會(huì)報(bào)錯(cuò)解析:f(1)=2,f(2)=314.關(guān)于函數(shù),以下選項(xiàng)中描述錯(cuò)誤的是?(D)A. 函數(shù)是一段具有特定功能的、可重用的語(yǔ)句組B. 函數(shù)能完成特定的功能,對(duì)函數(shù)的調(diào)用不需要了解函數(shù)內(nèi)部實(shí)現(xiàn)原理,只要了解函數(shù)的輸入輸出方式即可C. 使用函數(shù)的主要目的是減低編程難度和代碼重用D. Python 使用“del”保留字定義一個(gè)函數(shù)解析:Python 使用“def”保留字定義一個(gè)函數(shù)。
15.某自定義函數(shù)有兩個(gè)參數(shù),并且這兩個(gè)參數(shù)都指定了默認(rèn)值我們?cè)谡{(diào)用這個(gè)函數(shù)時(shí),最少需要提供幾個(gè)實(shí)參?(A)A. 0B. 1C. 2D. 3解析:只要有默認(rèn)值就可以省略16.以下關(guān)于Python中使用函數(shù)的描述,錯(cuò)誤的是?(A)A. 程序里一定要有main函數(shù)B. 使用函數(shù)前要先定義函數(shù)C. 函數(shù)在被調(diào)用時(shí)才執(zhí)行D. 函數(shù)執(zhí)行結(jié)束后,程序執(zhí)行流程會(huì)自動(dòng)返回到函數(shù)被調(diào)用的語(yǔ)句之后解析:Python程序不必一定要有main函數(shù)17.在Python中,函數(shù)通過(guò)可變參數(shù)*args傳入的參數(shù),在函數(shù)內(nèi)以哪種數(shù)據(jù)類型存儲(chǔ)?(A)A. 元組B. 列表C. 集合D. 字典解析:可變參數(shù)在函數(shù)內(nèi)以元組方式存儲(chǔ)18.下列關(guān)于函數(shù)調(diào)用的說(shuō)法正確的是?(C)A. 調(diào)用函數(shù)時(shí)一定要賦值B. 只要安裝成功第三方庫(kù),不要導(dǎo)入,就可以直接調(diào)用第三方庫(kù)里的函數(shù)C. Python內(nèi)置的標(biāo)準(zhǔn)函數(shù)可以多次調(diào)用D. 函數(shù)調(diào)用時(shí),如果參數(shù)有默認(rèn)值,就不能給它再賦新的值了解析:調(diào)用函數(shù)時(shí)不一定是必須要給參數(shù)賦值的;先導(dǎo)入第三方庫(kù),再調(diào)用第三方庫(kù)里的函數(shù);有默認(rèn)值的參數(shù)也可以賦新值19.自定義函數(shù)的關(guān)鍵字是?(C)A. defineB. delC. defD. dfe解析:考查自定義函數(shù)。
20.下列選項(xiàng)中不能作為自定義函數(shù)名的是?(D)A. IntB. _int2C. str2intD. 2_int解析:函數(shù)名不能以數(shù)字開頭21.函數(shù)定義如下:def func(a,b=0,c=0): pass下列選項(xiàng)調(diào)用錯(cuò)誤的是?(C)A. func(1)B. func(1,2)C. func(1, ,3)D. func(1,2,3)解析:C選項(xiàng)中連續(xù)輸入了兩個(gè)逗號(hào),解釋器會(huì)報(bào)語(yǔ)法錯(cuò)誤22.下列選項(xiàng)中,函數(shù)定義錯(cuò)誤的是?(D)A. def afunc(a,b=2):B. def bfunc(a,b):C. def cfunc(a,*b):D. def dfunc(*a,b):解析:可變參數(shù)必須在不可變參數(shù)的后面23.運(yùn)行下列代碼,輸出結(jié)果為?(B)def func(a,b,*args): print(a) print(b) print(args)func(1,2,3,4,5,6)A. 1,2,3,4,5,6B. 1 2 (3,4,5,6)C. 1 2 [3,4,5,6]D. 1 2 3,4,5,6解析:a,b是位置參數(shù),所以a=1,b=2,其余的參數(shù)會(huì)被*args收集打包放進(jìn)一個(gè)元組中,即(3,4,5,6)。
24.下列關(guān)于函數(shù)的說(shuō)法正確的是?(C)A. 一個(gè)函數(shù)在同一個(gè)程序中最多只能被調(diào)用999次B. 函數(shù)的返回值不可以賦值給變量C. 使用Python內(nèi)置模塊里的函數(shù)時(shí),要先導(dǎo)入該模塊到當(dāng)前文件中D. 調(diào)用沒(méi)有參數(shù)的函數(shù)時(shí)可以不帶圓括號(hào)解析:函數(shù)的調(diào)用次數(shù)沒(méi)有限制,A錯(cuò)誤;函數(shù)的返回值可以賦值給變量,B錯(cuò)誤;調(diào)用沒(méi)有參數(shù)的函數(shù)時(shí),函數(shù)名后面也要跟一對(duì)圓括號(hào),D錯(cuò)誤25.下列選項(xiàng)中,不是函數(shù)的是?(C)A. max()B. input()C. string()D. sum()解析:Python中string為模塊二、判斷題(共10題,共20分)26.計(jì)算下面這段程序的時(shí)間復(fù)雜度為平方階:O(n^2)錯(cuò)誤)sum1 = 0for i in range(101): sum1+=i解析:時(shí)間復(fù)雜度為線性階,計(jì)O(n)27.漢諾塔游戲是遞歸調(diào)用的經(jīng)典案例正確)解析:漢諾塔是學(xué)習(xí)遞歸算法最為常見(jiàn)的例子28.遞推關(guān)系是遞歸的重要組成正確)解析:對(duì)于遞歸而言,遞推與回歸,二者缺一不可29.以下命令:pip get pandas用于下載第三方庫(kù)pandas,但不馬上安裝錯(cuò)誤)解析:沒(méi)有g(shù)et這個(gè)命令30.使用Python語(yǔ)言編程,可以定義一個(gè)名叫pass的函數(shù)。
錯(cuò)誤)解析:pass是保留字31.函數(shù)中沒(méi)有return語(yǔ)句或者return語(yǔ)句不帶任何返回值,那么該函數(shù)的返回值為True錯(cuò)誤)解析:返回值為None32.在Python中調(diào)用函數(shù)的時(shí)候,必須將每個(gè)實(shí)參都關(guān)聯(lián)到函數(shù)定義中的每一個(gè)形參,最簡(jiǎn)單的關(guān)聯(lián)方式就是基于實(shí)參的順序但也可以通過(guò)關(guān)鍵字實(shí)參的“關(guān)鍵字-值”方式關(guān)聯(lián)形參,這時(shí)就不必考慮函數(shù)調(diào)用過(guò)程中實(shí)參的順序正確)解析:考查函數(shù)的參數(shù)33.在Python中,全局變量名和局部變量名一定不能重名錯(cuò)誤)解析:全局變量名和局部變量名可以是相同的變量名34.調(diào)用函數(shù)時(shí),Python將形式參數(shù)傳遞給實(shí)際參數(shù)錯(cuò)誤)解析:調(diào)用函數(shù)時(shí),Python將實(shí)際參數(shù)傳遞給形式參數(shù)35.分治算法的基本思想是將一個(gè)規(guī)模為N的問(wèn)題分解為K個(gè)規(guī)模較小的子問(wèn)題,這些子問(wèn)題相互獨(dú)立且與原問(wèn)題性質(zhì)相同正確)解析:分治算法的基本思想是將一個(gè)規(guī)模為N的問(wèn)題分解為K個(gè)規(guī)模較小的子問(wèn)題,這些子問(wèn)題相互獨(dú)立且與原問(wèn)題性質(zhì)相同三、編程題(共3題,共30分)36.從鍵盤接收一組不重復(fù)整數(shù),并將這組整數(shù)按從小到大的順序排列以下程序采取快速排序法對(duì)這組整數(shù)進(jìn)行排序快速排序法的原理是:(1)取這組數(shù)據(jù)中間。





![[精編]吳教人[]13號(hào)](/Images/s.gif)






