算法的控制结构 知识点题库

滴滴打车已经成为越来越多年轻人出行的首选。根据规则,统一城市不同车型(快车、出租车、专车)每公里里程的计价价格是不一样的。如果你是设计师,应该选择的程序结构是什么(   )
A . 树形结构 B . 选择结构 C . 顺序结构 D . 循环结构
【加试题】有如下程序段,运行后A(10)=(   )
Dim a(30) As Integer
a(1) = 1
a(2) = 1
i = 2
Do While i < 10
    i = i + 1
a(i) = a(i - 1) + a(i - 2)
Loop
A . 0 B . 34 C . 55 D .
小丽在假期看到小朋友们在玩一个游戏,8个小朋友围成一圈,从某个小朋友开始报数,报到指定数时,该小朋友出圈,接着从出圈的位置开始再接着报。她希望通过VB程序模拟这个过程,思路如下:

1)用一个一维数组来模拟,编号1~N保存在数据a(1)~a(n)中,来代表N个小朋友。

2)K代表报数的起始位置,从数组的a(k)开始遍列,报到m出圈,将当前位置的元素删除,后面的元素依次往前移位。总数减1。

3)当报数报到数组元素的最后一个时,返回数组开头接着报数。

4)当总数只剩下一个数时,直接输出。

界面如下:

Private Sub Command1_Click(   )

Dim i As Integer

Dim n As Integer

Dim m As Integer, k As Integer

Dim A(1 To 50) As Integer   '存放编号的数组

n = Val(Text1.Text)                       '编号个数

k = Val(Text2.Text)                '报数起始位

m = Val(Text3.Text)                   '报到出圈数

If n > 0 And k > 0 And m > 0    ①   n <= 50 Then

    For i = 1 To n              '初始化编号a(1)=1,a(2)=2,……

         A(i) = i

    Next i

    Label1.Caption =     ②          '调用出圈函数,得到返回的出圈顺序

Else

    MsgBox "编号、起始位、报到出圈数都必须大于0!编号不能超过50!"

End If

End Sub

Private Function chuquan(b() As Integer, n As Integer, m As Integer, k As Integer) As String

Dim i As Integer, j As Integer

Dim s As String                  '出圈顺序存放

i = k - 1

s = "出圈顺序为:"

Do While n > 1

       i = i + 1

       m = m - 1

       If     ③  Then

         s = s + Str(b(i)) + ","

         For j = i To n - 1

            b(j) = b(j + 1)

         Next j

         b(j) = 0

         n = n - 1

         i = i - 1

         m = 4

      End If

      If i = n  Then  i = 0

Loop

chuquan =        ④    

End Function

在信息加工中,经常要对被处理的数据进行排序,数据的排序有多种方法,冒泡法是一种常用的排序方法,在排序时少不了比较两个变量中值的大小。下列四个选项中,能正确地对x和y两个变量进行比较,并将较大的数放在变量x中的是(   )。  
A . if x >y then(交换变量x, y的值)endif B . if x<=y then(交换变量x, y的值)endif C . if x <y then(交换变量x, y的值)endif D . if x >=y then(交换变量x, y的值)endif
【加试题】某加密程序,对输入的原始字符串进行加密处理,输入加密后得到的字符串。数据加密方法为对原始字符串中的每个字符进行如下处理:

  ①将该字符的ASCII码值转化为8位二进制数;

  ②将后4位二进制数进行按位取反(1变0,0变1);

  ③将操作②生成的4位二进制数均左移1位(原第1位变为新的第4位);

  ④原高4位二进制数连接到新的后4位二进制数成为最终加密后字符的内码。

  例如:字符“a”经过上述加密运算,可得到字符“m”。

ASCII码值

转二进制

后四位取反

后四位左移

拼合

转十进制

转字符

97D

01100001B

1110

1101

01101101B

109D

“m”

程序运行界面如图所示,请改正加框处有误的代码:

Private Sub Command1_Click()

    Dim s As String:Dim sl As String:Dim jg As String

    Dim n As Integer:Dim x As Integer:Dim i As Integer:Dim j As Integer

    Dim a(15)As String

    a(0)=“0000”:a(1)=“0001”:a(2)=“0010”:a(3)=“0011”

    a(4)=“0100”:a(5)=“0101”:a(6)=“0110”:a(7)=“0111¨

    a(8)=“1000”:a(9)=“1001”:a(10)=“1010”:a(11)=“1011¨

    a(12)=“1100”:a(13)=“1101”:a(14)“1110”:a(15)=“1111”

    jg=“ ”

    s=Text1.Text

    For i=1 To Len(s)

        n=Asc(Mid(s,i,1))

        low=n Mod 16

        low=15-low          ‘执行步骤②

        s1=Mid(a(low),2,3)&Mid(a(low),1,1)  ‘执行步骤③

        For i=l To 4

            x=x+Val(Mid(s1,j,1))*         ‘⑴

        Next j

        x= *16+x                        ‘⑵

