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

下載本文檔

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

文檔簡介

吉林省通化市全國計算機等級考試Python語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(30題)1.字符串tstr=’television’,顯示結(jié)果為vi的選項是()。

A.pxint(tstr[4:7])

B.ptint(tstr[5:7])

C.print(tstr[一6:6])

D.print(tstr[4:一2])

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

3.以下關(guān)于文件讀/寫的描述中,錯誤的是()。

A.對文件進行讀/寫操作之后必須關(guān)閉文件以確保所有內(nèi)容都得到保存

B.以寫模式打開的文件無法進行讀操作

C.文件對象的seek()方法用來返回文件指針的當(dāng)前位置

D.文件對象的readline()方法用來讀取一行字符串

4.關(guān)于數(shù)據(jù)組織的維度描述正確的是()。

A.二維數(shù)據(jù)由對等關(guān)系的有序或無序數(shù)據(jù)構(gòu)成

B.高維數(shù)據(jù)由關(guān)聯(lián)關(guān)系數(shù)據(jù)構(gòu)成

C.CSV是一維數(shù)據(jù)

D.—維數(shù)據(jù)采用線性方式存儲

5.結(jié)構(gòu)化程序設(shè)計的基本原則不包括A.多態(tài)性B.自頂向下C.模塊化D.逐步求精

6.對于序列s,以下選項對min(s)描述正確的是()。

A.可以返回序列s中的最小元素,如果存在多個相同的最小元素,則返回一個列表類型

B.一定能夠返回序列s中的最小元素

C.可以返回序列s中的最小元素,如果存在多個相同的最小元素,則返回一個元組類型

D.可以返回序列s中的最小元素,但要求s中元素可比較

7.以下代碼的輸出結(jié)果是()。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.函數(shù)調(diào)用出錯

8.定義在類中的方法之外的變量是()

A.實例變量B.類變量C.公有變量D.私有變量

9.表格類型數(shù)據(jù)的組織維度最可能是()。

A.多維數(shù)據(jù)B.一維數(shù)據(jù)C.二維數(shù)據(jù)D.高維數(shù)據(jù)

10.以下關(guān)于程序設(shè)計語言的描述,錯誤的選項是()。

A.Python解釋器把Python代碼一次性翻譯成目標(biāo)代碼,然后執(zhí)行

B.機器語言直接用二進制代碼表達指令

C.Python是一種通用編程語言

D.匯編語言是直接操作計算機硬件的編程語言

11.以下選項中不是Python文件讀/寫操作方法的是()。

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

12.屬于Python讀取文件中一行內(nèi)容的操作是()。

A.readtext()B.readline()C.readall()D.read()

13.以下程序的輸出結(jié)果是()。forsin“PythonNCRE”: ifs==“N”: break print(s,end=“”)

A.PythonCREB.NC.PythonD.PythonNCRE

14.—個類繼承另一個類,那么被繼承的這個類被稱為()。

A.超類B.子類C.類D.繼承類

15.以下程序的輸出結(jié)果是()。t=10.5defabove_zero(t): returnt>0

A.TrueB.FalseC.10.5D.沒有輸出

16.現(xiàn)在假設(shè)有一個包含一個函數(shù)的程序放在一個文件中,在主程序文件中使用下面各種方法來導(dǎo)入它,哪一種方法是錯誤的?()

A.importmodule

B.frommoduleasfimportfunction

C.importmoduleasm

D.frommoduleimport*

17.以下構(gòu)成Python循環(huán)結(jié)構(gòu)的語句中,正確的是()。

A.whileB.loopC.ifD.do-for

18.以下程序的輸出結(jié)果是()。foriin”Nation”:forkinrange(2):ifi==’n’:breakprint(i,end=””)

A.aattiiooB.NNaattiiooC.NaattiioonD.aattiioonn

19.下列敘述中正確的是()。

A.棧是一種先進先出的線性表B.隊列是一種后進先出的線性表C.棧與隊列都是非線性結(jié)構(gòu)D.以上3種說法都不對

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

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

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

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

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

21.在數(shù)據(jù)庫設(shè)計中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。

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

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

A.6B.6inTest_listC.TrueD.False

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

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

24.以下關(guān)于程序的異常處理的描述中,錯誤的是()。

A.except語句后面可以指定異常類型

B.異常和錯誤是兩個相同的意思

C.帶有else子句的異常處理結(jié)構(gòu),當(dāng)try中的語句塊正常執(zhí)行結(jié)束且沒有異常時執(zhí)行else子句中的代碼

D.異常處理機制雖然可以解決程序的一些錯誤,但不建議過度依賴

25.下面程序的輸出結(jié)果是()。Is=[“橘子”,“芒果”,“草毒”,“西瓜”,“水蜜桃”]ForkinIs:print(k,end=“”)A.橘子芒果草莓西瓜水蜜桃B.橘子芒果草莓西瓜水蜜桃C.西瓜D.”橘子”芒果"草莓”"西瓜"”水蜜桃”

26.設(shè)二叉樹中有20個葉子節(jié)點,5個度為1的節(jié)點,則該二叉樹中總的節(jié)點數(shù)為()。

A.46B.45C.44D.不可能有這樣的二叉樹

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

A.只讀模式是rB.覆蓋寫模式是wC.追加寫模式是aD.創(chuàng)建寫模式是n

28.以下程序的輸出結(jié)果是()。ls=[“2020”,“1903”,“Python”]ls.append(2050)ls.append([2020,“2020”])print(ls)

A.[‘2020’,‘1903’,‘Python’,2020,[2050,‘2020’]]

B.[‘2020’,‘1903’,‘Python’,2020]

C.[‘2020’,‘1903’,‘Python’,2050,[2050,‘2020’]]

D.[‘2020’,‘1903’,‘Python’,2050,[‘2020’]]

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

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

30.在數(shù)據(jù)庫設(shè)計中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。

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

二、判斷題(10題)31.Python3.x完全兼容Python2.x。

A.是B.否

32.列表對象的append()方法屬于原地操作,用于在列表尾部追加一個元素。

A.是B.否

33.形參可以看做是函數(shù)內(nèi)部的局部變量,函數(shù)運行結(jié)束之后形參就不可訪問了。

A.是B.否

34.如果在函數(shù)中有語句return3,那么該函數(shù)一定會返回整數(shù)3。

A.是B.否

35.Python字符串方法replace()對字符串進行原地修改。

A.是B.否

36.在Python中定義函數(shù)時不需要聲明函數(shù)的返回值類型。

A.是B.否

37.Python字典中的“鍵”不允許重復(fù)。

A.是B.否

38.函數(shù)中的return語句一定能夠得到執(zhí)行。

A.是B.否

39.在Python中可以使用for作為變量名。

A.是B.否

40.為了讓代碼更加緊湊,編寫Python程序時應(yīng)盡量避免加入空格和空行。

