資源簡介 NOC Python初賽考題一、單選題1.運行以下代碼,終端區會出現什么內容?A:9B:0C:25D:終端區會報錯答案:C解析:count 函數中有一個參數 a,運行函數時,函數會遍歷傳入的列表,并且將其中的元素裝進變量 i 中,累加進 result 變量里。在最后一行代碼中,將 num_list 列表作為函數的參數,所以就是將 列表中所有元素都加在一起,所以最后的結果是 25 。2.以下關于列表的表述中,錯誤的是?A:我們可以使用 == 符號判斷兩個列表是否相同B:Python 中的列表可以嵌套,形成二維列表C:+ 號可以拼接兩個列表D:列表和字符串一樣,都是不可變的答案:D解析:列表是可變的,元組是不可變的。3.對于字典 d={'abc':1, 'qwe':2, 'zxc':3}, 現在 len(d) 這個語句的結果是什么呢?A:6B:3C:12D:9答案:B解析:字典的長度也就是鍵的個數。所以結果是 3 。4.假設變量 string 中存儲著一個字符串"編程競賽",下面哪段代碼可以獲得 string 從右到左的第三個字符呢?A:string[3]B:string[-3]C:string[:-3]D:string[0:-3]答案:B解析:在 Python 中,我們可以通過負數索引,反向獲得字符串中的元素,比如說 d[-1] 表示的就是倒數第一個字符,所以正確答案選 B。5.以下選項中不是 Python 語言的保留字的是?A:exceptB:doC:passD:while答案:B解析:在 Python 中,沒有 do 這個關鍵字。6.以下選項中不符合 Python 語言變量命名規則的是?A:IB:3_1C:_AID:TempStr答案:B解析:在 Python 中,變量的開頭不能是數字。7.關于 Python 語言的特點,以下選項描述正確的是?A:Python 語言不支持面向對象B:Python 語言是解釋型語言C:Python 語言是編譯型語言D:Python 語言是非跨平臺語言答案:B解析:Python 是解釋型的語言,它可以跨平臺工作,也支持面向對象編程。8.將列表 [1, 3, 0, 4, 2, 6, 5] 進行排序,并將過程中的結果打印如下:[1, 3, 0, 4, 2, 6, 5][1, 3, 0, 4, 2, 6, 5][0, 1, 3, 4, 2, 6, 5][0, 1, 3, 4, 2, 6, 5][0, 1, 2, 3, 4, 6, 5][0, 1, 2, 3, 4, 6, 5][0, 1, 2, 3, 4, 5, 6]請問使用的是一下那種排序算法呢?A:快速排序B:冒泡排序C:選擇排序D:插入排序答案:D解析:插入排序的基本思想是將一個數據插入一個已經有序的列表中,生成一個新的有序列表。對一個亂序列表進行插入排序的思路是,遍歷列表,依次取出列表中的數據,與前面的數據一一進行比較,如果比前一個數據小,就交換位置,直到遍歷完列表的最后一個數據為止。9.random 庫用來生成隨機數的算法是?A:平方取中法B:線性同余法C:梅森旋轉算法D:蒙特卡洛方法答案:C解析:梅森旋轉算法是一個偽隨機數發生算法,是 random 庫的默認偽隨機數產生器。10.下列可以生成詞云的庫是?A:jiebaB:wordcloudC:beautifulsoup4D:requests答案:B解析:wordcloud 是 Python 的一個第三方庫,用于生成詞云圖片。11.Python 中,用來定義函數的關鍵字是?A:returnB:defineC:defD:function答案:C解析:def 是 Python 中用來定義函數的關鍵字。12.運行下面這段代碼,輸出的結果是?A:B:C:D:答案:A解析:type() 函數用于返回對象的類型。13.代碼 print( 10 / 2 == 5.0) 輸出的結果是?A:TrueB:FalseC:-1D:0答案:A解析:/代表除法運算,除法運算的結果是浮點數。所以 10/2 結果是 5.0。14.執行 for i in range(5) 的循環,i 的值分別是多少?A:1 2 3 4 5B:0 0 0 0 0C:5 5 5 5 5D:0 1 2 3 4答案:D解析:range() 函數可用于創建一個整數列表,只傳入一個參數時,生成的整數列表會從 0 開始,依次遞增 1 ,整數列表的長度就是傳入的參數。 range(5) 會返回 [0, 1, 2, 3, 4] 。15.多分支使用的關鍵字是?A:ifB:if-elseC:if-elif-elseD:else答案:C解析:單分支使用的關鍵字是 if ,二分支使用的關鍵字是 if-else ,多分支使用的關鍵字是if-elif-else 。16.下列條件中,可以判斷變量 a 等于變量 b 的條件是?A:a = bB:a >= bC:a == bD:a != b答案:C解析:在 Python 中,一個等號表示賦值,兩個等號會判斷相等。17.下列選項中,數據類型是浮點型的是?A:'7.0'B:7C:7.0D:'7'答案:C解析:在 Python 中,浮點型由整數部分與小數部分組成。‘ ’用單引號或者“ ”雙引號包裹起來的是字符串類型。18.程序如下:try:number = int(input("請輸入數字:"))print("number:",number)except Exception as e:print("打印異常詳情信息: ",e)else:print("else")finally:print("finally")print("end")我們輸入內容“z2”,控制臺打印的結果是:( )A:number: 2elsefinallyendB:number: 2endC:打印異常詳情信息: invalid literal for int() with base 10:finallyendD:打印異常詳情信息: invalid literal for int() with base 10:elsefinallyend答案:C解析:我們可以使用 try 和 except捕獲異常并處理異常。輸入的內容不是數字,會直接觸發except語句。但是并不會進行 else 的判斷 finally 是不管什么情況,都會執行里面的代碼程序正常順序運行,也會執行打印 end 的代碼。19.在 Python 中交換 a 和 b 的值,可以怎么做呢?A:a = b, b = aB:a, a = b, bC:a, b = a, bD:a, b = b, a答案:D解析:在 Python 中,可以使用等號給多個變量賦值,從而實現變量值的交換。在等號兩邊的值是一一對應的,在 A 答案中,先把 b 的值賦值給了 a,再把 a 中的值賦值給 b,這里它們兩的值都是 b。在 B 答案中,兩次都將 b 的值賦值給 a,無法實現效果。在 C 答案中,將 a 賦值給 b,將 b 賦值給 b,沒有變化,也無法實現效果。20.如果用外循環 for j in range(count) 代表冒泡排序比較的輪次,那么內循環 for i in range()應該每輪比較多少次呢?A:iB:countC:i - jD:count - j答案:D解析:外循環代表一共比較多少輪,這個數是列表的個數減一,內循環代表每輪比較的次數,隨著比較的輪次增大,比較的次數逐漸減小,每輪應該比較 count - j 次。21.下面哪個函數可以求出列表的個數 ?A:str()B:int()C:len()D:set()答案:C解析:len() 函數用于計算列表的長度,str() 用于將數據轉換為字符串,int() 用于將數據轉換為整型,set() 用于將數據轉換為集合。22.運行以下代碼后,程序打印的最大結果可能是?A:12B:13C:16D:17答案:D解析:random.choice() 函數的作用是隨機選擇一個元素,列表 nums 最大的值為 12;random.randint(a, b) 函數的作用是生成一個范圍在 a <= n <= b 的隨機整數,最大值可能是 5;所以打印的最大結果就是 5 + 12 = 17。23.運行以下代碼后,程序打印的結果是?A:6B:6.5C:10D:10.66答案:A解析//符號的作用是進行取整除, num2 // num1 = 1 ;% 符號的作用是計算兩個數相除的余數,num2 % num1 = 5,相加的結果就為 6 。24.【賽事真題】運行下方代碼段,輸出的結果是( )。A:B:C:D:答案:A解析:當程序在執行 for i in range(1, 5) 的時候,循環變量 i 的值依次是 1、2、3、4,小海龜會畫出 4 個圓,而小海龜初始方向是朝著右邊,逆時針畫出的圓應該是 A 選項中的造型25.運行這段代碼,終端區會出現什么內容呢?A:B:C:D:答案:A解析:程序在執行 for i in range(5) 的時候,循環變量 i 的值是 0、1、2、3、4,因此 - i * 2的值是 0,-2,-4,-6,-826.這里有一個二維列表,運行以下代碼,終端區會出現什么內容?A:'菠蘿', '香蕉', '西瓜'B:'蘋果'C:['桃子', '蘋果', '芒果']D:['菠蘿', '香蕉', '西瓜']答案:D解析:這是一個二維列表,在列表中還裝著兩個小列表,我們取出編號 1 的元素,那就是第二個列表,打印出來是一個列表 ['菠蘿', '香蕉', '西瓜']。27.如果要判斷一個變量 lcm 是不是 num1 和 num2 的公倍數,判斷條件可以怎么寫?A:B:C:D:答案:C解析:根據公倍數的概念,如果一個數字即是 num1 的倍數又是 num2 的倍數,則該數就是這兩個數字的公倍數,需要使用到取余運算符來進行判斷。28.下面的說法中,正確的是?A:break 語句只能用來停止 for 循環B:break 語句可以中斷所有程序的運行C:break 語句可以用來中斷循環的語句D:break 語句無法中斷 while 語句答案:C解析:break 語句是用來中斷循環語句的運行的,沒法中斷所有程序的運行哦。29.運行以下代碼,終端區會出現什么內容?A:晚安,依古比古晚安,依古比古B:晚安,依古比古晚安,依古比古晚安,依古比古C:晚安,依古比古晚安,依古比古晚安,依古比古晚安,依古比古D:晚安,依古比古晚安,依古比古晚安,依古比古晚安,依古比古晚安,依古比古答案:D解析:邏輯運算符 or 連接兩個條件時,只要其中一個條件成立,整個表達式就成立,所以在 b 是 0 、1、2、3、4 的時候,都會打印內容,直到 b = 5,,此時 a 也是 5,兩個式子都不成立,循環就會結束。30.運行以下代碼,終端區會出現什么內容?A:重復打印無數次【晚安,瑪卡巴卡】B:終端區什么都不會打印C:只打印一次【晚安,瑪卡巴卡】D:重復打印 100 次【晚安,瑪卡巴卡】答案:B解析:while后面的條件不成立,程序不會重復執行下面的代碼31.下面的語句中,哪個可以在終端區中打印出 True 呢?A:print( 12 >= 56 )B:print( 123 > 3 and 55 == '55')C:print( 3 >= 5 )D:print(123 > 3 or 55 == '55')答案:D解析:and 語句是兩個條件同時成立時,結果才是 True。or 語句是兩個條件只要有一個成立,結果就是 True,所以最后的結果選 D。32.運行這段代碼,終端區會出現什么樣的內容呢?A:111B:222C: 111222D:什么都不會出現答案:B解析第一個條件 10 > 11 不成立,不會打印 111,第二個條件 20 < 30 成立,會打印出 22233.下面的說法中,哪個是錯誤的?A:and 語句表示的是兩個條件同時成立才算成立B:or 語句表示的是兩個條件中只要有一個成立就算成立C:and 語句和 or 語句都可以將兩個條件連接起來D:and 語句和 or 語句只能單獨使用,不能混在一起用答案:D解析:在 Python 中,我們可以將邏輯運算符結合起來使用,比如說 1 > 2 and 5 > 6 or 4 > 3,需要注意的是,和運算符一樣,邏輯運算符也有優先級,and 的優先級就比 or 的高,所以我們會先判斷 and 連接的兩個語句,之后再判斷 or 連接的語句。34.以下程序的輸出的 CSV 文件里,存儲的內容是:( )file = open('text.csv','w')list =[ [90,87,93],[87,90,89],[78,98,97]]b = []for i in list:for j in i:b.append(str(j))file.write(','.join(b))file.close()A:[90,87,93,87,90,89,78,98,97]B:90,87,93 87,90,89 78,98,97C: [[90,87,93], [87,90,89], [78,98,97]]D:90,87,93,87,90,89,78,98,97答案:D解析:通過嵌套的 for 循環。取出了二維列表里面的每一個數字再使用 join 函數,可以把一個列表拼接成一個字符串。并且每個元素之間都有一個“,”號35.在 pygme 游戲設計中,檢測兩個矩形是否碰撞的方法是A:colliderect()B:collidepoint()C:collidelist()D:collidedict()答案:A解析:colliderect() 用于檢測 兩個圖形對應的 rect 是否重合;collidepoint() 用于檢測 一個 rect 是否包含 點 ,輸入的參數為 點的坐標值。36.在 pygame 中,調整游戲畫面幀數為 30 幀每秒的正確選項是A:clock = pygame.time.Clock()clock.tick(300)B:clock = pygame.time.Clock()clock.tick(30)C:clock = pygame.time.Clock()clock.update(30)D:clock = pygame.time.Clock()clock.display(30)答案:B解析:clock = pygame.time.Clock()clock.tick(30)調整游戲畫面的刷新次數為每秒 30 幀,但是實際顯示中取決于各種因素的限制,比如電腦性能或顯示器性能。37.運行下方代碼段,輸出是( )。A:B:C:D:答案:A解析:在 draw_rect() 函數中,小海龜是左轉的,因此畫出的這正方形會在小海龜的右上方,我們可以排除 BC 選項。在執行 for i in range(4): 時,循環變量 i 依次是 0 、1 、2、3,所以畫出的正方形會一個比一個大,但因為第一次是 0 ,就不會畫出正方形,因此最終我們看到的只有三個正方形才對。38.在 animal_list = [['獅子', '老虎'], ['河馬', '大象'], ['斑馬', '長頸鹿']]這個二維列表中,以下哪句代碼可以取出'斑馬'這個元素?A:animal_list[4]B:animal_list[1][1]C:animal_list[2][1]D:animal_list[2][0]答案:D解析:首先,我們可以判斷,'斑馬'在第 3 個一維列表中, 那么就可以用 animal_list[2] 獲取第三個一維列表,接著,可以發現'斑馬'是這個列表的第一項,那么索引就是 0,因此,選 D39.用割圓法繪制一個有 n 條邊的正多邊形時每次應旋轉的角度是A:180 / nB:nC:90D:360 / n答案:D解析:割圓法模擬畫圓,畫邊數為 n 的正多邊形需要旋轉 n 次轉完一周,每次旋轉的度數就是 360 / n。二、多選題1.以下哪個 while 循環的使用方法是正確的?A:while 5 > 3:B:while num > 3:C:while True:D:while :答案:ABC解析:D 選項中沒有設置條件,其他的都正確的設置了條件。2.哪個選項對 turtle.done()的描述是正確的?A:turtle.done()是用來隱藏 turtle 繪制畫筆B:turtle.done()用來停止畫筆繪制C:turtle.done()是用來在繪畫結束后,保持繪畫的窗口不關閉的D:我們必須要在程序的最后寫上 turtle.done(),不然程序運行會報錯答案:BC解析:turtle.done() 語句可以讓畫筆停止繪制,但是窗口不會關閉。一般我們會把這個語句放在程序的最后,讓我們能夠看到程序最后的繪制結果。3.關于 Python 的 lambda 函數,以下選項中描述正確的是?A:lambda 用于定義簡單的,能夠在一行內表示的函數B:可以使用 lambda 函數定義列表的排序原則C:f = lambda x,y:x+y 執行后,f 的類型為數字類型D:lambda 函數將函數名作為函數結果返回答案:ABD解析:f = lambda x,y:x+y 執行后, f 的類型是 function 。4.現有 PAI = 3.1415926 作為浮點數變量,下列代碼可以將 PAI 保留三位小數并輸出的是?A:print(f"{PAI:.5f}")B:print(f"{PAI:0.3f}")C:print(round(PAI, 3))D:print(round(PAI))答案:BC解析:將浮點數小數點后保留三位數有兩種方法,一種是字符串格式化,一種是 round() 函數。5.運行下面這段代碼,輸出的結果是?A:抽中的隨機數是 1,今天是星期一B:抽中的隨機數是 2,今天是星期三C:抽中的隨機數是 5,今天是星期六D:抽中的隨機數是 7,今天是星期七答案:AD解析:隨機數的范圍是 1 - 7 ,可能抽中的數字范圍也是 1 - 7 ,字符串格式化的第二個變量會取字典中對應值,所以數字和星期是一一對應的。6.以下表達式的值為 True 的是?A:5 + 3 < 10B:3 > 2 == 2C:a - 5 > 5D:4 == '4.0'答案:AB解析:選項 C 中的變量 a 沒有進行賦值,無法判斷;選項 D 中,4 是整型,'4.0' 是字符串,不相等。7.在下列選項中,描述正確的有( )s = input()a = [s]print(len(s) == len(a))A:當輸入字母'a',打印出 TrueB:當輸入字母'a',打印出 FalseC:當輸入字母'abc',打印出 TrueD:當輸入字母'abc',打印出 False答案:AD解析:當輸入‘a’,列表 a 就變成了 ['a'],len('a') 就是 1,len(['a'])也是 1。結果是 True。當輸入‘abc’,列表 a 就變成了 ['abc'],len('abc') 就是 3,len(['abc'])還是 1。結果是 False8.下面屬于 Python 中的保留字的有哪些A:classB:trueC:selfD:break答案:AD解析:在 Python 的保留字中,True,False,None 首字母需要大寫。self 不是保留字。9.如果使用列表創建棧,需要用到的列表方法有A:append()B:insert()C:index()D:pop()答案:AD解析:10.在下面這段程序中,其中 k 取什么值時,x 的值是 3。if k<=10 and k>0:if k >5:if k>8:x=0else:x=1else:if k>2:x=3else:x=4A:3B:4C:5D:6答案:ABC解析:當 k<=5 并且 k>2 的時候,x 的值是 3。所以 k可以是 3,4,511.現在有一個字符串 s = 'abc123def',以下代碼中能正確獲得值 abc12 的代碼有?A:print(s[0:5])B:print(s[:5])C:print(s[:-4])D:print(s[:-4:2])答案:ABC解析:選項 D,打印的結果為 ac2。字符串的索引從第一個元素,也就是 0 開始增大。從最后一個元素,也就是-1 開始減小。12.下列屬于比較運算符的有A:>B:<C:=D:!=答案:ABD解析:了解 python 比較運行算符: > 、< 、==、 != 、>= , =<13.使用代碼計算列表 maze 中有多少個 "1",代碼正確的是maze = [[1,1,1,1,1,1,1,1,1],[1,0,1,0,0,0,0,0,1],[1,0,1,1,0,1,1,1,1],[1,0,0,0,0,1,0,0,1],[1,0,1,1,0,1,0,1,1],[1,0,0,1,0,0,0,0,1],[1,1,0,1,0,1,1,1,1],[1,0,0,1,0,0,0,0,1],[1,1,1,1,1,1,1,1,1],]A:count = 0for i in maze:for j in i:count += jprint(count)B:count = []for i in maze:count.append(sum(i))print(sum(count))C:count = sum(maze)print(count)D:count = []for i in maze:count.extend(i)print(sum(count))答案:ABD解析:求解思路 :1、 使用嵌套循環遍歷所有元素,依次累加求和;2、 使用 sum() 函數 , 首先對內部的列表求和 ,變成一維列表后,在使用 sum() 函數求和計算 ;3、 使用 extend() 函數將列表拼接為一維列表,使用 sum() 函數求和計算;14.以下選項中,處理多個異常的代碼,正確的有哪些?A:try:passexcept (ValueError、IndexError) as err:print('Error: {}'.format(err))print('continue')B:try:passexcept (ValueError, IndexError) as err:print('Error: {}'.format(err))print('continue')C:try:passexcept ValueError as err:print('Error: {}'.format(err))except IndexError as err:print('Error: {}'.format(err))print('continue')D:try:passexcept ValueError, IndexError as err:print('Error: {}'.format(err))print('continue')答案:BC解析:多個異常,可以在一層像 B 選項一樣,用逗號隔開括號括起來捕獲;也可以像 C 選項一樣,分 2 次分開捕獲。15.對列表 m 與 列表 n 相同索引位置的元素求和。以下選項中正確的有?m = [1,2,3]n = [4,5,6]A:res = []for i in range(len(m)):res.append(m[i]+n[i])B:import numpy as npres = (np.array(m) + np.array(n)).tolist()C:res = m + nD:無正確答案答案:AB解析:選項 A,正確使用 for 循環進行計算,并將結果添加到列表中res = []for i in range(len(m)):res.append(m[i]+n[i])選項 B,正確可以使用 numpy庫,把列表轉換為 narray 類型直接進行運算res = np.array(m) + np.array(n)print(res)# 輸出為: array([5, 7, 9])# 轉換為列表類型print(res.tolist())# 輸出為: [5, 7, 9]選項 C,錯誤列表使用 "+" ,不是用于列表對應元素相加,而是用于列表的拼接print(m+n)# 輸出元素為 L:[1, 2, 3, 4, 5, 6]16.字典內元素由哪兩部分組成A:鍵B:值C:變量D:整數答案:AB解析:字典內元素由鍵和值兩部分組成,鍵必須是唯一的,但值則不必。17.以下能夠與 if 語句搭配使用的是A:else ifB:elseifC:elseD:elif答案:CD解析:選項 A、選項 B,在 Python 中沒有這樣的語法。18.下列選項中,描述正確的是A: / 在代表運算中代表取整數。B:關系運算符中 == 代表數學中的等號。C:邏輯運算符中,“與”運算時“有 0 為 0,全 1 為 1”。D:關系運算符中的輸出結果是以 bool 形式出現,為 True 和 False。答案:BC解析:/ 在運算中代表取除法運算,// 在運算中代表向下取接近商的整數。19.下列屬于 python 保留字的是A:ifB:forC:whereD:import答案:ABD解析:‘where’ 不是 Python 中的保留字。20.下列變量名正確的是A:a bcB:_1abcC:a1bcD:1abc答案:BC解析:變量名可以包括字母、數字、下劃線,但是數字不能做為開頭,并且標識符不能包含空格。三、判斷題1.表達式 78 == '78' or '上' in '天天向上' 的結果是 True。答案:正確解析:使用 or 邏輯運算符連接兩個條件,可以組合成新的條件,只有當兩邊的條件都成立時,這個新的條件才成立,第一個條件中,整數類型 78 和字符串 '78' 是不相等的。第二個條件中,只有當后面的字符串中,包含上字時才會成立,這個也是成立的,所以整個條件成立。2.Python 變量名區分大小寫,所以 student 和 Student 不是同一個變量。答案:正確解析:Python 變量名是區分大小寫的。3.Python 標準庫 random 的方法 randint(m,n)用來生成一個[m,n]區間上的隨機整數。答案:正確解析:random.randint() 的參數就是用來控制隨機數的范圍。4.Python 字典中的“鍵”不允許重復。答案:正確解析:Python 中確實不允許兩個鍵的值完全相同。5.函數是代碼復用的一種方式。答案:正確解析:在 Python 中,我們可以將一段代碼創建成一個函數,調用這個函數,就可以多次使用這段代碼。6.使用 input() 語句可以直接獲得整數類型的數字。答案:錯誤解析:input 語句的結果,是字符串類型的,如果我們想要獲得用戶輸入的數字,需要使用int 語句進行類型轉換。7.條件判斷語句可以讓程序根據不同的情況做不同的事情答案:正確解析:根據條件是否成立,我們可以使用條件判斷語句 if...elif...else... 運行不同部分的代碼。8.在 name = '小明' 這句代碼中,name 是變量的內容。答案:錯誤解析:在這句代碼中,name 是變量的名字,而 '小明' 這個字符串是變量的內容。9.執行語句 from random import seed 之后,可以直接使用 randint() 函數。答案:錯誤解析:from random import seed 是精準導入的方式,導入的是 seed()函數,沒有導入 randint()函數。因此不能直接調用。10.in 是 Python 中的邏輯運算符。答案:錯誤解析:in 是 Python 中的成員運算符,它的返回結果是布爾值。11.12 / 2 的運算結果是 6 。答案:錯誤解析:/ 是除法運算法,除法運算的結果一定是浮點數。12.101"這個內容在 Python 是一個字符串。答案:錯誤解析:在 Python 語言中,使用一對單引號或者雙引號,包裹起來的變量數據類型就是字符串。不能使用一個單引號一個雙引號。13.在 Python 中,1_food 是一個合法的變量名。答案:錯誤解析:在 Python 中,變量名:1、只能是:數字,字母組成,不可以是空格或特殊字符,如:(#?。,¥$*~!&)等2、不能以數字開頭3、不能使用保留字,如 and、for 等14.4.0 和 4 在 Python 中是同一種數據類型。答案:錯誤解析:在 Python 中,4 是整型,4.0 是浮點型,不是同一種數據類型。15.KMeans(n_clusters=3)中參數 3 的含義是將數據劃分為 3 類。答案:正確解析:在 KMeans 算法中, n_clusters 中 cluster 就是類、簇的意思,參數的含義就是將數據分為幾類, 這里參數的含義就是將數據分為 3 類。16.count() 函數可以用來統計指定元素在列表中出現的次數答案:正確解析:1、ount() 方法用于統計字符串里某個字符或子字符串出現的次數。2、count() 方法用于統計某個元素在列表中出現的次數。17.運行程序段num = input()print(num+3)當輸入數字 10,輸出結果為 13。答案:錯誤解析:當輸入 10,input 函數會返回字符串'10'字符串和整型不能直接相加,程序報錯18.正則表達式的字符 \d 與 \D 表示相同的含義答案:錯誤解析:在正在表達式中,\d 表示匹配數字,\D 表示匹配非數字。19.在 Scratch中,不能編寫演奏音樂的程序。答案:錯誤解析:在 Scratch 中,可以通過添加拓展,選擇添加音樂模塊,從而編寫演奏音樂的程序。20.以下代碼def my_func4(l2):l2 = l2 + [4]l1 = [1, 2, 3]my_func4(l1)print(l1)運行結果是[1, 2, 3,4]答案:錯誤解析:這里 l2 = l2 + [4],表示創建了一個“末尾加入元素 4“的新列表,并讓 l2 指向這個新的對象。這個過程與 l1 無關,因此 l1 的值不變21.雞兔同籠問題中,總頭數 10,總腳數有可能是 44答案:錯誤解析:在全是兔子的情況下,總頭數 10,總腳數才 40,不可能超過 40NOC 圖形化 初賽考題一、單選題1.下面這段代碼運行結束后,角色的造型應該為?cat-acat-bcat-ccat-d答案:B解析:程序運行后,角色的造型先設為了 cat-a,等待一秒后,造型切換為了 cat-b 。所以最后角色的造型應該為 cat-b 。選項 B 正確。2.下列選項中哪個語句和【將造型切換為】一樣可以實現切換角色的造型的效果呢?A.B.C.D.答案:A解析:A 選項,當【下一個造型】語句運行后,角色造型會切換為下一個造型,和【將造型切換為】語句一樣實現了切換角色的造型的效果;B 選項,當【將背景切換為】語句運行后,會將目前的背景切換為指定的背景,不是切換角色的造型;C 選項,當【下一個背景】語句運行后,會將目前的背景切換為下一個背景,不是切換角色的造型;D選項,當【將大小增加】語句運行后,是將角色目前的大小增加,不是切換角色的造型。故此題答案為 A。3.在 Scratch 中有一種指令,它可以實現兩個角色之間傳遞消息,A 角色完成動作后,B 角色便知道 A 已完成,于是 B 角色開始動作,這個指令是()?A.B.C.D.答案:B解析:廣播指令是用于兩個角色之間傳遞消息。4.下面哪個【編號】變量一定是按鈕角色的私有變量?A.B.C.D.答案:D解析:A 選項和 B 選項只能看出來它是變量,但不能確定是不是私有變量;C 選項和 D 選項的區別是,D選項的編號前有按鈕這個角色名加冒號。根據私有變量的特點,D選項可以確定是私有變量。5.對下面這段代碼描述正確的是?A:這段代碼模擬了觸碰放大的效果B:角色的大小會一直設為 105C:當綠旗被點擊后,這段代碼只會執行一次D:角色的大小會一直設為 100答案:A解析:這段代碼模擬了觸碰放大的效果。當綠旗被點擊后,程序會不停地執行,判斷角色是否碰到了鼓槌,如果碰到了,就將角色的大小設為 105 ,否則就將角色的大小設為 100 。所以正確答案是 A 。6.下面哪個語句可以刪除克隆體?A:B:C:D:答案:D解析:A 選項是控制克隆體的語句;B 選項是克隆孫小弟這個角色;C 選項是克隆角色自己;D選項可以刪除克隆體;根據題目要求,D 選項正確。7.為角色編寫這段代碼,運行后,主體和克隆體的大小分別是多少呢?A:主體大小為 100,克隆體大小為 100B:主體大小為 100,克隆體大小為 150C:主體大小為 150,克隆體大小為 100D:主體大小為 150,克隆體大小為 150答案:C解析:點擊綠旗后主體的大小為 100,克隆自己,大小設置為 150,因此主體大小為 150。克隆體生成時,主體大小為 100,因此克隆體大小為 100。C 選項正確。想要讓一個角色在舞臺區中出現多個相同的自己,要用到什么知識呢?A:廣播B:變量C:克隆D:條件判斷答案:C解析:A 選項中,廣播指令是一個角色發出廣播,另一個角色接收廣播,并不能出現多個角色;B 選項中,變量可以記錄信息或數據,并不能出現多個角色;D選項中,條件判斷可以讓角色進行判斷,條件是否成立,并不能出現多個角色;C 選項可以生成相同的自己,因此 C 選項正確。9.下面哪段代碼可以實現【按下左鍵】,角色就【向左旋 15 度】?A:B:C:D:答案:B解析:程序可以通過【按下左鍵】語句來偵測左鍵是否被按下,向左旋轉使用【向左旋轉度數】語句。10.想要讓角色一直不停地移動,應該用下面哪段代碼呢?A:B:C:D:答案:B解析:A 和 C 選項都只能讓角色移動一段距離哦;D 選項:這段分代碼 是讓角色不停地旋轉,不是移動哦;我們需要讓程序【不停地】執行【向前運動】的代碼,使用【重復執行】和【移動步數】語句,就可以讓角色不停地移動了,所以選項 B 正確。11.執行完圖中程序后,舞臺上會出現( )個孫小弟。A:0B:1C:2D:3答案:C解析:孫小弟本體隱藏,蓋下第 1 個圖章,移動 100 步,蓋下第 2 個圖章,移動 100 步,蓋下第 3 個圖章,移動 100 步;所以舞臺上會有 3 個孫小弟。12.運行以下腳本后,角色坐標是A:(-30,-70)B:(-40,-80)C:(-30,-90)D:(-50,-70)答案:C解析:角色的初始坐標為(-50,-90),面向 90 方向,也就是面朝右邊,移動 10 步,重復兩次,y 坐標沒變,還是-90,x 坐標-50+20=-30,所以答案選 C。13.圖中腳本運行后形成的圖形是A:五角星B:三角形C:正方形D:五邊形答案:C解析:角色重復執行 4 次“移動 10 步右轉 90 度”后,繪制出正方形的四條邊,第 5 次“移動10 步右轉 90 度”,和第一次繪制的邊重合。14.在 Scratch中,下圖指出的方向是多少度?A:90 度B:180 度C:0 度D:-90 度答案:D解析:A:90 度時箭頭指向右;B:180 度時箭頭指向下; C:0 度時箭頭指向上;D:-90 度時箭頭指向左15.下圖中指令的作用是A:修改角色的造型B:修改角色的大小C:修改角色的顏色D:修改角色的顯示/隱藏狀態答案:B解析:可以在該指令中填入數字來改變角色的大小。16.對這兩個程序說法不正確的是。A:程序運行的總時間不同B:播放聲音和移動兩個指令的執行順序不同C:兩個程序播放音樂的時間不同D:兩個程序中角色移動的長度相同答案:C解析:兩段程序主要區別是“播放聲音”指令不同,第一個是邊播放邊行走,第二個是等待聲音播放完畢才執行后面的移動語句,所以程序執行的總時間就不同,但是角色移動的長度相同,播放聲音和移動兩個指令的執行順序也就不相同,但是播放聲音的時間都是播放一次,時間是相同的。17.看,前方有一個蘋果,想一想,下面哪段程序能幫助 Giga 拿到它呢。A:B:C:D:答案:D解析:蘋果在 Giga 的右上方,要綜合考慮角色【面向的方向】和【數值的正負】,最后的移動方向應該是向右和向上,因此只有選項 D 正確。18.指令執行后,下面哪一條指令可以讓用戶向程序中輸入信息。A:B:C:D:答案:A解析:Scratch程序在執行時,可以通過【詢問 等待】指令可以向程序中輸入信息。19.要使 Scratch中的角色在舞臺上繪圖,應選用下列哪一組指令?A:清空并抬筆B:落筆并移動 10 步C:將畫筆顏色設定為 0D:將畫筆粗細增加 1答案:B解析:使用 Scratch進行繪圖需要先將畫筆落筆后,進行移動。20.Scratch 的背景中,沒有下列哪種類別的指令?A:運動B:外觀C:聲音D:畫筆答案:A解析:Scratch 的舞臺設與角色有很多區別。其中最大的區別就是舞臺不會動,雖然有運動區的標簽,但是里面沒有指令。21.運行下面這段程序后,舞臺區會出現多少個角色。A:0B:3C:6D:9答案:D解析:這段程序中,角色一共克隆了自己 9 次,本體是隱藏的,克隆體啟動時會顯示出來,所以舞臺區一共有 9 個角色。22.執行下列腳本,角色會運行哪一部分的代碼?A:數字 1 代表的成功代碼B:數字 2 代表的失敗代碼C:都不運行D:都運行一次答案:A解析:20*50 除以 3 的余數計算出來的結果是 1,而參數時間的值是 10,因為 10>1 所以判斷條件成立,會執行成功這個部分的代碼,故這道題的正確答案是 A。23.這段程序運行后,舞臺區的運行效果可能是()?A:B:C:D:答案:A解析:當程序運行后會克隆自己,但是每次克隆時本體的方向都是 90,所以所有克隆體都只旋轉了 60 度,故這道題的正確答案是 A。24.點擊綠旗,代碼開始運行,當用戶輸入 2 時,變量【數字】最后的數值是多少呢?A:0B:1C:2D:3答案:C解析:分析代碼可知,變量【數字】的初始值是 0,當用戶輸入的值是 2,滿足判斷條件,會執行將變量【數字】+ 1 的指令,變量變為 1,繼續向下執行,再將變量增加 1,變量變為2。25.分析這段代碼,最后實現的效果圖是什么樣子的呢?A:B:C:D:答案:D解析:分析這段代碼,重點關注重復執行內的指令,畫筆從(0,0)位置開始,落筆后,先移動 100 步,留下一條直線,接著抬筆,右轉 15 度,再回到(0,0)點,這段代碼沒有留下痕跡,然后落筆,繼續移動一條直線,如此重復,每轉動 15 度,畫出一條直線,最后形成的圖案就是選項 D。26.點擊綠旗代碼開始執行后,幾秒角色會說“你好!”?A:1B:4C:6D:永遠不會說答案:C解析:分析這段代碼,點擊綠旗開始,先等待 1 秒,接著初始化變量【數字】=5,再等待【數字】秒,由于變量【數字】中的值是 5,所以會等待 5 秒,然后說出“你好”,因此一共等待了 1+5=6 秒。27.運行結束后舞臺區和角色代碼如下圖所示,請問角色的旋轉中心是以下哪個選項?A:B:C:D:答案:C解析:從題目中的代碼知道,最終圖案是由單個橢圓形旋轉而成的,從最終圖案的構成分析,整個圖形的中心就是橢圓的旋轉中心,與之最接近的選項就是 C。28.運行下圖程序代碼,畫筆畫出的幾何圖形是( )?A:正方形B:三角形C:圓形D:十邊形答案:C解析:從落筆之后的代碼可以看出,重復執行 360 次,每次轉動 1 度,移動 1 步,完成后就是 360 邊形,但是由于邊太小,整體看上去更接近一個圓形。29.按下鍵盤空格鍵,執行完程序后,角色的大小為A:80B:100C:130D:150答案:C解析:角色的初始大小為 80,重復執行 10 次增加 10,80+10*10=180;重復執行 5 次增加-10,180-5*10=130,答案選 C。30.當角色執行下圖程序后,描述正確的一項是?A:當前的時間(小時)如果小于 12,那么角色就換成下午的造型B:當前的時間(小時)如果大于 12,那么角色就換成上午的造型C:當前的時間(小時)如果等于 12,那么角色就換成下午的造型D:以上都不正確答案:C解析:題目程序中的判斷為“如果當前的小時小于 12”,如果滿足該條件就換成上午造型,否則換成下午造型,當時間等于 12 的時候,是不滿足“如果當前的小時小于 12”的條件的,所以換成下午造型,C 正確。31.當綠旗點擊后,角色的大小是多少?A:110B:100C:90D:120答案:C解析:大小的初始值是 20,首先判斷 4*6>3*7 嗎?滿足,將大小減少 10 目前大小為 90,進入第二個判斷,40/8>6 嗎?不滿足,程序結束。所以角色的大小為 90,故這道題的正確答案是 C。32.點擊綠旗運行程序,輸入的數字是什么的時候,角色會說你好?A:10B:13C:23D:4答案:C解析:分析程序可以得知,角色說你好的條件是 回答>5,回答>20,所以這道題的正確答案是 C。33.下列選項中對該段代碼解釋正確的是?A:9 以內的所有奇數的和B:9 以內所有偶數的和C:8 以內所有奇數的和D:8 以內所有偶數的和答案:C解析:變量初始值為 9 。 重復執行 9 次,并且執行過程中先將變量 i 減少 1,所以判斷的是 8 以內的所有符合條件的數值和。 條件為判斷數值除以 2 余數是否為 1,即判斷是否為奇數。34.運行下面這段腳本,運行結束后畫筆的粗細為?A:1B:50C:30D:29答案:D解析:正確答案是 29。開始運行后,先把變量【畫筆粗細】設置為 0,再把畫筆的粗細設置為 1,接著重復執行將【畫筆粗細】的數值增加 1,直到【畫筆粗細】的數值大于 50,重復執行的過程中會判斷,【畫筆粗細】是否小于 30,如果是的話,就將畫筆的粗細設置為【畫筆粗細】的數值。所以程序中【畫筆粗細】在增大到 30 之前都會不斷地增大畫筆的粗細,當【畫筆粗細】到達 30 的時候就不會再設置畫筆的粗細了,所以畫筆的粗細會停在29,之后【畫筆粗細】會持續增大到 51,程序就會停止運行。所以最終畫筆的粗細為 29。35.點擊綠旗,執行圖中代碼,最終得到的變量值是A:1B:11C:10D:0答案:B解析:“我的變量”初始值為 10,程序執行,先運行的判斷語句是判斷“我的變量”是否大于 9,10 大于 9,將“我的變量”增加 1 變為 11;接著向下運行判斷“我的變量”是否等于 10,11 不再等于 10,判斷條件內的語句不再執行,所以變量的最終值是 11。36.下面的程序可以將輸入的字符串反轉,看看下面的分析,你覺得哪個是正確的呢?A:字符串反轉就是把原來的字符串中字符的順序顛倒B:變量【i】的初始值應該是 0C:循環體中【連接】指令的前后兩個數據可以調換位置D:重復執行的次數需要再加 1答案:A解析:變量【i】初始值如果為 0,第一次進入到循環體中,會操作第 0 個字符,是不存在的,因此選項 B 錯誤,如果調換【連接】指令的前后兩個數據,就會導致字符串沒有反轉,選項C 錯誤,重復執行的次數如果加 1,會超出字符串的長度,選項 D 也是錯誤的.37.角色代碼如下,請問這段代碼中變量【m】的功能是什么呢?A:循環檢測用戶回答中的每一個字是否為“愛”B:統計用戶回答中“愛”字的個數C:找到用戶回答中的“愛”字在第幾位D:給“愛”字排名答案:B解析:分析這段代碼,首先將變量【m】、【i】初始化,接著詢問用戶輸入一句想對媽媽說的話,然后開始重復執行,在重復執行過程中,變量【i】用于循環檢測用戶回答中的每一個字符,并判斷哪個字符是“愛”字,如果找到一個“愛”字,就將變量【m】加 1,直到所有字符檢測完,所以變量【m】的功能是統計用戶回答中“愛”字的個數。38.關于該程序的功能,以下說法正確的是?A:用來計算變量“一句話”的長度B:用來去除“一句話”中所有的字母“t”C:用來計算“一句話”中有多少個字母“t”D:沒有實現任何功能答案:C解析:分析該程序,”一句話“變量是一段英文字符串,每一次先判斷變量“一句話”中第 n 個字符的內容是否等于“t”,如果條件成立則變量 m+1,判斷結束后 n+1,以此循環”一句話的字符數“次(若字符長度為 20,則循環 20 次)。可以得知 n 的作用是記錄“一句話”中每個字符的位置,m 用來記錄字符串中“t”的個數,所以程序中的循環執行完后,根據”m“的值可以得出有多少個字母”t“。39.如圖用列表做了一個隨機抽簽程序,程序中的空缺處應該填寫的內容是?()A:B:C:D:以上都不正確答案:C解析:按下空格鍵后,需要用“獎項”變量來表示列表中的獎品等級序號,由于“獎項”列表有5 項,所以第一個空缺處應該添填入 ,將隨機出的數字存儲;說出的中獎結果中,第一個空缺處應該填入 而不能再填入隨機數,因為可能會跟第一次的隨機數不同,影響結果;最后一個空缺處需要填寫隨機出的獎項名稱,通過指令即可得出。三個空缺按順序填入,即為 C 選項。40.運行如下所示的程序,變量“sum”的值是多少?()A:45B:50C:55D:60答案:C解析:自定義的積木中,程序先判斷參數“n”是否大于 0,如果符合條件則執行將變量“sum”增加“n”,然后再調用自身進行判斷,同時參數“n”-1,調用 10 次后的“sum”的值就會變為10+9+8+...+1=55,此時 n 變為 0,不再繼續調用。41.在 Scratch 中,要將【積分】這個變量的值設置為 15,需要用到下面哪句代碼呢?A:B:C:D:答案:A解析「將積分設為 」表示將積分設置為多少,「將積分 增加」表示將積分增加多少。選項 B 是將積分增加 15;選項 C 是將積分設置為 5;選項 D是將積分增加 542.下面的程序中,按下哪個按鍵可以讓角色恢復原來的大小?A:按下 a 鍵時B:按下 b 鍵時C:按下 c 鍵時D:以上皆是答案:C解析選項 A 是說出角色的大小 100 秒,并不會改變角色的尺寸;選項 B 是重復將角色大小改變 100 次;選項 C 是把角色的大小設置為 100,是角色原來的大小,選項 C 正確。二、多選題1.在 scratch 中,可以創建角色的方法有哪些?()A:從角色庫選擇一個B:自己繪制一個C:從角色庫隨機選擇一個D:從外部文件導入角色答案:ABCD解析:這個四種方法都可以創建一個角色。2.控制模塊包括以下哪些指令?()A:停止所有聲音B:等待秒數C:如果那么D:停止全部腳本答案:BCD解析:屬于【聲音】模塊, 屬于【控制】模塊。故此題的正確答案是 BCD。3.小明添加了小貓角色后編寫了如下程序,對下面程序執行的效果說法正確的是?() A:程序會一直重復執行下去B:程序碰到舞臺邊緣后就不會再切換造型了C:角色會一直移動到舞臺邊緣然后停下來D:角色在移動過程中會切換造型答案:BCD解析:從程序可以分析,角色一直移動并切換造型,直到碰到了舞臺的邊緣就會停止,因此選項 BCD 的說法都正確。4.通過下面哪些方法可以讓“得分”變量顯示?()A:B:C:D:答案:AD解析:點擊變量前的小框可以改變變量的顯示及隱藏狀態,如果是勾選狀態的情況,則變量顯示,反之隱藏。C 選項是用來讓角色顯示的。5.這段代碼是王老師編寫的,同學們在討論它究竟實現了什么功能,根據你的分析,下面哪個些說法是正確的?()A:奇數列表中第一個加入的數據是 1B:接收廣播的指令是對編號進行奇數和偶數的分類C:代碼執行到一定程度就會自動停止D:代碼會一直執行下去,不會停止答案:ABD解析:分析這段指令,編號從 0 開始,但是進入到重復執行中,編號先加 1,再發送廣播,在接收廣播的代碼中,判斷編號 2 的余數是否等于 0,表示這里是判斷編號是奇數還是偶數,所以選項 A、B 正確,由于代碼中使用的是重復執行指令,因此代碼會一直執行下去,不會停止,選項 C 錯誤,選項 D 正確。6.對下面的指令的使用說法正確的是?()A:它必須在有克隆體時才可以執行B:它只能控制克隆體,不能控制本體C:該腳本寫在 A 角色中也可以控制 B 角色中的克隆體D:它是在【事件】模塊中的答案:AB解析:【當作為克隆體啟動時】必須在有克隆體的時候才可以執行,并且它只能控制克隆體,不能控制本體。選項 A、選項 B 正確;它所在的模塊是【控制】模塊,選項 D 錯誤;并且該腳本寫在哪個角色中就只能控制該角色的克隆體程序,選項 C 錯誤。7.“在 1 到 100 間隨機選一個數”可能出現的數字是?()A:1B:57C:100D:101答案:ABC解析:101 不在 1~100 的范圍內,所以不可能出現8.要實現四則運算 50-3*(8+5),下面選項中,能夠算出正確結果的腳本是哪些?()A:B:C:D:答案:BD解析:Scratch中每個運算符自帶括號功能,如 A選項程序轉換成數學運算公式為:50-((3x8)+5),C 選項為:((50-3)x8)+5,與題干中的運算結果不符9.在控制模塊中,包含下面哪些循環類語句?()A:重復執行B:重復執行幾次C:重復執行幾秒D:重復執行直到答案:ABD解析:在控制模塊中,只有 ABD 三類循環語句。10.角色的腳本區中,有如圖所示代碼,下列哪些描述是正確的?()A:當程序開始運行之后,角色會在滑行的過程中變換顏色;B:當程序開始運行之后,角色會先滑行到(20,20),再變換顏色;C:程序一開始運行,角色就會播放勝利音效;D:差不多在滑行結束時,角色就會開始播放勝利音效;答案:AD解析:正確答案為 AD,程序開始運行之后,角色會廣播【執行動作】的消息,當接受到消息后,角色會開始滑行并且變換顏色,差不多 1 秒鐘之后,滑行和變換顏色都會執行結束,角色會播放勝利音效,程序結束。11.某個角色的腳本如下,下面選項中描述正確的是?()A:腳本開始運行后,按下空格,再將鼠標移到角色上會切換背景。B:腳本開始運行后,按下空格,再將鼠標移到角色上不會切換背景。C:腳本開始運行后,將鼠標移到角色上會切換背景D:腳本開始運行后,按下空格會切換背景答案:BC解析:先分析一下腳本運行的效果,當腳本開始運行后如果鼠標碰到角色,會切換造型,如果按下空格會停止全部腳本,角色再碰到角色不會切換背景。故此題的正確答案是 BC。12.某角色的代碼如下,請分析一下,運行程序后,說法正確的是?()A:角色一直跟隨鼠標移動B:按下鼠標時,角色靠近鼠標C:按下鼠標時,角色遠離鼠標D:畫筆粗細和顏色都是默認的答案:CD解析:代碼中沒有設定畫筆的顏色和粗細,因此就是系統默認的,選項 D 正確,代碼中按下鼠標時,畫筆會面向鼠標指針,并移動-50 步,也就是向遠離鼠標的方向移動,因此選項C 正確,選項 B 錯誤,代碼中沒有【移到鼠標指針】的指令,因此選項 A 錯誤。13.點擊綠旗按鈕后,角色可能在下面哪些坐標位置呢?()A:(0,0)B:(50,0)C:(100,0)D:(150,0)答案:BCD解析:分析代碼可知,變量【位置】的初始值可能是 2,3,4,因此判斷條件第一個不可能滿足,而其他三個條件都有可能滿足,因此選項 B、C、D 都可能存在。14.根據如圖程序,下列哪些情況會造成角色的移動?()A:按下空格并且按下 q鍵B:按下 r 鍵C:按下空格并且按下 r 鍵D:不操作答案:AC解析:分析一下程序,按下空格同時按下 q 鍵和 r 鍵會移動角色,所以這道題的正確答案是AC。15.根據身份證號辨別性別的腳本如下,選項中為男生的是?()A:110000201901151234B:110000201902156378C:110000201903153321D:110000201904157642答案:AB解析根據程序的描述,身份證號中第十七個數字能被 2 整除則為女生,不能被 2 整除則為男生。所以選項 A 和 B 正確。16.關于私有變量,下面說法正確的是?()A:建立私有變量需要選擇“僅適用于當前角色”B:舞臺區中私有變量的名稱前面會有角色的名稱C:不同角色的私有變量可以重名,但全局變量不可重名D:私有變量不能修改變量值答案:ABC解析選項 A,建立私有變量如圖所示, 選擇右側的“僅適用于當前角色”;選項 B,私有變量在舞臺區中的顯示如圖所示, ,變量名稱前面有角色名稱;選項 C,由于私有變量是角色的私有屬性,角色的名稱已經有區分,所以不同角色的私有變量可以重名;選項 D,私有變量可以在所屬角色中隨意修改,所以說法錯誤,正確答案 A,B,C。17. 下列哪個選項可以將列表 A 中的數字從小到大排列重新存儲到列表 A中?A:B:C:D:答案:AB解析:此題為冒泡排序。 相鄰的兩個數據相互比較,前邊的數如果比后邊的數大,交換兩個數值的位置。索引 i 判斷當前位置,i 為列表中項目數時,當前列表中最后一項就是最大的數字。將索引 i 重新從 1 開始計數,通過控制 i 的數值,完成冒泡排序。并且在交換兩個相鄰的數值時記得叫用臨時變量 temp 存儲其中一個值18.關于圖中這段腳本,下列說法正確的是?A:程序開始運行之后,自制積木會運行 5 次;B:如果填寫在自制積木中的參數不是 1 或者 2,自制積木就不會有效果;C:程序運行結束后,角色會說出 3;D:程序運行結束后,角色會說出 0;答案:AC解析:三、判斷題1.下面的語句能夠在【事件】模塊中找到答案:正確解析:【當空格鍵被按下】語句在事件模塊中2.點擊這個圖標后,可以繪制一個新角色答案:正確解析:點擊這個圖標后,可以繪制一個新角色,所以正確3.如果在程序中使用了選擇結構,就不能使用順序結構了。答案:錯誤解析:順序和選擇都是程序的基本結構,這程序的三種基本結構可以組合使用。故這道題錯誤。4.角色運行完下面這段代碼后的位置和初始位置相同。答案:正確解析:角色的 x 坐標增加 10 之后減少 10 ,位置回到了起點,沒有發生變化。5.運行下面這段程序后,角色的狀態是顯示。答案:錯誤解析:這段代碼的意思是,程序運行后,角色顯示出來,然后移動 10 步,等待 1 秒后再隱藏。所以角色最后是隱藏的狀態。6.Scratch3.0 的作品保存后的擴展名是" .sh3"答案:錯誤解析:Scratch3.0 保存的程序擴展名是" .sb3"7.在圖形化編程工具中,打開一個新文件就能在代碼選擇區中找到【畫筆】模塊。答案:錯誤解析:【畫筆】模塊在擴展模塊中,使用前需要單獨添加。8.當圖形化程序運行時,想要關閉所有的聲音,需要使用【清除音效】指令。答案:錯誤解析:在圖形化編程中,【清除音效】語句是清除音調和左右平衡的音效,不是關閉所有的聲音,應該使用【關閉所有聲音】語句,【關閉所有聲音】語句可以實現對程序中的所有聲音停止播放的效果。故此題是錯誤的。9.角色程序如圖所示,點擊綠旗,不論程序運行多長時間后,按下空格鍵,角色都會播放聲音并移動到舞臺中央。答案:錯誤解析:觀察代碼,發現代碼中的重復執行只會執行 10 次,因此重復執行結束后再按空格鍵角色不會有任何效果,因此題目說法錯誤。10.角色有如下代碼,點擊綠旗開始,程序運行結束后,舞臺區會有 3 個該角色的克隆體存在。答案:錯誤解析:從代碼分析可知,重復執行三次,每次克隆自己,但由于克隆體產生時,會立即將克隆體刪除,所以舞臺區中沒有該角色的克隆體存在。11.圖中的判斷條件,在空格鍵或者鼠標被按下的時候,角色就會說“你成功啦”。答案:正確解析:用【或】邏輯運算符連接判斷條件,需要【或】左右兩邊的條件成立一個的時候就會成立,說“你成功啦”否則會說“你好”。12.角色運行下面這兩段代碼后,會在改變一次造型和發出一次聲音之間交替進行。答案:錯誤解析:Scratch 中某個角色的兩個程序可以同時執行,這種規則叫做“并行”。該題目中,角色在切換造型的同時就會發出聲音,并不是交替進行。13.一個角色的坐標位置是 (100, 400),它可以顯示在舞臺區中。答案:錯誤解析:圖形化編程界面中,舞臺區上 x 坐標的范圍是 -240 到 240,y 坐標的范圍是 -180到 180。(100, 400) 這個位置已經超出了舞臺區的范圍,角色不會顯示在舞臺區中。14.在 Scratch中,可以創建兩個名字相同的列表,但不能創建兩個相同的變量。答案:錯誤解析:Scratch 中變量和列表的名字可以一致,但不能創建兩個名字相同的變量或名字相同的列表。15.在 Scratch中,列表和變量可以同名。如可以建立一個名為“數據”的變量,同時還可以建立一個名為“數據”的列表。答案:正確解:Scratch 中變量和列表的名字可以一致,但不能創建兩個名字相同的變量或名字相同的列表。16. 該積木塊最終運行結果顯示為 4答案:錯誤解析:首先清空列表。加入了五個數據到列表中,此時列表存儲的為 156,155,153,170,155. 身高中第一個 155 編號為 2,刪除身高的第二項即為刪除 156 后的 155,此時列表為156,153,170,155,在第一項前插入 157,列表更新為 157,156,153,170,155。此時第一個 155 編號為 5.題目 4 錯誤17.圖中的幾何圖形是運行對應的腳本之后畫出來的。答案:錯誤解析:如圖腳本才能畫出正確的圖形,框出的地方需要重復執行 180 次才能畫出完整的圓。18.運行如下所示程序,角色會前進 20 步。答案:錯誤解析由于“5>24“判斷結果為假,所以新建積木中的判斷會執行否則中的語句,角色會后退20 步。19.下面這段代碼,當 num1=40,num2=6 時,會畫出一個邊長為 40 的 6 邊形的一半。答案:正確解析:運行后得到的圖形是這樣的 ,由于重復執行的次數除以 2,只剩下一半,因此只能畫出 6 邊形的 3 條邊,所以題目的說法正確。20.某程序中的列表如圖所示 ,其中每一項都由不同的人名+成績組成。運行程序后,可以讓角色將“成績單”列表中的所有成績都說一遍。答案:正確解析:從題目中可以看出 n代表列表的序號,每次執行的程序是說出列表中第 n項的值,再將 n+1,重復次數與列表項目數一致,即為 26 次。由于 n 的初始值為 1,所以當程序執行到第 26 次時,角色會說出列表第 26 項的值,再將 n+1,然后程序停止。 展開更多...... 收起↑ 資源列表 2022年小學NOC Python初賽題目.pdf 2022年小學NOC圖形化初賽題目.pdf 縮略圖、資源來源于二一教育資源庫