202403青少年軟件編程Python等級考試試卷三級真題(含答案和解析)_第1頁
202403青少年軟件編程Python等級考試試卷三級真題(含答案和解析)_第2頁
202403青少年軟件編程Python等級考試試卷三級真題(含答案和解析)_第3頁
202403青少年軟件編程Python等級考試試卷三級真題(含答案和解析)_第4頁
202403青少年軟件編程Python等級考試試卷三級真題(含答案和解析)_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2024年3月青少年軟件編程Python等級考試試卷三級真題(含答案和解析)分?jǐn)?shù):100題數(shù):38一、單選題(共25題,共50分)。1. 在Python中,hex(2023)的功能是?()A. 將十進(jìn)制數(shù)2023轉(zhuǎn)化為十六進(jìn)制數(shù)B. 將十進(jìn)制數(shù)2023轉(zhuǎn)化為八進(jìn)制數(shù)C. 將十六進(jìn)制數(shù)2023轉(zhuǎn)化為十進(jìn)制數(shù)D. 將八進(jìn)制數(shù)2023轉(zhuǎn)化為十進(jìn)制數(shù)標(biāo)準(zhǔn)答案:A。試題解析:理解python中數(shù)制轉(zhuǎn)換函數(shù),hex()函數(shù)是將十進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)字符串。2. 下列表達(dá)式的值與其他三個選項不相等的是哪一個?()A. (A)16B. (11)8C. (10)10D. (1010)2標(biāo)準(zhǔn)答案:B。試題解析:把選項全部轉(zhuǎn)換成十進(jìn)制,所以本題目選擇B。(A)16=(10)10;(11)8=(9)10;(10)10=(10)10;(1010)2=(10)10。3. 下列說法錯誤或值為False的是?()A. 將十進(jìn)制數(shù)轉(zhuǎn)化為八進(jìn)制數(shù)的方法是除以8取余,逆序輸出。B. (8)16>(8)10C. (45)10=4×101+5×100D. 八進(jìn)制數(shù)15對應(yīng)的十進(jìn)制數(shù)為13標(biāo)準(zhǔn)答案:B。試題解析:進(jìn)制轉(zhuǎn)換,(8)16=(8)10。4. 下面選項中最大的數(shù)是?()A. (37)8B. (11111)2C. (1F)16D. (32)10標(biāo)準(zhǔn)答案:D。試題解析:(37)8=(31)10;(11111)2=(31)10;(1F)16=(31)10。5. 關(guān)于下列代碼,說法正確的是?()try:a=int(input('輸入一個數(shù):'))b=int(input('輸入另一個數(shù):'))m=a/bprint('結(jié)果是',m)except:print('其他錯誤!')exceptValueError:print('輸入的不是數(shù)字!')A. 輸入的都是數(shù)字,且b為非0整數(shù)時,執(zhí)行try后面的語句。B. 輸入的有非數(shù)字時,執(zhí)行exceptValueError后面的語句。C. 輸入的b為0時,執(zhí)行except后面的語句。D. 第6行代碼只能出現(xiàn)在try-except代碼塊的最后,所以代碼書寫有誤,不能運行。標(biāo)準(zhǔn)答案:D。試題解析:except塊只能出現(xiàn)在try-except程序結(jié)構(gòu)的最后,所以代碼書寫有語法錯誤。6. 下列代碼的運行結(jié)果是?()foriinrange(2):try:a=5%iexcept:print('&&&&&')else:print('@@@@@')finally:print('*****')A. @@@@@*****@@@@@*****B. &&&&&*****@@@@@*****C. &&&&&*****&&&&&*****D. &&&&&@@@@@*****標(biāo)準(zhǔn)答案:B。試題解析:try程序塊運行了兩次;第1次i的值為0,第3行代碼運行出錯,所以會進(jìn)入except程序塊執(zhí)行,打印出&&&&&。無論是否出錯,finally程序塊都會執(zhí)行,所以打印出*****。第2次i的值為1,代碼運行正確,進(jìn)入else程序塊執(zhí)行,打印出@@@@@,最后進(jìn)入finally程序塊,打印出*****。綜上所述,選項B正確。7. 下面程序使用的with語句打開文件,處理結(jié)束后會?()c=['老虎','狗','獅子','大象','狼']withopen('動物.csv','w')asf:f.write(','.join(c)+'\n')A. 自動讀取動物.csv文件B. 自動寫入動物.csv文件C. 自動打開動物.csv文件D. 自動關(guān)閉動物.csv文件標(biāo)準(zhǔn)答案:D。試題解析:with語句打開文件,處理結(jié)束后會自動關(guān)閉文件。8. 與下列程序?qū)崿F(xiàn)的功能一樣的是?()withopen('動物.csv','r')asf:h=f.read().strip().split(',')print(h)A. f=open('動物.csv','r')h=f.read().split(',').strip()f.close()print(h)B. f=open('動物.csv','r')h=f.read().strip().split(',')f.close()print(h)C. f=open('動物.csv','r')h=f.read().strip().split(',')print(f)D. f=open('動物.csv','r')h=f.read().split(',').strip()f.close()print(f)標(biāo)準(zhǔn)答案:B。試題解析:考核從CSV格式文件中讀出數(shù)據(jù)。9. 關(guān)于語句f=withopen('d:/stu.csv','r'),下列描述不正確的是?()A. 如果文件stu.csv不存在,會創(chuàng)建stu.csv。B. 以只讀方式打開文件。C. f是變量名。D. 程序處理完畢,會自動關(guān)閉stu.csv。標(biāo)準(zhǔn)答案:A。試題解析:文件打開方式:r只讀,如果文件stu.csv不存在,會報錯。10. 有關(guān)Python文件常用讀寫方式的描述,錯誤的是?()A. read()每次讀取整個文件。B. read()生成的文件內(nèi)容是一個列表。C. readline()每次只讀取文件的一行。D. readlines()每次按行讀取整個文件內(nèi)容,將讀取到的內(nèi)容放到一個列表中。標(biāo)準(zhǔn)答案:B。試題解析:read()生成的文件內(nèi)容是一個字符串。11. 關(guān)于語句f=open(r"c:\計算.txt",'w'),下列描述不正確的是?()A. f是變量。B. 'w'以寫方式打開文件。C. 如果文件“計算.txt”不存在,不會報錯。D. 如果文件“計算.txt”內(nèi)原來有內(nèi)容,將不會被覆蓋。標(biāo)準(zhǔn)答案:D。試題解析:如果文件“計算.txt”內(nèi)原來有內(nèi)容,將會被覆蓋。12. 小明用插入排序算法,編寫了如下代碼,對列表arr中的數(shù)值進(jìn)行排序,請問,代碼中紅色①處,應(yīng)填寫什么代碼?()arr=[9,3,7,5,1,6,8,4,2]foriinrange(1,len(arr)):key=arr[i]j=i-1whilej>=0andkey<arr[j]:arr[j+1]=①j=j-1arr[j+1]=keyprint("排序后的數(shù)組:",arr)A. arr[i]B. arr[j-1]C. arr[i+1]D. arr[j]標(biāo)準(zhǔn)答案:D。試題解析:本題為經(jīng)典的插入排序算法,題中需要補(bǔ)充的代碼,就是數(shù)值位置互換的代碼,所以正確答案是選項D,也就是arr[j]。13. 列表a中全是整數(shù),小明想將其中所有奇數(shù)都增加1,偶數(shù)不變,于是編寫了如下代碼。請問紅色①處,代碼應(yīng)該是?()a=[1,2,3,4,5,6,7,8,9,10]forxinrange(len(a)):if①!=0:a[x]=a[x]+1print(a)A. a[x]/2B. a[x]^2C. a[x]*2D. a[x]%2標(biāo)準(zhǔn)答案:D。試題解析:本題代碼中,for循環(huán)從a列表中取出值,交給if語句進(jìn)行判斷,如果除以2的余數(shù)不等于0,就是奇數(shù),則當(dāng)前值+1,若等于0則值不變。取余數(shù)的運算符是%,所以正確答案是D。14. 小明用冒泡排序算法編寫了一段程序,請問程序中紅色標(biāo)記的①處,應(yīng)該填寫什么代碼?()a=[8,4,2,11,3,9]n=len(a)foriinrange(0,n):forjinrange(0,n-i-1):ifa[j]>a[①]:a[j],a[j+1]=a[j+1],a[j]print(a)A. j-1B. j+1C. n-1D. n+1標(biāo)準(zhǔn)答案:B。試題解析:本題考查學(xué)生對冒泡算法循環(huán)位置的理解,標(biāo)準(zhǔn)答案為選項B。15. divmod(-10,3)返回值是?()A. (-3,1)B. (-4,2)C. (-4,-2)D. (-3,-1)標(biāo)準(zhǔn)答案:B。試題解析:divmod(a,b)函數(shù)可以返回a除以b的商和余數(shù),余數(shù)的符號由第二個參數(shù)的符號決定,在這個例子中,-10除以3的商為-4,余數(shù)為2。因此,正確的答案是B。16. 下列代碼的結(jié)果是?()set_a=set('happy')set_b=set('java')set_c=set_a-set_bc=list(set_c)print(c)A. {'h','p','y'}B. ['a']C. ['v','y','h','p','j','a']D. ['y','h','p']標(biāo)準(zhǔn)答案:D。試題解析:首先,set_a包含字符'happy',set_b包含字符'java'。然后,通過set_a-set_b操作取得兩個集合的差集,即set_c=set_a-set_b。這將從set_a中移除在set_b中出現(xiàn)的元素,因此set_c將包含字符'h','p','y'。最后,將set_c轉(zhuǎn)換為列表c,并打印輸出c。所以輸出結(jié)果是['y','h','p']。17. 給定列表nums=[1,2,3,4,5,6],以下哪個選項返回True?()A. notall(nums)B. any(nums)C. not(all(nums)andany(nums))D. not(all(nums)orany(nums))標(biāo)準(zhǔn)答案:B。試題解析:notall(nums)返回True的條件是列表中至少有一個元素為False。any(nums)返回True的條件是列表中有元素為True。給定列表`nums=[1,2,3,4,5,6]`,所有元素都是非零的正整數(shù),因此any(nums)返回True,所以此題選擇B選項。18. 在Python中print(tuple(range(0,8,3)))語句,執(zhí)行的結(jié)果是?()A. (0,3,6)B. (0,2,4,6)C. (0,1,2,3,4,5,6,7)D. (0,4)標(biāo)準(zhǔn)答案:A。試題解析:range()函數(shù)可以生成一個整數(shù)序列,其中的參數(shù)分別表示起始值、終止值和步長。在這個例子中,range(0,8,3)生成的序列是0,3,6,然后使用tuple()函數(shù)將其轉(zhuǎn)換為元組,最終輸出結(jié)果為(0,3,6),所以此題選A。19. 下列關(guān)于map()函數(shù)的代碼,其運行結(jié)果是?()res=map(str,[3,6,8,4,5])print(list(res))A. '36845'B. [3,6,8,4,5]C. [6,12,16,8,10]D. ['3','6','8','4','5']標(biāo)準(zhǔn)答案:D。試題解析:map()函數(shù)將第一個參數(shù)(這里是str)作用于第二個參數(shù)(這里是列表[3,6,8,4,5])的每個元素上,返回一個可迭代對象。在這個例子中,str函數(shù)將每個數(shù)字轉(zhuǎn)換為字符串,所以最終的結(jié)果是一個包含字符串的列表['3','6','8','4','5']。使用list()函數(shù)將可迭代對象轉(zhuǎn)換為列表。20. 下列程序運行結(jié)果是?()a=int(min("2345"))b=int(max("14693"))c=b+aprint(c)A. 11B. 243C. 729D. 6561標(biāo)準(zhǔn)答案:A。試題解析:min("2345")返回的是字符串中ASCII碼最小的字符,即"2",轉(zhuǎn)換成int類型為2;max("14693")返回的是字符串中ASCII碼最大的字符,即"9",轉(zhuǎn)換成int類型為9;b+a,結(jié)果為11。21. 以下哪個函數(shù)可以將字符轉(zhuǎn)換為ASCII碼?()A. ascii()B. ord()C. chr()D. encode()標(biāo)準(zhǔn)答案:B。試題解析:ord()函數(shù)可以將字符轉(zhuǎn)換為ASCII碼,而ascii()函數(shù)則是將對象轉(zhuǎn)換為ASCII碼表示的字符串。chr()函數(shù)則是將ASCII碼轉(zhuǎn)換為字符,而encode()函數(shù)則是將字符串編碼為指定格式的字節(jié)串。22. 以下哪個值在bool函數(shù)中會被解釋為False?()A. 0B. 1C. -1D. 2標(biāo)準(zhǔn)答案:A。試題解析:在bool函數(shù)中,除了0以外的所有數(shù)值都會被解釋為True,而0則會被解釋為False。因此選項A中的0會被解釋為False。23. 以下哪個選項描述了abs()函數(shù)的返回值類型?()A. intB. floatC. boolD. 不確定,取決于輸入?yún)?shù)類型。標(biāo)準(zhǔn)答案:D。試題解析:abs()函數(shù)的返回值類型取決于輸入?yún)?shù)的類型。如果輸入?yún)?shù)是整數(shù)或浮點數(shù),則返回值也是整數(shù)或浮點數(shù);如果輸入?yún)?shù)是復(fù)數(shù),則返回值是該復(fù)數(shù)的模長,即一個非負(fù)實數(shù)。因此,選項D是正確的。24. 給定一個整數(shù)列表nums,如何使用sum函數(shù)計算列表中所有元素的和,并返回結(jié)果?()A. sum(nums)B. sum[nums]C. sum(nums,[])D. sum(nums,0)標(biāo)準(zhǔn)答案:A。試題解析:選項A中使用了sum函數(shù)來計算整數(shù)列表nums的和。sum函數(shù)接受一個可迭代對象作為參數(shù),并返回所有元素的和。選項B中使用了中括號[]來調(diào)用sum函數(shù),這是錯誤的語法使用。選項C中的第二個參數(shù)是一個空列表[],在sum函數(shù)中并沒有這種用法。選項D中的第二個參數(shù)是一個初始值0,但sum函數(shù)在沒有指定初始值時,默認(rèn)為0,因此該參數(shù)可以省略。25. 以下哪個選項描述了程序的輸出結(jié)果?()fruits=['apple','banana','orange']fori,fruitinenumerate(fruits):print(i,fruit)A. (0,'apple')(1,'banana')(2,'orange')B. apple0banana1orange2C. 0apple1banana2orangeD. ('apple',0)('banana',1)('orange',2)標(biāo)準(zhǔn)答案:C。試題解析:程序中使用了enumerate()函數(shù)來遍歷一個包含水果名稱的列表,并將每個元素的索引和值分別存儲在i和fruit中。在循環(huán)體中,使用print()函數(shù)將i和fruit打印出來。因此,輸出結(jié)果為"0apple,1banana,2orange"。因此,選項C是正確的。二、判斷題(共10題,共20分)。26. 十六進(jìn)制3C轉(zhuǎn)換成八進(jìn)制為74。()標(biāo)準(zhǔn)答案:正確。試題解析:十六進(jìn)制3C轉(zhuǎn)換為十進(jìn)制為60,再轉(zhuǎn)換成八進(jìn)制為74。27. 異常處理結(jié)構(gòu)中,如果try程序段中出現(xiàn)了運行錯誤的語句,那么每一個except程序段都會被運行。()標(biāo)準(zhǔn)答案:錯誤。試題解析:如果try程序段中出現(xiàn)了運行錯誤的語句,那么會根據(jù)錯誤的具體情況,進(jìn)入對應(yīng)的except程序段,不會把每個except程序段都執(zhí)行。28. 下面程序,將產(chǎn)生一個“動物.csv”的文件。()c=['老虎','狗','獅子','大象']f=open('動物.csv','w')f.write(','.join(c)+'\n')f.close()標(biāo)準(zhǔn)答案:正確。試題解析:考核將列表對象輸出為CSV格式文件。29. 使用open()函數(shù)打開'food.csv'文件后,返回的是元組。()標(biāo)準(zhǔn)答案:錯誤。試題解析:在Python中使用open()函數(shù)打開文件,并返回一個文件對象,然后通過文件對象對文件進(jìn)行讀寫操作。30. 下面程序:f=open(r"c:\字符串.txt",'w')f.write('Eden\nOrion\nPhoenix\n')f.close()能在原來文件的基礎(chǔ)上添加三行字符串。()標(biāo)準(zhǔn)答案:錯誤。試題解析:考核將包含多個換行符的字符串寫入文件,但是重新生成文件,不會在原來文件的基礎(chǔ)上添加三行字符串。31. abs()函數(shù)的功能是獲取參數(shù)的絕對值,例如abs(-3.14)的運行結(jié)果是-3。()標(biāo)準(zhǔn)答案:錯誤。試題解析:abs(-3.14)的運行結(jié)果是3.14。32. print(type({"name":"Alice","age":25})==dict)結(jié)果為True。()標(biāo)準(zhǔn)答案:正確。試題解析:在這個例子中,{"name":"Alice","age":25}是一個字典,其中"name"和"age"是鍵,"Alice"和25是對應(yīng)的值。使用type()函數(shù)可以獲取一個對象的類型,type({"name":"Alice","age":25})的結(jié)果是dict,與dict進(jìn)行比較的結(jié)果是True。33. format()函數(shù)可以指定變量的類型、精度、對齊方式等格式選項,從而生成不同的字符串,如:"{:.2f}".format(3.1415926)的結(jié)果為"3.14"。()標(biāo)準(zhǔn)答案:正確。試題解析:format()函數(shù)可以通過格式化字符串來指定變量的類型、精度、對齊方式等格式選項,從而生成不同的字符串。在這個例子中,"{:.2f}"表示將浮點數(shù)格式化為保留兩位小數(shù)的字符串,所以3.1415926會被格式化為"3.14"。因此正確。34. 使用open()函數(shù)打開一個已存在的文件時,如果指定的模式為"w",則會清空該文件中的內(nèi)容。()標(biāo)準(zhǔn)答案:正確。試題解析:因為"w"模式表示寫入模式,如果文件已經(jīng)存在,那么打開文件時會將文件指針指向文件的開頭,然后開始寫入新的內(nèi)容,這樣就會覆蓋掉原有的內(nèi)容。所以此說法正確。35. 二進(jìn)制數(shù)在末尾加個“0”,等于這個數(shù)乘以2。()標(biāo)準(zhǔn)答案:正確。試題解析:二進(jìn)制末尾加0,則是把二進(jìn)制中每個數(shù)擴(kuò)大2倍。例如(11)2=21+20;末尾加入0后是110,22+21=2*(21+20)。三、編程題(共3題,共30分)。36. 整數(shù)問題。給定一個十進(jìn)制整數(shù)n,求出從1到n的所有整數(shù)中出現(xiàn)“1”的個數(shù)。例如,n=2時,1,2出現(xiàn)1個“1”。n=12時,1,2,3,4,5,6,7,8,9,10,11,12,出現(xiàn)5個“1”?,F(xiàn)編寫一個程序,實現(xiàn)如下功能:輸入整數(shù)n,執(zhí)行程序后,輸出該范圍內(nèi)出現(xiàn)“1”的個數(shù)。請完善程序:n=int(input('請輸入整數(shù):'))①i=1while②:x=iwhilex>0:if③:count=count+1x//=10④print(n,'范圍內(nèi)1的個數(shù)有:',count)參考程序:n=int(input('請輸入整數(shù):'))count=0i=1whilei<=n:x=iwhilex>0:ifx%10==1:count=count+1x//=10i=i+1print(n,'范圍內(nèi)1的個數(shù)有:',count)評分標(biāo)準(zhǔn):(1)count=0或等效答案;(2分)(2)i<=n或等效答案;(2分)(3)x%10==1或等效答案;(3分)(4)i=i+1或等效答案。(3分)37. 偶數(shù)排序。下列程序?qū)?shù)列中的偶數(shù)按從小到大順序輸出,請你補(bǔ)全代碼:defeven(x):returnx%2==0#自定義函數(shù)even,判斷x是否為偶數(shù)。c=[3,7,1,18,9,12,5,2,22,10]n=①h=[]foriin②:forjinrange(0,n-i-1):if③:c[j],c[j+1]=④foriinrange(0,n-1):h=filter(⑤,c)ans=list(h)print(ans)參考程序:defeven(x):returnx%2==0c=[3,7,1,18,9,12,5,2,22,10]n=len(c)h=[]foriinrange(0,n-1):forjinrange(0,n-i-1):ifc[j]>c[j+1]:c[j],c[j+1]=c[j+1],c[j]foriinrange(0,n-1):h=filter(even,c)ans=list(h)print(ans)評分標(biāo)準(zhǔn):(1)len(c)或等效答案;(3分)(2)range(0,n-1)或等效答案;(3分)(3)c[j]>c[j+1]或等效答案;(3分)(4)c[j+1],c[j]或等效答案;(3分)(5)even或等效答案。(4分)38. 食堂問卷調(diào)查。學(xué)校食堂為了提高服務(wù)質(zhì)量,讓老師和同學(xué)們更好地投入工作和學(xué)習(xí),對同學(xué)們開展了問卷調(diào)查,調(diào)查項目共5項(即5個問題),每個項目有A、B、C三個選項,同學(xué)們每題可選一項,學(xué)校后勤管理的李老師對調(diào)查結(jié)果進(jìn)行了收集整理,并存放在"myd.csv"文件中(部分?jǐn)?shù)據(jù)如圖所示),現(xiàn)在需要分析同學(xué)們對這5個項目的答題情況,統(tǒng)計出每個項目選"A"的情況。李老師用Python編寫了以下代碼,輸出結(jié)果如下圖,請你完善劃線處:importcsvwithopen("/data/①

溫馨提示

  • 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

提交評論