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

下載本文檔

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

文檔簡介

四川省宜賓市全國計算機等級考試Python語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(30題)1.以下用于計算機視覺領(lǐng)域的Python第三方庫是()。

A.OpenCV—PythonB.MatplotlibC.FlaskD.PyMongo

2.當(dāng)用戶輸入2時,下面代碼的輸出結(jié)果是()。try:n=input(“請輸入一個整數(shù):”)defpow2(n):returnn**5pow2(n)except:print(”程序執(zhí)行錯誤”)

A.32B.2C.程序沒有任何輸出D.程序執(zhí)行錯誤

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

A.importmodule

B.frommoduleasfimportfunction

C.importmoduleasm

D.frommoduleimport*

4.設(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

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

5.x=2.6,表達式round(x)的結(jié)果是()。

A.2.6B.2C.3D.2.0

6.列表l1=[1,2,3],則表達式1+l1()A.[2,3,4]B.[1,1,2,3]C.[1,2,4]D.異常

7.以下關(guān)于分支和循環(huán)結(jié)構(gòu)的描述中,正確的是()。

A.在循環(huán)中,continue語句的作用是跳出當(dāng)前循環(huán)

B.在循環(huán)中,break語句的作用是結(jié)束該語句所在的循環(huán)

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

D.在Python中,分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)必須帶有else子句

8.對于序列s,能夠返回序列s中第i到第j以k為步長的子序列的表達式是()。

A.s[i:j:k]B.s[i,j,k]C.s[i;j;k]D.s(i,j,k)

9.表達式list(map(lambdax:x*2,[1,2,3,4,’hi’]))的返回值是()

A.[1,2,3,4,’hi’]

B.[2,4,6,8,'hihi']

C.[2,4,6,8,'hi','hi']

D.異常

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

A.whileB.loopC.ifD.do…for

11.下面代碼的輸出結(jié)果是()。list=[“1”,”3”,”5”]defapp(x):list.a(chǎn)ppend(x)app(”7”)print(list)

A.[’1’,’3’,’5’]B.[’1’,’3’,’5’,’7’]C.[’7’]D.”1,3,5,7”

12.以下選項中不是Python文件目錄操作方法的是()。

A.split()B.rename()C.getcwd()D.rmdir()

13.執(zhí)行以下代碼的結(jié)果是?A.20B.24C.30D.33

14.以下代碼的輸出結(jié)果是()。forsin“PythonNice!”:ifs==“i”:breakprint(s,end=“”)

A.PythonB.PythonNC.PythonNiD.PythonNice

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

A.在Python中,用字典來實現(xiàn)映射,通過整數(shù)索引來查找其中的元素

B.在定義字典對象時,鍵和值用冒號連接

C.字典中的鍵值對之間沒有順序并且不能重復(fù)

D.字典中引用與特定鍵對應(yīng)的值,用字典名稱和方括號中包含鍵名的格式

16.下列關(guān)于棧的敘述正確的是()。

A.棧按“先進先出”的原則組織數(shù)據(jù)B.棧按“先進后出”的原則組織數(shù)據(jù)C.只能在棧底插入數(shù)據(jù)D.不能刪除數(shù)據(jù)

17.在Python的類定義中,對函數(shù)變量的訪問形式為()。

A.<對象>.<變量>

B.<對象>.方法(變量)

C.<類名>.<變量>

D.<對象>.方法(變量)

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

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

19.以下程序的輸出結(jié)果是()。print(0.1+0.2==0.3)

A.-1B.TrueC.FalseD.0

20.以下代碼運行的結(jié)果為:a=b=['AI教育',''];

A.append('七月在線')print(b)

B.['AI教育','']

C.['AI教育','','七月在線']

D.['七月在線']

E.NoneType

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

A.CSV文件只能采用Unicode編碼表示字符

B.CSV文件的每一行是一維數(shù)據(jù),可以使用Python的元組類型表示

C.CSV文件是一種通用的文件,主要用于不同程序之間的數(shù)據(jù)交換

D.CSV文件是一個一維數(shù)據(jù)

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

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

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

24.有兩個關(guān)系R、S如下:

由關(guān)系R通過運算得到關(guān)系S,則所使用的運算為()。

A.選擇B.投影C.插入D.連接

25.在Python中,用于數(shù)據(jù)分析的第三方庫是()。

A.pandasB.PILC.DjangoD.Flask

26.數(shù)據(jù)庫設(shè)計中反映用戶對數(shù)據(jù)要求的模式是()。

A.內(nèi)模式B.概念模式C.外模式D.設(shè)計模式

27.sorted([15,'china',407],key=lambdax:len(str(x)))返回為()

A.[15,407,'china']

B.['china',407,15]

C.['china',15,407]

D.[15,'china',407]

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

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

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

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

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

29.下面關(guān)于CSV文件描述錯誤的是()。

A.CSV文件格式是一種通用的文件格式,應(yīng)用于程序之間轉(zhuǎn)移表格數(shù)據(jù)

B.CSV文件的每一行是一維數(shù)據(jù),可以使用Python中的列表類型表示

C.CSV文件通過多種編碼表示字符

D.整個CSV文件是一個二維數(shù)據(jù)

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

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

二、判斷題(10題)31.Python是一種跨平臺、開源、免費的高級動態(tài)編程語言。

A.是B.否

32.Python集合可以包含相同的元素。

A.是B.否

33.在Python中可以為自定義類的對象動態(tài)增加新成員。

A.是B.否

34.在Python中定義函數(shù)時不需要聲明函數(shù)參數(shù)的類型。

