类、对象、属性、方法、事件和事件处理的概念及应用 知识点题库

编写VB程序,实现如下功能:在文本框Text1中输入整数n(1≤n≤10),单击“生成矩阵”按钮Command1,生成n2个10到99之间(包含10和99)的随机整数,并以n行、n列矩阵的形式显示在列表框List1中,再单击“对角线”按钮Command2,则在标签Label1中输出该矩阵对角线(左上角到右下角)上的数值,运行界面如图所示,程序代码如下。
  1. (1) 要使文本框Text1上显示的默认文本由“8”改为“10”,可在其属性窗口中将属性的属性值改为“10”。

  2. (2) 为了实现上述功能,请在划线处填入合适的代码。

    Const MAXNUM = 100

    Dim i As Integer, n As Integer

    Dim a(1 To MAXNUM ^ 2) As Integer

    Private Sub Command1_Click()

      Dim line As String

      n = Val(Text1.Text)

      line = ""

    List1.Clear

      Randomize

      For i = 1  To  n ^ 2

        a(i) =            ①         

        If i > 1 And i Mod n = 1 Then

           List1.AddItem line

           line = Str(a(i))

        Else

           line =        ②         

        End If

      Next i

      List1.AddItem line

    End Sub

    Private Sub Command2_Click()

      Label1.Caption = ""

    For i = 1  to     ③    

         Label1.Caption = Label1.Caption & Str(a(i + (i - 1) * n))

      Next i

    End Sub

     ② ③ 

能被对象所识别的动作是(   )
A . 事件 B . 方法 C . 属性 D . 过程
对称字符串从左读到右和从右读到左完全一样,如“1221”“12321”。编写VB程序,判断输入字符串是否对称,程序运行界面如图a所示,在文本框Text1中输入字符串,单击Command1按钮,在标签Label2上显示判断结果。

  1. (1) 在设计程序界面时,要在Command1按钮上显示“判断”二字,应修改该按钮的属性。

  2. (2) 实现上述功能的VB程序如下,请在画线处填入合适的代码。

      Private Sub Command1_Click()

        Dim S As String,c1 As String,c2 As Integer

        Dim n As Integer,i As Integer

        Dim f As Boolean

        s=Text1.Text

        n=Len(S)

        f=True

        For i=1 To n\z

          c1=   ①  

          c2=Mid(s,n-i+1,1)

          If c1<>c2 Then

            f=False

            Exit For

          EndIf

        Next i

        If    ②    Then

           Label2.Caption=“对称”

        Else

           Label2.Caption=“不对称”

        EndIf

      End Sub

     ②

  3. (3) 运行该程序,在文本框中输入aba,单击“判断”按钮后,出现图b所示错误提示,引起该错误的原因是(单选,填字母:A,变量s的数据类型错误;B,变量c2的数据类型错误;C,变量f的数据类型错误)。

在VB中,设整型变量x、y的值分别是3、6,则下列语句中,能实现在标签Label1中显示“s = 18”的语句是(  )
A . Label1.Caption = "s = x * y" B . Label1.Caption = "s = " + Str(x * y) C . Label1 = "s = " (x + y)^ 2 D . Label1.Caption = "s = " + Val(x * y)
工资问题:某古老的工作和工资计算方式比较奇特,其工作要求如下:必须从1月1日当天开始工作,且连续工作n(n<=365)天才一次性结算得到工资。某年(假设当年为平年)其工资计算细则是:第1天获得1枚金币,接下来的2天(第2天和第3天)每天获

得2枚金币,再接下来的3天(第4、5、6 天)每天获得3枚金币……,依次类推,即当连续n天每天获得n枚金币后,会在之后的连续n+1天里,每天获得n+1枚金币。

