湖北省武漢市全國計算機等級考試Python語言程序設計預測試題(含答案)_第1頁
湖北省武漢市全國計算機等級考試Python語言程序設計預測試題(含答案)_第2頁
湖北省武漢市全國計算機等級考試Python語言程序設計預測試題(含答案)_第3頁
湖北省武漢市全國計算機等級考試Python語言程序設計預測試題(含答案)_第4頁
湖北省武漢市全國計算機等級考試Python語言程序設計預測試題(含答案)_第5頁
已閱讀5頁,還剩18頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

湖北省武漢市全國計算機等級考試Python語言程序設計預測試題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(30題)1.靜態成員變量稱為類變量,非靜態成員變量稱為實例變量,下列關于一個類的靜態成員的描述中,不正確的是()

A.該類的對象共享其靜態成員變量的值

B.靜態成員變量可被該類的所有方法訪問

C.該類的靜態方法只能訪問該類的靜態成員變量

D.該類的靜態數據成員變量的值不可修改

2.以下代碼的輸出結果是()。Is=[]formin‘想念‘fornin‘家人’Is.append(m+n)print(Is)

A.想念家人B.想想念念家家人人C.想家想人念家念人D.[‘想家’,’想人’,’念家’,’念人’]

3.以下關于分支和循環結構的描述中,正確的是()。

A.在循環中,continue語句的作用是跳出當前循環

B.在循環中,break語句的作用是結束該語句所在的循環

C.帶有else子句的循環語句,如果是因為執行了break語句而退出的話,則會執行else子句中的代碼

D.在Python中,分支結構和循環結構必須帶有else子句

4.下列選項中不屬于結構化程序設計原則的是()。

A.可封裝B.自頂向下C.模塊化D.逐步求精

