山東省淄博市全國計算機等級考試Python語言程序設(shè)計_第1頁
山東省淄博市全國計算機等級考試Python語言程序設(shè)計_第2頁
山東省淄博市全國計算機等級考試Python語言程序設(shè)計_第3頁
山東省淄博市全國計算機等級考試Python語言程序設(shè)計_第4頁
山東省淄博市全國計算機等級考試Python語言程序設(shè)計_第5頁
已閱讀5頁,還剩68頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

山東省淄博市全國計算機等級考試Python語言程序設(shè)計學校:________班級:________姓名:________考號:________

一、單選題(30題)1.以下程序的輸出結(jié)果是()。try:print((3+4j)*(3-4j))except:print(”運算錯誤!!”)

A.(25+0j)B.5C.運算錯誤!!D.3

2.以下代碼的輸出結(jié)果是()。print(0.1+0.2==0.3)

A.-1B.TrueC.FalseD.0

3.以下程序的輸出結(jié)果是()。foriinrange(3): forjin“dream”: ifj==“e” continue print(j,end=“”)

A.dramdramdramB.drdrdrC.dreamdreamdreamD.dream

4.以下程序的輸出結(jié)果是()。Is=[‘book’,666,[2018,‘python’,314],20]print(ls[2][1][-2])

A.nB.pythonC.oD.結(jié)果錯誤

5.下列關(guān)于Python縮進的描述中,錯誤的是()。

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

B.判斷、循環(huán)、函數(shù)等語法形式能夠通過縮進包含一批Python代碼,進而表達對應(yīng)的語義

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

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

6.以下代碼的輸出結(jié)果是()。Test_list=list(range(6))Print(6inTest_list)

A.6B.6inTest_listC.TrueD.False

7.以下程序的輸出結(jié)果是()。n=2deff(a): n=bool(a-2) returnnb=f(2)print(n,b)

A.20B.0TrueC.2FalseD.0False

8.在命名Python標識符時,以下命名合理的是()

A.listB.forC.usersD.type

9.對軟件系統(tǒng)總體結(jié)構(gòu)圖描述正確的是()。

A.深度等于控制的層數(shù)B.扇入是一個模塊直接調(diào)用的其他模塊數(shù)C.結(jié)構(gòu)圖是描述軟件系統(tǒng)功能的D.從屬模塊一定是原子模塊

10.下面對于類的說法錯誤的是()。

A.類是一種實例

B.在類進行實例化時將會首先執(zhí)行該類中的int方法

C.在對類進行實例化時,傳入的實參不用帶上self,它在類的執(zhí)行過程中將自行帶上

D.類中的變量前帶有前綴self意味著此變量在類中任意位置可以使用

11.以下關(guān)于列表變量ls操作的描述中,錯誤的是()。

A.ls.copy():生成一個新列表,復(fù)制ls的所有元素

B.ls.removed):刪除ls中所有的x元素

C.ls.append(x):在ls最后增加一個元素

D.ls.reverse():反轉(zhuǎn)列表ls中所有元素

12.以下屬于Python中導(dǎo)入語句的是()。

A.classB.returnC.importD.print

13.當試圖訪問的對象屬性不存在時,為了不讓程序拋出異常,需要用到的語句是()。

A.try—except語句B.for語句C.eval語句D.if語句

14.下面代碼的輸出結(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’]

15.要將3.1415926變成00003.14如何進行格式化輸出?

A."%.2f"%3.1415629

B."%8.2f"%3.1415629

C."%0.2f"%3.1415629

D."%08.2f"%3.1415629

16.以下關(guān)于Python字符串的描述中,錯誤的是()。

A.在Python字符串中,可以混合使用正整數(shù)和負整數(shù)進行索引和切片

B.Python字符串采用[N:M]格式進行切片,獲取字符串從索引N到M的子字符串(包含N和M)

C.字符串‘my\\text.dat’中第1個‘\’表示轉(zhuǎn)義字符

D.空字符串可以表示為“”或‘’

17.下列關(guān)于Python運算符的使用描述正確的是()。

A.a=!b,比較a與b是否不相等

B.a=+b,等同于a=a+b

C.a==b,比較a與b是否相等

D.a//=b,等同于a=a/b

18.以下關(guān)于文件的描述中,正確的是()。

A.使用open()打開文件時,必須要用r或w指定打開方式,不能省略

B.采用readlines()可以讀入文件中的全部文本,返回一個列表

C.文件打開后,可以用write()控制對文件內(nèi)容的讀寫位置

D.如果沒有采用close()關(guān)閉文件,Python程序退出時文件將不會自動關(guān)閉

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

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

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

A.棧B.樹C.隊列D.二叉樹

21.以下代碼的輸出結(jié)果是()。whileTrue:guess=eval(input())ifguess==0x452//2:breakprint(guess)

A.0x452B.breakC.553D.”0x452//2”

22.以下程序的輸出結(jié)果是()。Test_list=list(range(6))Print(6inTest_list)

A.6B.6inTest_listC.TrueD.False

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

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

24.以下程序被調(diào)用后,能夠正確執(zhí)行的是()。deff(x,y=1,z=2):pass

A.f(x=1,2)B.f(x=1,y=2,z=3)C.f(1,x=2,z=3)D.f(1,y=2,3)

25.以下程序的輸出結(jié)果是()。a,b,c=’I’,chr(64),”you”s=a+b+Cprint(s)

A.I@youB.IyouC.I4youD.Ichr(64)you

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

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

27.表達式3**2*4//6%7的計算結(jié)果是()。

A.3B.5C.4D.6

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

A.黑盒測試方法且是靜態(tài)測試B.黑盒測試方法且是動態(tài)測試C.白盒測試方法且是動態(tài)測試D.白盒測試方法且是靜態(tài)測試

29.樹的度為3,且有9個度為3的節(jié)點,5個度為1的節(jié)點,但沒有度為2的節(jié)點。則該樹中的葉子節(jié)點數(shù)為()。

A.18B.33C.19D.32

30.執(zhí)行以下代碼的結(jié)果是()A.12B.24C.36D.48

二、判斷題(10題)31.Python2.x和Python3.x中input()函數(shù)的返回值都是字符串。

A.是B.否

32.Python3.x支持使用中文作為變量名。

A.是B.否

33.加法運算符可以用來連接字符串并生成新字符串。

A.是B.否

34.在調(diào)用函數(shù)時,可以通過關(guān)鍵參數(shù)的形式進行傳值,從而避免必須記住函數(shù)形參順序的麻煩。

A.是B.否

35.Python字典中的“鍵”可以是元組。

A.是B.否

36.在UTF-8編碼中一個漢字需要占用3個字節(jié)。

A.是B.否

37.元組可以作為集合的元素。

A.是B.否

38.在try...except...else結(jié)構(gòu)中,如果try塊的語句引發(fā)了異常則會執(zhí)行else塊中的代碼。

A.是B.否

39.Python類不支持多繼承。

A.是B.否

40.在任何時刻相同的值在內(nèi)存中都只保留一份

A.是B.否