A.是B.否

35.在Windows平臺上編寫的Python程序無法在Unix平臺運行。A.是B.否

36.在定義函數(shù)時,某個參數(shù)名字前面帶有一個*符號表示可變長度參數(shù),可以接收任意多個普通實參并存放于一個元組之中。A.是B.否

37.程序中異常處理結(jié)構(gòu)在大多數(shù)情況下是沒必要的。

A.是B.否

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

A.是B.否

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

A.是B.否

40.如果僅僅是用于控制循環(huán)次數(shù),那么使用foriinrange(20)和foriinrange(20,40)的作用是等價的。

A.是B.否

三、填空題(10題)41.已知列表x=[1,2],那么連續(xù)執(zhí)行命令y=x[:]和y.append(3)之后,x的值為________。

42.已知列表對象x=['11','2','3'],則表達式max(x)的值為___________。

43.任意長度的Python列表、元組和字符串中最后一個元素的下標(biāo)為________。

44.表達式len(range(1,10))的值為___________。

45.表達式':'.join('1,2,3,4,5'.split(','))的值為__________________。

46.Python安裝擴展庫常用的是_______工具。

47.代碼foriinrange(3):print(i,end=',')的執(zhí)行結(jié)果為_________________。

48.列表對象的sort()方法用來對列表元素進行原地排序,該函數(shù)返回值為

。

49.表達式int('123',8)的值為_________。

50.Python內(nèi)建異常類的基類是________________。

