浙教版(2020)信息技术八上 第14课 枚举算法 同步练习(含解析)

文档属性

名称 浙教版(2020)信息技术八上 第14课 枚举算法 同步练习(含解析)
格式 docx
文件大小 786.0KB
资源类型 教案
版本资源 浙教版
科目 信息技术(信息科技)
更新时间 2022-01-04 17:55:36

图片预览

文档简介

第14课枚举算法
一、选择题
1.以下叙述中正确的是( )。
A.Python 3.x与Python 2.x兼容
B.Python语句只能以程序方式执行
C.Python是解释型语言
D.Python语言出现得晚,具有其他高级语言的一切优点
2.Python语言属于( )。
A.机器语言 B.汇编语言 C.高级语言 D.科学计算语言
3.在python中,运行下列程序,正确的结果是( )
s=0
for i in range (1,5):
s=s+i
print("i=",i,"s=",s)
A.i=4 s=10 B.i=5 s=10 C.i=5 s=15 D.i=6 s=15
4.下列问题中,适合使用枚举算法解决的是( )。
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
图2
A.此流程使用枚举算法(枚举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 Integer
Label1.Caption = "1000以内的完全数如下:"
For i = 1 To 1000
n = 0
For m = 1 To i \ 2
If i Mod m = 0 Then n = n + m
Next
If n = i Then Label2.Caption = Label2.Caption & "" & Str(i)
Next
End Sub
该过程采用的算法是( )
A.枚举 B.查找 C.排序 D.解析
14.某算法的部分流程图如下图所示:
执行该算法,下列描述正确的是(  )
A.t←t+2执行了4次
B.s≤35 执行了4次
C.循环结构后,t的值为7
D.该算法体现了枚举算法思想
15.(加试题)小李设置了一个3位的密码,百位上二进制,十位上用十进制,个位上十六进制。如果按照枚举算法从每个数位从小到大(即000,001,002……19F)的规则进行尝试,那么找到“15A”这个密码所要尝试的次数是( )
A.60 B.160 C.250 D.320
16.用枚举算法求解“找出所有满足各位数字之和等于5的三位数”时,在下列所列举的数值范围内,算法执行效率最高的是( )
A.从0到999 B.从100到999
C.从100到500 D.从104到500
二、填空题
17.数学中的“自守数”:如果一个数的平方数的末几位等于该数本身,这个数就是自守数。例如:
5*5=25
6*6=36
25*25=625
76*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 Integer
List1.Clear c=0
For n = 5 To 10000
k = Len(Trim(n)) 'Trim()函数用于删除字符串前后的空格
t = (n * n) Mod ① _
If t = n Then
List1.AddItem Str(n)

End If
Next n
Label1.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 1
True 1 3
True 10 5
True 35 7
True 84 9
False
15.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选项。