華北理工大學(xué)《python語言程序設(shè)計(jì)》2019-2020學(xué)年第一學(xué)期期末試卷_第1頁
華北理工大學(xué)《python語言程序設(shè)計(jì)》2019-2020學(xué)年第一學(xué)期期末試卷_第2頁
華北理工大學(xué)《python語言程序設(shè)計(jì)》2019-2020學(xué)年第一學(xué)期期末試卷_第3頁
華北理工大學(xué)《python語言程序設(shè)計(jì)》2019-2020學(xué)年第一學(xué)期期末試卷_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

站名:站名:年級專業(yè):姓名:學(xué)號:凡年級專業(yè)、姓名、學(xué)號錯寫、漏寫或字跡不清者,成績按零分記?!堋狻€…………第1頁,共1頁華北理工大學(xué)

《python語言程序設(shè)計(jì)》2019-2020學(xué)年第一學(xué)期期末試卷題號一二三四總分得分一、單選題(本大題共20個小題,每小題1分,共20分.在每小題給出的四個選項(xiàng)中,只有一項(xiàng)是符合題目要求的.)1、在Python的函數(shù)定義中,假設(shè)有一個函數(shù)

defmy_function(x,y=[]):y.append(x);returny

,多次調(diào)用這個函數(shù)時,以下關(guān)于函數(shù)行為的描述,哪一項(xiàng)是不準(zhǔn)確的?()A.如果不傳遞

y

的值,每次調(diào)用都會修改同一個默認(rèn)的列表對象B.傳遞一個新的列表作為

y

的值時,函數(shù)只會修改傳遞的列表C.每次調(diào)用函數(shù)返回的列表都是新創(chuàng)建的D.函數(shù)的默認(rèn)參數(shù)

y

只在函數(shù)定義時創(chuàng)建一次2、在Python的列表推導(dǎo)式和生成器表達(dá)式中,以下敘述不正確的是()A.列表推導(dǎo)式可以快速創(chuàng)建一個新的列表,根據(jù)現(xiàn)有列表的元素進(jìn)行計(jì)算或篩選B.生成器表達(dá)式與列表推導(dǎo)式類似,但返回的是一個生成器對象,而不是一個列表C.生成器表達(dá)式在處理大量數(shù)據(jù)時比列表推導(dǎo)式更節(jié)省內(nèi)存D.列表推導(dǎo)式和生成器表達(dá)式的語法完全相同,只是返回的結(jié)果類型不同3、Python中的字符串操作非常豐富。假設(shè)要將一個字符串中的所有大寫字母轉(zhuǎn)換為小寫字母,以下哪個方法是正確的?()A.

s.lower()

B.

s.upper()

C.

s.swapcase()

D.

s.casefold()

4、在Python中,當(dāng)處理大量數(shù)據(jù)并需要提高程序的性能時,經(jīng)常會考慮使用生成器函數(shù)。假設(shè)我們有一個生成器函數(shù)用于生成一個無限的斐波那契數(shù)列,以下關(guān)于生成器函數(shù)的特點(diǎn)和使用,哪一個描述是正確的?()A.生成器函數(shù)在每次被調(diào)用時都會從頭開始生成數(shù)列B.可以通過直接對生成器對象進(jìn)行索引來獲取特定位置的數(shù)C.生成器函數(shù)在執(zhí)行過程中可以根據(jù)條件暫停和恢復(fù)執(zhí)行D.生成器函數(shù)生成的數(shù)列可以直接存儲在一個固定長度的列表中5、對于Python中的類型提示(typehinting),以下描述錯誤的是:()A.類型提示可以提高代碼的可讀性和可維護(hù)性B.可以使用typing模塊提供的類型來進(jìn)行類型提示C.類型提示只是一種提示,Python解釋器不會進(jìn)行類型檢查D.類型提示對代碼的性能有很大的影響6、在Python中,關(guān)于模塊的搜索路徑。當(dāng)導(dǎo)入一個模塊時,Python會按照一定的順序搜索模塊,以下對于模塊搜索路徑的理解,哪個是正確的?()A.只搜索當(dāng)前腳本所在的目錄B.按照環(huán)境變量指定的路徑搜索C.先搜索內(nèi)置模塊,然后搜索當(dāng)前目錄和系統(tǒng)默認(rèn)路徑D.隨機(jī)搜索目錄,直到找到模塊為止7、Python中的生成器(Generator)可以實(shí)現(xiàn)按需生成數(shù)據(jù),節(jié)省內(nèi)存。假設(shè)有一個生成器函數(shù)