四、操作題(3題)51.考生文件夾下存在3個Python源文件,分別對應(yīng)3個問題,請按照文件內(nèi)說明修改代碼,實現(xiàn)以下功能。法定節(jié)假日是根據(jù)各國、各民族的風(fēng)俗習(xí)慣或紀(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之間試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#請在程序的處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準(zhǔn)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é)假日序號:試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準(zhǔn)...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é)假日編號:試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#請在程序的處用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準(zhǔn)Is=[]print("{}({})假期是{}月{}日至{}月{}日之間".format())ifflag==False:print("輸入節(jié)假日編號有誤!”)...

52.考生文件夾下存在一個文件“PY201.py”,請寫代碼替換橫線,不修改其他代碼,實現(xiàn)以下功能。使用turtle庫的turtle.fd()函數(shù)和turtle.le£t()函數(shù)繪制一長為200像素黃底紅邊的太陽花,效果如下所示。

試題程序:#請在程序的_____處使用一行代碼或表達式替換#注意:請不要修改其他已給出代碼importturtleturtle.color(_____(1)_____,_____(2)_____)turtle._____(3)_____foriinrange(36):turtle.fd(_____(4)_____)turtle.left(_____(5)_____)turtle.end_fill()

53.考生文件夾下存在兩個Python源文件“PY30H.py”和“PY301-2.py”,分別對應(yīng)兩個問題,請按照文件內(nèi)說明修改代碼,實現(xiàn)以下功能?!栋谅c偏見》是史上最震撼人心的“世界文學(xué)十部最佳小說之一”。第1章的內(nèi)容由考生文件夾下文件“arrogant,txt”給出。問題1:請編寫程序,統(tǒng)計該篇文章的英文字符數(shù)(不統(tǒng)計換行符),字符與出現(xiàn)次數(shù)之間用冒號(:)分隔。結(jié)果保存在考生文件夾下,命名為“PY301-l.txt”。試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#請在程序的_____處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準(zhǔn)…d={}Is=list(d.items())…fo.write("{}:{}\n".format(_____,_____))問題2:在問題1的前提下,將得到的字符次數(shù)進行降序排列,并將排名前10的常用字符保存在“arrogant-sort,txt”文件中。試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#請在程序的_____處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準(zhǔn)…d={}…Is=list(d.items())Is.sort(key=lambdax:x[1],reverse=True)…fo.write("{}:{}\n".format(_____,_____))

參考答案

1.AOpenCV—Python是圖像處理和計算機視覺方向的第三方庫;Matplotlib是數(shù)據(jù)可視化方向的第三方庫;Flask是Web開發(fā)方向的第三方庫;PyMongo是數(shù)據(jù)存儲方向的第三方庫。故答案為A項。

2.Dinput()函數(shù)從控制臺獲得用戶的一行輸入,無論用戶輸入什么內(nèi)容,inPut()函數(shù)都以字符串類型返回結(jié)果。當(dāng)用戶輸入2時,n=’2’,這是字符2,不是數(shù)字,不能進行數(shù)值運算,故程序會執(zhí)行except后面的語句,輸出程序執(zhí)行錯誤。本題選擇D選項。

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

4.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。本題選擇D選項。

5.Cround(x,d)函數(shù)是指對x四舍五入,保留d位小數(shù),無參數(shù)d則返回四舍五入的整數(shù)值。因此round(2.6)=3。本題選擇C選項。

6.D

7.Bcontinue語句用于中斷本次循環(huán)的執(zhí)行,繼續(xù)執(zhí)行下一輪循環(huán)的條件,而不是跳出當(dāng)前循環(huán);Python中的for、while循環(huán)都有一個可選的else子句,如果用break語句終止循環(huán),那么else語句將不會執(zhí)行。

8.A序列切片的方式:<序列>[起始索引:結(jié)束索引:步長]。Python在[]中表示區(qū)間使用冒號。本題選擇A選項。

9.B

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

11.Bappend()是向列表元素的結(jié)尾增加元素。

12.Arename():給文件重命名;getcwd():得到當(dāng)前工作目錄,即當(dāng)前Python腳本工作的目錄路徑;rmdir():刪除目錄。split():按給出的分隔符分隔字符串,返回的是列表類型。

13.D

14.Bfor循環(huán)遍歷字符串,將字符串中的字符依次賦值給變量s,當(dāng)s=i的時候,跳出該循環(huán),輸出之前變量s被賦值的字符,所以輸出為PythonN。

15.A在Python中,字典是存儲可變數(shù)量鍵值對的數(shù)據(jù)結(jié)構(gòu),通過字典類型實現(xiàn)映射。字典使用花括號({})建立,每個元素是一個鍵值對,使用方式為{<鍵1>:<值1>,<鍵2>:<值2>,…,<鍵n>:<值n>},其中,鍵和值通過冒號連接,不同鍵值對通過逗號隔開。字典具有和集合類似的性質(zhì),即鍵值對之間沒有順序且不能重復(fù)。通過鍵可以索引值,并可以通過鍵修改值,因此可以直接利用鍵值對關(guān)系索引元素。索引模式:<值>=<字典變量>[<鍵>]。本題選擇A選項。

16.B棧是按“先進后出”的原則組織數(shù)據(jù)的,數(shù)據(jù)的插入和刪除都在棧頂進行操作。本題選擇B選項。

17.A訪問函數(shù)的變量時,需要使用點表示法:對象.變量名。

18.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選項。

19.C在Python中,0.1+0.2=0.30000000000000004。原因是:對于十進制數(shù),它只能表示以進制數(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。二進制(進制數(shù)為2)下,只有一個質(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ù)。當(dāng)對這些循環(huán)小數(shù)進行數(shù)學(xué)運算并將二進制數(shù)據(jù)轉(zhuǎn)換成人類可讀的十進制數(shù)據(jù)時,會對小數(shù)尾部進行截斷處理。在不同的語言中,運行0.1+0.2會輸出不同的結(jié)果。本題選擇C選項。

20.B

21.CCSV文件是一種通用的、相對簡單的文件,最廣泛的應(yīng)用是在程序之間轉(zhuǎn)移表格數(shù)據(jù)。CSV文件沒有通用標(biāo)準(zhǔn)規(guī)范,使用的字符編碼同樣沒有被指定,但ASCII是最基本的通用編碼。CSV文件可以保存一維數(shù)據(jù)或二維數(shù)據(jù),每一行是一維數(shù)據(jù),可以使用Python的列表類型表示。本題選擇C選項。

22.B

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

24.B投影運算是指對于關(guān)系內(nèi)的域指定可引入新的運算。本題中S是在原有關(guān)系R的內(nèi)部進行的,是由R中原有的那些域的列所組成的關(guān)系。本題選擇B選項。

25.A用于數(shù)據(jù)分析的第三方庫是pandas,PIL是Python在圖像處理方面的第三方庫,Django和flask庫是Python在Web開發(fā)方向的第三方庫。本題選擇A選項。

26.C數(shù)據(jù)庫系統(tǒng)的三級模式是概念模式、外模式和內(nèi)模式。概念模式是數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶公共數(shù)據(jù)視圖。外模式也稱子模式或用戶模式,它是用戶的數(shù)據(jù)視圖,給出了每個用戶的局部數(shù)據(jù)描述,所以選擇C。內(nèi)模式又稱物理模式,它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法。

27.A

28.D棧稱為“后進先出”表或“先進后出”的線性表;隊列稱為“先進先出”或“后進后出”的線性表。F,G,H,I,J依次人隊,則依次出隊順序為F,G,H,I,J;A,B,c,D,E依次人棧,則依次出棧順序為E,D,C,B,A。故輸出順序為F,G,H,I,J,E,D,c,B,A。本題選D選項。

29.CCSV文件采用純文本格式,通過單一編碼表示字符。以行為單位,開頭不留空行,行之間沒有空行。每行表示一個一維數(shù)據(jù),多行表示多維數(shù)據(jù)。以逗號分隔每列數(shù)據(jù),列數(shù)據(jù)為空也要保留逗號。本題選擇C選項。

30.D在關(guān)系(二維表)中凡是能唯一標(biāo)識元組的最小屬性或?qū)傩约Q為該關(guān)系的鍵或者碼。本題選擇D選項。

31.Y

32.N

33.Y

34.Y

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

36.Y

37.N

38.N

39.Y

40.Y

41.[1,2]

42.'3'

43.-1

44.9

45.'1:2:3:4:5'

46.pip

47.0,1,2,

48.NoneNone

49.83

50.BaseException

51.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),一個用來遍歷二維列表,一個用來遍歷輸入的序號列表,當(dāng)輸入的序號與二維列表中的一樣時,輸出結(jié)果。因為題目的示例輸出在數(shù)字月和日期之間加入了漢字,此時分析存入二維列表中的數(shù)字,可以知道存入的是字符串,即在CSV文件中初始月日和結(jié)束月日都是長度為4的字符串,屬于序列類型,因此可以使用索引訪問。(3)在問題2的基礎(chǔ)上,加上一個標(biāo)記,如果輸入的序號正確,則標(biāo)記為True;輸入錯誤,標(biāo)記為False,最后根據(jù)標(biāo)記判斷是否輸出“輸入節(jié)假日編號有誤!\r\n”。分析題目要求可知,標(biāo)記是在輸入的序號在二維列表中可以查到時變?yōu)門rue,其他情況都為False,所以標(biāo)記應(yīng)該放在遍歷序號列表的for循環(huán)內(nèi)、遍歷二維列表的for循環(huán)外。