A.是B.否

三、填空題(10題)41.表達式'Helloworld'.lower()的值為_____________。

42.已知x={1:2},那么執(zhí)行語句x[2]=3之后,x的值為________________。

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

44.表達式{1,2,3}&{3,4,5}的值為______________。

45.已知x=[1,2,3],那么執(zhí)行語句x[len(x)-1:]=[4,5,6]之后,變量x的值為_________________________________。

46.表達式int('123')的值為_____________。

47.已知x=[[1]]*3,那么執(zhí)行語句x[0][0]=5之后,變量x的值為________________。

48.已知x=[[1,3,3],[2,3,1]],那么表達式sorted(x,key=lambdaitem:(item[1],item[2]))的值為____________________________________。

49.語句x=(3)執(zhí)行后x的值為________________。

50.表達式{1,2,3}<{3,4,5}的值為_________。

四、操作題(3題)51.考生文件夾下存在3個Python源文件,分別對應(yīng)3個問題;1個文本文件,作為本題目輸入數(shù)據(jù),請按照源文件內(nèi)部說明修改代碼,實現(xiàn)以下功能:

《賣火柴的小女孩》是丹麥童話故事作家安徒生的一篇童話故事,發(fā)表于1846年。主要講了一個賣火柴的小女孩在富人闔家歡樂、舉杯共慶的大年夜凍死在街頭的故事。這里給出《賣火柴的小女孩》的一個網(wǎng)絡(luò)版本文件,文件名為“小女孩.txt”。問題1:在PY301—1.py文件中修改代碼,對“小女孩.txt”文件進行字符頻次統(tǒng)計,輸出頻次最高的中文字符(不包含標(biāo)點符號)及其頻次,字符與頻次之間采用英文冒號”:”分隔,將輸出結(jié)果保存在考生文件夾下,命名為"PY301—1.txt"。示例格式如下:的:83

試題程序:#以下代碼為提示框架

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

#請在________處使用一行代碼替換

#注意:提示框架代碼可以任意修改,以完成程序功能為準(zhǔn)

fo=open(”PY301—1.txt”,”w”)

d={}

fo.write(”{}:{}”.format(__________))

fo.close()問題2:在PY301—2.py文件中修改代碼,對“小女孩.txt”文件進行字符頻次統(tǒng)計,按照頻次由高到低,輸出前10個頻次最高的字符,不包含回車符,字符之間無間隔,連續(xù)輸出,將輸出結(jié)果保存在考生文件夾下,命名為“PY301—2.txt”。示例格式如下:,的一…(后略,共10個字符)

試題程序:

#以下代碼為提示框架

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

#注意:提示框架代碼可以任意修改,以完成程序功能為準(zhǔn)

fo=open(”PY301一2.txt”,“w”)d={}ls=list(d.items())

ls.sort(key=lambdax:x[1],reverse=True)#此行可以按照詞頻由高到低排序

問題3:在PY301一3.py文件中修改代碼,對“小女孩.txt”文件進行字符頻次統(tǒng)計,將所有字符按照頻次從高到低排序,字符包括中文、標(biāo)點、英文等符號,但不包含空格和回車。將排序后的字符及頻次輸出到考生文件夾下,文件名為“小女孩一頻次排序.txt”。字符與頻次之間采用英文冒號”:”分隔,各字符之間采用英文逗號”,”分隔,參考CSV格式,最后無逗號,文件內(nèi)部示例格式如下:

著:30,那:29,火:29

試題程序:

#以下代碼為提示框架

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

#注意:提示框架代碼可以任意修改,以完成程序功能為準(zhǔn)

d={}

ls=list(d.items())

ls.sort(key=lambdax:x[1],reverse=True)}}#此行可以按照詞頻由高到低排序

52.考生文件夾下存在一個文件“PY103.py”,請寫代碼替換橫線,不修改其他代碼,實現(xiàn)以下功能。從鍵盤輸入一句話,用jieba庫進行分詞后,將切分的詞組按照原話逆序輸出到屏幕上,詞組中間沒有空格。示例如下。

輸入:我愛老師輸出:老師愛我

試題程序:#請在_____處使用一行代碼或表達式替換

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

importjiebatxt=input(”請輸入一段中文文本:”)_____(1)_____foriinls[::-1]:_____(2)_____

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

參考答案

1.C對字符串中某個子串或區(qū)間的檢索稱為切片。切片的使用方式如下:\n<字符串或字符串變量>[N:M]\n切片獲取字符串從N到M(不包含M)的子字符串,其中N和M為字符串的索引序號,可以混合使用正向遞增序號和反向遞減序號。切片要求N和M都在字符串的索引區(qū)間,如果N大于等于M,則返回空字符串。如果N缺失,則默認將N設(shè)為0;如果M缺失,則默認表示到字符串結(jié)尾。\n題干中tstr[4:7]=’vis’,tstr[5:7]=’is’,tstr[4:一2]=’visi’,tstr[一6:6]=’vi’

2.D

3.C文件對象的seek()方法用來定位文件的讀/寫位置,tell()方法用來返回文件指針的當(dāng)前位置。本題選擇C選項。

4.D二維數(shù)據(jù)由關(guān)聯(lián)關(guān)系的數(shù)據(jù)構(gòu)成,因此A選項錯誤;高維數(shù)據(jù)由鍵值對類型的數(shù)據(jù)構(gòu)成,因此B選項錯誤;CSV是一種通用的、相對簡單的文件格式,不僅可以保存一維數(shù)據(jù),還可以保存二維數(shù)據(jù),因此C選項錯誤。本題選擇D選項。

5.A結(jié)構(gòu)化程序設(shè)計方法的主要原則可以概括為:自頂向下,逐步求精,模塊化和限制使用GOTO語句,其中不包括多態(tài)性。

6.Dmin()函數(shù)返回給定參數(shù)的最小值,但是要求給定參數(shù)是可以比較的。若給定的參數(shù)不能比較,則會報錯;若給定參數(shù)存在多個最小元素,min()只會返回序列中最小的一個元素。故答案為D項。

7.B將實參age=43、famlyName=\n”趙”分別賦給形參age和famlyName,之后進入多分支結(jié)構(gòu)進行判斷。因為40

8.B

9.C一維數(shù)據(jù)由對等關(guān)系的有序或無序數(shù)據(jù)構(gòu)成,采用線性方式組織;二維數(shù)據(jù),也稱表格數(shù)據(jù),由關(guān)聯(lián)關(guān)系數(shù)據(jù)構(gòu)成,采用二維表格方式組織;高維數(shù)據(jù)由鍵值對類型的數(shù)據(jù)構(gòu)成,采用對象方式組織。故答案為C項。

10.Apython語言屬于腳本語言,腳本語言采用解釋方式執(zhí)行。解釋是將源代碼逐條轉(zhuǎn)換成目標(biāo)代碼同時逐條運行目標(biāo)代碼的過程,不是一次性翻譯的。

