甘肅省隴南市全國計算機等級考試Python語言程序設計預測試題(含答案)_第1頁
甘肅省隴南市全國計算機等級考試Python語言程序設計預測試題(含答案)_第2頁
甘肅省隴南市全國計算機等級考試Python語言程序設計預測試題(含答案)_第3頁
甘肅省隴南市全國計算機等級考試Python語言程序設計預測試題(含答案)_第4頁
甘肅省隴南市全國計算機等級考試Python語言程序設計預測試題(含答案)_第5頁
已閱讀5頁,還剩18頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

甘肅省隴南市全國計算機等級考試Python語言程序設計預測試題(含答案)學校:________班級:________姓名:________考號:________

一、單選題(30題)1.下面不屬于面向對象的特點是()。

A.封裝B.多態C.性能高D.繼承

2.以下程序的輸出結果是()。a=10b=1try:c=b//(b/a)print(c)except(IOError,ZeroDivisionError):print(“calculationerror”)else:print(“noerror”)A.calculationerrorB.noerrorC.10.0D.9.0

3.以下代碼的輸出結果是()。forsin”grandfather”:ifs==”d”.ors==’h’:continueprint(s,end=”)

A.grandfatherB.granfaterC.grandD.father

4.以下保留字不屬于分支結構的是()。

A.ifB.elseC.whileD.elif

5.字符串tstr=’television’,顯示結果為vi的選項是()。

A.pxint(tstr[4:7])

B.ptint(tstr[5:7])

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

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

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

A.6B.6inTest_listC.TrueD.False

7..Python語言中用來表示代碼塊所屬關系的語法是()。

A.縮進B.括號C.中括號D.冒號

8.以下關于數據組織的描述中,錯誤的是()。

A.—維數據采用線性方式組織,可以用Python集合或列表表示

B.列表僅用于表示一維和二維數據

C.二維數據采用表格方式組織,可以用Python列表表示

D.更高維數據由鍵值對類型的數據構成,可以用Python字典表示

9.下面關于Python中函數參數的說法錯誤的是()。

A.在函數定義時必須固定參數的數量

B.使用位置參數傳參時實參的數量和順序必須和函數聲明時的參數一樣

C.若是參數有默認值,在調用函數時沒有給參數賦值,調用的函數就會使用這個默認值

D.關鍵字參數傳參是指在調用函數時通過參數名傳遞值

10.以下不是Python文件讀寫方法的是()。

A.writelineB.readlineC.readD.write

11.以下不屬于Python控制結構的是()。

A.順序結構B.循環結構C.分支結構D.數據結構

12.以下代碼的輸出結果是()。test={“age”:”18”,”score”:“[89,95]”,”name”:”Hawking”}print(test[“score”],test.get(“name”,“Rose”))A.89,95Hawking

B.[89,95]Hawking

C.[89,95]Rose

D.[89,95]name

13.以下關于函數的定義與編寫的描述,錯誤的是()。

A.函數是代碼復用的一種方式

B.在Python中,使用關鍵字define定義函數

C.定義函數時,即使函數不需要接收任何參數,也必須保留空的圓括號來表示這是一個函數

D.編寫函數時,一般建議先對參數進行合法性檢查,然后再進行編寫

14.下列敘述中正確的是()。A.線性表的鏈式存儲結構與順序存儲結構所需要的存儲空間是相同的

B.線性表的鏈式存儲結構所需要的存儲空間一般要多于順序存儲結構

C.線性表的鏈式存儲結構所需要的存儲空間一般要少于順序存儲結構

D.線性表的鏈式存儲結構與順序存儲結構在存儲空間的需求上沒有可比性

15.在Python語言中,能夠處理圖像的第三方庫是()。

A.pyinstallerB.pyserialC.pygameD.PIL

16.以下程序的意義是()。>>>car=‘BWM’>>>id(car)

A.查看變量所占的位數B.轉換成布爾值C.查看變量在內存中的地址D.把變量中的元素隨機排列

17.在Python中,屬于Web開發的第三方庫是()。

A.mayaviB.flaskC.PyQt5D.time

18.樹的度為3,共有29個節點,但沒有度為1和2的節點。則該樹中葉子節點數為()。

A.0B.9C.18D.不可能有這樣的樹

19.假設現在是2018年10月1日的下午兩點20分7秒,則下面代碼的輸出結果為()。Importtimeprint(time.strftime(“%y-%M-%d@H-%S”time.gmtime()))

A.2018-10-1@14-20-7