小王用VB编写了工资计算程序,当输入连续工作的最后一天的日期后,单击“计算”按钮 Command1,程序自动计算工资总额,其运行界面如图所示。

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

  1. (1) 下列选项中,属于鼠标“单击”事件的是。(单选,填字母:A .DblClick / B .Load / C .Click)
  2. (2) 请在划线处填入合适的代码。
    Private Sub Command1_Click()

    Dim i As Integer, j As Integer, k As Integer Dim m As Integer, d As Integer, n As Integer Dim md As String, sum As Integer

    md = "312831303130313130313031"

    n = 0

    m = Val(Text1.Text) d = Val(Text2.Text)

    For i = 1 To m - 1 n =   ①  

    Next i

    n = n + d

    i = 0: j = 0

    sum = 0: k = 1 Do While i < n   sum =

    j = j + 1

    If      Then j = 0

    k = k + 1

    End If

    i = i + 1 Loop

    Text3.Text = Str(sum) End Sub

  3. (3) 加框处的代码有错误,请改正。
小容想设计一个自己的网页,在配色时发现网页使用的颜色是用十六进制表示的,但她习惯使用了十进制RGB颜色模式,学习了VB应用程序开发后,她想通过程序实现十进制到十六进制的转换。实现如下功能:在文本框Text1中输入RGB颜色的十进制,每个值以逗号结束,单击“转换”按钮Command1,在文本框Text2中显示颜色的十六进制值。运行效果如图所示:

  1. (1) 若要将窗体Form1的标题修改为“颜色转换”,则应修改Form1对象的 属性。
  2. (2) 以下程序段运行时,为了实现上述功能,请在划线处填入合适代码。

    Private Sub Command1_Click()

      Const st = "0123456789ABCDEF"

      Dim s, ch, rs As String

      Dim m, r1, r2, n As Integer

     

      For i = 1 To Len(s)

        ch = Mid(s,i,1)

        If ch > "9" Or ch < "0" Then

           

            r2 = m Mod 16

            rs = rs + Mid(st, r1 + 1, 1) + Mid(st, r2 + 1, 1)

            m = 0

        Else

            m = m * 10 + Val(ch)

        End If

      Next i

      Text2.Text = "#" + rs

    End Sub

  3. (3) 若黄色是由红色和绿色混合得到,则输入黄色的RGB值,文本框Text2中显示的内容为
一个VB工程的部分设计界面如图所示。下列说法不正确的是(  )

①工程文件名是“工程1.vbp”

②该工程只有1个窗体

③窗体文件名是“Form.frm”

④窗体名称是“寻找水仙花数”

A . ①② B . ②③ C . ①③ D . ③④
编写“字符串生成”程序,实现如下功能:在文本框Text1中(字符位置)输入多个正整数 (以“,”为分割符和结束符),单击“生成”按钮Command1,程序以这些整数为位置信息,依次从文本框Text2中(字典内容)提取字符并连接成字符串,最后将字符串显示在标签Label1中(生成内容)。

程序运行界面如下图所示。

  1. (1) 要使程序运行时,窗体Form1标题显示“字符串生成”,可在Form_Load事件过程中添加语句 (单选,填字母:A .Form1 = "字符串生成" / B .Forml.Text="字符串生成"/ C . Form1.Caption="字符 串生成")。
  2. (2) 实现上述功能的 VB 程序如下,请在划线处填入合适的代码。

     Private Sub Command1_Click()

    Dim s As String, t As String, c As String

    Dim i As Integer, p As Integer

     s = "": t = ""

    For i = 1 To Len(Text1.Text)

    c = Mid(Text1.Text  i, 1)

    If  c = "," Then

    p = Val(t)

    s = s + Mid(Text2.Text  p, 1)

    t = ""

    Else

    t = ①     

    End If

    Next i

    Label1.Caption = ②

    End Sub

  3. (3) 若文本框Text1中输人内容的结束符缺失(即输人内容为1,18,9,9),单击“生成”按钮后,标签Label1中显示的内容是