52.importturtleturtle.color(“red”.”yellow”)turtle.begin_fill()foriinrange(36):turtle.fd(200)turtle,left(110)turtle.end_fill()該題考查的是用Python標(biāo)準(zhǔn)庫turtle庫繪制太陽花。根據(jù)題干可知,太陽花的邊為紅色且用黃色填充,因此第1空填red,第2空填yellow。由于涉及填充圖形,所以要調(diào)用begin_fill()函數(shù),因此第3空應(yīng)填入be-gin_fill()。題目要求邊長為200像素,則第4空應(yīng)填200。太陽花一共36個角,每個角10度,因此繪制一條邊需要逆時針旋轉(zhuǎn)170度再繪制下一條邊,因此第5空應(yīng)填入170。

53.考生文件夾下存在兩個Python源文件“PY301.py”和“PY301-2.py”,分別對應(yīng)兩個問題,請按照文件內(nèi)說明修改代碼,實現(xiàn)以下功能。《傲慢與偏見》是史上最震撼人心的“世界文學(xué)十部最佳小說之一”。第1章的內(nèi)容由考生文件夾下文件“arrogant,txt”給出。問題1:請編寫程序,統(tǒng)計該篇文章的英文字符數(shù)(不統(tǒng)計換行符),字符與出現(xiàn)次數(shù)之間用冒號(:)分隔。結(jié)果保存在考生文件夾下,命名為“PY301-l.txt”。試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#請在程序的_____處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準(zhǔn)…d={}Is=list(d.items())…fo.write("{}:{}\\n".format(_____,_____))問題2:在問題1的前提下,將得到的字符次數(shù)進行降序排列,并將排名前10的常用字符保存在“arrogant-sort,txt”文件中。試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#請在程序的_____處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準(zhǔn)…d={}…Is=list(d.items())Is.sort(key=lambdax:x[1],reverse=True)…fo.write("{}:{}\\n".format(_____,_____))試題答案:(1)Fi=open(“arrogant.txt,”r”)Fo=open(“PY301-1.txt”,”w”Txt=fi.read()d={}Forsintxt:D[s]=d.get(s,0)+1Deld[‘\\n’]Is=list(d.items())Foriinrange(len(is)):fo.write(“{}:{}\\n”.format(ls[i][0],is[i][1])Fi.close()Fo.close()(2)Fi=open(“arrogant.txt,”r”)Fo=open(“arrogant-sort.txt”,”w”)Txt=fi.read()d={}Forsintxt:D[s]=d.get(s,0)+1Deld[‘\\n’]Is=list(d.items())Is.sort(key=lambdax:x[1],reverse=True)Foriinrange(10):fo.write(“{}:{}\\n”.fcrmat(is[i][0],is[i][1])Fi.close()Fo.close()(1)首先使用open()函數(shù)打開文件“arrogant,\r\ntxt”,把文件的內(nèi)容通過read()方法保存到變量txt中;然后用for循環(huán)遍歷txt中的每個英文字符,將該字符作為字典d中的鍵,將該鍵所對應(yīng)的值設(shè)置為1,在后面循環(huán)中只要遍歷的字符與該鍵相同,就將該鍵對應(yīng)的值加1。這樣,字典中的鍵值對對應(yīng)著英文字符和其出現(xiàn)的次數(shù)。由于題目要求不統(tǒng)計換行符,因此需要使用del刪除換行符對應(yīng)的鍵值對。Is=list(d.items())表示將字典類型變成列表類型,字典中的每個鍵值對對應(yīng)列表中的一個元組。每個元組中的第一個元素ls[i]\r\n[0]表示英文字符,第二個元素is[i][1]表示字符出現(xiàn)的次數(shù)。通過for循環(huán)遍歷按照格式規(guī)則將兩個對應(yīng)的元素寫入文件“PY301-1.\r\ntxt”。(2)\r\n問題2在問題1的基礎(chǔ)上增加了排序,排序的規(guī)則是按照字符出現(xiàn)的次數(shù)降序排序,因此排序后列表中前10個元素(元組)就是排名前10的字符。通過for循環(huán)遍歷按照格式規(guī)則將這10個元素寫入文件“\r\narrogant-sort,tx”中。四川省宜賓市全國計算機等級考試Python語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(30題)1.以下用于計算機視覺領(lǐng)域的Python第三方庫是()。

A.OpenCV—PythonB.MatplotlibC.FlaskD.PyMongo

2.當(dāng)用戶輸入2時,下面代碼的輸出結(jié)果是()。try:n=input(“請輸入一個整數(shù):”)defpow2(n):returnn**5pow2(n)except:print(”程序執(zhí)行錯誤”)

A.32B.2C.程序沒有任何輸出D.程序執(zhí)行錯誤

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

A.importmodule

B.frommoduleasfimportfunction

C.importmoduleasm

D.frommoduleimport*

4.設(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

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

5.x=2.6,表達式round(x)的結(jié)果是()。

A.2.6B.2C.3D.2.0

6.列表l1=[1,2,3],則表達式1+l1()A.[2,3,4]B.[1,1,2,3]C.[1,2,4]D.異常

7.以下關(guān)于分支和循環(huán)結(jié)構(gòu)的描述中,正確的是()。

A.在循環(huán)中,continue語句的作用是跳出當(dāng)前循環(huán)

B.在循環(huán)中,break語句的作用是結(jié)束該語句所在的循環(huán)

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

D.在Python中,分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)必須帶有else子句