11.Cwrite():向文件寫人一個字符或字節(jié)流。wrkelines():將一個元素作為字符串的列表整體寫入文件。read():從文件中讀入整個文件內(nèi)容。本題選擇C選項。

12.B在Python中,文件讀取方法如下(f代表文件變量)。f.read():從文件中讀入整個文件內(nèi)容。f.readline():從文件中讀入一行內(nèi)容。f.readlineS():從文件中讀入所有行,以每行為元素形成一個列表。f.seek():改變當(dāng)前文件操作指針的位置。本題選擇B選項。

13.Cfor循環(huán)將字符串“PythonNCRE”的字符依次賦給變量S,當(dāng)s==“N”時,跳出for循環(huán),故輸出為Python。本題選擇C選項。

14.A一個類繼承另一個類,那么被繼承的這個類被稱為超類或者父類。本題選擇A選項。

15.D在Python中,return語句用來結(jié)束函數(shù)并將程序返回到函數(shù)被調(diào)用的位置繼續(xù)執(zhí)行。return語句可以出現(xiàn)在函數(shù)的任何部分,可以同時將0個、1個或多個函數(shù)運算結(jié)果返回給函數(shù)被調(diào)用處的變量。函數(shù)可以沒有return,此時函數(shù)并不返回值。return返回的是值而不是表達式,且此段語句并未調(diào)用函數(shù),故程序無輸出。本題選擇D選項。

16.BD選項用于導(dǎo)入模塊中所有的函數(shù)從而直接調(diào)用該模塊中的函數(shù);A選項直接導(dǎo)入整個模塊,再利用“模塊名.函數(shù)名”這樣的方式來運行該模塊中的函數(shù);C選項只是在導(dǎo)入該模塊時給該模塊起了一個別名,本質(zhì)和A選項一樣。B選項正確的寫法應(yīng)該是frommoduleimportfunctionasf,所以B選項錯誤。

17.APython中的循環(huán)結(jié)構(gòu)有for語句和while語句。if是選擇結(jié)構(gòu)語句。本題選擇A選項。

18.B在Python中對字母大小寫是敏感的,’N’和’n’是不同的字符。本題中,有兩層for循環(huán),即每個字符要輸出兩次,直到i=’n’時,跳出循環(huán),執(zhí)行輸出語句。故答案為B項。

19.D棧是一種先進后出的線性表,隊列是一種先進先出的線性表,棧與隊列都是線性結(jié)構(gòu)。本題選擇D選項。

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

21.CE-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型則是把圖形分析出來的聯(lián)系反映到數(shù)據(jù)庫中,即設(shè)計出表,所以屬于邏輯設(shè)計階段。本題選擇C選項。

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

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

24.B編程語言的異常和錯誤是兩個相似但不相同的概念。異常和錯誤都可能引起程序執(zhí)行錯誤而退出,它們屬于程序沒有考慮到的例外情況。

25.Bfor循環(huán)遍歷列表Is,依次把Is中的元素賦值給變量k,并使用函數(shù)Print()輸出各元素(格式為元素間用空格符分隔)。本題選擇B選項。

26.C二叉樹中只存在度為0、1、2的結(jié)點,根據(jù)在二叉樹中度為0的結(jié)點(葉子結(jié)點)總比度為2的結(jié)點多一個,可知本題中度為2的結(jié)點有20-1\n=19個。故該二叉樹中總的結(jié)點數(shù)為20+5+19=44個。本題選擇C選項。

27.D文件的打幵模式如下。r:只讀模式,如果文件不存在,返回異常FileNotFoundError。x:創(chuàng)建寫模式,文件不存在則創(chuàng)建,存在則返回異常FileExistsError。w:覆蓋寫模式,文件不存在則創(chuàng)建,存在則完全覆蓋原文件。a:追加寫模式,文件不存在則創(chuàng)建,存在則在原文件最后追加內(nèi)容。文件打開模式中沒有n,本題選擇D選項。

28.C要向列表中添加元素,可以使用append()方法,添加的元素類型可以不同,可以是數(shù)字、字符串、列表等。需要注意的是,append()方法不能同時添加多個元素。本題選擇C選項。

29.Bfun()函數(shù)進行加減計算,輸入為復(fù)數(shù),按復(fù)數(shù)加減運算法則計算結(jié)果為(2+3j)。

30.CE-R圖轉(zhuǎn)換成關(guān)系模型數(shù)據(jù)則是把圖形分析出來的聯(lián)系反映到數(shù)據(jù)庫中,即設(shè)計出表,所以屬于邏輯設(shè)計階段。

31.N

32.Y

33.Y

34.N

35.N

36.Y

37.Y

38.N

39.N

40.N

41.'helloworld'

42.{1:2,2:3}

43.True

44.{3}

45.[1,2,4,5,6]

46.123

47.[[5],[5],[5]]

48.[[2,3,1],[1,3,3]]

49.3

50.False

51.(1)fi=open("小女孩.txt","r")\r\nfo=open(”PY301—1.txt”,”w”)\r\ntxt=fi.read()\r\nd={}\r\nexclude=",。?。?、()【】<>《》=:+-*-“”…"\r\nforwordintxt:\r\n

ifwordinexclude:\r\n

continue\r\n

else:\r\n

d[word]=d.get(word,0)+1\r\nls=list(d.items())\r\nls.sort(key=lambdax:x[1],reverse=True)\r\n

fo.write(”{}:{}”format(ls[0][0],ls[0][1]))\r\n

fo.close()\r\n

(2)fi=open("小女孩.txt","r")\r\n

fo=open(”PY301—2.txt”,”w”)\r\n

txt=fi.read()\r\n

d={}\r\n

forwordintxt;\r\n

d[word]=d.get(word,0)+1\r\ndeld["\\n"]\r\n

ls=list(d.items())\r\n

ls.sort(key=lambdax:x[1],reverse=True)#此行可以按照詞頻由高到低排序\r\n

foriinrange(10);\r\n

fo.write(ls[i][0])\r\n

fi.close()\r\n

fo.close()