5.以下代碼的輸出結果是()。forsin"grandfather":ifs==”d”ors==’h’:continueprint(s,end=")

A.grandfatherB.granfaterC.grandD.father

6.在Python中,讀入CSV文件保存的二維數據,按特定分隔符抽取信息,最可能用到的函數是()。

A.read()B.join()C.replace()D.split()

7.Python提供3種基本的數字類型,它們是()。

A.整數類型、浮點數類型、復數類型

B.整數類型、二進制類型、浮點數類型

C.整數類型、二進制類型、浮點數類型

D.整數類型、二進制類型、復數類型

8.初始化實例對象時,調用的是魔法函數是()A.initB.newC.cmpD.del

9.下面代碼的輸出結果是()。foriin”Goaheadbravely!”:ifi==”b”:breakelse:print(i,end=””)

A.Goaheadrarely!B.bravely!C.Goaheadbravely!D.Goahead

10.不屬于Python機器學習第三方庫的是()。

A.PylonsB.TensorFlowC.kernsD.mxnet

11.以下程序的輸出結果是()。x=10whilex:x-=1ifnotx%2:print(x,end=‘’)else:print(x)A.86420B.975311C.97531D.864200

12.軟件設計中模塊劃分應遵循的準則是()。A.低內聚低耦合

B.高內聚低耦合

C.低內聚高耦合

D.高內聚高耦合

13.以下關于Python二維數據的描述中,錯誤的是()。

A.CSV文件的每一行是一維數據,可以用列表、元組表示

B.從CSV文件獲得數據內容后,可以用replace()來去掉每行最后的換行符

C.若一個列表變量里的元素都是字符串類型,則可以用join()合成字符串

D.列表中保存的二維數據,可以通過循環結構用writelines()寫入CSV文件

14.以下程序的輸出結果是()。defHello(famlyName,age): ifage>50: print(“您好!”+famlyName+“奶奶”) elifage>40: print(“您好!“+famlyName+“阿姨”) elifage>30: print(“您好!”+famlyName+”姐姐”) else: print(“您好!”+“小”+famlyName)Hello(age=43,famlyName=“趙”)

A.您好!趙奶奶B.您好!趙阿姨C.您好!趙姐姐D.函數調用出錯

15.基本路徑測試屬于()。

A.黑盒測試方法且是靜態測試B.黑盒測試方法且是動態測試C.白盒測試方法且是動態測試D.白盒測試方法且是靜態測試

16.下列哪個語句在Python中是非法的?()

A.x=y=z=1B.x=(y=z+1)C.x,y=y,xD.x+=y

17.以下關于二進制整數的定義,正確的是()。

A.081014B.0b1010C.0B1019D.ObC3F

18.關于Python中is與==說法正確的是

A.is對比兩個變量指向是否為同一對象,==對比兩個變量指向對象是否為同值

B.is對比兩個變量指向對象是否為同一值,==是對比兩個變量指向是否為同一對象

C.is與==除均可用于比較對象是否為同一對象外,==還可以用于比較對象的值

D.以上說法均不正確

19.以下代碼的輸出結果是()。forsin”HelloWorld”:ifs==”W”:continueprint(s,end=””)

A.WorldB.HelloC.HelloorldD.HelloWorld

20.下面代碼中Dog這個類中的init方法共包含幾個形參?()ClassDog():def_______init________(self,name,age):self.name=nameSelf.age=age

A.0個B.1個C.2個D.3個

21.下面的d是一個字典變量,能夠輸出數字2的語句是()。d={’food’:{’cake’:1,’egg’:5},’cake’:2,’egg’:3}

A.print(d[’food’][’egg’])

B.print(d[’cake’])

C.print(d[’food’][一1])

D.print(d[’cake’][1])

22.在Python中,不屬于組合數據類型的是()。

A.浮點數類型B.字典類型C.列表類型D.字符串類型

23.下列關于Python縮進的描述中,錯誤的是()。

A.Python采用嚴格的“縮進”來表明程序格式不可嵌套

B.判斷、循環、函數等語法形式能夠通過縮進包含一批Python代碼,進而表達對應的語義

C.Pythcm單層縮進代碼屬于之前最鄰近的一行非縮進代碼,多層縮進代碼根據縮進關系決定所屬范圍

D.縮進指每一行代碼前面的留白部分,用來表示代碼之間的層次關系

24.下列關于Python列表的描述錯誤的是()。

A.列表元素可以被修改B.列表元素沒有長度限制C.列表元素的個數不限D.列表元素的數據類型必須一致

25.結構化程序設計的基本原則不包括A.多態性B.自頂向下C.模塊化D.逐步求精

26.—個模塊直接調用的下層模塊的數目稱為模塊的()。

A.扇入數B.扇出數C.寬度D.作用域

27.在數據庫設計中,將E-R圖轉換成關系數據模型的過程屬于()。

A.物理設計階段B.需求分析階段C.概念設計階段D.邏輯設計階段

28.不屬于Python開發用戶界面的第三方庫的是()。

A.PyGObjectB.PyQtC.timeD.PyGTK

29.下面代碼的輸出結果是()。deff(n):ifn==1:return1else:returnn*f(n-1)print(f(4))

A.24B.4C.0D.10

30.以下代碼的輸出結果是()。ls=[]formin’想念’:fornin’家人’:ls.append(m+n)print(ls)

A.想念家人B.想想念念家家人人C.想家想人念家念人D.[’想家’,’想人’,’念家’,’念人’]

二、判斷題(10題)31.執行語句frommathimportsin之后,可以直接使用sin()函數,例如sin(3)。

A.是B.否

32.Python標準庫os中的方法listdir()返回包含指定路徑中所有文件和文件夾名稱的列表。

A.是B.否

33.Python類不支持多繼承。

A.是B.否

34.對于大量列表的連接,extend()方法比運算符+具有更高的效率。

A.是B.否

35.3+4j是合法Python數字類型。

A.是B.否

36.無法刪除集合中指定位置的元素,只能刪除特定值的元素。

A.是B.否

37.在Python中0xad是合法的十六進制數字表示形式。

A.是B.否

38.表達式‘a’+1的值為’b’。

A.是B.否

39.生成器推導式比列表推導式具有更高的效率,推薦使用。

A.是B.否

40.Python集合不支持使用下標訪問其中的元素。

A.是B.否

三、填空題(10題)41.已知x={1:1},那么執行語句x[2]=2之后,len(x)的值為____________。

42.表達式[1]*2的值為_________________。

43.對文件進行寫入操作之后,_______________方法用來在不關閉文件對象的情況下將緩沖區內容寫入文件。

44.已知x={1:2,2:3,3:4},那么表達式sum(x.values())的值為_________。

45.表達式'abcdefg'.split('d')的值為__________________。

46.已知字典x={i:str(i+3)foriinrange(3)},那么表達式''.join(x.values())的值為____________。

47.表達式'aaasdf'.lstrip('af')的值為________________。

48.______________命令既可以刪除列表中的一個元素,也可以刪除整個列表。

49.表達式list(filter(lambdax:x>2,[0,1,2,3,0,0]))的值為_________。

50.表達式13//4的值為__________。

四、操作題(3題)51.考生文件夾下存在一個Python源文件“PY301.py”,請按照文件內說明修改代碼,實現以下功能。愷撒密碼是一種非常古老的加密算法,相傳當年愷撒大帝行軍打仗時為了保證自己的命令不被敵軍知道,它采用了替換方法將信息中的每一個英文字母循環替換為字母表序列中該字母后面的第三個字母,即循環后三位,對應關系如下。原文:ABCDEFGHIJKLMNOPQRSTUVWXYZ密文:DEFGHIJKLMNOPQRSTUVWXYZABC原文字母P,其密文字母C滿足如下條件。C=(P+3)mod26解密方法反之,滿足如下條件。P=(C-3)mod26愷撒密碼包括加密算法和解密算法兩個部分。愷撒密碼的加密算法程序首先接收用戶輸入的文本,然后對字母a?z和字母A?Z按照密碼算法進行轉換,同時輸出。其他非英文字母原樣輸出。試題程序:#以下代碼為提示框架#請在...處使用一行或多行代碼替換#注意..提示框架的代碼可以任意修改,以完成程序功能為準intxt=input(“請輸入明文:")

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

1820161043

鄭珉鎬68668377567361696678

1820161044

沈紅偉91708l919680789l8994

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

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

#請在…處使用多行代碼替換

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

#L中的元素是學生原始成績和總成績

…#此處可多行

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

…#此處可多行

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

1010112161722

張三

1010112161728

李四

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

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

53.考生文件夾下存在一個文件“PY202.py”,該文件是本題目的代碼提示框架,其中代碼可以任意修改。請在該文件中編寫代碼,以實現如下功能。使用Python的異常處理結構編寫對數計算,要求底數大于0且不等于1,真數大于0,且輸入的必須為實數,否則拋出對應的異常。試題程序:#以下代碼為提示框架#請在...處使用一行或多行代碼替換#請在_____處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準try:a=eval(input(‘請輸入底數:’))b=eval(input(‘請輸入真數:’))c=_____exceptValueError:…exceptZeroDivisionError:print(‘底數不能為1’)exceptNameError:Prints(‘輸入必須為實數’)else:print(C)

參考答案

1.D

2.D外層fox第1次循環將字符’想’賦給變量m,m=‘想’,內層for第1次循環將’家’賦給變量n,則m+\nn連接字符,利用列表的append()方法將連接后的字符’想家’加入列表Is;內層for第2次循環將’人’賦給變量n,則m+\nn連接字符,利用列表的append()方法將連接后的字符’想人’加入列表Is。外層for第2次循環將字符’念’賦給變量m,m\n=’念’,內層for第1次循環將家賦給變量n,則m+\nn連接字符,利用列表的append()方法將連接后的字符’念家'加入列表Is;內層for第2次循環將’人’賦給變量n,則m+\nn連接字符,利用列表的append()方法將連接后的字符’念人’加入列表Is。最后列表Is=\n[‘想家’,’想人’,’念家’,’念人’],print(ls)輸出Is。本題選擇D選項。

3.Bcontinue語句用于中斷本次循環的執行,繼續執行下一輪循環的條件,而不是跳出當前循環;Python中的for、while循環都有一個可選的else子句,如果用break語句終止循環,那么else語句將不會執行。

4.AA。【解析】結構化程序設計方法的主要原則可以概括為自頂向下、逐步求精、模塊化、限制使用goto語句等。

5.Bfor循環將字符串grandfather中的字符依次賦給變量s,當s==”d”或s=='\nh”時,結束本次循環,不執行print(s,end=”);反之,則執行print(s,end\n=')。故輸出結果為granfater。本題選擇B選項。

