江西省九江市全國計(jì)算機(jī)等級考試Python語言程序設(shè)計(jì)_第1頁
江西省九江市全國計(jì)算機(jī)等級考試Python語言程序設(shè)計(jì)_第2頁
江西省九江市全國計(jì)算機(jī)等級考試Python語言程序設(shè)計(jì)_第3頁
江西省九江市全國計(jì)算機(jī)等級考試Python語言程序設(shè)計(jì)_第4頁
江西省九江市全國計(jì)算機(jī)等級考試Python語言程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

江西省九江市全國計(jì)算機(jī)等級考試Python語言程序設(shè)計(jì)學(xué)校:________班級:________姓名:________考號:________

一、單選題(30題)1.下列算法中,最壞情況下時(shí)間復(fù)雜度最低的是()。

A.堆排序B.尋找最大項(xiàng)C.順序查找D.有序表的對分查找

2.下面代碼的輸出結(jié)果是()。deffun(x,y,z):u=x+y-zprint(u)fun(l+2j,5,4-lj)

A.NameErrorB.(2+3j)C.2D.3j

3.以下程序的輸出結(jié)果是()。deffibRate(n): ifn<=0: return-1 elifn==1: return-1 elifn==2: return1 else: L=[1,5] foriinrange(2,n): L.append(L[-1]+L[-2]) returnL[-2]%L[-1]print(fibRate(7))

A.0.6B.28C.-1D.1

4.以下選項(xiàng)中不是Python文件讀寫操作方法的是()。

A.write()B.writelines()C.readtext()D.read()

5.需求分析的主要任務(wù)是()。

A.確定軟件系統(tǒng)的功能B.確定軟件開發(fā)方法C.確定軟件開發(fā)工具D.確定軟件開發(fā)人員

6.以下不屬于Python的pip工具命令的選項(xiàng)是()。

A.showB.installC.一VD.download

7.以下python數(shù)據(jù)類型中不支持索引訪問的是()

A.字符串B.列表C.元組D.集合

8.在銀行業(yè)務(wù)中,實(shí)體客戶和實(shí)體銀行之間的聯(lián)系是()。

A.—對一B.—對多C.多對一D.多對多

9.下面關(guān)于對象和類的關(guān)系描述錯(cuò)誤的是()。

A.每個(gè)對象都是由其對應(yīng)的類創(chuàng)建出來的

B.對象是類的實(shí)例化

C.如果直接使用類名修改其屬性,不會影響到已經(jīng)實(shí)例化的對象

D.類是具有相同屬性和方法的對象的集合

10.以下關(guān)于Python中文件的打開模式的描述中,錯(cuò)誤的是()。

A.“a”表示追加寫模式,若文件存在,覆蓋原來的內(nèi)容

B.“r”表示只讀模式

C.“w”表示覆蓋寫模式,若文件存在,覆蓋原來的內(nèi)容

D.“x”創(chuàng)建新的文件

11.關(guān)于以下代碼的描述中,正確的是()。deffact(n):s=1Foriinrange(1,n+1):s*=ireturns

A.代碼中n是可選參數(shù)

B.faCt(n)函數(shù)功能為求n的階乘

C.s是全局變量

D.mnge()函數(shù)的范圍是[1,n+1]

12.以下程序的輸出結(jié)果是()。CLis=list(range(5))print(5inCLis)

A.TrueB.FalseC.0D.-1

13.下列關(guān)于Python中復(fù)數(shù)類型的描述錯(cuò)誤的是()。

A.復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成

B.復(fù)數(shù)可以看作是二元有序?qū)崝?shù)對(a,b)

C.虛數(shù)部分必須后綴j,且為小寫

D.復(fù)數(shù)中的虛數(shù)部分不能單獨(dú)存在,必須有實(shí)數(shù)部分

14.下面關(guān)于Python的說法正確的是()。

A.Python不支持面向?qū)ο蟪绦蛟O(shè)計(jì)

B.Python中使用的所有函數(shù)庫,都是采用Python語言編寫的

C.Python中的內(nèi)置函數(shù)需要用關(guān)鍵字import來導(dǎo)入,而不能直接使用

D.Python中如果導(dǎo)入了某個(gè)模塊,在后面的代碼中就可以使用它的所有公共函數(shù)、類及屬性

15.想查看BIFlen的文檔信息,輸入以下命令()

A.helplenB.help--lenC.lenhelpD.help(len)

16.執(zhí)行以下代碼的結(jié)果是()A.1B.2C.5D.8

17.以下程序的意義是()。>>>car=‘BWM’>>>id(car)

A.查看變量所占的位數(shù)B.轉(zhuǎn)換成布爾值C.查看變量在內(nèi)存中的地址D.把變量中的元素隨機(jī)排列

18.支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是()。

A.棧B.樹C.隊(duì)列D.二叉樹

19.以下語句不會引發(fā)異常的是()。

A.a=b=3+1jB.1+“1”C.3/0D.print“noerror”

20.執(zhí)行以下代碼的結(jié)果是?A.300B.400C.500D.600

21.用Pylnstaller工具打包Python源文件時(shí),-F參數(shù)的含義是()。

A.指定所需要的第三方庫路徑

B.在dist文件夾中只生成獨(dú)立的打包文件

C.指定生成打包文件的目錄

D.刪除生成的臨時(shí)文件

22.數(shù)據(jù)流圖(DFD)的作用是()。

A.描述軟件系統(tǒng)的控制流B.支持軟件系統(tǒng)功能建模C.支持軟件系統(tǒng)的面向?qū)ο蠓治鯠.描述軟件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)

23.關(guān)系數(shù)據(jù)庫中的鍵是指()。

A.關(guān)系的所有屬性B.關(guān)系的名稱C.關(guān)系的專用保留字D.能唯一標(biāo)識元組的屬性或?qū)傩约?/p>

24.以下不屬于Python機(jī)器學(xué)習(xí)第三方庫的是()。

A.PylonsB.TensorFlowC.KerasD.MXNet

25.以下關(guān)于Python的復(fù)數(shù)類型的描述中,錯(cuò)誤的是()。

A.復(fù)數(shù)可以進(jìn)行四則運(yùn)算

B.實(shí)部不可以為0

C.Python可以使用z.real和a.imag分另|]獲取它的實(shí)部和虛部

D.復(fù)數(shù)類型與數(shù)學(xué)中復(fù)數(shù)的概念一致

26.算法的空間復(fù)雜度是指()。

A.算法在執(zhí)行過程中所需要的計(jì)算機(jī)存儲空間

B.算法所處理的數(shù)據(jù)量

C.算法程序中的語句或指令條數(shù)

D.算法在執(zhí)行過程中所需要的臨時(shí)工作單元數(shù)

27.設(shè)棧與隊(duì)列初始狀態(tài)為空。首先A,B,C,D,E依次人棧,再F,G,H,I,J依次入隊(duì);然后依次出棧至??眨僖来纬鲫?duì)至隊(duì)空。則輸出序列為()。

A.F,G,H,I,J,A,B,C,D,E

B.F,G,H,I,J,E,D,C,B,A

C.E,D,C,B,A,J,I,H,G,F(xiàn)

D.E,D,C,B,A,F(xiàn),G,H,I,J

28.以下程序的輸出結(jié)果是()。letter=[‘A’,‘B’,‘C’,‘D’,‘D’,‘D’]foriinletter: ifi==‘D’: letter.remove(i)print(letter)

A.[‘A’,‘B’,‘C’]

B.[‘A’,‘B’,‘C’,‘D’,‘D’]

C.[‘A’,‘B’,‘C’,‘D’,‘D’,‘D’]

D.[‘A’,‘B’,‘C’,‘D’]

29.以下屬于Python的映射類型的是()。

A.strB.tupleC.listD.diet

30.以下程序的輸出結(jié)果是()。s=“LOVES”print(“{:*^13}”.format(s))

A.LOVESB.********LOVESC.LOVES********D.****LOVES****

二、判斷題(10題)31.在定義函數(shù)時(shí),某個(gè)參數(shù)名字前面帶有一個(gè)*符號表示可變長度參數(shù),可以接收任意多個(gè)普通實(shí)參并存放于一個(gè)元組之中。

A.是B.否

32.只能通過切片訪問元組中的元素,不能使用切片修改元組中的元素。

A.是B.否

33.對于Python類中的私有成員,可以通過“對象名._類名__私有成員名”的方式來訪問。

A.是B.否

34.全局變量會增加不同函數(shù)之間的隱式耦合度,從而降低代碼可讀性,因此應(yīng)盡量避免過多使用全局變量。

A.是B.否

35.已知seq為長度大于10的列表,并且已導(dǎo)入random模塊,那么[random.choice(seq)foriinrange(10)]和random.sample(seq,10)等價(jià)。