三、填空題(10題)41.查看對象內(nèi)存地址的Python內(nèi)置函數(shù)是__________。

42.達式sorted([111,2,33],key=lambdax:-len(str(x)))的值為____________。

43.對于帶有else子句的for循環(huán)和while循環(huán),當循環(huán)因循環(huán)條件不成立而自然結(jié)束時________(會?不會?)執(zhí)行else中的代碼。

44.已知x=list(range(10)),則表達式x[-4:]的值為__________。

45.已知列表x中包含超過5個以上的元素,那么表達式x==x[:5]+x[5:]的值為________。

46.表達式sum(range(1,10,2))的值為____________。

47.表達式int('101',2)的值為__________。

48.Python程序文件擴展名主要有__________和________兩種,其中后者常用于GUI程序。

49.表達式3<<2的值為_______________。

50.表達式'%s'%[1,2,3]的值為_____________。

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

52.考生文件夾下存在3個Python源文件,分別對應(yīng)3個問題,請按照文件內(nèi)說明修改代碼,實現(xiàn)以下功能。法定節(jié)假日是根據(jù)各國、各民族的風俗習慣或紀念要求,由國家法律統(tǒng)一規(guī)定的用以慶祝及度假的休息時間。法定節(jié)假日制度是國家政治、經(jīng)濟、文化制度的重要反映,涉及經(jīng)濟社會的多個方面,涉及廣大人民群眾的切身利益。法定節(jié)假日的安排,為居民出行、購物和休閑提供了時間上的便利,為拉動內(nèi)需、促進經(jīng)濟增長做出了積極貢獻。給出一個某年的節(jié)假日的放假日期CSV文件(PY301-vacations.CSV),內(nèi)容示例如下。序號節(jié)假日名稱開始月日結(jié)束月日1元旦123001012春節(jié)021502213清明節(jié)040504074勞動節(jié)050105035端午節(jié)06160618以第1行為例,1230表示12月30日,0101表示1月1日。問題1:在“PY301-1.py”文件中修改代碼,讀入CSV文件中的數(shù)據(jù),獲得用戶輸入。根據(jù)用戶輸入的節(jié)假日名稱,輸出此節(jié)假日的時間范圍。輸入和輸出本例格式如下。請輸入節(jié)假日名稱(例如,春節(jié)):春節(jié)春節(jié)的假期位于0215~0221之間試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#請在程序的處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準Is=[]print("{}的假期位于{}-{}之間”,.format())問題2:在“PY301-2.py”文件中修改代碼,讀入CSV文件的數(shù)據(jù),獲得用戶輸入。用戶輸入一組范圍是1?7的整數(shù)作為序號,序號間采用空格符分隔,以回車符結(jié)束。輸出這些序號對應(yīng)的節(jié)假日的名稱、時間范圍,每個節(jié)假日的信息一行。本次輸出完成后,重新回到輸入序號的狀態(tài)。輸入和輸出示例格式如下。請輸入節(jié)假日序號:15元旦(1)假期是12月30日至01月01日之間端午節(jié)假期(5)是06月16日至06月18日之間請輸入節(jié)假日序號:試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準...Is=[]print("{}({})假期是{}月{}日至{}月{}日之間".format())問題3:在問題2的基礎(chǔ)上,在“PY301-3.Py”文件中修改代碼,對輸入的每個序號做合法性處理。如果輸入的數(shù)字不不合法,請輸出“輸入節(jié)假日編號有誤!”,繼續(xù)輸出后續(xù)信息,然后重新回到輸入序號的狀態(tài)。輸入和輸出示例格式如下。請輸入節(jié)假日序號:51411端午節(jié)(5)假期是06月16日至06月18日之間輸入節(jié)假日編號有誤!輸入節(jié)假日編號有誤!請輸入節(jié)假日編號:試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#請在程序的處用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準Is=[]print("{}({})假期是{}月{}日至{}月{}日之間".format())ifflag==False:print("輸入節(jié)假日編號有誤!”)...

53.考生文件夾下存在一個文件“PY202.py”,該文件是本題目的代碼提示框架,其中代碼可以任意修改。請在該文件中編寫代碼,以實現(xiàn)如下功能。用鍵盤輸入兩個大于0的整數(shù),按要求輸出這兩個整數(shù)之間(不包括這兩個整數(shù))的所有素數(shù)。素數(shù)又稱質(zhì)數(shù),是指除了1和它本身以外不能被其他整數(shù)整除的數(shù)。試題程序:#以下代碼為提示框架#請在...處使用一行或多行代碼替換#請在_____處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準lower=int(input(‘輸入?yún)^(qū)間最小值:’))upper=int(inputs(‘輸入?yún)^(qū)間最大值:’))fornuminrange(_____,_____):

參考答案

1.A(3+4j)*(3-4j)是復(fù)數(shù)的乘法運算。設(shè)c1=a+bj,c2=c+dj(a、b、c、d均為實數(shù)),c1*c2=\n(ac-bd)+(bc+ad)j0結(jié)果是(25+0j)。本題選擇A選項。

2.C在Python中,0.1+0.2=0.30000000000000004。原因是:對于十進制,它只能表示以進制數(shù)的質(zhì)因子為分母的分數(shù)。10的質(zhì)因子有2和5,因此1/2、1/4、1/5、1/8及1/10都可以精確表示;相反,1/3、1/6及1/7都是循環(huán)小數(shù),因為它們的分母使用了質(zhì)因子3或者7。二進制中,只有一個質(zhì)因子,即2,因此只能精確表示分母質(zhì)因子是2的分數(shù)。二進制中,1/2、1/4及1/8都可以被精確表示,但1/5或者1/10就變成了循環(huán)小數(shù)。所以,在十進制中能夠精確表示的0.1與0.2(1/10與1/5),到了計算機所使用的二進制中就變成了循環(huán)小數(shù)。當對這些循環(huán)小數(shù)進行數(shù)學運算并將二進制數(shù)據(jù)轉(zhuǎn)換成人類易讀的十進制數(shù)據(jù)時,會對小數(shù)尾部進行截斷處理。在不同的編程語言中,運行0.1+0.2會輸出不同的結(jié)果。本題選擇C選項。

3.Acontinue語句只結(jié)束本次循環(huán),不終止整個循環(huán)的執(zhí)行,而break語句具備結(jié)束整個循環(huán)的能力。本題外層循環(huán)用來計數(shù),內(nèi)層循環(huán)用來遍歷字符串,當滿足判斷條件時,就會結(jié)束本次循環(huán)進入下一次循環(huán),字符串遍歷完成之后,外層循環(huán)進入下一次循環(huán)。本題選擇A選項。

4.C列表索引從0開始,列表遵循正向遞增索引和反向遞減索引,故ls[2][1][-2]是字符o。本題選擇C選項。

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

6.DTest_list是列表類型,6inTest_list表示如果6是列表Test_list的元素,返回True,否則返回False。