6.D在Python中,讀取CSV文件中的二維碼數據采用遍歷循環和字符串的split()方法相結合,方法如下:f=open('cpi.csv”,”r”)ls=[]forlineinf:Is.append(line,strip(“\\n').split(“,”))f.close()本題選擇D選項。

7.APython提供3種基本的數字類型:整數類型、浮點數類型、復數類型,分別對應數學中的整數、實數及復數。本題選擇A選項。

8.A

9.Dfor循環遍歷字符串,當變量i賦值為b時,break跳出本層循環,即后面的字符不再遍歷,當值不為b時就將其輸出,結果為Goahead。

10.APylons是基于Python的一個Web開發框架的第三方庫,keras、TensorFlow及mxnet是Py-thon機器學習領域的第三方庫。本題選擇A選項。

11.D

12.B解析:耦合性和內聚性足模塊獨立性的兩個定性標準。內聚性是一個模塊內部各個元素間彼此結合的緊密程度的度量,作為軟件結構設計的設計原則,要求每個模塊的內部都具有很強的內聚性;耦合性是指模塊間相互連接的緊密程度的度量,一個模塊與其他模塊的耦合性越強則該模塊的獨立性越弱。一般優秀的軟件設計應盡量做到高內聚、低耦合,即減弱模塊之間的耦合性和提高模塊內的內聚性,有利于提高模塊的獨立性。