(3)fi=open("小女孩.txt","r")\r\nfo=open(小女孩-頻次排序。txt","w")\r\ntxt=fi.read()\r\nd={}\r\nforwordintxt\r\nd[word]=d.get(word,0)+1\r\ndeld[""]\r\ndeld["\\n"]\r\nls=list(d.items())\r\nls.sort(key=lambdax:x[1],reverse=True)#此行可以按照詞頻由高到低排序\r\nforiinrange(len(ls)):\r\nls[i]="{}:{}".format(ls[i][0],ls[i][1])\r\nfo.write(",".join(ls))\r\nfi.close()\r\nfo.close()(1)首先使用open()函數(shù)打開文件“小女孩.txt”,把文件的內(nèi)容通過read()方法保存到變量txt中;定義一個字符串變量exclude用來存放標(biāo)點符號。然后用for循環(huán)遍歷txt中的每個字符(word),并使用if條件進行判斷,若該字符在變量exclude中,說明該字符為標(biāo)點符號,跳出該循環(huán);否則將該字符作為字典d中的一個鍵,該鍵所對應(yīng)的值置為1,在后面循環(huán)中只要遍歷的字符與該鍵相同,就將該鍵對應(yīng)的值加1。\r\n

ls=list(d.items())表示將字典類型變成列表類型,字典中的每個鍵值對對應(yīng)列表中的一個元組。隨后,對列表ls中的元組進行排序,用到sort()方法,參數(shù)“key=lambda.x:x[1]”中l(wèi)ambda是一個隱函數(shù),是固定寫法,不能寫成別的單詞;x表示列表中的一個元素,在這里表示一個元組,x只是臨時起的一個名字,也可以使用任意的名字;x[1]表示以元組中第二個元素排序。sort()方法的第二參數(shù)表示是按哪種方式排序,若為“reverse=True”表示按降序排序;若該參數(shù)缺省或“reverse=False”,表示按升序排序。\r\n

排序后,列表ls中第一個元組中即為頻次最高的中文字符和頻次,ls[0][0]表示該字符,ls[0][1]表示其頻次,將這兩個元素通過“:”連接寫入文件“PY301—1.txt”中。\r\n

(2)問題2和問題1的區(qū)別在于統(tǒng)計的字符包含標(biāo)點符號,因此不需要設(shè)置字符串變量exclude和使用if條件語句進行判斷;題目要求不包含回車符,因此需要使用del刪除字典d中鍵為”\n”的元素。最后要無間隔輸出前10個頻次最高的字符,需要對排序好的列表ls進行for循環(huán)遍歷,找到前10個元組的第一個元素,并將其直接寫入到文件“PY301—2.txt”中。\r\n

(3)問題3和問題2的區(qū)別在于統(tǒng)計的字符中不能包含空格,因此需要使用del刪除字典d中鍵為空格的元素。最后要將所有字符和其頻次輸出,需要對排序好的列表ls進行for循環(huán)遍歷,遍歷列表中的每個元組,并將元組中的兩個元素通過“:”連接,再用逗號分隔每個字符寫入到文件“小女孩一頻次排序.txt”中。

52.importjiebatxt=input(”請輸入一段中文文本:”)foriinls[::-1]:該題目使用jieba中文分詞庫對輸入的字符串進行分割,然后按照原話逆序輸出。jieba庫是Python的第三方庫,需要導(dǎo)入之后才可以使用。jieba庫提供了\r\n3種分詞模式:精確模式、全模式及搜索引擎模式。其中精確模式分詞的詞語拼接沒有冗余,是經(jīng)常使用的。精確模式對字符串進行分詞操作的函數(shù)為jieba.\r\nlcut(s),該函數(shù)返回值是一個列表且列表中每一個元素都是一個中文詞語。最后,把返回的列表中的內(nèi)容使用切片的方法,將其逆序輸出。因此第1空填I(lǐng)s=jieba.lcut(txt),第2空填Print(i,end=””)。

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\n+l,upper)返回的每個整數(shù)num,判斷該數(shù)是否為素數(shù)。如果num大于1(1既不是素數(shù)也不是合數(shù)),且該數(shù)能被取值范圍為[2,num-1\n]的任何一個整數(shù)整除,那么該數(shù)一定不是素數(shù),否則一定是素數(shù)。吉林省通化市全國計算機等級考試Python語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(30題)1.字符串tstr=’television’,顯示結(jié)果為vi的選項是()。

A.pxint(tstr[4:7])

B.ptint(tstr[5:7])

C.print(tstr[一6:6])

D.print(tstr[4:一2])

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

3.以下關(guān)于文件讀/寫的描述中,錯誤的是()。

A.對文件進行讀/寫操作之后必須關(guān)閉文件以確保所有內(nèi)容都得到保存

B.以寫模式打開的文件無法進行讀操作

C.文件對象的seek()方法用來返回文件指針的當(dāng)前位置

D.文件對象的readline()方法用來讀取一行字符串

4.關(guān)于數(shù)據(jù)組織的維度描述正確的是()。

A.二維數(shù)據(jù)由對等關(guān)系的有序或無序數(shù)據(jù)構(gòu)成

B.高維數(shù)據(jù)由關(guān)聯(lián)關(guān)系數(shù)據(jù)構(gòu)成

C.CSV是一維數(shù)據(jù)

D.—維數(shù)據(jù)采用線性方式存儲

5.結(jié)構(gòu)化程序設(shè)計的基本原則不包括A.多態(tài)性B.自頂向下C.模塊化D.逐步求精

6.對于序列s,以下選項對min(s)描述正確的是()。

A.可以返回序列s中的最小元素,如果存在多個相同的最小元素,則返回一個列表類型

B.一定能夠返回序列s中的最小元素

C.可以返回序列s中的最小元素,如果存在多個相同的最小元素,則返回一個元組類型

D.可以返回序列s中的最小元素,但要求s中元素可比較

7.以下代碼的輸出結(jié)果是()。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.函數(shù)調(diào)用出錯

8.定義在類中的方法之外的變量是()

A.實例變量B.類變量C.公有變量D.私有變量

9.表格類型數(shù)據(jù)的組織維度最可能是()。

A.多維數(shù)據(jù)B.一維數(shù)據(jù)C.二維數(shù)據(jù)D.高維數(shù)據(jù)

10.以下關(guān)于程序設(shè)計語言的描述,錯誤的選項是()。

A.Python解釋器把Python代碼一次性翻譯成目標(biāo)代碼,然后執(zhí)行

B.機器語言直接用二進制代碼表達指令

C.Python是一種通用編程語言

D.匯編語言是直接操作計算機硬件的編程語言

11.以下選項中不是Python文件讀/寫操作方法的是()。

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

12.屬于Python讀取文件中一行內(nèi)容的操作是()。

A.readtext()B.readline()C.readall()D.read()

13.以下程序的輸出結(jié)果是()。forsin“PythonNCRE”: ifs==“N”: break print(s,end=“”)

A.PythonCREB.NC.PythonD.PythonNCRE

14.—個類繼承另一個類,那么被繼承的這個類被稱為()。

A.超類B.子類C.類D.繼承類

15.以下程序的輸出結(jié)果是()。t=10.5defabove_zero(t): returnt>0

A.TrueB.FalseC.10.5D.沒有輸出

16.現(xiàn)在假設(shè)有一個包含一個函數(shù)的程序放在一個文件中,在主程序文件中使用下面各種方法來導(dǎo)入它,哪一種方法是錯誤的?()

A.importmodule

B.frommoduleasfimportfunction

C.importmoduleasm

