枚举算法及其程序设计 知识点题库

有一把锁和一串钥匙(共有10把钥匙,其中配套的钥匙有若干把),怎样找出能开这把锁的所有钥匙?设计的算法是:一把一把钥匙尝试开锁,开锁后将能开的钥匙做好标记,最后有标记的钥匙就是能开锁的钥匙,此算法属于(    )
A . 解析算法 B . 枚举算法 C . 递归算法 D . 排序算法
现实生活中有一类问题可以采用搜索的方法解决,如密码破解、寻找素数等,在搜索的过程中,列举所有可能的结果,并逐一判断,排除其中不符合要求的结果,这种方法称为(      )算法。
A . 顺序 B . 选择 C . 贪心 D . 枚举
下列问题中适合使用枚举算法解决的是(  )
A . 计算两个电阻的并联值 B . 计算五个同学的平均身高 C . 查找100以内所有能被6整除的数 D . 超市的促销方案
把问题的所有可能解都一一列举出来,并按照问题要求的条件逐个判断每个答案是否是正确的解,这就是(    )
A . 排序算法 B . 递归算法 C . 迭代算法 D . 枚举算法
枚举法程序设计往往要利用选择结构(if)和循环结构(for或while)来实现。
下列适合使用枚举算法解决的是(     )。
A . 判断2021年是否为闰年 B . 计算两个电阻的并联值 C . 计算本次数学考试班级平均分 D . 找出100以内所有的素数
下列问题适合使用枚举算法解决的是(     )
A . 计算已知半径圆的面积 B . 超市打折方案 C . 校园歌曲大赛的成绩排名 D . 计算10000以内的所有的素数
经典的百鸡算法描述是:用100文钱买公鸡、母鸡、小鸡共100只,其中公鸡5文一只,母鸡3文只,小鸡1文钱3只。解决此问题所用到的算法为(     )。
A . 枚举算法 B . 解析算法 C . 查找算法 D . 排序算法
面额为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 . 排序算法
下列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 i

End Sub

该过程采用的算法是(     )

A . 枚举 B . 查找 C . 排序 D . 解析
小李设置了一个3位的密码,百位上二进制,十位上用十进制,个位上十六进制。如果按照枚举算法从每个数位从小到大(即000,001,002……19F)的规则进行尝试,那么找到“15A”这个密码所要尝试的次数是(  )
A . 60 B . 160 C . 250 D . 320
以下是两位同学设计的描述“输出所有能被3整除的四位数”的流程图。

  1. (1) 请将流程图的空缺填写完整

     ②

  2. (2) 请问采用枚举算法描述的是               。(从下列选项中选择)
    A . 图A B . 图B C . 都是 D . 都不是
有如下Python程序段:

s=0

for i in range (1, 101):

    if i%2==0:

       s=s+i

该程序段被执行后,变量s中存储的是1~100之间的(    )。

A . 偶数个数 B . 奇数个数 C . 奇数之和 D . 偶数之和
假定母鸡每只4元,公鸡每只3元,小鸡每只2角5分,每种鸡都要买。现有100元,要买100只鸡,问有多少种方案。求解这个问题,若用枚举法来求解,同时列举母鸡数量x和公鸡数量y,则检验表达式为(   )
A . 4*x+3*y+(100-x-y)/4==100 B . 4*x+3*y=100 C . x+y=100 D . 4*x+3*y+(100-x-y)//4==100
枚举算法流程图如图所示,完成①②③④。

①枚举值在内吗?

②枚举值符合吗?

③输出

④取枚举值

零钱兑换。将一张100元面额的纸币兑换成零钱(5元、10元和20元中的任意多个面额),计算有几种换法。

程序代码:

count=0      #循环计数

for x in range(   ①   ):         #变量x表示20元纸币张数

  for y in range(   ②   ):  #变量y表示10元纸币张数

    if    ③   <=100:

          ④     

print("循环次数:",count)

  1. (1) x取值范围:(x为整数)
  2. (2) y取值范围:(y为整数)
  3. (3) 在横线处填上合适的代码

完数,又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。如6=1+2+3,6即是完数。编程找出1000以内的所有完数。以下程序中缺失的判断条件应该填写( )。 

 

A . n%a=0 B . n%a==0 C . a%n=0 D . a%n==0
所谓回文数是从左至右与从右至左读起来都一样的数字。如:121是一个回文数。如果编写程序寻找三位数中的回文数可以用(   )算法。
A . 枚举 B . 迭代 C . 排序 D . 递归
假定母鸡每只4元,公鸡每只3元,小鸡每只2角5分,每种鸡都要买。现有100元,要买100只鸡,问有多少种方案。求解这个问题,最适合的算法是(   )
A . 枚举 B . 解析 C . 排序 D . 查找
假定母鸡每只4元,公鸡每只3元,小鸡每只2角5分,每种鸡都要买。现有100元, 要买100只鸡,问有多少种方案。

求解这个问题,若用枚举法来求解,公鸡数量的枚举范围应为(    )

A . [0,100] B . [1,33] C . [0,33] D . [1,25]