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

在VB中,利用搜索过程,列举出所有可能的结果,并逐一判断,排除其中不符合要求的结果,这就是枚举算法,一般利用多重循环来解决。
采用搜索的方法解决问题,如密码破解的问题,常采用的方法叫做
某合唱队有100人,分别编号为1,2,3……100,现从中抽出编号为6的倍数的队员单独作为一个声部的合唱,那么这样的人数共有多少?分别是哪些编号?

请用VB程序实现上面的内容,算出人数并在窗体上列出所有编号。

界面设计参考如下:

我们利用枚举的策略解决问题时,下列说法错误的是(    )
A . 要按一定的顺序枚举 B . 枚举时只可列表,不可画图 C . 要对结果进行比较,做出选择 D . 做到不重复,不遗漏
现在有36块砖,36人搬。男人每人搬4块,女人每人搬3块,两个小孩搬1块砖。要求一次全搬完。问需男、女、小孩各多少人?

分析:设男、女、小孩人数分别为a、b、c。

  1. (1) 需要满足的条件:=36  =36
  2. (2) 枚举范围:

    男人,最多有人;

    女人,最多有人;

    小孩,最多有人;(小孩人数必须要偶数)

关于枚举算法的说法错误的是(       )
A . 一般是通过循环中嵌套分支结构来实现的。 B . 循环结构用来“枚举”,分支结构用于“检验”。 C . 列举所有可能解的范围时,可以扩大但不能缩小,以防漏解。 D . 采用枚举法时,也可能找不到符合条件的解。
下列问题中,适合使用枚举算法解决的是(    )。
A . 计算1+2+3+…+100的值 B . 计算学校所有同学的平均身高和平均体重 C . 查找100以内所有能被6整除的数 D . 超市的收银系统,结算顾客所购商品的费用
已知在一直角三角形中,直角边a,b为整数,斜边C为不大于50的整数,输入直边a,输出所有满足条件的直角三角形三边a,b,c。解题思路为在斜边C的范围内,检验直角边b是否满足条件。这种算法是(     )
A . 解析算法 B . 枚举算法 C . 查找算法 D . 排序算法
下列问题中可以用枚举算法解决的是(      )。
A . 根据三个系数a、b、c的值,求一元二次方程ax2+bx+c=0的解 B . 找出一串钥匙(30把)中所有能打开某一实验室门的钥匙 C . 将10个评委的打分按由大到小的顺序进行排序 D . 已知5个电阻阻值,求它们并联后的阻值
用枚举算法求解“找出所有满足各位数字之和等于5的三位数”时,在下列所列举的数值范围内,算法执行效率最高的是(   )
A . 从0到999 B . 从100到999 C . 从100到500 D . 从104到500
数学中的“自守数”:如果一个数的平方数的末几位等于该数本身,这个数就是自守数。例如:

5*5=25

6*6=36

25*25=625

76*76=5776

……

那么,5、6、25、76 等数被称为自守数。小袁编写一个 VB 程序,实现如下功能:找出 10000 以内所有可能的自守数,单击“统计”按钮 Command1,将符合要求的自守数显示在列表框 List1 中,统计个数显 示在标签 Label1 中,运行界面如图所示。

  1. (1) 程序运行时要在按钮上显示“统计”,应设置该按钮的属性。
  2. (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. (3) 解决该问题采用了(选填:枚举/解析)算法。
有10个数据"23,15,51,36,78, 47,39,9,88,96"依次存放在列表a中,使用如下Python程序段找出大于70的数的个数。

a=[23,15,51,36,78,47,39,9,88,96]

n=0

m=70

for i in range (0, 10)

    if   

         n=n+1

print("个数:",n)

程序中画线处的代码应为(     )

A . a[i]>n B . a[i]<n C . a[i]>m D . a[i]<m
假定母鸡每只4元,公鸡每只3元,小鸡每只2角5分,每种鸡都要买。现有100元,要买100只鸡,问有多少种方案。求解这个问题,最适合的算法是(   )
A . 解析 B . 排序 C . 枚举 D . 查找
假定母鸡每只4元,公鸡每只3元,小鸡每只2角5分,每种鸡都要买。现有100元,要买100只鸡,问有多少种方案。求解这个问题,若用枚举法来求解,公鸡数量的枚举范围应为(       )
A . [1,25] B . [1,33] C . [0,100] D . [0,33]
枚举算法需要先确定枚举对象、,然后逐一枚举可能的解,并验证每个解是否为问题的解。
下面问题不能用枚举算法实现的是(    )
A . 统计个位数字是6,且能被3整除的2位数 B . 计算已知半径的一个圆的面积 C . 今有面额为1元、2元和5元的纸币各10张,要使总和为24元,输出所有不同的取法 D . QQ密码忘记,找回密码(假设可以无限次地尝试)
假定母鸡每只4元,公鸡每只3元,小鸡每只2角5分,每种鸡都要买。现有100元,要买100只鸡,问有多少种方案。

求解这个问题,若用枚举法来求解,同时列举母鸡数量x和公鸡数量y,则检验表达式为(   )

A . x+y=100    B . 4*x+3*y=100     C . 4*x+3*y+(100-x-y)//4==100 D . 4*x+3*y+(100-x-y)/4=100