7.C這段代碼是全局變量、局部變量以及Python內(nèi)置函數(shù)bool()的一個結(jié)合。當函數(shù)內(nèi)部的局部變量名和函數(shù)外部全局變量名相同,調(diào)用函數(shù)時,總是先找到函數(shù)內(nèi)部的局部變量名,所以當a為2時,經(jīng)過布爾型轉(zhuǎn)換之后的a-2,即b為False,而在函數(shù)外部只能訪問全局變量名,所以n仍為2。本題選擇C選項。

8.C

9.A扇入是指調(diào)用一個給定模塊的模塊個數(shù),扇出是指由一個模塊直接調(diào)用的其他模塊個數(shù),B項錯誤。從屬模塊是指被另一個模塊調(diào)用的模塊,原子模塊是從屬模塊,但從屬模塊不一定是原子模塊,D項錯誤。結(jié)構(gòu)圖是描述軟件結(jié)構(gòu)的圖形工具,C項錯誤。

10.AA選項中類只是一種抽象事物的分類,對象才是一種實例。本題選擇A選項。

11.Bls.remove(x)是刪除列表ls中出現(xiàn)的第一個x元素,而不是刪除列表ls中所有的x元素。本題選擇B選項。

12.CPython中無論是標準庫、第三方庫還是自定義庫,在使用之前都需要進行導(dǎo)入,方法就是使用import語句導(dǎo)人模塊。本題選擇C選項。

13.Atry—except語句用于檢測和處理異常。

14.D遍歷列表letter,當i==’D’時,執(zhí)行l(wèi)etter.removeG),此時列表letter:\n[‘A’,’B’,’C’,'D’];再遍歷當i==\n‘D’,執(zhí)行l(wèi)etter.remove(i),此時列表letter=['A’,’B’,’C’,’D’]。因為列表的元素個數(shù)隨著“D”元素的刪除而減小,當刪除第一個“D”元素之后,列表元素的個數(shù)即變?yōu)?,for循環(huán)又是控制循環(huán)次數(shù)的,因此只遍歷5次,當?shù)诙€“\nD”元素刪除時,循環(huán)結(jié)束。本題選擇D選項。

15.D

16.BPython字符串采用[N:M]格式進行切片,獲取字符串從索引N到M的子字符串(包含N,不包含M)。本題選擇B選項。

17.C比較a與b是否不相等的運算符是!=;a+=b等同于a=a+b;a//=b等同于a=a//b。

18.B使用open()打開文件時,省略打開模式會默認只讀方式打開;文件打開后,可以用seek()控制對文件內(nèi)容的讀寫位置,write()方法只是向文件寫入一個字符串或是字節(jié)流;如果沒有采用close()關(guān)閉文件,有可能會導(dǎo)致數(shù)據(jù)丟失。Python程序退出時一般會自動關(guān)閉。本題選擇B選項。

19.D一個客戶可以在多家銀行辦理業(yè)務(wù),一家銀行也有多個客戶辦理業(yè)務(wù),因此,實體客戶和實體銀行之間的聯(lián)系是多對多。

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

21.C該程序最外層是while循環(huán),while循環(huán)的條件是True,由此可知while內(nèi)的語句會無限循環(huán)。input()函數(shù)是用來獲取用戶從鍵盤輸入的內(nèi)容并以字符串類型返回。eval()函數(shù)是把字符串轉(zhuǎn)換成Python可用的語言。if語句的作用是來控制程序是否繼續(xù)循環(huán),判斷條件中0x452是十六進制數(shù),對2整除的結(jié)果是553,如果用戶輸入的數(shù)據(jù)是553,則將結(jié)果輸出并終止循環(huán);如果輸入其他數(shù)據(jù),程序會一直要求用戶輸入直到輸入正確的數(shù)據(jù)才會終止循環(huán)。本題選C選項。

22.DTest_llst是列表類型,6inTest_llst表示如果6是列表Test_llst的元素,則返回True,否則返回False。本題選擇D選項。

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

24.B函數(shù)的參數(shù)在定義時可以指定默認值,當函數(shù)被調(diào)用時,如果沒有傳人對應(yīng)的參數(shù)值,則使用函數(shù)定義時的默認值替代。本題在定義函數(shù)時,y=1,z=2就是指定的默認值。在Python中,函數(shù)調(diào)用時,參數(shù)傳遞的主要方式有位置傳遞和關(guān)鍵字傳遞兩種。位置傳遞是根據(jù)函數(shù)定義的參數(shù)位置來傳遞參數(shù);關(guān)鍵字傳遞是根據(jù)每個參數(shù)的名字傳遞參數(shù),該方式不用區(qū)分參數(shù)順序位置,名字對了就行。關(guān)鍵字傳遞可以和位置傳遞混用,但混用時位置參數(shù)要出現(xiàn)在關(guān)鍵字參數(shù)之前。A項,第一個參數(shù)為關(guān)鍵字傳遞,第二個參數(shù)為位置傳遞,混用順序不對;D項,第二個參數(shù)為關(guān)鍵字傳遞,第三個參數(shù)為位置傳遞,混用順序不對;C項,第一個參數(shù)已經(jīng)使用位置傳遞(將1傳遞給x),第二個參數(shù)又使用關(guān)鍵字傳遞將2傳遞給x,會出現(xiàn)異常報錯。故答案為B項。

25.A程序中,chr(64)輸出的是字符@,之后用”+”連接字符串,最后輸出I@you。本題選擇A選項。

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

27.D先計算冪,3**2=9,9*4=36,36//6=6,6%7=6。//是整除運算,%是求余運算。本題選D選項。

28.C白盒測試方法主要有邏輯覆蓋、基本路徑測試等。黑盒測試方法主要有等價類劃分法、邊界值分析法、錯誤推測法及因果圖等?;韭窂綔y試根據(jù)軟件過程性描述中的控制流確定程序的環(huán)路復(fù)雜性度量,用此度量定義基本路徑的集合,并由此導(dǎo)出一組測試用例對每一條獨立執(zhí)行路徑進行測試。因此,基本路徑測試屬于動態(tài)測試。本題選擇C選項。

29.C設(shè)葉子結(jié)點數(shù)為〃,則該樹的結(jié)點數(shù)為n+9+5=n+\n14,根據(jù)樹中的結(jié)點數(shù)=樹中所有結(jié)點的度之和+1,得9×3+0×2+5×1+n×0+1=n+14,則n=19。本題選擇C選項。

30.B

31.N

32.Y

33.Y

34.Y

35.Y

36.Y

37.Y

38.N

39.N

40.N

41.id()

42.[111,33,2]

43.會

44.[6,7,8,9]

45.True

46.25

47.5

48.py、pyw

49.12

50.'[1,2,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循環(huán)遍歷輸入的每一個字符:如果輸入的字符是大小寫字母,把該字母替換為該字母后面的第三個字母,將轉(zhuǎn)換后的字母進行輸出;如果輸入的字符不是大小寫字母,則原樣輸出字符,該部分功能通過if多分支結(jié)構(gòu)實現(xiàn)。