jg=jg&Chr(x)

    Next i

    Text2.Text=jg

End Sub

分析VB程序,回答问题。
  1. (1) 下列程序运行后,在标签Lab上显示的是

    Private Sub Command1_Click()

    Dim a As String, b As String, c As String

      a = "印象西湖"

      b = "中国"

      c = b + Mid(a, 1, 2)

      Lab.Caption = c

    End Sub

  2. (2) 下列程序运行后,在标签Label1上显示的是

    Private Sub Command1_Click()

      Dim a As Single, b As Single, c As Single, w As Single

     w = 6: a = 60: b = 50: c = 30

      If w <= 10 And a + b + c <= 115 Then

        Label1.Caption = "携带"

      Else

        Label1.Caption = "托运"

      End If

    End Sub

  3. (3) 下列程序运行后,数组元素d(3)的值是

    Private Sub Command1_Click()

      Dim d(1 To 8) As Integer

      Dim i As Integer

      For i = 1 To 8

        d(i) = 2 * i

        List1.AddItem Str(d(i))

      Next i

    End Sub

台州市政公共停车的收费标准如下:

30分钟以内不收费,1小时及以内收费5元,超过一小时后超过部分2元\小时收费(不足1小时的按1小时计算)。小明据此设计了以下VB程序,程序运行界面如图。

  1. (1) 若将窗体标题改为“台州停车收费”,应修改窗体属性栏中的属性。
  2. (2) 运行程序,在文本框Text1中输入当天停车时间(分钟),单击“收费”按钮Command1,在文本框Text2显示所对应的费用(元),实现上述功能的VB程序如下,请在划线处填写合适的代码。

    Private Sub Command1_Click()

    Dim t As Integer , cost As Integer , h As Integer    ‘h是小时时长

    t=Val(Text1.Text)

        If t <= 30 Then

            cost=0

        Else

            h=(t-1)\60+1

            If Then

                cost=5

            Else

                cost=

            EndIf

        EndIf

        Text2.Text=

    EndSub

某算法流程图如下图所示,该算法结束时,k的值是(  )

A . 10 B . 8 C . 4 D . 0
某算法的部分流程图如下图所示,执行这部分流程,则“s≤100?”被执行的次数是(  )

A . 2 B . 3 C . 4 D . 5
某算法的部分流程图如图所示。执行这部分流程后,输出m的值是(  )

A . 0 B . 1 C . 2 D . 9
有如下程序段,运行时程序出现如下错误提示,出错语句的位置是 (  )

Private Sub Command1_Click()

 Dim i As Integer

 Dim a(10)As Integer    ‘①

 For i=1 To 10    ‘②

  a(i)=Rnd* 100    ‘③

 Next i

 Label1.Caption=Str(a(i))    ‘④

End Sub

A . B . C . D .
某算法的部分流程图如图所示。输入s值为2018,执行这部分流程图后,则s和i分别是(  )

A . 1,3 B . 1,4 C . 2,3 D . 2,4
有如下循环结构程序段:

Dim s As Single

s = 32

For i = 1 To 10 Step ________

    s = 8/2

Next i

该程序执行后,s的值为1,则循环语句的步长应为(  )

A . 1 B . 2 C . 3 D . 4
某算法的流程图如图所示,执行该算法后,输出的结果是(  )

A . 5 B . 20 C . 50 D . 210
有如下VB程序段:

For i = 1 To Val (Text1. Text)

    j=1

    a(j) = a(j) + 1

    Do While a(j) =2

        a(j)= 0

        j=j+1

        a(j)=a(j)+1

    Loop

Next i

数组a中各元素初值均为0,该程序段运行时,在文本框Text1中输入10,则程序运行结束后a(4),a(3),a(2),a(1)的值依次为(  )

A . 1,0,1,0 B . 0,1,0,1 C . 0,1,1,0 D . 1,0,0,1
对输人的明文(由英文字母或数字组成的字符串)进行加密,输出加密后得到的密文。数据加密方法为对明文中的每个字符进行如下处理:

1)将该字符ASCI码转换成对应8位二进制;

2)将对应8位二进制数进行按位取反(1变0;0变1);

3)将产生的8位二进制数循环左移3次;

4)最后产生的8位二进制数转换成对应的十六进制数。

例如:明文大写字母“A”通过上述算法加密算法加密后生成的密文是“F5”,在文本框Text1中输入明文,单击“生成密文”按钮Command1,加密后生成的密文显示在文本框Text2中。

  1. (1) 如果输入明文为大写字母“F”,则生成的密文是
  2. (2) 请在划线处填入合适的代码。

    Function btoh(m As String)As String     ‘将4位二进制数转换成对应的十六进制数

    Dim s As Integer, i As Integer, str As String

    str ="0123456789ABCDEF": s=0

    For i=1 To 4

    s=s*2+ Val(Mid(m, i, 1))

    Next i

         ①     

    End Function

    Private Sub Command1_Click()

    Dim ans As String, s As String, ch As String, ret As String

    Dim i As Integer, asc1 As Integer, n As Integer

       ②    

    ans=" "

    For i = 1 To Len(s)

    ch =Mid(s, i, 1)      ‘取出第i个字符存入变量ch

    asc1=Asc(ch)

    ret" "

    For m =1 To 8      ‘完成加密步骤1)和步骤2)

    n=(asc1+1)mod 2

    ret =n & ret

        ③ 

    Next m

    ret = Mid(ret, 4, 5)+ Mid(ret, 1, 3)     ‘完成加密步骤3)和步骤4)

    s1=btoh(Mid(ret, 1, 4))

    s2 =btoh(Mid(ret, 5, 4))

    ans =ans & s1 & s2       ‘将第i个加密后的字符添加到变量ans的末尾

    Next i

    Text2.Text = ans

    End Sub

     ② ③

图像二值化。一个完整的车牌号识别系统要完成从图像采集到字符识别输出的过程,系统包括硬件部分与软件部分。硬件部分主要包括系统触发、图像采集;软件部分主要包括图像预处理车牌定位、字符分割、字符识别等。

软件部分的图像预处理往往是对采集到的车牌图像,在经过倾斜校正之后进行二值化处理,这样能够凸显出车牌的轮廓,使图像变得简单,减少数据量。如:

  1. (1) 得到的图像是在灰度图像的基础上将灰度值存储在二维数组p中,p(x,y)表示宽度位置为x,高度位置为;y的像素的灰度值,然后判断每一个像素的灰度值是否小于阈值(假设阈值T=136):若灰度值小于阈值,则该阈值标记为0(显示黑色),反之则标记为1(显示白色)。

    对应数学模型的表述公式应为

  2. (2) 对图像进行二值化处理的算法描述如下:

    ①给定图像的灰度值:输入每个像素的灰度值p(x,y);

    ②列举图像中的每个像素点:横坐标x列举的范围为1到图像的宽度,纵坐标y列举的范围为1到图像的高度;

    ③判定:若在x,y位置上的像素的灰度值小于阈值136,则判定为0;否则判定为1。

    该判定的过程属于算法控制结构中的结构。

为了体现人文关怀,某公司规定当气温高于35摄氏度时,停止一切户外作业。如用编程实现这一规定,我们在设计算法时应采用(    )
A . 顺序结构 B . 选择结构 C . 循环结构 D . 树型结构
某算法的自然语言和流程图描述如下,将流程图①②③④处补充完整。

自然语言

流程图

第一步:变量s的初值是0,t的初值是1;

第二步:将1赋值给变量i;

第三步: t←t×i,然后s←s+t;

第四步:将变量i的值加1,若i小于或等于10,转到第三步,否则转到第五步;

第五步:输出变量s的值;

第六步:结束。

  1. (1) ①  ② ③  ④
  2. (2) 流程图中虚线框处的算法控制结构类型是
  3. (3) 本算法实现的功能是(       )(注:n!=1*2*3*……*n)
    A . 求s=10! B . 求s=1+2+3+……+10 C . 求s=1!+2!+……+10! D . 求s=1+1+1+……+1(共10个1)
程序的三种基本控制结构是(    ) 。
A . 顺序结构、层次结构、循环结构 B . 顺序结构、分支结构、循环结构 C . 树型结构、分支结构、循环结构 D . 顺序结构、分支结构、树型结构