A.是B.否

36.安裝Python擴(kuò)展庫時(shí)只能使用pip工具在線安裝,如果安裝不成功就沒有別的辦法了。

A.是B.否

37.已知列表x=[1,2,3],那么執(zhí)行語句x=3之后,變量x的地址不變。A.是B.否

38.對于生成器對象x=(3foriinrange(5)),連續(xù)兩次執(zhí)行l(wèi)ist(x)的結(jié)果是一樣的。

A.是B.否

39.在Windows平臺上編寫的Python程序無法在Unix平臺運(yùn)行。A.是B.否

40.一個(gè)數(shù)字5也是合法的Python表達(dá)式。

A.是B.否

三、填空題(10題)41.表達(dá)式abs(3+4j)的值為____________。

42.表達(dá)式type('3')in(int,float,complex)的值為__________。

43.表達(dá)式''.join('asdssfff'.split('sd'))的值為____________。

44.表達(dá)式{1,2,3}<{1,2,4}的值為___________。

45.表達(dá)式len('中國'.encode('gbk'))的值為____________。

46.執(zhí)行代碼x,y,z=sorted([1,3,2])之后,變量y的值為______。

47.表達(dá)式sorted([111,2,33],key=lambdax:len(str(x)))的值為________________。

48.Python標(biāo)準(zhǔn)庫random中的___________方法作用是從序列中隨機(jī)選擇1個(gè)元素。

49.表達(dá)式sorted(['abc','acd','ade'],key=lambdax:(x[0],x[2]))的值為_____________。

50.字典對象的______________方法返回字典的“值”列表。

四、操作題(3題)51.考生文件夾下存在一個(gè)文件PY101.py,請寫代碼替換橫線,不修改其他代碼,實(shí)現(xiàn)以下功能:循環(huán)獲得用戶輸入,直至用戶輸入Y或者y字符退出程序。

試題程序:

#請?jiān)赺______處使用一行代碼或表達(dá)式替換

#注意:請不要修改其他已給出代碼while_________:

s=input(”請輸入信息:”)

if______:

break

52.某班學(xué)生評選一等獎(jiǎng)學(xué)金,學(xué)生的10門主干課成績存在考生文件夾下文件score.txt中,每行為一個(gè)學(xué)生的信息,分別記錄了學(xué)生學(xué)號、姓名以及10門課成績,格式如下:

1820161043

鄭珉鎬68668377567361696678

1820161044

沈紅偉91708l919680789l8994

從這些學(xué)生中選出獎(jiǎng)學(xué)金候選人,條件是:①總成績排名在前10名;②全部課程及格(成績大于等于60)。

問題1:給出按總成績從高到低排序的前10名學(xué)生名單,并寫入文件candidate0.txt,每行記錄一個(gè)學(xué)生的信息,分別為學(xué)生學(xué)號、姓名以及10門課成績。補(bǔ)充考生文件夾下文件PY301一1.py,完成這一功能。試題程序:

#請?jiān)凇幨褂枚嘈写a替換

##注意:其他已給出代碼僅作為提示,可以修改L=[]

#L中的元素是學(xué)生原始成績和總成績

…#此處可多行

L.sort(key=lambdax:x[一1],reverse=True)拌按學(xué)生總成績從大到小排序

…#此處可多行

問題2:讀取文件candidate0.txt,從中選出候選人,并將學(xué)號和姓名寫入文件candidate.txt,格式如下:

1010112161722

張三

1010112161728

李四

補(bǔ)充考生文件夾下文件PY301—2.py,完成這一功能。

試題程序:'''輸入文件:candidate0.txt輸出文件:candidate.txt'''

53.考生文件夾下存在一個(gè)文件“PY101.py”,請寫代碼替換橫線,不修改其他代碼,實(shí)現(xiàn)以下功能。獲取用戶輸入的一組數(shù)字,采用逗號分隔,輸出其中的最大值。示例如下:請輸入一組數(shù)據(jù),以逗號分隔:8,78,54,520,21,34輸出:520試題程序:#請?jiān)赺____處使用一行代碼或表達(dá)式替換#注意:請不要修改其他已給出代碼data=eval(input("請輸入一組數(shù)據(jù),以逗號分隔:"))print(_____)

參考答案

1.D對于長度為n的有序線性表,在最壞情況下,二分法查找(對分查找)需比較log2n次。對于長度為n的線性表,最壞情況下順序查找需要n次,尋找最大項(xiàng)需要n一1次,堆排序需要nlog2n次。故D項(xiàng)的時(shí)間復(fù)雜度最低。

2.Bfun()函數(shù)進(jìn)行加減計(jì)算,輸入為復(fù)數(shù),按復(fù)數(shù)加減運(yùn)算法則計(jì)算結(jié)果為(2+3j)。本題選擇B選項(xiàng)。

3.B將7傳遞給函數(shù)形參變量n,之后進(jìn)入多分支結(jié)構(gòu),依次判斷后,執(zhí)行else后面的語句。for語句為foriinrange(2,7),i從2依次變化到6,循環(huán)5次,將L[-1]+L[-2]的值通過append()方法加入列表L中。當(dāng)i=2時(shí),L[-1]+L[-2]=5+1=6,將6添加到列表L中,此時(shí)L=[1,5,6];當(dāng)i=3時(shí),L[-1]+L[-2]=6+5=11,將11添加到列表L中,此時(shí)L=[1,5,6,11];當(dāng)i=4時(shí),L[-1]+L[-2]=11+6=17,將17添加到列表L中,此時(shí)L=[1,5,6,11,17];當(dāng)i=5時(shí),L[-1]+L[-2]=17+11=28,將28添加到列表L中,此時(shí)L=[1,5,6,11,17,28];當(dāng)i=6時(shí),L[-1]+L[-2]=28+17=45,將45添加到列表L中,此時(shí)L=[1,5,6,11,17,28,45]。最后L[-2]%L[-1]=28%45=28,故程序輸出28。本題選擇B選項(xiàng)。

4.Cwrite():向文件寫入一個(gè)字符或字節(jié)流;writelines():將一個(gè)元素為字符串的列表整體寫入文件;read():從文件中讀入整個(gè)文件內(nèi)容。

5.A需求分析是軟件開發(fā)之前必須要做的準(zhǔn)備工作之一。需求是指用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。故需求分析的主要任務(wù)是確定軟件系統(tǒng)的功能。本題選擇A選項(xiàng)。

6.Cpip工具常用的命令有安裝(install)、下載(download)、卸載(uninstall)、列表(1ist)、查看(show)、查找(search)。一V屬于pyinstaller命令的常用參數(shù),不屬于命令。

7.D

8.D一個(gè)客戶可以在多家銀行辦理業(yè)務(wù),一家銀行也有多個(gè)客戶辦理業(yè)務(wù),因此,實(shí)體客戶和實(shí)體銀行之間的聯(lián)系是多對多。本題選擇D選項(xiàng)。

9.CA、B、D三項(xiàng)的論述都正確,符合類和對象的定義;C項(xiàng)當(dāng)直接使用類名修改屬性,會影響到已經(jīng)實(shí)例化的對象,錯(cuò)誤。

10.A在Python文件的打開方式中,a為追加寫模式,若文件存在,內(nèi)容追加在原文件內(nèi)容后面。本題選擇A選項(xiàng)。

11.B函數(shù)定義時(shí)的語法格式如下:def<函數(shù)名>(<非可選參數(shù)列表>,<可選參數(shù)>=<默認(rèn)值>):〈函數(shù)體〉return<返回值列表〉可選參數(shù)一般都放置在非可選參數(shù)的后面。本題代碼中,n為非可選參數(shù),fact(n)函數(shù)的功能為求n的階乘。s在函數(shù)內(nèi)部定義,為局部變量。根據(jù)range()函數(shù)的定義,range(l,n\n+l)的范圍是[l,n],不包含n+1。本題選擇B選項(xiàng)。

12.Brange()函數(shù)的語法是range(start,stop,step),作用是生成一個(gè)從start參數(shù)的值開始到stop參數(shù)的值結(jié)束的數(shù)字序列(注意不包含數(shù)stop),參數(shù)step是步長。CLis=list(range(5)),生成一個(gè)列表,包含0、1、2、3、4。因?yàn)?不在CLis列表中,所以返回False。本題選擇B選項(xiàng)。

13.CPython中復(fù)數(shù)類型的虛數(shù)部分的后綴可以為j或者J;復(fù)數(shù)的實(shí)部可以單獨(dú)存在,但是虛部不可以單獨(dú)存在;復(fù)數(shù)有實(shí)部和虛部構(gòu)成,可以使用z.real和z.imag分別獲得它的實(shí)部和虛部。