52.Fi=open(“PY301-vacations.csv”,”r”)Is=[]Foulineinfi:Is.append(line.strip(“\\n”).split(“,”))S=input(“請輸入節(jié)假日名稱”)Forlineinis:Ifs==line[1]Print(“{}的假期位于{}-{}之間”.format(line[1],line[2],line[3]))(2)Fi=open(“PY301-vacations.csv”,”r”)Is=[]Foulineinfi:Is.append(line.strip(“\\n”).split(“,”))S=input(“請輸入節(jié)假日序號”).split(“”)WhiletrueForiins:Forlineinis:Ifi==line[0]Print(“{}({})的假期位于{}月{}日之間”.format(line[1],line[0],line[2][0]+line[2][1],line[2][2]+line[2][3],line[3][0]+line[3][1],line[3][2]+line[3][3]))S=input(“請輸入節(jié)假日序號:”).split(“”)(3)Fi=open(“PY301-vacations.csv”,”r”)Is=[]Foulineinfi:Is.append(line.strip(“\\n”).split(“,”))S=input(“請輸入節(jié)假日序號”).split(“”)Whiles!=””:Foriins:Flag=falseForlineinis:Ifi==line[0]Print(“{}({})的假期位于{}月{}日之間”.format(line[1],line[0],line[2][0]+line[2][1],line[2][2]+line[2][3],line[3][0]+line[3][1],line[3][2]+line[3][3]))Flag=TureIfflag==falsePrint(“輸入節(jié)假日編號有誤!”)S=input(“請輸入節(jié)假日序號:”).split(“”)(1)\r\n對文件的讀操作需要使用open()函數(shù),模式為”r";將文件讀入后,需要把CSV文件的內(nèi)容轉(zhuǎn)換成二維數(shù)據(jù),并將其轉(zhuǎn)換成二維列表對象。首先定義一個列表Is,把讀入的每行數(shù)據(jù)使用strip()函數(shù)清除掉換行符,再使用split()函數(shù)在元素之間以逗號分隔存儲在列表Is中,split()函數(shù)返回的是一個列表,因此把CSV文件轉(zhuǎn)換成二維列表對象。使用input()函數(shù)獲取用戶輸入,再用for循環(huán)遍歷二維列表,如果輸入的節(jié)假日名稱在列表中,則輸出對應(yīng)的時間段。(2)\r\n用戶可以輸入多個節(jié)假日的序號,因此可以考慮使用split()方法把輸入的序號放在一個列表中,然后使用兩個for循環(huán),一個用來遍歷二維列表,一個用來遍歷輸入的序號列表,當輸入的序號與二維列表中的一樣時,輸出結(jié)果。因為題目的示例輸出在數(shù)字月和日期之間加入了漢字,此時分析存入二維列表中的數(shù)字,可以知道存入的是字符串,即在CSV文件中初始月日和結(jié)束月日都是長度為4的字符串,屬于序列類型,因此可以使用索引訪問。(3)在問題2的基礎(chǔ)上,加上一個標記,如果輸入的序號正確,則標記為True;輸入錯誤,標記為False,最后根據(jù)標記判斷是否輸出“輸入節(jié)假日編號有誤!\r\n”。分析題目要求可知,標記是在輸入的序號在二維列表中可以查到時變?yōu)門rue,其他情況都為False,所以標記應(yīng)該放在遍歷序號列表的for循環(huán)內(nèi)、遍歷二維列表的for循環(huán)外。

53.lower=int(input(‘輸入?yún)^(qū)間最小值:’))upper=int(inputs(‘輸入?yún)^(qū)間最大值:’))fornuminrange(lower+1,upper):Ifnum>1:Foriin染個(2,num):If(num%i)==0:BreakElse:Print(num)題目要求輸出兩個整數(shù)之間(不包括這兩個整數(shù))的所有素數(shù),因此mnge()函數(shù)的參數(shù)應(yīng)為lower+1和upper。for循環(huán)遍歷range(lower\r\n+l,upper)返回的每個整數(shù)num,判斷該數(shù)是否為素數(shù)。如果num大于1(1既不是素數(shù)也不是合數(shù)),且該數(shù)能被取值范圍為[2,num-1\r\n]的任何一個整數(shù)整除,那么該數(shù)一定不是素數(shù),否則一定是素數(shù)。山東省淄博市全國計算機等級考試Python語言程序設(shè)計學校:________班級:________姓名:________考號:________

一、單選題(30題)1.以下程序的輸出結(jié)果是()。try:print((3+4j)*(3-4j))except:print(”運算錯誤!!”)

A.(25+0j)B.5C.運算錯誤!!D.3

2.以下代碼的輸出結(jié)果是()。print(0.1+0.2==0.3)

A.-1B.TrueC.FalseD.0

3.以下程序的輸出結(jié)果是()。foriinrange(3): forjin“dream”: ifj==“e” continue print(j,end=“”)

A.dramdramdramB.drdrdrC.dreamdreamdreamD.dream

4.以下程序的輸出結(jié)果是()。Is=[‘book’,666,[2018,‘python’,314],20]print(ls[2][1][-2])

A.nB.pythonC.oD.結(jié)果錯誤

5.下列關(guān)于Python縮進的描述中,錯誤的是()。

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

B.判斷、循環(huán)、函數(shù)等語法形式能夠通過縮進包含一批Python代碼,進而表達對應(yīng)的語義

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

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

6.以下代碼的輸出結(jié)果是()。Test_list=list(range(6))Print(6inTest_list)

A.6B.6inTest_listC.TrueD.False

7.以下程序的輸出結(jié)果是()。n=2deff(a): n=bool(a-2) returnnb=f(2)print(n,b)

A.20B.0TrueC.2FalseD.0False

8.在命名Python標識符時,以下命名合理的是()

A.listB.forC.usersD.type

9.對軟件系統(tǒng)總體結(jié)構(gòu)圖描述正確的是()。

A.深度等于控制的層數(shù)B.扇入是一個模塊直接調(diào)用的其他模塊數(shù)C.結(jié)構(gòu)圖是描述軟件系統(tǒng)功能的D.從屬模塊一定是原子模塊

10.下面對于類的說法錯誤的是()。

A.類是一種實例

B.在類進行實例化時將會首先執(zhí)行該類中的int方法

C.在對類進行實例化時,傳入的實參不用帶上self,它在類的執(zhí)行過程中將自行帶上

D.類中的變量前帶有前綴self意味著此變量在類中任意位置可以使用

11.以下關(guān)于列表變量ls操作的描述中,錯誤的是()。

A.ls.copy():生成一個新列表,復(fù)制ls的所有元素

B.ls.removed):刪除ls中所有的x元素

C.ls.append(x):在ls最后增加一個元素

D.ls.reverse():反轉(zhuǎn)列表ls中所有元素

12.以下屬于Python中導(dǎo)入語句的是()。

A.classB.returnC.importD.print

13.當試圖訪問的對象屬性不存在時,為了不讓程序拋出異常,需要用到的語句是()。

A.try—except語句B.for語句C.eval語句D.if語句

14.下面代碼的輸出結(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’]

15.要將3.1415926變成00003.14如何進行格式化輸出?

A."%.2f"%3.1415629

B."%8.2f"%3.1415629

C."%0.2f"%3.1415629

D."%08.2f"%3.1415629

16.以下關(guān)于Python字符串的描述中,錯誤的是()。