defmy_generator():yield1yield2yield3

,以下對于生成器的描述,哪一項(xiàng)是不正確的?()A.可以通過

gen=my_generator()

創(chuàng)建一個生成器對象B.使用

next(gen)

可以依次獲取生成器生成的值C.生成器函數(shù)在遇到

yield

語句時會暫停執(zhí)行,下次調(diào)用時從暫停處繼續(xù)D.生成器可以無限生成數(shù)據(jù),不會有終止的情況8、在Python的對象屬性訪問控制中,以下關(guān)于

@property

裝飾器的描述,不正確的是()A.

@property

裝飾器可以將一個方法轉(zhuǎn)換為只讀屬性B.可以通過

@property

裝飾器實(shí)現(xiàn)對屬性的訪問控制和數(shù)據(jù)驗(yàn)證C.使用

@property

裝飾器后,不能再直接修改屬性的值D.

@property

裝飾器只能用于類的實(shí)例方法,不能用于類方法9、在Python中,當(dāng)我們需要使用正則表達(dá)式來匹配一個包含數(shù)字和字母的字符串時,以下哪個正則表達(dá)式模式是正確的?()A.

r'\d+\w+'

B.

r'\w+\d+'

C.

r'\d\w'

D.

r'\w\d'

10、在Python中,關(guān)于上下文管理器(with語句)的描述,以下正確的是:()A.上下文管理器可以自動處理資源的獲取和釋放,確保資源在使用后正確釋放B.只有文件對象可以作為上下文管理器使用C.自定義的類要實(shí)現(xiàn)上下文管理器,必須定義

__enter__

__close__

方法D.上下文管理器不能用于處理數(shù)據(jù)庫連接等資源11、假設(shè)我們有一個列表

numbers=[1,2,2,3,3,3,4,4,4,4]

,想要計(jì)算每個數(shù)字出現(xiàn)的次數(shù),以下哪種方法是正確的?()A.使用字典來統(tǒng)計(jì)B.使用集合來去除重復(fù)元素,然后計(jì)算每個元素的個數(shù)C.使用列表的

count

方法D.無法直接計(jì)算每個數(shù)字出現(xiàn)的次數(shù)12、在Python中,關(guān)于異常的自定義。假設(shè)要定義一個自定義異常類

MyException

,繼承自

Exception

類,以下哪種方式是正確的?()A.

classMyException(Exception):pass

B.

classMyException(Exception):def__init__(self):pass

C.

classMyException:pass

D.

classMyException(Exception):def__str__(self):pass

13、在Python的面向?qū)ο缶幊讨?,假設(shè)有一個類

classMyClass:def__init__(self,x):self.x=x

,然后創(chuàng)建了兩個對象

obj1=MyClass(10)

obj2=MyClass(20)

,以下關(guān)于這兩個對象的描述,哪一項(xiàng)是正確的?()A.

obj1

obj2

具有相同的屬性

x

,值都是20B.

obj1

obj2

具有相同的屬性

x

,值分別是10和20C.

obj1

obj2

是完全相同的對象,共享相同的屬性和方法D.

obj1

obj2

沒有任何關(guān)系,彼此獨(dú)立14、對于Python的模塊搜索路徑,以下關(guān)于其工作原理的描述,哪一項(xiàng)是錯誤的?()A.首先搜索當(dāng)前目錄B.然后按照

PYTHONPATH

環(huán)境變量指定的路徑搜索C.接著搜索Python安裝目錄下的標(biāo)準(zhǔn)庫模塊D.模塊搜索路徑是固定的,不能修改15、對于Python中的上下文變量(ContextVariable),假設(shè)我們需要在不同的代碼上下文之間傳遞和共享數(shù)據(jù)。以下關(guān)于上下文變量的描述,哪一個是正確的?()A.上下文變量只能在單個線程內(nèi)使用B.上下文變量的值在不同的上下文之間是自動同步的C.可以使用上下文變量在多個協(xié)程之間共享數(shù)據(jù)D.上下文變量的使用會導(dǎo)致數(shù)據(jù)競爭和不一致性16、在Python的面向?qū)ο缶幊讨?,類的屬性和方法的使用非常關(guān)鍵。假設(shè)有一個類

Person

,定義了屬性

name

和方法

introduce(self)

用于介紹自己。當(dāng)我們創(chuàng)建

Person

