國家二級(Python)機試模擬試卷1(共380題)_第1頁
國家二級(Python)機試模擬試卷1(共380題)_第2頁
國家二級(Python)機試模擬試卷1(共380題)_第3頁
國家二級(Python)機試模擬試卷1(共380題)_第4頁
國家二級(Python)機試模擬試卷1(共380題)_第5頁
已閱讀5頁,還剩110頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

國家二級(Python)機試模擬試卷1(共9套)(共380題)國家二級(Python)機試模擬試卷第1套一、單項選擇題(本題共35題,每題1.0分,共35分。)1、以下選項中,不屬于需求分析階段的任務是A、制定軟件集成測試計劃B、需求規(guī)格說明書評審C、確定軟件系統的性能需求D、確定軟件系統的功能需求標準答案:A知識點解析:需求分析階段需要對待開發(fā)軟件提出的需求進行分析并給出詳細定義,完成需求規(guī)格說明書。軟件集成測試計劃的制訂是軟件測試階段需要完成的任務。2、關于數據流圖(DFD)的描述,以下選項中正確的是A、軟件概要設計的工具B、軟件詳細設計的工具C、結構化方法的需求分析工具D、面向對象需求分析工具標準答案:C知識點解析:數據流圖(DFD)是結構化分析的常用工具,是描述數據處理過程的工具,是需求理解的邏輯模型的圖形表示,直接支持系統的功能建模。3、在黑盒測試方法中,設計測試用例的主要根據是A、程序外部功能B、程序流程圖C、程序數據結構D、程序內部邏輯標準答案:A知識點解析:黑盒測試也稱為功能測試或數據驅動測試。黑盒測試是對軟件已經實現的功能是否滿足需求進行測試和驗證。黑盒測試完全不考慮程序內部的邏輯結構和內部特性,只依據程序的需求和功能規(guī)格說明,檢查程序的功能是否符合它的功能說明。4、一個教師講授多門課程,一門課程由多個教師講授。描述了實體教師和課程的聯系的選項是A、1:1聯系B、m:n聯系C、m:1聯系D、1:n聯系標準答案:B知識點解析:現實世界中事物間的關聯稱為聯系。在概念世界中,聯系主要反映了實體集間的一定關系。實體集間的聯系可以是單個,也可以是多個。一位教師可以教授多個學生,而一個學生又可以受教于多個教師,教師與學生的聯系是m:n。5、數據庫設計中,反映用戶對數據要求的模式是A、概念模式B、內模式C、設計模式D、外模式標準答案:D知識點解析:外模式,也稱為子模式或用戶模式,是用戶的數據視圖,也是用戶所想見到的數據模式,由概念模式推導出來,反映了用戶對數據要求的模式。以外模式為框架所組成的數據庫叫用戶數據庫。6、在數據庫設計中,用E-R圖來描述信息結構但不涉及信息在計算機中的表示的階段是A、需求分析階段B、概念設計階段C、邏輯設計階段D、物理設計階段標準答案:B知識點解析:數據庫設計包含概念設計和邏輯設計兩個方面的內容。在概念設計階段,用E—R圖來描述信息結構但不涉及信息在計算機中的表示。7、以下選項中描述正確的是A、有一個以上根結點的數據結構不一定是非線性結構B、只有一個根結點的數據結構不一定是線性結構C、循環(huán)鏈表是非線性結構D、雙向鏈表是非線性結構標準答案:B知識點解析:根據數據結構中各數據元素之間前后件關系的復雜程度,一般將數據結構分為線性結構和非線性結構。線性結構滿足兩個條件:①有且只有一個根結點;②每個結點最多有一個前件,也最多有一個后件。如果一個數據結構不是線性結構,則稱之為非線性結構。有一個以上根結點的數據結構是非線性結構。只有一個根結點的數據結構不一定是線性結構。循環(huán)鏈表和雙向鏈表都是線性結構。8、一棵二叉樹共有25個結點,其中5個是葉子結點,則度為1的結點數是A、4B、6C、16D、10標準答案:C知識點解析:二叉樹的基本性質:在任意一棵二叉樹中,度為0的結點(葉子結點)總是比度為2的結點多一個。本題中度為2的結點即為4個。二叉樹只包含度為0的結點、度為1的結點和度為2的結點。度為1的結點個數等于總結點數減去度為0和2的結點數。25—5—4=16。9、下圖所示的二叉樹進行前序遍歷的序列是A、DYBEAFCZXB、YDEBFZXCAC、ABDYECFXZD、ABCDEFXYZ標準答案:C知識點解析:二叉樹的前序遍歷是指在訪問根結點、遍歷左子樹、遍歷右子樹這三者中,首先訪問根結點,然后遍歷左子樹,最后遍歷右子樹;并且,在遍歷左右子樹時,仍然先訪問根結點,然后遍歷左子樹,最后遍歷右子樹。前序遍歷二叉樹是一個遞歸的過程。10、以下選項中描述正確的是A、數據的邏輯結構與存儲結構是一一對應的B、算法的時間復雜度與空間復雜度一定相關C、算法的時間復雜度是指執(zhí)行算法所需要的計算工作量D、算法的效率只與問題的規(guī)模有關,而與數據的存儲結構無關標準答案:B知識點解析:數據的邏輯結構反映數據之間的邏輯關系,數據元素在計算機存儲空間中的位置關系可能與邏輯關系不同。算法的時間復雜度指執(zhí)行算法所需要的計算工作量。算法的空間復雜度指執(zhí)行這個算法所需要的內存空間。算法在時間的高效性和空間的高效性之間通常是矛盾的,一般會取一個平衡點。11、Python文件的后綴名是A、pyB、pdfC、pngD、ppt標準答案:A知識點解析:Python文件的后綴名為py。12、關于Python循環(huán)結構,以下選項中描述錯誤的是A、Python通過for、while等保留字構建循環(huán)結構B、遍歷循環(huán)中的遍歷結構可以是字符串、文件、組合數據類型和range()函數等C、break用來結束當前當次語句,但不跳出當前的循環(huán)體D、continue只結束本次循環(huán)標準答案:C知識點解析:continue用來結束當前當次語句,但不跳出當前的循環(huán)體。13、給出如下代碼:importrandomnum=random.randint(1,10)whileTrue:ifsum>=9:breakelse:nnm=random.randint(1,10)以下選項中描述錯誤的是A、random.randint(1,10)生成[1,10]之間的整數B、這段代碼的功能是程序自動猜數字C、importrandom代碼是可以省略的D、whileTrue:創(chuàng)建了一個永遠執(zhí)行的循環(huán)標準答案:C知識點解析:importrandom代碼不可以省略的。random是Python內置的隨機運算標準函數庫。14、關于time庫的描述,以下選項中錯誤的是A、time庫是Python中處理時間的標準庫B、time庫提供獲取系統時間并格式化輸出功能C、time.sleep(S)的作用是休眠S秒D、time.perf_counter()返回一個固定的時間計數值標準答案:D知識點解析:time.perf_counter()返回一個CPU級別的精確時間計數值,單位為秒。由于這個計數值起點不確定,連續(xù)調用差值才有意義。15、對于列表ls的操作,以下選項中描述錯誤的是A、ls.append(x):在ls最后增加一個元素B、ls.clear():刪除ls的最后一個元素C、ls.copy():生成一個新列表,復制ls的所有元素D、ls.reverse():列表ls的所有元素反轉標準答案:B知識點解析:ls.clear()函數刪除列表ls中的所有元素。16、下面代碼的輸出結果是listV=list(range(5))print(2inlistV)A、TrueB、FalseC、0D、一1標準答案:A知識點解析:list()和range()是Python的內置函數,list()可用于生成列表,range(5)可用于產生數字序列0、1、2、3、4。17、給出如下代碼:importrandomasranlistV=[]ran.seed(100)foriinrange(10):i=ran.randint(100,999)listV.append(i)以下選項中能輸出隨機列表元素最大值的是A、print(listV.reverse(i))B、print(listV.max())C、print(listV.pop(i))D、print(max(listV))標準答案:D知識點解析:max()是Python的內置函數,用于輸出列表元素的最大值。18、給出如下代碼:MonthandFlower={’’1月’’:’’梅花’’,’’2月’’:’’杏花’’,’’3月’’:’’桃花’’,’’4月’’:’’牡丹花’’,\’’5月’’:’’石榴花’’,’’6月’’:’’蓮花’’,’’7月’’:’’玉簪花’’,’’8月’’:’’桂花’’,’’9月’’:’’菊花’’,\’’10月’’:’’芙蓉花’’,’’11月’’:’’山茶花’’,’’12月’’:’’水仙花’’}n=input(’’請輸入1一12的月份:’’)print(n+’’月份之代表花:’’+MonthandFlower.get(str(n)+’’月’’))以下選項中描述正確的是A、MonthandFlower是集合類型變量B、代碼實現了獲取一個整數(1—12)來表示月份,輸出該月份對應的代表花名C、MonthandFlower是列表類型變量D、MonthandFlower是一個元組標準答案:B知識點解析:Month&Flower是字典類型變量。字典是集合類型的延續(xù),各個元素并沒有順序之分。字典是存儲可變數量鍵值對的數據結構,鍵和值可以是任意數據類型。字典的主要用法是通過索引符號來實現查找與特定鍵相對應的值。如果想保持一個集合中元素的順序,需要使用列表,而不是元組。19、關于Python文件打開模式的描述,以下選項中錯誤的是A、只讀模式rB、覆蓋寫模式wC、追加寫模式aD、創(chuàng)建寫模式n標準答案:D知識點解析:Python文件打開模式的創(chuàng)建寫模式為’x’。20、執(zhí)行如下代碼:fname=input(’’請輸入要寫入的文件:’’)fo=open(fname,’’w+’’)ls=[’’清明時節(jié)雨紛紛,’’,’’路上行人欲斷魂,’’,’’借問酒家何處有?’’,\’’牧童遙指杏花村?!痌fo.writelines(ls)fo.seek(0)forlineinfo:print(line)fo.close()以下選項中描述錯誤的是A、執(zhí)行代碼時,從鍵盤輸入“清明.txt”,則清明.txt被創(chuàng)建B、fo.writelines(ls)將元素全為字符串的ls列表寫入文件C、fo.seek(0)這行代碼如果省略,也能打印輸出文件內容D、代碼主要功能為向文件寫入一個列表類型,并打印輸出結果標準答案:C知識點解析:fo.seek(0)這行代碼如果省略,將不能打印輸出文件內容。21、關于CSV文件的描述,以下選項中錯誤的是A、CSV文件格式是一種通用的文件格式,應用于程序之間轉移表格數據B、CSV文件的每一行是一維數據,可以使用Python中的列表類型表示C、CSV文件通過多種編碼表示字符D、整個CSV文件是一個二維數據標準答案:C知識點解析:CSV文件采用純文本格式,通過單一編碼表示字符。以行為單位,開頭不留空行,行之間沒有空行。每行表示一個一維數據,多行表示多維數據。以逗號分隔每列數據,列數據為空也要保留逗號。22、以下選項中,修改turtle畫筆顏色的函數是A、pencolor()B、seth()C、colormode()D、bk()標準答案:A知識點解析:pencolor(color)函數給畫筆設置顏色。23、以下選項中,Python網絡爬蟲方向的第三方庫是A、scrapyB、numpyC、openpyxlD、PyQt5標準答案:A知識點解析:numpy是數據分析方向的第三方庫,openpyxl是文本處理方向的第三方庫,PyQt5是用戶圖形界面方向的第三方庫。24、以下選項中,Python數據分析方向的第三方庫是A、flaskB、PILC、DjangoD、pandas標準答案:D知識點解析:flask和Django是Web開發(fā)的第三方庫,PIL是圖像處理方面的第三方庫。25、以下選項中,Python機器學習方向的第三方庫是A、requestsB、TensorFlowC、scipyD、PyQt5標準答案:B知識點解析:TensorFlow是Python機器學習方向的第三方庫。26、給出如下代碼:TempStr=’’HelloWorld’’以下選項中可以輸出“World”子串的是A、print(TempStr[一5:])B、print(TempStr[一5:一1])C、print(TempStr[一5:0])D、print(TempStr[一4:一1])標準答案:A知識點解析:參考字符串切片操作。27、下面代碼的輸出結果是x=12.34print(type(x))A、<class’complex’>B、<class’int’>C、<class’float’>D、<class’bool’>標準答案:C知識點解析:type(x)函數可以獲得x的類型。28、下面代碼的輸出結果是x=10y=3print(x%y,x**y)A、11000B、31000C、130D、330標準答案:A知識點解析:參考Python內置的數值運算操作符。29、執(zhí)行如下代碼:importturtleastforiinrange(1,5):t.fd(50)t.left(90)在PythonTurtleGraphics中,繪制的是A、正方形B、五邊形C、三角形D、五角星標準答案:A知識點解析:參考turtle庫函數。30、設一年365天,第1天的能力值為基數記為1.0。當好好學習時能力值相比前一天會提高千分之五。以下選項中,不能獲得持續(xù)努力1年后的能力值的是A、pow(1.0+0.005,365)B、1.005**365C、pow((1.0+0.005),365)D、1.005//365標準答案:D知識點解析:參考pow()函數和**數值運算操作符。31、給出如下代碼:s=list(’’巴老爺有八十八棵芭蕉樹,來了八十八個把式要在巴老爺八十八棵芭蕉樹下\住。老爺拔了八十八棵芭蕉樹,不讓八十八個把式在八十八棵芭蕉樹下住。八十八\個把式燒了八十八棵芭蕉樹,巴老爺在八十八棵樹邊哭?!?以下選項中能輸出字符“八”出現次數的是A、print(s.count(’’八’’))B、print(s.index(’’八’’))C、print(s.index(’’八’’),6)D、print(s.index(’’八’’),6,len(s))標準答案:A知識點解析:s.count(x)函數可以獲得s中出現x的總次數。32、下面代碼的輸出結果是vlist=list(range(5))print(vlist)A、[0,1,2,3,4]B、01234C、0,1,2,3,4,D、0;1;2;3;4;標準答案:A知識點解析:暫無解析33、以下選項中,不是建立字典的方式是A、d={1:[1,2],3:[3,4]}B、d={[1,2]:1,[3,4]:3}C、d={(1,2):1,(3,4):3}D、d={’張三’:1,’李四’:2}標準答案:B知識點解析:{[1,2]:1,[3,4]:3}不能建立字典,字典要求鍵值對中的鍵是不可改變變量類型。34、如果name=’’全國計算機等級考試二級Python’’,以下選項中輸出錯誤的是A、>>>print(name[0],name[8],name[-1])全試B、>>>print(name[:])全國計算機等級考試二級PythonC、>>>print(name[11:])PythonD、>>>print(name[:11])全國計算機等級考試二級標準答案:A知識點解析:參考字符串索引與切片操作。35、下列程序的運行結果是>>>s=’PYTHON’>>>“{0:3}”.format(s)A、’PYT’B、’PYTH’C、’PYTHON’D、’PYTHON’標準答案:C知識點解析:參考字符串格式化輸出方法。二、基本編程題(本題共3題,每題1.0分,共3分。)36、僅使用Python基本語法,即不使用任何模塊,編寫Python程序計算下列數學表達式的結果并輸出,小數點后保留3位。x=標準答案:x=pow((3**4+5*(6**7))/8,0.5)print(’’{:.3f}’’.format(x))知識點解析:這是一個基本編程題,使用Python程序對數學公式進行計算。該題目有2個要求:僅使用Python基本語法和小數點后保留3位。該數學公式計算包含求平方根,有兩種方法完成:第一,使用Python內置函數pow(),數字N的平方根是pow(N,0.5);第二,使用操作符**,數字N的平方根是N**0.5。小數點后保留3位,有兩種方法可以完成:第一,使用字符串格式化方法輸出3位小數,數字N的3位小數輸出采用’’{:.3f}’’.format(N);第二,使用Python內置函數round(),數字N保留3位小數方法是round(N,3)。下面給出3個參考程序:x=pow((3**4+5*(6**7))/8,0.5)print(’’{:.3f}’’.format(x))x=((3**4+5*(6**7))/8)**0.5print(’’{:.3f}’’.format(x))x=pow((3**4+5*(6**7))/8,0.5)print(round(x,3))37、以中國共產黨第十九次全國代表大會報告中一句話作為字符串變量s,完善Python程序,分別用Python內置函數及jieba庫中已有函數計算字符串s的中文字符個數及中文詞語個數。注意,中文字符包含中文標點符號.importjiebas=’’中國特色社會主義進入新時代,我國社會主要矛盾已經轉化為人民日益增長的美\好生活需要和不平衡不充分的發(fā)展之間的矛盾?!痭=①m=②print(’’中文字符數為{},中文詞語數為{}。’’.format(n,m))標準答案:n=len(s)m=len(jieba.lcut(s))知識點解析:這是一個基本編程題,對中文字符及中文詞語進行統計。該題目使用了jieba中文分詞庫,有2個要求:統計中文字符及中文詞語。給定字符串s中僅包含中文字符及中文標點符號,因此,可以直接使用len()函數計算字符數量。jieba庫提供了3種分詞模式:精確模式、全模式和搜索引擎模式。其中,精確模式分詞的詞語拼接后沒有冗余,最為常用。精確模式對字符串s的分詞操作為jieba.lcut(s),該函數返回一個列表類型,每個元素是一個中文詞語。使用len()可以獲得該列表長度,即中文詞語數量。結合上述分析,該題目的參考代碼如下:importjiebas=’’中國特色社會主義進入新時代,我國社會主要矛盾已經轉化為人民日益增長的美\好生活需要和不平衡不充分的發(fā)展之間的矛盾?!痭=len(s)m=len(jieba.lcut(s))print(’’中文字符數為{},中文詞語數為{}?!甪ormat(n,m))38、0x4DC0是一個十六進制數,它對應的Unicode編碼是中國古老的《易經》六十四卦的第一卦,請輸出第51卦(震卦)對應的Unicode編碼的二進制、十進制、八進制和十六進制格式。print(’’二進制{①}、十進制{②}、八進制{③}、\十六進制{④}’’.format(⑤))標準答案:print(’’二進制{0:b}、十進制{0}、八進制{0:o}、十六進制{0:x}’’.format(0x4DC0+50))知識點解析:這是一個基本編程題,考核字符串格式化方法,重點考核整數的4種進制輸出。字符串格式化方法中<類型>字段控制各種整數的進制輸出效果。該題目還需要注意,由于.format()方法只有一個參數,在模板字符串中有4個槽{},槽的數量和參數數量不一致,在槽中必須指定參數序號。由于該題目中.format()方法只有一個參數,序號為0,在每個槽中要用序號0指定這個參數。該題目參考答案如下。print(’’二進制{0.b}、十進制{0}、八進制{0:o}、十六進制{0:x}’’.format(0x4DC0+50))三、簡單應用題(本題共2題,每題1.0分,共2分。)39、使用turtle庫的turtle.fd()函數和turtle.seth()函數繪制一個等邊三角形,邊長為200像素,效果如下圖所示。請結合程序整體框架,補充橫線處代碼。importturtleas①foriinrange(②):t.seth(③)t.fd(200)標準答案:importturtleastforiinrange(3):t.seth(i*120)t.fd(200)知識點解析:這是一個簡單應用題,考核“海龜繪圖體系”,繪制簡單的等邊三角形。給定部分代碼采用了import…as…形式,這是引入turtle庫并賦予別名的方式,結合后續(xù)代碼,首行應填寫別名t。由于題目要求使用seth()函數,因此,需要在繪制每條邊時計算絕對繪制方位,可以利用循環(huán)變量i計算三個邊的絕對角度。參考代碼如下:importturtleastforiinrange(3):t.seth(i*120)t.fd(200)40、編寫代碼完成如下功能:(1)建立字典d,包含內容是:’’數學’’:101,’’語文’’:202,’’英語’’:203,’’物理’’:204,’’生物’’:206。(2)向字典中添加鍵值對’’化學’’:205。(3)修改’’數學’’對應的值為201。(4)刪除’’生物’’對應的鍵值對。(5)打印字典d全部信息,參考格式如下(注意,其中逗號為英文逗號,逐行打印):201:數學202:語文(略)標準答案:(1)d={’’數學’’:101,’’語文’’:202,’’英語’’:203,’’物理”:204,’’生物’’:206}(2)d[’’化學’’]=205(3)d[’’數學’’]=201(4)deld[’’生物’’](5)forkeyind:print(’’{}:{}’’.format(d[key],key))知識點解析:這是一個簡單應用題,用來操作字典類型。(1)建立字典采用{}。d={’’數學’’:101,’’語文’’:202,’’英語’’:203,’’物理’’:204,’’生物’’:206}(2)可以使用字典索引[]方式直接增加新的“鍵值對”。d[’’化學’’]=205(3)可以使用字典索引[]方式直接修改“鍵值對”信息。d[’’數學’’]=201(4)使用del及字典索引[]方式刪除“鍵值對”信息。deld[’’生物’’](5)遍歷字典時需要注意,循環(huán)變量并不是“鍵值對”,而只是鍵,可以通過循環(huán)變量索引字典中鍵和值的信息。forkeyind:print(’’{}:{}’’.format(d[key],key))四、綜合應用題(本題共1題,每題1.0分,共1分。)41、《天龍八部》是著名作家金庸的代表作之一,歷時4年創(chuàng)作完成。該作品氣勢磅礴,人物眾多。這里給出一個《天龍八部》的網絡版本,文件名為“天龍八部一網絡版.txt”。問題1:請編寫程序,對這個《天龍八部》文本中出現的漢字和標點符號進行統計,字符與出現次數之間用冒號:分隔,輸出保存到“天龍八部一漢字統計.txt”文件中,該文件要求采用CSV格式存儲,參考格式如下(注意,不統計空格和回車字符);天:100,龍:110,八:109,部:10(略)問題2:請編寫程序,對《天龍八部》文本中出現的中文詞語進行統計,采用jieba庫分詞,詞語與出現次數之間用冒號:分隔,輸出保存到“天龍八部一詞語統計.txt”文件中。參考格式如下(注意,不統計任何標點符號):天龍:100,八部:10(略)標準答案:問題1答案如下:fi=open(’’天龍八部一網絡版.txt’’,’’r’’,encoding=’uff-8’)fo=open(’’天龍八部一漢字統計.txt’’,’’w’’,encoding=’uff-8’)txt=fi.read()d={}forcintxt:d[c]=d.get(c,0)+1deld[’’]deld[’\n’]ls=[]forkeyind:ls.append(’’{}:{}’’.format(key,d[key]))fo.write(’’,’’.join(ls))fi.close()foclose()問題2答案如下:importjiebafi=open(’’天龍八部一網絡版.txt’’,’’r’’,encoding=’uff-8’)fo=open(’’天龍八部一詞語統計.txt’’,’’w’’,encoding=’utf-8’)txt=fi.read()words=jieba.lcut(txt)d={}forwinwords:d[w]=d.get(w,0)+1deld[’’]deld[’\n’]ls=[]forkeyind:ls.append(’’{}:{}}’’.format(key,d[key]))fo.write(’’,’’.join(ls))fi.close()fo.close()知識點解析:這是一個綜合應用題,考核對文本文件中字符和單詞的統計能力。問題1:統計網絡下載的“天龍八部一網絡版.txt”中各字符出現次數,采用“字符:次數”方式表示,以CSV方式存儲至“天龍八部一漢字統計.txt”。讀寫文件分別采用open()函數的’’r’’和’’w’’模式。在讀入文件時,可以增加參數encoding=’’uff-8’’,指定程序采用utf-8編碼打開文件。文件編碼過于復雜,在等級考試中并未涉及,這里,建議對編碼的理解使用如下兩條規(guī)則:第一,如果一個文本文件從網絡獲得,增加encoding參數,指定編碼方式打開;第二,如果Python程序生成了一個文件,并再次打開,則不需要指定encoding參數。打開文件后,可以一次性讀人文件內容至變量txt中,采用遍歷循環(huán)逐一遍歷txt中每個字符,并利用字典將每個字符的出現次數計入“字符:次數”鍵值對表示中,采用代碼如下:d={}forcintxt:d[c]=d.get(c,0)+1所有字符統計后,去掉空格(’’)和回車(’\n’)對應統計次數,采用del刪除字典d中對應項。再遍歷字典d,將其寫入列表ls,列表每項為“字符:次數”樣式字符串。最后,使用字符串.join()方法,將列表ls中所有項以逗號分隔形式整合并寫入輸出文件。綜上,問題1的全部代碼含注釋如下:fi=open(’’天龍八部一網絡版.txt’’,’’r’’,encoding=’utf一8’)fo=open(’’天龍八部一漢字統計.txt’’,’’w’’,encoding=’uff一8’)txt=fi.read()d={}forcintxt:#遍歷循環(huán),統計各出現字符及次數d[c]=d.get(c,0)+1deld[’’]#刪除空格字符對應的出現次數deld[’\n’]#刪除回車字符對應的出現次數ls=[]forkeyind:#遍歷字典,將字典各項組織后變成列表的元素Is.append(’’{}:{}’’.format(key,d[key]))fo.write(’’,’’.join(ls))fi.close()fo.close()問題2與問題1類似,只不過統計單元由字符變?yōu)橹形脑~語,這需要采用jieba庫進行分詞。整體代碼與問題1類似,僅在獲取文本txt后進行一次jieba.lcut()分詞操作即可。綜上,問題2的全部代碼含注釋如下:importjiebafi=open(’’天龍八部一網絡版.txt’’,’’r’’,encoding=’utf-8’)fo=open(”天龍八部-詞語統計.txt’’,’’w’’,encoding=’utf-8’)txt=fi.read()words=jieba.lcut(txt)#中文分詞,words是一個列表變量d={}forwinwords:#遍歷列表各元素,即遍歷中文詞語d[w]=d.get(w,0)+1deld[’’]deld[’\n’]ls=[]forkeyind:ls.append(’’{}:{}’’.format(key,d[key]))fowrite(’’,’’.join(ls))fi.close()fo.close()國家二級(Python)機試模擬試卷第2套一、單項選擇題(本題共37題,每題1.0分,共37分。)1、下列敘述中正確的是()。A、循環(huán)隊列是隊列的一種鏈式存儲結構B、循環(huán)隊列是隊列的一種順序存儲結構C、循環(huán)隊列中的隊尾指針一定大于隊頭指針D、循環(huán)隊列中的隊尾指針一定小于隊頭指針標準答案:B知識點解析:在實際應用中,隊列的順序存儲結構一般采用循環(huán)隊列的形式。當循環(huán)隊列滿或者為空時:隊尾指針=隊頭指針。本題選擇B選項。2、關于import引用,以下選項中描述錯誤的是A、import保留字用于導入模塊或者模塊中的對象B、使用importturtle引入turtle庫C、可以使用fromturtleimportsetup引入turtle庫D、使用importturtleast引入turtle庫,取別名為t標準答案:C知識點解析:使用fromturtleimportsetup只能引入turtle庫的setup()函數。3、以下代碼的輸出結果是()。defyoung(age):if25<=age<=30:print("作為一個老師,你很年輕")elifage<25:print("作為一個老師,你太年輕了")elifage>=60:print("作為一個老師,你可以退休了")else:print("作為一個老師,你很有愛心")young(42)A、作為一個老師,你很年輕B、作為一個老師,你太年輕了C、作為一個老師,你可以退休了D、作為一個老師,你很有愛心標準答案:D知識點解析:將實參42傳遞給函數形參變量age,之后進入多分支結構,依次判斷,因為30<42<60,故執(zhí)行else后面的語句,即輸出“作為一個老師,你很有愛心”。本題選擇D選項。4、與信息隱蔽的概念直接相關的概念是A、軟件結構定義B、模塊獨立性C、模塊類型劃分D、模塊耦合度標準答案:B知識點解析:信息隱蔽與模塊獨立性直接相關。信息隱蔽是指在一個模塊內包含的信息,對于不需要這些信息的其他模塊來說是不能訪問的。5、樹的度為3,且有9個度為3的結點,5個度為1的結點,但沒有度為2的結點。則該樹總的結點數為()。A、32B、14C、33D、19標準答案:C知識點解析:在樹中,樹中的節(jié)點數等于樹中所有節(jié)點的度之和再加1。題干中樹的度為3,有9個度為3的結點,5個度為1的結點,無度為2的結點,設有n個度為0的結點,則總結點數=9×3+5×1+0×2+n×0+1=33個。6、定義學生選修課程的關系模式如下:SC(S#,sn,C#,cn,G,Cr)(其屬性分別為學號、姓名、課程號、課程名、成績、學分)則對主屬性部分依賴的是()。A、(S#,C#)→GB、S#→SnC、(S#,C#)→S#D、(S#,C#)→C#標準答案:B知識點解析:關系SC中的主鍵是(S#,C#),但S#(學號)單獨就可以決定Sn(姓名),存在著對主屬性的部分依賴。7、以下代碼的輸出結果是()。a=[[1,2,3],[4,5,6],[7,8,9]]s=0forcina:forjinrange(3):s+=c[j]print(s)A、[1,2,3,4,5,6,7,8,9]B、45C、24D、0標準答案:B知識點解析:外層for循環(huán)將a[0]=[1,2,3],a[1]=[4,5,6],a[2]=[7,8,9]依次賦給變量c;內層for循環(huán)將變量j從0遞增到2,即累加c[1]+c[2]+c[3]的值,所以內層循環(huán)加外層循環(huán)用于計算1+2+3+4+5+6+7+8+9的值,s=45。本題選擇B選項。8、下面代碼的執(zhí)行結果是a=’’Python等級考試’’b=’’=’’c=’’>’’print(’’{0:{1}{3}{2}}’’.format(a.b.25.c))A、==============Python等級考試B、Python等級考試==============C、>>>>>>>>>>>>>>>Python等級考試D、Python等級考試>>>>>>>>>>>>>>>標準答案:A知識點解析:參考字符串格式化format方法。9、設city.csv文件內容如下:巴哈馬,巴林,孟加拉國,巴巴多斯白俄羅斯,比利時,伯利茲下面代碼的執(zhí)行結果是f=open(’’city.csv’’,’’r’’)ls=f.read().split(’’,’’)f.close()print(ls)A、[’巴哈馬’,’巴林’,’孟加拉國’,’巴巴多斯’,’白俄羅斯’,’比利時’,’伯利茲’]B、[’巴哈馬’,’巴林’,’孟加拉國’,’巴巴多斯\n白俄羅斯’,’比利時’,’伯利茲’]C、[’巴哈馬,巴林,孟加拉國,巴巴多斯,白俄羅斯,比利時,伯利茲’]D、[’巴哈馬’,’巴林’,’孟加拉國’,’巴巴多斯’,’\n’,’白俄羅斯’,’比利時’,’伯利茲’]標準答案:B知識點解析:以split(’’,’’)方法從CSV文件中獲得內容時,無法去除換行符?!桶投嗨梗躰白俄羅斯’作為一個列表元素出現。10、下面對軟件特點描述錯誤的是()。A、軟件的使用存在老化問題B、軟件的復雜性高C、軟件是邏輯實體,具有抽象性D、軟件的運行對計算機系統具有依賴性標準答案:A知識點解析:軟件具有以下特點。①軟件是一種邏輯實體,具有抽象性。②軟件沒有明顯的制作過程。③軟件在使用期間不存在磨損、老化問題。④對硬件和環(huán)境具有依賴性。⑤軟件復雜性高,成本高。⑥軟件開發(fā)涉及諸多的社會因素。本題選擇A選項。11、結構化程序的3種基本控制結構是()。A、遞歸、堆棧及隊列B、過程、子程序及函數C、順序、選擇及重復D、調用、返回及轉移標準答案:C知識點解析:1966年Boehm和Jacopini證明了程序設計語言僅僅使用順序、選擇及重復這3種基本控制結構就足以表達出各種結構的程序設計方法。本題選擇C選項。12、樹的度為3,且有9個度為3的結點,5個度為1的結點,但沒有度為2的結點。則該樹中的葉子結點數為()。A、18B、33C、19D、32標準答案:C知識點解析:設葉子結點數為n,則該樹的結點數為n+9+5=n+14,根據樹中的結點數=樹中所有結點的度之和+1,得9×3+0×2+5×1+n×0+1=n+14,則n=19。13、給出如下代碼:MonthandFlower={’’1月’’:’’梅花’’,’’2月’’:’’杏花’’,’’3月’’:’’桃花’’,’’4月’’:’’牡丹花’’,\’’5月’’:’’石榴花’’,’’6月’’:’’蓮花’’,’’7月’’:’’玉簪花’’,’’8月’’:’’桂花’’,’’9月’’:’’菊花’’,\’’10月’’:’’芙蓉花’’,’’11月’’:’’山茶花’’,’’12月’’:’’水仙花’’}n=input(’’請輸入1一12的月份:’’)print(n+’’月份之代表花:’’+MonthandFlower.get(str(n)+’’月’’))以下選項中描述正確的是A、MonthandFlower是集合類型變量B、代碼實現了獲取一個整數(1—12)來表示月份,輸出該月份對應的代表花名C、MonthandFlower是列表類型變量D、MonthandFlower是一個元組標準答案:B知識點解析:Month&Flower是字典類型變量。字典是集合類型的延續(xù),各個元素并沒有順序之分。字典是存儲可變數量鍵值對的數據結構,鍵和值可以是任意數據類型。字典的主要用法是通過索引符號來實現查找與特定鍵相對應的值。如果想保持一個集合中元素的順序,需要使用列表,而不是元組。14、以下關于Python語言復數類型的描述中,錯誤的是()。A、復數可以進行四則運算B、實部不可以為0C、Python語言中可以使用z.real和a.imag分別獲取它的實部和虛部D、復數類型與數學中復數的概念一致標準答案:B知識點解析:在Python語言中,復數類型表示數學中的復數,D項正確。復數可以看作是二元有序實數對(a,b),表示a+bj,其中a是實數部分,簡稱實部,b是虛數部分,簡稱虛部。虛數部分通過后綴”J”或”j”來表示,實部、虛部都可為0。復數可以進行四則運算。A項正確,B項錯誤。復數類型中,實部和虛部都是浮點類型,對于復數z,可以使用z.real和a.imag分別獲取它的實部和虛部。C項正確。15、以下關于Python循環(huán)結構的描述中,錯誤的是()。A、while循環(huán)使用關鍵字continue結束本次循環(huán)B、while循環(huán)可以使用保留字break和continueC、while循環(huán)也叫遍歷循環(huán),用來遍歷序列類型中元素,默認提取每個元素并執(zhí)行一次循環(huán)體D、while循環(huán)使用pass語句,則什么事也不做,只是空的占位語句標準答案:C知識點解析:Python中循環(huán)包括兩種:遍歷循環(huán)和無限循環(huán)。遍歷循環(huán)使用保留字for依次提取遍歷結構元素進行處理;無限循環(huán)使用保留字while根據判斷條件執(zhí)行程序。循環(huán)結構有兩個輔助循環(huán)控制保留字:break和continue。break用來跳出最內層for或while循環(huán),脫離該循環(huán)后程序從循環(huán)后的代碼繼續(xù)執(zhí)行。continue用來結束當前當次循環(huán),即跳出循環(huán)體中下面尚未執(zhí)行的語句,但跳不出當前循環(huán)。pass:什么事也不做,只是空占位語句,是無運算的占位語句,當語法需要語句并且還沒有任何使用的語句可寫時,就可以使用它。它通常用于為復合語句編寫一個空的主體。例如,如果想寫個無限循環(huán),每次迭代什么也不做,就寫個pass。pass是有意義的,例如,忽略try語句所捕獲的異常,以及定義帶屬性的空類對象,而該類實現的對象行為就像其他語言的結構和記錄。pass有時指的是“以后會填上”,只是暫時用于填充函數主體而已,無法保持函數體為空而不產生語法錯誤,因此,可以使用pass來替代。兩者的區(qū)別是:continue語句只結束本次循環(huán),不終止整個循環(huán)的執(zhí)行,而break具備結束循環(huán)的能力。16、以下代碼的輸出結果是()。ls=[”apple”,”red”,”orange”]deffunC(a):ls.append(a)returnfunC(”yellow”)print(ls)A、[]B、[”apple”,”red”,”orange”]C、[“yellow”]D、[”apple”,”red”,”orange”,”yellow”]標準答案:D知識點解析:列表ls中有三個元素,函數funC(”yellow”),將”yellow”傳遞給形參a,用append()方法將a中內容添加到列表ls中,最后返回,故最終的ls=[”apple”,”red”,”orange”,”yellow”],print(ls),即將列表ls中的內容輸出。17、以下代碼執(zhí)行后,book.txt文件的內容是()。fo=open(”book.txt”,”W”)ls=[’book’,’23’,’201009’,’20’]fo.write(six(Is))fo.close()A、[’book’,’23’,’201009’,’20’]B、book,23,201009,20C、[book,23,201009,20]D、book2320100920標準答案:A知識點解析:執(zhí)行fo=open(”book.txt”,”w”),打開book.txt文本文件,打開模式為’w’(覆蓋寫模式);創(chuàng)建列表ls=[’book’,’23’,’201009’,’20’];str()函數返回一個對象的字符串格式,str(ls)返回ls中字符串,fo.write(str(ls))將返回的字符串寫入book.txt文本文件中。故選A項。18、下面關于局部變量和全局變量的描述,正確的是()。A、全局變量不可以定義在函數中B、全局變量在使用后立即被釋放C、局部變量在使用后立即被釋放D、局部變量不可以和全局變量的命名相同標準答案:C知識點解析:根據程序中變量所在的位置和作用范圍,變量分為局部變量和全局變量。局部變量指在函數內部定義的變量,僅在函數內部有效,且作用域也在函數內部,當函數退出時變量將不再存在。全局變量一般指在函數之外定義的變量,在程序執(zhí)行全過程有效。全局變量在函數內部使用時,需要提前使用保留字global聲明,語法形式:global<全局變量>。使用global對全局變量聲明時,該變量要與外部全局變量同名。本題選擇C選項。19、以下關于浮點數3.0和整數3的描述,正確的是()。A、兩者使用相同的硬件執(zhí)行單元B、兩者使用相同的計算機指令處理方法C、兩者是相同的數據類型D、兩者具有相同的值標準答案:D知識點解析:浮點數3.0和整數3具有相同的值,硬件執(zhí)行單元、計算機指令處理方法和數據類型均不相同。本題選擇D選項。20、軟件設計中模塊劃分應遵循的準則是()。A、低內聚、低耦合B、高內聚、低耦合C、低內聚、高耦合D、高內聚、高耦合標準答案:B知識點解析:軟件設計中模塊劃分應遵循的準則是高內聚低偶合、模塊大小適當、模塊的依賴關系適當等。模塊的劃分應遵循一定的要求,以保證模塊劃分合理,并進一步保證以此為依據開發(fā)出的軟件系統可靠性強,易于理解和維護。模塊之間的耦合應盡可能低,模塊的內聚度應盡可能高。本題選擇B選項。21、以下程序的輸出結果是()。a,b,c=’I’,chr(64),”you”s=a+b+Cprint(s)A、I@youB、IyouC、I4youD、Ichr(64)you標準答案:A知識點解析:程序中,chr(64)輸出的是字符@,之后用”+”連接字符串,最后輸出I@you。本題選擇A選項。22、以下關于文件的打開和關閉的描述中,正確的是()。A、二進制文件不能使用記事本程序打開B、二進制文件可以使用記事本或其他文本編輯器打開,但是一般來說無法正常查看其中的內容C、使用內置函數open()且以w模式打開文件,若文件存在,則會引發(fā)異常D、使用內置函數open()打開文件時,只要文件路徑正確就總可以正確打開標準答案:B知識點解析:二進制文件可以使用記事本或其他文本編輯器打開,但是一般來說無法正常查看其中的內容;用內置函數open()且以w模式打開文件,若文件存在,則會覆蓋原來的內容而不會引發(fā)異常。本題選擇B選項。23、下列關于棧的敘述正確的是()。A、棧按“先進先出”組織數據B、棧按“先進后出”組織數據C、只能在棧底插入數據D、不能刪除數據標準答案:B知識點解析:棧是按“先進后出”的原則組織數據的,數據的插入和刪除都在棧頂進行操作。24、一個棧的初始狀態(tài)為空?,F將元素1、2、3、4、5、A、B、C、D、E依次入棧,然后再依次出棧,則元素出棧的順序是()。A、12345ABCDEB、EDCBA54321C、ABCDEl2345D、54321EDCBA標準答案:B知識點解析:棧按先進后出的原則組織數據,所以入棧最早的元素最后出棧,本題選擇B選項。25、在面向對象方法中,不屬于“對象”基本特點的是()。A、一致性B、分類性C、多態(tài)性D、標識唯一性標準答案:A知識點解析:對象有如下一些基本特點:標識唯一性、分類性、多態(tài)性、封裝性、模塊獨立性好。本題選擇A選項。26、以下關于文件讀寫的描述中,錯誤的是()。A、對文件進行讀寫操作之后必須關閉文件以確保所有內容都得到保存B、以寫模式打開的文件無法進行讀操作C、文件對象的seek()方法用來返回文件指針的當前位置D、文件對象的readline()方法用來讀取一行字符串標準答案:C知識點解析:文件對象的seek()方法用來定位文件的讀/寫位置,tell()方法用來返回文件指針的當前位置。27、下列敘述中正確的是()。A、循環(huán)隊列有隊頭和隊尾兩個指針,因此,循環(huán)隊列是非線性結構B、在循環(huán)隊列中,只需要隊頭指針就能反映隊列中元素的動態(tài)變化情況C、在循環(huán)隊列中,只需要隊尾指針就能反映隊列中元素的動態(tài)變化情況D、循環(huán)隊列中元素的個數是由隊頭指針和隊尾指針共同決定標準答案:D知識點解析:循環(huán)隊列有隊頭和隊尾兩個指針,但是循環(huán)隊列仍是線性結構的,所以A錯誤;在循環(huán)隊列中需要隊頭指針與隊尾指針來共同反映隊列中元素的動態(tài)變化情況,所以B與C錯誤。28、對于以下代碼的描述正確的是()。s=”Pythonisgood”l=”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_1為”Pythonisgoodisn’tit?”D、s_number為”Python”標準答案:C知識點解析:len()方法用來獲取字符串的長度,所以length應為14;title()方法是把字符串每個單詞的首字母變?yōu)榇髮懀詰獮镻ythonIsGood;索引的序號是從0開始的,所以s[1:6]應為ython。29、以下代碼的輸出結果是()。Test_list=list(range(6))print(6inTest_list)A、6B、6inTest_listC、TrueD、False標準答案:D知識點解析:Test_list是列表類型,6inTest_list表示如果6是列表Test_list的元素,返回True,否則返回False。本題選擇D選項。30、以下選項中不是Python文件讀/寫操作方法的是()。A、write()B、writelines()C、readtext()D、read()標準答案:C知識點解析:write():向文件寫入一個字符或字節(jié)流。writelines():將一個元素作為字符串的列表整體寫入文件。read():從文件中讀入整個文件內容。本題選擇C選項。31、下面代碼的輸出結果是()。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標準答案:B知識點解析:append()是向列表元素的結尾增加元素。本題選擇B選項。32、下列數據結構中,能夠按照“先進后出”原則存取數據的是()。A、循環(huán)隊列B、棧C、隊列D、二叉樹標準答案:B知識點解析:棧是按先進后出的原則組織數據的。隊列是按先進先出的原則組織數據。33、下列敘述中正確的是()。A、棧是一種先進先出的線性表B、隊列是一種后進先出的線性表C、棧與隊列都是非線性結構D、以上三種說法都不對標準答案:D知識點解析:棧是一種先進后出的線性表,隊列是一種先進先出的線性表,棧與隊列都是線性結構。34、層次型、網狀型和關系型數據庫劃分原則是()。A、記錄長度B、文件的大小C、聯系的復雜程度D、數據之間的聯系方式標準答案:D知識點解析:層次模型的基本結構是樹形結構,網狀模型是一個不加任何條件限制的無向圖,關系模型采用二維表來表示,所以三種數據庫的劃分原則是數據之間的聯系方式。35、下列不屬于處理Python中字典的方法的是()。A、pop()B、replace()C、get()D、popitem()標準答案:B知識點解析:pop()方法:鍵存在則返回相應值,同時刪除鍵值對,否則返回默認值;get()方法:若訪問的項不存在于字典中,返回默認值,若存在,則返回鍵對應的值;popitem()方法:隨機從字典中取出一個鍵值對,以元組(key,value)形式返回,同時將該鍵值對從字典中刪除。replace()方法:是字符串的操作方法,在字符串中用新的子串替換舊的子串,返回字符串的副本。36、以下程序的輸出結果是()。x=10y=0if(x>5)or(x/y>5):print(’Right’)else:print(’Wrong’)A、RightB、WrongC、報錯:ZeroDivisionErrorD、不報錯,但不輸出任何結果標準答案:A知識點解析:在Python中,or表示多個條件之間的”或”關系。xory,若x為True,則xory的結果為True,不再對y進行判斷。本題中,x>5為True,故(x>5)0r(x/y>5)的結果為True,輸出結果為Right。37、以下程序的輸出結果是()。defloc_glo(b=2,a=4):globalzz+=3*a+5*breturnzz=10print(z,loc_glo(4,2))A、3636B、3232C、1036D、1032標準答案:C知識點解析:本題中,變量z為全局變量,函數內部改變了該變量的值,外部該變量的值不變,因此最后z的值仍為10。然后執(zhí)行函數glo(4,2),將實參4傳遞給形參b,將實參2傳遞給形參a,函數體內z+=3*a+5*b可變形為z=10+3*a+5*b=10+3*2+5*4=36,函數的返回值為36。故答案為C項。二、基本編程題(本題共3題,每題1.0分,共3分。)38、考生文件夾下存在一個文件PY102.py,請寫代碼替換橫線,不修改其他代碼,實現以下功能:鍵盤輸入一段文本,保存在一個字符串變量s中,分別用Python內置函數及jieba.庫中已有函數計算字符串s的中文字符個數及中文詞語個數。注意:中文字符包含中文標點符號。例如,鍵盤輸入:科技是第一生產力屏幕輸出:中文字符數為8,中文詞語數為4。試題程序:#請在程序的________處使用一行代碼或表達式替換#注意:請不要修改其他已給出代碼importjiebas=input(“請輸入一個字符串”)n=________m=________print(”中文字符數為{},中文詞語數為{}?!保甪ormat(n,m))標準答案:importjiebas=input(”請輸入一個字符串”)n=len(s)m=len(jieba.lcut(s))print(”中文字符數為{},中文詞語數為{}?!保甪ormat(n,m))知識點解析:由題目可知,題目要求使用jieba中文分詞庫,統計輸入的字符串的長度以及中文詞語數。給定字符串s中僅包含中文字符及中文標點符號,因此可以直接使用len()函數統計字符數量。再使用jieba庫的lcut(s)方法,返回一個以中文詞語為元素的列表類型,使用len()獲得列表的長度,即中文詞語數量。39、考生文件夾下存在一個文件“PY101.py”,請寫代碼替換橫線,不修改其他代碼,實現以下功能。循環(huán)獲得用戶輸入,直至用戶輸入y或者Y則退出程序。試題程序:#請在________處使用一行代碼或表達式替換#注意:請不要修改其他已給出代碼While________(1)________:s=input(“請輸入信息:”)if________(2)________:break標準答案:whileTure:s=input("請輸入信息:")ifs=="y"ors=="Y":break知識點解析:題目要求無限循環(huán),即while的條件一直為真,所以第1空為True,根據鍵盤輸入的信息判斷是否結束循環(huán)。當輸入的信息為y或Y時退出循環(huán),所以if的判斷條件為“或”的關系,第2空應填s=="y"ors=="Y"。40、考生文件夾下存在一個文件PY103.py,請寫代碼替換橫線,不修改其他代碼,實現以下功能:以0為隨機數種子,隨機生成5個在1(含)到97(含)之間的隨機數,計算這五個隨機數的平方和。試題程序:#請在______處使用一行代碼或表達式替換##注意:請不要修改其他已給出代碼importrandom_____(1)_____s=0foriinrange(5):n=random.randint(_____(2)_____)#產生隨機數s=______(3)______print(s)標準答案:importrandomrandom.seed(0)s=0foriinrange(5):n=random.randint(1,97)#產生隨機數s=s+n**2print(s)知識點解析:題目要求以0為隨機數種子,seed()函數用于初始化隨機數種子,因此第一空應填入:random.seed(0)。randint(a,b)函數用于生成一個[a,b]之間的整數(包含a和b),題目要求的是1(含)到97(含)之間的隨機數,因此第二空填入:1,97。最后要求出五個隨機數的平方和,一個數的平方可以表示為n**2,平方和可表示為s=s+n**2,因此第三空填入:s+n**2。三、簡單應用題(本題共2題,每題1.0分,共2分。)41、編寫代碼完成如下功能:(1)建立字典d,包含內容是:’’數學’’:101,’’語文’’:202,’’英語’’:203,’’物理’’:204,’’生物’’:206。(2)向字典中添加鍵值對’’化學’’:205。(3)修改’’數學’’對應的值為201。(4)刪除’’生物’’對應的鍵值對。(5)打印字典d全部信息,參考格式如下(注意,其中逗號為英文逗號,逐行打印):201:數學202:語文(略)標準答案:(1)d={’’數學’’:101,’’語文’’:202,’’英語’’:203,’’物理”:204,’’生物’’:206}(2)d[’’化學’’]=205(3)d[’’數學’’]=201(4)deld[’’生物’’](5)forkeyind:print(’’{}:{}’’.format(d[key],key))知識點解析:這是一個簡單應用題,用來操作字典類型。(1)建立字典采用{}。d={’’數學’’:101,’’語文’’:202,’’英語’’:203,’’物理’’:204,’’生物’’:206}(2)可以使用字典索引[]方式直接增加新的“鍵值對”。d[’’化學’’]=205(3)可以使用字典索引[]方式直接修改“鍵值對”信息。d[’’數學’’]=201(4)使用del及字典索引[]方式刪除“鍵值對”信息。deld[’’生物’’](5)遍歷字典時需要注意,循環(huán)變量并不是“鍵值對”,而只是鍵,可以通過循環(huán)變量索引字典中鍵和值的信息。forkeyind:print(’’{}:{}’’.format(d[key],key))42、補充完善如下代碼。使得程序能夠計算a中各元素與b逐項乘積的累加和。a=[[1,2,3],[4,5,6],[7,8,9]]b=[3,6,9]①forcina:forjin②:s+=c[j]*b[j]print(s)標準答案:a=[[1,2,3],[4,5,6],[7,8,9]]b=[3,6,9]s=0forcina:forjinrange(3):s+=c[j]+b[j]print(s)知識點解析:這是一個簡單應用題,用來進行二維列表操作。由于題目要求進行求和,求和運算首先需要一個記錄求和的變量,該變量初始值應該為0,逐步累加。因此,該題目最先需要補充的代碼是給求和變量s賦值為0。之后,通過兩層循環(huán)遍歷列表所有元素,進行乘積求和操作。參考代碼及注釋如下:a=[[1,2,3],[4,5,6],[7,8,9]]b=[3,6,9]s=0#所有求和運算都要給予求和變量為0的初值forcina:forjinrange(3):s+=c[j]*b[j]#累加乘積求和print(s)四、綜合應用題(本題共1題,每題1.0分,共1分。)43、古代航海人為了方便在航海時辨別方位和觀測天象,將散布在天上的星星運用想象力將它們連接起來,有一半是在古時候已命名,另一半是近代開始命名的。兩千多年前古希臘的天文學家希巴克斯命名十二星座,依次為白羊座、金牛座、雙子座、巨蟹座、獅子座、處女座、天秤座、天蝎座、射手座、摩羯座、水瓶座和雙魚座。給出二維數據存儲CSV文件(SunSign.esv),內容如下:星座,開始月日,結束月日,Unicode水瓶座,120,218,9810雙魚座,219,320,9811白羊座,321,419,9800金牛座,420,520,9801雙子座,521,621,9802巨蟹座,622,722。9803獅子座,723,822,9804處女座,823,922,9805天秤座,923,1023,9806天蝎座,1024,1122,9807射手座,1123,1221,9808摩羯座,1222,119,9809請編寫程序,讀入CSV文件中數據,循環(huán)獲得用戶輸入,直至用戶直接輸入回車退出。根據用戶輸入的星座名稱,輸出此星座的出生日期范圍及對應字符形式。如果輸入的星座名稱有誤,請輸出“輸入星座名稱有誤!”。參考輸入和輸出如下所示:>>>請輸入星座中文名稱(例如,雙子座):雙子座Ⅱ座的生日位于521—621之間。請輸入星座中文名稱(例如,雙子座):獵戶座輸入星座名稱有誤!請輸入星座中文名稱(例如,雙子座):>>>標準答案:fi=open(’’SunSign.csv’’,’’r’’)ls=[]forlineinfi:line=line.replace(’’\n’’,’’’’)ls.append(line.split(’’,’’))fi.close()iStr=input(’’請輸入星座中文名稱(例如,雙子座):’’)whileiStr!=’’’’:flag=Falseforlineinls:ifiStr==line[0]:print(’’{}座的生日位于{}一{}之間?!躥ormat(chr(eval(line[3])),line[1],line[2]))flag=Truebreakifflag==False:print(’’輸入星座名稱有誤!’’)iStr=input(’’請輸入星座中文名稱(例如,雙子座):’’)知識點解析:本題主要考查導入CSV格式數據到列表中。需要注意的是,以split(’’,’’)方法從CSV文件中獲得內容時,每行最后一個元素后面包含了一個換行符(’’\n’’),這個換行符是多余的,可以使用字符串的replace()方法將其去除。參考程序代碼如下:InputStr=input(’’’’)#請輸入星座名稱,例如雙子座InputStr.strip()fo=open(’’SunSign.csv’’,’’r’’)ls=[]forlineinfo:line=line.replace(’’\n’’,’’’’)ls.append(line.split(’’,’’))fo.close()flag=Falseforlineinls:ifInputStr==line[0]:print(’’{}座的生日位于{}-{}之間?!躥ormat(chr(eval(line[3])),line[1],line[2]))flag=Trueifflag==False:print(’’輸入星座名稱有誤!’’)國家二級(Python)機試模擬試卷第3套一、單項選擇題(本題共34題,每題1.0分,共34分。)1、下列敘述中正確的是()。A、鏈表可以是線性結構也可以是非線性結構B、鏈表只能是非線性結構C、快速排序也適用于線性鏈表D、二分法查找也適用于有序鏈表標準答案:A知識點解析:線性表的鏈式存儲結構稱為線性鏈表,線性鏈表可以是線性結構也可以是非線性結構??焖倥判蚝投址ú檎疫m用于順序存儲的線性表。本題選擇A選項。2、循環(huán)隊列的存儲空間為Q(1:50)。經過一系列正常的入隊與退隊操作后,front=rear=25。然后又成功地將一個元素退隊,此時隊列中的元素個數為()。A、24B、49C、26D、0標準答案:B知識點解析:當front=rear時可知隊列要么為空要么為滿,因為又成功地將一個元素退隊,說明之前隊列為滿(為空時隊列中無元素),退出一個元素后隊列中還有50-1=49個元素。本題選擇B選項。3、設二叉樹中有20個葉子節(jié)點,5個度為1的節(jié)點,則該二叉樹中總的節(jié)點數為()。A、46B、45C、44D、不可能有這樣的二叉樹標準答案:C知識點解析:二叉樹中只存在度為0、1、2的結點,根據在二叉樹中度為0的結點(葉子結點)總比度為2的結點多一個,可知本題中度為2的結點有20-1=19個。故該二叉樹中總的結點數為20+5+19=44個。本題選擇C選項。4、設棧與隊列初始狀態(tài)為空。首先A、B、C、D、E依次入棧,接著F、G、H、I、J依次入隊;然后依次出隊至隊空,接著依次出棧至???。則輸出序列為()。A、E、D、C、B、A、F、G、H、I、JB、E、D、C、B、A、J、I、H、G、FC、F、G、H、I、J、A、B、C、D、E、D、F、G、H、I、J、E、D、C、B、A標準答案: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選項。5、程序流程圖是()。A、總體設計階段使用的表達工具B、詳細設計階段使用的表達工具C、編碼階段使用的表達工具D、測試階段使用的表達工具標準答案:B知識點解析:詳細設計階段常見的工具有程序流程圖、N-S圖、PAD圖、HIPO圖、判定表等。本題選擇B選項。6、下面屬于“對象”成分之一的是()。A、封裝B、規(guī)則C、屬性D、繼承標準答案:C知識點解析:面向對象方法中的對象由兩部分組成:①數據,也稱為屬性,即對象所包含的信息,表示對象的狀態(tài);②方法,也稱為操作,即對象所能執(zhí)行的功能、所能具有的行為。本題選擇C選項。7、數據庫管理系統能實現對數據庫中數據的查詢、插入、修改及刪除,這類功能稱為()。A、數據控制功能B、數據定義功能C、數據存儲功能D、數據操縱功能標準答案:D知識點解析:數據定義功能:負責數據的模式定義與數據的物理存取構建。數據操縱功能:負責數據的操縱,包括查詢與增、刪、改等操作。數據控制功能:負責數據完整性、安全性的定義與檢查以及并發(fā)控制、故障恢復等功能。本題選擇D選項。8、實體電影和實體演員之間的聯系是()。A、一對一B、多對多C、多對一D、一對多標準答案:B知識點解析:一部電影可由多名演員參演,一名演員可以參演多部電影,因此實體電影和實體演員之間的聯系是多對多。本題選擇B選項。9、定義學生的關系模式如下:S(S#,Sn,Sex,Age,D#,Da)(其屬性分別為學號、姓名、性別、年齡、所屬學院、院長)該關系滿足的最高范式是()。A、1NFB、2NFC、3NFD、BCNF標準答案:B知識點解析:關系數據庫中的關系是要滿足一定要求的,滿足不同程度要求的為不同的范式。滿足最低要求的叫第一范式,簡稱1NF。在滿足第一范式的基礎上,進一步滿足更多要求的則是第二范式。在滿足第二范式的基礎上,還可以再滿足第三范式,以此類推。對于關系模式,若其中的每個屬性都已不能再分為簡單項,則它屬于第一范式。若某個關系R為第一范式,并且R中每一個非主屬性完全依賴于R的某個候選鍵,則稱其為第二范式。第二范式消除了非主屬性對主鍵的部分依賴。如果關系R是第二范式,并且每個非主屬性都不傳遞依賴于R的候選鍵,則稱R為第三范式。(傳遞依賴:在關系模式中,如果Y→X,X→A,且X不決定Y、A不屬于X,那么Y→A是傳遞依賴。)本題中,關系S滿足第一范式和第二范式,但是S#→D#,D#→Da,存在傳遞依賴,因此不滿足第三范式。該關系滿足的最高范式是2NF。本題選擇B選項。10、以下不屬于Python保留字的是()。A、classB、passC、subD、def標準答案:C知識點解析:關鍵字是編程語言內部定義并保留使用的標識符。Python3.x有35個關鍵字,分別為and、as、assert、async、await、break、class、continue、def、del、elif、else、except、False、finally、for、from、global、if、import、in、is、lambda、None、nonlocal、not、or、pass、raise、return、True、try、while、with、yield。

溫馨提示

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

評論

0/150

提交評論