8.對于序列s,能夠返回序列s中第i到第j以k為步長的子序列的表達式是()。

A.s[i:j:k]B.s[i,j,k]C.s[i;j;k]D.s(i,j,k)

9.表達式list(map(lambdax:x*2,[1,2,3,4,’hi’]))的返回值是()

A.[1,2,3,4,’hi’]

B.[2,4,6,8,'hihi']

C.[2,4,6,8,'hi','hi']

D.異常

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

A.whileB.loopC.ifD.do…for

11.下面代碼的輸出結(jié)果是()。list=[“1”,”3”,”5”]defapp(x):list.a(chǎn)ppend(x)app(”7”)print(list)

A.[’1’,’3’,’5’]B.[’1’,’3’,’5’,’7’]C.[’7’]D.”1,3,5,7”

12.以下選項中不是Python文件目錄操作方法的是()。

A.split()B.rename()C.getcwd()D.rmdir()

13.執(zhí)行以下代碼的結(jié)果是?A.20B.24C.30D.33

14.以下代碼的輸出結(jié)果是()。forsin“PythonNice!”:ifs==“i”:breakprint(s,end=“”)

A.PythonB.PythonNC.PythonNiD.PythonNice

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

A.在Python中,用字典來實現(xiàn)映射,通過整數(shù)索引來查找其中的元素

B.在定義字典對象時,鍵和值用冒號連接

C.字典中的鍵值對之間沒有順序并且不能重復(fù)

D.字典中引用與特定鍵對應(yīng)的值,用字典名稱和方括號中包含鍵名的格式

16.下列關(guān)于棧的敘述正確的是()。

A.棧按“先進先出”的原則組織數(shù)據(jù)B.棧按“先進后出”的原則組織數(shù)據(jù)C.只能在棧底插入數(shù)據(jù)D.不能刪除數(shù)據(jù)

17.在Python的類定義中,對函數(shù)變量的訪問形式為()。

A.<對象>.<變量>

B.<對象>.方法(變量)

C.<類名>.<變量>

D.<對象>.方法(變量)

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

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

19.以下程序的輸出結(jié)果是()。print(0.1+0.2==0.3)

A.-1B.TrueC.FalseD.0

20.以下代碼運行的結(jié)果為:a=b=['AI教育',''];

A.append('七月在線')print(b)

B.['AI教育','']

C.['AI教育','','七月在線']

D.['七月在線']

E.NoneType

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

A.CSV文件只能采用Unicode編碼表示字符

B.CSV文件的每一行是一維數(shù)據(jù),可以使用Python的元組類型表示

C.CSV文件是一種通用的文件,主要用于不同程序之間的數(shù)據(jù)交換

D.CSV文件是一個一維數(shù)據(jù)

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

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

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

24.有兩個關(guān)系R、S如下:

由關(guān)系R通過運算得到關(guān)系S,則所使用的運算為()。

A.選擇B.投影C.插入D.連接

25.在Python中,用于數(shù)據(jù)分析的第三方庫是()。

A.pandasB.PILC.DjangoD.Flask

26.數(shù)據(jù)庫設(shè)計中反映用戶對數(shù)據(jù)要求的模式是()。

A.內(nèi)模式B.概念模式C.外模式D.設(shè)計模式

27.sorted([15,'china',407],key=lambdax:len(str(x)))返回為()

A.[15,407,'china']

B.['china',407,15]

C.['china',15,407]

D.[15,'china',407]

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

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

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

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

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

29.下面關(guān)于CSV文件描述錯誤的是()。

A.CSV文件格式是一種通用的文件格式,應(yīng)用于程序之間轉(zhuǎn)移表格數(shù)據(jù)

B.CSV文件的每一行是一維數(shù)據(jù),可以使用Python中的列表類型表示

C.CSV文件通過多種編碼表示字符

D.整個CSV文件是一個二維數(shù)據(jù)

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

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

二、判斷題(10題)31.Python是一種跨平臺、開源、免費的高級動態(tài)編程語言。

A.是B.否

32.Python集合可以包含相同的元素。

A.是B.否

33.在Python中可以為自定義類的對象動態(tài)增加新成員。

A.是B.否

34.在Python中定義函數(shù)時不需要聲明函數(shù)參數(shù)的類型。

A.是B.否

35.在Windows平臺上編寫的Python程序無法在Unix平臺運行。A.是B.否

36.在定義函數(shù)時,某個參數(shù)名字前面帶有一個*符號表示可變長度參數(shù),可以接收任意多個普通實參并存放于一個元組之中。A.是B.否

37.程序中異常處理結(jié)構(gòu)在大多數(shù)情況下是沒必要的。

A.是B.否

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

A.是B.否

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

A.是B.否

40.如果僅僅是用于控制循環(huán)次數(shù),那么使用foriinrange(20)和foriinrange(20,40)的作用是等價的。

A.是B.否

三、填空題(10題)41.已知列表x=[1,2],那么連續(xù)執(zhí)行命令y=x[:]和y.append(3)之后,x的值為________。

42.已知列表對象x=['11','2','3'],則表達式max(x)的值為___________。

43.任意長度的Python列表、元組和字符串中最后一個元素的下標(biāo)為________。

44.表達式len(range(1,10))的值為___________。

45.表達式':'.join('1,2,3,4,5'.split(','))的值為__________________。

46.Python安裝擴展庫常用的是_______工具。

47.代碼foriinrange(3):print(i,end=',')的執(zhí)行結(jié)果為_________________。

48.列表對象的sort()方法用來對列表元素進行原地排序,該函數(shù)返回值為

。