D.frommoduleimport*

17.以下構(gòu)成Python循環(huán)結(jié)構(gòu)的語句中,正確的是()。

A.whileB.loopC.ifD.do-for

18.以下程序的輸出結(jié)果是()。foriin”Nation”:forkinrange(2):ifi==’n’:breakprint(i,end=””)

A.aattiiooB.NNaattiiooC.NaattiioonD.aattiioonn

19.下列敘述中正確的是()。

A.棧是一種先進先出的線性表B.隊列是一種后進先出的線性表C.棧與隊列都是非線性結(jié)構(gòu)D.以上3種說法都不對

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

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

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

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

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

21.在數(shù)據(jù)庫設(shè)計中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。

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

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

A.6B.6inTest_listC.TrueD.False

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

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

24.以下關(guān)于程序的異常處理的描述中,錯誤的是()。

A.except語句后面可以指定異常類型

B.異常和錯誤是兩個相同的意思

C.帶有else子句的異常處理結(jié)構(gòu),當(dāng)try中的語句塊正常執(zhí)行結(jié)束且沒有異常時執(zhí)行else子句中的代碼

D.異常處理機制雖然可以解決程序的一些錯誤,但不建議過度依賴

25.下面程序的輸出結(jié)果是()。Is=[“橘子”,“芒果”,“草毒”,“西瓜”,“水蜜桃”]ForkinIs:print(k,end=“”)A.橘子芒果草莓西瓜水蜜桃B.橘子芒果草莓西瓜水蜜桃C.西瓜D.”橘子”芒果"草莓”"西瓜"”水蜜桃”

26.設(shè)二叉樹中有20個葉子節(jié)點,5個度為1的節(jié)點,則該二叉樹中總的節(jié)點數(shù)為()。

A.46B.45C.44D.不可能有這樣的二叉樹

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

A.只讀模式是rB.覆蓋寫模式是wC.追加寫模式是aD.創(chuàng)建寫模式是n

28.以下程序的輸出結(jié)果是()。ls=[“2020”,“1903”,“Python”]ls.append(2050)ls.append([2020,“2020”])print(ls)

A.[‘2020’,‘1903’,‘Python’,2020,[2050,‘2020’]]

B.[‘2020’,‘1903’,‘Python’,2020]

C.[‘2020’,‘1903’,‘Python’,2050,[2050,‘2020’]]

D.[‘2020’,‘1903’,‘Python’,2050,[‘2020’]]

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

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

30.在數(shù)據(jù)庫設(shè)計中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。

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

二、判斷題(10題)31.Python3.x完全兼容Python2.x。

A.是B.否

32.列表對象的append()方法屬于原地操作,用于在列表尾部追加一個元素。

A.是B.否

33.形參可以看做是函數(shù)內(nèi)部的局部變量,函數(shù)運行結(jié)束之后形參就不可訪問了。

A.是B.否

34.如果在函數(shù)中有語句return3,那么該函數(shù)一定會返回整數(shù)3。

A.是B.否

35.Python字符串方法replace()對字符串進行原地修改。

A.是B.否

36.在Python中定義函數(shù)時不需要聲明函數(shù)的返回值類型。

A.是B.否

37.Python字典中的“鍵”不允許重復(fù)。

A.是B.否

38.函數(shù)中的return語句一定能夠得到執(zhí)行。

A.是B.否

39.在Python中可以使用for作為變量名。

A.是B.否

40.為了讓代碼更加緊湊,編寫Python程序時應(yīng)盡量避免加入空格和空行。

A.是B.否

三、填空題(10題)41.表達式'Helloworld'.lower()的值為_____________。

42.已知x={1:2},那么執(zhí)行語句x[2]=3之后,x的值為________________。

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

44.表達式{1,2,3}&{3,4,5}的值為______________。

45.已知x=[1,2,3],那么執(zhí)行語句x[len(x)-1:]=[4,5,6]之后,變量x的值為_________________________________。

46.表達式int('123')的值為_____________。

47.已知x=[[1]]*3,那么執(zhí)行語句x[0][0]=5之后,變量x的值為________________。

48.已知x=[[1,3,3],[2,3,1]],那么表達式sorted(x,key=lambdaitem:(item[1],item[2]))的值為____________________________________。

49.語句x=(3)執(zhí)行后x的值為________________。

50.表達式{1,2,3}<{3,4,5}的值為_________。

四、操作題(3題)51.考生文件夾下存在3個Python源文件,分別對應(yīng)3個問題;1個文本文件,作為本題目輸入數(shù)據(jù),請按照源文件內(nèi)部說明修改代碼,實現(xiàn)以下功能:

《賣火柴的小女孩》是丹麥童話故事作家安徒生的一篇童話故事,發(fā)表于1846年。主要講了一個賣火柴的小女孩在富人闔家歡樂、舉杯共慶的大年夜凍死在街頭的故事。這里給出《賣火柴的小女孩》的一個網(wǎng)絡(luò)版本文件,文件名為“小女孩.txt”。問題1:在PY301—1.py文件中修改代碼,對“小女孩.txt”文件進行字符頻次統(tǒng)計,輸出頻次最高的中文字符(不包含標(biāo)點符號)及其頻次,字符與頻次之間采用英文冒號”:”分隔,將輸出結(jié)果保存在考生文件夾下,命名為"PY301—1.txt"。示例格式如下:的:83

試題程序:#以下代碼為提示框架

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

#請在________處使用一行代碼替換

#注意:提示框架代碼可以任意修改,以完成程序功能為準(zhǔn)

fo=open(”PY301—1.txt”,”w”)

d={}

fo.write(”{}:{}”.format(__________))

fo.close()問題2:在PY301—2.py文件中修改代碼,對“小女孩.txt”文件進行字符頻次統(tǒng)計,按照頻次由高到低,輸出前10個頻次最高的字符,不包含回車符,字符之間無間隔,連續(xù)輸出,將輸出結(jié)果保存在考生文件夾下,命名為“PY301—2.txt”。示例格式如下:,的一…(后略,共10個字符)

試題程序:

#以下代碼為提示框架

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

#注意:提示框架代碼可以任意修改,以完成程序功能為準(zhǔn)

fo=open(”PY301一2.txt”,“w”)d={}ls=list(d.items())

ls.sort(key=lambdax:x[1],reverse=True)#此行可以按照詞頻由高到低排序

問題3:在PY301一3.py文件中修改代碼,對“小女孩.txt”文件進行字符頻次統(tǒng)計,將所有字符按照頻次從高到低排序,字符包括中文、標(biāo)點、英文等符號,但不包含空格和回車。將排序后的字符及頻次輸出到考生文件夾下,文件名為“小女孩一頻次排序.txt”。字符與頻次之間采用英文冒號”:”分隔,各字符之間采用英文逗號”,”分隔,參考CSV格式,最后無逗號,文件內(nèi)部示例格式如下:

