資源簡介 2023年3月青少年軟件編程(Python)等級考試五級試題一、單選題(共25題,共50分)1. 運行下列程序,輸出的結(jié)果是?(?。?br/> def wenhao(name = 'zhejiang'): print('hello' + name)wenhao() A. helloB. hellozhejiangC. hellonameD. 程序?qū)⑻崾具\行錯誤2. 運行下列程序,輸出的結(jié)果是?( ) rst = lambda a,b=5:a*b print(rst(5)) A. 5B. 15C. 25D. 353. 運行下列程序,輸出的結(jié)果是?(?。?br/> def jsarea(r, PI = 3.14): area = PI * r * rprint(jsarea(1)) A. 3.14B. 因缺失參數(shù),不能計算C. NoneD. 程序代碼有錯誤4. 運行下列程序,輸出的結(jié)果是?( ) def js(n): s = 0 while n: s = s * 10+n % 10 n //= 10 return sprint(js(20230110)) A. 20230110B. 01103202C. 2301102D. 11032025. 在傳遞信息的過程中, 通常會將一些敏感信息進行加密,以下是對數(shù)據(jù)進行加密的Python程序段,若輸入數(shù)據(jù)為“cie0108”,則輸出的結(jié)果是?( ) def jm(t): s = "" for ch in t: if "0" <= ch <= "9": x = int(ch) + 3 if x >= 10: x = x % 10 ch = str(x) s = s + ch return sprint(jm('cie0108')) A. 1343eicB. 0108cieC. cie3431D. 3431cie6. 運行下列程序,輸出的結(jié)果是?( ) s = 0def f(n): global s for i in range(n): s = s + i return sprint(f(f(3))) A. 3B. 6C. 9D. 07. 運行下列程序后,輸出的結(jié)果是?( ) def jsh(n): if n == 1: return 1 else: return n + jsh(n-1)print(jsh(10)) A. 1B. 35C. 45D. 558. 運行下列程序后,輸出的結(jié)果是?( ) def fun(s): if len(s) == 1: return s else: return fun(s[1:]) + s[0]print(fun('CIE2023')) A. 3202EICB. EIC3202C. 3220EICD. EIC20239. 下列有關(guān)遞歸的描述中,正確的是?( ) A. 遞歸函數(shù)中肯定有循環(huán)結(jié)構(gòu);B. 遞歸沒有體現(xiàn)“大事化小”的思想;C. 遞歸有明確的結(jié)束遞歸的邊界條件;D. 遞歸執(zhí)行效率較高。10. 運行下列程序,運行的結(jié)果是?(?。?br/> def leijia(x): x += 1 return xx=10y=leijia(x)print(y) A. 1B. 10C. 11D. None11. 關(guān)于分治算法特征的描述中,錯誤的是?(?。?br/> A. 當問題的規(guī)??s小到一定的程度就可以容易地解決;B. 問題可以分解為若干個規(guī)模較小的相同問題;C. 該問題所分解出的各個子問題是可以相互獨立,也可以相互交叉;D. 該問題分解出的子問題的解可以合并為該問題的解。12. 張老師有n(范圍在1到15之間)個禮物分給同學們,他請同學們猜禮物的數(shù)量,請問同學們猜幾次后肯定知道禮物的數(shù)量(不算運氣成分第1次或第2次就猜到)?(?。?br/> A. 15B. 7C. 4D. 313. 下列排序算法中,時間復雜度最小的是?(?。?br/> A. 插入排序B. 冒泡排序C. 快速排序D. 選擇排序14. 小方要在程序中生成[10,99]之間的隨機整數(shù),下列程序不能實現(xiàn)的是?(?。?br/> A. import randoma = random.randint(10,99)B. import random as ta = t.randint(10,99)C. from random import randinta = randint(10,99)D. from random import randint as ta = t.randint(10,99)15. 下列哪個關(guān)鍵字可用來創(chuàng)建自定義函數(shù)?(?。?br/> A. function;B. def;C. class;D. procedure。16. 在 Python 語言中,求列表長度用下列哪個函數(shù)?(?。?br/> A. sizeB. lenC. lengthD. str17. 下列關(guān)于函數(shù)返回值的描述中,正確的是?(?。?br/> A. Python函數(shù)的返回值使用很靈活,可以沒有返回值,可以有一個或多個返回值。B. 函數(shù)定義中最多含有一個return語句。C. 在函數(shù)定義中使用return語句時,至少給一個返回值D. 函數(shù)只能通過print語句和return語句給出運行結(jié)果18. 下列有關(guān)自定義函數(shù)的描述,正確的是?(?。?br/> A. 函數(shù)的定義必須在程序的開頭;B. 函數(shù)定義后,其中的程序可以自動執(zhí)行;C. 函數(shù)定義后需要調(diào)用才會執(zhí)行;D. 函數(shù)體與關(guān)鍵字必須左對齊。19. 運行下列程序,輸出的結(jié)果是?( )Sum=1for i in range (1,5): Sum=Sum*iprint(Sum,i) A. 24;5B. 120;5C. 24;4D. 120;420. 關(guān)于下列代碼的描述,錯誤的是?( )def fact(n): s=1 for i in range(1,n+1): s*=i return s A. s不能在函數(shù)外使用B. range()函數(shù)是Python內(nèi)置函數(shù)C. 如果n=4,返回的值為24D. 代碼中n是可選參數(shù)21. 某人將自己密碼旅行箱的密碼遺忘了。當事人記起密碼是一個三位自然數(shù),并且密碼個位數(shù)是8,其它位含1但不能確定是哪一位。請將所有可能的密碼遍歷出來。 請完成程序并運行?( ) for x in range(100,__ ①__): #三位密碼的范圍 if ____ ②___ and "1" in str(x): #符合條件的密碼 print(x) A. 999;x%10=8B. 999:x%10==8C. 1000;x%10=8D. 1000;x%10==8:22. 甲同學第一天跳繩100下,第二天開始每天增加5下;乙同學第一天跳繩100下,每隔一天增加10下。計算30天兩人的跳繩總數(shù)。 甲的跳繩數(shù):100、105、110、115、120…… 乙的跳繩數(shù):100、100、110、110、120…… 請補全程序代碼?( ) a=100 #甲同學第一天跳繩次數(shù) b=100 #乙同學第一天跳繩次數(shù) x=a #甲同學累計跳繩次數(shù),初始值是第一天的次數(shù) y=b #乙同學累計跳繩次數(shù),初始值是第一天的次數(shù) #從第二天開始迭代計算 for i in range(2,31): a= ① #甲同學每天增加5次 if i%2==1: #當天數(shù)為奇數(shù)時 b= ② #乙同學增加10次 x=x+a y=y+b print("甲同學30天跳繩",x,"下") print("乙同學30天跳繩",y,"下") A. a+5;b+10B. +5;+10C. a+10;b+5D. +10;+523. 用遞歸算法計算10的階乘10!的值#自定義階乘函數(shù)。自定義函數(shù)fact(n)是求n的階乘。 10!=1×2×3×…×10 請補全程序代碼?( ) #自定義函數(shù) def fact(n): #求階乘 if(n==1): #終止條件 return 1 #結(jié)束遞歸 else: #遞歸條件 p=__①____ #調(diào)用遞歸(自身) return p #返回乘積 #主程序 print("10!=",fact(10)) #調(diào)用遞歸 A. n*fact(n-1)B. n*fact(n)C. n*fact(n+1)D. n**fact(n)24. 用分治法查找列表中是否存在指定的數(shù)字。給定的列表已升序排序。請補全程序代碼?( ) #在列表cards中查找數(shù)字x,返回下標值,若未找到,返回-1 def serch(cards=list,x=int): a=0 #定義左端點下標 b=len(cards)-1 #定義右端點下標 #逐級分割查找范圍,縮小查找規(guī)模 while a<=b: m=(a+b)//2 #定義中點下標 if x==cards[m]: #x剛好等于中點值 return m elif ① : #x<中點值,說明x位于左段位置 b=m-1 #重新定義右端點 else: a=m+1 #重新定義左端點 return -1 #未找到,返回-1 #主程序 #在列表d中查找用戶輸入的數(shù)字r d=[1,6,16,24,44,46,79,80,81,82,87,102,134,151,156,188,196,202,212,226,228,248,272,274,286,306,321,351,363] print(d) #顯示一下列表d r=int(input("請輸入要查找的數(shù)字:")) y=serch(d,r) #調(diào)用子函數(shù),d,r是實參 if y>=0: print("已找到",r,",它是列表中第",y+1,"個數(shù)字") else: print("未找到",r) A. xB. x C. x>cards[m-1]D. x>cards[m]25. 下列不屬于Python數(shù)據(jù)分析與可視化第三方庫的是?( ) A. pandasB. matplotlibC. opencvD. Numpy二、判斷題(共10題,共20分)26. 關(guān)鍵字實參通過“關(guān)鍵字=值”的方式傳值,不需要考慮函數(shù)調(diào)用過程中形參的順序。( ) 正確 錯誤 27. 函數(shù)是將實現(xiàn)相同功能的代碼封裝在一起,實現(xiàn)代碼復用。(?。?br/> 正確 錯誤 28. 創(chuàng)建自定義函數(shù)時,不需要聲明函數(shù)形參的類型,形參的類型由調(diào)用自定義函數(shù)時傳遞的實參類型確定。( ) 正確 錯誤 29. 遞推是按照一定的規(guī)律計算序列中的每一項,通常是通過計算前面的一些項來計算后一項的值。( ) 正確 錯誤 30. 某同學用天平稱量的過程如下:先放置100克砝碼,砝碼偏重;再將砝碼改為50克,砝碼偏輕;又將砝碼改為75克……通過這種策略,該同學很快完成物品稱重工作,這體現(xiàn)了分治思想。( ) 正確 錯誤 31. 使用"pip install-upgrade pandas"命令能夠升級pandas庫。( ) 正確 錯誤 32. Python中調(diào)用close()函數(shù)可實現(xiàn)對文件內(nèi)容的讀取。(?。?br/> 正確 錯誤 33. 下面的程序會輸出兩個值。(?。?br/>def r(a,b): s=a+b b+=1 return sprint(r(3,8)) 正確 錯誤 34. 一般而言,兔子在出生兩個月后,就有繁殖能力,一對兔子每個月能生出一對小兔子來。如果所有兔子都不死,那么一年以后可以繁殖多少對兔子? 經(jīng)分析,從第三個月起,每個月的兔子數(shù)是上個月與上上個月兔子之和。 請判讀以下程序是否正確。( ) #自定義函數(shù) def fib(n): #斐波那契數(shù)列 if n<=2: return 1 else: return fib(n-1)+fib(n-2) #前兩個數(shù)字之和 #主程序,顯示每個月兔子數(shù)(斐波那契數(shù)列) for i in range(1,13): print("第",i,"個月兔子對數(shù)為:",fib(i)) 正確 錯誤 35. 下列兩個代碼塊的功能一樣。( ) A.if(year%4)==0: if(year%100)==0: print(year) B.if(year%4)==0 and (year%100)==0: print(year) 正確 錯誤 三、編程題(共3題,共30分)36. 換位密碼法是將明文中的字符位置通過一定的規(guī)則重新排列從而得到密文的一種加密方法。某換位密碼法加密方法如下:先把明文按照固定長度(4位一組)進行分組,然后對每一組的字符進行換位操作,從而得到密文。例如, 字符串"ceit",使用密鑰1432進行加密時,首先將字符串以 4 個字符為一組進行分組,然后對每組的字符進行換位,第1個和第3個字符位置不變,把第2個字符和第4個字符交換位置,從而得到密文"ctie"。小張編寫的程序如下,請完善劃線處的代碼: def jiami(yw,key): result = '' for i in range(0, ① ,len(key)): s1=yw[i:i+ len(key) ] for j in range( ② ): result = result + ③ return result yw= input('請輸入待加密的明文:') key= input('請輸入密鑰:') mw= ④ print(mw) 運行結(jié)果如下圖所示: 37. 一張長方形的紙,長m米,寬n米(長寬均為整數(shù)),現(xiàn)在要把它剛好裁成一些正方形(邊長是整數(shù)),有幾種裁法,如果要使裁得的正方形面積最大,可以裁多少塊。小明學習了遞歸后,編寫程序如下,首先輸入長方形的長和寬,計算出結(jié)果。請完善劃線處的代碼: def tj(a,b): c = 0 minn = ① if a > b: minn = b for i in range(1,minn+1): if a % i == 0 and b % i == 0: c = ② return c def gcd(a,b): if b == 0: return a return ③ chang = int(input('輸入長方形的長 (單位cm)')) kuan = int(input('輸入長方形的寬 (單位cm)')) bianchang = gcd(chang,kuan) total = ④ num = tj(chang,kuan) print('------------結(jié)果如下-------------') print('有{}種裁法'.format(num)) print('裁得的正方形面積最大邊長是{}cm,可以裁{}塊'.format(bianchang,total)) 運行后的結(jié)果如下圖所示: 38. 商超采用會員制,客戶的消費信息如會員號、姓名和積分如下表所示,小方的爸爸想編寫一個客戶信息管理系統(tǒng),其中有一個功能是:輸入會員號,查詢該會員的積分。 小方知道后,就躍躍欲試,他首先從數(shù)據(jù)庫讀取客戶信息到列表data中,其中data[i][0]存儲第i條記錄的會員號,data[i][1]存儲第i條記錄的姓名,data[i][2]存儲第i條記錄的積分;他首先將數(shù)組data中數(shù)據(jù)按會員號升序排序,然后用二分查找算法查找會員號對應(yīng)的積分信息。代碼如下,完善劃線處的代碼: def bubble_sort(d): for i in range(len(d)-2): for j in range(len(d)-1, ① ,-1): if d[j][0] < d[j-1][0]: d[j],d[j-1] = d[j-1],d[j] def bin_ search(d, key): i,j = 0, len(d)-1 while i <= j: m=(i +j)//2 if ② : return m if key > d[m][0]: i = m+1 else: j = m-1 return -1 #從數(shù)據(jù)庫讀取會員信息存列表data中,代碼略 data=[[8011,'張飛',12345],[8012,'李強',34512],[7812,'李好',45321]] bubble_sort(data) key = int(input('輸入會員號:')) m = ③ if m!=-1: print (data[m][1],'先生/女士:您的積分是:',data[m][2]) else: print('該會員號不正確') 2023年3月青少年軟件編程(Python)等級考試五級試題答案+解析一、單選題(共25題,共50分)1. 運行下列程序,輸出的結(jié)果是?( ) def wenhao(name = 'zhejiang'): print('hello' + name)wenhao() A. helloB. hellozhejiangC. hellonameD. 程序?qū)⑻崾具\行錯誤試題編號:20230109-fcl-001試題類型:單選題標準答案:B試題難度:一般試題解析:定義函數(shù)時,可以指定形參的默認值。如果在調(diào)用函數(shù)時給函數(shù)提供了實參,Python將使用指定的實參,否則將自動調(diào)用形參的默認值。本題中,調(diào)用wenhao函數(shù)時沒有傳值,故使用函數(shù)的默認值作為函數(shù)的調(diào)用。因此選B考生答案:B考生得分:2是否評分:已評分評價描述:2. 運行下列程序,輸出的結(jié)果是?( ) rst = lambda a,b=5:a*b print(rst(5)) A. 5B. 15C. 25D. 35試題編號:20230109-fcl-004試題類型:單選題標準答案:C試題難度:較難試題解析:rst(5)傳入一個實參,a被賦值為5,b使用默認值5,因此結(jié)果是5*5=25,選C。考生答案:C考生得分:2是否評分:已評分評價描述:3. 運行下列程序,輸出的結(jié)果是?( ) def jsarea(r, PI = 3.14): area = PI * r * rprint(jsarea(1)) A. 3.14B. 因缺失參數(shù),不能計算C. NoneD. 程序代碼有錯誤試題編號:20230109-fcl-005試題類型:單選題標準答案:C試題難度:一般試題解析:函數(shù)jsarea中,沒有return語句,函數(shù)中計算的結(jié)果area不能傳遞給函數(shù)調(diào)用處,因此調(diào)用函數(shù)的結(jié)果是None。考生答案:A考生得分:0是否評分:已評分評價描述:4. 運行下列程序,輸出的結(jié)果是?( ) def js(n): s = 0 while n: s = s * 10+n % 10 n //= 10 return sprint(js(20230110)) A. 20230110B. 01103202C. 2301102D. 1103202試題編號:20230109-fcl-011試題類型:單選題標準答案:D試題難度:一般試題解析:函數(shù)js的功能是計算n的逆序數(shù),因此選D考生答案:D考生得分:2是否評分:已評分評價描述:5. 在傳遞信息的過程中, 通常會將一些敏感信息進行加密,以下是對數(shù)據(jù)進行加密的Python程序段,若輸入數(shù)據(jù)為“cie0108”,則輸出的結(jié)果是?( ) def jm(t): s = "" for ch in t: if "0" <= ch <= "9": x = int(ch) + 3 if x >= 10: x = x % 10 ch = str(x) s = s + ch return sprint(jm('cie0108')) A. 1343eicB. 0108cieC. cie3431D. 3431cie試題編號:20230109-fcl-013試題類型:單選題標準答案:C試題難度:較難試題解析:函數(shù)jm中對原文進行處理,若是字母,不變,累加;若是數(shù)字, 轉(zhuǎn)為整型加3然后求其個位上的數(shù),因此答案是cie3431,選C。考生答案:C考生得分:2是否評分:已評分評價描述:6. 運行下列程序,輸出的結(jié)果是?( ) s = 0def f(n): global s for i in range(n): s = s + i return sprint(f(f(3))) A. 3B. 6C. 9D. 0試題編號:20230109-fcl-014試題類型:單選題標準答案:B試題難度:較難試題解析:在函數(shù)f中,變量s定義為global全局變量,第一次調(diào)用f(3)后返回的結(jié)果是3,此時變量s的值變成3,再次調(diào)用函數(shù)f(3)時,因s的初值已經(jīng)是3了,因此結(jié)果是6。考生答案:A考生得分:0是否評分:已評分評價描述:7. 運行下列程序后,輸出的結(jié)果是?( ) def jsh(n): if n == 1: return 1 else: return n + jsh(n-1)print(jsh(10)) A. 1B. 35C. 45D. 55試題編號:20230109-fcl-021試題類型:單選題標準答案:D試題難度:一般試題解析:遞歸思想求解1到n之間和,因此答案選D。考生答案:D考生得分:2是否評分:已評分評價描述:8. 運行下列程序后,輸出的結(jié)果是?( ) def fun(s): if len(s) == 1: return s else: return fun(s[1:]) + s[0]print(fun('CIE2023')) A. 3202EICB. EIC3202C. 3220EICD. EIC2023試題編號:20230109-fcl-023試題類型:單選題標準答案:A試題難度:較難試題解析:函數(shù)fun遞歸實現(xiàn)字符串s逆序,因此選A。考生答案:A考生得分:2是否評分:已評分評價描述:9. 下列有關(guān)遞歸的描述中,正確的是?( ) A. 遞歸函數(shù)中肯定有循環(huán)結(jié)構(gòu);B. 遞歸沒有體現(xiàn)“大事化小”的思想;C. 遞歸有明確的結(jié)束遞歸的邊界條件;D. 遞歸執(zhí)行效率較高。試題編號:20230109-fcl-026試題類型:單選題標準答案:C試題難度:較難試題解析:遞歸有明確的結(jié)束遞歸的邊界條件以及結(jié)束時的邊界值,遞歸體現(xiàn)了“大事化小”的思想。考生答案:C考生得分:2是否評分:已評分評價描述:10. 運行下列程序,運行的結(jié)果是?(?。?br/> def leijia(x): x += 1 return xx=10y=leijia(x)print(y) A. 1B. 10C. 11D. None試題編號:20230110-fcl-002試題類型:單選題標準答案:C試題難度:一般試題解析:將實參10傳遞給函數(shù)leijia中的形參x,x加1后得到11,并通過return返回給y,因此選C。考生答案:C考生得分:2是否評分:已評分評價描述:11. 關(guān)于分治算法特征的描述中,錯誤的是?(?。?br/> A. 當問題的規(guī)??s小到一定的程度就可以容易地解決;B. 問題可以分解為若干個規(guī)模較小的相同問題;C. 該問題所分解出的各個子問題是可以相互獨立,也可以相互交叉;D. 該問題分解出的子問題的解可以合并為該問題的解。試題編號:20230110-fcl-027試題類型:單選題標準答案:C試題難度:一般試題解析:該問題所分解出的各個子問題是相互獨立,即該問題具有最優(yōu)子結(jié)構(gòu)性質(zhì)。考生答案:C考生得分:2是否評分:已評分評價描述:12. 張老師有n(范圍在1到15之間)個禮物分給同學們,他請同學們猜禮物的數(shù)量,請問同學們猜幾次后肯定知道禮物的數(shù)量(不算運氣成分第1次或第2次就猜到)?(?。?br/> A. 15B. 7C. 4D. 3試題編號:20230110-fcl-028試題類型:單選題標準答案:C試題難度:一般試題解析:二分查找特征,15個禮物,每次對半猜,4次后肯定知道結(jié)果。考生答案:C考生得分:2是否評分:已評分評價描述:13. 下列排序算法中,時間復雜度最小的是?(?。?br/> A. 插入排序B. 冒泡排序C. 快速排序D. 選擇排序試題編號:20230110-fcl-032試題類型:單選題標準答案:C試題難度:較難試題解析:快速排序時間復雜度是O(nlogn),其他都是O(n*n)。考生答案:考生得分:0是否評分:已評分評價描述:14. 小方要在程序中生成[10,99]之間的隨機整數(shù),下列程序不能實現(xiàn)的是?( ) A. import randoma = random.randint(10,99)B. import random as ta = t.randint(10,99)C. from random import randinta = randint(10,99)D. from random import randint as ta = t.randint(10,99)試題編號:20230110-fcl-034試題類型:單選題標準答案:D試題難度:一般試題解析:選項A,B,C均正確。考生答案:考生得分:0是否評分:已評分評價描述:15. 下列哪個關(guān)鍵字可用來創(chuàng)建自定義函數(shù)?( ) A. function;B. def;C. class;D. procedure。試題編號:20230206-zwy-001試題類型:單選題標準答案:B試題難度:一般試題解析:def 關(guān)鍵字可用來創(chuàng)建自定義函數(shù)考生答案:B考生得分:2是否評分:已評分評價描述:16. 在 Python 語言中,求列表長度用下列哪個函數(shù)?(?。?br/> A. sizeB. lenC. lengthD. str試題編號:20230206-zwy-003試題類型:單選題標準答案:B試題難度:一般試題解析:在 Python 語言中,求列表長度用len 函數(shù)考生答案:B考生得分:2是否評分:已評分評價描述:17. 下列關(guān)于函數(shù)返回值的描述中,正確的是?(?。?br/> A. Python函數(shù)的返回值使用很靈活,可以沒有返回值,可以有一個或多個返回值。B. 函數(shù)定義中最多含有一個return語句。C. 在函數(shù)定義中使用return語句時,至少給一個返回值D. 函數(shù)只能通過print語句和return語句給出運行結(jié)果試題編號:20230206-zwy-005試題類型:單選題標準答案:A試題難度:一般試題解析:Python函數(shù)的返回值使用很靈活,可以沒有返回值,可以有一個或多個返回值,是正確的。考生答案:A考生得分:2是否評分:已評分評價描述:18. 下列有關(guān)自定義函數(shù)的描述,正確的是?(?。?br/> A. 函數(shù)的定義必須在程序的開頭;B. 函數(shù)定義后,其中的程序可以自動執(zhí)行;C. 函數(shù)定義后需要調(diào)用才會執(zhí)行;D. 函數(shù)體與關(guān)鍵字必須左對齊。試題編號:20230206-zwy-011試題類型:單選題標準答案:C試題難度:一般試題解析:函數(shù)定義后需要調(diào)用才會執(zhí)行。考生答案:C考生得分:2是否評分:已評分評價描述:19. 運行下列程序,輸出的結(jié)果是?( )Sum=1for i in range (1,5): Sum=Sum*iprint(Sum,i) A. 24;5B. 120;5C. 24;4D. 120;4試題編號:20230206-zwy-012試題類型:單選題標準答案:C試題難度:一般試題解析:Sum=1for i in range (1,5): Sum=Sum*iprint(Sum,i)輸出是24, 4考生答案:B考生得分:0是否評分:已評分評價描述:20. 關(guān)于下列代碼的描述,錯誤的是?( )def fact(n): s=1 for i in range(1,n+1): s*=i return s A. s不能在函數(shù)外使用B. range()函數(shù)是Python內(nèi)置函數(shù)C. 如果n=4,返回的值為24D. 代碼中n是可選參數(shù)試題編號:20230206-zwy-013試題類型:單選題標準答案:D試題難度:一般試題解析:代碼中n是可選參數(shù)是錯誤的。考生答案:C考生得分:0是否評分:已評分評價描述:21. 某人將自己密碼旅行箱的密碼遺忘了。當事人記起密碼是一個三位自然數(shù),并且密碼個位數(shù)是8,其它位含1但不能確定是哪一位。請將所有可能的密碼遍歷出來。 請完成程序并運行?( ) for x in range(100,__ ①__): #三位密碼的范圍 if ____ ②___ and "1" in str(x): #符合條件的密碼 print(x) A. 999;x%10=8B. 999:x%10==8C. 1000;x%10=8D. 1000;x%10==8試題編號:20230206-zwy-019試題類型:單選題標準答案:D試題難度:一般試題解析:考生答案:B考生得分:0是否評分:已評分評價描述:22. 甲同學第一天跳繩100下,第二天開始每天增加5下;乙同學第一天跳繩100下,每隔一天增加10下。計算30天兩人的跳繩總數(shù)。 甲的跳繩數(shù):100、105、110、115、120…… 乙的跳繩數(shù):100、100、110、110、120…… 請補全程序代碼?( ) a=100 #甲同學第一天跳繩次數(shù) b=100 #乙同學第一天跳繩次數(shù) x=a #甲同學累計跳繩次數(shù),初始值是第一天的次數(shù) y=b #乙同學累計跳繩次數(shù),初始值是第一天的次數(shù) #從第二天開始迭代計算 for i in range(2,31): a= ① #甲同學每天增加5次 if i%2==1: #當天數(shù)為奇數(shù)時 b= ② #乙同學增加10次 x=x+a y=y+b print("甲同學30天跳繩",x,"下") print("乙同學30天跳繩",y,"下") A. a+5;b+10B. +5;+10C. a+10;b+5D. +10;+5試題編號:20230206-zwy-023試題類型:單選題標準答案:A試題難度:一般試題解析:考生答案:A考生得分:2是否評分:已評分評價描述:23. 用遞歸算法計算10的階乘10!的值#自定義階乘函數(shù)。自定義函數(shù)fact(n)是求n的階乘。 10!=1×2×3×…×10 請補全程序代碼?( ) #自定義函數(shù) def fact(n): #求階乘 if(n==1): #終止條件 return 1 #結(jié)束遞歸 else: #遞歸條件 p=__①____ #調(diào)用遞歸(自身) return p #返回乘積 #主程序 print("10!=",fact(10)) #調(diào)用遞歸 A. n*fact(n-1)B. n*fact(n)C. n*fact(n+1)D. n**fact(n)試題編號:20230206-zwy-024試題類型:單選題標準答案:A試題難度:一般試題解析:考生答案:A考生得分:2是否評分:已評分評價描述:24. 用分治法查找列表中是否存在指定的數(shù)字。給定的列表已升序排序。請補全程序代碼?( ) #在列表cards中查找數(shù)字x,返回下標值,若未找到,返回-1 def serch(cards=list,x=int): a=0 #定義左端點下標 b=len(cards)-1 #定義右端點下標 #逐級分割查找范圍,縮小查找規(guī)模 while a<=b: m=(a+b)//2 #定義中點下標 if x==cards[m]: #x剛好等于中點值 return m elif ① : #x<中點值,說明x位于左段位置 b=m-1 #重新定義右端點 else: a=m+1 #重新定義左端點 return -1 #未找到,返回-1 #主程序 #在列表d中查找用戶輸入的數(shù)字r d=[1,6,16,24,44,46,79,80,81,82,87,102,134,151,156,188,196,202,212,226,228,248,272,274,286,306,321,351,363] print(d) #顯示一下列表d r=int(input("請輸入要查找的數(shù)字:")) y=serch(d,r) #調(diào)用子函數(shù),d,r是實參 if y>=0: print("已找到",r,",它是列表中第",y+1,"個數(shù)字") else: print("未找到",r) A. xB. x C. x>cards[m-1]D. x>cards[m]試題編號:20230206-zwy-027試題類型:單選題標準答案:B試題難度:較難試題解析:x 每次從中間分隔,這個實際上是二分法。分治法查找可以大規(guī)模減少比對次數(shù),但是,原數(shù)據(jù)必須排序。考生答案:D考生得分:0是否評分:已評分評價描述:25. 下列不屬于Python數(shù)據(jù)分析與可視化第三方庫的是?(?。?br/> A. pandasB. matplotlibC. opencvD. numpy試題編號:20230206-zwy-033試題類型:單選題標準答案:C試題難度:一般試題解析:opencv不屬于python數(shù)據(jù)分析與可視化第三方庫考生答案:考生得分:0是否評分:已評分評價描述:二、判斷題(共10題,共20分)26. 關(guān)鍵字實參通過“關(guān)鍵字=值”的方式傳值,不需要考慮函數(shù)調(diào)用過程中形參的順序。(?。?br/> 正確 錯誤 試題編號:20230109-fcl-003試題類型:判斷題標準答案:正確試題難度:容易試題解析:關(guān)鍵字實參通過“關(guān)鍵字=值”的方式傳值,不需要考慮函數(shù)調(diào)用過程中形參的順序。考生答案:正確考生得分:2是否評分:已評分評價描述:27. 函數(shù)是將實現(xiàn)相同功能的代碼封裝在一起,實現(xiàn)代碼復用。(?。?br/> 正確 錯誤 試題編號:20230109-fcl-006試題類型:判斷題標準答案:正確試題難度:容易試題解析:函數(shù)是將實現(xiàn)相同功能的代碼封裝在一起,實現(xiàn)代碼復用。考生答案:錯誤考生得分:0是否評分:已評分評價描述:28. 創(chuàng)建自定義函數(shù)時,不需要聲明函數(shù)形參的類型,形參的類型由調(diào)用自定義函數(shù)時傳遞的實參類型確定。( ) 正確 錯誤 試題編號:20230109-fcl-017試題類型:判斷題標準答案:正確試題難度:一般試題解析:創(chuàng)建自定義函數(shù)時,不需要聲明函數(shù)形參的類型,形參的類型由調(diào)用自定義函數(shù)時傳遞的實參類型確定。考生答案:正確考生得分:2是否評分:已評分評價描述:29. 遞推是按照一定的規(guī)律計算序列中的每一項,通常是通過計算前面的一些項來計算后一項的值。(?。?br/> 正確 錯誤 試題編號:20230109-fcl-022試題類型:判斷題標準答案:正確試題難度:容易試題解析:遞推是按照一定的規(guī)律計算序列中的每一項,通常是通過計算前面的一些項來計算后一項的值。考生答案:正確考生得分:2是否評分:已評分評價描述:30. 某同學用天平稱量的過程如下:先放置100克砝碼,砝碼偏重;再將砝碼改為50克,砝碼偏輕;又將砝碼改為75克……通過這種策略,該同學很快完成物品稱重工作,這體現(xiàn)了分治思想。(?。?br/> 正確 錯誤 試題編號:20230109-fcl-029試題類型:判斷題標準答案:正確試題難度:一般試題解析:該同學稱量的過程體現(xiàn)了分治思想。考生答案:正確考生得分:2是否評分:已評分評價描述:31. 使用"pip install-upgrade pandas"命令能夠升級pandas庫。(?。?br/> 正確 錯誤 試題編號:20230110-fcl-033試題類型:判斷題標準答案:正確試題難度:一般試題解析:使用"pip install-upgrade 包名" 命令能夠更新已經(jīng)安裝的第三方庫。考生答案:正確考生得分:2是否評分:已評分評價描述:32. Python中調(diào)用close()函數(shù)可實現(xiàn)對文件內(nèi)容的讀取。(?。?br/> 正確 錯誤 試題編號:20230206-zwy-008試題類型:判斷題標準答案:錯誤試題難度:一般試題解析:Python中調(diào)用read()函數(shù)可實現(xiàn)對文件內(nèi)容的讀取。考生答案:錯誤考生得分:2是否評分:已評分評價描述:33. 下面的程序會輸出兩個值。( )def r(a,b): s=a+b b+=1 return sprint(r(3,8)) 正確 錯誤 試題編號:20230206-zwy-017試題類型:判斷題標準答案:錯誤試題難度:一般試題解析:def r(a,b): s=a+b b+=1 return sprint(r(3,8))上面的程序不會輸出兩個值。考生答案:錯誤考生得分:2是否評分:已評分評價描述:34. 一般而言,兔子在出生兩個月后,就有繁殖能力,一對兔子每個月能生出一對小兔子來。如果所有兔子都不死,那么一年以后可以繁殖多少對兔子? 經(jīng)分析,從第三個月起,每個月的兔子數(shù)是上個月與上上個月兔子之和。 請判讀以下程序是否正確。( ) #自定義函數(shù) def fib(n): #斐波那契數(shù)列 if n<=2: return 1 else: return fib(n-1)+fib(n-2) #前兩個數(shù)字之和 #主程序,顯示每個月兔子數(shù)(斐波那契數(shù)列) for i in range(1,13): print("第",i,"個月兔子對數(shù)為:",fib(i)) 正確 錯誤 試題編號:20230206-zwy-026試題類型:判斷題標準答案:正確試題難度:一般試題解析:考生答案:正確考生得分:2是否評分:已評分評價描述:35. 下列兩個代碼塊的功能一樣。( ) A.if(year%4)==0: if(year%100)==0: print(year) B.if(year%4)==0 and (year%100)==0: print(year) 正確 錯誤 試題編號:20230206-zwy-032試題類型:判斷題標準答案:正確試題難度:一般試題解析:考生答案:正確考生得分:2是否評分:已評分評價描述:三、編程題(共3題,共30分)36. 換位密碼法是將明文中的字符位置通過一定的規(guī)則重新排列從而得到密文的一種加密方法。某換位密碼法加密方法如下:先把明文按照固定長度(4位一組)進行分組,然后對每一組的字符進行換位操作,從而得到密文。例如, 字符串"ceit",使用密鑰1432進行加密時,首先將字符串以 4 個字符為一組進行分組,然后對每組的字符進行換位,第1個和第3個字符位置不變,把第2個字符和第4個字符交換位置,從而得到密文"ctie"。小張編寫的程序如下,請完善劃線處的代碼: def jiami(yw,key): result = '' for i in range(0, ① ,len(key)): s1=yw[i:i+ len(key) ] for j in range( ② ): result = result + ③ return result yw= input('請輸入待加密的明文:') key= input('請輸入密鑰:') mw= ④ print(mw) 運行結(jié)果如下圖所示: 試題編號:202303-P4-36試題類型:編程題標準答案:參考程序: def jiami(yw,key): result = '' for i in range(0,len(yw),len(key)): s1=yw[i:i+len(key)] for j in range(len(key)): result = result + s1[int(key[j])-1] return result yw= input('請輸入待加密的明文:') key= input('請輸入密鑰:') mw= jiami(yw,key) print(mw) 試題難度:一般試題解析:評分標準: (1)len(yw);(2分) (2)len(key);(3分) (3)s1[int(key[j])-1];(4分) (4)jiami(yw,key)。(3分) 展示地址:點擊瀏覽考生答案:(此題已作答)考生得分:3是否評分:已評分評價描述:37. 一張長方形的紙,長m米,寬n米(長寬均為整數(shù)),現(xiàn)在要把它剛好裁成一些正方形(邊長是整數(shù)),有幾種裁法,如果要使裁得的正方形面積最大,可以裁多少塊。小明學習了遞歸后,編寫程序如下,首先輸入長方形的長和寬,計算出結(jié)果。請完善劃線處的代碼: def tj(a,b): c = 0 minn = ① if a > b: minn = b for i in range(1,minn+1): if a % i == 0 and b % i == 0: c = ② return c def gcd(a,b): if b == 0: return a return ③ chang = int(input('輸入長方形的長 (單位cm)')) kuan = int(input('輸入長方形的寬 (單位cm)')) bianchang = gcd(chang,kuan) total = ④ num = tj(chang,kuan) print('------------結(jié)果如下-------------') print('有{}種裁法'.format(num)) print('裁得的正方形面積最大邊長是{}cm,可以裁{}塊'.format(bianchang,total)) 運行后的結(jié)果如下圖所示: 試題編號:202303-P4-37試題類型:編程題標準答案:參考程序: 試題難度:一般試題解析:評分標準: (1)a;(2分)(2)c + 1;(2分)(3)gcd(b,a%b);(3分)(4)(chang // bianchang) * (kuan // bianchang)或等價答案。(3分) 展示地址:點擊瀏覽考生答案:(此題已作答)考生得分:2是否評分:已評分評價描述:38. 商超采用會員制,客戶的消費信息如會員號、姓名和積分如下表所示,小方的爸爸想編寫一個客戶信息管理系統(tǒng),其中有一個功能是:輸入會員號,查詢該會員的積分。 小方知道后,就躍躍欲試,他首先從數(shù)據(jù)庫讀取客戶信息到列表data中,其中data[i][0]存儲第i條記錄的會員號,data[i][1]存儲第i條記錄的姓名,data[i][2]存儲第i條記錄的積分;他首先將數(shù)組data中數(shù)據(jù)按會員號升序排序,然后用二分查找算法查找會員號對應(yīng)的積分信息。代碼如下,完善劃線處的代碼: def bubble_sort(d): for i in range(len(d)-2): for j in range(len(d)-1, ① ,-1): if d[j][0] < d[j-1][0]: d[j],d[j-1] = d[j-1],d[j] def bin_ search(d, key): i,j = 0, len(d)-1 while i <= j: m=(i +j)//2 if ② : return m if key > d[m][0]: i = m+1 else: j = m-1 return -1 #從數(shù)據(jù)庫讀取會員信息存列表data中,代碼略 data=[[8011,'張飛',12345],[8012,'李強',34512],[7812,'李好',45321]] bubble_sort(data) key = int(input('輸入會員號:')) m = ③ if m!=-1: print (data[m][1],'先生/女士:您的積分是:',data[m][2]) else: print('該會員號不正確') 試題編號:202303-P4-38試題類型:編程題標準答案:參考程序: def bubble_sort(d): for i in range(len(d)-2): for j in range(len(d)-1, i,-1): if d[j][0] < d[j-1][0]: d[j],d[j-1] = d[j-1],d[j]def bin_search(d, key): i,j = 0, len(d)-1 while i <= j: m=(i +j)//2 if d[m][0] == key: return m if key > d[m][0]: i = m+1 else: j = m-1 return -1#從數(shù)據(jù)庫讀取會員信息存列表data中,代碼略data=[[8011,'張飛',12345],[8012,'李強',34512],[7812,'李好',45321]]bubble_sort(data)key = int(input('輸入會員號:'))m = bin_search(data,key)if m!=-1: print (data[m][1],'先生/女士:您的積分是:',data[m][2])else: print('該會員號不正確') 試題難度:一般試題解析:評分標準: (1)i;(2分)(2)d[m][0] == key;(3分)(3)bin_search(data,key)。(3分) 展示地址:點擊瀏覽考生答案:(此題已作答)考生得分:0是否評分:已評分評價描述: 展開更多...... 收起↑ 資源列表 4級試題答案+解析.docx 全國電子信息學會考級2023年3月份6年級下學期Python編程4級考級試題.docx 縮略圖、資源來源于二一教育資源庫