14.DA選項(xiàng),Python是支持面向?qū)ο蟪绦蛟O(shè)計(jì)的;B選項(xiàng),并不是所有的函數(shù)庫都是采用Python編寫的,很多采用C、C++、Java等語言編寫的專業(yè)庫可以經(jīng)過簡單的接口封裝供Python程序調(diào)用;C選項(xiàng),Python中的內(nèi)置函數(shù)可以直接使用而不需要用import來導(dǎo)入。本題選擇D選項(xiàng)。

15.D

16.C

17.Cid(x)是Python中的內(nèi)置函數(shù),用來查看變量在內(nèi)存中的地址。本題選擇C選項(xiàng)。

18.A棧支持子程序調(diào)用。棧是-種只能在-端進(jìn)行插入或刪除的線性表,在主程序調(diào)用子函數(shù)時(shí)要首先保存主程序當(dāng)前的狀態(tài),然后轉(zhuǎn)去執(zhí)行子程序,最終把子程序的執(zhí)行結(jié)果返回到主程序中調(diào)用子程序的位置,繼續(xù)向下執(zhí)行,這種調(diào)用符合棧的特點(diǎn),因此本題的答案為A。

19.A不同類型之間不能相互運(yùn)算;除數(shù)不能為0;print“noerror”語句是Python2.x系列的語法,不適用Python3.x系列。本題選擇A選項(xiàng)。

20.B

21.B-F是指在dlst文件夾中只生成獨(dú)立的打包文件(即.exe文件),所有的第三方依賴、資源和代碼均打包到此文件中。本題選擇B選項(xiàng)。

22.B數(shù)據(jù)流圖是系統(tǒng)邏輯模型的圖形表示,從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動(dòng)變化過程,它直接支持系統(tǒng)的功能建模。

23.D在關(guān)系(二維表)中凡是能唯一標(biāo)識元組的最小屬性集稱為該關(guān)系的鍵或者碼。

24.APylons是基于Python的一個(gè)Web開發(fā)框架的第三方庫,Keras、TenSorFlow和MXNet是Python機(jī)器學(xué)習(xí)領(lǐng)域的第三方庫。本題選擇A選項(xiàng)。

25.B在Python中,復(fù)數(shù)類型表示數(shù)學(xué)中的復(fù)數(shù),D項(xiàng)正確。復(fù)數(shù)可以看作二元有序?qū)崝?shù)對(a,b),表示a+bj,其中a是實(shí)數(shù)部分,簡稱實(shí)部,b是虛數(shù)部分,簡稱虛部。虛數(shù)部分通過后綴“J”或“j”來表示,實(shí)部、虛部都可為0。復(fù)數(shù)可以進(jìn)行四則運(yùn)算。A選項(xiàng)正確,B選項(xiàng)錯(cuò)誤。復(fù)數(shù)類型中,實(shí)部和虛部都是浮點(diǎn)數(shù)類型,對于復(fù)數(shù)z,可以使用z.\nreal和a.imag分別獲取它的實(shí)部和虛部,C選項(xiàng)正確。本題選擇B選項(xiàng)。

26.A算法的空間復(fù)雜度是指算法在執(zhí)行過程中所需要的內(nèi)存空間。本題選擇A選項(xiàng)。

27.D棧稱為“后進(jìn)先出”表或“先進(jìn)后出”的線性表;隊(duì)列稱為“先進(jìn)先出”或“后進(jìn)后出”的線性表。A,B,C,D,E依次入棧,則依次出棧順序?yàn)镋,D,C,B,A;F,G,H,I,J依次入隊(duì),則依次出隊(duì)順序?yàn)镕,G,H,I,J。故輸出順序?yàn)镋,D,C,B,A,F(xiàn),G,H,I,J。

28.D遍歷列表letter,當(dāng)i==‘D’時(shí),執(zhí)行l(wèi)etter.remove(i),此時(shí)列表letter=[‘A’,‘B’,‘C’,‘D’,‘D’];再次遍歷列表letter,當(dāng)i==‘D’時(shí),執(zhí)行l(wèi)etter.remove(i),此時(shí)列表letter=[‘A’,‘B’,‘C’,‘D’]。因?yàn)榱斜碇械脑仉S著“D”元素的刪除而減少,當(dāng)刪除第一個(gè)“D”元素之后,列表元素的個(gè)數(shù)變?yōu)?,for循環(huán)又是控制循環(huán)次數(shù)的,因此只遍歷5次;當(dāng)?shù)诙€(gè)“D”元素刪除時(shí),循環(huán)結(jié)束。本題選擇D選項(xiàng)。

29.D映射類型是“鍵-值”數(shù)據(jù)項(xiàng)的組合,每個(gè)元素是一個(gè)鍵值對,即元素是(key,\nvalue),元素之間是無序的。鍵值對是一種二元關(guān)系,源于屬性和值的映射關(guān)系。str、tuple及l(fā)ist都是序列類型,diet是映射類型。本題選擇D選項(xiàng)。

30.D其中,“{:*^13}”表示輸出的字符串長度為13,居中對齊,空白處用“*”填充。最后輸出的是****LOVES****。本題選擇D選項(xiàng)。

31.Y

32.Y

33.Y

34.Y

35.N

36.N

37.N

38.N

39.Npython代碼支持window和Linux下跨平臺

40.Y

41.5.0

42.FalseTrue

43.'assfff'

44.False

45.4

46.2

47.[2,33,111]

48.choice()

49.['abc','acd','ade']

50.values()

51.whileTrue:\r\n

s=input(”請輸入信息:”)\r\n

ifs=="y"ors=="Y":\r\n

break題目要求無限循環(huán),即while的條件一直為真,所以為True,根據(jù)鍵盤輸人的信息判斷是否結(jié)束循環(huán)。當(dāng)輸入的信息為y或Y時(shí)退出循環(huán),所以if的判斷條件為或的關(guān)系。

52.(1)L=[]\r\n

fo=open("score.txt","r")\r\n

fi=open("candidate0.txt","w")\r\n

lines=fo.readlines()\r\n

forlineinlines:\r\n

line=line.strip()\r\n

student=line.split('')\r\n

sum=0\r\n

foriinrange(1,11):\r\n

sum+=int(student[-i])\r\n

studene.append(str(sum))\r\n

L.append(student):\r\n

L.sort(key=lambda.x:x[一1],reverse=True)\r\nforiinrange(10):\r\nfi.write('',join(L[i][:-1])+'\\n')\r\nfo.close()\r\nfi.close()(2)'''\r\n輸入文件:candidate0.txt\r\n輸出文件:candidate.txt\r\n'''\r\nfo=open("candidate0.txt","r")\r\nfi=open("candlidate.txt","w")\r\nL=[]#存儲候選人\r\nlines=fo.readlines()\r\nforlineinlines:\r\n

line=line.strip()\r\n

student=line.split('')\r\n

foriinstudent[-10:]:\r\n

ifint(i)<60:\r\n

break\r\n

else:\r\n

I:append(student[:2])\r\nforiinL:\r\n

fi.write(''.join(i)+'\\n')\r\nfo.close()\r\nfi.close()(1)本題涉及”score.txt”和”candidate0.txt”兩個(gè)文件。首先要讀取”score.txt”文件中的信息,通過程序求出每個(gè)學(xué)生的總成績,然后按總成績從大到小排序,將總成績排名前10的學(xué)生的學(xué)號、姓名以及10門課成績寫入到”candidate0.txt”文件中。打開文件用open()函數(shù),用”r”只讀模式打開文件”score.txt”,用”w”模式創(chuàng)建文件”cand:idate0.txt”。\r\n

”score.txt”文件中每行為一個(gè)學(xué)生的信息,需要用readlines()函數(shù)讀入所有行,以每行為元素形成列表lines,然后用for循環(huán)遍歷該列表中的每個(gè)元素。在遍歷每個(gè)元素時(shí),用strip()方法刪除元素首尾出現(xiàn)的空格,用split()方法以空格分隔學(xué)生的學(xué)號、姓名以及10門課成績得到列表student。由于要求出總成績,因此要使用for遍歷每個(gè)學(xué)生的10門課成績,將其累加賦值給sum,并將sum追加到student中。最后將student中所有元素追加到列表L中。\r\n

隨后,對列表L中的元素進(jìn)行排序,用到sort()方法,參數(shù)”key=lambdax:x[一1]”中l(wèi)ambda是一個(gè)隱函數(shù),是固定寫法,不能寫成別的單詞;x表示列表中的一個(gè)元素,在這里表示一個(gè)列表(即一個(gè)學(xué)生的信息),x只是臨時(shí)起的一個(gè)名字,也可以使用任意的名字;x[一1]表示以列表中的最后一個(gè)元素(即總成績)排序。參數(shù)”reverse=True”表示按降序排序;若該參數(shù)缺省或”reverse=False”,表示按升序排序。\r\n