13.D在Python中,writelines()方法是將一個所有元素為字符串的列表整體寫入文件;write()方法是向文件寫入一個字符串或字節流,每次寫入后,會記錄一個寫入指針。二維列表對象輸出為CSV文件采用遍歷循環和字符串的join()方法相結合,方法如下:#ls代表二維列表,此處省略f=open('cpi.csv','w”)forrowinIs:f.write(“,”join(row)+“\\n')f.close()本題選擇D選項。

14.B將實參age=43,famlyName=“趙”分別賦給形參age和famlyName,之后進入多分支結構進行判斷,因為40<age=43<50,執行第一個elif后面的語句,用“+”進行字符串連接,故輸出“您好!趙阿姨”。本題選擇B選項。

15.C白盒測試方法主要有邏輯覆蓋、基本路徑測試等。黑盒測試方法主要有等價類劃分法、邊界值分析法、錯誤推測法及因果圖等。基本路徑測試根據軟件過程性描述中的控制流確定程序的環路復雜性度量,用此度量定義基本路徑的集合,并由此導出一組測試用例對每一條獨立執行路徑進行測試。因此,基本路徑測試屬于動態測試。本題選擇C選項。

16.B賦值運算的一般形式為變量=表達式,左邊只能是變量。A選項是連續賦值,C選項是序列賦值,D選項可以寫為x=x+\ny。本題選擇B選項。

17.B二進制整數以0b開頭,后面跟二進制數0和1。A、C、D三項中有4、9、C、3、F,這些都不是二進制數。

18.A

19.Cforsin”HelloWorld”:將字符串”HelloWorld”中的字符依次賦給變量s,之后進行if判斷,如果s=”w”,則continue,執行下一個循環,不執行print(s,end=””),否則執行print(s,end=””),所以最后輸出的結果是Helloorld。

20.D_init_()方法是一個特殊的方法,每當根據類創建新實例時,Python會自動運行該方法。該方法的開頭和結尾各有兩個下劃線,這是一種約定,旨在避免Python的默認方法和普通方法發生命名沖突。self,name,age都是init方法的形參,所以共3個。

