
2024年3月、6月、9月青少年軟件編程Python等級考試試卷四級真題(全3套 含答案)
33頁2024 年 3 月青少年軟件編程 Python 等級考試試卷四級真題(含答案和解析)分?jǐn)?shù):100 題數(shù):38一、單選題(共 25 題,共 50 分)1. 運行如下代碼,若輸入整數(shù) 3,則最終輸出的結(jié)果為?()def f(x):if x==1:s=1 else:s=f(x-1)*x return sn=int(input("請輸入一個大于 1 的整數(shù):")) print(f(n)+f(n-1))A. 2B. 4C. 8D. 16標(biāo)準(zhǔn)答案:C試題解析:由于 f(3)=f(2)*3,f(2)=f(1)*2,f(1)=1,所以 f(3)+f(2)=6+2=82. 運行下列程序,輸出的結(jié)果是?() def fun(x):if x > 3:return x * fun(x-1) else:return x print(fun(6)) A. 120B. 360C. 720D. 60標(biāo)準(zhǔn)答案:B試題解析:遞歸函數(shù)求解,根據(jù)遞歸函數(shù) 6*5*4*3=3603. 下列關(guān)于遞歸的描述不正確的是?()A. 遞歸函數(shù)一定包含 if 語句B. 遞歸函數(shù)體內(nèi)一定包含調(diào)用自身的語句C. 在調(diào)用自身函數(shù)時需要明確的邊界終止條件與邊界值。
D. 遞歸算法一般代碼簡潔,執(zhí)行效率高,空間復(fù)雜度低標(biāo)準(zhǔn)答案:D試題解析:遞歸算法一般代碼簡潔,易于理解,但執(zhí)行效率較低,空間復(fù)雜度高4. 運行下列程序,輸出的結(jié)果是?() def fun(a, n):s = 0for i in range(1, n+1): temp = str(a)*is += int(temp) return sprint(fun(1, 3))A. 3B. 6C. 12D. 123標(biāo)準(zhǔn)答案:D試題解析:遞推函數(shù)求解,本題是求 1+11+111 之和5. 運行下列程序,輸出的結(jié)果是?() def fun(a, b):s = 0a = a[::-1]for i in range(len(a)): s += int(a[i])*b**ireturn s print(fun('45', 16))A. 69B. 45C. 64D. 61標(biāo)準(zhǔn)答案:A試題解析:遞推函數(shù)求解,本題是根據(jù)一個字符串和進(jìn)制,轉(zhuǎn)換成對應(yīng)的十進(jìn)制6. 一個荷花池,第一天荷花開放得很少,第二天開放的數(shù)量是第一天的兩倍,之后的每一天,荷花都會以前一天兩倍的數(shù)量開放如果到第 30 天,荷花就開滿了整個池塘,設(shè)第一天開一朵,編程求第 30 天共開了多少朵荷花。
下面空白處的代碼填寫正確的是?()s = 0t = 1for i in range(1, ① ): s += t②print(s)A. 30, t = t*2B. 31, t = t*2C. 31, t+=2D. 30, t*=2標(biāo)準(zhǔn)答案:B試題解析:遞推函數(shù)求解,本題遞推關(guān)系是 t = t*2, 循環(huán)次數(shù)是 30 次7. 解決下列問題時,時間復(fù)雜度最大的是?()A. 輸入 n 個不同的包含兩位小數(shù)的實數(shù),計算這 n 個數(shù)的和B. 在 n 個數(shù)據(jù)中,查找數(shù)據(jù) kC. 將 n 個數(shù)據(jù)用冒泡排序?qū)崿F(xiàn)排序D. 計算算式 1-2+3-4+...-n 的結(jié)果,n 為偶數(shù)標(biāo)準(zhǔn)答案:C試題解析:算法優(yōu)化8. 以下關(guān)于分治算法的描述正確的是?()A. 各個子問題既相互獨立又相互聯(lián)系B. 問題可以分解成若干個規(guī)模較小的相同問題C. 可以直接對問題進(jìn)行求解D. 子問題的解不能合并成原問題的解標(biāo)準(zhǔn)答案:B試題解析:分治算法的特征,各個子問題相互獨立,子問題的求解可以合并成原問題的解9. 下列選項中哪一項使用了分治算法?()A. 二分搜索B. 選擇搜索C. 插入搜索D. 順序搜索標(biāo)準(zhǔn)答案:A試題解析:二分查找體現(xiàn)了分治算法。
10. 不超過 20 個元素的降序數(shù)列,使用對分查找能找到指定的元素,可能的查找次數(shù)不包括?()A. 3B. 4C. 5D. 6標(biāo)準(zhǔn)答案:D試題解析:int(log220)+1=511. 下面程序段的輸出結(jié)果是?() def add_Run(L=None):if L is None:L = ['Lying'] else:L.append('Run') return Ladd_Run() print(add_Run())print(add_Run(['Lying']))A. ['Lying'] ['Run']B. ['Lying'] ['Lying'] ['Lying', 'Run']C. ['Lying'] ['Lying', 'Run']D. []['Lying', 'Run']標(biāo)準(zhǔn)答案:C試題解析:if 分支定義列表,else 分支添加列表元素12. 下面關(guān)于計數(shù)器的程序,輸出結(jié)果正確的是?() count = 0def increment():global count count += 1print("計數(shù)器的值:", count) increment()increment() increment()A. 計數(shù)器的值: 1計數(shù)器的值: 2計數(shù)器的值: 3B. 計數(shù)器的值:0計數(shù)器的值:1計數(shù)器的值:2C. 計數(shù)器的值: 1計數(shù)器的值: 1計數(shù)器的值: 1D. 計數(shù)器的值:3標(biāo)準(zhǔn)答案:A。
試題解析:在函數(shù)內(nèi)部可以通過關(guān)鍵字 global 來定義全局變量13. 下列程序段的輸出結(jié)果是?() L = []x = 3def test(x):L.append(x) x = 5test(x)print('L = {}, x = {}'.format(L, x)) A. L = [3], x = 3B. L = [5], x = 5C. L = [3], x = 5D. L = 3, x = 5標(biāo)準(zhǔn)答案:A試題解析:函數(shù)內(nèi)部定義變量 x 的值為 5,只能作用于函數(shù)內(nèi)部14. 以下程序,運行程序輸出結(jié)果正確的是?() def demo(x):return x*2 print(demo(demo(1)))A. return NoneB. 2C. 4D. 8標(biāo)準(zhǔn)答案:C試題解析:調(diào)用二次,1 乘以二次 2,因此結(jié)果為 415. Python 使用下列哪個函數(shù)接收用戶輸入的數(shù)據(jù)?()A. accept()B. input()C. print()D. login() 標(biāo)準(zhǔn)答案:B試題解析:在 Python 中,用于獲取用戶輸入的函數(shù)是 input()16. 下面程序段的輸出結(jié)果正確的是?() def power():x ='python' y = 'world'z = x + " " + y return zprint(power())A. zB. x + " " + yC. python worldD. python" "world標(biāo)準(zhǔn)答案:C。
試題解析:該函數(shù)作用為連接字符串17. 下列關(guān)于 Python 函數(shù)的描述中,不正確的是?()A. 自定義函數(shù)時用到的關(guān)鍵字是 defB. 在 python 函數(shù)中,至少有一條 return 語句C. 函數(shù) print()可以一次輸出多個參數(shù),如 print('1',"2",3,[4])D. 用函數(shù) eval()可以用于求字符串里表達(dá)式的值,如 eval('3+5-1')標(biāo)準(zhǔn)答案:B試題解析:函數(shù)可以有返回值,也可以沒有返回值需要返回值的函數(shù),可以包含一條或者多條 return 語句;沒有返回值的函數(shù),不需要包含 return 語句18. 關(guān)于以下代碼的描述中,正確的是?() #求兩個正方形的面積差def MianJiCha(a,b): s=a**2-b**2 return sa=5 b=10c=MianJiCha(b,a)+aA. 代碼運行后,變量 c 的值是 80B. 函數(shù)名是 MianJiCha(a,b)C. 可以用 MianJiCha(100)的形式調(diào)用此函數(shù)D. 代碼運行時會報錯標(biāo)準(zhǔn)答案:A試題解析:s=10**2-5**2+5=100-25+5=8019. 下列關(guān)于 Python 函數(shù)的說法中,錯誤的是?()A. 利用函數(shù)可以降低編程復(fù)雜度,增加代碼可讀性。
B. 函數(shù)可以重復(fù)調(diào)用C. 函數(shù)可以降低修改代碼的工作量D. 調(diào)用函數(shù)時,每次都必須輸入相同的參數(shù)值標(biāo)準(zhǔn)答案:D試題解析:有些函數(shù)需要輸入?yún)?shù)才能調(diào)用,有些不需要需要輸入?yún)?shù)的函數(shù)在多次調(diào)用時,允許輸入合法的不同參數(shù)這也正是函數(shù)可復(fù)用的實現(xiàn)形式20. 下列選項中,調(diào)用下列代碼定義的函數(shù)時,程序會報錯的是?() def ShuChu(a,b,c):print(c,b,a)A. ShuChu('1','2','3')B. ShuChu('1','2','3,4')C. ShuChu(1,2,3)D. ShuChu(1,2,3,4)標(biāo)準(zhǔn)答案:D試題解析:在使用位置實參的方式傳值時,傳入的實參個數(shù)必須與形參相同,否則運行程序會報錯21. 下列選項中,調(diào)用以下代碼定義的函數(shù)時,程序會報錯的是?() def kp(a,b,c):print(a,b,c)A. kp(1,b=2,3)B. kp(a=3,b=1,c=2)C. kp(1,2,3)D. kp(1,b=2,c=3)標(biāo)準(zhǔn)答案:A試題解析:在函數(shù)調(diào)用時,采用位置實參與關(guān)鍵字實參混合傳入?yún)?shù)時,位置實參必須放在關(guān)鍵字實參之前22. 下列代碼的輸出結(jié)果是?()>>>s=lambda m,n:m*n>>>s(6,6)A. 6B. 6,6C. 36D. 12標(biāo)準(zhǔn)答案:C。
試題解析:匿名函數(shù)中,冒號前面是參數(shù)列表,冒號后面是函數(shù)的返回值 m=6,n=6,s=m*n=6*6=3623. 以下函數(shù)定義錯誤的選項是?()A. def aFunc(m,n): print(m,n)B. def aFunc(m,n=2): print(m,n)C. def aFunc(*m,n): print(m,n)D. def aFunc(m,*n): print(m,n)標(biāo)準(zhǔn)答案:C試題解析:*m 表示是可變參數(shù),可傳入值的個數(shù)不確定可變參數(shù)只能放在不可變參數(shù)的后面,不然解釋器將不能識別哪些值傳給可變參數(shù),哪些值傳給不可變參數(shù)24. 用于安裝 Python 第三方庫的工具是?()A. installB. pipC. WheelD. setup標(biāo)準(zhǔn)答案:B試題解析:pip 是 Python 自帶的第三方庫的安裝工具25. 編程時,如果只需要導(dǎo)入某第三方庫中的某個成員,需要使用到的關(guān)鍵字是?()A. fromB. asC. intoD. inport標(biāo)準(zhǔn)答案:A試題解析:導(dǎo)入外部模塊的某個成員,使用 from 關(guān)鍵字二、判斷題(共 10 題,共 20 分)26. 若某個問題既能用遞歸算法求解,又能用遞推算法求解,則使用遞歸方法求解更容易,效率也高得多。