B.2018-10-1@14-20-07

C.2018-10-01@14-20-07

D.True@True

20.以下關于“for<循環變量>in<循環結構>”的描述,錯誤的是()。

A.<循環結構>采用[1,2,3]和[‘1’,‘2’,‘3’]的時候,循環的次數是一樣的

B.這個循環體語句中不能有break語句,會影響循環次數

C.使用range(a,b)函數指定for循環的循環變量取值是從a到b-1

D.foriinrange(1,10,2)表示循環5次,i的值是從1到9的奇數

21.下列不屬于處理Python中字典的方法的是()。

A.pop()B.replace()C.get()D.popitem()

22.下面代碼的輸出結果是()。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.”1,3,5,7”

23.以下程序的輸出結果是()。sum=1foriinrange(1,11):sum+=iprint(sum)

A.1B.56C.67D.56.0

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

25.以下程序的輸出結果是()。d={‘food’:{‘cake’:1,‘egg’:5}}print(d.get(‘egg’,‘nothisfood’))

A.eggB.1C.foodD.nothisfood

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

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

27.關于函數定義,以下形式錯誤的是()。

A.deffoo(*a,b)

B.deffoo(a,b=10)

C.deffoo(a,*b)

D.deffoo(a,b)

28.用鍵盤輸入數字5,以下代碼的輸出結果是()。n=eval(input("請輸入一個整數:"))s=0ifn>=5:n-=1s=4ifn<5:n-=1s=3print(s)

A.4B.3C.0D.2

29.以下程序的輸出結果是()。t=”theWorldisSObig.Iwanttosee”S=t[20:21]+’love’+t[:9]print(S)

A.Ilovethe

B.IloveWodd

C.IlovetheWorld

D.IlovetheWod

30.下面敘述中錯誤的是()。

A.軟件測試的目的是發現錯誤并改正錯誤

B.對被調試的程序進行“錯誤定位”是程序調試的必要步驟

C.程序調試通常也稱為Debug

D.軟件測試應嚴格執行測試計劃,排除測試的隨意性

二、判斷題(10題)31.在Python中定義類時,如果某個成員名稱前有2個下劃線則表示是私有成員。A.是B.否

32.調用函數時,在實參前面加一個型號*表示序列解包。

A.是B.否

33.Python2.x和Python3.x中input()函數的返回值都是字符串。

A.是B.否

34.在函數內部沒有任何聲明的情況下直接為某個變量賦值,這個變量一定是函數內部的局部變量。

A.是B.否

35.Python列表、元組、字符串都屬于有序序列。

A.是B.否

36.在GBK和CP936編碼中一個漢字需要2個字節。

A.是B.否

37.二進制文件也可以使用記事本或其他文本編輯器打開,但是一般來說無法正常查看其中的內容。

A.是B.否

38.在Python3.5中運算符+不僅可以實現數值的相加、字符串連接,還可以實現列表、元組的合并和集合的并集運算。

A.是B.否

39.異常處理結構中的finally塊中代碼仍然有可能出錯從而再次引發異常。

A.是B.否

40.安裝Python擴展庫時只能使用pip工具在線安裝,如果安裝不成功就沒有別的辦法了。

A.是B.否

三、填空題(10題)41.列表、元組、字符串是Python的_________(有序?無序)序列。

42.表達式3and5的值為____________。

43.表達式type(3.0)in(int,float,complex)的值為____________。

44.假設math標準庫已導入,那么表達式eval('math.sqrt(4)')的值為_________。

45.表達式'abcab'.strip('ab')的值為__________。

46.Python內置函數()用來返回序列中的最小元素。

47.代碼print(1,2,3,sep=':')的執行結果為__________________。

48.表達式set([1,2,2,3])=={1,2,3}的值為____________。

49.假設列表對象x=[1,1,1],那么表達式id(x[0])==id(x[2])的值為_____________。

50.可以使用內置函數___________________查看包含當前作用域內所有局部變量和值的字典。

四、操作題(3題)51.考生文件夾下存在兩個Python源文件,分別對應兩個問題,請按照文件內說明修改代碼,實現以下功能:馬和駱駝都是哺乳動物的一種,它們都有四只腳,體型也差不多大,作為現實世界中的一個類生物,我們將在這里為它們編寫屬于它們各自的類。