A.在Python字符串中,可以混合使用正整數(shù)和負整數(shù)進行索引和切片

B.Python字符串采用[N:M]格式進行切片,獲取字符串從索引N到M的子字符串(包含N和M)

C.字符串‘my\\text.dat’中第1個‘\’表示轉(zhuǎn)義字符

D.空字符串可以表示為“”或‘’

17.下列關(guān)于Python運算符的使用描述正確的是()。

A.a=!b,比較a與b是否不相等

B.a=+b,等同于a=a+b

C.a==b,比較a與b是否相等

D.a//=b,等同于a=a/b

18.以下關(guān)于文件的描述中,正確的是()。

A.使用open()打開文件時,必須要用r或w指定打開方式,不能省略

B.采用readlines()可以讀入文件中的全部文本,返回一個列表

C.文件打開后,可以用write()控制對文件內(nèi)容的讀寫位置

D.如果沒有采用close()關(guān)閉文件,Python程序退出時文件將不會自動關(guān)閉

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

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

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

A.棧B.樹C.隊列D.二叉樹

21.以下代碼的輸出結(jié)果是()。whileTrue:guess=eval(input())ifguess==0x452//2:breakprint(guess)

A.0x452B.breakC.553D.”0x452//2”

22.以下程序的輸出結(jié)果是()。Test_list=list(range(6))Print(6inTest_list)

A.6B.6inTest_listC.TrueD.False

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

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

24.以下程序被調(diào)用后,能夠正確執(zhí)行的是()。deff(x,y=1,z=2):pass

A.f(x=1,2)B.f(x=1,y=2,z=3)C.f(1,x=2,z=3)D.f(1,y=2,3)

25.以下程序的輸出結(jié)果是()。a,b,c=’I’,chr(64),”you”s=a+b+Cprint(s)

A.I@youB.IyouC.I4youD.Ichr(64)you

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

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

27.表達式3**2*4//6%7的計算結(jié)果是()。

A.3B.5C.4D.6

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

A.黑盒測試方法且是靜態(tài)測試B.黑盒測試方法且是動態(tài)測試C.白盒測試方法且是動態(tài)測試D.白盒測試方法且是靜態(tài)測試

29.樹的度為3,且有9個度為3的節(jié)點,5個度為1的節(jié)點,但沒有度為2的節(jié)點。則該樹中的葉子節(jié)點數(shù)為()。

A.18B.33C.19D.32

30.執(zhí)行以下代碼的結(jié)果是()A.12B.24C.36D.48

二、判斷題(10題)31.Python2.x和Python3.x中input()函數(shù)的返回值都是字符串。

A.是B.否

32.Python3.x支持使用中文作為變量名。

A.是B.否

33.加法運算符可以用來連接字符串并生成新字符串。

A.是B.否

34.在調(diào)用函數(shù)時,可以通過關(guān)鍵參數(shù)的形式進行傳值,從而避免必須記住函數(shù)形參順序的麻煩。

A.是B.否

35.Python字典中的“鍵”可以是元組。

A.是B.否

36.在UTF-8編碼中一個漢字需要占用3個字節(jié)。

A.是B.否

37.元組可以作為集合的元素。

A.是B.否

38.在try...except...else結(jié)構(gòu)中,如果try塊的語句引發(fā)了異常則會執(zhí)行else塊中的代碼。

A.是B.否

39.Python類不支持多繼承。

A.是B.否

40.在任何時刻相同的值在內(nèi)存中都只保留一份

A.是B.否

三、填空題(10題)41.查看對象內(nèi)存地址的Python內(nèi)置函數(shù)是__________。

42.達式sorted([111,2,33],key=lambdax:-len(str(x)))的值為____________。

43.對于帶有else子句的for循環(huán)和while循環(huán),當循環(huán)因循環(huán)條件不成立而自然結(jié)束時________(會?不會?)執(zhí)行else中的代碼。

44.已知x=list(range(10)),則表達式x[-4:]的值為__________。

45.已知列表x中包含超過5個以上的元素,那么表達式x==x[:5]+x[5:]的值為________。

46.表達式sum(range(1,10,2))的值為____________。

47.表達式int('101',2)的值為__________。

48.Python程序文件擴展名主要有__________和________兩種,其中后者常用于GUI程序。

49.表達式3<<2的值為_______________。

50.表達式'%s'%[1,2,3]的值為_____________。

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

52.考生文件夾下存在3個Python源文件,分別對應(yīng)3個問題,請按照文件內(nèi)說明修改代碼,實現(xiàn)以下功能。法定節(jié)假日是根據(jù)各國、各民族的風俗習慣或紀念要求,由國家法律統(tǒng)一規(guī)定的用以慶祝及度假的休息時間。法定節(jié)假日制度是國家政治、經(jīng)濟、文化制度的重要反映,涉及經(jīng)濟社會的多個方面,涉及廣大人民群眾的切身利益。法定節(jié)假日的安排,為居民出行、購物和休閑提供了時間上的便利,為拉動內(nèi)需、促進經(jīng)濟增長做出了積極貢獻。給出一個某年的節(jié)假日的放假日期CSV文件(PY301-vacations.CSV),內(nèi)容示例如下。序號節(jié)假日名稱開始月日結(jié)束月日1元旦123001012春節(jié)021502213清明節(jié)040504074勞動節(jié)050105035端午節(jié)06160618以第1行為例,1230表示12月30日,0101表示1月1日。問題1:在“PY301-1.py”文件中修改代碼,讀入CSV文件中的數(shù)據(jù),獲得用戶輸入。根據(jù)用戶輸入的節(jié)假日名稱,輸出此節(jié)假日的時間范圍。輸入和輸出本例格式如下。請輸入節(jié)假日名稱(例如,春節(jié)):春節(jié)春節(jié)的假期位于0215~0221之間試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#請在程序的處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準Is=[]print("{}的假期位于{}-{}之間”,.format())問題2:在“PY301-2.py”文件中修改代碼,讀入CSV文件的數(shù)據(jù),獲得用戶輸入。用戶輸入一組范圍是1?7的整數(shù)作為序號,序號間采用空格符分隔,以回車符結(jié)束。輸出這些序號對應(yīng)的節(jié)假日的名稱、時間范圍,每個節(jié)假日的信息一行。本次輸出完成后,重新回到輸入序號的狀態(tài)。輸入和輸出示例格式如下。請輸入節(jié)假日序號:15元旦(1)假期是12月30日至01月01日之間端午節(jié)假期(5)是06月16日至06月18日之間請輸入節(jié)假日序號:試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準...Is=[]print("{}({})假期是{}月{}日至{}月{}日之間".format())問題3:在問題2的基礎(chǔ)上,在“PY301-3.Py”文件中修改代碼,對輸入的每個序號做合法性處理。如果輸入的數(shù)字不不合法,請輸出“輸入節(jié)假日編號有誤!”,繼續(xù)輸出后續(xù)信息,然后重新回到輸入序號的狀態(tài)。輸入和輸出示例格式如下。請輸入節(jié)假日序號:51411端午節(jié)(5)假期是06月16日至06月18日之間輸入節(jié)假日編號有誤!輸入節(jié)假日編號有誤!請輸入節(jié)假日編號:試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#請在程序的處用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準Is=[]print("{}({})假期是{}月{}日至{}月{}日之間".format())ifflag==False:print("輸入節(jié)假日編號有誤!”)...