最后,通過for循環(huán)在列表L中提取出前10個(gè)元素(即前10名的學(xué)生信息,但不包含總成績),用空格分隔每個(gè)元素,并添加換行符,寫入到文件”candidate0.txt”中,再關(guān)閉所有文件。\r\n

(2)本題涉及”candidate0.txt”和”candidate.txt”兩個(gè)文件。首先要讀取”candidate0.txt”文件中的信息,通過程序判斷每個(gè)學(xué)生的所有課程成績是否都大于等于60,滿足條件的將該學(xué)生的學(xué)號和姓名寫入到”candidate.txt”文件中。打開文件用open()函數(shù),用”r”只讀模式打開文件”candidate0.txt”,用”w”模式創(chuàng)建文件”candidate.txt”,并定義一個(gè)列表L來存儲學(xué)號和姓名(做中轉(zhuǎn))。\r\n”candidate0.txt”文件中有10行數(shù)據(jù),需要用readlines()函數(shù)讀入所有行,以每行為元素形成列表lines,然后用for循環(huán)遍歷該列表中的每個(gè)元素。在遍歷每個(gè)元素時(shí),用strip()方法刪除元素首尾的空格,用split()方法以空格分隔學(xué)生的學(xué)號、姓名以及10門課成績得到列表student。然后對列表student使用for循環(huán)遍歷,用來判斷10門課程的成績是否都大于等于60,滿足條件就將列表student中的前兩個(gè)元素(即學(xué)號和姓名)追加到列表L中。\r\n

最后,通過for循環(huán)提取列表L中的所有元素,用空格分隔每個(gè)元素,并添加換行符,寫入到文件”candidate.txt”中,再關(guān)閉所有文件。

53.data=eval(input(“請輸入一組數(shù)據(jù),以逗號分隔:"))print(max(data)題目要求把輸入的數(shù)據(jù)中的最大值輸出,需使用max()方法。Input()方法接收的數(shù)據(jù)是字符串類型,字符串的比較是根據(jù)ASCII值進(jìn)行比較的,所以需要使用eval()方法把字符串類型轉(zhuǎn)換Python可執(zhí)行的類型,然后使用max()方法對變量data進(jìn)行比較,因此劃線的空格處應(yīng)填max(\r\ndata)。江西省九江市全國計(jì)算機(jī)等級考試Python語言程序設(shè)計(jì)學(xué)校:________班級:________姓名:________考號:________

一、單選題(30題)1.下列算法中,最壞情況下時(shí)間復(fù)雜度最低的是()。

A.堆排序B.尋找最大項(xiàng)C.順序查找D.有序表的對分查找

2.下面代碼的輸出結(jié)果是()。deffun(x,y,z):u=x+y-zprint(u)fun(l+2j,5,4-lj)

A.NameErrorB.(2+3j)C.2D.3j

3.以下程序的輸出結(jié)果是()。deffibRate(n): ifn<=0: return-1 elifn==1: return-1 elifn==2: return1 else: L=[1,5] foriinrange(2,n): L.append(L[-1]+L[-2]) returnL[-2]%L[-1]print(fibRate(7))

A.0.6B.28C.-1D.1

4.以下選項(xiàng)中不是Python文件讀寫操作方法的是()。

A.write()B.writelines()C.readtext()D.read()

5.需求分析的主要任務(wù)是()。

A.確定軟件系統(tǒng)的功能B.確定軟件開發(fā)方法C.確定軟件開發(fā)工具D.確定軟件開發(fā)人員

6.以下不屬于Python的pip工具命令的選項(xiàng)是()。

A.showB.installC.一VD.download

7.以下python數(shù)據(jù)類型中不支持索引訪問的是()

A.字符串B.列表C.元組D.集合

8.在銀行業(yè)務(wù)中,實(shí)體客戶和實(shí)體銀行之間的聯(lián)系是()。

A.—對一B.—對多C.多對一D.多對多

9.下面關(guān)于對象和類的關(guān)系描述錯(cuò)誤的是()。

A.每個(gè)對象都是由其對應(yīng)的類創(chuàng)建出來的

B.對象是類的實(shí)例化

C.如果直接使用類名修改其屬性,不會影響到已經(jīng)實(shí)例化的對象

D.類是具有相同屬性和方法的對象的集合

10.以下關(guān)于Python中文件的打開模式的描述中,錯(cuò)誤的是()。

A.“a”表示追加寫模式,若文件存在,覆蓋原來的內(nèi)容

B.“r”表示只讀模式

C.“w”表示覆蓋寫模式,若文件存在,覆蓋原來的內(nèi)容

D.“x”創(chuàng)建新的文件

11.關(guān)于以下代碼的描述中,正確的是()。deffact(n):s=1Foriinrange(1,n+1):s*=ireturns

A.代碼中n是可選參數(shù)

B.faCt(n)函數(shù)功能為求n的階乘

C.s是全局變量

D.mnge()函數(shù)的范圍是[1,n+1]

12.以下程序的輸出結(jié)果是()。CLis=list(range(5))print(5inCLis)

A.TrueB.FalseC.0D.-1

13.下列關(guān)于Python中復(fù)數(shù)類型的描述錯(cuò)誤的是()。

A.復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成

B.復(fù)數(shù)可以看作是二元有序?qū)崝?shù)對(a,b)

C.虛數(shù)部分必須后綴j,且為小寫

D.復(fù)數(shù)中的虛數(shù)部分不能單獨(dú)存在,必須有實(shí)數(shù)部分

14.下面關(guān)于Python的說法正確的是()。

A.Python不支持面向?qū)ο蟪绦蛟O(shè)計(jì)

B.Python中使用的所有函數(shù)庫,都是采用Python語言編寫的

C.Python中的內(nèi)置函數(shù)需要用關(guān)鍵字import來導(dǎo)入,而不能直接使用

D.Python中如果導(dǎo)入了某個(gè)模塊,在后面的代碼中就可以使用它的所有公共函數(shù)、類及屬性

15.想查看BIFlen的文檔信息,輸入以下命令()

A.helplenB.help--lenC.lenhelpD.help(len)

16.執(zhí)行以下代碼的結(jié)果是()A.1B.2C.5D.8

17.以下程序的意義是()。>>>car=‘BWM’>>>id(car)

A.查看變量所占的位數(shù)B.轉(zhuǎn)換成布爾值C.查看變量在內(nèi)存中的地址D.把變量中的元素隨機(jī)排列

18.支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是()。

A.棧B.樹C.隊(duì)列D.二叉樹

19.以下語句不會引發(fā)異常的是()。

A.a=b=3+1jB.1+“1”C.3/0D.print“noerror”

20.執(zhí)行以下代碼的結(jié)果是?A.300B.400C.500D.600

21.用Pylnstaller工具打包Python源文件時(shí),-F參數(shù)的含義是()。

A.指定所需要的第三方庫路徑

B.在dist文件夾中只生成獨(dú)立的打包文件

C.指定生成打包文件的目錄

D.刪除生成的臨時(shí)文件

22.數(shù)據(jù)流圖(DFD)的作用是()。

A.描述軟件系統(tǒng)的控制流B.支持軟件系統(tǒng)功能建模C.支持軟件系統(tǒng)的面向?qū)ο蠓治鯠.描述軟件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)

23.關(guān)系數(shù)據(jù)庫中的鍵是指()。

A.關(guān)系的所有屬性B.關(guān)系的名稱C.關(guān)系的專用保留字D.能唯一標(biāo)識元組的屬性或?qū)傩约?/p>

24.以下不屬于Python機(jī)器學(xué)習(xí)第三方庫的是()。

A.PylonsB.TensorFlowC.KerasD.MXNet

25.以下關(guān)于Python的復(fù)數(shù)類型的描述中,錯(cuò)誤的是()。

A.復(fù)數(shù)可以進(jìn)行四則運(yùn)算

B.實(shí)部不可以為0

C.Python可以使用z.real和a.imag分另|]獲取它的實(shí)部和虛部

D.復(fù)數(shù)類型與數(shù)學(xué)中復(fù)數(shù)的概念一致

26.算法的空間復(fù)雜度是指()。

A.算法在執(zhí)行過程中所需要的計(jì)算機(jī)存儲空間

B.算法所處理的數(shù)據(jù)量

C.算法程序中的語句或指令條數(shù)

D.算法在執(zhí)行過程中所需要的臨時(shí)工作單元數(shù)

