青少年軟件編程(Python)等級考試試卷(五級)
答案解析:https://blog.csdn.net/qq_33897084/article/details/147341437
一、單選題(共25題,共50分)
1. 以下哪個選項不是Python中的推導式?( )
A. 列表推導式
B. 字典推導式
C. 集合推導式
D. 元組推導式
2. 以下Python代碼的返回結果是?( )
[x**2 for x in range(5)]
A. [0, 1, 4, 9, 16]
B. [1, 4, 9, 16, 25]
C. [0, 1, 4, 9, 16, 25]
D. [1, 4, 9, 16, 25, 36]
3. 已知列表list1=[“張三”,“李四”,“王五”,“趙六”],能輸出[‘張三’, ‘王五’]的是?( )
A. print(list1[0:2])
B. print(list1[0::2])
C. print(list1[0,2])
D. print(list1[1:3])
4. 下列Python代碼的輸出為?( )
g=[1,2,3,4,5]
a=g.pop(1)
print(g[-a])
A. 2
B. 5
C. 3
D. 4
g[-a]=4
考察了pop和列表元素定位。
5. 下面Python程序運行后,結果?( )
list1=[‘a’,1,‘c’,2]
del list1[1:3]
print(list1)
A. [‘c’,2]
B. [‘a’,1]
C. [‘a’,2]
D. [1,‘c’]
6. 有如下Python程序段,執行該程序段后,輸出顯示的內容是?( )
list1=[]
for i in range(15):
????if?i%30:
????????continue
????elif?i%50:
????????break
????list1.append(i)
print(list1)
A. [0,1,2]
B. [1,2,4]
C. [0,1,2,4]
D. [1,2,4,5]
7. 元組變量name=(‘Betty’,‘Linda’,‘Whitney’,‘Lily’),則name[::-1]的運行結果是?( )
A. (‘Betty’,‘Linda’,‘Whitney’,‘Lily’)
B. (‘Lily’, ‘Whitney’, ‘Linda’, ‘Betty’)
C. 運行出錯
D. ( “Lily”)
8. 有如下Python程序,請問此程序的執行結果是?( )
tup1 = (‘Google’, ‘Firefox’,‘UC’,‘QQ’,‘360’)
tup1[1] =“火狐”
print(tup1[1])
A. Firefox
B. 火狐
C. Google
D. 程序出現錯誤
9. 學校組織了一次閱讀打卡活動,每日讀書時長被記錄在列表 reading_times = [30, 45, 60, 35, 40, 50] 中,同時有對應的參與學生姓名列表 names = [‘小明’, ‘小紅’, ‘小亮’, …]。若想找出所有讀書時長大于等于45分鐘的學生姓名并存入新的列表,以下哪個表達式是正確的?( )
A. long_readers = [names[i] for i in reading_times if i >= 45]
B. long_readers = [nreading_times[i] for i in range(len(names)) if reading_times[i] >= 45]
C. long_readers = [names[i] for i in range(len(reading_times)) if reading_times[i] >= 45]
D. long_readers = [names[i] for i in names if reading_times[i] >= 45]
10. 下列關于字符串的說法中,錯誤的是?( )
A. 字符串支持成員關系操作符(in)
B. 字符串是不可變序列,但是字符串有replace()方法,可以改變部分字符
C. 字符串是任意字符的無序組合
D. 字符串支持雙向索引切片操作
11. 下列選項中,輸出結果是大寫字母A的是?( )
A. print(‘\101’)
B. print(‘\102’)
C. print(‘\x47’)
D. print(‘\x48’)
print(‘\102’) #B 3位八進制數對應的字符
print(‘\x47’) #G 2位十六進制數對應的字符
print(‘\x48’) #H 2位十六進制數對應的字符
12. 要想輸出結果保留2位小數,下列選項中正確的是?( )
A. print(‘六年級一班的數學平均分為{0:2f}’.format(4321/50))
B. print(‘六年級一班的數學平均分為{0.:2f}’.format(4321/50))
C. print(‘六年級一班的數學平均分為{0:.f2}’.format(4321/50))
D. print(‘六年級一班的數學平均分為{0:.2f}’.format(4321/50))
print(‘六年級一班的數學平均分為{0.:2f}’.format(4321/50)) 報錯
print(‘六年級一班的數學平均分為{0:.f2}’.format(4321/50)) 報錯
print(‘六年級一班的數學平均分為{0:.2f}’.format(4321/50))輸出結果為:六年級一班的數學平均分為86.42
13. 運行下列Python代碼,輸出結果是?( )
s=‘good job’
print(s.capitalize())
print(s.title())
A. Good Job
Good job
B. Good Job
Good Job
C. Good job
Good Job
D. Good job
Good job
14. 下列選項中的程序在運行時會引發異常的是?( )
A. a=4**0.5
print(a)
B. import math
b=math.sqrt(4)
print(b)
C. c=(-4)**0.5
print?
D. import math
d=math.sqrt(-4)
print(d)
15. jieba是常用的Python擴展庫。以下函數中,不是jieba庫函數的是?( )
A. lcut()
B. cut()
C. add_word( )
D. find( )
16. wordcloud是一個優秀的Python第三方擴展庫,它可以將一段文本變成一張詞云圖片,方便人們閱讀理解。當我們使用wordcloud創建一個WordCloud對象時,參數mask的作用是?( )
A. 指定圖片的大小
B. 指定圖片的寬度
C. 指定詞云形狀
D. 指定詞云的背景顏色
17. time庫是常用的Python標準庫,我們可以方便地獲取與時間相關的對象。下面的代碼是一種簡單方便的獲取時間的方法。運行該程序后的輸出結果可能是?( )
import time
localtime=time.asctime(time.localtime(time.time()))
print(‘當前本地時間為:{}’.format(localtime))
A. 當前本地時間為:Wed Feb 7 13:19:21 2024
B. 當前本地時間為:Feb 7 13:19:21 2024
C. 當前本地時間為:Wed Feb 7 13:19:21
D. 當前本地時間為:Feb 7 13:19:21
18. 如果要創建一個列表a=[10, 9, 8, 7, 6, 5, 4, 3, 2, 1],可以使用哪個選項里的代碼?( )
A. a=list(range(10,0,-1))
B. a=list(range(11,0,-1))
C. a=list(range(0,10,-1))
D. a=list(range(10,1,-1))
19. 運行下列Python代碼,輸出結果是?( )
a=range(10)
print(a[5])
A. 4
B. 5
C. 6
D. 報錯
20. 如果想輸出結果為"科目三",則在①處應填入?( )
s=‘沒有科目三的晚會是不完美的’
n=‘’
for i in range( ① ):
????n=n+s[i]
print(n)
A. 2,6
B. 1,5
C. 2,5
D. 2,6,2
21. 如果運行下列代碼的輸出結果是:[1,2,3,4,5],則在①處應填入?( )
a=[1,0,2,0,3,0,4,0,5,0]
b=[]
for i in range( ① ):
????b.append(a[i])
print(b)
A. 0,10,2
B. 0,10,1
C. 0,11,2
D. 0,11
range(0,11,2)可以取到的值為0,2,4,6,8,10,超出了列表的索引范圍,程序會拋出異常。
22. 執行該程序段后, 下列語句能正確輸出單詞"apple"出現次數的是?( )
words = [“apple”, “pear”, “apple”, “apple”, “keep”, “day”]
dic = {}
for i in words:
????if?i?in?dic:
????????dic[i]?=?dic[i]?+?1
????else:
????????dic[i]?=?1
A. print(dic[0])
B. print(dic{0})
C. print(dic[“apple”])
D. print(dic{“apple”})
23. Python字典中update()方法用于更新字典中的鍵/值。有字典dic={“數學”:89 ,“語文”:78,“英語”:96},d={“物理”:97,“語文”:90,“信息技術”:91,“地理”:78}執行語句dic.update(d)后,dic的值為?( )
A. {“數學”:89,“語文”:90, “英語”:96, “物理”:97, “信息技術”:91,“地理”:78}
B. {“數學”:89, “語文”:78,“英語”:96, “物理”:97 ,“信息技術”:91,“地理”:78}
C. {“數學”:89,“語文”:78, “英語”:96, “物理”:97, “語文”:90, “信息技術”:91, “地理”:78}
D. {“數學”:89, “英語”:96, “物理”:97, “信息技術”:91 ,“地理”:78}
其中,dict是要更新的字典,other可以是一個字典,也可以是一個鍵值對元組序列。update()函數會將other中的鍵值對添加到dict中,如果字典中已存在該鍵,則會用other中對應的值覆蓋字典中原有的值。
24. 執行以下Python語句,得到的結果是?( )
s = {1, 2, 3,4}
s.update({4,5,6})
print(s)
A. {1,2,3,4,4,5,6}
B. {4,5,6}
C. {1,2,3,4,5,6}
D. {1,2,3}
25. 以下語句在運行時會出現錯誤的是?( )
A. s={1,‘two’,3,‘four’,(5,6,7)}
B. s={1,2,3,3,5,6}
C. s=set(range(1,7))
D. s = {1,2,[‘three’, ‘four’ ],(5, 6)}
二、判斷題(共10題,共20分)
26. 判斷下面的說法是否正確:在Python中,集合推導式和列表推導式的語法完全相同。( )
27. list(range(5))可以生成列表[0,1,2,3,4]。( )
28. 有元組tup = (‘Google’,‘Firefox’,‘UC’,‘QQ’,‘360’),可以通過del tup刪除元組tup。( )
29. 運行下列Python代碼不會報錯。( )
s=‘good good study’
print(s.find(‘day’))
30. Python興趣小組共有36位同學,按1-36編號。現在想隨機抽取一名同學的編號,可以用random.randrange(36)實現。( )
31. 列表[2.1,3.1,4.1,5.1]可以用list(range(2.1,6.1))來創建。( )
32. 同一個字典中,字典的鍵不允許重復,值是可以重復的。( )
33. 如果原來的序列數據中存在重復元素,則在轉化為集合時只留一個。( )
34. 關系運算符>、>=、<、<=作用于集合時,可比較集合中元素的大小關系。( )
35. 在Python中,字符串方法split()可以將一個字符串按照指定的分隔符拆分成多個子字符串,并返回一個列表。( )
三、編程題(共3題,共30分)
36. 共同的興趣
小明正在開發一個社交網絡應用程序,需要實現一個功能來幫助用戶找到共同的興趣愛好。用戶可以輸入自己的興趣愛好,然后系統會將用戶輸入的興趣愛好與其他用戶的興趣愛好進行比對,找出共同的興趣愛好并統計數量展示給用戶。請在下面程序空白處填上正確內容,以實現程序功能。
示例:
??請輸入用戶A的興趣愛好,用逗號分隔:閱讀,旅行,游泳,瑜伽
??請輸入用戶B的興趣愛好,用逗號分隔:游泳,瑜伽,攝影,登山
??共同的興趣愛好:?{‘游泳’,?‘瑜伽’}
??共同興趣愛好的數量:?2
??所有興趣愛好的總集合:?{‘瑜伽’,?‘游泳’,?‘登山’,?‘攝影’,?‘閱讀’,?‘旅行’}
hobbies_a = set(input(“請輸入用戶A的興趣愛好,用逗號分隔:”). ① )
hobbies_b = set(input(“請輸入用戶B的興趣愛好,用逗號分隔:”). ② )
common_hobbies = hobbies_a.intersection( ③ )#交集運算
common_hobbies_count = len(common_hobbies)
all_hobbies = hobbies_a.union(hobbies_b)
print(“共同的興趣愛好:”, common_hobbies)
print(“共同興趣愛好的數量:”, ④ )
print(“所有興趣愛好的總集合:”, all_hobbies)
評分標準:
(1)split(‘,’) 或等效答案;(2分)
(2)split(‘,’) 或等效答案;(2分)
(3)hobbies_b 或等效答案;(3分)
(4)common_hobbies_count 或等效答案。(3分)
37. 完全數
數學老師告訴小明,數字王國中有一組耀眼的明星,它們叫完全數。其特點是一個正整數等于除它之外其他所有除數之和,就稱之為完全數。
例如:6除它之外的除數有1、2、3,并且1+2+3=6,所以它是完全數。數學老師讓小明找出500以內的完全數。小明寫下求500以下完全數的程序,但因為粗心遺漏了關鍵的代碼,請根據上面需求補全程序代碼。
for i in range(1,500):
????str1=[]
????for?j?in?????????①????????:
????????if?i%j==0:
???????????????????②????????
????if????????③????????:
????????print(f’{i}是完全數’)
評分標準:
(1)range(1,i) 或等效答案;(3分)
(2)str1.append(j) 或等效答案;(3分)
(3)i==sum(str1) 或等效答案。(4分)
38. 字符串替換
小明在信息科技課上學習了word的基本操作后,了解到word中替換功能可以將文檔中指定內容一次性全部替換成其他文本,于是試著在Python中編程實現相關功能,功能描述如下:
在字符串s中,查找指定的字符c1(可以是單個字符,也可以是多個字符的組合)并替換成其他字符c2。例如:輸入s的值為:“A person in need is a person indeed!”,輸入c1的值為:person,輸入c2的值為"friend",則顯示的結果是"A friend in need is a friend indeed!"。實現上述功能的python代碼如下:運行界面如圖所示:
請在劃線處填入適當的代碼.
s=input(“請輸入文本字符串:”)
c1=input(“請輸入要替換的字符:”)
c2=input(“請輸入要替換成的新字符:”)
n=len(c1)
s1=“”
i=0
while i<len(s):
????c=????????①????????
????if?c==c1:
????????s1=s1+c2
????????i=????????②????????
????else:
????????s1=????????③????????
????????????????④????????
print(“替換后的結果:”,s1)
?
評分標準:
(1)s[i:i+n] 或等效答案;(3分)
(2)i+n 或等效答案;(3分)
(3)s1+s[i] 或等效答案;(2分)
(4)i=i+1 或等效答案。(2分)
答案解析:https://blog.csdn.net/qq_33897084/article/details/147341437