問題1:在PY301一1.py文件中修改代碼,代碼中編寫了一個馬(Home)的類,在這個類中馬有三個屬性,分別是年齡(age)、品種(category)和性別(gender)。在每創建一個馬的對象時,我們需要為其指定它的年齡、品種和性別。該類中還編寫一個get_deseriptive()方法,能夠打印出馬的這三個屬性。每一匹馬都有自己的最快速度,所以類中有一個speed()方法,可以打印出馬的最快速度值。并且在馬的生命過程中,它的速度一直在變,類中還有一個update_speed()方法用來更新馬當前的最快速度值。

例如:一匹12歲的阿拉伯公馬,在草原上奔跑的速度為50km/h,要求調用get_descriptive()和update_speed()方法,將輸出的結果保存在考生文件夾下,文件命名為“PY301—1.txt”。

試題程序:

#以下代碼為提示框架

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

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

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

fo=open(“PY301—1.txt”,”W”)______Horse():

def______(self,category,gender,age):

defget_descriptive(self):

info=’thishorseis’+_____+’yearsold,’+’itscategoryis’+_+’,’+’itsfenderis’+_______+’.’

fo.write(info+“\n”)

defupdate_speed(self,new_speed):________

fo.write(’thespeedofthishorseis’+str(self.horse_speed)+”km/h.”)

fo.close()

問題2:在PY301—2.py文件中修改代碼,該代碼編寫了一個駱駝類(Camel),這個類繼承自上一個文件中的馬類但是不對馬類中的屬性和方法進行操作。因為每個駱駝的駝峰數量不一致,我們在類中添加駝峰數目這個新屬性,并且添加一個打印出駱駝駝峰數量的方法。

例如:一個雙峰駝20歲的母駱駝以每小時40千米的速度奔跑在沙漠中,調用父類的方法和Camel類本身的方法將結果保存在“PY301—2.txt”中,保存在考生文件夾下。試題程序:#以下代碼為提示框架#請在…處使用一行或多行代碼替換

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

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

fo=open(”PY301—2.txt”,”W”)

________Horse():

def_______(self,category,gender,age):

defget_descriptive(self):

info=’thishorseis’+________+’yearsold,’+’itscategoryis’+_______+’,’+’itsfendemis’+_______+’.’

fo.write(info+"\n")

defupdate_speed(self,new_speed):

________fo.write(’thespeedofthishorseis’+str(self.horse_speed)+”km/h.\n”)clasSCamel(Horse):

def__init__(self,category,gender,age):

______.__init__(category,gender,age)

self.hump_size=2defdescribe_hump_size(self):

fo.write(’thiscamelhas’+str(self.hump_size)+’hump.’)

fo.close()

52.考生文件夾下存在一個文件“PY102.py”,請寫代碼替換橫線,不修改其他代碼,實現以下功能。使用jieba庫,把題目給出的文本進行分詞,并將分詞后的結果輸出。試題程序:#請在_____處使用一行代碼或表達式替換#注意:請不要修改其他已給出代碼_____(1)_____s="一件事情沒有做過,就沒有資格對此事發表看法"Is=_____(2)____print(Is)

53.考生文件夾下存在一個文件PY101.py,請寫代碼替換橫線,不修改其他代碼,實現以下功能:

鍵盤輸入正整數n,按要求把n輸出到屏幕,格式要求:寬度為25個字符,等號字符(=)填充,右對齊,帶千位分隔符。如果輸入正整數超過25位,則按照真實長度輸出。

例如:鍵盤輸入正整數n為1234,屏幕輸出===================1,234

試題程序:

#請完善如下代碼

s=input()

print(”{________(1)_________}”.format(________(2)_________))

參考答案

1.CA、B、D三個選項都是面向對象編程的特點,而C選項則是面向過程的優點,因為面向對象是類調用需要實例化,開銷比較大,比較消耗資源,所以面向過程的性能會比面向對象高。

2.D只有當程序未引發異常順利執行完try中的代碼后,else語句塊內的代碼才會執行。本題中,try中無異常,輸出變量c的值,再執行else中的代碼。本題選擇D選項。

3.Bfor循環將字符串”grandfather。”中的字符依次賦給變量s,當s==”d”或s==”h”時,結束本次循環,不執行print(s,end=”);反之,執行print(s,end=“)。故輸出結果為granfater。本題選B選項。

4.Cwhile屬于循環結構。

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

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

7.A“縮進”在Python語言中用于表示代碼塊所屬關系。

8.A一維數據采用線性方式組織,在Python中主要采用列表表示,集合不屬于線性結構。二維數據采用二維列表方式組織,在Python中可以采用二維列表表示。高維數據由鍵值對類型的數據構成,釆用對象方式組織,在Python中可以采用字典類型表示。在Python中,列表類型僅用于表示一維和二維數據。本題選擇A選項。