27.設(shè)棧與隊(duì)列初始狀態(tài)為空。首先A,B,C,D,E依次人棧,再F,G,H,I,J依次入隊(duì);然后依次出棧至棧空,再依次出隊(duì)至隊(duì)空。則輸出序列為()。

A.F,G,H,I,J,A,B,C,D,E

B.F,G,H,I,J,E,D,C,B,A

C.E,D,C,B,A,J,I,H,G,F(xiàn)

D.E,D,C,B,A,F(xiàn),G,H,I,J

28.以下程序的輸出結(jié)果是()。letter=[‘A’,‘B’,‘C’,‘D’,‘D’,‘D’]foriinletter: ifi==‘D’: letter.remove(i)print(letter)

A.[‘A’,‘B’,‘C’]

B.[‘A’,‘B’,‘C’,‘D’,‘D’]

C.[‘A’,‘B’,‘C’,‘D’,‘D’,‘D’]

D.[‘A’,‘B’,‘C’,‘D’]

29.以下屬于Python的映射類型的是()。

A.strB.tupleC.listD.diet

30.以下程序的輸出結(jié)果是()。s=“LOVES”print(“{:*^13}”.format(s))

A.LOVESB.********LOVESC.LOVES********D.****LOVES****

二、判斷題(10題)31.在定義函數(shù)時(shí),某個(gè)參數(shù)名字前面帶有一個(gè)*符號表示可變長度參數(shù),可以接收任意多個(gè)普通實(shí)參并存放于一個(gè)元組之中。

A.是B.否

32.只能通過切片訪問元組中的元素,不能使用切片修改元組中的元素。

A.是B.否

33.對于Python類中的私有成員,可以通過“對象名._類名__私有成員名”的方式來訪問。

A.是B.否

34.全局變量會增加不同函數(shù)之間的隱式耦合度,從而降低代碼可讀性,因此應(yīng)盡量避免過多使用全局變量。

A.是B.否

35.已知seq為長度大于10的列表,并且已導(dǎo)入random模塊,那么[random.choice(seq)foriinrange(10)]和random.sample(seq,10)等價(jià)。

A.是B.否

36.安裝Python擴(kuò)展庫時(shí)只能使用pip工具在線安裝,如果安裝不成功就沒有別的辦法了。

A.是B.否

37.已知列表x=[1,2,3],那么執(zhí)行語句x=3之后,變量x的地址不變。A.是B.否

38.對于生成器對象x=(3foriinrange(5)),連續(xù)兩次執(zhí)行l(wèi)ist(x)的結(jié)果是一樣的。

A.是B.否

39.在Windows平臺上編寫的Python程序無法在Unix平臺運(yùn)行。A.是B.否

40.一個(gè)數(shù)字5也是合法的Python表達(dá)式。

A.是B.否

三、填空題(10題)41.表達(dá)式abs(3+4j)的值為____________。

42.表達(dá)式type('3')in(int,float,complex)的值為__________。

43.表達(dá)式''.join('asdssfff'.split('sd'))的值為____________。

44.表達(dá)式{1,2,3}<{1,2,4}的值為___________。

45.表達(dá)式len('中國'.encode('gbk'))的值為____________。

46.執(zhí)行代碼x,y,z=sorted([1,3,2])之后,變量y的值為______。

47.表達(dá)式sorted([111,2,33],key=lambdax:len(str(x)))的值為________________。

48.Python標(biāo)準(zhǔn)庫random中的___________方法作用是從序列中隨機(jī)選擇1個(gè)元素。

49.表達(dá)式sorted(['abc','acd','ade'],key=lambdax:(x[0],x[2]))的值為_____________。

50.字典對象的______________方法返回字典的“值”列表。

四、操作題(3題)51.考生文件夾下存在一個(gè)文件PY101.py,請寫代碼替換橫線,不修改其他代碼,實(shí)現(xiàn)以下功能:循環(huán)獲得用戶輸入,直至用戶輸入Y或者y字符退出程序。

試題程序:

#請?jiān)赺______處使用一行代碼或表達(dá)式替換

#注意:請不要修改其他已給出代碼while_________:

s=input(”請輸入信息:”)

if______:

break

52.某班學(xué)生評選一等獎(jiǎng)學(xué)金,學(xué)生的10門主干課成績存在考生文件夾下文件score.txt中,每行為一個(gè)學(xué)生的信息,分別記錄了學(xué)生學(xué)號、姓名以及10門課成績,格式如下:

1820161043

鄭珉鎬68668377567361696678

1820161044

沈紅偉91708l919680789l8994

從這些學(xué)生中選出獎(jiǎng)學(xué)金候選人,條件是:①總成績排名在前10名;②全部課程及格(成績大于等于60)。

問題1:給出按總成績從高到低排序的前10名學(xué)生名單,并寫入文件candidate0.txt,每行記錄一個(gè)學(xué)生的信息,分別為學(xué)生學(xué)號、姓名以及10門課成績。補(bǔ)充考生文件夾下文件PY301一1.py,完成這一功能。試題程序:

#請?jiān)凇幨褂枚嘈写a替換

##注意:其他已給出代碼僅作為提示,可以修改L=[]

#L中的元素是學(xué)生原始成績和總成績

…#此處可多行

L.sort(key=lambdax:x[一1],reverse=True)拌按學(xué)生總成績從大到小排序

…#此處可多行

問題2:讀取文件candidate0.txt,從中選出候選人,并將學(xué)號和姓名寫入文件candidate.txt,格式如下:

1010112161722

張三

1010112161728

李四

補(bǔ)充考生文件夾下文件PY301—2.py,完成這一功能。

試題程序:'''輸入文件:candidate0.txt輸出文件:candidate.txt'''

53.考生文件夾下存在一個(gè)文件“PY101.py”,請寫代碼替換橫線,不修改其他代碼,實(shí)現(xiàn)以下功能。獲取用戶輸入的一組數(shù)字,采用逗號分隔,輸出其中的最大值。示例如下:請輸入一組數(shù)據(jù),以逗號分隔:8,78,54,520,21,34輸出:520試題程序:#請?jiān)赺____處使用一行代碼或表達(dá)式替換#注意:請不要修改其他已給出代碼data=eval(input("請輸入一組數(shù)據(jù),以逗號分隔:"))print(_____)

參考答案

1.D對于長度為n的有序線性表,在最壞情況下,二分法查找(對分查找)需比較log2n次。對于長度為n的線性表,最壞情況下順序查找需要n次,尋找最大項(xiàng)需要n一1次,堆排序需要nlog2n次。故D項(xiàng)的時(shí)間復(fù)雜度最低。

2.Bfun()函數(shù)進(jìn)行加減計(jì)算,輸入為復(fù)數(shù),按復(fù)數(shù)加減運(yùn)算法則計(jì)算結(jié)果為(2+3j)。本題選擇B選項(xiàng)。

3.B將7傳遞給函數(shù)形參變量n,之后進(jìn)入多分支結(jié)構(gòu),依次判斷后,執(zhí)行else后面的語句。for語句為foriinrange(2,7),i從2依次變化到6,循環(huán)5次,將L[-1]+L[-2]的值通過append()方法加入列表L中。當(dāng)i=2時(shí),L[-1]+L[-2]=5+1=6,將6添加到列表L中,此時(shí)L=[1,5,6];當(dāng)i=3時(shí),L[-1]+L[-2]=6+5=11,將11添加到列表L中,此時(shí)L=[1,5,6,11];當(dāng)i=4時(shí),L[-1]+L[-2]=11+6=17,將17添加到列表L中,此時(shí)L=[1,5,6,11,17];當(dāng)i=5時(shí),L[-1]+L[-2]=17+11=28,將28添加到列表L中,此時(shí)L=[1,5,6,11,17,28];當(dāng)i=6時(shí),L[-1]+L[-2]=28+17=45,將45添加到列表L中,此時(shí)L=[1,5,6,11,17,28,45]。最后L[-2]%L[-1]=28%45=28,故程序輸出28。本題選擇B選項(xiàng)。

4.Cwrite():向文件寫入一個(gè)字符或字節(jié)流;writelines():將一個(gè)元素為字符串的列表整體寫入文件;read():從文件中讀入整個(gè)文件內(nèi)容。

5.A需求分析是軟件開發(fā)之前必須要做的準(zhǔn)備工作之一。需求是指用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計(jì)約束等方面的期望。故需求分析的主要任務(wù)是確定軟件系統(tǒng)的功能。本題選擇A選項(xiàng)。

6.Cpip工具常用的命令有安裝(install)、下載(download)、卸載(uninstall)、列表(1ist)、查看(show)、查找(search)。一V屬于pyinstaller命令的常用參數(shù),不屬于命令。

7.D