如果一个数大于等于4,它的平方根肯定不会超过它自己,且一个数的平方根最多不会超过它的一半,例如求8的平方根,8的一半是4,4^2=16>8,如果这个数越大越是如此。小王利用这一规律使用对分查找思想计算某数的算数平方根,编写了一个VB程序,功能如下:单击“产生”按钮Command1,产生一个大于等于0且小于100的随机整数,并显示在文本框Text1中;单击“计算”按钮Command2,在文本框Text1中显示随机整数的平方根,且结果只保留整数部分,小数部分舍去。程序运行界面如图所示:

  1. (1) 观察程序界面,具有 Caption 属性的对象有个。
  2. (2) 程序代码中,将划线处代码补充完整。

    Private Sub Command1_Click()

        Dim a As Integer

        Randomize

       

        Text1.Text = Str(a)

    End Sub

    Private Sub Command2_Click()

        Dim L As Integer, R As Integer, m As Integer

        Dim x As Integer, square As Integer

        x = Val(Text1.Text) L = 0

        R =

        Do While L < R

                    '改错

            square = m * m

            If square > x Then

                R = m - 1

            Else

               

            End If

        Loop

        Text2.Text = Str(L)

    End Sub

  3. (3) 程序代码中,加框处有错,请改正。
要使程序运行时,按钮Command1上的文字显示为“计算”,可在事件过程中添加语句Command1.Caption=“计算”。(单选,填字母:A .Command1_Click/B .Form_Load/C .Command1_DblClick)。
用于对窗体上的对象分组。
在平面直角坐标系中,给定一组有序的点。从原点出发,依次用线段连接这些点,构成一条折线。要求编写一个“计算折线长度”的程序,功能如下:在文本框Text1中依次输入这些点的坐标值(数据都用逗号分隔并以逗号结尾),单击“计算”按钮Cmd后,程序计算这条折线的长度,结果显示在Label1中。例如,三个点的坐标(5,10)、(8,12)、(6,17)输入格式如图所示。

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

    Private Sub Cmd_Click( )

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

    Dim x1 As Single, y1 As Single, x2 As Single, y2 As Single

    Dim d As Single, Totald As Single, v As Single, s As String

    s=    ①    

    x1=0:y1=0             ‘出发点为坐标原点

    k=1:i=1:Totald=0

    For i=1 To Len(s)

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

          v=Val(Mid(s,j,i-j))       ‘提取坐标值,保存在变量v中

          j=i+1

          If    ②      Then

              x2=v

          Else

              y2=v

              d=Sqr((x2-x1)-2+(y2-y1)-2)

              Totald=Totald +d

              x1=x2:y1=y2

          End If

          k=k+1

      End If

    Next i

    Label1.Caption=Str(Totald)

    End Sub
     

  3. (3) 运行该程序,输入数据如图所示,程序执行到循环结束时,变量k的值为
编写一个VB程序,实现程序功能如下:打开程序时,随机产生10个两位正整数存入数组a中,并在列表框List1中显示。单击“排序”按钮Command1后,在列表框List2中显示左右交替上升序列,程序运行界面如下图所示。排序方法:使用选择排序算法将数组改造成左右交替上升序列,即将最小值放在最左端,第2小值放在最右端;再将第3小值放到左端,第4小值放到右端。以此类推,直到形成左右交替上升序列。例如将数组a = (4,8,2,9,3,6,1,7,5,10),排序成a = (1,3,5,7,9,10,8,6,4,2)。

  1. (1) 该程序界面中有几类对象:(填数字)
  2. (2) 实现上述功能的VB程序如下,请在划线处填上合适的代码。

    Const n = 10

    Dim a(1 To n) As Integer

    Private Sub Form_Load()

        For i = 1 To n

            a(i) =        ‘产生两位随机正整数

            List1.AddItem Str(a(i))

        Next i

    End Sub

    Private Sub Command1_Click()

        Dim p As Integer, q As Integer, pos1 As Integer, pos2 As Integer, t As Integer

        p = 1: q = n

        Do While

            If a(p) <= a(p + 1) Then

                pos1 = p: pos2 = p + 1

            Else

                pos1 = p + 1: pos2 = p

            End If

            

            For i = p To q

                If a(i) < a(pos1) Then

                    pos2 = pos1

                    pos1 = i

                ElseIf a(i) < a(pos2) Then

                    pos2 = i

                End If

            Next i

            If pos1 <> p Then t = a(pos1): a(pos1) = a(p): a(p) = t

            If pos2 = p Then

            If pos2 <> q Then t = a(pos2): a(pos2) = a(q): a(q) = t

            p = p + 1: q = q - 1

        Loop

        For i = 1 To n

            List2.AddItem Str(a(i))

        Next i

    End Sub

  3. (3) 加框处代码有误,请改正。
