資源簡介 第14課枚舉算法一、選擇題1.以下敘述中正確的是( )。A.Python 3.x與Python 2.x兼容B.Python語句只能以程序方式執(zhí)行C.Python是解釋型語言D.Python語言出現(xiàn)得晚,具有其他高級語言的一切優(yōu)點(diǎn)2.Python語言屬于( )。A.機(jī)器語言 B.匯編語言 C.高級語言 D.科學(xué)計(jì)算語言3.在python中,運(yùn)行下列程序,正確的結(jié)果是( )s=0for i in range (1,5):s=s+iprint("i=",i,"s=",s)A.i=4 s=10 B.i=5 s=10 C.i=5 s=15 D.i=6 s=154.下列問題中,適合使用枚舉算法解決的是( )。A.計(jì)算1+2+3+…+100的值B.計(jì)算學(xué)校所有同學(xué)的平均身高和平均體重C.查找100以內(nèi)所有能被6整除的數(shù)D.超市的收銀系統(tǒng),結(jié)算顧客所購商品的費(fèi)用5.下列適合使用枚舉算法解決的是( )。A.判斷2021年是否為閏年 B.計(jì)算兩個(gè)電阻的并聯(lián)值C.計(jì)算本次數(shù)學(xué)考試班級平均分 D.找出100以內(nèi)所有的素?cái)?shù)6.已知在一直角三角形中,直角邊a,b為整數(shù),斜邊C為不大于50的整數(shù),輸入直邊a,輸出所有滿足條件的直角三角形三邊a,b,c。解題思路為在斜邊C的范圍內(nèi),檢驗(yàn)直角邊b是否滿足條件。這種算法是( )A.解析算法 B.枚舉算法 C.查找算法 D.排序算法7.下列問題適合使用枚舉算法解決的是( )A.計(jì)算已知半徑圓的面積 B.超市打折方案C.校園歌曲大賽的成績排名 D.計(jì)算10000以內(nèi)的所有的素?cái)?shù)8.某算法部分流程如圖1所示,執(zhí)行此部分流程后,下列說法正確的是( ?。?br/>圖1圖2A.此流程使用枚舉算法(枚舉i的值),虛線框部分是分支結(jié)構(gòu)B.流程中sum←sum+i與i←i+1調(diào)換下位置,輸出的sum,c,i的值都不變C.最終i的值是401,i←i+1執(zhí)行數(shù)是200次D.將流程圖修改為如圖2所示,程序運(yùn)行結(jié)果會(huì)發(fā)生變化。9.下列問題中可以用枚舉算法解決的是( )。A.根據(jù)三個(gè)系數(shù)a、b、c的值,求一元二次方程ax2+bx+c=0的解B.找出一串鑰匙(30把)中所有能打開某一實(shí)驗(yàn)室門的鑰匙C.將10個(gè)評委的打分按由大到小的順序進(jìn)行排序D.已知5個(gè)電阻阻值,求它們并聯(lián)后的阻值10.經(jīng)典的百雞算法描述是:用100文錢買公雞、母雞、小雞共100只,其中公雞5文一只,母雞3文只,小雞1文錢3只。解決此問題所用到的算法為( )。A.枚舉算法 B.解析算法 C.查找算法 D.排序算法11.下列問題中,適合使用枚舉算法解決的是( )。A.計(jì)算兩個(gè)電阻的并聯(lián)值B.計(jì)算五個(gè)同學(xué)的平均身高C.查找100以內(nèi)所有能被6整除的數(shù)D.超市的促銷方案12.面額為1元、2元和5元的紙幣共有10張,求總額恰好為32元取法方案的算法是:設(shè)1元取a張、2元取b張和5元取c張,a、b、c都取0到10之間的整數(shù),將a、b、c取值的所有可能組合逐一代入表達(dá)式a+2b+5c=32,判斷是否成立,若成立,則輸出這一方案。此算法屬于( )。A.解析算法 B.枚舉算法 C.遞歸算法 D.排序算法13.下列VB程序功能可以找出1000以內(nèi)的完全數(shù),并在標(biāo)簽中一一列出來。Private Sub Command1_Click()Dim i As Integer, m As Integer, n As IntegerLabel1.Caption = "1000以內(nèi)的完全數(shù)如下:"For i = 1 To 1000n = 0For m = 1 To i \ 2If i Mod m = 0 Then n = n + mNextIf n = i Then Label2.Caption = Label2.Caption & "" & Str(i)NextEnd Sub該過程采用的算法是( )A.枚舉 B.查找 C.排序 D.解析14.某算法的部分流程圖如下圖所示:執(zhí)行該算法,下列描述正確的是( )A.t←t+2執(zhí)行了4次B.s≤35 執(zhí)行了4次C.循環(huán)結(jié)構(gòu)后,t的值為7D.該算法體現(xiàn)了枚舉算法思想15.(加試題)小李設(shè)置了一個(gè)3位的密碼,百位上二進(jìn)制,十位上用十進(jìn)制,個(gè)位上十六進(jìn)制。如果按照枚舉算法從每個(gè)數(shù)位從小到大(即000,001,002……19F)的規(guī)則進(jìn)行嘗試,那么找到“15A”這個(gè)密碼所要嘗試的次數(shù)是( )A.60 B.160 C.250 D.32016.用枚舉算法求解“找出所有滿足各位數(shù)字之和等于5的三位數(shù)”時(shí),在下列所列舉的數(shù)值范圍內(nèi),算法執(zhí)行效率最高的是( )A.從0到999 B.從100到999C.從100到500 D.從104到500二、填空題17.?dāng)?shù)學(xué)中的“自守?cái)?shù)”:如果一個(gè)數(shù)的平方數(shù)的末幾位等于該數(shù)本身,這個(gè)數(shù)就是自守?cái)?shù)。例如:5*5=256*6=3625*25=62576*76=5776……那么,5、6、25、76 等數(shù)被稱為自守?cái)?shù)。小袁編寫一個(gè) VB 程序,實(shí)現(xiàn)如下功能:找出 10000 以內(nèi)所有可能的自守?cái)?shù),單擊“統(tǒng)計(jì)”按鈕 Command1,將符合要求的自守?cái)?shù)顯示在列表框 List1 中,統(tǒng)計(jì)個(gè)數(shù)顯 示在標(biāo)簽 Label1 中,運(yùn)行界面如圖所示。(1)程序運(yùn)行時(shí)要在按鈕上顯示“統(tǒng)計(jì)”,應(yīng)設(shè)置該按鈕的________屬性。(2)為實(shí)現(xiàn)上述功能,請?jiān)趧澗€處填入合適的代碼。Private Sub Command1_Click()Dim n As Single, k As Integer, t As Integer, c As IntegerList1.Clear c=0For n = 5 To 10000k = Len(Trim(n)) 'Trim()函數(shù)用于刪除字符串前后的空格t = (n * n) Mod ① _If t = n ThenList1.AddItem Str(n)②End IfNext nLabel1.Caption = "自守個(gè)數(shù)為:" + Str(c)End Sub為實(shí)現(xiàn)上述功能,劃線處應(yīng)填入的代碼分別為①__________________________________________ 。②___________________________________________。(3)解決該問題采用了_______(選填:枚舉/解析)算法。18.以下是兩位同學(xué)設(shè)計(jì)的描述“輸出所有能被3整除的四位數(shù)”的流程圖。(1)請將流程圖的空缺填寫完整 ①_____________ ② ____________(2)請問采用枚舉算法描述的是 。(從下列選項(xiàng)中選擇)A.圖A B.圖B C.都是 D.都不是參考答案1.C【詳解】本題考查Python相關(guān)知識點(diǎn)Python 3.x與Python 2.x版本不同,不兼容。故選項(xiàng)A說法錯(cuò)誤Python語句也可以使用腳本直接運(yùn)行。故選項(xiàng)B說法錯(cuò)誤Python是解釋型語言。故本題選C選項(xiàng)Python不具有其他高級語言的一切優(yōu)點(diǎn)。故選項(xiàng)D說法錯(cuò)誤2.C【詳解】本題考查Python語言相關(guān)知識點(diǎn)Python是一種高級語言,所以不是機(jī)器語言、匯編語言、科學(xué)計(jì)算語言。故本題選C選項(xiàng)3.A【詳解】本題考查Python程序?qū)崿F(xiàn)。變量i的范圍是從1到4,當(dāng)i=4時(shí),跳出循環(huán),此時(shí)s=0+1+2+3+4=10。故本題選A選項(xiàng)4.C【詳解】本題主要考查枚舉算法。枚舉算法是通過枚舉所有的可能來解決問題,如查找100以內(nèi)所有能被6整除的數(shù),可以從0~100枚舉處所有可能,故本題選C選項(xiàng)。5.D【詳解】本題主要考查枚舉算法。找出100以內(nèi)所有的素?cái)?shù)可以通過循環(huán)結(jié)構(gòu)枚舉所有的可能來求解,故本題選D選項(xiàng)。6.B【詳解】本題主要考查算法描述。輸出所有滿足條件的直角三角形三邊a,b,c,可知這種算法是枚舉算法,故本題選B選項(xiàng)。7.D【詳解】本題考查的是枚舉算法。枚舉法就是按問題本身的性質(zhì),一一列舉出該問題所有可能的解,并在逐一列舉的過程中,檢驗(yàn)每個(gè)可能解是否是問題的真正解。計(jì)算10000以內(nèi)的所有的素?cái)?shù),可以使用枚舉算法。故應(yīng)選D。8.A【詳解】本題考查流程圖相關(guān)知識點(diǎn)。枚舉就是將問題的可能解一個(gè)個(gè)列舉出來,逐一判斷,即使中途找到符合條件的解也要繼續(xù)找下去,將所有的可能都找完才結(jié)束。虛線框部分屬于分支結(jié)構(gòu),也叫選擇結(jié)構(gòu)。B選項(xiàng)將流程中sum←sum+i與i←i+1調(diào)換,每次sum的值會(huì)大1。C選項(xiàng)最終i的值是401,i←i+1執(zhí)行數(shù)是201次。將流程圖修改為如圖2所示,程序運(yùn)行結(jié)果不會(huì)發(fā)生變化。故選項(xiàng)A正確。9.B【詳解】本題考查枚舉算法。枚舉法的本質(zhì)就是從所有候選答案中去搜索正確的解,使用該算法需要滿足兩個(gè)條件:(1)可預(yù)先確定候選答案的數(shù)量;(2)候選答案的范圍在求解之前必須有一個(gè)確定的集合。找出一串鑰匙(30把)中所有能打開某一實(shí)驗(yàn)室門的鑰匙可逐一嘗試,即是采用了枚舉算法。故選項(xiàng)B可以用枚舉算法解決。10.A【詳解】本題考查常用算法。假設(shè)買公雞的數(shù)量為a,買母雞的數(shù)量為b,買小雞的數(shù)量為c,根據(jù)題意需要把100以內(nèi)的整數(shù)都進(jìn)行是否滿足條件a+b+c=100和5a+3b+1/3c=100的判斷,這是枚舉算法的特點(diǎn),選項(xiàng)A正確。11.C【詳解】本題考查枚舉算法。枚舉法的本質(zhì)就是從所有候選答案中去搜索正確的解,使用該算法需要滿足兩個(gè)條件:(1)可預(yù)先確定候選答案的數(shù)量;(2)候選答案的范圍在求解之前必須有一個(gè)確定的集合。本題中C選項(xiàng)可以使用枚舉算法。12.B【詳解】本題考查常用算法。根據(jù)題意需要對0到10之間的所有整數(shù)進(jìn)行是否滿足條件a+2b+5c=32的判斷,這是枚舉算法的特點(diǎn),選項(xiàng)B正確。13.A【詳解】本題考查的是枚舉算法相關(guān)知識。枚舉法就是按問題本身的性質(zhì),一一列舉出該問題所有可能的解,并在逐一列舉的過程中,檢驗(yàn)每個(gè)可能解是否是問題的真正解。由代碼For i = 1 To 1000可知,是列舉出該問題所有可能的解。故采用的是枚舉算法。選項(xiàng)A正確。14.A【解析】【詳解】枚舉是在一個(gè)范圍內(nèi),查找符合條件的數(shù)據(jù),其基本特征是循環(huán)結(jié)構(gòu)內(nèi)部包含一個(gè)選擇結(jié)構(gòu)。循環(huán)條件s≤35? s t初始值 0 1True 1 3True 10 5True 35 7True 84 9False15.C【詳解】本題考查的是進(jìn)制數(shù)及枚舉算法相關(guān)知識。從“000”枚舉到字符“14F”需要:15*16=240次,再從“150”枚舉到“15A”還要枚舉10次,共需要240+10=250,故選項(xiàng)C正確。16.D【詳解】本題考查枚舉算法。枚舉算法是我們在日常中使用到的最多的一個(gè)算法,它的核心思想就是,枚舉所有的可能。枚舉法的本質(zhì)就是從所有候選答案中去搜索正確的解,使用該算法需要滿足兩個(gè)條件,(1)可預(yù)先確定候選答案的數(shù)量,(2)候選答案的范圍在求解之前必須有一個(gè)確定的集合。找出所有滿足各位數(shù)字之和等于5的三位數(shù),則從104到500,范圍最小,算法執(zhí)行效率最高。故本題選D。17.Caption 10^k c=c+1 枚舉【詳解】本題考查的是VB程序相關(guān)知識。(1)Caption屬性是控制按鈕在窗體上顯示數(shù)據(jù)。(2)由題干可知,k表示數(shù)字n的位數(shù),t表示數(shù)字n平方的最后k位,所以①答案是10^k;IF語句是判斷數(shù)字n是否是自守?cái)?shù),如果滿足條件,在List1中添加該數(shù)字,并統(tǒng)計(jì)個(gè)數(shù),所以②答案是c=c+1;(3)題中代碼列舉出了自守?cái)?shù)的所有可能,所以該算法是枚舉算法。18.(1)①i=i+3 ②i=i+1 (2)B【詳解】本題主要考查算法流程圖。(1)①算法用于輸出所有能被3整除的四位數(shù),初值為1002能被3整除,故i每次只需遞增3,故此處填i=i+3。 ②流程圖B是枚舉1000到9999之間所以能被3整除的可能,故i每次遞增1,故此處填i=i+1。 (2)采用枚舉算法描述的是圖B,故選B選項(xiàng)。 展開更多...... 收起↑ 資源預(yù)覽 縮略圖、資源來源于二一教育資源庫