53.考生文件夾下存在一個文件“PY202.py”,該文件是本題目的代碼提示框架,其中代碼可以任意修改。請在該文件中編寫代碼,以實現(xiàn)如下功能。用鍵盤輸入兩個大于0的整數(shù),按要求輸出這兩個整數(shù)之間(不包括這兩個整數(shù))的所有素數(shù)。素數(shù)又稱質(zhì)數(shù),是指除了1和它本身以外不能被其他整數(shù)整除的數(shù)。試題程序:#以下代碼為提示框架#請在...處使用一行或多行代碼替換#請在_____處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準lower=int(input(‘輸入?yún)^(qū)間最小值:’))upper=int(inputs(‘輸入?yún)^(qū)間最大值:’))fornuminrange(_____,_____):

參考答案

1.A(3+4j)*(3-4j)是復(fù)數(shù)的乘法運算。設(shè)c1=a+bj,c2=c+dj(a、b、c、d均為實數(shù)),c1*c2=\n(ac-bd)+(bc+ad)j0結(jié)果是(25+0j)。本題選擇A選項。

2.C在Python中,0.1+0.2=0.30000000000000004。原因是:對于十進制,它只能表示以進制數(shù)的質(zhì)因子為分母的分數(shù)。10的質(zhì)因子有2和5,因此1/2、1/4、1/5、1/8及1/10都可以精確表示;相反,1/3、1/6及1/7都是循環(huán)小數(shù),因為它們的分母使用了質(zhì)因子3或者7。二進制中,只有一個質(zhì)因子,即2,因此只能精確表示分母質(zhì)因子是2的分數(shù)。二進制中,1/2、1/4及1/8都可以被精確表示,但1/5或者1/10就變成了循環(huán)小數(shù)。所以,在十進制中能夠精確表示的0.1與0.2(1/10與1/5),到了計算機所使用的二進制中就變成了循環(huán)小數(shù)。當對這些循環(huán)小數(shù)進行數(shù)學運算并將二進制數(shù)據(jù)轉(zhuǎn)換成人類易讀的十進制數(shù)據(jù)時,會對小數(shù)尾部進行截斷處理。在不同的編程語言中,運行0.1+0.2會輸出不同的結(jié)果。本題選擇C選項。

3.Acontinue語句只結(jié)束本次循環(huán),不終止整個循環(huán)的執(zhí)行,而break語句具備結(jié)束整個循環(huán)的能力。本題外層循環(huán)用來計數(shù),內(nèi)層循環(huán)用來遍歷字符串,當滿足判斷條件時,就會結(jié)束本次循環(huán)進入下一次循環(huán),字符串遍歷完成之后,外層循環(huán)進入下一次循環(huán)。本題選擇A選項。

4.C列表索引從0開始,列表遵循正向遞增索引和反向遞減索引,故ls[2][1][-2]是字符o。本題選擇C選項。

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

6.DTest_list是列表類型,6inTest_list表示如果6是列表Test_list的元素,返回True,否則返回False。

7.C這段代碼是全局變量、局部變量以及Python內(nèi)置函數(shù)bool()的一個結(jié)合。當函數(shù)內(nèi)部的局部變量名和函數(shù)外部全局變量名相同,調(diào)用函數(shù)時,總是先找到函數(shù)內(nèi)部的局部變量名,所以當a為2時,經(jīng)過布爾型轉(zhuǎn)換之后的a-2,即b為False,而在函數(shù)外部只能訪問全局變量名,所以n仍為2。本題選擇C選項。

8.C

9.A扇入是指調(diào)用一個給定模塊的模塊個數(shù),扇出是指由一個模塊直接調(diào)用的其他模塊個數(shù),B項錯誤。從屬模塊是指被另一個模塊調(diào)用的模塊,原子模塊是從屬模塊,但從屬模塊不一定是原子模塊,D項錯誤。結(jié)構(gòu)圖是描述軟件結(jié)構(gòu)的圖形工具,C項錯誤。

10.AA選項中類只是一種抽象事物的分類,對象才是一種實例。本題選擇A選項。

11.Bls.remove(x)是刪除列表ls中出現(xiàn)的第一個x元素,而不是刪除列表ls中所有的x元素。本題選擇B選項。

12.CPython中無論是標準庫、第三方庫還是自定義庫,在使用之前都需要進行導(dǎo)入,方法就是使用import語句導(dǎo)人模塊。本題選擇C選項。

13.Atry—except語句用于檢測和處理異常。

14.D遍歷列表letter,當i==’D’時,執(zhí)行l(wèi)etter.removeG),此時列表letter:\n[‘A’,’B’,’C’,'D’];再遍歷當i==\n‘D’,執(zhí)行l(wèi)etter.remove(i),此時列表letter=['A’,’B’,’C’,’D’]。因為列表的元素個數(shù)隨著“D”元素的刪除而減小,當刪除第一個“D”元素之后,列表元素的個數(shù)即變?yōu)?,for循環(huán)又是控制循環(huán)次數(shù)的,因此只遍歷5次,當?shù)诙€“\nD”元素刪除時,循環(huán)結(jié)束。本題選擇D選項。

15.D

16.BPython字符串采用[N:M]格式進行切片,獲取字符串從索引N到M的子字符串(包含N,不包含M)。本題選擇B選項。

17.C比較a與b是否不相等的運算符是!=;a+=b等同于a=a+b;a//=b等同于a=a//b。

18.B使用open()打開文件時,省略打開模式會默認只讀方式打開;文件打開后,可以用seek()控制對文件內(nèi)容的讀寫位置,write()方法只是向文件寫入一個字符串或是字節(jié)流;如果沒有采用close()關(guān)閉文件,有可能會導(dǎo)致數(shù)據(jù)丟失。Python程序退出時一般會自動關(guān)閉。本題選擇B選項。

19.D一個客戶可以在多家銀行辦理業(yè)務(wù),一家銀行也有多個客戶辦理業(yè)務(wù),因此,實體客戶和實體銀行之間的聯(lián)系是多對多。

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

21.C該程序最外層是while循環(huán),while循環(huán)的條件是True,由此可知while內(nèi)的語句會無限循環(huán)。input()函數(shù)是用來獲取用戶從鍵盤輸入的內(nèi)容并以字符串類型返回。eval()函數(shù)是把字符串轉(zhuǎn)換成Python可用的語言。if語句的作用是來控制程序是否繼續(xù)循環(huán),判斷條件中0x452是十六進制數(shù),對2整除的結(jié)果是553,如果用戶輸入的數(shù)據(jù)是553,則將結(jié)果輸出并終止循環(huán);如果輸入其他數(shù)據(jù),程序會一直要求用戶輸入直到輸入正確的數(shù)據(jù)才會終止循環(huán)。本題選C選項。

