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

下面程序的功能是:统计输入信息有多少个英文大写字母、小写字母、数字字符。程序运行时,在文本框Text1中输入信息,单击“确定”按钮后,分别在文本框Text2、Text3、Text4中显示大写字母、小写字母和数字字符的个数。程序运行效果如图所示。

图片_x0020_40

Private Sub Command1_Click()

Dim getStr As String

Dim a As String

Dim i As Integer,s As Integer

Dim q As Integer,l As Integer

s=0:q=0:l=0

getStr=Text1.Text

For i = 1 To        ①               ’对字符串中所有字符逐一判断

a =        ②       

If a >= "a" And a <= "z" Then s = s + 1

If a >= "A" And a <= "Z" Then q = q + 1

If a >= "0" And a <= "9" Then l = l + 1

Next i

Text2.Text = Str(s)

Text3.Text = Str(q)

Text4.Text = Str(l)

End Sub

  1. (1) 虚线框中的代码属于(选填:枚举/解析)算法
  2. (2) 划线①处应填入的语句为:

    划线②处应填入的语句为:

  3. (3) 运行该程序时,如果在文本框Text1中输入的字符串中包含其他符号,如“?”、“*”,

     (选填 会/不会)影响输出结果。

在现实生活中,人工解题的过程一般分为(   )。
A . 理解分析问题→寻找解题方法→用工具计算→验证结果 B . 寻找解题方法→理解分析问题→用工具计算→验证结果 C . 用工具计算→验证结果→寻找解题方法→理解分析问题 D . 用工具计算→验证结果→理解分析问题→寻找解题方法
【加试题】火柴棍可以拼成数字0~9,拼法如图1 所示。

图1

输入火柴棍的数量n(n≤24),计算可以拼出多少个“A+B=C”的等式?要求:

① 加号与等号各自需要两根火柴棍。

② A、B、C为非负的整数,且该数非零时,最高位不能是0。

③ 如果A≠B,则A+B=C 与B+A=C 视为不同的等式。

④ n 根火柴棍必须全部用上。

小明发现,数字1用的火柴棍最少,24根火柴棍全部用上的话,能拼出最大的整数A或B不超过1111,C不超过2222。他编写了一个VB 程序,在文本框Text1中输入火柴棍的数量,单击“统计”按钮Command1,在文本框Text2中输出“A+B=C”的方案数,程序界面如图2所示。

图2

实现上述功能的VB程序如下,请回答下列问题:

  1. (1) 请在划线处填入合适的代码。

    Private Sub Command1_Click()

    Dim a(0 To 2222) As Integer '存储每个整数需用的火柴棍数

    Dim n As Integer, ans As Integer

    Dim i As Integer, j As Integer

    n = Val(Text1.Text)

    For i = 0 To 2222

    a(i) = 0

    Next i

    '得到0~9 中每个数字需用的火柴棍数

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

    a(5) = 5: a(6) = 6: a(7) = 3: a(8) = 7: a(9) = 6

    n = '去掉等号与加号后,剩余的火柴棍数量

    For i = 10 To 2222 '计算出10~n 中每个数字需用的火柴棍数

    a(i) = a() + a(i Mod 10)

    Next i

    ans = 0

    '枚举0~n 中任意两个数,判断~否符合A+B=C 的火柴棍数量

    For i = 0 To 1111

    For j = 0 To 1111

    If a(i) + a(j) + a() = n Then

    ans = ans + 1

    End If

    Next j

    Next i

    Text2.Text = Str(ans)

    End Sub

  2. (2) 输入的火柴棍的数量为14 时,方案数为 。
有一个n行m列网格状临时停车场,如图a所示:在网格中随机分布若干个石头,网格中“□”表示空位,“●”表示石头。停放一辆车需要长为clen个空位、宽1个空位的空间,且车只能南北停放。编写程序,实现统计该车共有多少种停放方法。

程序实现过程:生成规模为n×m的网格,在网格边界添加一圈交通锥“▲”,并将“□” “●”、“▲”按行依次存入数组a中,在文本框Tex3中输入停放该车最小长度clen值,在文本框Text4中输出共有多少种停放方法。程序运行界面如图b所示,实现上述功能的VB代码如下:

Dim a(1 To 200) As String

Dim n as Integer, m As Integer

Private Sub Command1 Click ()

Dim i As Integer, j As Integer, k As Integer

Dim s As string

n= Val(Text1. Text)+2