某店铺销售运动类商品,根据销售单售卖商品,然后更新库存和统计销售额。小商同学根据上述算法设计VB程序,读入销售清单数据(销售清单存在数组sale,其中奇数位是商品名,偶数位是购买数量),单击“计算”按钮command1,若库存充足则销售成功,否则该单号作废,最后在列表框list1降序输出各商品剩余库存和总销售额。程序界面和代码如下,回答下列问题:

Dim goods(1 To 11) As String   ‘商品名,共11种

Dim num(1 To 11) As Integer   ‘库存数

Dim prize(1 To 11) As Integer   ‘商品单价

Dim sale(1 To 160) As String   ‘共80个销售单号

Private Sub Command1_Click()

    Dim i As Integer, j As Integer, t2 As Integer

    Dim total As Integer,s as string, t1 As String

    total = 0

    For i = 1 To 80

        For j = 1 To 11

            If  Then Exit For 

        Next j

        If      ①      Then

            num(j) = num(j) - Val(sale(i * 2))

            total = total + Val(sale(i * 2)) * prize(j)

            For k = 1 To 10

                If     ②     Then

                    t1 = goods(k): goods(k) = goods(k + 1): goods(k + 1) = t1

                    t2 = num(k): num(k) = num(k + 1): num(k + 1) = t2

                    t2 = prize(k): prize(k) = prize(k+1): prize(k+1) = t2

                End If

            Next k

        Else

            List1.AddItem Str(i) + "号单库存不足"

        End If

    Next i

     ‘在列表框list1输出各商品剩余库存,代码略

    List1.AddItem "总销售额" +    ③     + "元"   

End Sub

Private Sub Form_Load()

‘读入数据,存在各个数组,代码略

End Sub

  1. (1) 根据代码和程序界面,本程序没有哪类对象(单选,填字母: A .文本框 \ B .列表框 \ C .标签 \ D .按钮 )
  2. (2) 加框处代码有错,请改正
  3. (3) 在程序划线处填入合适代码,使程序完整

     ② ③ 

利用VB程序计算三角形面积。在文本框Text1、Text2、Text3中分别输入三角形三条边长a,b,c,半周长p = (a + b + c) / 2,单击按钮Command1计算三角形的面积s= ,并把结果显示在文本框Text4中。界面如图a所示,请回答下列问题:

  1. (1) 结合图b,若要把窗体背景色改为白色,可通过其属性进行设置。

  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适代码。

    Private Sub Command1_Click()

        Dim a, b, c, p, s As Integer

        a = Val(Text1.Text)

        b =

        c = Val(Text3.Text)

        p =(a + b + c) / 2

        If a+b>c And a+c>b And b+c>a And a>0 And b>0 And c>0 Then

            s =

            Text4.Text =

        Else

            Text4.Text =“输入边长不能组成三角形!”

        End If

    End Sub