9.A在Python中,在函數定義時是可以設計可變數量參數的,通過在參數前加星號(*)實現。可變參數在定義時只有兩種變現形式:*param和**param,前者表示可以接受多個位置參數收集的實參組成一個元組,后者表示可以接收多個關鍵字參數收集的實參名和值組成一個字典。

10.APython文件的讀寫方法有(file表示使用open函數創建的對象):\nfile.read([size]):參數可選,若未給定參數或參數為負則讀取整個文件內容;若給出參數,則讀取前size長度的字符串或字節流。\nfile.readline([size]):參數可選,若未給定參數或參數為負則讀取一行內容;若給出參數,則讀取該行前size長度的字符串或字節流。\nfile.readlines([hint]):參數可選,若未給定參數或參數為負則從文件中讀取所有行,以每行為元素形成一個列表;若給出參數,則讀取hint行。\nfile.write(str):將字符串或字節流寫入文件。\nfile.writelines(1ines):向文件寫入一個序列字符串列表。

11.DPython控制結構包括順序結構、循環結構及分支結構。本題選擇D選項。

12.Bscore鍵對應的值是列表類型[89,95],字典的get(key,default)方法在key鍵存在時返回對應值,否則返回默認值default。name鍵存在于字典中,所以返回的是對應值而不是默認值。本題選擇B選項。

13.B在Python中,使用關鍵字def定義函數。本題選擇B選項。

14.B線性鏈式存儲結構中每個結點都由數據域與指針域兩部分組成,增加了存儲空間,所以一般要多于順序存儲結構。

15.DPIL庫是Python語言在圖像處理方面的重要的第三方庫,支持圖像存儲、處理和顯示,它能夠處理幾乎所有的圖片格式,可以完成對圖像的縮放、剪裁、疊加以及圖像添加線條、圖像和文字等操作。使用Python語言處理圖像相關的程序,首選PIL庫。本題選D選項。

16.Cid(x)是Python中的內置函數,用來查看變量在內存中的地址。本題選擇C選項。

17.B在Python中,屬于Web開發的第三方庫的有Django庫、pyramid庫及Flask庫。本題選擇B選項。

18.D樹的度為3,即樹中只存在度為0、1、2、3的結點,假設葉子結點數為n,由于沒有度為1和2的結點,則度為3的結點數為29-\nn,根據樹中的結點數=樹中所有結點的度之和+1,得3x(29-n)+0x1+0x2+nx0+\nl=29,得出的n不為整數,因此不存在這樣的樹。本題選擇D選項。

19.Ctime庫是Python的標準庫。使用gmtime()函數獲取當前時間戳對應的對象;strftime()函數是格式化時間最有效的函數之一,幾乎可以以任何通用格式輸出時間,該函數利用一個格式字符串,對時間格式進行表示。本題選擇C選項。

20.Bfor語句的循環執行次數是根據<循環結構>中元素的個數確定的,[1,2,3]和[‘1’,‘2’,‘3’]均有3個元素,因此循環次數是一樣的,A選項正確。range()函數只有一個參數時表示會產生從0開始計數到輸入參數的前一位整數結束的整數列表;有兩個參數時,則將第一個參數作為起始位,第二個參數作為結束位,輸出從起始位到結束位的前一位的整數列表;有3個參數時,第三個參數表示步長,起始位按照步長遞增或遞減。因此選項C、D正確。循環體中的break語句的確能影響循環次數,但是不代表循環體中不能有break語句,B選項錯誤。本題選擇B選項。

21.Bpop()方法:鍵存在則返回相應值,同時刪除鍵值對,否則返回默認值;get()方法:若訪問的項不存在于字典中,返回默認值,若存在,則返回鍵對應的值;popitem()方法:隨機從字典中取出一個鍵值對,以元組(key,value)形式返回,同時將該鍵值對從字典中刪除。replace()方法:是字符串的操作方法,在字符串中用新的子串替換舊的子串,返回字符串的副本。

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

23.Bforiinrange(1,11)是將1,2,3,4,5,6,7,8,9,10依次賦給變量i,用變量sum累加每一次變化的i的值,最終sum=56。本題選擇B選項。

24.B

25.D根據字典的索引方式可知,d.get(‘egg’,‘nothisfood’)索引的是字典第一層,但是第一層只有鍵food,沒有鍵egg,故索引不出值,輸出的是nothisfood。本題選擇D選項。

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

