4.1 算法及其特征 知识点题库

下列问题中适合使用枚举算法解决的是(   )
A . 计算两个数的乘积 B . 计算50个同学的平均分     C . 查找200以内所有能被7整除且个位数字为5的自然数 D . 设计主题班会
下列关于算法的叙述正确的是(   )
A . 一个算法必须有一个输入 B . 一个完整的算法,必须要有输出 C . 算法只能用VB语言来表示 D . 一个算法的可以无限循环的
个位数字是6,且能被3整除的3位数共有多少个?下面程序用于解决这一问题,在划线处填入合适的语句或表达式,设共有n个这样的数,Visual Basic程序如下:

Sub Command1_Click()

Dim i As Integer, n As Integer

m=106

n =

Do While m <= 996

    If Then n = n + 1

    m=

Loop

Text1.Text = Str(n)

End Sub

有如下VB程序段:

Dim a(1 to 5) as Integer, i as Integer, c as Integer

a(1) = 2 : a(2) = 1 : a(3) = 3 : a(4) = 4 : a(5) = 5

c = 0

For I = 3 to 5

If a(i - 2) + a(i - 1) = a(i) Then c = c + 1

Next i

Text1.Text = Str(c)

该程序运行后,文本框text1中显示的内容是(  )

A . 1 B . 2 C . 3 D . 4
一辆卡车运矿石,晴天每天运20次,雨天每天最多运12次,他一共运了8天,共112次,则晴天和雨天各有几天。用VB程序来解决这个问题,单击按钮Command1,在文本框Text1中输出晴天的天数,在文本框Text2中输出雨天的天数,程序代码如下:

Private Sub Command1_Click()

 i=1

 j=7

 Do While ________

i=________

j=________

 Loop

 Text1.Text=Str(i)

 Text2.Text=Str(j)

End Sub

则下列说法正确的是(  )

A . ①应填的代码为 i*20+j*12<>112 B . ②应填的代码为i-1 C . ③应填的代码为j+1 D . 描述该算法的思想为解析算法
小强在双十一购物期间忘记了支付宝账户密码,但他急用支付宝进行转账,请你帮他尽可能找回密码。他只记得自己密码的一些零星信息:

①密码是六位数字,前面两位为59;②最后两位数字相同;③能被12和38整除。

程序界面如图1所示,单击 “帮助找回密码”按钮(Command1)后,可能的密码显示在列表框List1中。

  1. (1) 应用程序界面设计时,为添加“ List1”对象,应使用图2所示的“控件工具箱”中的(填写相应编号)。
  2. (2) 请根据题意将解决此问题的相应程序补充完整。

    Private Sub  Command1_click ()

    Dim x As Integer, s As Long,

    Dim y As Integer, i As Integer

    For i = 0 To 9999

        S = 590000 + i

        If ① Then

            x= s mod 10

            y = ②

            If x = y Then

                List1.AddItem Str(s)

            End If

        End If

    Next i

    End Sub

  3. (3) 该模块采用的算法是(  )
    A . 枚举 B . 查找 C . 排序 D . 解析
平面上有N(3≤N≤100)个房间围成一圈,按顺时针方向分别编号为1…N,相邻的两个房间之间均有一扇门,第i个房间居住人数为a(i)。初始时选择一个房间,将所有人都聚集在该房间,接着每个人都按顺时针方向走到相邻的房间,直至走到居住的房间。一个人每经过一扇门花费1能量,请确定初始房间,使得所有人花费的能量和最小。例如:N=5,a(1)=4,a(2)=7, a(3)=8, a(4)=6, a(5)=4。

最佳方案:初始时所有人聚集在2号房间,花费的能量和:7*0+8*1+6*2+4*3+4*4=48。为了解决这个问题,小明编写了一个VB程序。在窗体加载时,从数据库中读取N的值和编号为1到N的房间的居住人数,人数存储在数组a中。点击窗体上的按钮Command1,程序枚举每一种方案(不同的初始房间),计算该方案的能量和,在文本框Text1中输出最优方案的初始房间编号,在文本框Text2中输出最小能量和。