m=Val(Text2 Text)+2

List1. Clear

For i=1 To n*m

    If i<=m0ri>m*(n-1) or  ①  Then   ‘在矩阵周围加上一圈边界

        a(i)=“▲”

    Else

        k= Int(Rnd 2)

        If k=1 Then a(i)=“□” Else a(i)=“●”

    End If

Next i

‘在列表框List1中显示网格,代码略

End sub

Private Sub Command2 Click ()

Dim i As Integer, j As Integer, c As Integer, x As Integer, y As Integer

Dim cnt As Integer, clen As Integer

Dim flag As boolean

clen= Val(Text3. Text)

y=1

Do While y <=m

    For x =1 To n

        If a((x-1)*m+ y)=“□” Then

            c=c+1

        Else

            If c ≥=clen Then

                cnt=

            End if

             ③

        End If

    Next x

    y=y+1

Loop

Text4 Text Str(cnt)

End Sub

请回答下列问题

  1. (1) 根据图a所示,车长需3个空位的汽车共有种不同的停法。
  2. (2) 请在划线处填入合适的代码。

     ② ③ 

计算机程序解决问题的过程:①分析问题、②设计算法、③编写程序、④调试运行、⑤检测结果。
在使用计算机解决问题时,选择合适的算法,是有效解决问题的关键。分析下面的问题,请选择最合适的算法:__________(请用英文字母填写)

搬砖问题:100块砖,100人搬,一个男人搬4块,一个女人搬3快,两个小儿拾1块,要求一次搬完,问男、女、小儿各多少人。

A . 解析法 B . 递归法 C . 穷举法 D . 排序法
算法设计与程序实现

换钱问题:

要将一张100元的钞票,换成等值的5元、2元、1元一张的钞票共50张。其中一种换法如下:

5元:3张

2元:38张

1元:9张

求出所有的换钱方案。

【算法设计】

x表示5元的张数:1≦x≦20;

y表示2元的张数:1≦y≦50;

z表示1元的张数:1≦z≦100。

【参考程序】

Dim x AsInteger

Dim y AsInteger

Dim z As Integer

For x=1 To20

    For y=1To 50

        Forz=1 To 100

           If           Then

               Print x;y;z       ‘x y z 之间以分号分隔

           End If

        Nextz

   Next y

Next x

根据上述回答下列问题:

  1. (1) 本题采用的算法是 (填:解析法/枚举法/排序法/递归法)。
  2. (2) 程序代码中空白处应填写的条件是           
    A . 5x + 2y + z=100 Or  x+ y + z = 50 B . 5x + 2y + z=100 And x + y + z = 50 C . 5*x + 2*y + z=100 Or x + y + z = 50 D . 5*x + 2*y + z=100 And x + y + z = 50
算法是解决问题的方法和步骤,它的每一步都有确切的含义。这体现了算法的(   )
A . 输出 B . 可行性 C . 确定性 D . 有穷性
某算法用伪代码描述如下。

输人两个互不相等的自然数A,B

If A<B then

(A←A+B,B←A-B,A←A-B)

输出A,B

关于上述算法,下列说法正确的是(    )

A . 不符合“可行性”特征 B . 无法用流程图来描述 C . 运用了循环结构的控制转移 D . 实现从大到小输出两个自然数
密码的合法性。某网络服务平台,要求新注册用户的密码必须以字母开头,并且含有字母(区分大小写)、数字和下划线,密码字符的长度为6~18个字符。判断用户的密码是否合法的某Python程序如下,请在程序划线处填入合适的代码,完善程序。

n1 =False #判断数字

n2=False #判断下划线

flag=False #判断首字符和长度是否满足要求

password=input('请输入密码:\n')

n=     ①      

ch=password[0]

if 19>n>5 and (z'>=ch>='a' or 'Z>= =ch>='A'):

    flag=True

if flag:

    for i in range(1, n):

        ch=password[i]

        if '9'>=ch>='0':

            n1=      ②     

      elif ch= '_':

          n2=True

if      ③      

    print('结果:', '合法')

else:

    print('结果:', '不合法')
  ②  ③

