




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
青少年軟件編程(Python)等級考試試卷(四級)分?jǐn)?shù):100.00題數(shù):38一、單選題(共25題,每題2分,共50分)1.對于數(shù)列3,8,11,15,17,19,25,30,44,采用“二分查找”法查找8,需要查找多少次?()A、5B、4C、3D、2題型:單選題答案:D難度:容易試題解析:按二分查找法的規(guī)律,每次先查找中間值,進行比較。2.下面哪一項不是pip指令?()A、pipinstallScipyB、pipuninstallJiebaC、pipclearD、piplist題型:單選題答案:C難度:容易試題解析:pip工具中沒有clear方法。3.有如下Python語句,執(zhí)行該語句后,結(jié)果是?()f=lambdax:5print(f(3))A、3B、沒有輸出C、5D、None題型:單選題答案:C難度:一般試題解析:將參數(shù)3傳遞給匿名函數(shù)f,返回值為5,故選C4. 執(zhí)行如下Python代碼后,結(jié)果是?() definverse(s,n=0): whiles: n=n*10+s%10 s=s//10 returnnprint(inverse(456,123))A、654123B、123456C、123654D、654321題型:單選題答案:C難度:一般試題解析:調(diào)用函數(shù)inverse(456,123),將456逐位取出,并累加到123的后面,故選C5.下列有關(guān)循環(huán)和遞歸的描述正確的是?()A、遞歸思想代碼清晰簡潔,可讀性強B、遞歸代碼中不能有循環(huán)結(jié)構(gòu)的語句C、遞歸是從問題的起點出發(fā),逐漸將復(fù)雜問題化為簡單問題,最終求得問題D、能用遞歸實現(xiàn)的,一定能用循環(huán)代碼實現(xiàn)題型:單選題答案:A難度:一般試題解析:遞歸是從問題的目標(biāo)出發(fā),逐漸將復(fù)雜問題化為簡單問題,最終求得問題6.以下有關(guān)Python函數(shù)的定義表述中錯誤的是?()A、函數(shù)的定義必須在主程序調(diào)用語句之前出現(xiàn)B、在形參列表中必須先列出有默認(rèn)值的形參,再列出沒有默認(rèn)值的形參C、實參是實際占用內(nèi)存地址的,而形參不占用D、def關(guān)鍵字后面加函數(shù)名定義函數(shù),定義必須以冒號結(jié)尾題型:單選題答案:B難度:一般試題解析:在形參列表中必須先列出沒有默認(rèn)值的形參,再列出有默認(rèn)值的形參。7.如下代碼運行后下面選項中描述錯誤的是?()defpph(a,b): c=a**2+b b=a returnca=10b=100c=pph(a,b)+aprint(a,'',b,'',c)A、執(zhí)行該函數(shù)后,變量a的值為10B、執(zhí)行該函數(shù)后,變量b的值為100C、執(zhí)行該函數(shù)后,變量c的值為200D、該函數(shù)名稱為pph題型:單選題答案:C難度:一般試題解析:函數(shù)基本概念8.閱讀下列程序段,數(shù)列的第6項值為多少?()deffibona(x): ifx==1orx==2: f=1 foriinrange(3,x+1): f=fibona(x-1)+fibona(x-2) returnfn=int(input("請輸入數(shù)列第幾項:"))m=fibona(n)print("數(shù)列的第"+str(n)+"項的值為"+str(m))A、1B、8C、21D、34題型:單選題答案:B難度:容易試題解析:程序段中的數(shù)列其實是斐波那契數(shù)列,這個數(shù)列從第3項開始,每一項都等于前兩項之和。1,1,2,3,5,8,13,21,34,55…9. 有如下Python的自定義函數(shù),執(zhí)行該程序后,結(jié)果是?() defcalc(x,y,op): returneval(str(x)+op+str(y)) print(calc(3,5,'+'))A、8B、35C、NoneD、-2題型:單選題答案:A難度:一般試題解析:該函數(shù)功能是將參數(shù)x,y用op的運算符運算,故選A10.有如下Python程序,執(zhí)行該程序后,結(jié)果是?()x=3def calc(): x=5print(calc())A、3B、5C、無輸出D、None題型:單選題答案:D難度:一般試題解析:自定義函數(shù)沒有return語句,返回值為None,故選D11.應(yīng)用分治算法的前提是?()A、問題的可分性和解的可歸并性B、問題的復(fù)雜性和解的簡單性C、問題的可分性和解的存在性D、問題的復(fù)雜性和解的可歸并性題型:單選題答案:A難度:一般試題解析:A。問題的可分性和解的可歸并性是應(yīng)用分治算法的前提。12.有一球從100米高度自由落下,每次落地后反跳回原高度的一半,再落下,求它在第10次落地前,反彈多高?用遞歸函數(shù)解決,下面選項正確的是?()A、defheight(n): ifn==1: return100 else: returnn*2print(height(10))B、defheight(n): ifn==1: return100 else: returnheight(n-1)/2print(height(10))C、defheight(n): ifn==1: return100 else: returnheight(n+1)/2print(height(10))D、defheight(n): ifn==1: return100 else: returnheight(n-1)*2print(height(10))題型:單選題答案:B難度:一般試題解析:每次彈起的高度都是上次的一半,因此遞歸式子為height(n-1)/213.有如下Python程序,執(zhí)行該程序后,結(jié)果是?()g=lambdax,y=3,z=5:x+y+zprint(g(2))A、2B、5C、7D、10題型:單選題答案:D難度:一般試題解析:匿名函數(shù)g的功能是將3個參數(shù)x,y,z之和,故選D14. 下面的程序輸出1~100之間能被7整除但不能同時被5整除的所有整數(shù)。 k=1 whilek<101: ifk%7==0andk%5!=0: print(k) k+=1 根據(jù)下面哪個選項的方法優(yōu)化后,程序的運行效率最高?()A、將k=1改為k=7B、將kC、將k+=1改為k+=7D、將k=1改為k=7,同時將k+=1改為k+=7題型:單選題答案:D難度:一般試題解析:選項A可以少執(zhí)行6次,選項B可以少執(zhí)行2次,選項D可以少執(zhí)行86次。選項C程序不能實現(xiàn)設(shè)計的功能。15.下列程序段的運行結(jié)果為?()deff(n): ifn<=1: return1 else: returnf(n-1)*3print(f(5))A、9B、27C、81D、243題型:單選題答案:C難度:容易試題解析:f(5)=f(4)*3=f(3)*3*3=f(2)*3*3*3=f(1)*3*3*3*3=1*81=8116.下列選項中,關(guān)于如何安裝第三方庫的說法正確的是?()A、如果電腦沒有聯(lián)網(wǎng),仍然可以使用pip工具安裝本地的whl文件B、必須使用命令行工具安裝第三方庫C、第三方庫只要可以用pip完整的下載下來,就可以成功安裝D、安裝上Anaconda就安裝了所有的第三方庫題型:單選題答案:A難度:一般試題解析:可執(zhí)行文件不需要使用命令行工具就可以安裝。沒有編譯的第三方庫,即使能夠下載,也無法安裝。Anaconda里面包含了800多個第三方庫,但是不是全部的第三方庫。17. 運行以下程序輸出的結(jié)果是?()y=2deffun(): globaly y=1 print(y)fun() print(y) A、 2 1B、 2 2C、 1 2D、 1 1題型:單選題答案:D難度:較難試題解析:Python中定義函數(shù)時,若想在函數(shù)內(nèi)部對函數(shù)外的變量進行操作,就需要在函數(shù)內(nèi)部聲明其為global以改變它的值。18.下面哪種算法使用了分治的方法?()A、插入排序B、快速排序C、選擇排序D、冒泡排序題型:單選題答案:B難度:一般試題解析:只有B使用了分治的方法。19.下面關(guān)于遞歸函數(shù)說法正確的是?()A、一般來說,遞歸函數(shù)的執(zhí)行效率高于非遞歸函數(shù)B、邊界條件和遞歸關(guān)系是遞歸函數(shù)編寫的關(guān)鍵C、遞歸函數(shù)的嵌套調(diào)用次數(shù)沒有限制D、遞歸函數(shù)不可以改寫為非遞歸函數(shù)題型:單選題答案:B難度:一般試題解析:一般來說,遞歸函數(shù)代碼簡潔,易于理解,但執(zhí)行效率較低。遞歸函數(shù)的調(diào)用次數(shù)必須有限制。20. 觀察此題示例代碼,以下表述中錯誤的是?() nums=range(2,20)foriinnums: nums=list(filter(lambdax:x==iorx%i,nums))print(nums)A、filter()函數(shù)輸出后是一個數(shù)組而不是列表B、示例代碼中的關(guān)鍵字lambda表示匿名函數(shù)C、lambdax:x==iorx%i,nums中冒號:之前的x是這個函數(shù)的參數(shù)D、匿名函數(shù)需要return來返回值,表達(dá)式本身結(jié)果就是返回值題型:單選題答案:D難度:一般試題解析:關(guān)鍵字lambda表示匿名函數(shù),冒號之前的表示它們是這個函數(shù)的參數(shù),匿名函數(shù)不需要return來返回值,表達(dá)式本身結(jié)果就是返回值。在定義匿名函數(shù)時,需要將它直接賦值給一個變量,然后再像一般函數(shù)調(diào)用。21.在一個平面中,有n個圓兩兩相交,但任二個圓不相切,任三個圓無公共點,以下函數(shù)能計算出n個圓把平面分成的區(qū)域個數(shù),空格處填寫的語句是?() defc(n): ifn=1: return2 else: return A、c(n-1)+2*(n-1)B、c(n-1)+c(n-2)C、c(n-1)+2*nD、c(n-1)+2*(n+1)題型:單選題答案:A難度:較難試題解析: 設(shè)這n個圓將平面分成an個區(qū)域。易知,a1=2,a2=4?,F(xiàn)在假設(shè)前n-1個圓將平面分成了an-1個區(qū)域,當(dāng)加入第n個圓(虛線圓)時,由題設(shè)這個圓與前面的n-1個圓一定交于2(n-1)個點,這2(n-1)個點把第n個圓分成2(n-1)條弧,而每條弧正好將前面的n-1個圓分成的區(qū)域中的其經(jīng)過的每個區(qū)域分成2個區(qū)域,故新加入的第n個圓使所成的區(qū)域數(shù)增加了2(n-1)。因此可以建立如下帶初值的遞推關(guān)系: an=an-1+2(n-1) a1=222.有如下Python程序段,執(zhí)行該程序后,結(jié)果是?()deffun(*p): returnsum(p)print(fun(1,3,5))A、4B、6C、8D、9題型:單選題答案:D難度:一般試題解析:該函數(shù)功能是將參數(shù)1,3,5求和,故選D23.以下關(guān)于全局變量和局部變量的表述正確的是?()A、如果在函數(shù)中定義的局部變量與全局變量同名,則全局變量屏蔽局部變量B、可以通過global關(guān)鍵字,通過全局變量修改局部變量C、nonlocal關(guān)鍵字用來在函數(shù)或局部作用域使用內(nèi)層(非全局)變量D、全局變量的作用域一定比局部變量的作用域大題型:單選題答案:D難度:一般試題解析:如果在函數(shù)中定義的局部變量與全局變量同名,則局部變量屏蔽全局變量??梢酝ㄟ^global關(guān)鍵字,通過局部變量修改全局變量。nonlocal關(guān)鍵字用來在函數(shù)或局部作用域使用外層(非全局)變量。局部變量的作用域是指程序內(nèi)部,全局變量的作用域是整個程序。24. 關(guān)于以下程序,下列表述中錯誤的一項是?() c=1 deffun(n): a=1 forbinrange(1,n): a*=b returna n=int(input('Entern=')) print(fun(n),c)A、c是全局變量,a是局部變量B、n是形式參數(shù),當(dāng)n=5時,程序輸出1201C、程序?qū)崿F(xiàn)求階乘D、range()函數(shù)是python內(nèi)置函數(shù)題型:單選題答案:B難度:一般試題解析:fun(n)函數(shù)的功能是求階乘,range(1,n)是從1循環(huán)到n-1。25. 以下程序的運行結(jié)果是?() deff(x,y,z): print(x,y,z)f(z=3,x=2,y=1)A、321B、123C、213D、312題型:單選題答案:C難度:一般試題解析:關(guān)鍵字實參二、判斷題(共10題,每題2分,共20分)26.所有的Python第三方庫均可以使用pip工具進行安裝。題型:判斷題答案:錯誤難度:一般試題解析:錯誤。使用pip有一些限制,如在線、可安裝包等。27.算法的時間復(fù)雜度與空間復(fù)雜度沒有必然關(guān)系。題型:判斷題答案:正確難度:較難試題解析:28.在創(chuàng)建自定義函數(shù)時,即使函數(shù)沒有參數(shù),也必須保留一對空的"()"。題型:判斷題答案:正確難度:一般試題解析:29.執(zhí)行以下代碼:deffun(mylist): mylist.append([1,2,3,4]) print("函數(shù)內(nèi)取值:",mylist) returnmylist=[5,6,7]fun(mylist)print("函數(shù)外取值:",mylist) 程序輸出的結(jié)果為:函數(shù)內(nèi)取值: [5,6,7,[1,2,3,4]] 函數(shù)外取值: [5,6,7,[1,2,3,4]]。題型:判斷題答案:正確難度:一般試題解析:實例中傳入函數(shù)的和在末尾添加新內(nèi)容的對象用的是同一個引用,輸出是一樣的。30.定義Python函數(shù)時,如果函數(shù)中沒有return語句,則該函數(shù)返回值是None。題型:判斷題答案:正確難度:一般試題解析:定義Python函數(shù)時,如果函數(shù)中沒有return語句,則該函數(shù)返回值None31.執(zhí)行以下代碼:sum=0deffun(arg1,arg2): sum=arg1+arg2 print(sum) returnsumfun(5,10)print(sum) 程序輸出的結(jié)果為:15 15題型:判斷題答案:錯誤難度:一般試題解析:第1個print(sum)是函數(shù)內(nèi)的局部變量,輸出15。第2個print(sum)是函數(shù)外的全局變量,輸出0。32.對于一個復(fù)雜問題,如果所分解出的各個子問題之間相互不獨立,則不適合使用分治算法。題型:判斷題答案:正確難度:一般試題解析:正確。分治算法要求子問題是相互獨立的33.執(zhí)行以下代碼:deffun(name,age=30): print("Name:",name) print("Age:",age) returnfun(age=40,name="summy")fun(name="summy") 程序輸出的結(jié)果為: Name:summyAge:40Name:summy Age:40。題型:判斷題答案:錯誤難度:一般試題解析:調(diào)用函數(shù)時,默認(rèn)參數(shù)的值如果沒有傳入,則被認(rèn)為是默認(rèn)值。第二次調(diào)用fun()時age的值沒有傳入,則默認(rèn)是30。34.下列程序段運行后的結(jié)果是2。defchange(a,b): a,b=b,a returnaa=2b=3print(change(change(a,b),a))題型:判斷題答案:正確難度:容易試題解析:自定義函數(shù)change(a,b)的作用是交換變量a,b的值并返回變量a的值,change(2,3)返回的值為3,change(3,2)返回的值為2。35.對于斐波那契數(shù)列:1,1,2,3,5,……,我們只能采用迭代公式以遞推的方式求解。題型:判斷題答案:錯誤難度:一般試題解析:斐波那契數(shù)列可以用多種方式求解。三、編程題(共3題,共30分)36. 在編寫抽獎程序時,為了保證一個人只有一次中獎機會,要檢查新抽出來的數(shù)字是不是已經(jīng)被抽中過了。 一種辦法是將已經(jīng)中過獎的人員編號存放在test_list里面,然后每抽出一個新的人員編號,判斷它是否在中獎人員列表中。 如果沒有在中獎人員列表中,說明中獎號碼有效,并將它保存進中獎人員列表;如果已經(jīng)在里面了,就再生成一個新的人員編號。 請你補全下面的代碼,實現(xiàn)判斷一個數(shù)字是否在列表中的功能。 #子問題算法(子問題規(guī)模為1) defis_in_list(init_list,num): ifinit_list[0]==num: returnTrue else: returnFalse #分治法 deffind_out(init_list,num): n=len(init_list) if____①______ #如果問題的規(guī)模等于1,直接解決 returnis_in_list(init_list,num) #分解(子問題規(guī)模為n/2) left_list,right_list=_________②____________ #遞歸,分治,合并 res=find_out(left_list,num)__③__find_out(right_list,num) returnres if__name__=="__main__": #測試數(shù)據(jù) test_list=[18,43,21,3,28,2,46,25,32,40,14,36] #查找 print(_____④_____) 程序運行結(jié)果: >>>True 題型:編程題答案: 參考答案: (1) n==1: 或其他正確答案;(2分) (2) init_list[:n//2],init_list[n//2:] 或其他正確答案; (2分) (3) or 或其他正確答案; (2分) (4)find_out(test_list,25) 或其他正確答案。 (2分) 難度:較難試題解析: 參考程序: #子問題算法(子問題規(guī)模為1) defis_in_list(init_list,num): ifinit_list[0]==num: returnTrue else: returnFalse #分治法 deffind_out(init_list,num): n=len(init_list) ifn==1: #如果問題的規(guī)模等于1,直接解決 returnis_in_list(init_list,num) #分解(子問題規(guī)模為n/2) left_list,right_list=init_list[:n//2],init_list[n//2:] #遞歸(樹),分治,合并 res=find_out(left_list,num)orfind_out(right_list,num) returnres if__name__=="__main__": #測試數(shù)據(jù) test_list=[18,43,21,3,28,2,46,25,32,40,14,36] #查找 print(find_out(test_list,25))#True 37. 乘法運算等于多個加法運算的和。比如,3×2可以理解為3+3,也可以理解為2+2+2。 下面的程序使用遞歸算法演示了計算兩個自然數(shù)的乘積的過程。請你補全代碼。 輸入:分兩次輸入自然數(shù)num1,num2 輸出:num1 × num2= 乘積defcheng_fa(num1,num2,value): if ① value+=0 else: value+=num1 ② value=cheng_fa(num1,num2,value) return ③ num1=int(input('輸入第1個數(shù):'))num2=int(input('輸入第2個數(shù):'))value=0value=cheng_fa(num1,num2,value) print('{}X{}={}'.format(num1,num2,value)) 程序運行結(jié)果: 輸入第1個數(shù):3 輸入第2個數(shù):7 3X7=21 題型:編程題答案: 參考答案: (1)num1==0ornum2==0: 或其他等效答案;(3分) (2)num2-=1或num2=num2-1 或其他等效答案;(4分) (3)value。(3分) 難度:一般試題解析: 參考答案: (1)num1==0ornum2==0: 或其他等效答案(3分) (2)num2-=1或num2=num2-1 或其他等效答案(4分) (3)value (3分) 參考程序: defcheng_fa(num1,num2,value): ifnum1==0ornum2==0: value+=0 else: value+=num1 num2-=1 value=cheng_fa(num1,num2,value) returnvaluenum1=int(input('輸入第1個數(shù):'))num2=int(input('輸入第2個數(shù):'))value=0value=cheng_fa(num1,num2,value) print('{}X{}={}'.format(num1,num2,value)) 程序運行結(jié)果: 輸入第1個數(shù):3 輸入第2個數(shù):7 3X7=2138. 外賣送餐服務(wù)越來越受到人們的喜愛,外賣小哥們也成了路上的一道風(fēng)景。 當(dāng)顧客使用外賣軟件點餐時,會出現(xiàn)一個預(yù)計送達(dá)時間,包括了餐廳制作食物的時間,路上的騎行時間等等。 一種常用的計算路上騎行時間的方法是用曼哈頓距離(manhattondistance)除以平均騎行速度。平面上點A(x1,y1)與點B(x2,y2)的曼哈頓距離為:|x1-x2|+|y1-y2|。 假設(shè)一名外賣小哥的平均騎行速度為30km/h。下面的程序模擬計算外賣小哥的路上騎行時間,請你補充完整。 輸入:分兩次輸入A點和B點的坐標(biāo)值 輸出:A、B兩點間的曼哈頓距離和路上騎行時間。 #求絕對值 defmy_abs(n): if ① returnn else: return ② #主程序 v=30#平均騎行速度 x1=float(input('輸入A點的x坐標(biāo)(米):')) y1=float(input('輸入A點的y坐標(biāo)(米):'))x2=float(input('輸入B點的x坐標(biāo)(米):'))y2=float(input('輸入B點的y坐標(biāo)(米):')) #計算曼哈頓距離mht mht= ③ #計算路上騎行時間 time_on_the_road = ④ print('A、B兩點的曼哈頓距離為{}米'.format(mht)) print('預(yù)計路上騎行時間需要{}分鐘'.format(time_on_the_road))
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家具修復(fù)師知識培訓(xùn)課件
- 2025年教育創(chuàng)新:三角形三邊關(guān)系的課件開發(fā)
- 服務(wù)員實習(xí)工作總結(jié)范文
- DB31∕T 586-2012 甜菜夜蛾測報技術(shù)規(guī)范
- 海印布藝-家居總匯開業(yè)活動策劃方案【高端策劃】
- 公文寫作培訓(xùn)課程
- 物流系統(tǒng)分析 課件 項目九-任務(wù)三(二)集裝箱空箱調(diào)度優(yōu)化模型
- 金融服務(wù)客戶滿意度表
- 項目進展跟蹤與總結(jié)報告
- 承包經(jīng)營幼兒園協(xié)議書
- 精素材:描寫植物的好詞好句好段
- 【高中語文】《登岳陽樓》課件17張+統(tǒng)編版高中語文必修下冊
- 華師大版八年級數(shù)學(xué)下冊全冊教案
- 四下語文學(xué)情分析-2
- 家園合作培養(yǎng)幼兒勞動行為習(xí)慣的行動研究
- 中國的能源安全 課件
- 鄭州市某路雨水污水改造工程施工組織設(shè)計
- 對口升學(xué)計算機組裝試卷答案
- 期末總結(jié)600字四篇
- DCDC中恒定導(dǎo)通時間控制模式COT介紹
- 五險一金繳費明細(xì)表
評論
0/150
提交評論