著:30,那:29,火:29

試題程序:

#以下代碼為提示框架

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

#注意:提示框架代碼可以任意修改,以完成程序功能為準(zhǔn)

d={}

ls=list(d.items())

ls.sort(key=lambdax:x[1],reverse=True)}}#此行可以按照詞頻由高到低排序

52.考生文件夾下存在一個文件“PY103.py”,請寫代碼替換橫線,不修改其他代碼,實現(xiàn)以下功能。從鍵盤輸入一句話,用jieba庫進行分詞后,將切分的詞組按照原話逆序輸出到屏幕上,詞組中間沒有空格。示例如下。

輸入:我愛老師輸出:老師愛我

試題程序:#請在_____處使用一行代碼或表達式替換

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

importjiebatxt=input(”請輸入一段中文文本:”)_____(1)_____foriinls[::-1]:_____(2)_____

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

參考答案

1.C對字符串中某個子串或區(qū)間的檢索稱為切片。切片的使用方式如下:\n<字符串或字符串變量>[N:M]\n切片獲取字符串從N到M(不包含M)的子字符串,其中N和M為字符串的索引序號,可以混合使用正向遞增序號和反向遞減序號。切片要求N和M都在字符串的索引區(qū)間,如果N大于等于M,則返回空字符串。如果N缺失,則默認將N設(shè)為0;如果M缺失,則默認表示到字符串結(jié)尾。\n題干中tstr[4:7]=’vis’,tstr[5:7]=’is’,tstr[4:一2]=’visi’,tstr[一6:6]=’vi’

2.D

3.C文件對象的seek()方法用來定位文件的讀/寫位置,tell()方法用來返回文件指針的當(dāng)前位置。本題選擇C選項。

4.D二維數(shù)據(jù)由關(guān)聯(lián)關(guān)系的數(shù)據(jù)構(gòu)成,因此A選項錯誤;高維數(shù)據(jù)由鍵值對類型的數(shù)據(jù)構(gòu)成,因此B選項錯誤;CSV是一種通用的、相對簡單的文件格式,不僅可以保存一維數(shù)據(jù),還可以保存二維數(shù)據(jù),因此C選項錯誤。本題選擇D選項。

5.A結(jié)構(gòu)化程序設(shè)計方法的主要原則可以概括為:自頂向下,逐步求精,模塊化和限制使用GOTO語句,其中不包括多態(tài)性。

6.Dmin()函數(shù)返回給定參數(shù)的最小值,但是要求給定參數(shù)是可以比較的。若給定的參數(shù)不能比較,則會報錯;若給定參數(shù)存在多個最小元素,min()只會返回序列中最小的一個元素。故答案為D項。

7.B將實參age=43、famlyName=\n”趙”分別賦給形參age和famlyName,之后進入多分支結(jié)構(gòu)進行判斷。因為40

8.B

9.C一維數(shù)據(jù)由對等關(guān)系的有序或無序數(shù)據(jù)構(gòu)成,采用線性方式組織;二維數(shù)據(jù),也稱表格數(shù)據(jù),由關(guān)聯(lián)關(guān)系數(shù)據(jù)構(gòu)成,采用二維表格方式組織;高維數(shù)據(jù)由鍵值對類型的數(shù)據(jù)構(gòu)成,采用對象方式組織。故答案為C項。

10.Apython語言屬于腳本語言,腳本語言采用解釋方式執(zhí)行。解釋是將源代碼逐條轉(zhuǎn)換成目標(biāo)代碼同時逐條運行目標(biāo)代碼的過程,不是一次性翻譯的。

11.Cwrite():向文件寫人一個字符或字節(jié)流。wrkelines():將一個元素作為字符串的列表整體寫入文件。read():從文件中讀入整個文件內(nèi)容。本題選擇C選項。

12.B在Python中,文件讀取方法如下(f代表文件變量)。f.read():從文件中讀入整個文件內(nèi)容。f.readline():從文件中讀入一行內(nèi)容。f.readlineS():從文件中讀入所有行,以每行為元素形成一個列表。f.seek():改變當(dāng)前文件操作指針的位置。本題選擇B選項。

13.Cfor循環(huán)將字符串“PythonNCRE”的字符依次賦給變量S,當(dāng)s==“N”時,跳出for循環(huán),故輸出為Python。本題選擇C選項。

14.A一個類繼承另一個類,那么被繼承的這個類被稱為超類或者父類。本題選擇A選項。

15.D在Python中,return語句用來結(jié)束函數(shù)并將程序返回到函數(shù)被調(diào)用的位置繼續(xù)執(zhí)行。return語句可以出現(xiàn)在函數(shù)的任何部分,可以同時將0個、1個或多個函數(shù)運算結(jié)果返回給函數(shù)被調(diào)用處的變量。函數(shù)可以沒有return,此時函數(shù)并不返回值。return返回的是值而不是表達式,且此段語句并未調(diào)用函數(shù),故程序無輸出。本題選擇D選項。

16.BD選項用于導(dǎo)入模塊中所有的函數(shù)從而直接調(diào)用該模塊中的函數(shù);A選項直接導(dǎo)入整個模塊,再利用“模塊名.函數(shù)名”這樣的方式來運行該模塊中的函數(shù);C選項只是在導(dǎo)入該模塊時給該模塊起了一個別名,本質(zhì)和A選項一樣。B選項正確的寫法應(yīng)該是frommoduleimportfunctionasf,所以B選項錯誤。

17.APython中的循環(huán)結(jié)構(gòu)有for語句和while語句。if是選擇結(jié)構(gòu)語句。本題選擇A選項。

18.B在Python中對字母大小寫是敏感的,’N’和’n’是不同的字符。本題中,有兩層for循環(huán),即每個字符要輸出兩次,直到i=’n’時,跳出循環(huán),執(zhí)行輸出語句。故答案為B項。

19.D棧是一種先進后出的線性表,隊列是一種先進先出的線性表,棧與隊列都是線性結(jié)構(gòu)。本題選擇D選項。

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

21.CE-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型則是把圖形分析出來的聯(lián)系反映到數(shù)據(jù)庫中,即設(shè)計出表,所以屬于邏輯設(shè)計階段。本題選擇C選項。

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

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

24.B編程語言的異常和錯誤是兩個相似但不相同的概念。異常和錯誤都可能引起程序執(zhí)行錯誤而退出,它們屬于程序沒有考慮到的例外情況。

25.Bfor循環(huán)遍歷列表Is,依次把Is中的元素賦值給變量k,并使用函數(shù)Print()輸出各元素(格式為元素間用空格符分隔)。本題選擇B選項。

26.C二叉樹中只存在度為0、1、2的結(jié)點,根據(jù)在二叉樹中度為0的結(jié)點(葉子結(jié)點)總比度為2的結(jié)點多一個,可知本題中度為2的結(jié)點有20-1\n=19個。故該二叉樹中總的結(jié)點數(shù)為20+5+19=44個。本題選擇C選項。