22.DTest_llst是列表類型,6inTest_llst表示如果6是列表Test_llst的元素,則返回True,否則返回False。本題選擇D選項。

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

24.B函數(shù)的參數(shù)在定義時可以指定默認值,當函數(shù)被調(diào)用時,如果沒有傳人對應(yīng)的參數(shù)值,則使用函數(shù)定義時的默認值替代。本題在定義函數(shù)時,y=1,z=2就是指定的默認值。在Python中,函數(shù)調(diào)用時,參數(shù)傳遞的主要方式有位置傳遞和關(guān)鍵字傳遞兩種。位置傳遞是根據(jù)函數(shù)定義的參數(shù)位置來傳遞參數(shù);關(guān)鍵字傳遞是根據(jù)每個參數(shù)的名字傳遞參數(shù),該方式不用區(qū)分參數(shù)順序位置,名字對了就行。關(guān)鍵字傳遞可以和位置傳遞混用,但混用時位置參數(shù)要出現(xiàn)在關(guān)鍵字參數(shù)之前。A項,第一個參數(shù)為關(guān)鍵字傳遞,第二個參數(shù)為位置傳遞,混用順序不對;D項,第二個參數(shù)為關(guān)鍵字傳遞,第三個參數(shù)為位置傳遞,混用順序不對;C項,第一個參數(shù)已經(jīng)使用位置傳遞(將1傳遞給x),第二個參數(shù)又使用關(guān)鍵字傳遞將2傳遞給x,會出現(xiàn)異常報錯。故答案為B項。

25.A程序中,chr(64)輸出的是字符@,之后用”+”連接字符串,最后輸出I@you。本題選擇A選項。

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

27.D先計算冪,3**2=9,9*4=36,36//6=6,6%7=6。//是整除運算,%是求余運算。本題選D選項。

28.C白盒測試方法主要有邏輯覆蓋、基本路徑測試等。黑盒測試方法主要有等價類劃分法、邊界值分析法、錯誤推測法及因果圖等?;韭窂綔y試根據(jù)軟件過程性描述中的控制流確定程序的環(huán)路復(fù)雜性度量,用此度量定義基本路徑的集合,并由此導(dǎo)出一組測試用例對每一條獨立執(zhí)行路徑進行測試。因此,基本路徑測試屬于動態(tài)測試。本題選擇C選項。

29.C設(shè)葉子結(jié)點數(shù)為〃,則該樹的結(jié)點數(shù)為n+9+5=n+\n14,根據(jù)樹中的結(jié)點數(shù)=樹中所有結(jié)點的度之和+1,得9×3+0×2+5×1+n×0+1=n+14,則n=19。本題選擇C選項。

30.B

31.N

32.Y

33.Y

34.Y

35.Y

36.Y

37.Y

38.N

39.N

40.N

41.id()

42.[111,33,2]

43.會

44.[6,7,8,9]

45.True

46.25

47.5

48.py、pyw

49.12

50.'[1,2,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循環(huán)遍歷輸入的每一個字符:如果輸入的字符是大小寫字母,把該字母替換為該字母后面的第三個字母,將轉(zhuǎn)換后的字母進行輸出;如果輸入的字符不是大小寫字母,則原樣輸出字符,該部分功能通過if多分支結(jié)構(gòu)實現(xiàn)。

52.Fi=open(“PY301-vacations.csv”,”r”)Is=[]Foulineinfi:Is.append(line.strip(“\\n”).split(“,”))S=input(“請輸入節(jié)假日名稱”)Forlineinis:Ifs==line[1]Print(“{}的假期位于{}-{}之間”.format(line[1],line[2],line[3]))(2)Fi=open(“PY301-vacations.csv”,”r”)Is=[]Foulineinfi:Is.append(line.strip(“\\n”).split(“,”))S=input(“請輸入節(jié)假日序號”).split(“”)WhiletrueForiins:Forlineinis:Ifi==line[0]Print(“{}({})的假期位于{}月{}日之間”.format(line[1],line[0],line[2][0]+line[2][1],line[2][2]+line[2][3],line[3][0]+line[3][1],line[3][2]+line[3][3]))S=input(“請輸入節(jié)假日序號:”).split(“”)(3)Fi=open(“PY301-vacations.csv”,”r”)Is=[]Foulineinfi:Is.append(line.strip(“\\n”).split(“,”))S=input(“請輸入節(jié)假日序號”).split(“”)Whiles!=””:Foriins:Flag=falseForlineinis:Ifi==line[0]Print(“{}({})的假期位于{}月{}日之間”.format(line[1],line[0],line[2][0]+line[2][1],line[2][2]+line[2][3],line[3][0]+line[3][1],line[3][2]+line[3][3]))Flag=TureIfflag==falsePrint(“輸入節(jié)假日編號有誤!”)S=input(“請輸入節(jié)假日序號:”).split(“”)(1)\r\n對文件的讀操作需要使用open()函數(shù),模式為”r";將文件讀入后,需要把CSV文件的內(nèi)容轉(zhuǎn)換成二維數(shù)據(jù),并將其轉(zhuǎn)換成二維列表對象。首先定義一個列表Is,把讀入的每行數(shù)據(jù)使用strip()函數(shù)清除掉換行符,再使用split()函數(shù)在元素之間以逗號分隔存儲在列表Is中,split()函數(shù)返回的是一個列表,因此把CSV文件轉(zhuǎn)換成二維列表對象。使用input()函數(shù)獲取用戶輸入,再用for循環(huán)遍歷二維列表,如果輸入的節(jié)假日名稱在列表中,則輸出對應(yīng)的時間段。(2)\r\n用戶可以輸入多個節(jié)假日的序號,因此可以考慮使用split()方法把輸入的序號放在一個列表中,然后使用兩個for循環(huán),一個用來遍歷二維列表,一個用來遍歷輸入的序號列表,當輸入的序號與二維列表中的一樣時,輸出結(jié)果。因為題目的示例輸出在數(shù)字月和日期之間加入了漢字,此時分析存入二維列表中的數(shù)字,可以知道存入的是字符串,即在CSV文件中初始月日和結(jié)束月日都是長度為4的字符串,屬于序列類型,因此可以使用索引訪問。(3)在問題2的基礎(chǔ)上,加上一個標記,如果輸入的序號正確,則標記為True;輸入錯誤,標記為False,最后根據(jù)標記判斷是否輸出“輸入節(jié)假日編號有誤!\r\n”。分析題目要求可知,標記是在輸入的序號在二維列表中可以查到時變?yōu)門rue,其他情況都為False,所以標記應(yīng)該放在遍歷序號列表的for循環(huán)內(nèi)、遍歷二維列表的for循環(huán)外。

