资源简介 第14课枚举算法一、选择题1.以下叙述中正确的是( )。A.Python 3.x与Python 2.x兼容B.Python语句只能以程序方式执行C.Python是解释型语言D.Python语言出现得晚,具有其他高级语言的一切优点2.Python语言属于( )。A.机器语言 B.汇编语言 C.高级语言 D.科学计算语言3.在python中,运行下列程序,正确的结果是( )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.计算1+2+3+…+100的值B.计算学校所有同学的平均身高和平均体重C.查找100以内所有能被6整除的数D.超市的收银系统,结算顾客所购商品的费用5.下列适合使用枚举算法解决的是( )。A.判断2021年是否为闰年 B.计算两个电阻的并联值C.计算本次数学考试班级平均分 D.找出100以内所有的素数6.已知在一直角三角形中,直角边a,b为整数,斜边C为不大于50的整数,输入直边a,输出所有满足条件的直角三角形三边a,b,c。解题思路为在斜边C的范围内,检验直角边b是否满足条件。这种算法是( )A.解析算法 B.枚举算法 C.查找算法 D.排序算法7.下列问题适合使用枚举算法解决的是( )A.计算已知半径圆的面积 B.超市打折方案C.校园歌曲大赛的成绩排名 D.计算10000以内的所有的素数8.某算法部分流程如图1所示,执行此部分流程后,下列说法正确的是( )图1图2A.此流程使用枚举算法(枚举i的值),虚线框部分是分支结构B.流程中sum←sum+i与i←i+1调换下位置,输出的sum,c,i的值都不变C.最终i的值是401,i←i+1执行数是200次D.将流程图修改为如图2所示,程序运行结果会发生变化。9.下列问题中可以用枚举算法解决的是( )。A.根据三个系数a、b、c的值,求一元二次方程ax2+bx+c=0的解B.找出一串钥匙(30把)中所有能打开某一实验室门的钥匙C.将10个评委的打分按由大到小的顺序进行排序D.已知5个电阻阻值,求它们并联后的阻值10.经典的百鸡算法描述是:用100文钱买公鸡、母鸡、小鸡共100只,其中公鸡5文一只,母鸡3文只,小鸡1文钱3只。解决此问题所用到的算法为( )。A.枚举算法 B.解析算法 C.查找算法 D.排序算法11.下列问题中,适合使用枚举算法解决的是( )。A.计算两个电阻的并联值B.计算五个同学的平均身高C.查找100以内所有能被6整除的数D.超市的促销方案12.面额为1元、2元和5元的纸币共有10张,求总额恰好为32元取法方案的算法是:设1元取a张、2元取b张和5元取c张,a、b、c都取0到10之间的整数,将a、b、c取值的所有可能组合逐一代入表达式a+2b+5c=32,判断是否成立,若成立,则输出这一方案。此算法属于( )。A.解析算法 B.枚举算法 C.递归算法 D.排序算法13.下列VB程序功能可以找出1000以内的完全数,并在标签中一一列出来。Private Sub Command1_Click()Dim i As Integer, m As Integer, n As IntegerLabel1.Caption = "1000以内的完全数如下:"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.某算法的部分流程图如下图所示:执行该算法,下列描述正确的是( )A.t←t+2执行了4次B.s≤35 执行了4次C.循环结构后,t的值为7D.该算法体现了枚举算法思想15.(加试题)小李设置了一个3位的密码,百位上二进制,十位上用十进制,个位上十六进制。如果按照枚举算法从每个数位从小到大(即000,001,002……19F)的规则进行尝试,那么找到“15A”这个密码所要尝试的次数是( )A.60 B.160 C.250 D.32016.用枚举算法求解“找出所有满足各位数字之和等于5的三位数”时,在下列所列举的数值范围内,算法执行效率最高的是( )A.从0到999 B.从100到999C.从100到500 D.从104到500二、填空题17.数学中的“自守数”:如果一个数的平方数的末几位等于该数本身,这个数就是自守数。例如:5*5=256*6=3625*25=62576*76=5776……那么,5、6、25、76 等数被称为自守数。小袁编写一个 VB 程序,实现如下功能:找出 10000 以内所有可能的自守数,单击“统计”按钮 Command1,将符合要求的自守数显示在列表框 List1 中,统计个数显 示在标签 Label1 中,运行界面如图所示。(1)程序运行时要在按钮上显示“统计”,应设置该按钮的________属性。(2)为实现上述功能,请在划线处填入合适的代码。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()函数用于删除字符串前后的空格t = (n * n) Mod ① _If t = n ThenList1.AddItem Str(n)②End IfNext nLabel1.Caption = "自守个数为:" + Str(c)End Sub为实现上述功能,划线处应填入的代码分别为①__________________________________________ 。②___________________________________________。(3)解决该问题采用了_______(选填:枚举/解析)算法。18.以下是两位同学设计的描述“输出所有能被3整除的四位数”的流程图。(1)请将流程图的空缺填写完整 ①_____________ ② ____________(2)请问采用枚举算法描述的是 。(从下列选项中选择)A.图A B.图B C.都是 D.都不是参考答案1.C【详解】本题考查Python相关知识点Python 3.x与Python 2.x版本不同,不兼容。故选项A说法错误Python语句也可以使用脚本直接运行。故选项B说法错误Python是解释型语言。故本题选C选项Python不具有其他高级语言的一切优点。故选项D说法错误2.C【详解】本题考查Python语言相关知识点Python是一种高级语言,所以不是机器语言、汇编语言、科学计算语言。故本题选C选项3.A【详解】本题考查Python程序实现。变量i的范围是从1到4,当i=4时,跳出循环,此时s=0+1+2+3+4=10。故本题选A选项4.C【详解】本题主要考查枚举算法。枚举算法是通过枚举所有的可能来解决问题,如查找100以内所有能被6整除的数,可以从0~100枚举处所有可能,故本题选C选项。5.D【详解】本题主要考查枚举算法。找出100以内所有的素数可以通过循环结构枚举所有的可能来求解,故本题选D选项。6.B【详解】本题主要考查算法描述。输出所有满足条件的直角三角形三边a,b,c,可知这种算法是枚举算法,故本题选B选项。7.D【详解】本题考查的是枚举算法。枚举法就是按问题本身的性质,一一列举出该问题所有可能的解,并在逐一列举的过程中,检验每个可能解是否是问题的真正解。计算10000以内的所有的素数,可以使用枚举算法。故应选D。8.A【详解】本题考查流程图相关知识点。枚举就是将问题的可能解一个个列举出来,逐一判断,即使中途找到符合条件的解也要继续找下去,将所有的可能都找完才结束。虚线框部分属于分支结构,也叫选择结构。B选项将流程中sum←sum+i与i←i+1调换,每次sum的值会大1。C选项最终i的值是401,i←i+1执行数是201次。将流程图修改为如图2所示,程序运行结果不会发生变化。故选项A正确。9.B【详解】本题考查枚举算法。枚举法的本质就是从所有候选答案中去搜索正确的解,使用该算法需要满足两个条件:(1)可预先确定候选答案的数量;(2)候选答案的范围在求解之前必须有一个确定的集合。找出一串钥匙(30把)中所有能打开某一实验室门的钥匙可逐一尝试,即是采用了枚举算法。故选项B可以用枚举算法解决。10.A【详解】本题考查常用算法。假设买公鸡的数量为a,买母鸡的数量为b,买小鸡的数量为c,根据题意需要把100以内的整数都进行是否满足条件a+b+c=100和5a+3b+1/3c=100的判断,这是枚举算法的特点,选项A正确。11.C【详解】本题考查枚举算法。枚举法的本质就是从所有候选答案中去搜索正确的解,使用该算法需要满足两个条件:(1)可预先确定候选答案的数量;(2)候选答案的范围在求解之前必须有一个确定的集合。本题中C选项可以使用枚举算法。12.B【详解】本题考查常用算法。根据题意需要对0到10之间的所有整数进行是否满足条件a+2b+5c=32的判断,这是枚举算法的特点,选项B正确。13.A【详解】本题考查的是枚举算法相关知识。枚举法就是按问题本身的性质,一一列举出该问题所有可能的解,并在逐一列举的过程中,检验每个可能解是否是问题的真正解。由代码For i = 1 To 1000可知,是列举出该问题所有可能的解。故采用的是枚举算法。选项A正确。14.A【解析】【详解】枚举是在一个范围内,查找符合条件的数据,其基本特征是循环结构内部包含一个选择结构。循环条件s≤35? s t初始值 0 1True 1 3True 10 5True 35 7True 84 9False15.C【详解】本题考查的是进制数及枚举算法相关知识。从“000”枚举到字符“14F”需要:15*16=240次,再从“150”枚举到“15A”还要枚举10次,共需要240+10=250,故选项C正确。16.D【详解】本题考查枚举算法。枚举算法是我们在日常中使用到的最多的一个算法,它的核心思想就是,枚举所有的可能。枚举法的本质就是从所有候选答案中去搜索正确的解,使用该算法需要满足两个条件,(1)可预先确定候选答案的数量,(2)候选答案的范围在求解之前必须有一个确定的集合。找出所有满足各位数字之和等于5的三位数,则从104到500,范围最小,算法执行效率最高。故本题选D。17.Caption 10^k c=c+1 枚举【详解】本题考查的是VB程序相关知识。(1)Caption属性是控制按钮在窗体上显示数据。(2)由题干可知,k表示数字n的位数,t表示数字n平方的最后k位,所以①答案是10^k;IF语句是判断数字n是否是自守数,如果满足条件,在List1中添加该数字,并统计个数,所以②答案是c=c+1;(3)题中代码列举出了自守数的所有可能,所以该算法是枚举算法。18.(1)①i=i+3 ②i=i+1 (2)B【详解】本题主要考查算法流程图。(1)①算法用于输出所有能被3整除的四位数,初值为1002能被3整除,故i每次只需递增3,故此处填i=i+3。 ②流程图B是枚举1000到9999之间所以能被3整除的可能,故i每次递增1,故此处填i=i+1。 (2)采用枚举算法描述的是图B,故选B选项。 展开更多...... 收起↑ 资源预览