实现上述功能的VB代码如下,请在划线处填入合适代码。

Dim a(1 To 100) As Integer ’依次存储编号为1到100的房间的居住人数

Private Sub Form_Load()

‘本过程从数据库中读取N的值和每个房间居住人数,存储在数组a中

‘代码略

End Sub

Private Sub Command1_Click()

Dim i As Integer, j As Integer, w As Integer, k as Integer

Dim t As Long, ans As Long

k=0 : ans = 32767     ‘ans初始化为最大的Integer数据

For i = 1 To n

 t = 0

 For j = 0 To n - 1

    w=

    If w = 0 Then w = n

    t=

 Next j

 If t < ans Then

    k= i

    ans = t

 End If

Next i

Text1.Text = Str (k)    ‘起始房间编号

Text2.Text =

End Sub

不同的程序设计语言,其语句种类、语言格式、语法要求、数据及函数类型(  )。
A . 都是一致的 B . 根本不同 C . 有所不同 D . 完全兼容
火柴游戏:有n根火柴,第1次取1根,第2次取2根,第i次取i根,当剩余火柴数为0时,不用添加火柴(即k=0),游戏结束。如果剩余火柴数不为0,但不够下一次取,此时添加k(k≥1)根火柴,在剩余火柴中再从1根开始取,直到能取完为止,求k的最小值。

例如:n=3时,第1次取1根,第2次取2根,此时正好取完,无须添加火柴,k=0;

例如:n=8时,第1次取1根,第2次取2根,第3次取3根,第4次要取4根,但剩余2根不够取。则加上1根,剩余3根,再从1根开始取,即第4次取1根,第5次取2根,剩余火柴为0,游戏结束,得k=1。

又如:n=4时,第1次取1根,第2次取2根,第3次不够取,若加上1根,剩余2根,再从1根开始取,第3次取1根,剩余1根不够第4次取,再加1根,又是剩余2根,显然加1根永远不可能取完。所以改用每次加2根,第1次取1根,第2次取2根,第3次不够取,添加2根,第3次取1根,第4次取2根,恰好能取完,得k=2。

编写一个VB程序可实现上述功能:在文本框Text1中输入火柴数量,单击“计算”按钮,在文本框Text2中显示最少添加数量,程序运行界面如下图所示:

实现上述功能的程序代码如下:

Private Sub ok_Click()

Dim a(1 To 100) As Boolean, n As Integer, k As Integer, i As Integer

n = Val(Text1.Text)

For i = 1 To 100

    a(i) = False

Next i

a(n) = True

Do While n <> 0

    i = 1

    Do While i <= n

             ①      

        i = i + 1

    Loop

    If n = 0 Then

        Text2.Text = Str(k)

    Else

        If k = 0 Then k = 1

        n = n + k

        If       ②      Then

            k = k + 1

            n = Val(Text1.Text)

        Else

            a(n) = True

        End If

    End If

Loop

End Sub

  1. (1) 由代码可知,“计算”按钮的对象名是
  2. (2) 程序加框处代码有错,请改正。
  3. (3) 请在划线处填入合适的代码。

     ② 

一个正整数x,如果它的平方数的最后几位数字和这个数相等,则该数为同构数。例如:5的平方数是25,且5出现在25的右侧,那么5就是一个同构数。设计程序,输出1000-9999间的同构数x,并统计个数。
  1. (1) 本题适用的算法是和此算法的基本结构是(    )。
    A . 查找算法,循环中嵌套分支 B . 枚举算法,循环中嵌套分支 C . 查找算法,循环中嵌套循环 D . 枚举算法,循环中嵌套循环
  2. (2) 判断1000-9999范围内的整数x是同构数的条件是(     )。
    A . x=x mod 1000 B . x=x^2 mod 1000 C . x=x mod 10000 D . x=x^2 mod 10000
  3. (3) 编写程序,实现算法功能。