27.D文件的打幵模式如下。r:只讀模式,如果文件不存在,返回異常FileNotFoundError。x:創(chuàng)建寫模式,文件不存在則創(chuàng)建,存在則返回異常FileExistsError。w:覆蓋寫模式,文件不存在則創(chuàng)建,存在則完全覆蓋原文件。a:追加寫模式,文件不存在則創(chuàng)建,存在則在原文件最后追加內(nèi)容。文件打開模式中沒有n,本題選擇D選項。

28.C要向列表中添加元素,可以使用append()方法,添加的元素類型可以不同,可以是數(shù)字、字符串、列表等。需要注意的是,append()方法不能同時添加多個元素。本題選擇C選項。

29.Bfun()函數(shù)進行加減計算,輸入為復(fù)數(shù),按復(fù)數(shù)加減運算法則計算結(jié)果為(2+3j)。

30.CE-R圖轉(zhuǎn)換成關(guān)系模型數(shù)據(jù)則是把圖形分析出來的聯(lián)系反映到數(shù)據(jù)庫中,即設(shè)計出表,所以屬于邏輯設(shè)計階段。

31.N

32.Y

33.Y

34.N

35.N

36.Y

37.Y

38.N

39.N

40.N

41.'helloworld'

42.{1:2,2:3}

43.True

44.{3}

45.[1,2,4,5,6]

46.123

47.[[5],[5],[5]]

48.[[2,3,1],[1,3,3]]

49.3

50.False

51.(1)fi=open("小女孩.txt","r")\r\nfo=open(”PY301—1.txt”,”w”)\r\ntxt=fi.read()\r\nd={}\r\nexclude=",。???、()【】<>《》=:+-*-“”…"\r\nforwordintxt:\r\n

ifwordinexclude:\r\n

continue\r\n

else:\r\n

d[word]=d.get(word,0)+1\r\nls=list(d.items())\r\nls.sort(key=lambdax:x[1],reverse=True)\r\n

fo.write(”{}:{}”format(ls[0][0],ls[0][1]))\r\n

fo.close()\r\n

(2)fi=open("小女孩.txt","r")\r\n

fo=open(”PY301—2.txt”,”w”)\r\n

txt=fi.read()\r\n

d={}\r\n

forwordintxt;\r\n

d[word]=d.get(word,0)+1\r\ndeld["\\n"]\r\n

ls=list(d.items())\r\n

ls.sort(key=lambdax:x[1],reverse=True)#此行可以按照詞頻由高到低排序\r\n

foriinrange(10);\r\n

fo.write(ls[i][0])\r\n

fi.close()\r\n

fo.close()

(3)fi=open("小女孩.txt","r")\r\nfo=open(小女孩-頻次排序。txt","w")\r\ntxt=fi.read()\r\nd={}\r\nforwordintxt\r\nd[word]=d.get(word,0)+1\r\ndeld[""]\r\ndeld["\\n"]\r\nls=list(d.items())\r\nls.sort(key=lambdax:x[1],reverse=True)#此行可以按照詞頻由高到低排序\r\nforiinrange(len(ls)):\r\nls[i]="{}:{}".format(ls[i][0],ls[i][1])\r\nfo.write(",".join(ls))\r\nfi.close()\r\nfo.close()(1)首先使用open()函數(shù)打開文件“小女孩.txt”,把文件的內(nèi)容通過read()方法保存到變量txt中;定義一個字符串變量exclude用來存放標(biāo)點符號。然后用for循環(huán)遍歷txt中的每個字符(word),并使用if條件進行判斷,若該字符在變量exclude中,說明該字符為標(biāo)點符號,跳出該循環(huán);否則將該字符作為字典d中的一個鍵,該鍵所對應(yīng)的值置為1,在后面循環(huán)中只要遍歷的字符與該鍵相同,就將該鍵對應(yīng)的值加1。\r\n

ls=list(d.items())表示將字典類型變成列表類型,字典中的每個鍵值對對應(yīng)列表中的一個元組。隨后,對列表ls中的元組進行排序,用到sort()方法,參數(shù)“key=lambda.x:x[1]”中l(wèi)ambda是一個隱函數(shù),是固定寫法,不能寫成別的單詞;x表示列表中的一個元素,在這里表示一個元組,x只是臨時起的一個名字,也可以使用任意的名字;x[1]表示以元組中第二個元素排序。sort()方法的第二參數(shù)表示是按哪種方式排序,若為“reverse=True”表示按降序排序;若該參數(shù)缺省或“reverse=False”,表示按升序排序。\r\n

排序后,列表ls中第一個元組中即為頻次最高的中文字符和頻次,ls[0][0]表示該字符,ls[0][1]表示其頻次,將這兩個元素通過“:”連接寫入文件“PY301—1.txt”中。\r\n

(2)問題2和問題1的區(qū)別在于統(tǒng)計的字符包含標(biāo)點符號,因此不需要設(shè)置字符串變量exclude和使用if條件語句進行判斷;題目要求不包含回車符,因此需要使用del刪除字典d中鍵為”\n”的元素。最后要無間隔輸出前10個頻次最高的字符,需要對排序好的列表ls進行for循環(huán)遍歷,找到前10個元組的第一個元素,并將其直接寫入到文件“PY301—2.txt”中。\r\n

(3)問題3和問題2的區(qū)別在于統(tǒng)計的字符中不能包含空格,因此需要使用del刪除字典d中鍵為空格的元素。最后要將所有字符和其頻次輸出,需要對排序好的列表ls進行for循環(huán)遍歷,遍歷列表中的每個元組,并將元組中的兩個元素通過“:”連接,再用逗號分隔每個字符寫入到文件“小女孩一頻次排序.txt”中。

52.importjiebatxt=input(”請輸入一段中文文本:”)foriinls[::-1]:該題目使用jieba中文分詞庫對輸入的字符串進行分割,然后按照原話逆序輸出。jieba庫是Python的第三方庫,需要導(dǎo)入之后才可以使用。jieba庫提供了\r\n3種分詞模式:精確模式、全模式及搜索引擎模式。其中精確模式分詞的詞語拼接沒有冗余,是經(jīng)常使用的。精確模式對字符串進行分詞操作的函數(shù)為jieba.\r\nlcut(s),該函數(shù)返回值是一個列表且列表中每一個元素都是一個中文詞語。最后,把返回的列表中的內(nèi)容使用切片的方法,將其逆序輸出。因此第1空填I(lǐng)s=jieba.lcut(txt),第2空填Print(i,end=””)。

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\n+l,upper)返回的每個整數(shù)num,判斷該數(shù)是否為素數(shù)。如果num大于1(1既不是素數(shù)也不是合數(shù)),且該數(shù)能被取值范圍為[2,num-1\n]的任何一個整數(shù)整除,那么該數(shù)一定不是素數(shù),否則一定是素數(shù)。吉林省通化市全國計算機等級考試Python語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(30題)1.字符串tstr=’television’,顯示結(jié)果為vi的選項是()。

