版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
國家二級(Python)機試模擬試卷3(共9套)(共392題)國家二級(Python)機試模擬試卷第1套一、單項選擇題(本題共38題,每題1.0分,共38分。)1、以下代碼的輸出結(jié)果是()。Ls=[[1,2,3],’python’,[[4,5,’ABC’],6],[7,8]]print(ls[2][1])A、‘ABC’B、PC、4D、6標準答案:D知識點解析:列表索引從0開始,所以ls[2][1]指的是列表中索引為2的元素[[4,5,’ABC’],6]中索引為1的元素6,所以輸出結(jié)果是6。本題選擇D選項。2、以下選項中是Python中文分詞的第三方庫的是A、turtleB、jiebaC、itchatD、time標準答案:B知識點解析:turtle庫實現(xiàn)了海龜繪圖體系,提供基本圖形繪制功能;jieba庫提供中文分詞功能;itchat庫提供Python微信接口功能;time庫提供獲取并操作系統(tǒng)時間功能。3、在深度為7的滿二叉樹中,結(jié)點個數(shù)總共是A、32B、64C、127D、63標準答案:C知識點解析:所謂滿二叉樹是指這樣的二叉樹:除最后一層外,每一層上的所有結(jié)點都有兩個子結(jié)點。深度為n的滿二叉樹有2n一1個結(jié)點。4、下面代碼的輸出結(jié)果是a=1000000b=’’-’’print(’’{0:{2}∧{1},}\n{0:{2}>{1},}\n{0:{2}<{1},}’’.format(a,30.b))A、----------1,000,000--------------------------------1,000,0001,000,000----------------------B、1,000,000------------------------------------------1,000,000----------1,000,000-----------C、---------------------1,000,0001,000,000-------------------------------1,000,000-----------D、---------------------1,000,000----------1,000,000-----------1,000,000---------------------標準答案:A知識點解析:熟練掌握字符串格式化的format()方法的格式控制、槽順序和參數(shù)順序。∧、<、>表示居中對齊、左對齊、右對齊。5、屬于結(jié)構(gòu)化程序設(shè)計原則的是()。A、模塊化B、可繼承性C、可封裝性D、多態(tài)性標準答案:A知識點解析:結(jié)構(gòu)化程序設(shè)計方法的原則包括自頂向下、逐步求精、模塊化、限制使用goto語句。B、C、D這3項屬于面向?qū)ο蠓椒ǖ奶攸c。本題選擇A選項。6、確定軟件項目是否進行開發(fā)的文檔是()。A、需求分析規(guī)格說明書B、可行性報告C、軟件開發(fā)計劃D、測試報告標準答案:B知識點解析:可行性報告產(chǎn)生于軟件定義階段,用于確定軟件項目是否進行開發(fā)。7、以下選項中,屬于Python語言中合法的二進制整數(shù)是A、0b1708B、0B2010C、081019D、0bC3F標準答案:B知識點解析:OB是整數(shù)類型二進制的引導(dǎo)符號,二進制數(shù)的數(shù)碼只有0和1,A、C、D選項中出現(xiàn)了其他數(shù)碼,所以是不合法的二進制整數(shù)。8、以下選項中,不是Python語言基本控制結(jié)構(gòu)的縣A、順序結(jié)構(gòu)B、程序異常C、循環(huán)結(jié)構(gòu)D、跳轉(zhuǎn)結(jié)構(gòu)標準答案:D知識點解析:跳轉(zhuǎn)結(jié)構(gòu)不是Python語言的基本控制結(jié)構(gòu)。9、以下選項中,Python機器學(xué)習(xí)方向的第三方庫是A、requestsB、TensorFlowC、scipyD、PyQt5標準答案:B知識點解析:TensorFlow是Python機器學(xué)習(xí)方向的第三方庫。10、設(shè)一年365天,第1天的能力值為基數(shù)記為1.0。當(dāng)好好學(xué)習(xí)時能力值相比前一天會提高千分之五。以下選項中,不能獲得持續(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()函數(shù)和**數(shù)值運算操作符。11、鍵盤輸入數(shù)字10,以下代碼的輸出結(jié)果是()。try:n=input(”請輸入一個整數(shù):”)defpow2(n):retumn*nexcept:print(”程序執(zhí)行錯誤”)A、100B、10C、程序執(zhí)行錯誤D、程序沒有任何輸出標準答案:D知識點解析:Python語言使用保留字try和except進行異常處理,基本的語法格式如下:try:<語句塊1>except:<語句塊2>語句塊1是正常執(zhí)行的程序內(nèi)容,當(dāng)執(zhí)行這個語句塊發(fā)生異常時,則執(zhí)行except保留字后面的語句塊2。這里當(dāng)輸入10時,執(zhí)行try后面的語句,n=10,函數(shù)pow2()只進行了定義,但未進行調(diào)用,所以此時程序只執(zhí)行了輸入語句,函數(shù)不執(zhí)行,語句運行正常,并不執(zhí)行except后面的語句,故程序沒有任何輸出。12、在軟件生命周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是A、概要設(shè)計B、需求分析C、詳細設(shè)計D、可行性分析標準答案:B知識點解析:需求分析階段對待開發(fā)軟件提出的需求進行分析并給出了詳細定義,編寫軟件規(guī)格說明書及初步的用戶手冊。13、定義學(xué)生選修課程的關(guān)系模式如下:SC(S#,Sn,C#,Cn,G,Cr)(其屬性分別為學(xué)號、姓名、課程號、課程名、成績、學(xué)分)該關(guān)系可進一步規(guī)范化為()。A、S(S#,Sn,C#,Cn,Cr),SC(S#,C#,G)B、S(S#,Sn),C(C#,Cn,Cr),SC(S#,C#,G)C、C(C#,Cn,Cr),SC(S#,Sn,C#,G)D、S(S#,Sn),C(C#,Cn),SC(S#,C#,Cr,G)標準答案:B知識點解析:關(guān)系SC的主鍵為復(fù)合鍵(學(xué)號,課程號),但明顯存在課程號→課程名,課程號→學(xué)分等,存在非主屬性對主屬性的部分依賴。對關(guān)系SC進行如下的分解,就可以消除對非主屬性的部分依賴,滿足第二范式:S(S#,Sn),C(C#,Cn,Cr),SC(S#,C#,G)。本題選擇B選項。14、ls=[3.5,’’Python’’,[10,’’LIST’’],3.6],ls[2][一1][1]的運行結(jié)果是A、LB、IC、PD、Y標準答案:B知識點解析:列表是包含0個或多個對象引用的有序序列。多個對象可以包含數(shù)值、字符串、列表。列表支持分片[]操作。15、以下用于繪制弧形的函數(shù)是A、turtle.fd()B、turtle.seth()C、turtle.right()D、turtle.circle()標準答案:D知識點解析:turtle.circle()函數(shù)用來繪制一個弧形。16、以下程序的輸出結(jié)果是()。a,b,e=’I’,chr(64),"you"s=a+b+cprint(s)A、IB、BC、CD、D標準答案:A知識點解析:程序中,chr(64)輸出的是字符@,之后用“+”連接字符串,最后輸出I@you。本題選擇A選項。17、以下程序的輸出結(jié)果是()。sum=1foriinrange(1,11):sum+=iprint(sum)A、1B、56C、67D、56.0標準答案:B知識點解析:foriinrange(1,11)是將1,2,3,4,5,6,7,8,9,10依次賦給變量i,用變量sum累加每一次變化的i的值,最終sum=56。本題選擇B選項。18、軟件設(shè)計中模塊劃分應(yīng)遵循的準則是()。A、低內(nèi)聚、低耦合B、高內(nèi)聚、低耦合C、低內(nèi)聚、高耦合D、高內(nèi)聚、高耦合標準答案:B知識點解析:軟件設(shè)計中模塊劃分應(yīng)遵循的準則是高內(nèi)聚低偶合、模塊大小適當(dāng)、模塊的依賴關(guān)系適當(dāng)?shù)取DK的劃分應(yīng)遵循一定的要求,以保證模塊劃分合理,并進一步保證以此為依據(jù)開發(fā)出的軟件系統(tǒng)可靠性強,易于理解和維護。模塊之間的耦合應(yīng)盡可能低,模塊的內(nèi)聚度應(yīng)盡可能高。本題選擇B選項。19、下列關(guān)于Python程序格式的描述中,錯誤的是()。A、縮進表達了所屬關(guān)系和代碼塊的所屬范圍B、注釋可以在一行中的任意位置開始,這一行都會作為注釋不被執(zhí)行C、進行賦值操作時,在運算符兩邊各加上一個空格可以使代碼更加清晰明了D、文檔注釋的開始和結(jié)尾使用三重單引號“’’’”或三重雙引號“””””標準答案:B知識點解析:注釋可以在一行中的任意位置開始,但只有在“#”后的才會被作為注釋不被執(zhí)行。本題選擇B選項。20、Python中定義類的關(guān)鍵字是()。A、defB、defunC、functionD、class標準答案:D知識點解析:def是定義函數(shù)的關(guān)鍵字。defun和function不是Python中的關(guān)鍵字。class是定義類的關(guān)鍵字。21、以下保留字不屬于分支結(jié)構(gòu)的是()。A、ifB、elseC、whileD、elif標準答案:C知識點解析:while屬于循環(huán)結(jié)構(gòu)。22、有3個關(guān)系R、S、T如下:由關(guān)系R和S通過運算得到關(guān)系T,則所使用的運算為()。A、笛卡兒積B、交C、并D、自然連接標準答案:D知識點解析:自然連接是一種特殊的等值連接,它要求兩個關(guān)系中進行比較的分量必須是相同的屬性,并且在結(jié)果中把重復(fù)的屬性列去掉,所以根據(jù)T關(guān)系中的有序組可知R與S進行的是自然連接運算。本題選擇D選項。23、下面代碼輸出的結(jié)果是()。list=[[0,1,2],”123.0”,”python”]a=all(list[0])b=list[1].split(”.”)e=ascii(1ist[2])print(a,b,c)A、True[’123’]’python’B、False[‘0]’1’C、True[’123’,0]~1D、False[’123’,’0’]’python’標準答案:D知識點解析:all(x)函數(shù)當(dāng)組合類型變量x中所有元素為真時返回True,為假時返回False,若為空,則返回True,所以a的值為False.b中split()是字符串分隔函數(shù),返回分隔后的值應(yīng)為[’123’,’0’];c中ascii()的參數(shù)是字符串’python’,所以返回’python’。24、下面代碼的輸出結(jié)果是()。x=10whilex:x-=1ifx%2:print(x,end=’’)else:passA、86420B、975311C、97531D、864200標準答案:C知識點解析:while條件為真時進入循環(huán)體,執(zhí)行循環(huán)體中的內(nèi)容。如果x的值為偶數(shù)則if條件為假,不執(zhí)行任何操作,為奇數(shù)則if條件為真,輸出該奇數(shù);進入下一次循環(huán),判斷while條件,判斷是否進入循環(huán)體,執(zhí)行循環(huán)體中的代碼。后面的操作類似,直到while條件不滿足。經(jīng)過一系列的運算,輸出結(jié)果為97531。本題選擇C選項。25、以下關(guān)于字符串的描述正確的是()。A、字符應(yīng)視為長度為1或2的字符串B、字符串中的字符可進行數(shù)學(xué)運算,但進行數(shù)學(xué)運算的字符必須為數(shù)字C、在三引號字符串中可包含換行回車等特殊的字符D、字符串可以進行切片賦值標準答案:C知識點解析:字符應(yīng)視為長度為1的字符串;字符串中的字符不可以進行數(shù)學(xué)運算,如果是數(shù)字字符串需要將其轉(zhuǎn)換為數(shù)值類型方可計算;字符串可進行切片,但不能賦值。26、下面代碼的輸出結(jié)果是()。x=10whilex:x一=1ifx%2:print(x,end=”)else:passA、86420B、975311C、97531D、864200標準答案:C知識點解析:while條件為真時進入循環(huán)體,執(zhí)行循環(huán)體中的內(nèi)容。如果x的值為偶數(shù)則if條件為假,不執(zhí)行任何操作,為奇數(shù)則if條件為真,輸出該奇數(shù);進入下一次循環(huán),判斷while條件,判斷是否進入循環(huán)體,執(zhí)行循環(huán)體中的代碼。后面的操作類似,直到while條件不滿足。經(jīng)過一系列的運算,輸出結(jié)果為:97531。27、下面代碼的輸出結(jié)果是()。foriinrange(0,10,2):print(i,end=””)A、02468B、2468C、0246810D、246810標準答案:A知識點解析:range(start,end,step)產(chǎn)生的是以[start,end)為區(qū)間并且步長為step的一個序列。通過for循環(huán)遍歷輸出,輸出格式以空格輸出。28、下面代碼中描述的是哪一種傳入?yún)?shù)的方法?()deff(a,b):ifa>b:print("1")elifa=b:print("2")else:print("3")f(2,3)A、可變參數(shù)B、關(guān)鍵字參數(shù)C、默認值參數(shù)D、位置參數(shù)標準答案:D知識點解析:f()函數(shù)中參數(shù)數(shù)量是固定的,所以A選項錯誤;傳入?yún)?shù)時并沒有指定形參a或b,所以B選項錯誤;函數(shù)并沒有自帶默認值參數(shù),且使用函數(shù)時傳入了兩個實參,C選項錯誤。該函數(shù)的傳參方式采用默認的傳參方式,即位置參數(shù)傳參。本題選擇D選項。29、下面代碼的輸出結(jié)果是()。foriinrange(3):foriin”dream”:ifj==”e”:continueprint(j,end=””)A、dramdramdramB、drdrdrC、dreamdreamdreamD、dream標準答案:A知識點解析:continue語句只結(jié)束本次循環(huán),不終止整個循環(huán)的執(zhí)行,而break語句具備結(jié)束循環(huán)的能力。本題外層循環(huán)用來計數(shù),內(nèi)層循環(huán)用來遍歷字符串,當(dāng)滿足判斷條件時,就會結(jié)束本次循環(huán)進入下一循環(huán),字符串遍歷完成之后,外層循環(huán)進入下一循環(huán)。30、不屬于Python的標準庫的是()。A、osB、sysC、scipyD、glob標準答案:C知識點解析:scipy是Python的數(shù)據(jù)分析方向的第三方庫。31、下面關(guān)于Python內(nèi)置函數(shù)的說法錯誤的是()。A、內(nèi)置函數(shù)是不需要關(guān)鍵字import導(dǎo)入而可以直接使用的函數(shù)B、求絕對值的函數(shù)abs(x)是Python的內(nèi)置函數(shù)C、range(a,b,s)函數(shù)是Python的內(nèi)置函數(shù)D、開平方函數(shù)sqrt(x)是Python的內(nèi)置函數(shù)標準答案:D知識點解析:sqrt(x)是math庫中的一個函數(shù),并不是Python的內(nèi)置函數(shù)。本題選擇D選項。32、下列關(guān)于Python的描述正確的是()。A、代碼的縮進錯誤導(dǎo)致的是邏輯錯誤B、跳躍結(jié)構(gòu)是Python的流程結(jié)構(gòu)之一C、Python支持的數(shù)據(jù)類型包括chat、int及float等D、Python內(nèi)存管理中,變量無須事先創(chuàng)建和賦值,而是可以直接使用標準答案:A知識點解析:Python包括3種控制結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)及循環(huán)結(jié)構(gòu);Python支持的數(shù)據(jù)類型有數(shù)字類型和字符串類型;Python變量使用前需要定義。本題選擇A選項。33、下列關(guān)于分支結(jié)構(gòu)的描述錯誤的是()。A、分支結(jié)構(gòu)包括單分支結(jié)構(gòu)、二分支結(jié)構(gòu)及多分支結(jié)構(gòu)B、單分支結(jié)構(gòu)的書寫形式包括(if-else)C、多分支結(jié)構(gòu)通常適用于判斷一類條件或同一個條件的多個執(zhí)行路徑D、使用多分支結(jié)構(gòu)時需要注意多個邏輯條件的先后順序.避免邏輯上的錯誤標準答案:B知識點解析:單分支結(jié)構(gòu)的書寫形式如下:if<條件>:<語句塊>二分支結(jié)構(gòu)的書寫形式如下:if<條件>:<語句塊1>else:<語句塊2>本題選擇B選項。34、下列說法正確的是()。A、set()可以將任何類型轉(zhuǎn)換為集合類型B、remove()方法刪除集合中的元素,不管元素存不存在都不報錯C、集合中的元素不可重復(fù),元素類型只能是不可變數(shù)據(jù)類型D、集合元素是有序的標準答案:C知識點解析:set()函數(shù)將其他組合數(shù)據(jù)類型變成集合類型;remove()刪除集合中指定的元素,不存在則產(chǎn)生KeyError異常;集合元素是無序的,集合的輸出順序與定義順序可以不一致。本題選擇C選項。35、如果文件a.txt在目錄“C:\\A”下,執(zhí)行以下代碼會發(fā)生的操作是()。importosos.rmdir(r’C:\\A’)A、刪除文件夾A,保留文件a.txtB、刪除文件夾A和文件a.txtC、刪除文件a.txt,保留文件夾AD、OSError標準答案:D知識點解析:使用nadir()刪除目錄之前要先清除其中所有的文件,否則會報OSError錯誤。本題選擇D選項。36、以下語句不會引發(fā)異常的是()。A、a=b=3+1jB、1+”1”C、3/0D、ptint”noerror”標準答案:A知識點解析:不同類型之間不能相互運算;除數(shù)不能為0;print”noerrort”語句是Python2.X版本系列的語法,不適用Python3.x系列。37、關(guān)于字典的描述,錯誤的是()。A、字典的元素以鍵為索引進行訪問B、字典的一個鍵可以對應(yīng)多個值C、字典長度是可變的D、字典是鍵值對的結(jié)合,鍵值對之間沒有順序標準答案:B知識點解析:在Python中,字典是存儲可變數(shù)量鍵值對的數(shù)據(jù)結(jié)構(gòu),通過字典類型實現(xiàn)映射,一個鍵對應(yīng)一個值,鍵必須是唯一的,且必須是不可變數(shù)據(jù)類型,值可以是任何數(shù)據(jù)類型。字典具有和集合類似的性質(zhì),即鍵值對之間沒有順序且不能重復(fù)。字典可以通過”字典[’鍵’]”的形式訪問對應(yīng)的元素,即以鍵為索引進行訪問。故描述錯誤的是B項。38、執(zhí)行以下程序,輸出結(jié)果是()。y=’中文’x=’中文字’print(x>y)A、NoneB、FalseC、FalseorFalseD、True標準答案:D知識點解析:在Python中比較兩個字符串的大小,要從第一個字符開始比較,只要比較出了大小就結(jié)束。本題中,x和y的前兩個字符相同,但y沒有第三個字符,所以x大,則x>y的結(jié)果為True。二、基本編程題(本題共3題,每題1.0分,共3分。)39、僅使用Python基本語法,即不使用任何模塊,編寫Python程序計算下列數(shù)學(xué)表達式的結(jié)果并輸出,小數(shù)點后保留3位。x=標準答案:x=pow((3**4+5*(6**7))/8,0.5)print(’’{:.3f}’’.format(x))知識點解析:這是一個基本編程題,使用Python程序?qū)?shù)學(xué)公式進行計算。該題目有2個要求:僅使用Python基本語法和小數(shù)點后保留3位。該數(shù)學(xué)公式計算包含求平方根,有兩種方法完成:第一,使用Python內(nèi)置函數(shù)pow(),數(shù)字N的平方根是pow(N,0.5);第二,使用操作符**,數(shù)字N的平方根是N**0.5。小數(shù)點后保留3位,有兩種方法可以完成:第一,使用字符串格式化方法輸出3位小數(shù),數(shù)字N的3位小數(shù)輸出采用’’{:.3f}’’.format(N);第二,使用Python內(nèi)置函數(shù)round(),數(shù)字N保留3位小數(shù)方法是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))40、考生文件夾下存在一個文件“PY101.py”,請寫代碼替換橫線,不修改其他代碼,實現(xiàn)以下功能。隨機選擇一個手機品牌的名稱輸出。試題程序:#請在程序的________處使用一行代碼替換#注意:請不要修改其他已給出代碼import________(1)________brandlist=[’三星’,’蘋果’,’vivo’,’OPPO’,’魅族’]random.seed(0)________(2)________print(name)標準答案:importrandombrandlist:[’三星’,’蘋果’,’vivo’,’OPPO’,’魅族’]random.seed(0)name=brandlist[random.randint(0,4)]。print(name)知識點解析:本題要求隨機輸出列表中的一個手機名稱,“隨機”需要用到Python的標準庫random,因此第l空填random。random.seed(0)的作用是設(shè)置初始化隨機數(shù)種子,設(shè)置種子的好處就是可以重復(fù)再現(xiàn)相同的隨機數(shù)序列。輸出列表中的元素可以使用索引的方法,分析代碼可知,列表中共有5個元素,所以元素的索引為0~4,需要用到random庫的randint()方法。random.randint(a,b)的作用是產(chǎn)生一個范圍為[a,b]的隨機整數(shù)。因此第2空填name=brandlist[random.randint(0,4)]。41、使用程序計算整數(shù)N到整數(shù)N+100之間所有奇數(shù)的數(shù)值和,不包含N+100,并將結(jié)果輸出。整數(shù)N由用戶給出,代碼片段如下,補全代碼。不判斷輸入異常。N=input(’’請輸入一個整數(shù):’’)①#可以是多行代碼標準答案:N=input(’’請輸入一個整數(shù):’’)s=0foriinrange(eval(N),eval(N)+100):ifi%2==1:s+=iprint(s)知識點解析:這是一個基本編程題,考核整數(shù)求和的過程。對于整數(shù)n,獲得整數(shù)n到整數(shù)n+100之間的所有整數(shù)可以使用range(n,n+100),其中不包含n+100。由于不確定n的奇偶性,需要使用i%2方式判斷。該題目需要注意,給定程序中N是input()函數(shù)的賦值,實際上為字符串,進行range()函數(shù)計算時,需要使用eval(N)將其變換成整數(shù)。綜上,該問題參考代碼如下:N=input(’’請輸入一個整數(shù):’’)s=0foriinrange(eval(N),eval(N)+100):ifi%2==1:s+=iprint(S)三、簡單應(yīng)用題(本題共2題,每題1.0分,共2分。)42、考生文件夾下存在一個文件“PY201.py”,請寫代碼替換橫線,不修改其他代碼,實現(xiàn)以下功能。使用turtle庫的turtle.fd()函數(shù)和turtle.seth()函數(shù)繪制一個正方形,邊長為200像素。效果如下所示。試題程序:#清在程序的________處使用一行代碼或表達式替換#注意:請不要修改其他已給出代碼importturtled=0foriinrange(________(1)________):turtle.fd(________(2)________)d=________(3)________turtle.seth(d)標準答案:importturtled=0foriinrange(4):turtle.fd(200)d=d+90turtle.seth(d)知識點解析:該題考察的是用Python標準庫turtle庫來繪制正方形。因為繪制4條邊,所以循環(huán)執(zhí)行4次,因此第1空填4。正方形邊長為200像素,所以第2空填200。因為使用seth()方法更改繪制方向,所以繪制一條邊后,角度增加90繪制下一條邊,因此第3空應(yīng)填入d+90。43、考生文件夾下存在一個文件“PY201.py”,請寫代碼替換橫線,不修改其他代碼,實現(xiàn)以下功能。使用turtle庫中的pencolor()和fillcolor()方法為圖形著色(畫筆顏色為黑色,填充顏色為紅色),使用setup()方法在桌面(400,400)的位置創(chuàng)建600像素×600像素的畫布窗體,效果如下所示。試題程序#請在________處使用一行代碼或表達式替換#注意:請不要修改其他已給出代碼fromturtleimport*defcurvemove():foriinrange(200):right(1)forward(1)setup(600,600,400,400)hideturtle()________(1)________(’black’)________(2)________(’red’)pensize(2)begin_fill()left(140)forward(111.65)curvemove()left(120)curvemove()forward(111.65)end_fill()penup()goto(-27,85)pendown()done()標準答案:fromturtleimport*defcurvemove():foriinrange(200):right(1)forward(1)setup(600,600,400,400)hideturtle()pencolor(’black’)fillcolor("red")pensize(2)beginfill()left(140)forward(111.65)curvemove()left(120)curveruove()forward(111.65)end_fill()penup()goto(-27,85)pendown()done()知識點解析:turtle庫是Python的標準庫,其中setup(width,height,startx,starty)用來設(shè)置畫布窗體的大小和位置;pencolor()用來設(shè)置畫筆的顏色;fillcolor()用來填充圖形顏色。由題干給出的圖形可知,畫筆的顏色應(yīng)為黑色,填充顏色應(yīng)為紅色,因此第1空應(yīng)填pencolor,第2空應(yīng)填fillcolor。四、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)44、考生文件夾下存在兩個Python源文件,分別對應(yīng)兩個問題,請按照文件內(nèi)說明修改代碼,實現(xiàn)以下功能。馬和駱駝都是哺乳動物,它們都有4只腳,體型也差不多大.我們將在這里為它們編寫屬于它們各自的類。問題1:在“PY301-1.py”文件中修改代碼,代碼中編寫了一個馬(Home)的類,在這個類中馬有3個屬性,分別是年齡(age)、品種(category)及性別(gender)。在每創(chuàng)建一個馬的對象時,我們需要為其指定它的年齡、品種及性別。該類中還編寫一個get_descriptive()方法,能夠輸出馬的這3個屬性。每一匹馬都有自己的最快速度,所以類中有一個speed()方法,可以輸出馬的最快速度值。并且在馬的生命過程中,它的速度一直在變,類中還有一個update_speed()方法用來更新馬當(dāng)前的最快速度值。例如:一匹12歲的阿拉伯公馬,在草原上奔跑的速度為50千米每小時,要求調(diào)用get_descriptive()和update_speed()方法,將輸出的結(jié)果保存在考生文件夾下,文件命名為“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)。這個類繼承自上一個文件中的馬類但是不對馬類中的屬性和方法進行操作。因為每個駱駝的駝峰數(shù)量不一致,我們在類中添加駝峰數(shù)目這個新屬性,并且添加一個輸出駱駝駝峰數(shù)目的方法。例如:一個20歲的雙峰母駱駝以每小時40千米的速度奔跑在沙漠中,調(diào)用父類的方法和Camel類本身的方法將結(jié)果保存在“PY301-2.txt”中,保存在考生文件夾下。試題程序:#以下代碼為提示框架#請在…處使用一行或多行代碼替換#請在________處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準fo=open("PY301-2.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.\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()標準答案:(1)fo=open("PY301-1.txt","w")classHorse():def__int__(self,category,gender,age):self.category=categoryself.gender=genderself.a(chǎn)ge=ageself.horse=horsedefget_descriptive(self):info=’thishorseis’+str(self.a(chǎn)ge)+’yearsold,’+’itscategoryis’+self.category+’,’+’itsfenderis’+self.gender+’.’fo.write(info+"\n")defupdate_speed(self,new_speed):self.horse_speed=new_speedfo.write(’thespeedofthishorseis’+str(self.horse_speed)+"km/h.")horse=Horse("Arab","male","12")horse.get_descriptive()horse.update_speed(50)fo.close()(2)fo=open("PY301-2.txt","w")classHorse():def__init__(self,category,gender,age):self.category=categoryself.gender=genderself.a(chǎn)ge=ageself.horse_speed=0defget_deseriptive(self):info=’thishorseis’+str(self.a(chǎn)ge)+’yearsold,’+’itscategoryis’+self.category+’,’+’itsfenderis’+self.gender+’.’fo.write(info+"\n")defupdate_speed(self,new_speed):self.horse_speed=new_speedfo.write(’thespeedofthishorseis’+str(self.horse_speed)+"km/h.\n")classCamel(Horse):def__init__(self,category,gender,age):super().__init__(category,gender,age)self.hump_size=2defdescribe_hump_size(self):fo.write(’thiscamelhas’+str(self.hump_size)+’hump.’)camel=Camel("Doublehump","famle","20")camel.get_descriptive()camel.update_speed(40)camel.describe_hump_size()fo.close知識點解析:(1)文件的操作需要調(diào)用open()方法以覆蓋寫模式打開文件。Python定義類使用的關(guān)鍵字是class,且類的名稱首字母要大寫。__init__()是類的特殊方法,當(dāng)根據(jù)Horse類創(chuàng)建新實例時,Python都會自動運行它。在這個方法中,開頭和結(jié)尾各有兩個下劃線,這是固定格式。__init__()方法中定義了4個形參:self、eategory、gender及age。在這個方法定義中形參self必不可少,且必須位于其他形參前面。每個定義的變量都要以self為前綴,以self為前綴的變量都可供類中的所有方法使用。調(diào)用方法需要創(chuàng)建實例,然后使用點號表示法來調(diào)用Horse類中定義的任何方法。使用write()方法將結(jié)果寫入文件“PY301-1.txt”中,操作完成之后,調(diào)用close()方法關(guān)閉文件。(2)在“問題1”的基礎(chǔ)上又添加了一個Camel類,super()是一個特殊函數(shù),幫助Python將父類和子類關(guān)聯(lián)起來。創(chuàng)建子類時,父類必須包含在當(dāng)前文件中,且位于子類前面。定義子類時,必須在圓括號內(nèi)指定父類的名稱。國家二級(Python)機試模擬試卷第2套一、單項選擇題(本題共37題,每題1.0分,共37分。)1、下列敘述中正確的是()。A、循環(huán)鏈表中至少有一個結(jié)點B、雙向鏈表有兩個頭指針C、雙向鏈表有兩個頭結(jié)點D、循環(huán)鏈表是循環(huán)隊列的鏈式存儲結(jié)構(gòu)標準答案:A知識點解析:循環(huán)鏈表是指在單鏈表的第一個結(jié)點前增加一個表頭結(jié)點,即空循環(huán)鏈表和非空循環(huán)鏈表中均存在表頭結(jié)點,故循環(huán)鏈表中至少有一個結(jié)點,A項正確。循環(huán)鏈表是線性表的一種鏈式存儲結(jié)構(gòu),循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu),D項錯誤。雙向鏈表也叫雙鏈表,是鏈表的一種,它的每個數(shù)據(jù)結(jié)點中都有兩個指針(左指針和右指針),分別指向其前件結(jié)點和后件結(jié)點。雙向鏈表中只有一個頭指針且無頭結(jié)點,B、C兩項錯誤。2、下列算法中,最壞情況下時間復(fù)雜度最低的是()。A、堆排序B、尋找最大項C、順序查找D、有序表的對分查找標準答案:D知識點解析:對于長度為n的有序線性表,在最壞情況下,二分法查找(對分查找)需比較log2n次。對于長度為n的線性表,最壞情況下順序查找需要n次,尋找最大項需要n一1次,堆排序需要nlog2n次。故D項的時間復(fù)雜度最低。3、樹的度為3,且有9個度為3的結(jié)點,20個葉子結(jié)點,但沒有度為1的結(jié)點。則該樹總的結(jié)點數(shù)為()。A、29B、30C、47D、不可能有這樣的樹標準答案:B知識點解析:設(shè)總結(jié)點數(shù)是n,則度為2的結(jié)點為n一9—20—0=n一29。根據(jù)樹中的結(jié)點數(shù)=樹中所有結(jié)點的度之和+1,得9×3+(n一29)×2+0×1+20×0+1=n,則n=30。4、設(shè)二叉樹的中序序列為BDCA,后序序列為DCBA,則前序序列為()。A、BCDAB、CBDAC、ABCDD、ACDB標準答案:C知識點解析:由于后序序列最后遍歷根結(jié)點,故可確定該二叉樹的根結(jié)點為A。根據(jù)前序序列首先訪問根結(jié)點A,可排除A、B兩項。由中序序列為BDCA,可確定該二叉樹只有左子樹,沒有右子數(shù),再由后序序列為DCBA,可確定左子樹的根結(jié)點為B。前序序列訪問完該樹的根結(jié)點A后,再訪問左子樹的根結(jié)點B,故答案為C項。5、對軟件系統(tǒng)總體結(jié)構(gòu)圖描述正確的是()。A、深度等于控制的層數(shù)B、扇入是一個模塊直接調(diào)用的其他模塊數(shù)C、結(jié)構(gòu)圖是描述軟件系統(tǒng)功能的D、從屬模塊一定是原子模塊標準答案:A知識點解析:扇入是指調(diào)用一個給定模塊的模塊個數(shù),扇出是指由一個模塊直接調(diào)用的其他模塊個數(shù),B項錯誤。從屬模塊是指被另一個模塊調(diào)用的模塊,原子模塊是從屬模塊,但從屬模塊不一定是原子模塊,D項錯誤。結(jié)構(gòu)圖是描述軟件結(jié)構(gòu)的圖形工具,C項錯誤。6、概念模型是()。A、用于現(xiàn)實世界的建模,與具體的DBMS有關(guān)B、用于信息世界的建模,與具體的DBMS有關(guān)C、用于現(xiàn)實世界的建模,與具體的DBMS無關(guān)D、用于信息世界的建模,與具體的DBMS無關(guān)標準答案:C知識點解析:概念模型,著重于對客觀世界復(fù)雜事物的描述及對它們內(nèi)在聯(lián)系的刻畫,與具體的DBMS(數(shù)據(jù)庫管理系統(tǒng))無關(guān)。7、中學(xué)教師和授課班級之間的聯(lián)系是()。A、一對一B、一對多C、多對一D、多對多標準答案:D知識點解析:一位教師可以對多個班級授課,一個班級也可以由多位教師授課,因此,教師和授課班級之間的聯(lián)系是多對多聯(lián)系。8、定義學(xué)生選修課程的關(guān)系模式如下:SC(S#,Sn,C#,Cn,G,Cr)(其屬性分別為學(xué)號、姓名、課程號、課程名、成績、學(xué)分)則對主屬性部分依賴的是()。A、C#→CrB、(S#,C#)→GC、(S#,C#)→S#D、(S#,C#)→C#標準答案:A知識點解析:關(guān)系SC的主屬性為(S#、C#),但C#→Cr屬于非主屬性對主屬性的部分依賴。9、以下不是Python語言所使用特殊含義符號的是()。A、$B、**C、&D、+=標準答案:A知識點解析:在Python中,有特殊含義的符號:+、一、*、/、%、**、//、==、!=、<>、>、<、>=、<=、=、+=、一=、*=、/=、%=、**=、//=、&、|、^、~、<<、>>、&=、I=、^=、~=。故答案為A項。10、以下不是Python語言保留字的是()。A、awaitB、passC、doD、lambda標準答案:C知識點解析:保留字也稱關(guān)鍵字,指被編程語言內(nèi)部定義并保留使用的標識符。Python3.x版本的保留字有35個,分別是and,as,assert,async,await,break,class,continue,def,del,elif,else,except,F(xiàn)alse,finally,for,from,global,if,import,in,is,lambda,None,nonlocal,not,or,pass,raise,return,True,try,with,whiIe,yield。11、以下保留字不用于循環(huán)邏輯的是()。A、tryB、elseC、forD、continue標準答案:A知識點解析:用于循環(huán)邏輯的保留字:while、for、else、break、continue。try用于捕捉異常。12、S=’1234567890’,以下表示’1234’的選項是()。A、s[1:5]B、s[0:3]C、s[一10:-5]D、s[0:4]標準答案:D知識點解析:對字符串中某個子串或區(qū)間的檢索稱為切片。切片的使用方式如下:<字符串或字符串變量>[N:M]切片獲取字符串從N到M(不包含M)的子字符串,其中N和M為字符串的索引序號,可以混合使用正向遞增序號和反向遞減序號。切片要求N和M都在字符串的索引區(qū)間,如果N大于等于M,則返回空字符串。如果N缺失,則默認將N設(shè)為0;如果M缺失,則默認表示到字符串結(jié)尾。題干中s[1:5]=’2345’,s[0:3]=’123’,s[一10:一5]=’12345’,s[0:4]=’1234’。13、表達式3+5%6*2//8的值是()。A、5B、4C、6D、7標準答案:B知識點解析:根據(jù)運算符的優(yōu)先級,運算順序為:5%6=5,5*2=10,10//8=1,3+1=4。故答案為B項。14、以下不是函數(shù)作用的選項是()。A、提高代碼執(zhí)行速度B、增強代碼可讀性C、復(fù)用相同功能代碼D、降低編程復(fù)雜度標準答案:A知識點解析:函數(shù)是一段具有特定功能的、可重用的語句組,通過函數(shù)名來表示和調(diào)用。使用函數(shù)可以降低編程復(fù)雜度和增加代碼復(fù)用,增強代碼可讀性。故答案為A。15、關(guān)于Python全局變量和局部變量,以下選項描述錯誤的是()。A、全局變量在源文件頂層,一般沒有縮進B、程序中的變量包含兩類:全局變量和局部變量C、函數(shù)內(nèi)部使用各種全局變量,都要用globle語句聲明D、不是在程序最開頭定義的全局變量,不是全過程均有效標準答案:C知識點解析:根據(jù)程序中變量所在的位置和作用范圍,變量分為全局變量和局部變量。局部變量指在函數(shù)內(nèi)部定義的變量,僅在函數(shù)內(nèi)部有效,且作用域也在函數(shù)內(nèi)部,當(dāng)函數(shù)退出時變量將不再存在。全局變量一般指在函數(shù)之外定義的變量,在程序執(zhí)行的全過程有效。全局變量在函數(shù)內(nèi)部使用時,需要提前使用保留字global聲明,語法形式:global<全局變量>。使用global對全局變量聲明時,該變量要與外部全局變量同名。故答案為C項。16、關(guān)于函數(shù)定義,以下形式錯誤的是()。A、deffoo(*a,b)B、deffoo(a,b=10)C、deffoo(a,*b)D、deffoo(a,b)標準答案:A知識點解析:Python在定義函數(shù)的時候,不僅可以設(shè)置普通的形參,如”deffun(arr1,arr2=’我是2號參數(shù)’)”(其中arr1為必傳參數(shù),arr2為可選參數(shù)),還可以傳入兩種特殊的參數(shù):帶*或**的參數(shù)。這兩類形式的參數(shù)都可以傳人任意數(shù)量的實參,它們的不同點主要在于*參數(shù)傳入的為一個元組(tuple);**參數(shù)傳人的則為一個字典(diet)。由于傳入的參數(shù)數(shù)量不確定,因此當(dāng)它們與普通參數(shù)放在一起時,必須把它們放在最后。故A項錯誤。17、字典d={‘Python’:123,’C’:123,’C++’:123},len(d)的結(jié)果是()。A、12B、6C、9D、3標準答案:D知識點解析:len(d)方法返回字典d的鍵值對個數(shù)。字典的每個鍵值對用冒號(:)連接,不同鍵值對之間用逗號(,)隔開,整個字典包括在大括號({})中。字典d中共有3個鍵值對,故len(d)=3。18、以下不是Python組合數(shù)據(jù)類型的是()。A、元組類型B、字符串類型C、數(shù)組類型D、列表類型標準答案:C知識點解析:能表示多個數(shù)據(jù)的類型稱為組合數(shù)據(jù)類型。Python中最常用的組合數(shù)據(jù)類型有3大類,分別是集合類型、序列類型(典型代表是字符串類型和列表類型)和映射類型(典型代表是字典類型)。Python的數(shù)據(jù)類型不包括數(shù)組類型,在Python中數(shù)組類型需要通過引用第三方庫如Numpy實現(xiàn)。故答案為C項。19、對于序列s,能夠返回序列s中第i到第j以k為步長的子序列的表達是()。A、s[i:j:k]B、s[i,j,k]C、s[i;j;k]D、s(i,j,k)標準答案:A知識點解析:序列切片的方式為:<序列>[起始索引序號:結(jié)束索引序號:步長]。Python語言在[]中表示區(qū)間使用冒號(:)。故答案為A項。20、對于序列s,以下選項對min(s)描述正確的是()。A、可以返回序列s中的最小元素,如果存在多個相同的最小元素,則返回一個列表類型B、一定能夠返回序列s中的最小元素C、可以返回序列s中的最小元素,如果存在多個相同的最小元素,則返回一個元組類型D、可以返回序列s中的最小元素,但要求s中元素可比較標準答案:D知識點解析:min()函數(shù)返回給定參數(shù)的最小值,但是要求給定參數(shù)是可以比較的。若給定的參數(shù)不能比較,則會報錯;若給定參數(shù)存在多個最小元素,min()只會返回序列中最小的一個元素。故答案為D項。21、以下程序的輸出結(jié)果是()。x=10y=0if(x>5)or(x/y>5):print(’Right’)else:print(’Wrong’)A、RightB、WrongC、報錯:ZeroDivisionErrorD、不報錯,但不輸出任何結(jié)果標準答案:A知識點解析:在Python中,or表示多個條件之間的”或”關(guān)系。xory,若x為True,則xory的結(jié)果為True,不再對y進行判斷。本題中,x>5為True,故(x>5)0r(x/y>5)的結(jié)果為True,輸出結(jié)果為Right。22、以下程序的輸出結(jié)果是()。forcin’PythonNCRE’:ifc==’N’:breakprint?A、無輸出B、PythonC、PythoD、PythonCRE標準答案:A知識點解析:本題中,break語句出現(xiàn)在print語句之前,當(dāng)if的條件為True時,執(zhí)行break語句,跳出for循環(huán),不再執(zhí)行循環(huán)體中break后面的語句,故無輸出。23、以下程序的輸出結(jié)果是()。s=2foriinrange(1,10):S+=iprint(s)A、55B、45C、57D、47標準答案:D知識點解析:range(1,10)的返回值為123456789,即for循環(huán)中i的取值為1到9,則s=2+1+2+……+9=47。故答案為D項。24、以下程序被調(diào)用后,能夠正確執(zhí)行的是()。deff(x,y=1,z=2):passA、f(x=1,2)B、f(x=1,y=2,z=3)C、f(1,x=2,z=3)D、f(1,y=2,3)標準答案:B知識點解析:函數(shù)的參數(shù)在定義時可以指定默認值,當(dāng)函數(shù)被調(diào)用時,如果沒有傳人對應(yīng)的參數(shù)值,則使用函數(shù)定義時的默認值替代。本題在定義函數(shù)時,y=1,z=2就是指定的默認值。在Python中,函數(shù)調(diào)用時,參數(shù)傳遞的主要方式有位置傳遞和關(guān)鍵字傳遞兩種。位置傳遞是根據(jù)函數(shù)定義的參數(shù)位置來傳遞參數(shù);關(guān)鍵字傳遞是根據(jù)每個參數(shù)的名字傳遞參數(shù),該方式不用區(qū)分參數(shù)順序位置,名字對了就行。關(guān)鍵字傳遞可以和位置傳遞混用,但混用時位置參數(shù)要出現(xiàn)在關(guān)鍵字參數(shù)之前。A項,第一個參數(shù)為關(guān)鍵字傳遞,第二個參數(shù)為位置傳遞,混用順序不對;D項,第二個參數(shù)為關(guān)鍵字傳遞,第三個參數(shù)為位置傳遞,混用順序不對;C項,第一個參數(shù)已經(jīng)使用位置傳遞(將1傳遞給x),第二個參數(shù)又使用關(guān)鍵字傳遞將2傳遞給x,會出現(xiàn)異常報錯。故答案為B項。25、以下程序的輸出結(jié)果是()。ls=[’綠茶’,’烏龍茶’,’紅茶’,’白茶’,’黑茶’]x=’烏龍茶’print(ls.index(x,0))A、一3B、0C、1D、一4標準答案:C知識點解析:列表的index()方法用于從列表中找出某個對象第一個匹配項的索引位置,如果這個對象不在列表中會報一個異常。其語法為:list.index(obj[,start=0[,stop=len(L)]]),其中obj為必須參數(shù),指要查找的對象;start為可選參數(shù),指從哪個索引位置開始查找,默認為0;stop為可選參數(shù),指查找到哪個索引位置結(jié)束,默認為列表的長度。本題中,查找對象為’烏龍茶’,從索引位置為0處開始查找,查找到第二個元素匹配,故返回其索引位置1。26、關(guān)于字典的描述,錯誤的是()。A、字典的元素以鍵為索引進行訪問B、字典的一個鍵可以對應(yīng)多個值C、字典長度是可變的D、字典是鍵值對的結(jié)合,鍵值對之間沒有順序標準答案:B知識點解析:在Python中,字典是存儲可變數(shù)量鍵值對的數(shù)據(jù)結(jié)構(gòu),通過字典類型實現(xiàn)映射,一個鍵對應(yīng)一個值,鍵必須是唯一的,且必須是不可變數(shù)據(jù)類型,值可以是任何數(shù)據(jù)類型。字典具有和集合類似的性質(zhì),即鍵值對之間沒有順序且不能重復(fù)。字典可以通過”字典[’鍵’]”的形式訪問對應(yīng)的元素,即以鍵為索引進行訪問。故描述錯誤的是B項。27、以下不是Python文件讀寫方法的是()。A、writelineB、readlineC、readD、write標準答案:A知識點解析:Python文件的讀寫方法有(file表示使用open函數(shù)創(chuàng)建的對象):file.read([size]):參數(shù)可選,若未給定參數(shù)或參數(shù)為負則讀取整個文件內(nèi)容;若給出參數(shù),則讀取前size長度的字符串或字節(jié)流。file.readline([size]):參數(shù)可選,若未給定參數(shù)或參數(shù)為負則讀取一行內(nèi)容;若給出參數(shù),則讀取該行前size長度的字符串或字節(jié)流。file.readlines([hint]):參數(shù)可選,若未給定參數(shù)或參數(shù)為負則從文件中讀取所有行,以每行為元素形成一個列表;若給出參數(shù),則讀取hint行。file.write(str):將字符串或字節(jié)流寫入文件。file.writelines(1ines):向文件寫入一個序列字符串列表。28、關(guān)于Python文件打開模式,表示錯誤的是()。A、rtB、nbC、abD、wt標準答案:B知識點解析:Python中open()函數(shù)提供了7種基本的文件打開模式:r、w、x、a、b、t、+。其中,r、w、x、a可以和b、t、+組合使用。故表示錯誤的是B項。29、表格類型數(shù)據(jù)的組織維度最可能是()。A、多維數(shù)據(jù)B、一維數(shù)據(jù)C、二維數(shù)據(jù)D、高維數(shù)據(jù)標準答案:C知識點解析:一維數(shù)據(jù)由對等關(guān)系的有序或無序數(shù)據(jù)構(gòu)成,采用線性方式組織;二維數(shù)據(jù),也稱表格數(shù)據(jù),由關(guān)聯(lián)關(guān)系數(shù)據(jù)構(gòu)成,采用二維表格方式組織;高維數(shù)據(jù)由鍵值對類型的數(shù)據(jù)構(gòu)成,采用對象方式組織。故答案為C項。30、二維列表ls=[[9,8],[7,6],[5,4],[3,2],[1,0]],能夠獲得數(shù)字4的選項是()。A、ls[一3][一1]B、ls[3][一1]C、ls[2][0]D、ls[一2][0]標準答案:A知識點解析:本題考查列表取值。要取得數(shù)字4,首先可以通過ls[一3]或ls[2]的方式取得1s的第3個元素:[5,4],然后在取得的元素中通過[5,4][一1]或[5,4][1]的方式取得4。因此,ls[一3][一1]或ls[一3][1]或ls[2][一1]或ls[2][1]都可以取得數(shù)字4。故答案為A項。31、在進行CSV文件讀寫時,最不可能使用的字符串處理方法是()。A、strip()B、join()C、index()D、split()標準答案:C知識點解析:CSV文件中以英文逗號分隔數(shù)據(jù),形成一行。在進行CSV文件讀寫時,常用的字符串處理方法有strip()、join()、split()。strip()方法用于刪除文件開頭和結(jié)尾的給定字符序列,參數(shù)為空時,默認刪除空白符(包括’\n’、’\r’、’\t’、’’)。join()方法用于將數(shù)據(jù)以指定的字符(分隔符)連接成一個新的序列。split()方法用于將數(shù)據(jù)按某一個字符或字符串進行分割。index()方法用于檢測字符串中是否包含指定子字符串,在進行CSV文件讀寫時,相較于前面三種方法,最不可能使用。32、f=open()可以打開一個文件,關(guān)于f的描述錯誤的是()。A、f是文件對象引用,在程序中表示文件B、f是一種特殊的Python變量,執(zhí)行print(f)時會報錯C、f.read()可以一次性讀入文件全部信息D、執(zhí)行m=f后,m和f同時表示所打開文件標準答案:B知識點解析:f=open(),f是文件對象的引用,在程序中f代表打開的文件,執(zhí)行print(f)不會報錯,故B項錯誤、A項正確;f.read()方法如果不給出參數(shù),則從文件中讀入整個文件內(nèi)容,故C項正確;執(zhí)行m=f后,m也是該文件對象的引用,m與f都表示該打開文件對象,故D項正確。33、下列函數(shù)中,不是Python內(nèi)置函數(shù)的是()。A、perf_counter()B、all()C、abs()D、format()標準答案:A知識點解析:perf_counter()是time庫的函數(shù),調(diào)用該函數(shù)需要先導(dǎo)入time庫。34、安裝一個第三方庫的命名格式是()。A、pipuninstall<第三方庫名>B、pipinstall<第三方庫名>C、pipdownload<第三方庫名>D、pipsearch<第三方庫名>標準答案:B知識點解析:pipinstall<第三方庫名>:安裝第三方庫;pipuninstall<第三方庫名>:卸載一個已經(jīng)安裝的第三方庫;pipdownload<第三方庫名>:下載第三方庫的安裝包,但并不安裝;pipsearch<第三方庫名>:聯(lián)網(wǎng)搜索庫名或摘要中的關(guān)鍵字。故答案為B項。35、以下用于計算機視覺領(lǐng)域的Python第三方庫是()。A、OpenCV—PythonB、MatplotlibC、FlaskD、PyMongo標準答案:A知識點解析:OpenCV—Python是圖像處理和計算機視覺方向的第三方庫;Matplotlib是數(shù)據(jù)可視化方向的第三方庫;Flask是Web開發(fā)方向的第三方庫;PyMongo是數(shù)據(jù)存儲方向的第三方庫。故答案為A項。36、以下不屬于數(shù)據(jù)分析領(lǐng)域的Python第三方庫是()。A、PandasB、PyQt5C、NumpyD、Seabom標準答案:B知識點解析:PyQt5是用戶圖形化界面方向的第三方庫;Pandas、Numpy、Seaborn、Scipy都是數(shù)據(jù)分析方向的第三方庫。37、以下不屬于人工智能領(lǐng)域的Python第三方庫是()。A、KerasB、PyTorchC、MXNetD、PyOCR標準答案:D知識點解析:PyOCR是圖像字符識別方向的第三方庫;PyTorch、MxNet、Keras都屬于人工智能領(lǐng)域的第三方庫。二、基本編程題(本題共3題,每題1.0分,共3分。)38、考生文件夾下存在一個文件PY101.PY,請寫代碼替換橫線,不修改其他代碼,實現(xiàn)以下功能:將字符串中每個單詞的首字母都變?yōu)榇髮?,輸出到屏幕。例如:AfterFreshRainInMountainsBare試題程序:#請在________處使用一行代碼或表達式替換#注意:請不要修改其他已給出代碼line=”Afterfreshraininmountainsbare”print(_______)標準答案:line=”Afterfreshraininmountainsbare”print(line.title())知識點解析:title()方法以字符串中單詞首字母大寫的方式顯示每個單詞。39、考生文件夾下存在一個文件PY102.py,請寫代碼替換橫線,不修改其他代碼,實現(xiàn)以下功能:鍵盤輸入直角三角形的兩條直角邊長度,計算三角形的面積。例如:輸入三角形第一條直角邊長:3輸入三角形第二條直角邊長:4直角三角形的面積為:6.0試題程序:#請在______處使用一行代碼或表達式替換#注意:請不要修改其他已給出代碼a=float(inptlt(”輸入三角形第一條直角邊長:“))b=float(input(”輸入三角形第二條直角邊長:”))_______print(”直角三角形的面積為:{_____}”.format(area))標準答案:a=float(input(”輸入三角形第一條直角邊長:”))b=float(input(”輸入三角形第二條直角邊長:”))area=0.5*(a*b)print(”直角三角形的面積為:{:.lf}”.format(area))知識點解析:考查format()方法的使用和計算直角三角形面積的公式。直角三角形的面積等于兩條直角邊的乘積再乘以二分之一;結(jié)果保留一位小數(shù),即format()中的字符串模板的槽內(nèi)需要使用精度字段。40、考生文件夾下存在一個文件PY103.py,請寫代碼替換橫線,不修改其他代碼,實現(xiàn)以下功能:鍵盤輸入十進制整數(shù),按要求將這個整數(shù)轉(zhuǎn)化為二進制、八進制和十六進制(大寫)屏幕輸出。例如:輸人數(shù)字:425對應(yīng)的二進制數(shù):11010100l八進制數(shù):651十六進制數(shù):1A9試題程序:#請在_______處使用一行代碼或表達式替換#注意:請不要修改其他已給出代碼num=eval(input(”輸入數(shù)字:”))print("對應(yīng)的二進制數(shù):{______}\n八進制數(shù):{______}\n十六進制數(shù):{_______}".format(num))標準答案:num=eval(input(”輸入數(shù)字:”))print(”對應(yīng)的二進制數(shù):{0:b}\n八進制數(shù):{0:o}\n十六進制數(shù):{0:X}”.format(num))知識點解析:考查format()方法的使用。格式控制標記可以使用變量來表示,即用槽來指定對應(yīng)的控制標記及數(shù)量,模板字符串在本題中總共有三個槽,即參數(shù)變量需要三個,但此時的參數(shù)只有一個,這里就需要指定所對應(yīng)的變量。<類型>表示輸出整數(shù)和浮點數(shù)類型的格式規(guī)則。b:表示二進制;o:表示八進制;大寫的X:表示大寫的十六進制。三、簡單應(yīng)用題(本題共2題,每題1.0分,共2分。)41、考生文件夾下存在一個文件PY201.py,請寫代碼替換橫線,不修改其他代碼,實現(xiàn)以下功能:使用tunle庫中的pencolor()和fillcolor()方法為圖形著色,使用setup()方法在桌面屏幕(400,400)位置創(chuàng)建600×600大小的畫布窗體。效果如下圖所示。試題程序#請在________處使用一行代碼或表達式替換#注意:請不要修改其他已給出代碼fromturtleimport*defcurvemove():foriinrange(200):right(1)forward(1)setup(600,600,400,400)hidetur七le()_______(’black’)_______(”red”)pensize(2)begin_fill()left(140)forward(111.65)curvemove()left(120)curvemove()forward(111.65)end_fill()penup()goto(一27,85)pendown()done()標準答案:fromturtleimport*defcurvemove():foriinrange(200):right(1)forward(1)setup(600,600,400,400)hideturtle()pencolor(’black’)fillcolor(”red”)pensize(2)begin_fill()left(140)forward(111.65)curvemove()left(120)curvemove()forward(111.65)end_fill()penup()goto(一27,85)pendown()done()知識點解析:turtle庫是Python的標準庫,其中setup(width,height,startx,starty):設(shè)置主窗體的大小和位置;pencolor():設(shè)置畫筆的顏色;fillcolor():填充圖形顏色。由題干給出的圖形可知,畫筆的顏色應(yīng)為黑色,填充顏色應(yīng)為紅色。42、考生文件夾下存在一個文件PY202.py,該文件是本題目的代碼提示框架,其中代碼可以任意修改,請在該文件中編寫代碼,以實現(xiàn)如下功能:九九乘法表輸出。按照乘法表的格式打印輸出九九乘法表,并將打印的結(jié)果保存在考生文件夾下,命名為“PY202.txt”。試題程序:#以下代碼為提示框架#請在…處使用一行或多行代碼替換#請在______處使用一行代碼替換#注意:提示框架代碼可以任意修改,以完成程序功能為準fo=open(”PY202.txt”,”w”)…fo.close()標準答案:fo=open(”PY202.txt“,”w”)foriinrange(1,10);forjinrange(1,i+1):fo.write("{}*{}={}",format(j,i,i*j))fo.write("\n")fo.close()知識點解析:打印輸出九九乘法表,首先要先查看乘法表的規(guī)律,乘法表豎著是從1到9,橫著每行是從1到每行的行號,所以可以使用兩個for循環(huán)遍歷輸出。格式可以使用format()方法控制,最后把寫出的九九乘法表存入到文件PY202.txt中。四、綜合應(yīng)用題(本題共1題,每題1.0分,共1分。)43、考生文件夾下存在一個Python源文件PY301.py,請按照文件內(nèi)說明修改代碼,實現(xiàn)以下功能:凱撒密碼是一種非常古老的加密算法,相傳當(dāng)年凱撒大帝行軍打仗時為了保證自己的命令不被敵軍知道,它采用了替換方法將信息中的每一個英文字符循環(huán)替換為字母表序列中該字符后面的第三個字符,即循環(huán)后三位,對應(yīng)關(guān)系如下:原文:ABCDEFGHIJKLMNOPQRSTUVWXYZ密文:DEFGHIJKLMNOPQRSTUVWXYZABC原文字符P,其密文字符C滿足如下條件:C=(P+3)mod26解密方法反之,滿足如下條件:P=(C-3)mod26凱撒密碼包括加密和解密兩個部分。凱撒密碼的加密算法程序首先接收用戶輸人的文本,然后對字母a—z和字母A—Z按照密碼算法進行轉(zhuǎn)換,同時輸出。其他非英文字母原樣輸出。試題程序:#以下代碼為提示框架#請在…處使用一行或多行代碼替換#請在_______處使用一行代碼替換#注意:提示框架代碼可以任意修改,以完成程序功能為準intxt=input(”請輸入明文:“)…標準答案:intxt=input(”請輸入明文:”)forpinintxt;if"a"<=p<=“z”print(chr(ord("a")+(ord(p)-ord("a")+3)%26),end="")elif"A"<=p<=“Z”print(chr(ord("A")+(ord(p)-ord("A")+3)%26),end="")else:print(p,end="")知識點解析:使用for循環(huán)遍歷輸入的每一個字符,把該字符替換為該字符后面的第三個字符,將轉(zhuǎn)化后的字符進行輸出;如果輸入的字符不是大小寫字母,則原樣輸出字符,該部分功能通過if多分支結(jié)構(gòu)實現(xiàn)。國家二級(Python)機試模擬試卷第3套一、單項選擇題(本題共36題,每題1.0分,共36分。)1、設(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)}標準答案: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項。2、對長度為8的數(shù)組進行快速排序,最多需要的比較次數(shù)為()。A、8B、28C、56D、64標準答案:B知識點解析:數(shù)組屬于線性結(jié)構(gòu),使用快速排序在最壞情況下需要進行n(n—1)/2次比較。本題數(shù)組的長度為8,則比較的次數(shù)為8×(8—1)÷2=28。3、樹的度為3,共有31個結(jié)點,但沒有度為1和2的結(jié)點。則該樹中度為3的結(jié)點數(shù)為()。A、1B、9C、10D、不可能有這樣的樹標準答案:C知識點解析:樹的度為3,表示樹中只存在度為0、1、2、3的結(jié)點。設(shè)度為3的結(jié)點是n,由于沒有度為1和2的結(jié)點,則度為0的結(jié)點數(shù)為31—n。根據(jù)樹中的結(jié)點數(shù)=樹中所有結(jié)點的度之和+1,得n×3+0×1+0×2+(31一n)×0+1=31,則n=10。4、設(shè)棧與隊列初始狀態(tài)為空。將元素A,B,C,D,E,F(xiàn),G,H依次輪流入棧和入隊,然后依次輪流出棧和退隊,則輸出序列為()。A、A,B,C,D,H,G,F(xiàn),EB、B,G,D,E,F(xiàn),C,H,AC、D,C,B,A,E,F(xiàn),G,HD、G,B,E,D,C,F(xiàn),A,H標準答案:D知識點解析:由于是將元素A,B,C,D,E,F(xiàn),G,H依次輪流入棧和入隊,則依次入棧的元素是A、C、E、G,依次入隊的元素是B、D、F、H,棧遵循”先進后出”的原則,隊列遵循”先進先出”的原則,依次輪流出棧和退隊時,G先出棧,然后B退隊,因此答案為D項。5、數(shù)據(jù)字典(DD)的作用是()。A、定義流程圖中各個成份的具體含義B、定義數(shù)據(jù)流圖中各個成份
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 馬戲團合作協(xié)議書
- 2025年個人別墅測繪項目合同范本
- 2025版房地產(chǎn)開發(fā)項目施工合同交底書范本2篇
- 2025-2030全球三氟化銪行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球高折射率光纖行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球滑動軸承襯套行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球落地護眼燈行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國微膠囊熱致變色顏料行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 石料破碎加工合同范本
- 2025版?zhèn)€人股權(quán)交易保密協(xié)議書4篇
- 中國末端執(zhí)行器(靈巧手)行業(yè)市場發(fā)展態(tài)勢及前景戰(zhàn)略研判報告
- 北京離婚協(xié)議書(2篇)(2篇)
- 2025中國聯(lián)通北京市分公司春季校園招聘高頻重點提升(共500題)附帶答案詳解
- 康復(fù)醫(yī)學(xué)科患者隱私保護制度
- Samsung三星SMARTCAMERANX2000(20-50mm)中文說明書200
- 2024年藥品質(zhì)量信息管理制度(2篇)
- 2024年安徽省高考地理試卷真題(含答案逐題解析)
- 廣東省廣州市2024年中考數(shù)學(xué)真題試卷(含答案)
- 高中學(xué)校開學(xué)典禮方案
- 內(nèi)審檢查表完整版本
- 3級人工智能訓(xùn)練師(高級)國家職業(yè)技能鑒定考試題及答案
評論
0/150
提交評論