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

下載本文檔

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

文檔簡介

國家二級(Python)機試模擬試卷8(共9套)(共387題)國家二級(Python)機試模擬試卷第1套一、單項選擇題(本題共40題,每題1.0分,共40分。)1、下列敘述中錯誤的是()。A、靜態(tài)地址重定位要求程序必須占用連續(xù)固定的內(nèi)存空間B、動態(tài)地址重定位要求程序必須占用連續(xù)固定的內(nèi)存空間C、動態(tài)地址重定位是在程序執(zhí)行期間進行的D、靜態(tài)地址重定位是在程序執(zhí)行之前進行的標準答案:B知識點解析:動態(tài)地址重定位不要求程序裝入固定的內(nèi)存空間,在內(nèi)存中允許程序再次移動位置,而且可以部分地裝入程序運行,同時也便于多個作業(yè)共享同一程序的副本。本題答案為B選項。2、指令中的地址碼部分給出了存放操作數(shù)地址的尋址方式是()。A、立即尋址B、直接尋址C、隱含尋址D、間接尋址標準答案:D知識點解析:直接尋址中指令的地址碼部分給出的是操作數(shù)的真正地址,間接尋址是相當于直接尋址而言的,指令的地址碼給出的不是操作數(shù)的真正地址,而是操作數(shù)有效地址所在的存儲單元的地址,也就是操作數(shù)地址的地址。本題答案為D選項。3、設(shè)棧的順序存儲空間為S(1:m),初始狀態(tài)為top=m+1。現(xiàn)經(jīng)過一系列正常的入棧與退棧操作后,top=0,則棧中的元素個數(shù)為()。A、不可能B、m+1C、1D、m標準答案:A知識點解析:棧的存儲空間為S(1:m),初始狀態(tài)為top=m+1,即棧的初始狀態(tài)為空。當?shù)谝粋€元素進棧后,top=m,第二個元素進棧后,top=m-1,第三個元素進棧后,top=m-2,以此類推。當?shù)趍個元素進棧后,top=1,此時棧滿,再進行入棧操作將發(fā)生溢出,故top不可能為0。本題答案為A選項。4、下列敘述中錯誤的是()。A、棧是線性結(jié)構(gòu)B、二叉鏈表是二叉樹的存儲結(jié)構(gòu)C、循環(huán)鏈表是循環(huán)隊列的存儲結(jié)構(gòu)D、循環(huán)隊列是隊列的存儲結(jié)構(gòu)標準答案:C知識點解析:循環(huán)鏈表是一種鏈式存儲結(jié)構(gòu),循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)。本題答案為C選項。5、設(shè)一棵樹的度為4,其中度為4,3,2,1的結(jié)點個數(shù)分別為2,3,3,0。則該棵樹中的葉子結(jié)點數(shù)為()。A、15B、16C、17D、不可能有這樣的樹標準答案:B知識點解析:假設(shè)葉子結(jié)點個數(shù)為n。度為4的樹的總結(jié)點數(shù)為度為4的結(jié)點數(shù)+度為3的結(jié)點故+度為2的結(jié)點數(shù)+度為1的結(jié)點數(shù)+度為0的結(jié)點數(shù),即為2+3+3+0+n。再根據(jù)樹的總的結(jié)點數(shù)為樹中所有結(jié)點的度數(shù)之和再加1,則總結(jié)點數(shù)為4×2+3×3+2×3+1×0+0×n+1。4×2+3×3+2×3+1=2+3+3+n,則n=16,葉子結(jié)點數(shù)為16。本題答案為B選項。6、違背數(shù)據(jù)流圖(DFD)構(gòu)造規(guī)則的是()。A、“數(shù)據(jù)存儲”間有數(shù)據(jù)流B、“加工”應(yīng)既有輸入又有輸出C、“數(shù)據(jù)流”應(yīng)標識數(shù)據(jù)流名D、父圖子圖是指相鄰上下兩層的數(shù)據(jù)流圖標準答案:A知識點解析:數(shù)據(jù)流圖應(yīng)遵循以下構(gòu)造規(guī)則和注意事項:①對加工處理建立唯一、層次性的編號,且每個加工處理通常要求既有輸入又有輸出。②數(shù)據(jù)存儲之間不應(yīng)有數(shù)據(jù)流。③數(shù)據(jù)流圖的一致性。即輸入輸出、讀寫的對應(yīng)。④父圖、子圖關(guān)系與平衡規(guī)則。相鄰兩層DFD之間具有父子關(guān)系,子圖代表了父圖中某個加式的詳細描述,父圖表示了子圖間的接口。子圖個數(shù)不大于父圖中的處理個數(shù)。所有子圖的輸入輸出數(shù)據(jù)流和父圖中相應(yīng)處理的輸入輸出數(shù)據(jù)流必須一致。本題答案為A選項。7、某系統(tǒng)結(jié)構(gòu)圖如下圖所示(n≥5),該系統(tǒng)結(jié)構(gòu)圖的最大扇出數(shù)是()。A、2B、3C、nD、n+1標準答案:C知識點解析:扇出指由一個模塊直接調(diào)用的其他模塊個數(shù)。在該結(jié)構(gòu)圖中,“某系統(tǒng)”模塊調(diào)用的其他模塊個數(shù)最多,為n個,則最大扇出數(shù)為n。本題答案為C選項。8、采用表結(jié)構(gòu)來表示數(shù)據(jù)及數(shù)據(jù)間聯(lián)系的模型是()。A、層次模型B、概念模型C、網(wǎng)狀模型D、關(guān)系模型標準答案:D知識點解析:用樹形結(jié)構(gòu)表示實體及其之間聯(lián)系的模型稱為層次模型。用網(wǎng)狀結(jié)構(gòu)表示實體及其之間聯(lián)系的模型稱為網(wǎng)狀模型。關(guān)系模型采用二維表來表示關(guān)系。本題答案為D選項。9、學生關(guān)系模式中有D(D#,Dn,Dl,Dadar)(其屬性分別為系編號、系名稱、系主任和系地址)和S(S#,Sn,SG,Date,Maj,D#)(其屬性分別為學號、姓名、性別、入學日期、專業(yè)和系編號)兩個關(guān)系,關(guān)系S的主鍵(碼)是S#,關(guān)系S的外鍵(碼)是()。A、DB、MajC、DlD、Dn標準答案:A知識點解析:在關(guān)系D中,D#為主鍵;在關(guān)系S中,S#為主鍵,D#不是主鍵,則D#是關(guān)系S的外鍵。本題答案為A選項。10、定義學生、教師和課程的關(guān)系模式S(S#,Sn,Sd,Dc,Sa)(其屬性分別為學號、姓名、所在系、所在系的系主任、年齡);C(C#,Cn,P#)(其屬性分別為課程號、課程名、先修課);SC(S#,C#,G)(其屬性分別為學號、課程號和成績)。包含對非主屬性部分依賴的關(guān)系是()。A、C(C#,Cn,P#)和)SC(S#,C#,G)B、S(S#,Sn,Sd,Dc,Sa)C、C(C#,Cn,P#)D、SC(S#,C#,G)標準答案:B知識點解析:在關(guān)系模式S中,主鍵為S,但有Sd→Dc,Sd為非主屬性,存在對非主屬性部依賴。本題答案為B選項。11、以下不是Python語言所使用特殊含義符號的是()。A、$B、**C、&D、+=標準答案:A知識點解析:在Python中,有特殊含義的符號:+、-、*、/、%、**、//、==、!=、<>、>、<、>=、<=、=、+=、-=、*=、/=、%=、**=、//=、&、|、^、~、<<、>>、&=、|=、^=、~=。故答案為A項。12、以下不是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,while,with,yield。13、以下保留字不用于循環(huán)邏輯的是()。A、tryB、elseC、forD、continue標準答案:A知識點解析:用于循環(huán)邏輯的保留字:while、for、else、break、continue。try用于捕捉異常。14、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缺關(guān),則默認表示到字符串結(jié)尾。題干中s[1:5]=’2345’,s[0:3]=’123’,s(-10:5]=’12345’,s[0:4]=’1234’。15、表達式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項。16、以下不是函數(shù)作用的選項是()。A、提高代碼執(zhí)行速度B、增強代碼可讀性C、復(fù)用相同功能代碼D、降低編程復(fù)雜度標準答案:A知識點解析:函數(shù)是一段具有特定功能的、可重用的語句組,通過函數(shù)名來表示和調(diào)用。使用函數(shù)可以降低編程復(fù)雜度和增加代碼復(fù)用,增強代碼可讀性。故答案為A。17、關(guān)于Python全局變量和局部變量,以下選項描述錯誤的是()。A、全局變量在源文件頂層,一般沒有縮進B、程序中的變量包含兩類:全局變量和局部變量C、函數(shù)內(nèi)部使用各種全局變量,都要用global語句聲明D、不是在程序最開頭定義的全局變量,不是全過程均有效標準答案:C知識點解析:根據(jù)程序中變量所在的位置和作用范圍,變量分為全局變量和局部變量。局部變量指在函數(shù)內(nèi)部定義的變量,僅在函數(shù)內(nèi)部有效,且作用域也在函數(shù)內(nèi)部,當函數(shù)退出時變量將不再存在。全局變量一般指在函數(shù)之外定義的變量,在程序執(zhí)行的全過程有效。全局變量在函數(shù)內(nèi)部修改時,才需要提前使用保留字global聲明,語法形式:global<全局變量>,使用global對全局變量聲明時,該變量要與外部全局變量同名。故答案為C項。18、關(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ù)傳入的則為一個字典(dict)。由于傳入的參數(shù)數(shù)量不確定,因此當它們與普通參數(shù)放在一起時,必須把它們放在最后。故A項錯誤。19、字典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。20、以下不是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項。21、對于序列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項。22、對于序列s,以下選項對min(s)描述正確的是()。A、可以返回序列s中的最小元素,如果存在多個相同的最小元素,則返回一個列表類型B、一定能夠返回序列s中的最小元素C、可以返回序列s中的最小元素,如果存在多個相同的最小元素,則返回一個元組類型D、可以返回序列s中的最小元素,但要求s中元素可比較標準答案:D知識點解析:min()函數(shù)返回給定參數(shù)的最小值,但是要求給定參數(shù)是可以比較的。若給定的參數(shù)不能比較,則會報錯;若給定參數(shù)存在多個最小元素,min()只會返回序列中最小的一個元素。故答案為D項。23、以下程序的輸出結(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é)果為Tue,不再對y進行判斷。本題中,x>5為True,故(x>5)or(x/y>5)的結(jié)果為True,輸出結(jié)果為Right。24、以下程序的輸出結(jié)果是()。forcin’PythonNCRE’:ifc==’N’:breakprint(c)A、無輸出B、PythonC、PythoD、PythonCRE標準答案:A知識點解析:本題中,break語句出現(xiàn)在print語句之前,當if的條件為True時,執(zhí)行break語句,跳出for循環(huán),不再執(zhí)行循環(huán)體中break后面的語句,故無輸出。25、以下程序的輸出結(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項。26、以下程序被調(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ù)在定義時可以指定默認值,當函數(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項。27、以下程序的輸出結(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。28、關(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項。29、以下不是Python文件讀寫方法的是()。A、writelineB、readlineC、readD、write標準答案:A知識點解析:Python文件的讀寫方法有(file表示使用open函數(shù)創(chuàng)建的對象):file.read([size]):參數(shù)可選,若未給定參數(shù)或參數(shù)為負則讀取整個文件內(nèi)容,若給出參數(shù),則讀取前size長度的字符串或字節(jié)流。flie.readine([size]):參數(shù)可選,若未給定參數(shù)或參數(shù)為負則讀取一行內(nèi)容;若給出參數(shù),則讀取該行前size長度的字符串或字節(jié)流。file.readlines([hint]);參數(shù)可選,若未給定參數(shù)或參數(shù)為負則從文件中讀取所有行,以每行為元素形成一個列表;若給出參數(shù),則從文件開始位置讀取到第hint個字節(jié)所在的行為止,并以每行為元素形成一個列表。file.write(str):將字符串或字節(jié)流寫入文件。file.writelines(lines):向文件寫入一個序列字符串列表。30、關(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項。31、表格類型數(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項。32、二維列表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]的方式取得ls的第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項。33、在進行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文件讀寫時,相較于前面三種方法,最不可能使用。34、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項正確。35、下列函數(shù)中,不是Python內(nèi)置函數(shù)的是()。A、perf_counter()B、all()C、abs()D、format()標準答案:A知識點解析:perf_counter()是time庫的函數(shù),調(diào)用該函數(shù)需要先導入time庫。36、安裝一個第三方庫的命名格式是()。A、pipuninstall<第三方庫名>B、pipinstall<第三方庫名>C、pipdownload<第三方庫名>D、pipsearch<第三方庫名>標準答案:B知識點解析:pipinstall<第三方庫名>:安裝第三方庫;pipuninstall<第三方庫名>:卸載一個已經(jīng)安裝的第三方庫;pipdownload<第三方庫名>:下載第三方庫的安裝包,但并不安裝;pipsearch<第三方庫名>:聯(lián)網(wǎng)搜索庫名或摘要中的關(guān)鍵字。故答案為B項。37、生成一個[1,99]之間隨機整數(shù)的函數(shù)是()。A、random.randint(1,100)B、random.randint(0,99)C、random.randint(1,99)D、random.uniform(1,99)標準答案:C知識點解析:random.randint(a,b)隨機生成[a,b](包括a、b)之間的整數(shù);random.uniform(a,b)隨機生成[a,b](包括a,不包括b)之間的實數(shù)。故答案為C項。38、以下用于計算機視覺領(lǐng)域的Python第三方庫是()。A、OpenCV-PythonB、MatplotlibC、FlaskD、PyMongo標準答案:A知識點解析:OpenCV-Python是圖像處理和計算機視覺方向的第三方庫;Matplotlibs是數(shù)據(jù)可視化方向的第三方庫;Flask是Web開發(fā)方向的第三方庫;PyMongo是數(shù)據(jù)存儲方向的第三方庫。故答案為A項。39、以下不屬于數(shù)據(jù)分析領(lǐng)域的Python第三方庫是()。A、PandasB、PyQt5C、NumpyD、Seaborn標準答案:B知識點解析:PyQt5是用戶圖形化界面方向的第三方庫;Pandas、Numpy、Seaborn、Scipy都是數(shù)據(jù)分析方向的第三方庫。40、以下不屬于人工智能領(lǐng)域的Python第三方庫是()。A、KerasB、PyTorchC、MXNetD、PyOCR標準答案:D知識點解析:PyOCR是圖像字符識別方向的第三方庫;PyTorch、MXNet、Keras都屬于人工智能領(lǐng)域的第三方庫。二、基本編程題(本題共3題,每題1.0分,共3分。)41、考生文件夾下存在一個文件PY101.py,請寫代碼替換橫線,不修改其他代碼,實現(xiàn)以下功能:鍵盤輸入正整數(shù)n,按要求把n輸出到屏幕,格式要求:寬度為25個字符,等號字符(=)填充,右對齊,帶千位分隔符。如果輸入正整數(shù)超過25位,則按照真實長度輸出。例如:鍵盤輸入正整數(shù)n為1234,屏幕輸出====================1,234#請完善如下代碼#在______填入語句s=input()print("{_____}".format(_____))標準答案:s=input()print("{:=>25,}".format(eval(s)))知識點解析:該題目主要考查Python字符串的格式化方法。Python語言推薦使用.format()格式化方法,其使用方式如下:<模板字符串>.format(<逗號分隔的參數(shù)>)其中,模板字符串是一個由字符串和槽組成的字符串,用來控制字符串和變量的顯示效果。槽用大括號({})表示,對應(yīng)format()方法中逗號分隔的參數(shù)。如果模板字符串中有多個槽,可以通過format()參數(shù)的序號在模板字符串槽中指定參數(shù)的使用,參數(shù)從0開始編號。例如:“{0}曰:學而不思則罔,思而不學{1}?!保甪ormat(“孔子”,”則殆”)其結(jié)果為:’孔子曰:學而不思則罔,思而不學則殆?!痜ormat()方法的槽除了包括參數(shù)序號,還可以包括格式控制信息,語法格式如下:{<參數(shù)序號>:<格式控制標記>}其中,格式控制標記包括:<填充><對齊><寬度><,><.精度><類型>6個字段,由引導符號(:)作為引導標記,這些字段都是可選的,可以組合使用。<填充>:指用于填充的單個字符。<對齊>:分別使用<、>和^三個符號表示左對齊、右對齊和居中對齊。<寬度>:當前槽的設(shè)定輸出字符寬度。<,>:用于顯示數(shù)字類型的千位分隔符。<.精度>:由小數(shù)點(.)開頭,對于浮點數(shù),精度表示小數(shù)部分輸出的有效位數(shù);對于字符串,精度表示輸出的最大長度。<類型>:表示輸出整數(shù)和浮點數(shù)類型的格式規(guī)則。本題格式要求為:寬度為25個字符,等號字符(=)填充,右對齊,帶千位分隔符。則模板字符串為:{:=>25,}。由于題目要求帶千位分隔符,所以模板字符串對應(yīng)的format()方法中的參數(shù)必須是數(shù)字類型,但無論用戶輸入的是字符還是數(shù)字,input()函數(shù)統(tǒng)一按照字符串類型輸出,這時就需要先使用eval()函數(shù)去掉字符串最外側(cè)的引號,然后再參與運算。42、獲得用戶輸入的一個字符串,將字符串逆序輸出,同時緊接著輸出字符串的個數(shù),請完善PY102.py中代碼。#請完善如下代碼#在______填入語句s=input()print(_______(1)_________)print(_______(2)_________)標準答案:s=input()print(s[::-1],end=’’)print(len(s))知識點解析:要將字符串逆序輸出,可使用切片方法先檢索后逆序。切片的使用方式為:<字符串或字符串變量>[N:M:K],表示獲取字符串中從N到M(不包含M)根據(jù)步長K得到的子字符串。其中,N和M為字符串的索引序號,若K為負數(shù),表示從后往前對字符串進行切片,且題目要求緊接著輸出字符個數(shù),所以還需要設(shè)置end參數(shù)。因此第一個空填入:s[::-1],end=",此處省略了N和M,表示將對字符串中有所字符檢索;-1表示將從字符串的最后一個字符逆序切片。若要輸出字符串的個數(shù),可使用len(s),len()函數(shù)返回的是字符串的長度。43、獲得用戶輸入的以逗號分隔的三個數(shù)字,記為a、b、c,以a為起始數(shù)值,b為差,c為數(shù)值的數(shù)量,產(chǎn)生一個遞增的等差數(shù)列,將這個數(shù)列以列表格式輸出,請完善PY103.py中代碼。#請完善如下代碼#在______填入語句a,b,c=_______(1)_________ls=[]foriinrange(c):ls._______(2)_________print(ls)標準答案:a,b,c=[int(x)forxininput().split(’,’)]ls=[]foriinrange(c):ls.a(chǎn)ppend(a+(i*b))print(ls)知識點解析:根據(jù)題目要求和給出的提示代碼,用戶輸入的是以逗號分隔的三個數(shù)字,則需要先用split()方法將字符串分隔形成列表,再用for循環(huán)遍歷該列表將字符串類型轉(zhuǎn)換成數(shù)字類型。因此第一空填入:[int(forxininput().split(’,’)]。向列表中增加元素用append()方法。本題輸出的是以a為起始數(shù)值,b為差的等差遞增數(shù)列,c為數(shù)列中數(shù)值的數(shù)量,則foriinrange(c)中i的值是從0到c-1的整數(shù)。那么數(shù)列中第i個數(shù)為a+(i*b)。因此第二空填入:append(a+(i*b))。三、簡單應(yīng)用題(本題共2題,每題1.0分,共2分。)44、使用turtle庫的turtle.fd()函數(shù)和turtle.seth()函數(shù)繪制一個邊長為40像素的正12邊形,在考生文件夾下給出了程序框架文件PY201.py,在橫線處補充代碼,不得修改其他代碼。效果如下圖所示。#請在空格處補充代碼importturtleturtle.pensize(2)d=0foriinrange(1,_______(1)_________):_______(2)_________d+=_______(3)_________turtle.seth(d)標準答案:importturtleturtle.pensize(2)d=0foriinrange(1,13):turtle.fd(40)d+=30turtle.seth(d)知識點解析:本題要繪制一個多邊形,需要使用turtle庫(海龜),首先使用import保留字把turtle庫導入。由于繪制的是12邊形,for循環(huán)遍歷中,要對序號為1~12的每條邊依次繪制,i的取值從1開始到12結(jié)束。因此第一空填入:13。turtle.fd()函數(shù)用于控制小海龜向當前行進方向前進一個指定距離,題目要求邊長為40像素,因此第二空填入:turtle.fd(40)。turtle.seth(d)函數(shù)用于設(shè)置小海龜當前行進方向為d,該角度是絕對方向角度值。在12邊形中,相鄰兩條邊形成的外角均為30度,即繪制完一條邊后,小海龜?shù)男羞M方向要增加30度后再繪制下一條邊。因此第三空填入:30。45、計算兩個列表ls和lt對應(yīng)元素乘積的和(即向量積),補充PY202.py文件。ls=[111,222,333,444,555,666,777,888,999]lt=[999,777,555,333,111,888,666,444,222]#請補充若干行代碼,完成向量積運算ls=[111,222,333,444,555,666,777,888,999]lt=[999,777,555,333,111,888,666,444,222]s=0________________________________print(s)標準答案:ls=[111,222,333,444,555,666,777,888,999]lt=[999,777,555,333,111,888,666,444,222]s=0foriinrange(len(ls)):s+=(ls[i]*lt[i])print(s)知識點解析:本題給定程序最后輸出的是變量s的值,所以s用來收集兩個列表中對應(yīng)元素乘積的和。兩個列表中對應(yīng)元素乘積可表示為ls[i]*lt[i],再求和s+=(ls[i]*lt[i);由于列表中元素的索引序號是從0開始的,所以for循環(huán)遍歷中i的取值從0開始直至len(ls)-1,而range(len(ls))的返回值正是0至len(ls)-1。四、綜合應(yīng)用題(本題共2題,每題1.0分,共2分。)某班學生評選一等獎學金,學生的10門主干課成績存在考生文件夾下文件score.txt中,每行為一個學生的信息,分別記錄了學生學號、姓名以及10門課成績,格式如下:1820161043鄭珉鎬686683775673616966781820161044沈紅偉91708191968078918994從這些學生中選出獎學金候選人,條件是:①總成績排名在前10名;②全部課程及格(成績大于等于60)。46、問題1:給出按總成績從高到低排序的前10名學生名單,并寫入文件candidate().txt,每行記錄一個學生的信息,分別為學生學號、姓名以及10門課成績。補充考生文件夾下文件PY301-1.py,完成這一功能。#請在…處使用多行代碼替換##注意:其他已給出代碼僅作為提示,可以修改L=[]#L中的元素是學生原始成績和總成績…#此處可多行L.sort(key=lambdax:x[-1],reverse=True)#按學生總成績從大到小排序…#此處可多行標準答案:L=[]fo=open("score.txt","r")fi=open("candidate0.txt","w")lines=fo.readlines()forlineinlines:line=line.strip()student=line.split(’’)sum=0foriinrange(1,11):sum+=int(student[-i])student.a(chǎn)ppend(str(sum))L.a(chǎn)ppend(student)L.sort(key=lambdax:x[-1],reverse=True)foriinrange(10):fi.write(’’.join(L[i][:-1])+’\n’)fo.close()fi.close()知識點解析:本題涉及“score.txt”和“candidate().txt”兩個文件。首先要讀取“score.txt”文件中的信息,通過程序求出每個學生的總成績,然后按總成績從大到小排序,將總成績排名前10的學生的學號、姓名以及10門課成績寫入到“candidate().txt”文件中。打開文件用open()函數(shù),用“r”只讀模式打開文件“score.txt”,用“w”模式創(chuàng)建文件“candidate().txt”?!皊core.txt”文件中每行為一個學生的信息,需要用readlines()函數(shù)讀入所有行,以每行為元素形成列表lines,然后用for循環(huán)遍歷該列表中的每個元素。在遍歷每個元素時,用strip()方法刪除元素首尾出現(xiàn)的空白符(包含\n,空格,\t等),用split()方法以空格分隔學生的學號、姓名以及10門課成績得到列表student。由于要求出總成績,因此要使用for遍歷每個學生的10門課成績,將其累加賦值給sum,并將sum追加到student中。最后將student中所有元素追加到列表L中。隨后,對列表L中的元素進行排序,用到sort()方法,參數(shù)“key=lambdax:x[-1]”中l(wèi)ambda是一個隱函數(shù),是固定寫法,不能寫成別的單詞;x表示列表中的一個元素,在這里表示一個列表(即一個學生的信息),x只是臨時起的一個名字,也可以使用任意的名字;x[-1]表示以列表中的最后一個元素(即總成績)排序。參數(shù)“reverse=True”表示按降序排序;若該參數(shù)缺省或“reverse=False”,表示按升序排序。最后,通過for循環(huán)在列表L中提取出前10個元素(即前10名的學生信息,但不包含總成績),用空格分隔每個元素,并添加換行符,寫入到文件“candidate().txt”中,再關(guān)閉所有文件。47、問題2:讀取文件candidate().txt,從中選出候選人,并將學號和姓名寫入文件candidate.txt,格式如下:1010112161722張三1010112161728李四…補充考生文件夾下文件PY301-2.py,完成這一功能?!斎胛募篶andidate0.txt輸出文件:candidate.txt’’’標準答案:fo=open("candidate0.txt","r")fi=open("candidate.txt","w")L=[]#存儲候選人lines=fo.readlines()forlineinlines:line=line.strip()student=line.split(’’)foriinstudent[-10:]:ifint(i)<60:breakelse:L.a(chǎn)ppend(student[:2])foriinL:fi.write(’’.join(i)+’\n’)fo.close()fi.close()知識點解析:本題涉及“candidate().txt”和“candidate.txt”兩個文件。首先要讀取“candidate().txt”文件中的信息,通過程序判斷每個學生的所有課程成績是否都大于等于60,滿足條件的將該學生的學號和姓名寫入到“candidate.txt”文件中。打開文件用open()函數(shù),用“r”只讀模式打開文件“candidate().txt”,用“w”模式創(chuàng)建文件“candidate.txt”,并定義一個列表L來存儲學號和姓名(做中轉(zhuǎn))?!癱andidate().txt”文件中有10行數(shù)據(jù),需要用readlines()函數(shù)讀入所有行,以每行為元素形成列表lines,然后用for循環(huán)遍歷該列表中的每個元素。在遍歷每個元素時,用strip()方法刪除元素首尾的空白符,用split()方法以空格分隔學生的學號、姓名以及10門課成績得到列表student。然后對列表student使用for循環(huán)遍歷,用來判斷10門課程的成績是否都大于等于60,滿足條件就將列表student中的前兩個元素(即學號和姓名)追加到列表L中。最后,通過for循環(huán)提取列表L中的所有元素,用空格分隔每個元素,并添加換行符,寫入到文件“candidate.txt”中,再關(guān)閉所有文件。國家二級(Python)機試模擬試卷第2套一、單項選擇題(本題共35題,每題1.0分,共35分。)1、要使用外存儲器中的信息,應(yīng)先將其調(diào)入()。A、內(nèi)存儲器B、控制器C、運算器D、微處理器標準答案:A知識點解析:外存儲器的容量一般都比較大,而且大部分可以移動,便于在不同計算機之間進行信息交流。外存儲器中數(shù)據(jù)被讀入內(nèi)存儲器后,才能被CPU讀取,CPU不能直接訪問外存儲器。本題選擇A選項。2、進程是()。A、存放在內(nèi)存中的程序B、與程序等效的概念C、一個系統(tǒng)軟件D、程序的執(zhí)行過程標準答案:D知識點解析:進程是指一個具有一定獨立功能的程序關(guān)于某個數(shù)據(jù)集合的一次運行活動。簡單地說,進程是可以并發(fā)執(zhí)行的程序的執(zhí)行過程,它是控制程序管理下的基本的多道程序單位。本題選擇D選項。3、下列敘述中正確的是()。A、循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu)B、循環(huán)隊列是隊列的一種鏈式存儲結(jié)構(gòu)C、循環(huán)隊列中的隊尾指針一定大于隊頭指針D、循環(huán)隊列中的隊尾指針一定小于隊頭指針標準答案:A知識點解析:循環(huán)隊列是隊列的一種順序存儲結(jié)構(gòu),用隊尾指針rear指向隊列中的隊尾元素,用隊頭指針front指向排頭元素的前一個位置。因此,從隊頭指針front指向的后一個位置直到隊尾指針rear指向的位置之間所有的元素均為隊列中的元素。在循環(huán)隊列中隊頭指針可以大于隊尾指針,也可以小于隊尾指針。本題選擇A選項。4、設(shè)二叉樹的前序序列為ABDEGHCFIJ,中序序列為DBGEHACIFJ。則按層次輸出(從上到下,同一層從左到右)的序列為()。A、ABCDEFGHIJB、DGHEBHFCAC、JIHGFEDCBAD、GHIJDEFBCA標準答案:A知識點解析:二叉樹遍歷可以分為3種:前序遍歷(訪問根節(jié)點在訪問左子樹和訪問右子樹之前)、中序遍歷(訪問根節(jié)點在訪問左子樹和訪問右子樹兩者之間)、后序遍歷(訪問根節(jié)點在訪問左子樹和訪問右子樹之后),并且在遍歷左右子樹時也遵循同樣的規(guī)則。本題中二叉樹的前序序列為ABDEGHCFIJ,可確定根節(jié)點為A,按層次輸出(從上到下,同一層從左到右)時訪問的第一個節(jié)點也應(yīng)該是A,所以可排除B、C和D三個選項。本題選擇A選項。5、結(jié)構(gòu)化程序的三種基本控制結(jié)構(gòu)是()。A、遞歸、堆棧和隊列B、調(diào)用、返回和轉(zhuǎn)移C、順序、選擇和重復(fù)D、過程、子程序和函數(shù)標準答案:C知識點解析:結(jié)構(gòu)化程序的基本結(jié)構(gòu)有:順序結(jié)構(gòu)、選擇(分支)結(jié)構(gòu)和重復(fù)(循環(huán))結(jié)構(gòu)。本題選擇C選項。6、軟件是()。A、程序B、計算機系統(tǒng)C、程序和數(shù)據(jù)D、程序、數(shù)據(jù)和文檔的集合標準答案:D知識點解析:計算機軟件是由程序、數(shù)據(jù)及相關(guān)文檔構(gòu)成的完整集合,它與計算機硬件一起組成計算機系統(tǒng)。本題選擇D選項。7、在數(shù)據(jù)庫中存儲的是()。A、數(shù)據(jù)模型B、操作信息C、數(shù)據(jù)的操作D、數(shù)據(jù)以及數(shù)據(jù)之間的聯(lián)系標準答案:D知識點解析:數(shù)據(jù)庫就是存放數(shù)據(jù)的倉庫,只不過數(shù)據(jù)庫存放數(shù)據(jù)是按數(shù)據(jù)所提供的數(shù)據(jù)模式(數(shù)據(jù)之間的聯(lián)系)存放的。本題選擇D選項。8、在關(guān)系數(shù)據(jù)庫設(shè)計中,關(guān)系模式是用來記錄用戶數(shù)據(jù)的()。A、二維表B、視圖C、屬性D、實體標準答案:A知識點解析:關(guān)系模式采用二維表來表示關(guān)系,簡稱表。本題選擇A選項。9、在關(guān)系模式A(S,SN,A、和B(D,CN,NM)中,關(guān)系A(chǔ)的主鍵是S,關(guān)系B的主鍵是D,則屬性D在關(guān)系A(chǔ)中稱為()。B、主鍵C、外鍵D、候選鍵標準答案:B知識點解析:屬性D是關(guān)系B的主鍵,但在關(guān)系A(chǔ)中不是主鍵,因此屬性D在關(guān)系A(chǔ)中是外鍵。本題選擇B選項。10、以下不屬于Python保留字的是()。A、classB、passC、subD、def標準答案:C知識點解析:關(guān)鍵字是編程語言內(nèi)部定義并保留使用的標識符。Python3.x有35個關(guān)鍵字,分別為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。本題選擇C選項。11、表達式3**2*4//6%7的計算結(jié)果是()。A、3B、5C、4D、6標準答案:D知識點解析:依次計算,3**2=9,9*4=36,36//6=6,6%7=6。//是整除運算,%是求余運算。本題選擇D選項。12、以下關(guān)于Python字符串的描述中,錯誤的是()。A、在Python字符串中,可以混合使用正整數(shù)和負整數(shù)進行索引和切片B、Python字符串采用[N:M]格式進行切片,獲取字符串從索引N到M的子字符串(包含N和M)C、字符串'my\\text.dat'中第一個\表示轉(zhuǎn)義符D、空字符串可以表示為""或"標準答案:B知識點解析:Python字符串采用[N:M]格式進行切片,獲取字符串從索引N到M的子字符串(包含N,不包含M)。本題選擇B選項。13、以下關(guān)于語言類型的描述中,正確的是()。A、靜態(tài)語言采用解釋方式執(zhí)行,腳本語言采用編譯方式執(zhí)行B、C語言是靜態(tài)語言,Python是腳本語言C、編譯是將目標代碼轉(zhuǎn)換成源代碼的過程D、解釋是將源代碼一次性轉(zhuǎn)換成目標代碼同時逐條運行目標代碼的過程標準答案:B知識點解析:高級語言根據(jù)計算機中的執(zhí)行機制的不同可分為兩類:靜態(tài)語言和腳本語言。靜態(tài)語言采用編譯方式執(zhí)行,腳本語言采用解釋方式執(zhí)行。如C語言是靜態(tài)語言,Python是腳本語言。編譯是將源代碼轉(zhuǎn)換成目標代碼的過程。解釋是將源代碼轉(zhuǎn)換成目標代碼同時運行目標代碼的過程。本題選擇B選項。14、以下的描述中,不屬于Python控制結(jié)構(gòu)的是()。A、分支結(jié)構(gòu)B、程序異常C、跳轉(zhuǎn)結(jié)構(gòu)D、順序結(jié)構(gòu)標準答案:C知識點解析:Python在3種基本控制邏輯(順序結(jié)構(gòu)、選擇結(jié)構(gòu)即分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu))上進行了適當?shù)臄U展。在分支結(jié)構(gòu)的基礎(chǔ)上,Python增加了異常處理,使用try-except關(guān)鍵字。本題選擇C選項。15、以下關(guān)于分支結(jié)構(gòu)的描述中,錯誤的是()。A、if語句中語句塊執(zhí)行與否依賴于條件判斷B、if語句中條件部分可以使用任何能夠產(chǎn)生True和False的語句和函數(shù)C、二分支結(jié)構(gòu)有一種緊湊形式,使用保留字if和elif實現(xiàn)D、多分支結(jié)構(gòu)用于設(shè)置多個判斷條件及其對應(yīng)的多條執(zhí)行路徑標準答案:C知識點解析:Python的單分支結(jié)構(gòu)使用if關(guān)鍵字對條件進行判斷,語法格式如下:if<條件>:<語句塊>Python的二分支結(jié)構(gòu)使用if-else關(guān)鍵字對條件進行判斷,語法格式如下:if<條件>:<語句塊1>else:<語句塊2>Python的多分支結(jié)構(gòu)使用if-elif-else關(guān)鍵字對多個相關(guān)條件進行判斷,并根據(jù)不同條件的結(jié)果按照順序選擇執(zhí)行路徑,語法格式如下:if<條件>:<語句塊1>elif<條件2>:<語句塊2>else:<語句塊3>本題選擇C選項。16、以下代碼的輸出結(jié)果是()。whileTure:guess=eval(input())ifguess==0x452//2:breakprint(guess)A、0x452B、breakC、553D、"0x452//2"標準答案:C知識點解析:該程序最外層是while循環(huán),while循環(huán)的條件是True,由此可知while內(nèi)的語句會無限循環(huán)。input()函數(shù)用來獲取用戶用鍵盤輸入的內(nèi)容并以字符串類型返回。eval()函數(shù)是把字符串轉(zhuǎn)換成Python可用的語言。if語句的作用是控制程序是否繼續(xù)循環(huán),判斷條件中的0x452是十六進制數(shù),對2整除的結(jié)果是553,如果用戶輸入的數(shù)據(jù)是553,則將結(jié)果輸出并終止循環(huán);如果輸入其他數(shù)據(jù),程序會一直要求用戶輸入直到輸入正確的數(shù)據(jù)才會終止循環(huán)。本題選擇C選項。17、以下代碼的輸出結(jié)果是()。forsin"grandfather":ifs=="d"ors=='h':continueprint(s,end=")A、grandfatherB、granfaterC、grandD、father標準答案:B知識點解析:for循環(huán)將字符串grandfather中的字符依次賦給變量s,當s=="d"或s=="h"時,結(jié)束本次循環(huán),不執(zhí)行print(s,end=");反之,則執(zhí)行print(s,end=")。故輸出結(jié)果為granfater。本題選擇B選項。18、以下關(guān)于函數(shù)優(yōu)點的描述中,正確的是()。A、函數(shù)可以表現(xiàn)程序的復(fù)雜度B、函數(shù)可以使程序更加模塊化C、函數(shù)可以減少代碼多次使用D、函數(shù)便于書寫標準答案:B知識點解析:函數(shù)定義:函數(shù)是指一組語句的集合該組語句被一個名字(函數(shù)名)封裝起來,要想執(zhí)行這個函數(shù),只需要調(diào)用其函數(shù)名即可。函數(shù)能提高應(yīng)用的模塊性和代碼的重復(fù)利用率。本題選擇B選項。19、Python中定義類的關(guān)鍵字是()。A、defB、classC、functionD、defun標準答案:B知識點解析:在Python中,用關(guān)鍵字class來定義類。本題選擇B選項。20、以下關(guān)于Python函數(shù)的描述中,錯誤的是()。A、可以定義函數(shù)接受可變數(shù)量的參數(shù)B、定義函數(shù)時,某些參數(shù)可以賦予默認值C、函數(shù)必須要有返回值D、函數(shù)可以同時返回多個結(jié)果標準答案:C知識點解析:在Python中,return語句用來結(jié)束函數(shù)并將程序返回到函數(shù)被調(diào)用的位置繼續(xù)執(zhí)行。return語句可以出現(xiàn)在函數(shù)中的任何部分,可以同時將0個、1個或多個函數(shù)運算結(jié)果返回給函數(shù)被調(diào)用處的變量。函數(shù)可以沒有return語句,此時函數(shù)并不返回值。本題選擇C選項。21、以下關(guān)于Python函數(shù)的描述中,錯誤的是()。A、Python程序的main()函數(shù)可以改為其他名稱B、如果Python程序包含一個函數(shù)main(),這個函數(shù)與其他函數(shù)地位相同C、Python程序可以不包含main()函數(shù)D、Python程序需要包含一個main()函數(shù)且只能包含一個main()函數(shù)標準答案:D知識點解析:Python是一種腳本解釋語言,與C/C++和Java有很大的區(qū)別,沒有main()函數(shù)。當運行單個Python文件時,如文件名為a.py,則a的屬性_name_=='_main_',并不是首先執(zhí)行main()函數(shù)。Python整個程序自頂向下順序執(zhí)行。本題選擇D選項。22、以下代碼的輸出結(jié)果是()。forsin"PythonNCRE":ifs=="N":breakprint(s,end="")A、PythonCREB、NC、PythonD、PythonNCRE標準答案:C知識點解析:for循環(huán)將字符串PythonNCRE的字符依次賦給變量s,當s=="N"時,跳出for循環(huán),故輸出為Python。本題選擇C選項。23、當用戶輸入2時,下面代碼的輸出結(jié)果是()。try:n=input("請輸入一個整數(shù):")defpow2(n):returnn**5pow2(n)except:print("程序執(zhí)行錯誤")A、32B、2C、程序沒有任何輸出D、程序執(zhí)行錯誤標準答案:D知識點解析:input()函數(shù)從控制臺獲得用戶的一行輸入,無論用戶輸入什么內(nèi)容,input()函數(shù)都以字符串類型返回結(jié)果。當用戶輸入2時,n='2',這是字符2,不是數(shù)字,不能進行數(shù)值運算,故程序會執(zhí)行except后面的語句,輸出程序執(zhí)行錯誤。本題選擇D選項。24、在Python中,不屬于組合數(shù)據(jù)類型的是()。A、浮點數(shù)類型B、字典類型C、列表類型D、字符串類型標準答案:A知識點解析:最常用的組合數(shù)據(jù)類型有3大類,分別是集合類型、序列類型及映射類型。其中序列類型包括字符串類型、列表類型及元組類型,字典類型屬于映射類型。本題選擇A選項。25、以下代碼的輸出結(jié)果是()。lis=list(range(4))print(lis)A、[0,1,2,3,4]B、[0,1,2,3]C、0,1,2,3,D、0,1,2,3,4,標準答案:B知識點解析:用方括號([])表示列表類型,也可以通過list()函數(shù)將集合或字符串類型轉(zhuǎn)換成列表類型。此代碼生成列表lis=[0,1,2,3],最后通過print()函數(shù)輸出。本題選擇B選項。26、以下關(guān)于列表變量ls操作的描述中,錯誤的是()。A、ls.copy():生成一個新列表,復(fù)制ls的所有元素B、ls.remove(x):刪除ls中所有的x元素C、ls.append(x):在ls最后增加一個元素D、ls.reverse():反轉(zhuǎn)列表ls中所有元素標準答案:B知識點解析:ls.remove(x)是刪除列表ls中出現(xiàn)的第一個元素x,而不是刪除列表ls中所有的x元素。本題選擇B選項。27、以下關(guān)于Python字典變量的定義中,正確的是()。A、d={[1,2]:1,[3,4]:3}B、d={1:as,2:sf}C、d={(1,2):1,(3,4):3}D、d={'python':1,[tea,cat]:2}標準答案:C知識點解析:在Python中,字典使用花括號({})建立,是存儲可變數(shù)量鍵值對的數(shù)據(jù)結(jié)構(gòu),每個元素是一個鍵值對,具有和集合類似的性質(zhì),即鍵值對之間沒有順序且不能重復(fù)。通過字典類型實現(xiàn)映射,鍵必須是唯一的,必須是不可變數(shù)據(jù)類型,值可以是任何數(shù)據(jù)類型。選項A、D兩項錯誤。B選項中值as和sf沒有引號應(yīng)被識別為變量,但as屬于Python內(nèi)部定義并保留使用的變量名不能被創(chuàng)建為變量,所以B選項錯誤。本題選C選項。28、列表listV=list(range(10)),以下能夠輸出列表listV中最小元素的是()。A、print(min(listV))B、print(listV.max())C、print(min(listV()))D、print(listV.reverse(i)[0])標準答案:A知識點解析:列表操作函數(shù)(假設(shè)列表名為ls)如下。len(ls):返回列表ls的元素個數(shù)(長度)。min(ls):返回列表ls的最小元素。max(ls):返回列表ls的最大元素。list(x):將x轉(zhuǎn)變?yōu)榱斜眍愋?。使用min(ls)和max(ls)的前提是列表中各元素類型可以進行比較。如果列表元素不能比較,使用這兩個函數(shù)將會報錯。本題選擇A選項。29、Python讀取文件中—行內(nèi)容的操作是()。A、readtextB、readlineC、readallD、read標準答案:B知識點解析:在Python中,文件的讀取方法(f代表文件變量)如下。f.read():從文件中讀入整個文件的內(nèi)容。f.readline():從文件中讀入一行內(nèi)容。f.readlines():從文件中讀入所有行,以每行為元素形成一個列表。f.seek():改變當前文件操作指針的位置。本題選擇B選項。30、文件family.txt在當前代碼所在目錄內(nèi),其內(nèi)容是一段文本:Wearefamily。以下代碼的輸出結(jié)果是()。txt=open("family.txt","r")print(txt)txt.close()A、txtB、family.txtC、其他答案D、Wearefamily標準答案:C知識點解析:open()函數(shù)打開一個文件,并返回可以操作這個文件的變量txt,并且open()函數(shù)有兩個參數(shù):文件名和打開模式。本題只是打開了文件,并沒有對文件進行操作,因此不會輸出文件的內(nèi)容。print(txt)語句輸出的是變量txt代表的文件的相關(guān)信息:<_io.TextIOWrappername='family.txt'mode='r'encoding='cp936'>。若想要輸出文件的內(nèi)容,需要把文件的內(nèi)容讀入,如txt1=txt.read()。本題選擇C選項。31、假設(shè)city.csv文件內(nèi)容如下:哈密瓜,香瓜,無籽西瓜,水晶葡萄奶油富士,火龍果,百香果以下代碼的輸出結(jié)果是()。f=open("city.csv","r")ls=f.read().split(",")f.close()print(ls)A、['哈密瓜','香瓜','無籽西瓜','水晶葡萄\n奶油富士','火龍果','百香果']B、['哈密瓜','香瓜','無籽西瓜','水晶葡萄','奶油富士','火龍果','百香果']C、['哈密瓜,香瓜,無籽西瓜,水晶葡萄,奶油富士,火龍果,百香果']D、['哈密瓜','香瓜','無籽西瓜','水晶葡萄','\n','奶油富士','火龍果','百香果']標準答案:A知識點解析:在Python中,split()方法通過指定分隔符對字符串進行切片,返回分隔后的字符串列表。用split(",")方法從CSV文件中獲得內(nèi)容時,無法去除換行符。'水晶葡萄\n奶油富士'作為一個列表元素出現(xiàn),所以ls=['哈密瓜','香瓜','無籽西瓜','水晶葡萄\n奶油富士','火龍果','百香果'],最后輸出列表。本題選擇A選項。32、以下代碼的輸出結(jié)果是()。fo=open("book.txt","W")ls=['C語言','Java','C#','Python']fo.writelines(ls)fo.close()A、'C語言"Java"C#"Python'B、C語言JavaC#PythonC、[C語言,Java,C#,Python]D、['C語言','Java','C#','Python']標準答案:B知識點解析:文件打開模式中w表示覆蓋寫模式,文件不存在則創(chuàng)建,存在則完全覆蓋原文件。文件寫入方法中,writelines()表示直接將列表類型的各元素連接起來寫入文件中。此代碼就是將列表ls中的內(nèi)容整體寫入文件中,本題選擇B選項。33、在讀/寫文件之前,需要打開文件,使用的函數(shù)是()。A、readB、fopenC、openD、CFile標準答案:C知識點解析:Python通過open()函數(shù)打開一個文件,并返回一個操作這個文件的變量,語法格式為<變量名>=open(<文件路徑及文件名>,<打開模式>)。本題選擇C選項。34、在Python中,包含矩陣運算的第三方庫是()。A、NumPyB、PyQt5C、wordcloudD、wxPython標準答案:A知識點解析:NumPy是Python的一種開源數(shù)值計算擴展第三方庫,用于處理數(shù)據(jù)類型相同的多維數(shù)組,簡稱“數(shù)組”。NumPy可以用來存儲和處理大型矩陣,提供了許多高級的數(shù)組編程工具,如矩陣運算、矢量處理、N維數(shù)據(jù)變換等。本題選擇A選項。35、在Python中,能夠處理圖像的第三方庫是()。A、PyInstallerB、pyserialC、pygameD、PIL標準答案:D知識點解析:PIL庫是Python在圖像處理方面的重要的第三方庫,支持圖像存儲、處理及顯示,它能夠處理幾乎所有的圖片格式,可以完成對圖像的縮放、剪裁、疊加以及為圖像添加線條、圖像及文字等操作。使用Python處理與圖像相關(guān)的程序,首選PIL庫。本題選擇D選項。二、基本編程題(本題共2題,每題1.0分,共2分。)36、考生文件夾下存在一個文件“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,因此第1空填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)]。37、考生文件夾下存在一個文件“PY103.py”,請寫代碼替換橫線,不修改其他代碼,實現(xiàn)以下功能。某商店出售某品牌的服裝,每件定價150,1件不打折,2件(含)到3件(含)打九折,4件(含)到9件(含)打八折,10件(含)以上打七折。用鍵盤輸入購買數(shù)量,屏幕輸出總額(保留整數(shù))。示例格式如下。輸入:8輸出:總額為:960試題程序:#請在程序的...處使用一行或多行代碼替換#注意:請不要修改其他已給出代碼n=eval(input("請輸入數(shù)量:"))…print("總額為:",cost)標準答案:n=eval(input("請輸入數(shù)量:"))ifn==1:cost=150elifn﹥=2andn<=3:cost=int(n*150*0.9)elifn﹥=4andn<=9:cost=int(n*150*0.8)elifn﹥=10:cost=int(n*150*0.7)print("總額為:",cost)知識點解析:本題考查Python的多分支結(jié)構(gòu)??傤~=購買件數(shù)×每件的價錢×購買折扣。當條件滿足時執(zhí)行相應(yīng)條件后面的語句,其他條件的語句無法執(zhí)行。題目要求結(jié)果輸出整數(shù),即要求所得的結(jié)果用int()函數(shù)對所得總額進行四舍五入。三、簡單應(yīng)用題(本題共2題,每題1.0分,共2分。)38、考生文件夾下存在一個文件“PY201.py”,請寫代碼替換橫線,不修改其他代碼,實現(xiàn)以下功能。使用turtle庫的turtle.right()函數(shù)和turtle.fd()函數(shù)繪制一個五角星,邊長為200像素,5個內(nèi)角度數(shù)均為36°,效果如下所示。試題程序:#請在程序的________處使用一行代碼或表達式替換#注意:請不要修改其他已給出代碼fromturtleimport*foriin____(1)____:fd(____(2)____)____(3)____標準答案:fromturtleimport*foriinrang(5):fd(200)right(144)知識點解析:該題考查的是Python標準庫——turtle庫,可用于繪制五角星。因為繪制5條邊,所以循環(huán)執(zhí)行5次,故第1空填range(5)。因為五角星邊長為200像素,所以第2空填200。最后由于本題要求使用right()函數(shù),且五角星的內(nèi)角為36°,因此第3空填right(144)。39、考生文件夾下存在一個文件“PY202.py”,該文件是本題目的代碼提示框架,其中代碼可以任意修改,請在該文件中編寫代碼,以實現(xiàn)如下功能。用鍵盤輸入一組人員的姓名、性別、年齡等信息,信息間采用空格分隔,每個人的信息為一行,按<Enter>鍵結(jié)束輸入。示例格式如下。張猛男35楊青女18汪海男26孫倩女22計算并輸出這組人員的平均年齡(保留1位小數(shù))和其中女性人數(shù),結(jié)果保存在考生文件夾下,命名為“PY202.txt”。示例格式如下。平均年齡是25.2女性人數(shù)是2試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#請在程序的________處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準fo=open("PY202.txt","W")(data=input:("請輸入一組人員的姓名、性別、年齡:")#姓名性別年齡…whiledata:…data=input("請輸入一組人員的姓名、性別、年齡:")fo.write("平均年齡是{:1f}女性人數(shù)是{}".format(________))fo.close()標準答案:fo=open("PY202.txt","w")data=input("請輸入一組人員的姓名、性別、年齡:")#姓名性別年齡women_num=0age_amount=0person_num=0whiledata:name,sex,age=data.split('')ifsex=='女':women_num+=1age_amount+=int(age)person_num+=1data=input("請輸入一組人員的姓名、性別、年齡:")average_age=age_amount/person_numfo.write("平均年齡是{:,1f}女性人數(shù)是{}".format(average_age,women_num))fo.close()知識點解析:由題目可知,首先需要定義3個變量分別用來統(tǒng)計女性人數(shù)、年齡總和以及總?cè)藬?shù)。本題要求每個人的信息采用空格分隔,即需要用字符串分隔函數(shù)split()進行分隔,該函數(shù)返回的是一個列表,所以每個人的信息就以列表的形式存儲在對應(yīng)的變量中。由于按<Enter>鍵結(jié)束信息輸入,因此需要把輸入信息的方法放在循環(huán)內(nèi),最后在輸出時使用format()輸出格式化信息。四、綜合應(yīng)用題(本題共3題,每題1.0分,共3分。)考生文件夾下存在3個Python源文件,分別對應(yīng)3個問題,請按照文件內(nèi)說明修改代碼,實現(xiàn)以下功能。法定節(jié)假日是根據(jù)各國、各民族的風俗習慣或紀念要求,由國家法律統(tǒng)一規(guī)定的用以慶祝及度假的休息時間。法定節(jié)假日制度是國家政治、經(jīng)濟、文化制度的重要反映,涉及經(jīng)濟社會的多個方面,涉及廣大人民群眾的切身利益。法定節(jié)假日的安排,為居民出行、購物和休閑提供了時間上的便利,為拉動內(nèi)需、促進經(jīng)濟增長做出了積極貢獻。給出一個某年的節(jié)假日的放假日期CSV文件(PY301-vacations.csv),內(nèi)容示例如下。序號節(jié)假日名稱開始月日結(jié)束月日1元旦123001012春節(jié)021502213清明節(jié)040504074勞動節(jié)050105035端午節(jié)06160618…以第1行為例,1230表示12月30日,0101表示1月1日。40、在“PY301-1.py”文件中修改代碼,讀入CSV文件中的數(shù)據(jù),獲得用戶輸入。根據(jù)用戶輸入的節(jié)假日名稱,輸出此節(jié)假日的時間范圍。輸入和輸出示例格式如下。請輸入節(jié)假日名稱(例如,春節(jié)):春節(jié)春節(jié)的假期位于0215~0221試題程序:#以下代碼為提示框架#請在程序的...處使用一行或多行代碼替換#請在程序的________處使用一行代碼替換#注意:提示框架的代碼可以任意修改,以完成程序功能為準…ls=[]…print("{}的假期位于{}-{}".format(________))標準答案:fi=open("PY301-vacations.csv","r")ls=[]forlineinfi:ls.append(line.strip("\n").split(","))s=input("請輸入節(jié)假日名稱:")forlineinls:ifs==line[1]:print("{}的假期位于{}-{}".format(line[1],line[2],line[3]))知識點解析:對文件的讀操作需要使用open()函數(shù),模式為"r";將文件讀入后,需要把CSV文件的內(nèi)容轉(zhuǎn)換成二維數(shù)據(jù),并將其轉(zhuǎn)換成二維列表對象。首先定義一個列表ls,把讀入的每行數(shù)據(jù)使用strip()函數(shù)清除掉換行符,再使用split()函數(shù)在元素之間以逗號分隔存儲在列表ls中,split()函數(shù)返回的是一個列表,因此把CSV文件轉(zhuǎn)換成二維列表對象。使用input()函數(shù)獲取用戶輸入,再用for循環(huán)遍歷二維列表,如果輸入的節(jié)假日名稱在列表中,則輸出對應(yīng)的時間段。41、在“PY301-2.py”文件中修改代碼,讀入CSV文件的數(shù)據(jù),獲得用戶輸入。用戶輸入一組范圍是1~7的整數(shù)作為序號,序號間采用空格符分隔,以回車符結(jié)束。輸出這些序號對應(yīng)的節(jié)假日的名稱、時間范圍,每個節(jié)假日的信息一行。本次輸出完成后,重新回到輸入序號的狀態(tài)。輸入和輸出示例格式如下

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論