21.B在Python語言中,字典是存儲可變數量鍵值對的數據結構,鍵和值可以是任意數據類型,通過鍵索引值,并可以通過鍵修改值。因此,可以直接利用鍵值對關系索引元素。索引模式:<值>=<字典變量>[<鍵>]。故能夠正確索引字典并輸出數字2的語句是pnnt(d[’cake’]),B項正確。

22.APython中組合數據類型包括元組、列表、字典和集合等。本題選擇A選項。

23.APython采用嚴格的“縮進來表明程序格式”,而且“縮進”中是可以嵌套的。本題選擇A選項。

24.D列表沒有長度限制,元素類型可以不同,不需要預定義長度。列表可以進行元素的增加、刪除、替換、查找等操作。

25.A結構化程序設計方法的主要原則可以概括為:自頂向下,逐步求精,模塊化和限制使用GOTO語句,其中不包括多態性。

26.B扇入數指調用一個給定模塊的模塊個數。扇出數是指由一個模塊直接調用的其他模塊數,即一個模塊直接調用的下層模塊的數目。本題選擇B選項。

27.D數據庫的邏輯設計工作主要是將E-R圖轉換成指定關系數據庫管理系統(RelationalDa-tabaseManagement\nSystem,RDBMS)中的關系模式。本題選擇D選項。

28.CPyQt(QT開發庫)、PyGObject及PyGTK(GTK\n+庫)均是Python開發用戶界面的第三方庫。而time庫是Python提供的處理時間標準庫。本題選擇C選項。

29.A該代碼的功能是根據傳入的參數求取該數的階乘,經過一系列的運算將結果返回,4的階乘為24。本題選擇A選項。

30.D外層for第1次循環將字符’想’賦給變量m,m=’想’,內層for第1次循環將’家’賦給變量n,則m+n連接字符,利用列表的append()方法將連接后的字符’想家’加入到列表ls中;內層for第2次循環將’人’賦給變量n,則m+n連接字符,利用列表的append()方法將連接后的字符’想人’加入到列表ls中。外層for第2次循環將字符’念’賦給變量m,m=’念’,內層for第1次循環將’家’賦給變量n,則m+n連接字符,利用列表的append()方法將連接后的字符’念家’加入到列表ls中;內層for第2次循環將’人’賦給變量n,則m+n連接字符,利用列表的append()方法將連接后的字符’念人’加入到列表ls中。最后列表ls=[’想家’,’想人’,’念家’,’念人’],print(ls)輸出ls。本題選D選項。

31.Y

32.Y

33.N

34.Y

35.Y

36.Y

37.Y

38.N

39.Y

40.Y

41.2

42.[1,1]

43.flush()

44.9

45.['abc','efg']

46.'345'

47.'sdf'

48.del

49.[3]

50.3

51.intxt=input(”請輸入明文:”)ForpinintxtIf”a”<=p<=”z”:Print(chr(ord(“a”)+(ord(p)-ord(“a”)+3%26),end=””)Elif”A”<=p<=”z”:Print(chr(ord(“A”)+(ord(p)-ord(“A”)+3%26),end=””)Else:Print(p,end=””)使用for循環遍歷輸入的每一個字符:如果輸入的字符是大小寫字母,把該字母替換為該字母后面的第三個字母,將轉換后的字母進行輸出;如果輸入的字符不是大小寫字母,則原樣輸出字符,該部分功能通過if多分支結構實現。

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”兩個文件。首先要讀取”score.txt”文件中的信息,通過程序求出每個學生的總成績,然后按總成績從大到小排序,將總成績排名前10的學生的學號、姓名以及10門課成績寫入到”candidate0.txt”文件中。打開文件用open()函數,用”r”只讀模式打開文件”score.txt”,用”w”模式創建文件”cand:idate0.txt”。\r\n

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

隨后,對列表L中的元素進行排序,用到sort()方法,參數”key=lambdax:x[一1]”中la

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論