8.D一個(gè)客戶可以在多家銀行辦理業(yè)務(wù),一家銀行也有多個(gè)客戶辦理業(yè)務(wù),因此,實(shí)體客戶和實(shí)體銀行之間的聯(lián)系是多對多。本題選擇D選項(xiàng)。

9.CA、B、D三項(xiàng)的論述都正確,符合類和對象的定義;C項(xiàng)當(dāng)直接使用類名修改屬性,會影響到已經(jīng)實(shí)例化的對象,錯(cuò)誤。

10.A在Python文件的打開方式中,a為追加寫模式,若文件存在,內(nèi)容追加在原文件內(nèi)容后面。本題選擇A選項(xiàng)。

11.B函數(shù)定義時(shí)的語法格式如下:def<函數(shù)名>(<非可選參數(shù)列表>,<可選參數(shù)>=<默認(rèn)值>):〈函數(shù)體〉return<返回值列表〉可選參數(shù)一般都放置在非可選參數(shù)的后面。本題代碼中,n為非可選參數(shù),fact(n)函數(shù)的功能為求n的階乘。s在函數(shù)內(nèi)部定義,為局部變量。根據(jù)range()函數(shù)的定義,range(l,n\n+l)的范圍是[l,n],不包含n+1。本題選擇B選項(xiàng)。

12.Brange()函數(shù)的語法是range(start,stop,step),作用是生成一個(gè)從start參數(shù)的值開始到stop參數(shù)的值結(jié)束的數(shù)字序列(注意不包含數(shù)stop),參數(shù)step是步長。CLis=list(range(5)),生成一個(gè)列表,包含0、1、2、3、4。因?yàn)?不在CLis列表中,所以返回False。本題選擇B選項(xiàng)。

13.CPython中復(fù)數(shù)類型的虛數(shù)部分的后綴可以為j或者J;復(fù)數(shù)的實(shí)部可以單獨(dú)存在,但是虛部不可以單獨(dú)存在;復(fù)數(shù)有實(shí)部和虛部構(gòu)成,可以使用z.real和z.imag分別獲得它的實(shí)部和虛部。

14.DA選項(xiàng),Python是支持面向?qū)ο蟪绦蛟O(shè)計(jì)的;B選項(xiàng),并不是所有的函數(shù)庫都是采用Python編寫的,很多采用C、C++、Java等語言編寫的專業(yè)庫可以經(jīng)過簡單的接口封裝供Python程序調(diào)用;C選項(xiàng),Python中的內(nèi)置函數(shù)可以直接使用而不需要用import來導(dǎo)入。本題選擇D選項(xiàng)。

15.D

16.C

17.Cid(x)是Python中的內(nèi)置函數(shù),用來查看變量在內(nèi)存中的地址。本題選擇C選項(xiàng)。

18.A棧支持子程序調(diào)用。棧是-種只能在-端進(jìn)行插入或刪除的線性表,在主程序調(diào)用子函數(shù)時(shí)要首先保存主程序當(dāng)前的狀態(tài),然后轉(zhuǎn)去執(zhí)行子程序,最終把子程序的執(zhí)行結(jié)果返回到主程序中調(diào)用子程序的位置,繼續(xù)向下執(zhí)行,這種調(diào)用符合棧的特點(diǎn),因此本題的答案為A。

19.A不同類型之間不能相互運(yùn)算;除數(shù)不能為0;print“noerror”語句是Python2.x系列的語法,不適用Python3.x系列。本題選擇A選項(xiàng)。

20.B

21.B-F是指在dlst文件夾中只生成獨(dú)立的打包文件(即.exe文件),所有的第三方依賴、資源和代碼均打包到此文件中。本題選擇B選項(xiàng)。

22.B數(shù)據(jù)流圖是系統(tǒng)邏輯模型的圖形表示,從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動(dòng)變化過程,它直接支持系統(tǒng)的功能建模。

23.D在關(guān)系(二維表)中凡是能唯一標(biāo)識元組的最小屬性集稱為該關(guān)系的鍵或者碼。

24.APylons是基于Python的一個(gè)Web開發(fā)框架的第三方庫,Keras、TenSorFlow和MXNet是Python機(jī)器學(xué)習(xí)領(lǐng)域的第三方庫。本題選擇A選項(xiàng)。

25.B在Python中,復(fù)數(shù)類型表示數(shù)學(xué)中的復(fù)數(shù),D項(xiàng)正確。復(fù)數(shù)可以看作二元有序?qū)崝?shù)對(a,b),表示a+bj,其中a是實(shí)數(shù)部分,簡稱實(shí)部,b是虛數(shù)部分,簡稱虛部。虛數(shù)部分通過后綴“J”或“j”來表示,實(shí)部、虛部都可為0。復(fù)數(shù)可以進(jìn)行四則運(yùn)算。A選項(xiàng)正確,B選項(xiàng)錯(cuò)誤。復(fù)數(shù)類型中,實(shí)部和虛部都是浮點(diǎn)數(shù)類型,對于復(fù)數(shù)z,可以使用z.\nreal和a.imag分別獲取它的實(shí)部和虛部,C選項(xiàng)正確。本題選擇B選項(xiàng)。

26.A算法的空間復(fù)雜度是指算法在執(zhí)行過程中所需要的內(nèi)存空間。本題選擇A選項(xiàng)。

27.D棧稱為“后進(jìn)先出”表或“先進(jìn)后出”的線性表;隊(duì)列稱為“先進(jìn)先出”或“后進(jìn)后出”的線性表。A,B,C,D,E依次入棧,則依次出棧順序?yàn)镋,D,C,B,A;F,G,H,I,J依次入隊(duì),則依次出隊(duì)順序?yàn)镕,G,H,I,J。故輸出順序?yàn)镋,D,C,B,A,F(xiàn),G,H,I,J。

28.D遍歷列表letter,當(dāng)i==‘D’時(shí),執(zhí)行l(wèi)etter.remove(i),此時(shí)列表letter=[‘A’,‘B’,‘C’,‘D’,‘D’];再次遍歷列表letter,當(dāng)i==‘D’時(shí),執(zhí)行l(wèi)etter.remove(i),此時(shí)列表letter=[‘A’,‘B’,‘C’,‘D’]。因?yàn)榱斜碇械脑仉S著“D”元素的刪除而減少,當(dāng)刪除第一個(gè)“D”元素之后,列表元素的個(gè)數(shù)變?yōu)?,for循環(huán)又是控制循環(huán)次數(shù)的,因此只遍歷5次;當(dāng)?shù)诙€(gè)“D”元素刪除時(shí),循環(huán)結(jié)束。本題選擇D選項(xiàng)。

29.D映射類型是“鍵-值”數(shù)據(jù)項(xiàng)的組合,每個(gè)元素是一個(gè)鍵值對,即元素是(key,\nvalue),元素之間是無序的。鍵值對是一種二元關(guān)系,源于屬性和值的映射關(guān)系。str、tuple及l(fā)ist都是序列類型,diet是映射類型。本題選擇D選項(xiàng)。

30.D其中,“{:*^13}”表示輸出的字符串長度為13,居中對齊,空白處用“*”填充。最后輸出的是****LOVES****。本題選擇D選項(xiàng)。

31.Y

32.Y

33.Y

34.Y

35.N

36.N

37.N

38.N

39.Npython代碼支持window和Linux下跨平臺

40.Y

41.5.0

42.FalseTrue

43.'assfff'

44.False

45.4

46.2

47.[2,33,111]

48.choice()

49.['abc','acd','ade']

50.values()

51.whileTrue:\r\n

s=input(”請輸入信息:”)\r\n

ifs=="y"ors=="Y":\r\n

break題目要求無限循環(huán),即while的條件一直為真,所以為True,根據(jù)鍵盤輸人的信息判斷是否結(jié)束循環(huán)。當(dāng)輸入的信息為y或Y時(shí)退出循環(huán),所以if的判斷條件為或的關(guān)系。

52.(1)L=[]\r\n

fo=open("score.txt","r")\r\n

fi=open("candidate0.txt","w")\r\n

lines=fo.readlines()\r\n

forlineinlines:\r\n

line=line.strip()\r\n

student=line.split('')\r\n

sum=0\r\n

foriinrange(1,11):\r\n

sum+=int(student[-i])\r\n

studene.append(str(sum))\r\n

L.append(student):\r\n

L.sort(key=lambda.x:x[一1],reverse=True)\r\nforiinrange(10):\r\nfi.write('',join(L[i][:-1])+'\\n')\r\nfo.close()\r\nfi.close()(2)'''\r\n輸入文件:candidate0.txt\r\n輸出文件:candidate.txt\r\n'''\r\nfo=open("candidate0.txt","r")\r\nfi=open("candlidate.txt","w")\r\nL=[]#存儲候選人\r\nlines=fo.readlines()\r\nforlineinlines:\r\n