49.表達式int('123',8)的值為_________。

50.Python內(nèi)建異常類的基類是________________。

四、操作題(3題)51.考生文件夾下存在3個Python源文件,分別對應(yīng)3個問題,請按照文件內(nèi)說明修改代碼,實現(xiàn)以下功能。法定節(jié)假日是根據(jù)各國、各民族的風(fēng)俗習(xí)慣或紀(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之間試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#請在程序的處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準(zhǔn)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é)假日序號:試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準(zhǔn)...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é)假日編號:試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#請在程序的處用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準(zhǔn)Is=[]print("{}({})假期是{}月{}日至{}月{}日之間".format())ifflag==False:print("輸入節(jié)假日編號有誤!”)...

52.考生文件夾下存在一個文件“PY201.py”,請寫代碼替換橫線,不修改其他代碼,實現(xiàn)以下功能。使用turtle庫的turtle.fd()函數(shù)和turtle.le£t()函數(shù)繪制一長為200像素黃底紅邊的太陽花,效果如下所示。

試題程序:#請在程序的_____處使用一行代碼或表達式替換#注意:請不要修改其他已給出代碼importturtleturtle.color(_____(1)_____,_____(2)_____)turtle._____(3)_____foriinrange(36):turtle.fd(_____(4)_____)turtle.left(_____(5)_____)turtle.end_fill()

53.考生文件夾下存在兩個Python源文件“PY30H.py”和“PY301-2.py”,分別對應(yīng)兩個問題,請按照文件內(nèi)說明修改代碼,實現(xiàn)以下功能?!栋谅c偏見》是史上最震撼人心的“世界文學(xué)十部最佳小說之一”。第1章的內(nèi)容由考生文件夾下文件“arrogant,txt”給出。問題1:請編寫程序,統(tǒng)計該篇文章的英文字符數(shù)(不統(tǒng)計換行符),字符與出現(xiàn)次數(shù)之間用冒號(:)分隔。結(jié)果保存在考生文件夾下,命名為“PY301-l.txt”。試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#請在程序的_____處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準(zhǔn)…d={}Is=list(d.items())…fo.write("{}:{}\n".format(_____,_____))問題2:在問題1的前提下,將得到的字符次數(shù)進行降序排列,并將排名前10的常用字符保存在“arrogant-sort,txt”文件中。試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#請在程序的_____處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準(zhǔn)…d={}…Is=list(d.items())Is.sort(key=lambdax:x[1],reverse=True)…fo.write("{}:{}\n".format(_____,_____))

參考答案

1.AOpenCV—Python是圖像處理和計算機視覺方向的第三方庫;Matplotlib是數(shù)據(jù)可視化方向的第三方庫;Flask是Web開發(fā)方向的第三方庫;PyMongo是數(shù)據(jù)存儲方向的第三方庫。故答案為A項。

2.Dinput()函數(shù)從控制臺獲得用戶的一行輸入,無論用戶輸入什么內(nèi)容,inPut()函數(shù)都以字符串類型返回結(jié)果。當(dāng)用戶輸入2時,n=’2’,這是字符2,不是數(shù)字,不能進行數(shù)值運算,故程序會執(zhí)行except后面的語句,輸出程序執(zhí)行錯誤。本題選擇D選項。

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

4.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。本題選擇D選項。

5.Cround(x,d)函數(shù)是指對x四舍五入,保留d位小數(shù),無參數(shù)d則返回四舍五入的整數(shù)值。因此round(2.6)=3。本題選擇C選項。

6.D

7.Bcontinue語句用于中斷本次循環(huán)的執(zhí)行,繼續(xù)執(zhí)行下一輪循環(huán)的條件,而不是跳出當(dāng)前循環(huán);Python中的for、while循環(huán)都有一個可選的else子句,如果用break語句終止循環(huán),那么else語句將不會執(zhí)行。

8.A序列切片的方式:<序列>[起始索引:結(jié)束索引:步長]。Python在[]中表示區(qū)間使用冒號。本題選擇A選項。

9.B

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

11.Bappend()是向列表元素的結(jié)尾增加元素。

12.Arename():給文件重命名;getcwd():得到當(dāng)前工作目錄,即當(dāng)前Python腳本工作的目錄路徑;rmdir():刪除目錄。split():按給出的分隔符分隔字符串,返回的是列表類型。

13.D

14.Bfor循環(huán)遍歷字符串,將字符串中的字符依次賦值給變量s,當(dāng)s=i的時候,跳出該循環(huán),輸出之前變量s被賦值的字符,所以輸出為PythonN。

15.A在Python中,字典是存儲可變數(shù)量鍵值對的數(shù)據(jù)結(jié)構(gòu),通過字典類型實現(xiàn)映射。字典使用花括號({})建立,每個元素是一個鍵值對,使用方式為{<鍵1>:<值1>,<鍵2>:<值2>,…,<鍵n>:<值n>},其中,鍵和值通過冒號連接,不同鍵值對通過逗號隔開。字典具有和集合類似的性質(zhì),即鍵值對之間沒有順序且不能重復(fù)。通過鍵可以索引值,并可以通過鍵修改值,因此可以直接利用鍵值對關(guān)系索引元素。索引模式:<值>=<字典變量>[<鍵>]。本題選擇A選項。

16.B棧是按“先進后出”的原則組織數(shù)據(jù)的,數(shù)據(jù)的插入和刪除都在棧頂進行操作。本題選擇B選項。

17.A訪問函數(shù)的變量時,需要使用點表示法:對象.變量名。

18.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選項。

19.C在Python中,0.1+0.2=0.30000000000000004。原因是:對于十進制數(shù),它只能表示以進制數(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。二進制(進制數(shù)為2)下,只有一個質(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ù)。當(dāng)對這些循環(huán)小數(shù)進行數(shù)學(xué)運算并將二進制數(shù)據(jù)轉(zhuǎn)換成人類可讀的十進制數(shù)據(jù)時,會對小數(shù)尾部進行截斷處理。在不同的語言中,運行0.1+0.2會輸出不同的結(jié)果。本題選擇C選項。

20.B

21.CCSV文件是一種通用的、相對簡單的文件,最廣泛的應(yīng)用是在程序之間轉(zhuǎn)移表格數(shù)據(jù)。CSV文件沒有通用標(biāo)準(zhǔn)規(guī)范,使用的字符編碼同樣沒有被指定,但ASCII是最基本的通用編碼。CSV文件可以保存一維數(shù)據(jù)或二維數(shù)據(jù),每一行是一維數(shù)據(jù),可以使用Python的列表類型表示。本題選擇C選項。

22.B

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

24.B投影運算是指對于關(guān)系內(nèi)的域指定可引入新的運算。本題中S是在原有關(guān)系R的內(nèi)部進行的,是由R中原有的那些域的列所組成的關(guān)系。本題選擇B選項。

25.A用于數(shù)據(jù)分析的第三方庫是pandas,PIL是Python在圖像處理方面的第三方庫,Django和flask庫是Python在Web開發(fā)方向的第三方庫。本題選擇A選項。

26.C數(shù)據(jù)庫系統(tǒng)的三級模式是概念模式、外模式和內(nèi)模式。概念模式是數(shù)據(jù)庫系統(tǒng)中全局數(shù)據(jù)邏輯結(jié)構(gòu)的描述,是全體用戶公共數(shù)據(jù)視圖。外模式也稱子模式或用戶模式,它是用戶的數(shù)據(jù)視圖,給出了每個用戶的局部數(shù)據(jù)描述,所以選擇C。內(nèi)模式又稱物理模式,它給出了數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法。

27.A

28.D棧稱為“后進先出”表或“先進后出”的線性表;隊列稱為“先進先出”或“后進后出”的線性表。F,G,H,I,J依次人隊,則依次出隊順序為F,G,H,I,J;A,B,c,D,E依次人棧,則依次出棧順序為E,D,C,B,A。故輸出順序為F,G,H,I,J,E,D,c,B,A。本題選D選項。

29.CCSV文件采用純文本格式,通過單一編碼表示字符。以行為單位,開頭不留空行,行之間沒有空行。每行表示一個一維數(shù)據(jù),多行表示多維數(shù)據(jù)。以逗號分隔每列數(shù)據(jù),列數(shù)據(jù)為空也要保留逗號。本題選擇C選項。

30.D在關(guān)系(二維表)中凡是能唯一標(biāo)識元組的最小屬性或?qū)傩约Q為該關(guān)系的鍵或者碼。本題選擇D選項。

31.Y

32.N

33.Y

34.Y

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

36.Y

37.N

38.N

39.Y

40.Y

41.[1,2]

42.'3'

43.-1

44.9

45.'1:2:3:4:5'

46.pip

47.0,1,2,

48.NoneNone

49.83

50.BaseException

51.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),一個用來遍歷二維列表,一個用來遍歷輸入的序號列表,當(dāng)輸入的序號與二維列表中的一樣時,輸出結(jié)果。因為題目的示例輸出在數(shù)字月和日期之間加入了漢字,此時分析存入二維列表中的數(shù)字,可以知道存入的是字符串,即在CSV文件中初始月日和結(jié)束月日都是長度為4的字符串,屬于序列類型,因此可以使用索引訪問。(3)在問題2的基礎(chǔ)上,加上一個標(biāo)記,如果輸入的序號正確,則標(biāo)記為True;輸入錯誤,標(biāo)記為False,最后根據(jù)標(biāo)記判斷是否輸出“輸入節(jié)假日編號有誤!\r\n”。分析題目要求可知,標(biāo)記是在輸入的序號在二維列表中可以查到時變?yōu)門rue,其他情況都為False,所以標(biāo)記應(yīng)該放在遍歷序號列表的for循環(huán)內(nèi)、遍歷二維列表的for循環(huán)外。

