当前位置: 高中信息技术 / 综合题
  • 1. (2021·温州模拟) 字母排队游戏。有一组不重复的字母串,现根据大小写分别进行排队。排队规则如下:①根据字母大小写按原顺序提取字母,大写字母排一队,小写字母排一队;

    ②固定两队字母中最小字母在各队中的位置;

    ③将两队其余字母按从小到大的顺序排在各自最小字母的两边。大写字母队列先从最小字母右边排队,排到最后位置再从最小字母左边开始排,直到第一个位置为止。同理,小写字母队列先从左边开始排队,再排右边。过程如图1所示:

    编写VB程序,实现字母排队功能:在文本框Text1中输入待排字母串后,单击“排队”按钮Comand1,在列表框List1中显示排队结果。程序运行界面如图2所示。

    请回答下列问题:

    1. (1) 根据程序运行界面,“字母排队”是窗体Form1的(单选,填字母:A .对象名/B .属性名/C .属性值/D .过程名)。
    2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

      Dim flag(1 To 52) As Boolean      'flag数组初值为False

      Private Sub Command1_Click()

          Dim su As String, sd As String, ch As String      'su,sd分别存储大小写字母队

          Dim i As Integer, n As Integer

          Dim ku As Integer, kd As Integer

          s = Text1.Text:n =Len(s)

          For i=1 To n

              ch =

              If ch >="A" And ch <="Z" Then su= su+ ch

              If ch>="a"Andch<="z"Thensd=sd+ch

          Next i

          ku = search(su, 0)

          kd = search(sd, 6

          su=“”:sd=“”

          For i=1 To 52

              If flag(i) And i<=26 Then su=su+Chr(i+64)

              If flag(i) And i>26 Then

          Next i

          List1.AddItem sort(su,ku, 1)

          List1.AddItem sort(sd,kd, -1)

      End Sub

      Function search(s As String, k As Integer) As Integer     '确定字母队列并查找最小元素位置

          Min = Mid(s,1, 1)

          flag(Asc(Min) - 64 - k) = True

          mini = 1

          For i=2 To Len(s)

              ch = Mid(s, i,1)

              If ch<Min Then mini=i:Min=ch

              

          Next i

          search = mini

      End Function

      Function sort(s As String, wz As Integer, k As Integer) As String      '排队

          nx = Len(s)

          sort = Mid(s, 1,1)

          i=2

          nc=1

          Do While nc <= 2

              For j=wz+k To nx^((1 +k) \ 2) Step k

                  If k= 1 Then

                      sort = sort + Mid(s,i,1)

                  Else

                      sort = Mid(s, i, 1) + sort

                  End If

                  i=i+1

              Next j

              

              nc=nc+1

          Loop

      End Function

    3. (3) 程序中加框处代码有错,请改正。

微信扫码预览、分享更方便