line=line.strip()\r\n

student=line.split('')\r\n

foriinstudent[-10:]:\r\n

ifint(i)<60:\r\n

break\r\n

else:\r\n

I:append(student[:2])\r\nforiinL:\r\n

fi.write(''.join(i)+'\\n')\r\nfo.close()\r\nfi.close()(1)本題涉及”score.txt”和”candidate0.txt”兩個(gè)文件。首先要讀取”score.txt”文件中的信息,通過程序求出每個(gè)學(xué)生的總成績,然后按總成績從大到小排序,將總成績排名前10的學(xué)生的學(xué)號、姓名以及10門課成績寫入到”candidate0.txt”文件中。打開文件用open()函數(shù),用”r”只讀模式打開文件”score.txt”,用”w”模式創(chuàng)建文件”cand:idate0.txt”。\r\n

”score.txt”文件中每行為一個(gè)學(xué)生的信息,需要用readlines()函數(shù)讀入所有行,以每行為元素形成列表lines,然后用for循環(huán)遍歷該列表中的每個(gè)元素。在遍歷每個(gè)元素時(shí),用strip()方法刪除元素首尾出現(xiàn)的空格,用split()方法以空格分隔學(xué)生的學(xué)號、姓名以及10門課成績得到列表student。由于要求出總成績,因此要使用for遍歷每個(gè)學(xué)生的10門課成績,將其累加賦值給sum,并將sum追加到student中。最后將student中所有元素追加到列表L中。\r\n

隨后,對列表L中的元素進(jìn)行排序,用到sort()方法,參數(shù)”key=lambdax:x[一1]”中l(wèi)ambda是一個(gè)隱函數(shù),是固定寫法,不能寫成別的單詞;x表示列表中的一個(gè)元素,在這里表示一個(gè)列表(即一個(gè)學(xué)生的信息),x只是臨時(shí)起的一個(gè)名字,也可以使用任意的名字;x[一1]表示以列表中的最后一個(gè)元素(即總成績)排序。參數(shù)”reverse=True”表示按降序排序;若該參數(shù)缺省或”reverse=False”,表示按升序排序。\r\n

最后,通過for循環(huán)在列表L中提取出前10個(gè)元素(即前10名的學(xué)生信息,但不包含總成績),用空格分隔每個(gè)元素,并添加換行符,寫入到文件”candidate0.txt”中,再關(guān)閉所有文件。\r\n

(2)本題涉及”candidate0.txt”和”candidate.txt”兩個(gè)文件。首先要讀取”candidate0.txt”文件中的信息,通過程序判斷每個(gè)學(xué)生的所有課程成績是否都大于等于60,滿足條件的將該學(xué)生的學(xué)號和姓名寫入到”candidate.txt”文件中。打開文件用open()函數(shù),用”r”只讀模式打開文件”candidate0.txt”,用”w”模式創(chuàng)建文件”candidate.txt”,并定義一個(gè)列表L來存儲學(xué)號和姓名(做中轉(zhuǎn))。\r\n”candidate0.txt”文件中有10行數(shù)據(jù),需要用readlines()函數(shù)讀入所有行,以每行為元素形成列表lines,然后用for循環(huán)遍歷該列表中的每個(gè)元素。在遍歷每個(gè)元素時(shí),用strip()方法刪除元素首尾的空格,用split()方法以空格分隔學(xué)生的學(xué)號、姓名以及10門課成績得到列表student。然后對列表student使用for循環(huán)遍歷,用來判斷10門課程的成績是否都大于等于60,滿足條件就將列表student中的前兩個(gè)元素(即學(xué)號和姓名)追加到列表L中。\r\n

最后,通過for循環(huán)提取列表L中的所有元素,用空格分隔每個(gè)元素,并添加換行符,寫入到文件”candidate.txt”中,再關(guān)閉所有文件。

53.data=eval(input(“請輸入一組數(shù)據(jù),以逗號分隔:"))print(max(data)題目要求把輸入的數(shù)據(jù)中的最大值輸出,需使用max()方法。Input()方法接收的數(shù)據(jù)是字符串類型,字符串的比較是根據(jù)ASCII值進(jìn)行比較的,所以需要使用eval()方法把字符串類型轉(zhuǎn)換Python可執(zhí)行的類型,然后使用max()方法對變量data進(jìn)行比較,因此劃線的空格處應(yīng)填max(\r\ndata)。江西省九江市全國計(jì)算機(jī)等級考試Python語言程序設(shè)計(jì)學(xué)校:________班級:________姓名:________考號:________

一、單選題(30題)1.下列算法中,最壞情況下時(shí)間復(fù)雜度最低的是()。

A.堆排序B.尋找最大項(xiàng)C.順序查找D.有序表的對分查找

2.下面代碼的輸出結(jié)果是()。deffun(x,y,z):u=x+y-zprint(u)fun(l+2j,5,4-lj)

A.NameErrorB.(2+3j)C.2D.3j

3.以下程序的輸出結(jié)果是()。deffibRate(n): ifn<=0: return-1 elifn==1: return-1 elifn==2: return1 else: L=[1,5] foriinrange(2,n): L.append(L[-1]+L[-2]) returnL[-2]%L[-1]print(fibRate(7))

A.0.6B.28C.-1D.1

4.以下選項(xiàng)中不是Python文件讀寫操作方法的是()。

A.write()B.writelines()C.readtext()D.read()

5.需求分析的主要任務(wù)是()。

A.確定軟件系統(tǒng)的功能B.確定軟件開發(fā)方法C.確定軟件開發(fā)工具D.確定軟件開發(fā)人員

6.以下不屬于Python的pip工具命令的選項(xiàng)是()。

A.showB.installC.一VD.download

7.以下python數(shù)據(jù)類型中不支持索引訪問的是()

A.字符串B.列表C.元組D.集合

8.在銀行業(yè)務(wù)中,實(shí)體客戶和實(shí)體銀行之間的聯(lián)系是()。

A.—對一B.—對多C.多對一D.多對多

9.下面關(guān)于對象和類的關(guān)系描述錯(cuò)誤的是()。

A.每個(gè)對象都是由其對應(yīng)的類創(chuàng)建出來的

B.對象是類的實(shí)例化

C.如果直接使用類名修改其屬性,不會影響到已經(jīng)實(shí)例化的對象

D.類是具有相同屬性和方法的對象的集合

10.以下關(guān)于Python中文件的打開模式的描述中,錯(cuò)誤的是()。

A.“a”表示追加寫模式,若文件存在,覆蓋原來的內(nèi)容

B.“r”表示只讀模式

C.“w”表示覆蓋寫模式,若文件存在,覆蓋原來的內(nèi)容

D.“x”創(chuàng)建新的文件

11.關(guān)于以下代碼的描述中,正確的是()。deffact(n):s=1Foriinrange(1,n+1):s*=ireturns

A.代碼中n是可選參數(shù)

B.faCt(n)函數(shù)功能為求n的階乘

C.s是全局變量

D.mnge()函數(shù)的范圍是[1,n+1]

12.以下程序的輸出結(jié)果是()。CLis=list(range(5))print(5inCLis)

A.TrueB.FalseC.0D.-1

13.下列關(guān)于Python中復(fù)數(shù)類型的描述錯(cuò)誤的是()。

A.復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成

B.復(fù)數(shù)可以看作是二元有序?qū)崝?shù)對(a,b)

C.虛數(shù)部分必須后綴j,且為小寫

D.復(fù)數(shù)中的虛數(shù)部分不能單獨(dú)存在,必須有實(shí)數(shù)部分

14.下面關(guān)于Python的說法正確的是()。

A.Python不支持面向?qū)ο蟪绦蛟O(shè)計(jì)

B.Python中使用的所有函數(shù)庫,都是采用Python語言編寫的

C.Python中的內(nèi)置函數(shù)需要用關(guān)鍵字import來導(dǎo)入,而不能直接使用

D.Python中如果導(dǎo)入了某個(gè)模塊,在后面的代碼中就可以使用它的所有公共函數(shù)、類及屬性

15.想查看BIFlen的文檔信息,輸入以下命令()

A.helplenB.help--lenC.lenhelpD.help(len)

16.執(zhí)行以下代碼的結(jié)果是()A.1B.2C.5D.8

17.以下程序的意義是()。>>>car=‘BWM’>>>id(car)

A.查看變量所占的位數(shù)B.轉(zhuǎn)換成布爾值C.查看變量在內(nèi)存中的地址D.把變量中的元素隨機(jī)排列

18.支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是()。

A.棧B.樹C.隊(duì)列D.二叉樹

19.以下語句不會引發(fā)異常的是()。

A.a=b=3+1jB.1+“1”C.3/0D.print“noerror”