53.lower=int(input(‘輸入?yún)^(qū)間最小值:’))upper=int(inputs(‘輸入?yún)^(qū)間最大值:’))fornuminrange(lower+1,upper):Ifnum>1:Foriin染個(2,num):If(num%i)==0:BreakElse:Print(num)題目要求輸出兩個整數(shù)之間(不包括這兩個整數(shù))的所有素數(shù),因此mnge()函數(shù)的參數(shù)應(yīng)為lower+1和upper。for循環(huán)遍歷range(lower\r\n+l,upper)返回的每個整數(shù)num,判斷該數(shù)是否為素數(shù)。如果num大于1(1既不是素數(shù)也不是合數(shù)),且該數(shù)能被取值范圍為[2,num-1\r\n]的任何一個整數(shù)整除,那么該數(shù)一定不是素數(shù),否則一定是素數(shù)。山東省淄博市全國計算機等級考試Python語言程序設(shè)計學校:________班級:________姓名:________考號:________

一、單選題(30題)1.以下程序的輸出結(jié)果是()。try:print((3+4j)*(3-4j))except:print(”運算錯誤!!”)

A.(25+0j)B.5C.運算錯誤!!D.3

2.以下代碼的輸出結(jié)果是()。print(0.1+0.2==0.3)

A.-1B.TrueC.FalseD.0

3.以下程序的輸出結(jié)果是()。foriinrange(3): forjin“dream”: ifj==“e” continue print(j,end=“”)

A.dramdramdramB.drdrdrC.dreamdreamdreamD.dream

4.以下程序的輸出結(jié)果是()。Is=[‘book’,666,[2018,‘python’,314],20]print(ls[2][1][-2])

A.nB.pythonC.oD.結(jié)果錯誤

5.下列關(guān)于Python縮進的描述中,錯誤的是()。

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

B.判斷、循環(huán)、函數(shù)等語法形式能夠通過縮進包含一批Python代碼,進而表達對應(yīng)的語義

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

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

6.以下代碼的輸出結(jié)果是()。Test_list=list(range(6))Print(6inTest_list)

A.6B.6inTest_listC.TrueD.False

7.以下程序的輸出結(jié)果是()。n=2deff(a): n=bool(a-2) returnnb=f(2)print(n,b)

A.20B.0TrueC.2FalseD.0False

8.在命名Python標識符時,以下命名合理的是()

A.listB.forC.usersD.type

9.對軟件系統(tǒng)總體結(jié)構(gòu)圖描述正確的是()。

A.深度等于控制的層數(shù)B.扇入是一個模塊直接調(diào)用的其他模塊數(shù)C.結(jié)構(gòu)圖是描述軟件系統(tǒng)功能的D.從屬模塊一定是原子模塊

10.下面對于類的說法錯誤的是()。

A.類是一種實例

B.在類進行實例化時將會首先執(zhí)行該類中的int方法

C.在對類進行實例化時,傳入的實參不用帶上self,它在類的執(zhí)行過程中將自行帶上

D.類中的變量前帶有前綴self意味著此變量在類中任意位置可以使用

11.以下關(guān)于列表變量ls操作的描述中,錯誤的是()。

A.ls.copy():生成一個新列表,復(fù)制ls的所有元素

B.ls.removed):刪除ls中所有的x元素

C.ls.append(x):在ls最后增加一個元素

D.ls.reverse():反轉(zhuǎn)列表ls中所有元素

12.以下屬于Python中導(dǎo)入語句的是()。

A.classB.returnC.importD.print

13.當試圖訪問的對象屬性不存在時,為了不讓程序拋出異常,需要用到的語句是()。

A.try—except語句B.for語句C.eval語句D.if語句

14.下面代碼的輸出結(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’]

15.要將3.1415926變成00003.14如何進行格式化輸出?

A."%.2f"%3.1415629

B."%8.2f"%3.1415629

C."%0.2f"%3.1415629

D."%08.2f"%3.1415629

16.以下關(guān)于Python字符串的描述中,錯誤的是()。

A.在Python字符串中,可以混合使用正整數(shù)和負整數(shù)進行索引和切片

B.Python字符串采用[N:M]格式進行切片,獲取字符串從索引N到M的子字符串(包含N和M)

C.字符串‘my\\text.dat’中第1個‘\’表示轉(zhuǎn)義字符

D.空字符串可以表示為“”或‘’

17.下列關(guān)于Python運算符的使用描述正確的是()。

A.a=!b,比較a與b是否不相等

B.a=+b,等同于a=a+b

C.a==b,比較a與b是否相等

D.a//=b,等同于a=a/b

18.以下關(guān)于文件的描述中,正確的是()。

A.使用open()打開文件時,必須要用r或w指定打開方式,不能省略

B.采用readlines()可以讀入文件中的全部文本,返回一個列表

C.文件打開后,可以用write()控制對文件內(nèi)容的讀寫位置

D.如果沒有采用close()關(guān)閉文件,Python程序退出時文件將不會自動關(guān)閉

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

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

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

A.棧B.樹C.隊列D.二叉樹

21.以下代碼的輸出結(jié)果是()。whileTrue:guess=eval(input())ifguess==0x452//2:breakprint(guess)

A.0x452B.breakC.553D.”0x452//2”

22.以下程序的輸出結(jié)果是()。Test_list=list(range(6))Print(6inTest_list)

A.6B.6inTest_listC.TrueD.False

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

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

24.以下程序被調(diào)用后,能夠正確執(zhí)行的是()。deff(x,y=1,z=2):pass

A.f(x=1,2)B.f(x=1,y=2,z=3)C.f(1,x=2,z=3)D.f(1,y=2,3)

25.以下程序的輸出結(jié)果是()。a,b,c=’I’,chr(64),”you”s=a+b+Cprint(s)

A.I@youB.IyouC.I4youD.Ichr(64)you

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

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

27.表達式3**2*4//6%7的計算結(jié)果是()。

A.3B.5C.4D.6

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

A.黑盒測試方法且是靜態(tài)測試B.黑盒測試方法且是動態(tài)測試C.白盒測試方法且是動態(tài)測試D.白盒測試方法且是靜態(tài)測試

29.樹的度為3,且有9個度為3的節(jié)點,5個度為1的節(jié)點,但沒有度為2的節(jié)點。則該樹中的葉子節(jié)點數(shù)為()。

A.18B.33C.19D.32

30.執(zhí)行以下代碼的結(jié)果是()A.12B.24C.36D.48

二、判斷題(10題)31.Python2.x和Python3.x中input()函數(shù)的返回值都是字符串。

A.是B.否

32.Python3.x支持使用中文作為變量名。

A.是B.否

33.加法運算符可以用來連接字符串并生成新字符串。

A.是B.否

34.在調(diào)用函數(shù)時,可以通過關(guān)鍵參數(shù)的形式進行傳值,從而避免必須記住函數(shù)形參順序的麻煩。

A.是B.否

35.Python字典中的“鍵”可以是元組。

A.是B.否

36.在UTF-8編碼中一個漢字需要占用3個字節(jié)。

A.是B.否

37.元組可以作為集合的元素。

A.是B.否

38.在try...except...else結(jié)構(gòu)中,如果try塊的語句引發(fā)了異常則會執(zhí)行else塊中的代碼。

A.是B.否

39.Python類不支持多繼承。

A.是B.否

40.在任何時刻相同的值在內(nèi)存中都只保留一份

A.是B.否

三、填空題(10題)41.查看對象內(nèi)存地址的Py

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論