27.APython在定義函數的時候,不僅可以設置普通的形參,如”deffun(arr1,arr2=’我是2號參數’)”(其中arr1為必傳參數,arr2為可選參數),還可以傳入兩種特殊的參數:帶*或**的參數。這兩類形式的參數都可以傳人任意數量的實參,它們的不同點主要在于*參數傳入的為一個元組(tuple);**參數傳人的則為一個字典(diet)。由于傳入的參數數量不確定,因此當它們與普通參數放在一起時,必須把它們放在最后。故A項錯誤。

28.B輸入5,因為n=5滿足第一個if條件,所以11=11-1,11=4,8=4;由于現在11=4,滿足第二個if條件,所以執行11=\n11-1,11=3,8=3。Print(s),輸出3。本題選擇B選項。

29.C字符串的索引序號從0開始,t[20:21]是指字符串中序號是20的元素I,t[:9]是從序號0到8元素,用“+”連接字符串,最后輸出IlovetheWorld。本題選擇C選項。

30.A軟件測試的目的是為了發現錯誤而執行程序的過程,并不涉及改正錯誤,所以選項A錯誤。程序調試的基本步驟有:錯誤定位、修改設計和代碼,以排除錯誤、進行回歸測試,防止引進新的錯誤。程序調試通常稱為Debug,即排錯。軟件測試的基本準則有:所有測試都應追溯到需求、嚴格執行測試計劃,排除測試的隨意性、充分注意測試中的群集現象、程序員應避免檢查自己的程序、窮舉測試不可能、妥善保存測試計劃等文件。故答案為A選項。

31.Y

32.Y

33.N

34.Y

35.Y

36.Y

37.Y

38.N

39.Y

40.N

41.有序

42.5

43.True

44.2.0

45.'c'

46.min()

47.1:2:3

48.True

49.True

50.locals()

51.(1)fo=open(”PY301一1.txt”,”w”)\r\nclassHorse():

def==init==(self,category,gender,age):\r\n

self.category=category\r\n

self.gender=gender\r\n

self.age=age\r\n

self.horse_speed=0\r\n

defget_descriptive(self):\r\n

info=’thishorseis’+str(self.age)+’yearsold,’+’itscategoryis’+self.category+’,’+'itsfenderis'+self.gender+’.’\r\n

fo.write(info+”\n”)\r\ndefupdate_speed(self,new_speed):\r\n

self.horse_speed=new_speed\r\n

fo.write(’thespeedofthishorseis’+str(self.horse_speed)+”km/h.”)\r\nhorse=Horse("Arab","male","12")\r\nhorse.get_deseriptive()\r\nhorse.update_speed(50)\r\nfo.close()\r\n(2)fo=open(”PY301~2.txt”,”w”)\r\nclassHorse():\r\n

def__init__(self,category,gender,age):\r\n

self.category=category\r\n

self.gender=gender\r\n

self.age=age\r\n

self.horse_speed=0\r\ndefget_descriptive(self):\r\n

info=’thishorseis’+str(self.age)+’yearsold,’+’itscategoryis’+self.category+’,’+\r\n'itsfenderis’+self.gender+’.’\r\n

fo.write(info+”\n”)\r\ndefupdate_speed(self,new_speed):\r\n

self.horse_speed=new_speed\r\n

fo.write(’thespeed0fthishorseis’+str(self.horse_speed)+”km/h.\n”)\r\nclassCamel(Horse):\r\n

def_init_(self,category,gender,age):\r\n

super()_init_(category,gender,age)\r\nself.hump_size=2\r\n

defdescribe_hump_size(self):\r\n

fo.write(’thiscamelhas’+str(self.hump_size)+’hump.’)\r\ncamel=Camel(Doublehump","female","20")\r\ncamel.get_descriptive()\r\ncamel.update_speed(40)\r\ncamel.describe_hump_size()\r\nfo.close()(1)文件的操作需要調用open()函數以寫模式打開文件。Python定義類使用的關鍵字是class,且類的名稱首字母要大寫。_init_()是類的特殊方法,當根據Horse類創建新實例時,Python都會自動運行它。在這個方法中,開頭和結尾各有兩個下劃線,這是一種約定。_init_()方法中定義了四個形參:self、category、gender和age。在這個方法定義中形參self必不可少,且必須位于其他形參前面。每個定義的變量都要以self為前綴,以self為前綴的變量都可供類中的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論