算法设计是编写程序的基础。下列关于算法的叙述正确的是(   )
A . 算法结果不唯一 B . 算法可以没有输出 C . 算法必须具有确定性 D . 算法的表示必须使计算机能理解
以下关于算法的特征的描述中不正确的表述是(   )
A . 算法必须至少有一个输出 B . 算法中某些步骤可以存在二义性 C . 算法必须在执行有限步之后结束 D . 算法中的每一步须有确切的定义
若执行k=10/0,该步骤违反了算法的(    )特征。
A . 有穷性 B . 可行性 C . 无二义性 D . 确定性
小王到某城市,时间只有一天了,但小王很想到该城市的著名大景区游玩,该城市的著名大景区内共有N(超过 10) 个景点,标号为1至N,假设每个景点都有一个进出口。现在只知道每个景点有一条路连接下一个景点。小王想知道,根据这些道路信息,从其中一个景点出发, 最后再回到出发景点离开,最多能游玩多少个景点。

图片_x0020_100010

例如,共有N=5个景点,每个景点连接的下一个景点分别是 2,4,2,3,1。

景点号

1

2

3

4

5

下一景点号

2

4

2

3

1

则他可以从2号景点出发,最多可以游玩2号、3号、4号三个景点。程序代码如下:

Private Sub Command1_Click()

    Dim a(1 To 100) As Integer, d(1 To 100) As Integer    '数组 a 存放下一景点号

    Dim jd As String, m As String, c As Integer, i As Integer

    Dim s As Integer, p As Integer, k As Integer, ans As Integer

    jd=Text1.Text+","

    s=0 : c=0

    For i=1 To Len(jd)

        m=Mid(jd,i,1)

        If m<>"," Then

                   ①       

        Else

            c=c+1 : a(c)=s: s=0

        End If

    Next i

    For k=1 To 100 d(k)=0

    Next k

    ans=0: k=0

    For i=1 To c    '枚举起点

        If d(i)=0 Then p=i

            Do While p<=c

                If d(p)=0 Then

                    k=k+1 :d(p)=k

                Else

                           ②       

                    If y>ans Then ans=y k=0

                    Exit Do

                End If

                 图片_x0020_100011     '改错

            Loop

        End If

    Next i

    Text2.Text=Str(ans)

End Sub

  1. (1) 若有7个景点,且每个景点的连接情况为:6,3,5,2,7,5,4,那么小王最多可以游玩的景点数是
  2. (2) 在上面的程序代码中的下划线中填入代码

     ② 

  3. (3) 在上面的程序代码中,加框处代码有错,请改正。
关于算法的描述,正确的是(   )
A . 算法是解题方法的精确描述。只要是精确的算法,其步骤是可以无限的 B . 可以用计算机编程实现寻找100以内的素数 C . 算法可以不用输入,也可以不用输出 D . 流程图是一种通俗易懂的描述算法的方法
编写程序输出100~200之间不能被3整除的自然数,并统计出符合条件的个数。

程序如下:

Private Sub Form_Click()

    Dim i As Integer

    Dim t As Integer

    For i = 100 To 200

        If Then           '不能够被3整除的条件

            Print i

            t=t+1

        End If

    Next i

End Sub

程序运行结束后t的值为

下列关于算法的说法中正确的是(   )
A . 算法是分析问题的过程和方法 B . 算法只能用计算机语言来描述 C . 算法可以没有输入,但必须要有输出 D . 算法能实现计算所有自然数之和
以下流程图符合算法特征的是(     )。

A . 图2 B . 图3 C . 图4 D . 图1
针对某一问题的一系列具有精确定义的有限的操作步骤称为(     )
A . 程序 B . 指令 C . 算法 D . 软件
在炒菜机器人程序中,“第一步,加油少许”违背了算法的(    )特征。
A . 确定性 B . 可行性 C . 有穷性 D . 有输入和输出的
最近更新