類的多個實(shí)例對象時,以下關(guān)于屬性和方法的描述正確的是:()A.每個實(shí)例對象都有獨(dú)立的屬性和共享的方法B.屬性和方法都是每個實(shí)例對象獨(dú)立擁有的C.屬性是共享的,方法是每個實(shí)例對象獨(dú)立的D.屬性和方法都是共享的17、在Python中,關(guān)于函數(shù)的默認(rèn)參數(shù)。假設(shè)定義了一個函數(shù)

func(a,b=5)

,以下對于默認(rèn)參數(shù)的理解,哪個是正確的?()A.每次調(diào)用函數(shù)時,如果不傳遞

b

的值,

b

都會被初始化為5B.只有第一次調(diào)用函數(shù)時,如果不傳遞

b

的值,

b

會被初始化為5,后續(xù)調(diào)用會使用上次調(diào)用設(shè)置的值C.默認(rèn)參數(shù)的值不能被修改D.可以通過在函數(shù)內(nèi)部重新賦值來修改默認(rèn)參數(shù)的值18、Python中的

pickle

模塊用于序列化和反序列化對象。假設(shè)定義了一個自定義類

MyClass

的對象

obj

,以下對于

pickle

的使用,哪個是正確的?()A.可以直接使用

pickle.dump(obj,file)

將對象保存到文件,然后使用

pickle.load(file)

讀取并還原對象B.

pickle

只能用于序列化和反序列化內(nèi)置數(shù)據(jù)類型,不能用于自定義類對象C.序列化和反序列化時,對象的類定義必須在同一個腳本中D.反序列化時會自動創(chuàng)建新的對象,與原始對象沒有關(guān)聯(lián)19、在Python中,當(dāng)我們需要處理大量的數(shù)據(jù)并進(jìn)行頻繁的插入和刪除操作時,以下哪種數(shù)據(jù)結(jié)構(gòu)可能不是最優(yōu)選擇?假設(shè)數(shù)據(jù)的規(guī)模較大且操作頻繁。A.列表(List)B.集合(Set)C.字典(Dictionary)D.數(shù)組(Array)20、在Python中,以下關(guān)于迭代器(Iterator)的描述,正確的是:()A.所有的可迭代對象都是迭代器B.迭代器可以通過索引訪問元素C.可以使用iter函數(shù)將一個可迭代對象轉(zhuǎn)換為迭代器D.迭代器一旦遍歷完畢,就不能再次使用二、判斷題(本大題共15小題,每小題2分,共30分.有多個選項(xiàng)是符合題目要求的.)1、Python中的列表可以使用“getitem”方法獲取元素。()2、在Python中,類的私有方法可以在類外被調(diào)用。()3、Python中的列表可以使用“sort”方法進(jìn)行降序排序。()4、Python中的集合可以使用“count”方法統(tǒng)計(jì)元素個數(shù)。()5、Python中的字典可以使用“keys”方法獲取所有的鍵并返回一個列表。()6、Python中的文件可以使用“seek”方法移動位置。()7、Python中的循環(huán)語句只有for和while兩種。()8、Python中的生成器可以使用“send”方法發(fā)送值。()9、Python中的列表可以使用extend方法合并另一個列表。()10、在Python中,字典可以使用“update”方法合并兩個字典。()11、在Python中,“for”循環(huán)可以遍歷一個字符串。()12、Python中的集合可以使用“union”方法求并集。()13、Python中的循環(huán)可以使用“goto”語句來控制。()14、在Python中,“while”循環(huán)可以使用“continue”語句跳過本次循環(huán)。()15、在Python中,函數(shù)的參數(shù)可以使用關(guān)鍵字參數(shù)傳遞。()三、編程題(本大題共6個小題,共30分)1、(本題5分)設(shè)計(jì)一個Python程序,模擬一個簡單的旅游行程規(guī)劃系統(tǒng)??梢蕴砑泳包c(diǎn)、安排行程、計(jì)算行程費(fèi)用。2、(本題5分)設(shè)計(jì)一個函數(shù),判斷一個字符串是否為有效的IPv4地址。3、(本題5分)用戶輸入一個正整數(shù)n,編寫一個Python程序打印出一個n行的等腰直角三角形圖案,使用“*”字符。例如,當(dāng)n=5時,輸出:*

4、(本題5分)設(shè)計(jì)一個Python程序,用戶輸入一個年份,判斷該年份是否為閏年。閏年的判斷條件是:能被4整除但不能被100整除,或者能被400整除。程序輸出判斷結(jié)果以及相應(yīng)的解釋。5、(本題5分)創(chuàng)建一個Pyt

溫馨提示

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

評論

0/150

提交評論