20.執(zhí)行以下代碼的結(jié)果是?A.300B.400C.500D.600

21.用Pylnstaller工具打包Python源文件時(shí),-F參數(shù)的含義是()。

A.指定所需要的第三方庫路徑

B.在dist文件夾中只生成獨(dú)立的打包文件

C.指定生成打包文件的目錄

D.刪除生成的臨時(shí)文件

22.數(shù)據(jù)流圖(DFD)的作用是()。

A.描述軟件系統(tǒng)的控制流B.支持軟件系統(tǒng)功能建模C.支持軟件系統(tǒng)的面向?qū)ο蠓治鯠.描述軟件系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)

23.關(guān)系數(shù)據(jù)庫中的鍵是指()。

A.關(guān)系的所有屬性B.關(guān)系的名稱C.關(guān)系的專用保留字D.能唯一標(biāo)識元組的屬性或?qū)傩约?/p>

24.以下不屬于Python機(jī)器學(xué)習(xí)第三方庫的是()。

A.PylonsB.TensorFlowC.KerasD.MXNet

25.以下關(guān)于Python的復(fù)數(shù)類型的描述中,錯(cuò)誤的是()。

A.復(fù)數(shù)可以進(jìn)行四則運(yùn)算

B.實(shí)部不可以為0

C.Python可以使用z.real和a.imag分另|]獲取它的實(shí)部和虛部

D.復(fù)數(shù)類型與數(shù)學(xué)中復(fù)數(shù)的概念一致

26.算法的空間復(fù)雜度是指()。

A.算法在執(zhí)行過程中所需要的計(jì)算機(jī)存儲空間

B.算法所處理的數(shù)據(jù)量

C.算法程序中的語句或指令條數(shù)

D.算法在執(zhí)行過程中所需要的臨時(shí)工作單元數(shù)

27.設(shè)棧與隊(duì)列初始狀態(tài)為空。首先A,B,C,D,E依次人棧,再F,G,H,I,J依次入隊(duì);然后依次出棧至???,再依次出隊(duì)至隊(duì)空。則輸出序列為()。

A.F,G,H,I,J,A,B,C,D,E

B.F,G,H,I,J,E,D,C,B,A

C.E,D,C,B,A,J,I,H,G,F(xiàn)

D.E,D,C,B,A,F(xiàn),G,H,I,J

28.以下程序的輸出結(jié)果是()。letter=[‘A’,‘B’,‘C’,‘D’,‘D’,‘D’]foriinletter: ifi==‘D’: letter.remove(i)print(letter)

A.[‘A’,‘B’,‘C’]

B.[‘A’,‘B’,‘C’,‘D’,‘D’]

C.[‘A’,‘B’,‘C’,‘D’,‘D’,‘D’]

D.[‘A’,‘B’,‘C’,‘D’]

29.以下屬于Python的映射類型的是()。

A.strB.tupleC.listD.diet

30.以下程序的輸出結(jié)果是()。s=“LOVES”print(“{:*^13}”.format(s))

A.LOVESB.********LOVESC.LOVES********D.****LOVES****

二、判斷題(10題)31.在定義函數(shù)時(shí),某個(gè)參數(shù)名字前面帶有一個(gè)*符號表示可變長度參數(shù),可以接收任意多個(gè)普通實(shí)參并存放于一個(gè)元組之中。

A.是B.否

32.只能通過切片訪問元組中的元素,不能使用切片修改元組中的元素。

A.是B.否

33.對于Python類中的私有成員,可以通過“對象名._類名__私有成員名”的方式來訪問。

A.是B.否

34.全局變量會增加不同函數(shù)之間的隱式耦合度,從而降低代碼可讀性,因此應(yīng)盡量避免過多使用全局變量。

A.是B.否

35.已知seq為長度大于10的列表,并且已導(dǎo)入random模塊,那么[random.choice(seq)foriinrange(10)]和random.sample(seq,10)等價(jià)。

A.是B.否

36.安裝Python擴(kuò)展庫時(shí)只能使用pip工具在線安裝,如果安裝不成功就沒有別的辦法了。

A.是B.否

37.已知列表x=[1,2,3],那么執(zhí)行語句x=3之后,變量x的地址不變。A.是B.否

38.對于生成器對象x=(3foriinrange(5)),連續(xù)兩次執(zhí)行l(wèi)ist(x)的結(jié)果是一樣的。

A.是B.否

39.在Windows平臺上編寫的Python程序無法在Unix平臺運(yùn)行。A.是B.否

40.一個(gè)數(shù)字5也是合法的Python表達(dá)式。

A.是B.否

三、填空題(10題)41.表達(dá)式abs(3+4j)的值為____________。

42.表達(dá)式type('3')in(int,float,complex)的值為__________。

43.表達(dá)式''.join('asdssfff'.split('sd'))的值為____________。

44.表達(dá)式{1,2,3}<{1,2,4}的值為___________。

45.表達(dá)式len('中國'.encode('gbk'))的值為____________。

46.執(zhí)行代碼x,y,z=sorted([1,3,2])之后,變量y的值為______。

47.表達(dá)式sorted([111,2,33],key=lambdax:len(str(x)))的值為________________。

48.Python標(biāo)準(zhǔn)庫random中的___________方法作用是從序列中隨機(jī)選擇1個(gè)元素。

49.表達(dá)式sorted(['abc','acd','ade'],key=lambdax:(x[0],x[2]))的值為_____________。

50.字典對象的______________方法返回字典的“值”列表。

四、操作題(3題)51.考生文件夾下存在一個(gè)文件PY101.py,請寫代碼替換橫線,不修改其他代碼,實(shí)現(xiàn)以下功能:循環(huán)獲得用戶輸入,直至用戶輸入Y或者y字符退出程序。

試題程序:

#請?jiān)赺______處使用一行代碼或表達(dá)式替換

#注意:請不要修改其他已給出代碼while_________:

s=input(”請輸入信息:”)

if______:

break

52.某班學(xué)生評選一等獎(jiǎng)學(xué)金,學(xué)生的10門主干課成績存在考生文件夾下文件score.txt中,每行為一個(gè)學(xué)生的信息,分別記錄了學(xué)生學(xué)號、姓名以及10門課成績,格式如下:

1820161043

鄭珉鎬68668377567361696678

1820161044

沈紅偉91708l919680789l8994

從這些學(xué)生中選出獎(jiǎng)學(xué)金候選人,條件是:①總成績排名在前10名;②全部課程及格(成績大于等于60)。

問題1:給出按總成績從高到低排序的前10名學(xué)生名單,并寫入文件candidate0.txt,每行記錄一個(gè)學(xué)生的信息,分別為學(xué)生學(xué)號、姓名以及10門課成績。補(bǔ)充考生文件夾下文件PY301一1.py,完成這一功能。試題程序:

#請?jiān)凇幨褂枚嘈写a替換

##注意:其他已給出代碼僅作為提示,可以修改L=[]

#L中的元素是學(xué)生原始成績和總成績

…#此處可多行

L.sort(key=lambdax:x[一1],reverse=True)拌按學(xué)生總成績從大到小排序

…#此處可多行

問題2:讀取文件candidate0.txt,從中選出候選人,并將學(xué)號和姓名寫入文件candidate.txt,格式如下:

1010112161722

張三

1010112161728

李四

補(bǔ)充考生文件夾下文件PY301—2.py,完成這一功能。

試題程序:'''輸入文件:candidate0.txt輸出文件:candidate.txt'''

53.考生文件夾下存在一個(gè)文件“PY101.py”,請寫代碼替換橫線,不修改其他代碼,實(shí)現(xiàn)以下功能。獲取用戶輸入的一組數(shù)字,采用逗號分隔,輸出其中的最大值。示例如下:請輸入一組數(shù)據(jù),以逗號分隔:8,78,54,520,21,34輸出:520試題程序:#請?jiān)赺____處使用一行代碼或表達(dá)式替換#注意:請不要修改其他已給出代碼data=eval(input("請輸入一組數(shù)據(jù),以逗號分隔:"))print(_____)

參考答案

1.D對于長度為n的有序線性表,在最壞情況下,二分法查找(對分查找)需比較log2n次。對于長度為n的線性表,最壞情況下順序查找需要n次,尋找最大項(xiàng)需要n一1次,堆排序需要nlog2n次。故D項(xiàng)的時(shí)間復(fù)雜度最低。

2.Bfun()函數(shù)進(jìn)行加減計(jì)算,輸入為復(fù)數(shù),按復(fù)數(shù)加減運(yùn)算法則計(jì)算結(jié)果為(2+3j)。本題選擇B選項(xiàng)。

3.B將7傳遞給函數(shù)形參變

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論