A.pxint(tstr[4:7])

B.ptint(tstr[5:7])

C.print(tstr[一6:6])

D.print(tstr[4:一2])

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

3.以下關(guān)于文件讀/寫的描述中,錯誤的是()。

A.對文件進行讀/寫操作之后必須關(guān)閉文件以確保所有內(nèi)容都得到保存

B.以寫模式打開的文件無法進行讀操作

C.文件對象的seek()方法用來返回文件指針的當(dāng)前位置

D.文件對象的readline()方法用來讀取一行字符串

4.關(guān)于數(shù)據(jù)組織的維度描述正確的是()。

A.二維數(shù)據(jù)由對等關(guān)系的有序或無序數(shù)據(jù)構(gòu)成

B.高維數(shù)據(jù)由關(guān)聯(lián)關(guān)系數(shù)據(jù)構(gòu)成

C.CSV是一維數(shù)據(jù)

D.—維數(shù)據(jù)采用線性方式存儲

5.結(jié)構(gòu)化程序設(shè)計的基本原則不包括A.多態(tài)性B.自頂向下C.模塊化D.逐步求精

6.對于序列s,以下選項對min(s)描述正確的是()。

A.可以返回序列s中的最小元素,如果存在多個相同的最小元素,則返回一個列表類型

B.一定能夠返回序列s中的最小元素

C.可以返回序列s中的最小元素,如果存在多個相同的最小元素,則返回一個元組類型

D.可以返回序列s中的最小元素,但要求s中元素可比較

7.以下代碼的輸出結(jié)果是()。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.函數(shù)調(diào)用出錯

8.定義在類中的方法之外的變量是()

A.實例變量B.類變量C.公有變量D.私有變量

9.表格類型數(shù)據(jù)的組織維度最可能是()。

A.多維數(shù)據(jù)B.一維數(shù)據(jù)C.二維數(shù)據(jù)D.高維數(shù)據(jù)

10.以下關(guān)于程序設(shè)計語言的描述,錯誤的選項是()。

A.Python解釋器把Python代碼一次性翻譯成目標(biāo)代碼,然后執(zhí)行

B.機器語言直接用二進制代碼表達指令

C.Python是一種通用編程語言

D.匯編語言是直接操作計算機硬件的編程語言

11.以下選項中不是Python文件讀/寫操作方法的是()。

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

12.屬于Python讀取文件中一行內(nèi)容的操作是()。

A.readtext()B.readline()C.readall()D.read()

13.以下程序的輸出結(jié)果是()。forsin“PythonNCRE”: ifs==“N”: break print(s,end=“”)

A.PythonCREB.NC.PythonD.PythonNCRE

14.—個類繼承另一個類,那么被繼承的這個類被稱為()。

A.超類B.子類C.類D.繼承類

15.以下程序的輸出結(jié)果是()。t=10.5defabove_zero(t): returnt>0

A.TrueB.FalseC.10.5D.沒有輸出

16.現(xiàn)在假設(shè)有一個包含一個函數(shù)的程序放在一個文件中,在主程序文件中使用下面各種方法來導(dǎo)入它,哪一種方法是錯誤的?()

A.importmodule

B.frommoduleasfimportfunction

C.importmoduleasm

D.frommoduleimport*

17.以下構(gòu)成Python循環(huán)結(jié)構(gòu)的語句中,正確的是()。

A.whileB.loopC.ifD.do-for

18.以下程序的輸出結(jié)果是()。foriin”Nation”:forkinrange(2):ifi==’n’:breakprint(i,end=””)

A.aattiiooB.NNaattiiooC.NaattiioonD.aattiioonn

19.下列敘述中正確的是()。

A.棧是一種先進先出的線性表B.隊列是一種后進先出的線性表C.棧與隊列都是非線性結(jié)構(gòu)D.以上3種說法都不對

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

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

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

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

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

21.在數(shù)據(jù)庫設(shè)計中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。

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

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

A.6B.6inTest_listC.TrueD.False

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

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

24.以下關(guān)于程序的異常處理的描述中,錯誤的是()。

A.except語句后面可以指定異常類型

B.異常和錯誤是兩個相同的意思

C.帶有else子句的異常處理結(jié)構(gòu),當(dāng)try中的語句塊正常執(zhí)行結(jié)束且沒有異常時執(zhí)行else子句中的代碼

D.異常處理機制雖然可以解決程序的一些錯誤,但不建議過度依賴

25.下面程序的輸出結(jié)果是()。Is=[“橘子”,“芒果”,“草毒”,“西瓜”,“水蜜桃”]ForkinIs:print(k,end=“”)A.橘子芒果草莓西瓜水蜜桃B.橘子芒果草莓西瓜水蜜桃C.西瓜D.”橘子”芒果"草莓”"西瓜"”水蜜桃”

26.設(shè)二叉樹中有20個葉子節(jié)點,5個度為1的節(jié)點,則該二叉樹中總的節(jié)點數(shù)為()。

A.46B.45C.44D.不可能有這樣的二叉樹

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

A.只讀模式是rB.覆蓋寫模式是wC.追加寫模式是aD.創(chuàng)建寫模式是n

28.以下程序的輸出結(jié)果是()。ls=[“2020”,“1903”,“Python”]ls.append(2050)ls.append([2020,“2020”])print(ls)

A.[‘2020’,‘1903’,‘Python’,2020,[2050,‘2020’]]

B.[‘2020’,‘1903’,‘Python’,2020]

C.[‘2020’,‘1903’,‘Python’,2050,[2050,‘2020’]]

D.[‘2020’,‘1903’,‘Python’,2050,[‘2020’]]

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

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

30.在數(shù)據(jù)庫設(shè)計中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。

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

二、判斷題(10題)31.Python3.x完全兼容Python2.x。

A.是B.否

32.列表對象的append()方法屬于原地操作,用于在列表尾部追加一個元素。

A.是B.否

33.形參可以看做是函數(shù)內(nèi)部的局部變量,函數(shù)運行結(jié)束之后形參就不可訪問了。

A.是B.否

34.如果在函數(shù)中有語句return3,那么該函數(shù)一定會返回整數(shù)3。

A.是B.否

35.Python字符串方法replace()對字符串進行原地修改。

A.是B.否

36.在Python中定義函數(shù)時不需要聲明函數(shù)的返回值類型。

A.是B.否

37.Python字典中的“鍵”不允許重復(fù)。

A.是B.否

38.函數(shù)中的return語句一定能夠得到執(zhí)行。

A.是B

溫馨提示

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

評論

0/150

提交評論