




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
江蘇省南通市全國計算機等級考試Python語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(30題)1.以下程序的輸出結(jié)果是()。list=[[0,1,2],“123.0”,“python”]a=all(list[0])b=list[1].split(“.”)c=ascii(list[2])print(a,b,c)
A.True[‘123’]‘python’
B.False['0']‘1’
C.True[‘123’,‘0’]‘1’
D.False[‘123’,‘0’]‘python’
2.以下代碼的輸出結(jié)果是()。print(0.1+0.2==0.3)
A.一1B.TrueC.FalseD.0
3.以下不屬于Python中異常處理結(jié)構(gòu)的是()。
A.try-except
B.try-except-if
C.try-except-else
D.try-except-finally
4.以下關(guān)于函數(shù)的定義與編寫的描述,錯誤的是()。
A.函數(shù)是代碼復(fù)用的一種方式
B.在Python中,使用關(guān)鍵字define定義函數(shù)
C.定義函數(shù)時,即使函數(shù)不需要接收任何參數(shù),也必須保留一對空括號來表示這是一個函數(shù)
D.編寫函數(shù)時,一般建議先對參數(shù)進行合法性檢查,然后再進行編寫
5.以下程序的輸出結(jié)果是()。ls=[12,44,23,46]foriinlsifi==‘44’:print(‘foundit!i=i’,i)breakelse:print(‘notfoundit…’)A.notfoundit…
B.foundit!i=44
C.foundit!i=44notfoundit…
D.foundit!i=‘44’notfoundit...
6.以下不是Python特點的是()。
A.執(zhí)行速度快B.語法簡潔C.支持中文D.生態(tài)豐富
7.一個類繼承另一個類,那么被繼承的這個類被稱為()。
A.超類B.子類C.類D.繼承類
8.以下代碼的輸出結(jié)果是()。CLis=list(range(5))print(5inCLis)
A.TrueB.FalseC.0D.一1
9.Python中用來表示代碼塊所屬關(guān)系的語法是()。
A.縮進B.圓括號C.方括號D.冒號
10.以下程序的輸出結(jié)果是()。deffun(x): try: returnx*4 except: returnxprint(fun(“5”))
A.20B.5555C.5D.9
11.time庫的time.time()函數(shù)的作用是()。
A.以數(shù)字形式返回當前系統(tǒng)時間
B.以字符串形式返回當前系統(tǒng)時間
C.以struct_time形式返回當前系統(tǒng)時間
D.根據(jù)format格式定義返回當前系統(tǒng)時間
12.設(shè)元素集合為D={1,2,3,4,5,6}。B=(D,R)為線性結(jié)構(gòu)所對應(yīng)的R是()。
A.R={(6,1),(5,6),(1,3),(2,4),(3,2)}
B.R={(4,5),(6,1),(5,6),(1,3),(2,4),(3,2)}
C.R={(6,1),(5,6),(1,3),(3,4),(3,2)}
D.R={(6,1),(5,6),(2,3),(2,4),(3,2)}
13.以下關(guān)于Python字符編碼的描述中,正確的是()。
A.Python字符編碼使用ASCII值存儲
B.chr(x)和ord(x)函數(shù)用于在單字符和Unicode值之間進行轉(zhuǎn)換
C.print(chr('a’))輸出97
D.print(ord(65))輸出A
14.下列關(guān)于Python中復(fù)數(shù)類型的描述錯誤的是()。
A.復(fù)數(shù)由實數(shù)部分和虛數(shù)部分構(gòu)成
B.復(fù)數(shù)可以看作二元有序?qū)崝?shù)對(a,b)
C.虛數(shù)部分必須有后綴j,且為小寫
D.復(fù)數(shù)中的虛數(shù)部分不能單獨存在,必須有實數(shù)部分
15.關(guān)于Python中is與==說法正確的是
A.is對比兩個變量指向是否為同一對象,==對比兩個變量指向?qū)ο笫欠駷橥?/p>
B.is對比兩個變量指向?qū)ο笫欠駷橥恢?==是對比兩個變量指向是否為同一對象
C.is與==除均可用于比較對象是否為同一對象外,==還可以用于比較對象的值
D.以上說法均不正確
16.對于以下代碼的描述正確的是()。s=”Pythonisgood"1="isn’tit?"length=len(s)s_title=s.title()s_l=s+1s_number=s[1:6]print(length)
A.length為12
B.s_title為”PYTHONISGOOD”
C.s_l為”Pythonisgoodisn’tit?”
D.s_number為”Python”
17.下列排序方法中,最壞情況下比較次數(shù)最少的是()。
A.冒泡排序B.簡單選擇排序C.直接插入排序D.堆排序
18.表達式divmod(40,3)的結(jié)果是()。
A.13,1B.(13,1)C.13D.1
19.為以下程序填空,使得輸出結(jié)果是{40:’yuwen’,20:’yingyu’,30:’shuxu’}的選項是()。tb={’yingyu’:20,’shuxue’:30,’yuwen’:40}
stb={}foritintb.items():
print(it)print(stb)A.stb[it[1]]=it[0]
B.stb[it[1]]=stb[it[0]]
C.stb[it[1]]=tb[it[1]]
D.D.stb[il[1]]=tb[it[0]]
20.以下代碼的輸出結(jié)果是()。t=10.5defabove_zero(t):returnt>0
A.TrueB.FalseC.10.5D.沒有輸出
21.下面代碼的輸出結(jié)果是()。list=[“1””3”,”5”]defapp(x):list,append(x)app(“7”)print(list)
A.[‘1’,’3’,’5’]
B.[‘1’,’3’,’5’,'7']
C.[‘7’]
D."l,3,5,7"
22.以下屬于Python中Web開發(fā)框架第三方庫的是()。
A.DjangoB.TinyDBC.audiolazyD.Pattem
23.以下代碼的輸出結(jié)果是()。forsin”HelloWorld”:ifs==”W”:continueprint(s,end=””)
A.WorldB.HelloC.HelloorldD.HelloWorld
24.以下屬于Python的導(dǎo)入語句的是()。
A.classB.returnC.importD.print
25.下列哪種情況不會導(dǎo)致Python對象的引用計數(shù)增加()
A.對象被創(chuàng)建B.被作為參數(shù)傳遞給函數(shù)C.成為容器對象的元素D.該對象無法訪問時
26.以下對文件描述錯誤的是()。
A.文件是一個存儲在輔助存儲器上的數(shù)據(jù)序列
B.文本文件和二進制文件都是文件
C.文件中可以包含任何數(shù)據(jù)內(nèi)容
D.文本文件能用二進制文件方式讀入
27.算法的空間復(fù)雜度是指()。
A.算法在執(zhí)行過程中所需要的計算機存儲空間
B.算法所處理的數(shù)據(jù)量
C.算法程序中的語句或指令條數(shù)
D.算法在執(zhí)行過程中所需要的臨時工作單元數(shù)
28.以下代碼的輸出結(jié)果是()。foriinrange(1,6):ifi%4==0:continueelse:print(i,end=”,")
A.l,2,3,B.l,2,3,4,C.l,2,3,5,D.l,2,3,5,6,
29.設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號,姓名,性別,年齡,身份證號),課程C(課號,課名),選課SC(學(xué)號,課號,成績),則表SC的關(guān)鍵字(鍵或碼)為()。
A.課號,成績B.學(xué)號,成績C.學(xué)號,課號D.學(xué)號,姓名,成績
30.以下關(guān)于Python列表的描述中,正確的是()。A.列表的長度和內(nèi)容都可以改變,但元素類型必須相同
B.不可以對列表進行成員運算操作、長度計算和分片
C.列表的索引是從1開始的
D.可以使用比較操作符(如>或<等)對列表進行比較
二、判斷題(10題)31.在定義函數(shù)時,某個參數(shù)名字前面帶有一個*符號表示可變長度參數(shù),可以接收任意多個普通實參并存放于一個元組之中。
A.是B.否
32.使用del命令或者列表對象的remove()方法刪除列表中元素時會影響列表中部分元素的索引。
A.是B.否
33.3+4j是合法Python數(shù)字類型。
A.是B.否
34.表達式{1,2}*2的值為{1,2,1,2}。
A.是B.否
35.創(chuàng)建只包含一個元素的元組時,必須在元素后面加一個逗號,例如(3,)。
A.是B.否
36.Python不允許使用關(guān)鍵字作為變量名,但是允許使用內(nèi)置函數(shù)名作為變量名,不過這會改變函數(shù)名的含義,所以不建議這樣做。
A.是B.否
37.已知x為非空列表,那么執(zhí)行語句x[0]=3之后,列表對象x的內(nèi)存地址不變。
A.是B.否
38.元組可以作為集合的元素。
A.是B.否
39.Python列表、元組、字符串都屬于有序序列。
A.是B.否
40.在類定義的外部沒有任何辦法可以訪問對象的私有成員。A.是B.否
三、填空題(10題)41.表達式type({3})的值為__________。
42.表達式'%c'%65的值為_________。
43.表達式int('123',8)的值為_________。
44.表達式isinstance('abcdefg',str)的值為____________。
45.表達式':'.join('1,2,3,4,5'.split(','))的值為__________________。
46.表達式'Helloworld.IlikePython.'.rfind('python')的值為________。
47.已知x=3,那么執(zhí)行語句x+=6之后,x的值為_______________。
48.假設(shè)re模塊已導(dǎo)入,那么表達式re.findall('(\d)\\1+','33abcd112')的值為___________________。
49.正則表達式模塊re的__________方法用來編譯正則表達式對象。
50.表達式isinstance('4',(int,float,complex))的值為_____________。
四、操作題(3題)51.考生文件夾下存在一個文件PY101.py,請寫代碼替換橫線,不修改其他代碼,實現(xiàn)以下功能:
鍵盤輸入正整數(shù)n,按要求把n輸出到屏幕,格式要求:寬度為25個字符,等號字符(=)填充,右對齊,帶千位分隔符。如果輸入正整數(shù)超過25位,則按照真實長度輸出。
例如:鍵盤輸入正整數(shù)n為1234,屏幕輸出===================1,234
試題程序:
#請完善如下代碼
s=input()
print(”{________(1)_________}”.format(________(2)_________))
52.考生文件夾下存在一個文件“PY103.py”,請寫代碼替換橫線,不修改其他代碼,實現(xiàn)以下功能。從鍵盤輸入一句話,用jieba庫進行分詞后,將切分的詞組按照原話逆序輸出到屏幕上,詞組中間沒有空格。示例如下。
輸入:我愛老師輸出:老師愛我
試題程序:#請在_____處使用一行代碼或表達式替換
#注意:請不要修改其他已給出代碼
importjiebatxt=input(”請輸入一段中文文本:”)_____(1)_____foriinls[::-1]:_____(2)_____
53.某班學(xué)生評選一等獎學(xué)金,學(xué)生的10門主干課成績存在考生文件夾下文件score.txt中,每行為一個學(xué)生的信息,分別記錄了學(xué)生學(xué)號、姓名以及10門課成績,格式如下:
1820161043
鄭珉鎬68668377567361696678
1820161044
沈紅偉91708l919680789l8994
從這些學(xué)生中選出獎學(xué)金候選人,條件是:①總成績排名在前10名;②全部課程及格(成績大于等于60)。
問題1:給出按總成績從高到低排序的前10名學(xué)生名單,并寫入文件candidate0.txt,每行記錄一個學(xué)生的信息,分別為學(xué)生學(xué)號、姓名以及10門課成績。補充考生文件夾下文件PY301一1.py,完成這一功能。試題程序:
#請在…處使用多行代碼替換
##注意:其他已給出代碼僅作為提示,可以修改L=[]
#L中的元素是學(xué)生原始成績和總成績
…#此處可多行
L.sort(key=lambdax:x[一1],reverse=True)拌按學(xué)生總成績從大到小排序
…#此處可多行
問題2:讀取文件candidate0.txt,從中選出候選人,并將學(xué)號和姓名寫入文件candidate.txt,格式如下:
1010112161722
張三
1010112161728
李四
補充考生文件夾下文件PY301—2.py,完成這一功能。
試題程序:'''輸入文件:candidate0.txt輸出文件:candidate.txt'''
參考答案
1.Dall(x)函數(shù),當組合類型變量x中所有元素為真時返回True,否則返回False。元素除了0、None、False外都算True。所以a的值為False;b中split()是字符串分隔方法,返回分隔后的值應(yīng)為[‘123’,‘0’];c中ascii()的參數(shù)是字符串‘python’,所以返回‘python’。本題選擇D選項。
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。二進制下(進制數(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ù)。當對這些循環(huán)小數(shù)進行數(shù)學(xué)運算并將二進制數(shù)據(jù)轉(zhuǎn)換成人類可讀的十進制數(shù)據(jù)時,會對小數(shù)尾部進行截斷處理。在不同的語言中,運行0.1+0.2會輸出不同的結(jié)果。
3.BPython中異常處理結(jié)構(gòu)有try-except、try-except-else及\ntry-except-flnally。本題選擇B選項。
4.B在Python中,使用關(guān)鍵字def定義函數(shù)。
5.A由于列表ls中所有元素都是整數(shù)類型,不可能等于字符串類型的‘44’,即if語句中的條件不成立,需執(zhí)行else語句,輸出notfoundit…。本題選擇A選項。
6.APython最重要的3個特點是語法簡潔、生態(tài)豐富、多語言集成。除了這3個重要特點外,還有一些其他特點:平臺無關(guān)、強制可讀、支持中文、模式多樣、類庫便捷。Python是一種高級通用腳本語言,是通過解釋方式執(zhí)行的(解釋是將源代碼逐條轉(zhuǎn)換成目標代碼同時逐條運行目標代碼的過程),故執(zhí)行速度沒有采用編譯方式的語言執(zhí)行得快。本題選擇A選項。
7.A一個類繼承另一個類,那么被繼承的這個類被稱為超類或者父類。
8.Brange()函數(shù)的語法:range(start,stop,step),作用是生成一個從start參數(shù)的值開始,到stop參數(shù)的值結(jié)束的數(shù)字序列(注意不包含數(shù)stop),step是步進參數(shù)。cLis=list(range(5)),生成一個列表,包含0,1,2,3,4。因為5不在CLis列表中,故返回False。
9.A“縮進”在Python中用于表示代碼塊所屬關(guān)系。本題選擇A選項。
10.Bfun(“5”)是將字符“5”賦給形參x,由于‘5’是字符類型,不是數(shù)字類型,不能進行數(shù)值運算,因此“x*4”是把字符“5”連續(xù)復(fù)制4次輸出。本題選擇B選項。
11.Atime.time()返回的是當前時間的時間戳,是一個浮點數(shù),以秒為單位。本題選擇A選項。
12.A一個非空的數(shù)據(jù)結(jié)構(gòu)如果滿足兩個條件:①有且只有一個根結(jié)點;②每一個結(jié)點最多有一個前件,也最多有一個后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu)。B項不滿足條件①,不止一個根結(jié)點;C項,結(jié)點3有兩個后件4和2,不滿足條件②;D項,既不滿足條件①,也不滿足條件②。故答案為A項。
13.B在Python中,字符編碼以Unicode值存儲。chr(x)和ord(x)函數(shù)用于在單字符和Unicode值之間進行轉(zhuǎn)換。chr(x)函數(shù)返回Unicode值對應(yīng)的字符,ord(x)函數(shù)返回單字符x對應(yīng)的Unicode值,如chr(1010)返回’c’,ord(”和”)返回21644。因此,選項C、D錯誤。本題選擇B選項。
14.CPython中復(fù)數(shù)類型的虛數(shù)部分的后綴可以為j或者J;復(fù)數(shù)的實部可以單獨存在,但是虛部不可以單獨存在;復(fù)數(shù)由實部和虛部構(gòu)成,可以使用z.\nreal和z.imag分別獲得它的實部和虛部。本題選擇C選項。
15.A
16.Clen()方法用來獲取字符串的長度,所以length應(yīng)為14;title()方法把字符串每個單詞的首字母變?yōu)榇髮懀詰?yīng)為Python\nIsGood;索引從0開始,所以s[1:6]應(yīng)為ython。本題選擇C選項。
17.D冒泡排序、簡單插入排序與簡單選擇排序法在最壞情況下均需要比較n(n-1)/2次,而堆排序在最壞情況下需要比較的次數(shù)是nlog2n。故答案為D選項。
18.Bdivmod(x,y)函數(shù)用來計算x和y的除余結(jié)果,返回兩個值,分別是:x與y的整數(shù)除,即x//y,以及x與y的余數(shù),即x%y。返回的兩個值組成了一個元組類型,即小括號包含的兩個元素(x//y,x%y)。40//3=13,40%3=1,故答案為B項。
19.A分析題目及程序代碼可知,題意是將字典中的鍵值互換。tb.items()以列表形式(并非直接的列表,若要返回列表值還需調(diào)用list函數(shù))返回可遍歷的(鍵,值)元組數(shù)組。因此,for循環(huán)中it每次遍歷得到的是一個元組,依次為(’yingyu’,20)、(’shuxue’,30)、(’yuwen’,40),然后將元組中序號為0的元素和序號為1的元素互換位置,實現(xiàn)字典中鍵值的互換,應(yīng)填入stb[it[1]]=it[0]。
20.D在Python中,return語句用來結(jié)束函數(shù)并將程序返回到函數(shù)被調(diào)用的位置繼續(xù)執(zhí)行。re-turn\n語句可以出現(xiàn)在函數(shù)中的任何部分,可以同時將0個、1\n個或多個函數(shù)運算結(jié)果返回給函數(shù)被調(diào)用處的變量。函數(shù)可以沒有return語句,此時函數(shù)并不返回值。return語句返回的是值而不是表達式,故程序無輸出。本題選擇D選項。
21.Bappend()是向列表元素的結(jié)尾增加元素。本題選擇B選項。
22.AB項是一個微型的面向文檔的數(shù)據(jù)庫,C項是Python的數(shù)字信號處理包,D項是Python的網(wǎng)絡(luò)信息挖掘模塊。
23.Cforsin”HelloWorld”:將字符串”HelloWorld”中的字符依次賦給變量s,之后進行if判斷,如果s=”w”,則continue,執(zhí)行下一個循環(huán),不執(zhí)行print(s,end=””),否則執(zhí)行print(s,end=””),所以最后輸出的結(jié)果是Helloorld。
24.C在Python中,無論是標準庫、第三方庫還是自定義庫,在使用之前都需要進行導(dǎo)入,方法就是使用import語句導(dǎo)入模塊。本題選擇C選項。
25.D
26.D文件是存儲在輔助存儲器上的一組數(shù)據(jù)序列,可以包含任何數(shù)據(jù)內(nèi)容。文件包括文本文件和二進制文件兩種類型。文本文件和二進制文件的存儲方式不同,所以文本文件不可以用二進制文件方式讀入。本題選擇D選項。
27.A算法的空間復(fù)雜度是指算法在執(zhí)行過程中所需要的內(nèi)存空間。所以選擇A項。
28.Cfor循環(huán)依次將1?5依次賦給變量i,i依次為1、2、3、4、5。當視4==\n0時,結(jié)束本次循環(huán)進入下一循環(huán);反之輸出i的值,故輸出1、2、3、5。本題選擇C選項。
29.C學(xué)號是學(xué)生表S的主鍵,課號是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是與前兩個表能夠直接聯(lián)系且能唯一定義的學(xué)號和課號,所以選擇C項。
30.D列表是包含0個或多個元素的有序序列,屬于序列類型。列表用方括號([])表示,由于列表屬于序列類型,因此繼承了序列類型的所有屬性和方法。索引是列表的基本操作,用于獲得列表中的一個元素,該操作沿用序列類型的索引方式,即正向遞增序號或反向遞減序號,使用方括號作為索引操作符,索引號不得超過列表的元素范圍,否則將產(chǎn)生IndexEiror錯誤。索引從0開始。列表可以進行元素增加、刪除、替換、查找等操作。列表沒有長度限制,元素類型可以不同,能夠包含其他的組合數(shù)據(jù)類型,可以使用比較運算符(如“>”或“<”等)對列表進行比較,也可以對列表進行成員運算操作、長度計算和分片。本題選擇D選項。
31.Y
32.Y
33.Y
34.N
35.Y
36.Y
37.Y
38.Y
39.Y
40.N
41.set
42.'A'
43.83
44.True
45.'1:2:3:4:5'
46.-1
47.9
48.['3','1']
49.compile()
50.False
51.s=input()\r\nprint(”{:=>25}”.format(eval(s)))該題目主要考查Python字符串的格式化方法。Python語言推薦使用.format()格式化方法,其使用方式如下:\r\n
<模板字符串>.format(<逗號分隔的參數(shù)>)\r\n
其中,模板字符串是一個由字符串和槽組成的字符串,用來控制字符串和變量的顯示效果。槽用大括號({})表示,對應(yīng)format()方法中逗號分隔的參數(shù)。如果模板字符串中有多個槽,可以通過format()參數(shù)的序號在模板字符串槽中指定參數(shù)的使用,參數(shù)從0開始編號。例如:\r\n”{0}日:學(xué)而不思則罔,思而不學(xué){1}?!保甪ormat(”孔子”,”則殆”)\r\n
其結(jié)果為:’孔子日:學(xué)而不思則罔,思而不學(xué)則殆?!痋r\n
format()方法的槽除了包括參數(shù)序號,還可以包括格式控制信息,語法格式如下:\r\n
{<參數(shù)序號>:<格式控制標記>}\r\n其中,格式控制標記包括:<填充><對齊><寬度><,><.精度><類型>6個字段,由引導(dǎo)符號(:)作為引導(dǎo)標記,這些字段都是可選的,可以組合使用。\r\n
<填充>:指用于填充的單個字符。\r\n
<對齊>:分別使用<、>和^三個符號表示左對齊、右對齊和居中對齊。\r\n<寬度>:當前槽的設(shè)定輸出字符寬度。\r\n<,>:用于顯示數(shù)字類型的千位分隔符。\r\n
<.精度>:由小數(shù)點(.)開頭,對于浮點數(shù),精度表示小數(shù)部分輸出的有效位數(shù);對于字符串,精度表示輸出的最大長度。\r\n
<類型>:表示輸出整數(shù)和浮點數(shù)類型的格式規(guī)則。\r\n
本題格式要求為:寬度為25個字符,等號字符(=)填充,右對齊,帶千位分隔符。則模板字符串為:{:=>25,}。\r\n
由于題目要求帶千位分隔符,所以模板字符串對應(yīng)的:format()方法中的參數(shù)必須是數(shù)字類型,但無論用戶輸入的是字符還是數(shù)字,input()函數(shù)統(tǒng)一按照字符串類型輸出,這時就需要先使用eval()函數(shù)去掉字符串最外側(cè)的引號,然后再參與運算。
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.(1)L=[]\r\n
fo=open("score.txt","r")\r\n
fi=open("candidate0.txt","w")\r\n
lines=fo.readlines()\r\n
forlineinlines:\r\n
line=line.strip()\r\n
student=line.split('')\r\n
sum=0\r\n
foriinrange(1,11):\r\n
sum+=int(student[-i])\r\n
studene.append(str(sum))\r\n
L.append(student):\r\n
L.sort(key=lambda.x:x[一1],reverse=True)\r\nforiinrange(10):\r\nfi.write('',join(L[i][:-1])+'\\n')\r\nfo.close()\r\nfi.close()(2)'''\r\n輸入文件:candidate0.txt\r\n輸出文件:candidate.txt\r\n'''\r\nfo=open("candidate0.txt","r")\r\nfi=open("candlidate.txt","w")\r\nL=[]#存儲候選人\r\nlines=fo.readlines()\r\nforlineinlines:\r\n
line=line.strip()\r\n
student=line.split('')\r\n
foriinstudent[-10:]:\r\n
ifint(i)<60:\r\n
break\r\n
else:\r\n
I:append(student[:2])\r\nforiinL:\r\n
fi.write(''.join(i)+'\\n')\r\nfo.close()\r\nfi.close()(1)本題涉及”score.txt”和”candidate0.txt”兩個文件。首先要讀取”score.txt”文件中的信息,通過程序求出每個學(xué)生的總成績,然后按總成績從大到小排序,將總成績排名前10的學(xué)生的學(xué)號、姓名以及10門課成績寫入到”candidate0.txt”文件中。打開文件用open()函數(shù),用”r”只讀模式打開文件”score.txt”,用”w”模式創(chuàng)建文件”cand:idate0.txt”。\r\n
”score.txt”文件中每行為一個學(xué)生的信息,需要用readlines()函數(shù)讀入所有行,以每行為元素形成列表lines,然后用for循環(huán)遍歷該列表中的每個元素。在遍歷每個元素時,用strip()方法刪除元素首尾出現(xiàn)的空格,用split()方法以空格分隔學(xué)生的學(xué)號、姓名以及10門課成績得到列表student。由于要求出總成績,因此要使用for遍歷每個學(xué)生的10門課成績,將其累加賦值給sum,并將sum追加到student中。最后將student中所有元素追加到列表L中。\r\n
隨后,對列表L中的元素進行排序,用到sort()方法,參數(shù)”key=lambdax:x[一1]”中l(wèi)ambda是一個隱函數(shù),是固定寫法,不能寫成別的單詞;x表示列表中的一個元素,在這里表示一個列表(即一個學(xué)生的信息),x只是臨時起的一個名字,也可以使用任意的名字;x[一1]表示以列表中的最后一個元素(即總成績)排序。參數(shù)”reverse=True”表示按降序排序;若該參數(shù)缺省或”reverse=False”,表示按升序排序。\r\n
最后,通過for循環(huán)在列表L中提取出前10個元素(即前10名的學(xué)生信息,但不包含總成績),用空格分隔每個元素,并添加換行符,寫入到文件”candidate0.txt”中,再關(guān)閉所有文件。\r\n
(2)本題涉及”candidate0.txt”和”candidate.txt”兩個文件。首先要讀取”candidate0.txt”文件中的信息,通過程序判斷每個學(xué)生的所有課程成績是否都大于等于60,滿足條件的將該學(xué)生的學(xué)號和姓名寫入到”candidate.txt”文件中。打開文件用open()函數(shù),用”r”只讀模式打開文件”candidate0.txt”,用”w”模式創(chuàng)建文件”candidate.txt”,并定義一個列表L來存儲學(xué)號和姓名(做中轉(zhuǎn))。\r\n”candidate0.txt”文件中有10行數(shù)據(jù),需要用readlines()函數(shù)讀入所有行,以每行為元素形成列表lines,然后用for循環(huán)遍歷該列表中的每個元素。在遍歷每個元素時,用strip()方法刪除元素首尾的空格,用split()方法以空格分隔學(xué)生的學(xué)號、姓名以及10門課成績得到列表student。然后對列表student使用for循環(huán)遍歷,用來判斷10門課程的成績是否都大于等于60,滿足條件就將列表student中的前兩個元素(即學(xué)號和姓名)追加到列表L中。\r\n
最后,通過for循環(huán)提取列表L中的所有元素,用空格分隔每個元素,并添加換行符,寫入到文件”candidate.txt”中,再關(guān)閉所有文件。江蘇省南通市全國計算機等級考試Python語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(30題)1.以下程序的輸出結(jié)果是()。list=[[0,1,2],“123.0”,“python”]a=all(list[0])b=list[1].split(“.”)c=ascii(list[2])print(a,b,c)
A.True[‘123’]‘python’
B.False['0']‘1’
C.True[‘123’,‘0’]‘1’
D.False[‘123’,‘0’]‘python’
2.以下代碼的輸出結(jié)果是()。print(0.1+0.2==0.3)
A.一1B.TrueC.FalseD.0
3.以下不屬于Python中異常處理結(jié)構(gòu)的是()。
A.try-except
B.try-except-if
C.try-except-else
D.try-except-finally
4.以下關(guān)于函數(shù)的定義與編寫的描述,錯誤的是()。
A.函數(shù)是代碼復(fù)用的一種方式
B.在Python中,使用關(guān)鍵字define定義函數(shù)
C.定義函數(shù)時,即使函數(shù)不需要接收任何參數(shù),也必須保留一對空括號來表示這是一個函數(shù)
D.編寫函數(shù)時,一般建議先對參數(shù)進行合法性檢查,然后再進行編寫
5.以下程序的輸出結(jié)果是()。ls=[12,44,23,46]foriinlsifi==‘44’:print(‘foundit!i=i’,i)breakelse:print(‘notfoundit…’)A.notfoundit…
B.foundit!i=44
C.foundit!i=44notfoundit…
D.foundit!i=‘44’notfoundit...
6.以下不是Python特點的是()。
A.執(zhí)行速度快B.語法簡潔C.支持中文D.生態(tài)豐富
7.一個類繼承另一個類,那么被繼承的這個類被稱為()。
A.超類B.子類C.類D.繼承類
8.以下代碼的輸出結(jié)果是()。CLis=list(range(5))print(5inCLis)
A.TrueB.FalseC.0D.一1
9.Python中用來表示代碼塊所屬關(guān)系的語法是()。
A.縮進B.圓括號C.方括號D.冒號
10.以下程序的輸出結(jié)果是()。deffun(x): try: returnx*4 except: returnxprint(fun(“5”))
A.20B.5555C.5D.9
11.time庫的time.time()函數(shù)的作用是()。
A.以數(shù)字形式返回當前系統(tǒng)時間
B.以字符串形式返回當前系統(tǒng)時間
C.以struct_time形式返回當前系統(tǒng)時間
D.根據(jù)format格式定義返回當前系統(tǒng)時間
12.設(shè)元素集合為D={1,2,3,4,5,6}。B=(D,R)為線性結(jié)構(gòu)所對應(yīng)的R是()。
A.R={(6,1),(5,6),(1,3),(2,4),(3,2)}
B.R={(4,5),(6,1),(5,6),(1,3),(2,4),(3,2)}
C.R={(6,1),(5,6),(1,3),(3,4),(3,2)}
D.R={(6,1),(5,6),(2,3),(2,4),(3,2)}
13.以下關(guān)于Python字符編碼的描述中,正確的是()。
A.Python字符編碼使用ASCII值存儲
B.chr(x)和ord(x)函數(shù)用于在單字符和Unicode值之間進行轉(zhuǎn)換
C.print(chr('a’))輸出97
D.print(ord(65))輸出A
14.下列關(guān)于Python中復(fù)數(shù)類型的描述錯誤的是()。
A.復(fù)數(shù)由實數(shù)部分和虛數(shù)部分構(gòu)成
B.復(fù)數(shù)可以看作二元有序?qū)崝?shù)對(a,b)
C.虛數(shù)部分必須有后綴j,且為小寫
D.復(fù)數(shù)中的虛數(shù)部分不能單獨存在,必須有實數(shù)部分
15.關(guān)于Python中is與==說法正確的是
A.is對比兩個變量指向是否為同一對象,==對比兩個變量指向?qū)ο笫欠駷橥?/p>
B.is對比兩個變量指向?qū)ο笫欠駷橥恢?==是對比兩個變量指向是否為同一對象
C.is與==除均可用于比較對象是否為同一對象外,==還可以用于比較對象的值
D.以上說法均不正確
16.對于以下代碼的描述正確的是()。s=”Pythonisgood"1="isn’tit?"length=len(s)s_title=s.title()s_l=s+1s_number=s[1:6]print(length)
A.length為12
B.s_title為”PYTHONISGOOD”
C.s_l為”Pythonisgoodisn’tit?”
D.s_number為”Python”
17.下列排序方法中,最壞情況下比較次數(shù)最少的是()。
A.冒泡排序B.簡單選擇排序C.直接插入排序D.堆排序
18.表達式divmod(40,3)的結(jié)果是()。
A.13,1B.(13,1)C.13D.1
19.為以下程序填空,使得輸出結(jié)果是{40:’yuwen’,20:’yingyu’,30:’shuxu’}的選項是()。tb={’yingyu’:20,’shuxue’:30,’yuwen’:40}
stb={}foritintb.items():
print(it)print(stb)A.stb[it[1]]=it[0]
B.stb[it[1]]=stb[it[0]]
C.stb[it[1]]=tb[it[1]]
D.D.stb[il[1]]=tb[it[0]]
20.以下代碼的輸出結(jié)果是()。t=10.5defabove_zero(t):returnt>0
A.TrueB.FalseC.10.5D.沒有輸出
21.下面代碼的輸出結(jié)果是()。list=[“1””3”,”5”]defapp(x):list,append(x)app(“7”)print(list)
A.[‘1’,’3’,’5’]
B.[‘1’,’3’,’5’,'7']
C.[‘7’]
D."l,3,5,7"
22.以下屬于Python中Web開發(fā)框架第三方庫的是()。
A.DjangoB.TinyDBC.audiolazyD.Pattem
23.以下代碼的輸出結(jié)果是()。forsin”HelloWorld”:ifs==”W”:continueprint(s,end=””)
A.WorldB.HelloC.HelloorldD.HelloWorld
24.以下屬于Python的導(dǎo)入語句的是()。
A.classB.returnC.importD.print
25.下列哪種情況不會導(dǎo)致Python對象的引用計數(shù)增加()
A.對象被創(chuàng)建B.被作為參數(shù)傳遞給函數(shù)C.成為容器對象的元素D.該對象無法訪問時
26.以下對文件描述錯誤的是()。
A.文件是一個存儲在輔助存儲器上的數(shù)據(jù)序列
B.文本文件和二進制文件都是文件
C.文件中可以包含任何數(shù)據(jù)內(nèi)容
D.文本文件能用二進制文件方式讀入
27.算法的空間復(fù)雜度是指()。
A.算法在執(zhí)行過程中所需要的計算機存儲空間
B.算法所處理的數(shù)據(jù)量
C.算法程序中的語句或指令條數(shù)
D.算法在執(zhí)行過程中所需要的臨時工作單元數(shù)
28.以下代碼的輸出結(jié)果是()。foriinrange(1,6):ifi%4==0:continueelse:print(i,end=”,")
A.l,2,3,B.l,2,3,4,C.l,2,3,5,D.l,2,3,5,6,
29.設(shè)有表示學(xué)生選課的三張表,學(xué)生S(學(xué)號,姓名,性別,年齡,身份證號),課程C(課號,課名),選課SC(學(xué)號,課號,成績),則表SC的關(guān)鍵字(鍵或碼)為()。
A.課號,成績B.學(xué)號,成績C.學(xué)號,課號D.學(xué)號,姓名,成績
30.以下關(guān)于Python列表的描述中,正確的是()。A.列表的長度和內(nèi)容都可以改變,但元素類型必須相同
B.不可以對列表進行成員運算操作、長度計算和分片
C.列表的索引是從1開始的
D.可以使用比較操作符(如>或<等)對列表進行比較
二、判斷題(10題)31.在定義函數(shù)時,某個參數(shù)名字前面帶有一個*符號表示可變長度參數(shù),可以接收任意多個普通實參并存放于一個元組之中。
A.是B.否
32.使用del命令或者列表對象的remove()方法刪除列表中元素時會影響列表中部分元素的索引。
A.是B.否
33.3+4j是合法Python數(shù)字類型。
A.是B.否
34.表達式{1,2}*2的值為{1,2,1,2}。
A.是B.否
35.創(chuàng)建只包含一個元素的元組時,必須在元素后面加一個逗號,例如(3,)。
A.是B.否
36.Python不允許使用關(guān)鍵字作為變量名,但是允許使用內(nèi)置函數(shù)名作為變量名,不過這會改變函數(shù)名的含義,所以不建議這樣做。
A.是B.否
37.已知x為非空列表,那么執(zhí)行語句x[0]=3之后,列表對象x的內(nèi)存地址不變。
A.是B.否
38.元組可以作為集合的元素。
A.是B.否
39.Python列表、元組、字符串都屬于有序序列。
A.是B.否
40.在類定義的外部沒有任何辦法可以訪問對象的私有成員。A.是B.否
三、填空題(10題)41.表達式type({3})的值為__________。
42.表達式'%c'%65的值為_________。
43.表達式int('123',8)的值為_________。
44.表達式isinstance('abcdefg',str)的值為____________。
45.表達式':'.join('1,2,3,4,5'.split(','))的值為__________________。
46.表達式'Helloworld.IlikePython.'.rfind('python')的值為________。
47.已知x=3,那么執(zhí)行語句x+=6之后,x的值為_______________。
48.假設(shè)re模塊已導(dǎo)入,那么表達式re.findall('(\d)\\1+','33abcd112')的值為___________________。
49.正則表達式模塊re的__________方法用來編譯正則表達式對象。
50.表達式isinstance('4',(int,float,complex))的值為_____________。
四、操作題(3題)51.考生文件夾下存在一個文件PY101.py,請寫代碼替換橫線,不修改其他代碼,實現(xiàn)以下功能:
鍵盤輸入正整數(shù)n,按要求把n輸出到屏幕,格式要求:寬度為25個字符,等號字符(=)填充,右對齊,帶千位分隔符。如果輸入正整數(shù)超過25位,則按照真實長度輸出。
例如:鍵盤輸入正整數(shù)n為1234,屏幕輸出===================1,234
試題程序:
#請完善如下代碼
s=input()
print(”{________(1)_________}”.format(________(2)_________))
52.考生文件夾下存在一個文件“PY103.py”,請寫代碼替換橫線,不修改其他代碼,實現(xiàn)以下功能。從鍵盤輸入一句話,用jieba庫進行分詞后,將切分的詞組按照原話逆序輸出到屏幕上,詞組中間沒有空格。示例如下。
輸入:我愛老師輸出:老師愛我
試題程序:#請在_____處使用一行代碼或表達式替換
#注意:請不要修改其他已給出代碼
importjiebatxt=input(”請輸入一段中文文本:”)_____(1)_____foriinls[::-1]:_____(2)_____
53.某班學(xué)生評選一等獎學(xué)金,學(xué)生的10門主干課成績存在考生文件夾下文件score.txt中,每行為一個學(xué)生的信息,分別記錄了學(xué)生學(xué)號、姓名以及10門課成績,格式如下:
1820161043
鄭珉鎬68668377567361696678
1820161044
沈紅偉91708l919680789l8994
從這些學(xué)生中選出獎學(xué)金候選人,條件是:①總成績排名在前10名;②全部課程及格(成績大于等于60)。
問題1:給出按總成績從高到低排序的前10名學(xué)生名單,并寫入文件candidate0.txt,每行記錄一個學(xué)生的信息,分別為學(xué)生學(xué)號、姓名以及10門課成績。補充考生文件夾下文件PY301一1.py,完成這一功能。試題程序:
#請在…處使用多行代碼替換
##注意:其他已給出代碼僅作為提示,可以修改L=[]
#L中的元素是學(xué)生原始成績和總成績
…#此處可多行
L.sort(key=lambdax:x[一1],reverse=True)拌按學(xué)生總成績從大到小排序
…#此處可多行
問題2:讀取文件candidate0.txt,從中選出候選人,并將學(xué)號和姓名寫入文件candidate.txt,格式如下:
1010112161722
張三
1010112161728
李四
補充考生文件夾下文件PY301—2.py,完成這一功能。
試題程序:'''輸入文件:candidate0.txt輸出文件:candidate.txt'''
參考答案
1.Dall(x)函數(shù),當組合類型變量x中所有元素為真時返回True,否則返回False。元素除了0、None、False外都算True。所以a的值為False;b中split()是字符串分隔方法,返回分隔后的值應(yīng)為[‘123’,‘0’];c中ascii()的參數(shù)是字符串‘python’,所以返回‘python’。本題選擇D選項。
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。二進制下(進制數(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ù)。當對這些循環(huán)小數(shù)進行數(shù)學(xué)運算并將二進制數(shù)據(jù)轉(zhuǎn)換成人類可讀的十進制數(shù)據(jù)時,會對小數(shù)尾部進行截斷處理。在不同的語言中,運行0.1+0.2會輸出不同的結(jié)果。
3.BPython中異常處理結(jié)構(gòu)有try-except、try-except-else及\ntry-except-flnally。本題選擇B選項。
4.B在Python中,使用關(guān)鍵字def定義函數(shù)。
5.A由于列表ls中所有元素都是整數(shù)類型,不可能等于字符串類型的‘44’,即if語句中的條件不成立,需執(zhí)行else語句,輸出notfoundit…。本題選擇A選項。
6.APython最重要的3個特點是語法簡潔、生態(tài)豐富、多語言集成。除了這3個重要特點外,還有一些其他特點:平臺無關(guān)、強制可讀、支持中文、模式多樣、類庫便捷。Python是一種高級通用腳本語言,是通過解釋方式執(zhí)行的(解釋是將源代碼逐條轉(zhuǎn)換成目標代碼同時逐條運行目標代碼的過程),故執(zhí)行速度沒有采用編譯方式的語言執(zhí)行得快。本題選擇A選項。
7.A一個類繼承另一個類,那么被繼承的這個類被稱為超類或者父類。
8.Brange()函數(shù)的語法:range(start,stop,step),作用是生成一個從start參數(shù)的值開始,到stop參數(shù)的值結(jié)束的數(shù)字序列(注意不包含數(shù)stop),step是步進參數(shù)。cLis=list(range(5)),生成一個列表,包含0,1,2,3,4。因為5不在CLis列表中,故返回False。
9.A“縮進”在Python中用于表示代碼塊所屬關(guān)系。本題選擇A選項。
10.Bfun(“5”)是將字符“5”賦給形參x,由于‘5’是字符類型,不是數(shù)字類型,不能進行數(shù)值運算,因此“x*4”是把字符“5”連續(xù)復(fù)制4次輸出。本題選擇B選項。
11.Atime.time()返回的是當前時間的時間戳,是一個浮點數(shù),以秒為單位。本題選擇A選項。
12.A一個非空的數(shù)據(jù)結(jié)構(gòu)如果滿足兩個條件:①有且只有一個根結(jié)點;②每一個結(jié)點最多有一個前件,也最多有一個后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu)。B項不滿足條件①,不止一個根結(jié)點;C項,結(jié)點3有兩個后件4和2,不滿足條件②;D項,既不滿足條件①,也不滿足條件②。故答案為A項。
13.B在Python中,字符編碼以Unicode值存儲。chr(x)和ord(x)函數(shù)用于在單字符和Unicode值之間進行轉(zhuǎn)換。chr(x)函數(shù)返回Unicode值對應(yīng)的字符,ord(x)函數(shù)返回單字符x對應(yīng)的Unicode值,如chr(1010)返回’c’,ord(”和”)返回21644。因此,選項C、D錯誤。本題選擇B選項。
14.CPython中復(fù)數(shù)類型的虛數(shù)部分的后綴可以為j或者J;復(fù)數(shù)的實部可以單獨存在,但是虛部不可以單獨存在;復(fù)數(shù)由實部和虛部構(gòu)成,可以使用z.\nreal和z.imag分別獲得它的實部和虛部。本題選擇C選項。
15.A
16.Clen()方法用來獲取字符串的長度,所以length應(yīng)為14;title()方法把字符串每個單詞的首字母變?yōu)榇髮?,所以?yīng)為Python\nIsGood;索引從0開始,所以s[1:6]應(yīng)為ython。本題選擇C選項。
17.D冒泡排序、簡單插入排序與簡單選擇排序法在最壞情況下均需要比較n(n-1)/2次,而堆排序在最壞情況下需要比較的次數(shù)是nlog2n。故答案為D選項。
18.Bdivmod(x,y)函數(shù)用來計算x和y的除余結(jié)果,返回兩個值,分別是:x與y的整數(shù)除,即x//y,以及x與y的余數(shù),即x%y。返回的兩個值組成了一個元組類型,即小括號包含的兩個元素(x//y,x%y)。40//3=13,40%3=1,故答案為B項。
19.A分析題目及程序代碼可知,題意是將字典中的鍵值互換。tb.items()以列表形式(并非直接的列表,若要返回列表值還需調(diào)用list函數(shù))返回可遍歷的(鍵,值)元組數(shù)組。因此,for循環(huán)中it每次遍歷得到的是一個元組,依次為(’yingyu’,20)、(’shuxue’,30)、(’yuwen’,40),然后將元組中序號為0的元素和序號為1的元素互換位置,實現(xiàn)字典中鍵值的互換,應(yīng)填入stb[it[1]]=it[0]。
20.D在Python中,return語句用來結(jié)束函數(shù)并將程序返回到函數(shù)被調(diào)用的位置繼續(xù)執(zhí)行。re-turn\n語句可以出現(xiàn)在函數(shù)中的任何部分,可以同時將0個、1\n個或多個函數(shù)運算結(jié)果返回給函數(shù)被調(diào)用處的變量。函數(shù)可以沒有return語句,此時函數(shù)并不返回值。return語句返回的是值而不是表達式,故程序無輸出。本題選擇D選項。
21.Bappend()是向列表元素的結(jié)尾增加元素。本題選擇B選項。
22.AB項是一個微型的面向文檔的數(shù)據(jù)庫,C項是Python的數(shù)字信號處理包,D項是Python的網(wǎng)絡(luò)信息挖掘模塊。
23.Cforsin”HelloWorld”:將字符串”HelloWorld”中的字符依次賦給變量s,之后進行if判斷,如果s=”w”,則continue,執(zhí)行下一個循環(huán),不執(zhí)行print(s,end=””),否則執(zhí)行print(s,end=””),所以最后輸出的結(jié)果是Helloorld。
24.C在Python中,無論是標準庫、第三方庫還是自定義庫,在使用之前都需要進行導(dǎo)入,方法就是使用import語句導(dǎo)入模塊。本題選擇C選項。
25.D
26.D文件是存儲在輔助存儲器上的一組數(shù)據(jù)序列,可以包含任何數(shù)據(jù)內(nèi)容。文件包括文本文件和二進制文件兩種類型。文本文件和二進制文件的存儲方式不同,所以文本文件不可以用二進制文件方式讀入。本題選擇D選項。
27.A算法的空間復(fù)雜度是指算法在執(zhí)行過程中所需要的內(nèi)存空間。所以選擇A項。
28.Cfor循環(huán)依次將1?5依次賦給變量i,i依次為1、2、3、4、5。當視4==\n0時,結(jié)束本次循環(huán)進入下一循環(huán);反之輸出i的值,故輸出1、2、3、5。本題選擇C選項。
29.C學(xué)號是學(xué)生表S的主鍵,課號是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應(yīng)該是與前兩個表能夠直接聯(lián)系且能唯一定義的學(xué)號和課號,所以選擇C項。
30.D列表是包含0個或多個元素的有序序列,屬于序列類型。列表用方括號([])表示,由于列表屬于序列類型,因此繼承了序列類型的所有屬性和方法。索引是列表的基本操作,用于獲得列表中的一個元素,該操作沿用序列類型的索引方式,即正向遞增序號或反向遞減序號,使用方括號作為索引操作符,索引號不得超過列表的元素范圍,否則將產(chǎn)生IndexEiror錯誤。索引從0開始。列表可以進行元素增加、刪除、替換、查找等操作。列表沒有長度限制,元素類型可以不同,能夠包含其他的組合數(shù)據(jù)類型,可以使用比較運算符(如“>”或“<”等)對列表進行比較,也可以對列表進行成員運算操作、長度計算和分片。本題選擇D選項。
31.Y
32.Y
33.Y
34.N
35.Y
36.Y
37.Y
38.Y
39.Y
40.N
41.set
42.'A'
43.83
44.True
45.'1:2:3:4:5'
46.-1
47.9
48.['3','1']
49.compile()
50.False
51.s=input()\r\nprint(”{:=>25}”.format(eval(s)))該題目主要考查Python字符串的格式化方法。Python語言推薦使用.format()格式化方法,其使用方式如下:\r\n
<模板字符串>.format(<逗號分隔的參數(shù)>)\r\n
其中,模板字符串是一個由字符串和槽組成的字符串,用來控制字符串和變量的顯示效果。槽用大括號({})表示,對應(yīng)format()方法中逗號分隔的參數(shù)。如果模板字符串中有多個槽,可以通過format()參數(shù)的序號在模板字符串槽中指定參數(shù)的使用,參數(shù)從0開始編號。例如:\r\n”{0}日:學(xué)而不思則罔,思而不學(xué){1}?!保甪ormat(”孔子”,”則殆”)\r\n
其結(jié)果為:’孔子日:學(xué)而不思則罔,思而不學(xué)則殆?!痋r\n
format()方法的槽除了包括參數(shù)序號,還可以包括格式控制信息,語法格式如下:\r\n
{<參數(shù)序號>:<格式控制標記>}\r\n其中,格式控制標記包括:<填充><對齊><寬度><,><.精度><類型>6個字段,由引導(dǎo)符號(:)作為引導(dǎo)標記,這些字段都是可選的,可以組合使用。\r\n
<填充>:指用于填充的單個字符。\r\n
<對齊>:分別使用<、>和^三個符號表示左對齊、右對齊和居中對齊。\r\n<寬度>:當前槽的設(shè)定輸出字符寬度。\r\n<,>:用于顯示數(shù)字類型的千位分隔符。\r\n
<.精度>:由小數(shù)點(.)開頭,對于浮點數(shù),精度表示小數(shù)部分輸出的有效位數(shù);對于字符串,精度表示輸出的最大長度。\r\n
<類型>:表示輸出整數(shù)和浮點數(shù)類型的格式規(guī)則。\r\n
本題格式要求為:寬度為25個字符,等號字符(=)填充,右對齊,帶千位分隔符。則模板字符串為:{:=>25,}。\r\n
由于題目要求帶千位分隔符,所以模板字符串對應(yīng)的:format()方法中的參數(shù)必須是數(shù)字類型,但無論用戶輸入的是字符還是數(shù)字,input()函數(shù)統(tǒng)一按照字符串類型輸出,這時就需要先使用eval()函數(shù)去掉字符串最外側(cè)的引號,然后再參與運算。
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.(1)L=[]\r\n
fo=open("score.txt","r")\r\n
fi=open("candidate0.txt","w")\r\n
lines=fo.readlines()\r\n
forlineinlines:\r\n
line=line.strip()\r\n
student=line.split('')\r\n
sum=0\r\n
foriinrange(1,11):\r\n
sum+=int(student[-i])\r\n
studene.append(str(sum))\r\n
L.append(student):\r\n
L.sort(key=lambda.x:x[一1],reverse=True)\r\nforiinrange(10):\r\nfi.write('',join(L[i][:-1])+'\\n')\r\nfo.close()\r\nfi.close()(2)'''\r\n輸入文件:candidate0.txt\r\n輸出文件:candidate.txt\r\n'''\r\nfo=open("candidate0.txt","r")\r\nfi=open("candlidate.txt","w")\r\nL=[]#存儲候選人\r\nlines=fo.readlines()\r\nforlineinlines:\r\n
line=line.strip()\r\n
student=line.split('')\r\n
foriinstudent[-10:]:\r\n
ifint(i)<60:\r\n
break\r\n
else:\r\n
I:append(student[:2])\r\nforiinL:\r\n
fi.write(''.join(i)+'\\n')\r\nfo.close()\r\nfi.close()(1)本題涉及”score.txt”和”candidate0.txt”兩個文件。首先要讀取”score.txt”文件中的信息,通過程序求出每個學(xué)生的總成績,然后按總成績從大到小排序,將總成績排名前10的學(xué)生的學(xué)號、姓名以及10門課成績寫入到”candidate0.txt”文件中。打開文件用open()函數(shù),用”r”只讀模式打開文件”score.txt”,用”w”模式創(chuàng)建文件”cand:idate0.txt”。\r\n
”score.txt”文件中每行為一個學(xué)生的信息,需要用readlines()函數(shù)讀入所有行,以每行為元素形成列表lines,然后用for循環(huán)遍歷該列表中的每個元素。在遍歷每個元素時,用strip()方法刪除元素首尾出現(xiàn)的空格,用split()方法以空格分隔學(xué)生的學(xué)號、姓名以及10門課成績得到列表student。由于要求出總成績,因此要使用for遍歷每個學(xué)生的10門課成績,將其累加賦值給sum,并將sum追加到student中。最后將student中所有元素追加到列表L中。\r\n
隨后,對列表L中的元素進行排序,用到sort()方法,參數(shù)”key=lambdax:x[一1]”中l(wèi)ambda是一個隱函數(shù),是固定寫法,不能寫成別的單詞;x表示列表中的一個元素,在這里表示一個列表(即一個學(xué)生的信息),x只是臨時起的一個名字,也可以使用任意的名字;x[一1]表示以列表中的最后一個元素(即總成績)排序。參數(shù)”reverse=True”表示按降序排序;若該參數(shù)缺省或”reverse=False”,表示按升序排序。\r\n
最后,通過for循環(huán)在列表L中提取出前10個元素(即前10名的學(xué)生信息,但不包含總成績),用空格分隔每個元素,并添加換行符,寫入到文件”candidate0.txt”中,再關(guān)閉所有文件。\r\n
(2)本題涉及”candidate0.txt”和”candidate.txt”兩個文件。首先要讀取”candidate0.txt”文件中的信息,通過程序判斷每個學(xué)生的所有課程成績是否都大于等于60,滿足條件的將該學(xué)生的學(xué)號和姓名寫入到”candidate.txt”文件中。打開文件用open()函數(shù),用”r”只讀模式打開文件”candidate0.txt”,用”w”模式創(chuàng)建文件”candidate.txt”,并定義一個列表L來存儲學(xué)號和姓名(做中轉(zhuǎn))。\r\n”candidate0.txt”文件中有10行數(shù)據(jù),需要用readlines()函數(shù)讀入所有行,以每行為元素形成列表lines,然后用for循環(huán)遍歷該列表中的每個元素。在遍歷每個元素時,用strip()方法刪除元素首尾的空格,用split()方法以空格分隔學(xué)生的學(xué)號、姓名以及10門課成績得到列表student。然后對列表student使用for循環(huán)遍歷,用來判斷10門課程的成績是否都大于等于60,滿足條件就將列表student中的前兩個元素(即學(xué)號和姓名)追加到列表L中。\r\n
最后,通過for循環(huán)提取列表L中的所有元素,用空格分隔每個元素,并添加換行符,寫入到文件”candidate.txt”中,再關(guān)閉所有文件。江蘇省南通市全國計算機等級考試Python語言程序設(shè)計學(xué)校:________班級:________姓名:________考號:________
一、單選題(30題)1.以下程序的輸出結(jié)果是()。list=[[0,1,2],“123.0”,“python”]a=all(list[0])b=list[1].split(“.”)c=ascii(list[2])print(a,b,c)
A.True[‘123’]‘python’
B.False['0']‘1’
C.True[‘123’,‘0’]‘1’
D.False[‘123’,‘0’]‘python’
2.以下代碼的輸出結(jié)果是()。print(0.1+0.2==0.3)
A.一1B.TrueC.FalseD.0
3.以下不屬于Python中異常處理結(jié)構(gòu)的是()。
A.try-except
B.try-except-if
C.try-except-else
D.try-except-finally
4.以下關(guān)于函數(shù)的定義與編寫的描述,錯誤的是()。
A.函數(shù)是代碼復(fù)用的一種方式
B.在Python中,使用關(guān)鍵字define定義函數(shù)
C.定義函數(shù)時,即使函數(shù)不需要接收任何參數(shù),也必須保留一對空括號來表示這是一個函數(shù)
D.編寫函數(shù)時,一般建議先對參數(shù)進行合法性檢查,然后再進行編寫
5.以下程序的輸出結(jié)果是()。ls=[12,44,23,46]foriinlsifi==‘44’:print(‘foundit!i=i’,i)breakelse:print(‘notfoundit…’)A.notfoundit…
B.foundit!i=44
C.foundit!i=44notfoundit…
D.foundit!i=‘44’notfoundit...
6.以下不是Python特點的是()。
A.執(zhí)行速度快B.語法簡潔C.支持中文D.生態(tài)豐富
7.一個類繼承另一個類,那么被繼承的這個類被稱為()。
A.超類B.子類C.類D.繼承類
8.以下代碼的輸出結(jié)果是()。CLis=list(range(5))print(5inCLis)
A.TrueB.FalseC.0D.一1
9.Python中用來表示代碼塊所屬關(guān)系的語法是()。
A.縮進B.圓括號C.方括號D.冒號
10.以下程序的輸出結(jié)果是()。deffun(x): try: returnx*4 except: returnxprint(fun(“5”))
A.20B.5555C.5D.9
11.time庫的time.time()函數(shù)的作用是()。
A.以數(shù)字形式返回當前系統(tǒng)時間
B.以字符串形式返回當前系統(tǒng)時間
C.以struct_time形式返回當前系統(tǒng)時間
D.根據(jù)format格式定義返回當前系統(tǒng)時間
12.設(shè)元素集合為D={1,2,3,4,5,6}。B=(D,R)為線性結(jié)構(gòu)所對應(yīng)的R是()。
A.R={(6,1),(5,6),(1,3),(2,4),(3,2)}
B.R={(4,5),(6,1),(5,6),(1,3),(2,4),(3,2)}
C.R={(6,1),(5,6),(1,3),(3,4),(3,2)}
D.R={(6,1),(5,6),(2,3),(2,4),(3,2)}
13.以下關(guān)于Python字符編碼的描述中,正確的是()。
A.Python字符編碼使用ASCII值存儲
B.chr(x)和ord(x)函數(shù)用于在單字符和Unicode值之間進行轉(zhuǎn)換
C.print(chr('a’))輸出97
D.print(ord(65))輸出A
14.下列關(guān)于Python中復(fù)數(shù)類型的描述錯誤的是()。
A.復(fù)數(shù)由實數(shù)部分和虛數(shù)部分構(gòu)成
B.復(fù)數(shù)可以看作二元有序?qū)崝?shù)對(a,b)
C.虛數(shù)部分必須有后綴j,且為小寫
D.復(fù)數(shù)中的虛數(shù)部分不能單獨存在,必須有實數(shù)部分
15.關(guān)于Python中is與==說法正確的是
A.is對比兩個變量指向是否為同一對象,==對比兩個變量指向?qū)ο笫欠駷橥?/p>
B.is對比兩個變量指向?qū)ο笫欠駷橥恢?==是對比兩個變量指向是否為同一對象
C.is與==除均可用于比較對象是否為同一對象外,==還可以用于比較對象的值
D.以上說法均不正確
1
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蟻走感的臨床護理
- 新質(zhì)生產(chǎn)力脈搏
- 土建技術(shù)負責人年終總結(jié)模版
- 人員行為規(guī)范培訓(xùn)
- 供水企業(yè)新質(zhì)生產(chǎn)力
- 2025股權(quán)贈與合同
- 鄂教版六年級語文上冊18單元知識總結(jié)模版
- 2025進口賣方借款合同范本
- 電腦銷售個人年度工作總結(jié)模版
- 2025年重陽節(jié)活動主題
- 2025年入團考試一覽無遺試題及答案
- 公司檔案及文件管理制度
- 2025年四川筠連縣國有資本投資運營有限公司招聘筆試參考題庫含答案解析
- 2024年貴州遵義公開招聘社區(qū)工作者考試試題答案解析
- 2025年全國低壓電工證(復(fù)審)考試筆試試題(300題)含答案
- 2025至2030中國注射用重組人腦利鈉肽行業(yè)運行態(tài)勢及未來趨勢研究報告
- 文言常識測試題及答案
- 入團考試測試題及答案
- 中班早期閱讀《跑跑鎮(zhèn)》課件
- 【語文試卷+答案 】上海市崇明區(qū)2025屆高三第二學(xué)期第二次模擬考試(崇明二模)
- Unit 4 第5課時 B learn學(xué)習(xí)任務(wù)單
評論
0/150
提交評論