52.importturtleturtle.color(“red”.”yellow”)turtle.begin_fill()foriinrange(36):turtle.fd(200)turtle,left(110)turtle.end_fill()該題考查的是用Python標(biāo)準(zhǔn)庫turtle庫繪制太陽花。根據(jù)題干可知,太陽花的邊為紅色且用黃色填充,因此第1空填red,第2空填yellow。由于涉及填充圖形,所以要調(diào)用begin_fill()函數(shù),因此第3空應(yīng)填入be-gin_fill()。題目要求邊長為200像素,則第4空應(yīng)填200。太陽花一共36個角,每個角10度,因此繪制一條邊需要逆時針旋轉(zhuǎn)170度再繪制下一條邊,因此第5空應(yīng)填入170。

53.考生文件夾下存在兩個Python源文件“PY301.py”和“PY301-2.py”,分別對應(yīng)兩個問題,請按照文件內(nèi)說明修改代碼,實現(xiàn)以下功能?!栋谅c偏見》是史上最震撼人心的“世界文學(xué)十部最佳小說之一”。第1章的內(nèi)容由考生文件夾下文件“arrogant,txt”給出。問題1:請編寫程序,統(tǒng)計該篇文章的英文字符數(shù)(不統(tǒng)計換行符),字符與出現(xiàn)次數(shù)之間用冒號(:)分隔。結(jié)果保存在考生文件夾下,命名為“PY301-l.txt”。試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#請在程序的_____處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準(zhǔn)…d={}Is=list(d.items())…fo.write("{}:{}\\n".format(_____,_____))問題2:在問題1的前提下,將得到的字符次數(shù)進行降序排列,并將排名前10的常用字符保存在“arrogant-sort,txt”文件中。試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#請在程序的_____處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準(zhǔn)…d={}…Is=list(d.items())Is.sort(key=lambdax:x[1],reverse=True)…fo.write("{}:{}\\n".format(_____,_____))試題答案:(1)Fi=open(“arrogant.txt,”r”)Fo=open(“PY301-1.txt”,”w”Txt=fi.read()d={}Forsintxt:D[s]=d.get(s,0)+1Deld[‘\\n’]Is=list(d.items())Foriinrange(len(is)):fo.write(“{}:{}\\n”.format(ls[i][0],is[i][1])Fi.close()Fo.close()(2)Fi=open(“arrogant.txt,”r”)Fo=open(“arrogant-sort.txt”,”w”)Txt=fi.read()d={}Forsintxt:D[s]=d.get(s,0)+1Deld[‘\\n’]Is=list(d.items())Is.sort(key=lambdax:x[1],reverse=True)Foriinrange(10):fo.write(“{}:{}\\n”.fcrmat(is[i][0],is[i][1])Fi.close()Fo.close()(1)首先使用open()函數(shù)打開文件“arrogant,\r\ntxt”,把文件的內(nèi)容通過read()方法保存到變量txt中;然后用for循環(huán)遍歷txt中的每個英文字符,將該字符作為字典d中的鍵,將該鍵所對應(yīng)的值設(shè)置為1,在后面循環(huán)中只要遍歷的字符與該鍵相同,就將該鍵對應(yīng)的值加1。這樣,字典中的鍵值對對應(yīng)著英文字符和其出現(xiàn)的次數(shù)。由于題目要求不統(tǒng)計換行符,因此需要使用del刪除換行符對應(yīng)的鍵值對。Is=list(d.items())表示將字典類型變成列表類型,字典中的每個鍵值對對應(yīng)列表中的一個元組。每個元組中的第一個元素ls[i]\r\n[0]表示英文字符,第二個元素is[i][1]表示字符出現(xiàn)的次數(shù)。通過for循環(huán)遍歷按照格式規(guī)則將兩個對應(yīng)的元素寫入文件“PY301-1.\r\ntxt”。(2)\r\n問題2在問題1的基礎(chǔ)上增加了排序,排序的規(guī)則是按照字符出現(xiàn)的次數(shù)降序排序,因此排序后列表中前10個元素(元組)就是排名前10的字符。通過for循環(huán)遍歷按照格式規(guī)則將這10個元素寫入文件“\r\narrogant-sort,tx”中。四川省宜賓市全國計算機等級考試Python語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________

