一、選擇題
1.計算機完成一條指令所花費的時間稱為一個(? ? ?)。
A.執行時序
B.執行速度
C.執行速度
D.指令周期
答案? D? ?一般把計算機完成一條指令所花費發時間稱為一個指令周期。指令周期越短,指令執行就越快。
2.順序程序不具有(? ?)。
A.順序性
B.并發性
C.封閉性
D.可再現性
答案? B? 順序程序具有順序性、封閉性和可再現性的特點。使得程序設計者能夠控制程序執行的過程(包括執行順序、執行時間),對程序執行的中間結果和狀態可以預先估計,這樣就可以方便地進行程序的測試和調試。順序程序不具有并發性。并發性是并發程序的特點。
3.下面敘述中正確的是(? ?)
A.算法的復雜度與問題的規模無關
B.算法的優化主要通過程序的編制技巧來實現
C.對數據進行壓縮存儲會降低算法的空間復雜度
D.數值型算法只需考慮計算結果的可靠性
答案? C 為了降低算法的空間復雜度,主要應減少輸入數據所占的存儲空間以及額外空間,通常采用壓縮存儲技術,C選項正確。算法的計算工作量是用算法所執行的基本運算次數來度量的。
4. 設有一個棧與一個隊列的初始狀態均為空。現有一個序列?A,B,C,D,E,F,G,H。先分別將序列中的前4個元素依次入棧,后4個元素依次入隊;然后分別將棧中的元素依次退棧,再將隊列中的元素依次退隊。最后得到的序列為()。
A.A,B,C,D,E,F,G,H
B.A,B,C,D,H,G,F,E
C.D,C,B,A,H,G,F,E
D.D,C,B,A,E,F,G,H
答案 D? 棧按先進后出的原則組織數據,所以入棧最早的元素最后出棧。隊列按先進先出的原則組織數據,所以入隊最早的元素最先退隊。入棧的順序為A,B,C,D,則退棧的順序為D,C,B,A;入隊的順序為E,F,G,H,退隊的順序為E,F,G,H。答案為D。
5 .設某棵樹的度為3,其中度為3,2,1的結點個數分別為3,0,4。則該樹中的葉子結點數為()。
A.6
B.7
C.? 8
D、不可能有這樣的樹
答案? ?B假設葉子結點個數為n。這棵樹的總結點數為度為3的結點數+度為2的結點數+度為1的結點數+度為0的結點數,即為3+0+4+n。再根據樹的性質:樹的總的結點數為樹中所有結點的度數之和再加1,則總結點數為3x3+2x0+1x4+0xn+1。3x3+1x4+1=3+4+n,則n=7,葉子結點數為7。答案為B。
6.結構化程序設計強調(? ? )。
A.程序的效率
B.程序的規模
C.程序的易讀性
答案 C 結構化程序設計的目的:通過設計結構良好的程序,以程序靜態的良好的結構保證程序動態執行的正確性,使程序易理解、易調試、易維護,以提高軟件開發的效率,減少出錯率,所以結構化程序強調程序的易讀性。
7.下面不屬于系統軟件的是(? ? ?)。
A.殺毒軟件
B.操作軟件
C.編譯程序
D.數據庫管理系統
答案? A? ?系統軟件是管理計算機的資源,提高計算機的使用效率,為用戶提供各種服務的軟件,如操作系統、數據庫管理系統、編譯程序、匯編程序和網絡軟件等,B、C、D三項均屬于系統軟件,A屬于應用軟件。
8.在數據庫管理技術發展的三個階段中,沒有專門的軟件對數據進行管理的是(? ? ?)。
A.人工管理階段
B.文件系統階段
C.文件系統階段和數據庫階段
D.人工管理階段和文件系統階段
答案? A? ?數據庫管理技術的三個階段是人工管理階段、文件系統階段和數據庫系統階段。人工管理階段沒有專門的軟件對數據進行管理
9.建立表示學生選修課程互動的實體聯系模型,其中的兩個實體分別是(? ? ?)。
A.學生和學號
B.課程和成績
C.學生和課程
D.課程和課程號
答案? C? 在實體聯系模型中,實體是客觀存在并且可以相互區別的事物。在學生選修課程活動中,學生和課程是客觀存在并且可以相互區別的事物,課程號是課程的屬性,學號是學生的屬性,成績是學生和課程聯系的屬性。
10.定義學生選修課程的關系模式如下:SC(S#,Sn,C#,Cn,T#,G, Cr) (其屬性分別為學號、姓
名、課程號、課程名、授課老師號、成績、學分)并且一門課程可由多個教師教授,則該關
系的鍵是(? ? ?)。
A.S#,T#
B.S#,C#
C.S#
D.C#
答案? B? ? ?在關系SC中,想要唯一確定一行,需要學號"S#"和課程號"C#"。不管該課程的授課老師是誰,只要知道了學號和課程號,就能確定關系中的其他屬性。因此,該關系的鍵是"S#"和"C#"。
11.在Python語言中,不能作為變量名的是(? ? ? ? )。
A.student
B._bmg
C.5sp
D.Teacher
答案? C? 在Python中,變量名的命名規則:以字母或下劃線開頭,后面跟字母、下劃線和數字;不能以數字開頭
12.以下關于Python縮進描述中,錯誤的是(? ? ? )。
A.縮進表達了所屬關系和代碼塊的所屬范圍
B.縮進是可以嵌套的,從而形成多層縮進
C.判斷、循環、函數等都能夠通過縮進包含一批代碼
D.Python用嚴格的縮進表示程序的格式框架,所有代碼都需要在行前至少加一個空格
答案 D? ? ?縮進:在邏輯行首的空白(空格和制表符)用來決定邏輯行的縮進層次,從而用來決定語句的分組。這意味著同一層次的語句必須有相同的縮進,不是同一層次的語句不需要縮進。所以不是所有代碼行前都要加空格。本題選擇D選項。
13.以下代碼的輸出結果是(? ? ? ? ?)。
? ? x='R\0S\0T'
? ? print(len(x))?
A.3
B.5
C.7
D.6
答案 B? ?在Python中len()函數是輸出字符串長度,x='R\OS\OT',分別有R、\0、S、\0和T5個字符,所以len(x)=5,print(len(x))是將5打印出來。這里要注意,Python中len()函數遇見'\0'不結束,'\0'算是一個轉義字符。本題選B。
14.以下關于Python語言技術特點的描述中,錯誤的是()。
A.對于需要更高執行速度的功能,例如數值計算和動畫,Python語言可以調用C語言編寫的底層代碼
B.Python比大部分編程語言具有更高的軟件開發產量和簡潔性
C.Python語言是解釋執行的,因此執行速度比編譯型語言慢
D.Python是腳本語言,主要用作系統編程和Web訪問的開發語言
答案? D? ?Python 是一種解釋型高級通用腳本語言,具有通用性,可以用于幾乎任何與程序設計相關應用的開發。主要應用于以下幾個領域: Web開發,爬蟲開發,科學計算,高性能服務器后端,開發界面程序,QT也提供了Python的支持,因為Python的開源庫包含了對C/C++ lib庫的用。主要二字太過絕對,因此D選項錯誤。
15.以下代碼的輸出結果是()。
x=12+3*((5*8)-14)//6
print(x)
A.25.0
B.65
C.25
D.24
答案 C? 在Python中算術運算符"//"來表示整數除法,返回不大于結果的一個最大的整數,而"/"則單純的表示浮點數除法,返回浮點結果。所以先計算5*8=40,40-14=26,26*378,78//6=13,1213=25。本題選擇C選項。
16.以下關于Python循環結構的描述中,錯誤的是(? ? ? )
A.break用來結束當前當次語句,但不跳出當前的循環體
B.遍歷循環中的遍歷結構可以是字符串、文件、組合數據類型和range()函數等
C.Python通過for、while等保留字構建循環結構
D.continue只結束本次循環
答案? ?A 在Python中,break意為結束循環,continue是結束當前循環進入下一個循環。本題選擇A選項。
17.以下構成Python循環結構的方法中,正確的是(? ? ? )。
A.while
B.loop
C.if
D.do...for
答案 A? Python中的循環結構有for語句和while語句。if是選擇結構語句。本題選擇A 選項。
18.以下代碼繪制的圖形是()。
import turtle as t
for i in range(1,7):
t.fd(50)
t.left(60)
A.正方形
B.六邊形
C.三角形
D.五角星
答案? ?B?
19.以下關于Python語言的描述中,正確的是(? ? ?)。
A.條件4<=5<=6是合法的,輸出False
B.條件4<=5<=6是不合法的
C.條件4<=5<=6是合法的,輸出True
D.條件4<=5<=6是不合法的,拋出異常
答案? ? C? ?判斷條件4<=5<=6是成立的,故輸出True。本題選擇C選項。
20.以下代碼的輸出結果是(? ? ? ?)
for i in range(1,6):
if i%4== 0:
continue
else:
print(i,end=",)
A.1,2,3,
B.1,2,3,4,
C.1,2,3,5,
D.1,2,3,5,6
答案? ? C【解析】for循環依次將1~5賦給i,i從1,2,3,4,5依次變化,當i%4==0時,結束本次循環
進入下一循環;反之輸出i的值,故輸出結果為:1,2,3,5, 。本題選擇C選項。
21.以下代碼的輸出結果是(? ? ?)。
t=10.5
def above_zero(t):
return t>0
A.True
B.Flase
C.10.5
D.沒有輸出
答案 D【解析】在Python語言中,return語句用來結束函數并將程序返回到函數被調用的位置繼續執行。return語句可以出現在函數中的任何部分,可以同時將0個、1個或多個函數運算結果返回給函數被調用處的變量。函數可以沒有return,此時函數并不返回值。return返回的是值而不是表達式,且此段語句并未調用函數,故程序無輸出。本題選擇D選項。
22.以下關于Python語言的描述中,正確的是()
A.函數中return語句只能放在函數定義的最后面
B.定義函數需要使用保留字def
C.使用函數最主要的作用是復用代碼
D.Python函數不可以定義在分支或循環語句的內部
答案? B【解析】函數定義:函數是指一組語句的集合通過一個名字(函數名)封裝起來,要想執行這個函數,只需要調用其函數名即可。函數主要的作用是提高應用的模塊性和代碼的重復利用率。C項錯誤。return語句用來結束函數并將程序返回到函數被調用的位置繼續執行。return語句可以出現在函數中的任何部分,可以同時將0個、1個或多個函數運算結果返回給函數被調用處的變量。A項錯誤。在Python語言中,函數可以定義在分支或循環語句的內部,D項錯誤。Python語言通過保留字def定義函數,定義語法如下:
def <函數名>(<非可選參數列表>,<可選
參數>=<默認值>):
? ? ? ? ? ? ? ?<函數體>
? ?return <返回值列表>
可選參數一般都放置在非可選參數的后面。本題選擇B選項。
23.以下代碼的輸出結果是()。
def young(age):
if 25 <= age <= 30:
print("作為一個老師,你很年輕")
elif age <25:
print("作為一個老師,你太年輕
了")
elif age >= 60:
print("作為一個老師,你可以退
休了")
else:
print("作為一個老師,你很有愛
心")
young(42)
A.作為一個老師,你很年輕
B.作為一個老師,你太年輕了
C.作為一個老師,你可以退休了
D.作為一個老師,你很有愛心
答案? D【解析】將實參42傳遞給函數形參變量age,之后進入多分支結構,依次判斷,因為3
0<42<60,故執行else后面的語句,即輸出"作為一個老師,你很有愛心"。本題選擇D選項。
24.以下代碼的輸出結果是
def fibRate(n):
if n<=0:
return-1
elif n==1:
return-1
elif n==2:
return 1
else:
L=[1,5]
for i in range(2,n):
L.append(L[-1]+L[-2])
return L[-2]%L[-1]
print(fibRate(7))
A.0.6
B.28
C.-1
D.1
B【解析】將7傳遞給函數形參變量n,之后進入多分支結構,依次判斷后,執行else后面的語句。for語句為:for i in range(2,7),i從2依次變化到6,循環5次,將L[-1]+L[-2]的值通過append()方法加入到列表L中。當i=2時,L[-1]+L[-2]=5+1=6,將6添加到列表L中,此時L=[1,5,6];當i=3時,L[-1]+L[-2]=6+5=11,將11添加到列表L中,此時L=[1,5,6,11];當i=4時,L[-1]+L[-2]=11+6=17,將17
添加到列表L中,此時L=[1,5,6,11,17];當i=5時,L[-1]+L[-2]=17+11=28,將28添加到列表L中,此時L=[1,5,6,11,17,28];當i=6時,L[-1]+L[-2]=28+17=45,將45添加到列表L中,此時L=[1,5,6,11,17,28,45]。最后L[-2]%L[-1]=28%45=28,故程序輸
出28。本題選擇B選項。
25.以下關于函數返回值的描述中,正確的是(? ?)
A.Python函數的返回值使用很靈活,可以沒有返回值,可以有一個或多個返回值
B.函數定義中最多含有一個return語句
C.在函數定義中使用return語句時,至少給一個返回值
D.函數只能通過print語句和return語句給
A 【解析】在Python語言中,return語句用來結束函數并將程序返回到函數被調用的位置繼續執行。return語句可以出現在函數中的任何部分,可以同時將0個、1個或多個函數運算結果返回給函數被調用處的變量。函數可以沒有return,此時函數并不返回值。當函數使用return返回多個值時,這些值形成了一個元組數據類型,由小括號和逗號分隔,如(a,b,c),可以使用一個變量或多個變量保存結果。本題選擇A選項。
26.以下代碼的輸出結果是()。
def Hello(famlyName,age):
if age > 50:
print("您好!"+famlyName+"奶奶")
elif age > 40:
print("您好!"+famlyName+"阿姨")
elif age > 30:
prin("您好!"+famlyName+"姐姐")
else:
print("您好!"+"小"+famlyName)
Hello(age=43, famlyName="趙")
A.您好!趙奶奶
B.您好!趙阿姨
C .您好!趙姐姐
D.函數調用出錯
B【解析】將實參age=43,famlyName="趙"分別賦給形參age和famlyName,之后進入多分支結構進行判斷,因為40<age=43<50,執行第一個elif后面的語句,用"+"進行字符串連接,故輸出"您好!趙阿姨"。本題選擇B
27.以下代碼的輸出結果是()。
ls=[[1,2,3],'python',[[4,5,ABC'],6],[7,8]]print(ls[2][1])
A.'ABC'
B.p
C.4
D.9
D 【解析】列表索引序號從0開始,所以ls [2][]是表序素序為1的素,輸出結果是6。本題選擇D選項。
28??以下代碼的輸出結果是()。
ls = ["2020", "1903", "Python"]
Is.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, [2020, '2020']]
D.['2020', '1903', 'Python', 2050, ['2020']]
C【解析】要向列表中添加元素,可以使
用append()方法,添加的元素類型可以不同,
可以是數字、字符串、列表等。要注意的是ap
pend()方法不能同時添加多個元素。本題選擇
C選項。
29.以下代碼的輸出結果是()。
d ={"大海":"藍色","天空":"灰色","大
地":"黑色"}
print(d["大地"], d.get("天空","黃色"))
A.黑色 黑色
B.黑色 灰色
C.黑色 黃色
D.黑色 藍色
B 【解析】在Python中,字典是存儲可變數量鍵值對的數據結構,通過字典類型實現映射。字典使用大括號{}建立,每個元素是一個鍵值對,使用方式:{<鍵1>:<值1>,<鍵2>:<值2>,...,<鍵n>:<值n>},其中,鍵和值通過冒號連接,不同鍵值對通過逗號隔開。字典具有和集合類似的性質,即鍵值對之間沒有順序且不能重復。d['鍵']獲取鍵對應的值,d.get(key,default)方法是用來返回key對應的值,如果字典中不存在該鍵,則返回默認值。本題選擇B選項。
30.以下選項,正確的是(? ? )。
A.序列類型是一維元素向量,元素之間存在先后關系,通過序號訪問
B.序列類型可以分為3類:字符串、字典和列表
C.表示單一數據的類型被稱為組合數據類型
D.Python的str、dict、tuple和list類型都屬于序列類型
A【解析】序列類型是一維元素向量,元素之間存在先后關系,通過序號訪問。Python語言中有很多數據類型是序列類型,其中比較重要的是字符串類型、列表類型和元類型。字典是存儲可變數量值對的數據結構,通過字典類型實現映射。所以字典是映射類型,不是序列類型。B、D兩項錯誤表示不同數據的類型被稱為組合數據類型,C項錯誤。本題選擇A選項。
31.以下代碼的輸出結果是()。
d=}
for i in range(26):
d[chr(i+ord("A"))] = chr((i+13) % 2
6 + ord("A"))
for c in "Python":
print(d.get(c, c), end=")
A.Plguba
B.Cabugl
C.Python
D. Cython
D【解析】ord()函數是把字符轉換成對應的ASCII碼,chr()函數是ord()函數的逆運算,把ASCII碼轉換成對應的字符輸出,所以ord("A")為65。第一個for循環的作用是生成鍵值對存儲在字典變量d中。例如,當i=0, d[A]=N;i=1,d[B]=O …一直到i=13,d[N]=A,后面的鍵和值與前面的是互換位置的,如i=14,d[O]=B;i=15,d[P]=C…。依次循環賦值,直到i=25時結束for循環。第二個for循環的作用是輸出字典的值,get(key,default=None)函數有兩個參數:第一個參數是字典的鍵,第二個參數是默認值,作用是返回字典中key對應的值,如果key不存在,則返回默認值,如d={"A":"N","O":"B","Z":"M"},d.get("A","C")返回的是N。當c="P"時,去字典中查找是否存在鍵為"P"的值,遍歷后存在,所以返回C,for循環繼續遍歷剩下的字符,在字典中找不到對應的鍵,則返回默認值,所以結果返回為Cython。本題選擇D選項。
32.以下關于Python二維數據的描述中,錯誤的是(? ? ? )。
A.CSV文件的每一行是一維數據,可以用列表、元組表示
B.從CSV文件獲得數據內容后,可以用replace()來去掉每行最后的換行符
C.若一個列表變量里的元素都是字符串類型,則可以用join()合成字符串
D.列表中保存的二維數據,可以通過循環用writelines()寫入CSV文件
D 【解析】在Python語言中,writelines()方法是將一個元素為字符串的列表整體寫入文件; write()方法是向文件寫入一個字符串或字節流,每次寫入后,將會記錄一個寫入指針。二維列表對象輸出為CSV格式文件采用遍歷循環和字符串的join()方法相結合,方法如下:#Is代表二維列表,此處省略
f=open("cpi.csv","w")
for row in ls:
f.write(","join(row)+"n")
f.close()
本題選擇D選項。
33.以下關于文件的描述中,錯誤的是(? ? )。
A.文件是存儲在輔助存儲器上的一組數據序列,可以包含任何數據內容
B.可以使用open()打開文件,用close()關閉文件
C.使用read()可以從文件中讀入全部文本
D.使用readlines()可以從文件中讀入一行文本
D【解析】文件是存儲在輔助存儲器上的一組數據序列,可以包含任何數據內容。A項正確。可以使用open()打開文件,用close()關閉文件,B項正確。在Python語言中,文件讀取方法有(設f代表文件變量):
f.read():從文件中讀入整個文件內容。
f.readline():從文件中讀入一行內容。
f.readlines():從文件中讀入所有行,以
每行為元素形成一個列表。
f.seek():改變當前文件操作指針的位置。
C項正確。本題選擇D選項。
34.?以下關于文件的描述中,正確的是(? ? ?)。
A.使用open()打開文件時,必須要用r或w指定打開方式,不能省略
B.采用readlines()可以讀入文件中的全部文本,返回一個列表
C.文件打開后,可以用write()控制對文件內容的讀寫位置
D.如果沒有采用close()關閉文件,Python程序退出時文件將不會自動關閉
B【解析】使用open()打開文件時,省略打開模式,會默認只讀方式打開;文件打開后,可以用seek()方法控制對文件內容的讀寫位置,write()方法只是向文件寫入一個字符串或者是字節流;如果沒有采用close()關閉文件,程序退出時一般會自動關閉,但有可能會導致數據丟失。本題選擇B選項。
35.以下不屬于Python文件操作方法的是()。
A.read()
B.write()
C.join()
D.readline()
C【解析】Python文件讀取方法有:f.read(、f.readline(、f.readlines(、f.seek(),Pyth on文件寫入方法有:f.write()、f.writelines()。本題選擇C選項。
36.以下關于數據組織的描述中,錯誤的是(? ? ?).
A.一維數據采用線性方式組織,可以用Python集合或列表類型表示
B.列表類型僅用于表示一維和二維據
C.二維數據采用表格方式組織,可以用Python列表類型表示
D.更高維數據組織由鍵值對類型的數據構成,可以用Python字典類型表示
A 【解析】一維數據采用線性方式組織,在Python語言中主要采用列表形式表示,集合不屬于線性結構。二維數據采用二維表格方式組織,在Python語言中可以采用二維列表形式表示高維數據由鍵值對類型的數據構成,采用對象方式組織,在Python語言中可以采用字典類型表示。在Python中,列表類型僅用于表示一維和二維數據。本題選擇A選項。
37.文件exam.txt與以下代碼在同一目錄下,其內容是一段文本: bigBen,以下代碼的輸出結果
是()。
f= open("exam.txt")
print(f)
f.close()
A.bigBen
B. exam.txt
C.<_io.TextlOWrapper...>
D. exam
C 【解析】open()函數打開一個文件,并返回可以操作這個文件的變量f,并且open()函數有兩個參數:文件名和打開模式。本題只是打開了文件,并沒有對文件進行操作,因此不會輸出文件的內容。print(f)語句輸出的是變量f代表的文件的相關信息:<_io.TextlOWrapper name='exam.txt' mode='r' encoding='cp936'>。若想要輸出文件的內容,需要把文件的內容讀入,如f1 = f.read()。本題選擇C選項。
38.不屬于Python開發用戶界面第三方庫的是(? ? ?)
A.PyGObject
B. PyQt
C.time
D.PyGTK
C【解析】PyQt(QT開發庫)、PyGObje ct和PyGTK(GTK+庫)均是Python開發用戶界面的第三方庫。而time庫是Python提供的處理時間標準庫。本題選擇C選項。
39.不屬于Python數據分析及可視化處理第三方庫的是(? ? ?)。
A.seaborn
B.random
C.mayavi2
D.nump
B【解析】屬于Python數據分析及可視化的第三方數據庫的有:numpy、scipy、panda s、matplotlib、TVTK、mayavi(也稱mayavi 2)等。random庫是Python語言用于產生各種分布的偽隨機數序列的庫。本題選擇B選項。
40.屬于Python用于Web開發第三方庫的是(? ? ? ?)。
A.pygame
B.scipy
C.pdfminer
D.pyramid
D 【解析】屬于Web開發方向的Python第三方生態庫有:Django、Pyramid、Flask等。Pygame屬于游戲開發方向,scipy屬于數據分析方向,pdfminer屬于文本處理方向。本題選擇D選項。
二、基本操作
41.?考生文件夾下存在一個文件PY101.py,請寫代碼替換橫線,不修改其他代碼,實現以下功
能:
鍵盤輸入字符串s,按要求把s輸出到屏幕,格式要求:寬度為30個字符,星號字符*填充,居中對齊。如果輸入字符串超過30位,則全部輸出。
例如:鍵盤輸入字符串s為"Congratulations", 屏幕輸出 *******?Congratulations********
42.考生文件夾下存在一個文件PY102.py,請寫代碼替換橫線,不修改其他代碼,實現以下功能:
根據斐波那契數列的定義,F(0)=0,F(1)=1,F (n)=F(n-1)+F(n-2)(n>=2),輸出不大于50的序列元素。
例如:屏幕輸出實例為:0,1,1,2,3,……(略)
43.考生文件夾下存在一個文件PY103.py,請寫代碼替換橫線,不修改其他代碼,實現以下功
能:
鍵盤輸入一句話,用jieba分詞后,將切分的詞組按照在原話中逆序輸出到屏幕上,詞組中間
沒有空格。示例如下:
輸入:
我愛老師
輸出:
老師愛我
44.考生文件夾下存在一個文件PY201.py,請寫代碼替換橫線,不修改其他代碼,實現以下功
能:
使用turtle庫的turtle.fd()函數和turtle.seth()函數繪制一個邊長為100的三角形,效果如下圖
所示。
45.考生文件夾下存在一個文件PY202.py,該文件是本題目的代碼提示框架,其中代碼可以任
意修改。請在該文件中編寫代碼,以實現如下功能:
鍵盤輸入一組水果名稱并以空格分隔,共一行。示例格式如下:
蘋果芒果 草莓芒果 蘋果 草莓芒果香蕉 芒果草莓
統計各類型的數量,從數量多到少的順序輸出類型及對應數量,以英文冒號分隔,每個類型
一行。輸出結果保存在考生文件夾下,命名為"PY202.txt"。輸出參考格式如下:
芒果:4
草莓:3
蘋果:2
香蕉:1
46.考生文件夾下存在3個Python源文件,分別對應3個問題;1個文本文件,作為本題目輸入數
據,請按照源文件內部說明修改代碼,實現以下功能:
《賣火柴的小女孩》是丹麥童話故事作家安徒生的一篇童話故事,發表于1846年。主要講
了一個賣火柴的小女孩在富人闔家歡樂、舉杯共慶的大年夜凍死在街頭的故事。這里給出《賣火柴的小女孩》的一個網絡版本文件,文件名為"小女孩.txt"。
問題1(5分):在PY301-1.py文件中修改代碼,對"小女孩.txt"文件進行字符頻次統計,輸出頻次最高的中文字符(不包含標點符號)及其頻次,將輸出結果保存在考生文件夾下,命名為"PY301-1.txt"。字符與頻次之間采用英文冒號":"分隔,示例格式如下:
的:83
問題2(5分):在PY301-2.py文件中修改代
碼,對"小女孩.txt"文件進行字符頻次統計◇
按照頻次由高到低,輸出前10個頻次最高的字符,不包含回車符,字符之間無間隔,連續輸出,將輸出結果保存在考生文件夾下,命名為"PY301-2.txt"。示例格式如下:,的一…(后略,共10個字符)
問題3(10分):在PY301-3.py文件中修改代碼,對"小女孩.txt"文件進行字符頻次統計,
將所有字符按照頻次從高到低排序,字符包括中文、標點、英文等符號,但不包含空格和回
車。將排序后的字符及頻次輸出到考生文件夾下,文件名為"小女孩﹣頻次排序.txt"。字符與
頻次之間采用英文冒號":"分隔,各字符之間采用英文逗號","分隔,參考CSV格式,最后無逗號,文件內部示例格式如下:
著:30,那:29,火:29