试题

试题 试卷

logo

题型:综合题 题类:真题 难易度:困难

浙江省普通高校招生选考科目信息技术试卷(2019.4)

小王设计“模拟撤销”程序,需要用一个“历史记录”,“历史记录”是在对字符串s进行插入或删除时,将每步操作信息依次存储得到的,操作信息由操作符(“+”表示插入,“-”表示删除)、操作位置和操作字符串(只包含英文字母)构成,例如,“+23abc”表示在字符串s第23个位插入了“abc”,“模拟撤销”过程按照“历史记录”的逆序进行,将字符串s的内容恢复到初始状态。对字符串“Book”的操作与撤销过程,如a所示。

图a

图b

小王编写的“模拟撤销”VB程序如下,文本框 Text1中的内容是撤销前字符串,文本概Text2中的内容是历史记录,单击“撤销”按钮Command1后,在标签Label1中显示撤销过程,程序运行界面如图b所示。

(1)、实观上述功能的VB程序如下,在程序中出现的对象没有Caption属性的是 。(选填,填字码:A .Label1  /B .Command1  /C .Text1和Text2)
(2)、请在划线处填入合适代码。

Private Sub Command1_Click()

    Dim s As String, t As String, ch As String

    Dim c As String, num As String, ss As String

    Dim n As Integer, i As Integer

    s = Text1.Text: t = Text2.Text

    c = "": num = "": ss = s

    For i = Len(t) To 1 Step -1

            ①     

        If ch >= "a" And ch <= "z" Or ch >= "A" And ch = "Z" Then

            c = ch + c

        ElseIf ch >= "0" And ch <= "9" Then

            num = ch + num

        Else

            n = Val(num)

            If ch = "-" Then

                s = Mid(s, 1, n - 1) +    ②  

            Else

                s = Mid(s, 1, n - 1) + Mid(s, n + Len(c), Len(s) - n - Len(c) + 1)

            End If

            ss = ss + "→" + s

            c = "": num = ""

        End If

    Next i

    Label1.Caption = ss

End Sub

 ②

(3)、运行该程序,若文本框Text1中的内容是"April",文本框Text2中的内容是“-3p+3ri-6e”,单击撤销按钮,For循环语句执行完成后,字符串s的值是
举一反三
某学校要进行年级优秀生表彰,需要对n人的优秀生单独排位置,每行m人。排队方阵规则:第1行从左向右坐,第2行从右向左坐,第3行从左向右坐,第4行从右向左坐……不断重复。最后一行如果人数不满m人,一律从左往右坐。VB程序功能如下:Text1输入m的值,确定每行坐的人数,单击按钮后,在List2列表框中显每位同学的位置,在List3列表框中显示每位同学的4位数位置编号(行号+列号),如下图所示。实现上述功能的VB代码如下:

依据上述描述设计如下VB程序:

Dim xh(1 To 100) As Integer , xm(1 To 100) As String, cj(1 To 100) As Integer Dim n As Integer, m As Integer

Private Sub Form_Load()

'本过程从数据库依次读取n位同学的序号、姓名及成绩,然后按成绩降序排序,将学生序号、姓名成绩存储在数组xh、xm、cj中,结果显示在List1中,

End Sub

'显示每位同学的位置

Private Sub Command1_Click()

  Dim wz As String

  m=Val(Text1.Text)

  For i = 1 To n \ m

    For j = 1 To m

      If    ①   Then

        wz = wz + xm((i - 1) * m + j) + " "

      Else

        wz=xm((i-1) * m + j)+" "+wz

      End If

    Next j

      List2.AddItem wz

      wz =" "

  Next i

  If n Mod m <> 0 Then

    For i= To n      ‘加框处改错

    wz = wz + xm(i) + " "

    Next i

    List2.AddItem wz

  End If

End Sub

'显示每位同学的位置编号

Private Sub Command2_Click()

  Dim zu As Integer

  Dim ha As String, hb As String

  List3.AddItem "序号" & vbTab & "姓名" & vbTab & "位置"   'vbTab 用于字符对齐

  For i = 1 To n

    zu =    ②  

    ha = Trim(str(zu))

    If Len(ha) = 1 Then ha = "0" + ha

    If zu Mod 2 = 0 And zu <= n \ m

      Then hb =    ③  

    Else

      hb = Str(i - m * (zu - 1))

    End If

    hb = Trim(str(hb))

    'Trim 函数功能是去除字符空格

    If Len(hb) = 1 Then hb = "0" + hb

    List3.AddItem str(i) & vbTab & xm(i) & vbTab+ ha + hb

  Next i

End Sub

请回答下列问题:

返回首页

试题篮