一、單選題(30題)1.以下用于計算機視覺領(lǐng)域的Python第三方庫是()。

A.OpenCV—PythonB.MatplotlibC.FlaskD.PyMongo

2.當(dāng)用戶輸入2時,下面代碼的輸出結(jié)果是()。try:n=input(“請輸入一個整數(shù):”)defpow2(n):returnn**5pow2(n)except:print(”程序執(zhí)行錯誤”)

A.32B.2C.程序沒有任何輸出D.程序執(zhí)行錯誤

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

A.importmodule

B.frommoduleasfimportfunction

C.importmoduleasm

D.frommoduleimport*

4.設(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

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

5.x=2.6,表達式round(x)的結(jié)果是()。

A.2.6B.2C.3D.2.0

6.列表l1=[1,2,3],則表達式1+l1()A.[2,3,4]B.[1,1,2,3]C.[1,2,4]D.異常

7.以下關(guān)于分支和循環(huán)結(jié)構(gòu)的描述中,正確的是()。

A.在循環(huán)中,continue語句的作用是跳出當(dāng)前循環(huán)

B.在循環(huán)中,break語句的作用是結(jié)束該語句所在的循環(huán)

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

D.在Python中,分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)必須帶有else子句

8.對于序列s,能夠返回序列s中第i到第j以k為步長的子序列的表達式是()。

A.s[i:j:k]B.s[i,j,k]C.s[i;j;k]D.s(i,j,k)

9.表達式list(map(lambdax:x*2,[1,2,3,4,’hi’]))的返回值是()

A.[1,2,3,4,’hi’]

B.[2,4,6,8,'hihi']

C.[2,4,6,8,'hi','hi']

D.異常

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

A.whileB.loopC.ifD.do…for

11.下面代碼的輸出結(jié)果是()。list=[“1”,”3”,”5”]defapp(x):list.a(chǎn)ppend(x)app(”7”)print(list)

A.[’1’,’3’,’5’]B.[’1’,’3’,’5’,’7’]C.[’7’]D.”1,3,5,7”

12.以下選項中不是Python文件目錄操作方法的是()。

A.split()B.rename()C.getcwd()D.rmdir()

13.執(zhí)行以下代碼的結(jié)果是?A.20B.24C.30D.33

14.以下代碼的輸出結(jié)果是()。forsin“PythonNice!”:ifs==“i”:breakprint(s,end=“”)

A.PythonB.PythonNC.PythonNiD.PythonNice

溫馨提示

  • 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

提交評論