窗体装载事件过程可以对程序进行初始化。VB窗体装载事件过程的名称是(    )
A . Command1_Click B . Form_Keypress C . Form_Load D . Form_DblClick
某校将举行“希望杯”欢乐四项赛,比赛项目有跳绳、颠球、套圈、飞镖四项。团体赛规则:每班由2名选手参加;每名选手参赛项目不限;每项每班由1名选手参赛;团体成绩为4项得分的总和。根据团体赛规则,为推选出最优组合参赛,班级制定了如下推荐办法:个人总分前5名入围,在入围的选手中依据最高单项得分之和推选两位选手组队参赛(若有多组符合要求,则选择编号靠前的选手组队)。

编写VB程序,实现选手推荐功能:单击“入围”按钮Command1后,将入围选手名单及成绩按总分降序显示在列表框List1中,然后单击“推荐”按钮Command2,在标签Label1中显示推荐结果,程序运行界面如图所示。

  1. (1) 要使窗体Form1标题显示“比赛选手推荐”,则需修改该窗体的属性。(单选,填字母:A . Font /B . Caption /C.BackColor)
  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

    Constrs=30     '初赛人数

    Dim ts(rs) As Integer, dq(rs) As Integer, tq (rs) As Integer, fb(rs) As Integer

    Dim xm(rs) As String, zf(rs) As Integer, bh(rs) As Integer

    Dim n As Integer

    Private Sub Command1_Click ()

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

        '读取选手姓名及四项比赛成绩,依次存入数组xm、ts、dq、tq、 fb,代码略

        For i=1 To rs

             zf(i) = ts(i) + dq(i) + tq(i) + fb(i)

            bh(i) = i

        Next i

        For i=1 To rs-1

            k=i

            For j = i+1To rs

                  If  Then k=j

            Next j

            If k<>i Then t=bh(i):bh(i)=bh(k):bh(k)=t

            If i > 5 And zf(bh(i)) < zf(bh(i - 1)) Then

                 n=

                 Exit For    'Exit For表示退出循环

            End If

        Next i

        '按要求将入围选手显示在列表框List1中,代码略

    End Sub

    Private Sub Command2_ Click()

        Dim smax As Integer, s As Integer, i As Integer, j As Integer

        Dim xs1 As String, xs2 As String

        smax = 0

        For i=1Ton- 1

            For j=i+ 1To n

                s = sum(bh(i), bh(j))

                If s > smax Then

                    

                    xs1 = xm(bh(i))

                    xs2 = xm(bh(j))

                End If

            Next j

        Next i

        Label1.Caption=xs1+""+xs2

    End Sub

    Function sum(x As Integer, y As Integer) As Integer

        sum=0

        If ts(x) > ts(y) Then sum=sum+ts(x) Else sum=sum+ts(y)

        If dq(x) > dq(y) Then sum = sum + dq(x) Else sum= sum + dq(y)

        If tq(x) > tq(y) Then sum = sum + tq(x) Else sum= sum + tq(y)

        If fb(x) > fb(y) Then sum = sum + fb(x) Else sum = sum + fb(y)

    End Function

  3. (3) 程序中加框处代码有错,请改正。
在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:

Private Sub Command1_Click(  )

Move 500,500

End Sub

程序运行后,单击命令按钮,执行的操作为(    )。

A . 命令按钮移动到距窗体左边界、上边界各500的位置 B . 窗体移动到距屏幕左边界、上边界各 500的位置 C . 命令按钮向左、上方向各移动500 D . 窗体向左、上方向各移动500
命令按钮command1的事件过程如下:

Private sub command1_click( )

X=inputbox(“输入:”,“输入整数”)

Msgbox “输入的数据是:”,, “输入数据:”+X

End sub

程序运行后,单击command1,从键盘上输入数据10,则以下叙述中错误的是(    )

A . X的值是数值型数据10 B . 输入对话框的标题是“输入整数” C . 信息框的标题是“输入数据:10” D . 信息框中的显示是“输入的数据是:”
在VB中,发生在对象上且能被对象识别的动作称为
最近更新