下列不属于算法特征的是(   )
A . 输入数据 B . 处理数据 C . 存储数据 D . 输出结果
下列选项中不属于算法特征的是(   )
A . 确定性 B . 有穷性 C . 可行性 D . 复杂性
设有n盏灯,放在一排。从1 到 n依次顺序编号。有 n个人也从1到n依次编号。第1个人(1号)将灯全部关闭,第2个人(2号)将凡是2的倍数的灯打开,第3个人(3号)将凡是3的倍数的灯做相反处理(该灯如果为打开的,则将它关闭,如关闭的将它打开),以后的人和3号一样,将凡是自己号数倍数的灯做相反处理。问当n个人操作后,哪几盏灯是亮的。(亮灯为0,关闭为1)

为了实现这一目标,完善下列程序,使之能完成该功能。

Private Sub Command1_Click()

    Const n=20

    Dim i As Integer, j As Integer

    Dim a(1 To n) As integer

    For j=1 To n

        a(j)=0

    Next j

    For i=1 To n

        For j=1 To n

            If j Mod i=0 Then

                

            End If

        Next j

    Next i

    For j=1 To n

        If Then List1.AddItem Str(j)

    Next j

End Sub

小强在双十一购物期间忘记了支付宝账户密码,但他急用支付宝进行转账,请你帮他尽可能找回密码。他只记得自己密码的一些零星信息:

①密码是六位数字,前面两位为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 . 解析
某密码强度判断程序功能如下:在文本框Text1中输入由大写字母、小写字母、数字和其他字符4种不同类型字符组成的密码字符串,单击“判断”按钮Cmd1,在标签框Label3中显示判断结果。程序运行界面如图所示。

密码强度判断条件如下:密码长度小于6,则强度为“弱”。在密码长度大于等于6的情况下,若只出现一种字符,则密码强度为“弱”;若出现两种不同字符,则密码强度为“中”,出现三种以上不同字符,则密码强度为“强”。

  1. (1) Cmd1对象属于类。(单选,填字母:A .Label/B .TextBox/C .CommandButton)
  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

    Private Sub Cmd1_Click()

        Dim n As Integer, i As Integer, m As Integer, s As String, c As String

       

        If n<6 Then

            Label3.Caption="弱"

        Else

            s="0000"

            For i=1 To n

                c=Mid(Text1.Text, i, 1)

                If c>="0" And c<="9" Then

                    Mid(s, 4, 1)="1"            '将字符串s第4位上的字符替换为"1"

                ElseIf c>="A" And c<="Z" Then

                    Mid(s, 3, 1)="1"

                ElseIf c>="a" And c<="z" Then

                    

                Else

                    Mid(s, 1, 1)="1"

                End If

            Next i

            m=0

            For i=1 To 4

                If Mid(s, i, 1)="1" Then

            Next i

            If m<2 Then

                Label 3.Caption="弱"

            ElseIf m=2 Then

                Label 3.Caption="中"

            Else

               Label3.Caption="强"

            End If

        End If

    End Sub

  3. (3) 若文本框 Text1中输入的内容为“a26$gh2!”,则单击“判断”按钮Cmd1,事件过程运行结束时,变量s的值为
下列有关算法的描述,错误的是(    )
A . 算法指的是解决问题或完成任务的一系列步骤 B . 算法的确定性是指算法中对于每个步骤的执行描述必须是明确的 C . 一个算法必须有一个或多个输入 D . 算法的三个要素是数据、运算和控制转移
交通测速是交警部门为了防止超速设置在道路上设置的检测机构,有多种方式,其中雷达测速是最常见的测速方式之一。
  1. (1) 雷达测速,是通过高精度的测速雷达对车辆进行测速,超速就启动抓拍摄像机自动抓拍超速照片,并会在超速照片上叠加超速信息,最后上传到交警平台上。解决测速问题的这一系列的步骤属于(选填字母:A .算法\B .程序实现)。
  2. (2) 要完成是否超速的判断,必须明确该监测区域的限行速度,这主要体现算法的。(选填字母:A .确定性 \ B .可行性 \ C .0个或多个输入)
  3. (3) 如果某次测量结果超过规定的限行速度,将被判定为超速违章。这个环节采用(选填,顺序/分支/循环)结构,属于算法要素中的(选填:数据/运算/控制转移)。
一个完整的算法,不管用什么方法表示,都至少有一个输入数据。
下列关于算法的叙述,错误的是(     )
A . 算法一定有输入 B . 算法必须有输出 C . 算法必须执行有限步以后能结束 D . 算法可以使用程序设计语言来实现
下列选项中,适合用穷举法编程解决的问题是(     )
A . 找出100以内所直的素数 B . 画出100个同心圖 C . 算50个学生成绩的平均分 D . 比较两个同学的成绩