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

在VB中,某对象的属性窗口如下图所示:该对象的控件类型是(   )

 

A . Enabled B . Timer C . Tine D . Tine Timer
在Visual Basic中,表示“双击鼠标”的事件是(   )   
A . Click B . KeyPress C . Load D . DblClick
在VB窗体中有一个对象.该对象的属性窗口如右图所示。下列说法中不正确的是(   )

A . Interval为属性名 B . 1680为属性值 C . 该对象的名称为Timer1 D . 该对象为窗体类型
某VB程序的一个事件过程如下:

Private Sub Command1_Click()

Dim a As Integer

a = Val(Text1.Text)

Text1.Text = Str(Sqr(a))

End Sub

程序运行时,单击命令按钮command1后弹出如图所示的错误信息提示。出现错误的原因是(    )

A . 变量a类型定义错误 B . 界面缺少文本框Text1 C . Command1属性设置错误 D . Sqr函数计算时出错
某VB程序代码如下:

Private Sub image1_click( )

   x=Val(Text1.Text)

   y=Val(Text2.Text)

   Label.caption=Str(x+y)

End Sub

关于该过程说法正确的是(  )

A . 程序运行时,若在Text1和Text中分别输入10、20,单击image1将在Label1中显示30 B . 程序运行时,双击对象image1,能触发该过程 C . Text1对象可能是标签 D . 对象image1肯定是按钮
下面有关属性的说法正确的是:(   )
A . 对象的属性只能在程序运行前设置 B . name属性可以在程序执行时改变 C . 文本框控件的text属性可以省略 D . label1.caption="1"和label1="1"作用不一样
如下图所示

  1. (1) 要在窗体上添加一个命令按扭,应在工具箱中选择的控件是(  )
    A . B . C . D .
  2. (2) 要把命令按扭的标题修改为“计算”,应修改的属性是(  )
    A . Height B . BackColor C . Caption D . Font
VB程序的工程文件名、窗体文件名以及生成的可执行文件名分别是(  )
A . .vb、.frm、.exe B . .vbw、.exe、.frm C . .vbw、.frm、.exe D . .vbp、.frm、.exe
数组a存储降序排列的m个数据,数组b中存储的是升序排列的n个数据,且两个数组中存储的数据为区间[1,20]范围内的不重复的随机整数。现将两个数组的数据合并到c数组中,使c数组的数据为左右交替上升,如下表所示:

a(1)

a(2)

a(3)

a(4)

a(5)

19

17

6

4

3

a数组

b(1)

b(2)

b(3)

b(4)

b(5)

b(6)

5

7

8

13

15

20

b数组

c(1)

c(2)

c(3)

c(4)

c(5)

c(6)

c(7)

c(8)

c(9)

c(10)

c(11)

3

5

7

13

17

20

19

15

8

6

4

c数组

当窗体Form1加载时,自动产生a、b数组的数据,并分别显示在列表框List1与List2中,单击合并按钮Command1后,在c数组中保存按规则合并后的a、b数组的数据,并显示在列表框List3中。程序截图如下所示:

实现该功能的VB程序如下:

Const m = 5

Const n = 6

Dim a(1 To m) As Integer

Dim b(1 To n) As Integer

Dim c(1 To m + n) As Integer

‘窗体加载时,生成数组a、b中的数据,并按要求排序后显示在列表框中,代码略

Private Sub Command1_Click()

Dim pa As Integer, pb As Integer, pc As Integer, s As Integer, flag As Boolean

pa = m: pb = 1: pc = 1

flag = True

Do While         ①        

    If a(pa) < b(pb) Then

        s = a(pa)

        pa = pa - 1

    Else

        s = b(pb)

        pb = pb + 1

    End If

    c(pc) = s

    If  flag Then

        pc = m + n - pc + 1

    Else

        pc =

    End If

            ②       

Loop

‘处理a、b数组中剩余数据,并在列表框List3中输出数组c,代码略

End Sub

  1. (1) 窗体加载的事件处理过程名为。(填字母:A .Form1_Click / B .Form_Click / C .Form1_Load / D .Form_load)
  2. (2) 加框处代码有错,请改正。
  3. (3) 在划线处填入合适的代码。

     ② 

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

图a

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

图b

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

    Private Sub Commandl_Click()

      Dim s As Siring, 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(e), Len(s)-n- Len(c)+1)

          End If

          ss = ss + "→" + s

          c = " ":num = " "

       End If

     Next i

      Labell.Caption=ss

    End Sub

  3. (3) 运行该程序,若文本框Text1中的内容是“April”,文本框Text2中的内容是“-3p+3ri-6e”,单击撤销按钮,For循环语句执行完成后,字符串s的值是“”。
矩阵斜线排序是指按斜线方向从小到大实现排序,如5*5矩阵斜线排序效果如下图所示。

小明使用VB实现该排序,设计功能如下:随机生成两位正整数并显示在List1中,单击按钮“Command1”后将排序完成的数据显示在List2中。界面如图所示。

请回答以下问题:

  1. (1) 更改窗体按钮Command1显示为“开始排序”,则需要设置它的属性。(单选,填写字母:A .Text/B .Caption/C .Name)
  2. (2) 请完善程序代码。

    Const n= 5      '矩阵大小

    Dim a(1To n*n) As Integer

    Private Sub Form_Load()

    '随机生成n*n的矩阵数据,并依次保存在数组a(1)~a(n*n)中

    '以n*n矩阵形式在list 1中显示数据,代码略

    End Sub

    Private Sub Command 1_Click()

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

      Dim startpos As Integer, endpos As Integer, s As String

      For i= 2 To 2*n-2

         If i<=n Then

          startpos=(i-1) *n+ 1

          endpos=i

       Else

          startpos=  ① 

          endpos=(i-n+1) *n

       End If

       Do While startpos>endpos

         ② 

         j=startpos-n+1

         Do While j>=endpos

           If a(j) <a(k) Then k=j

           j=j-n+1

       Loop

       If k<>startpos Then

           t=a(k) :a(k) =a(startpos) :a(startpos) =t

       End If

         start pos=startpos-n+ 1

        Loop

        Next i

        For i=1To n

          s=””

          For j=1To n

             s=s+  ③ 

         Next j

         List 2.Add Item s

      Next i

    End Sub

     ② ③ 

某加密算法对大写字母加密,其加密规则如下:密文的ASCII码值=明文的ASCII码值+密钥,加密后生成的密文仍为大写字母。其密钥是在3*3矩阵中获得,获得密钥的方式为:如字母“A”的ASCII码值为65,将65反复除3,其转换过程如图1所示,得到商为2,密钥在矩阵中所在行;得到余数2,密钥在矩阵中所在列;商或余数为0,密钥在矩阵中最后一行或最后一列。其程序运行界面如图2所示。

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

    Dim a(1 To 9) As Integer

    Private Sub Command1_Click()

    Dim column As Integer, row As Integer, t As Integer, tmp As Integer

    Dim s As String, ch As String, result As String

    s = Text1.Text: result = ""

    For i = 1 To Len(s)

      ch = Mid(s, i, 1): t =.

      column = (t - 1) Mod 3 + 1

      Do While t >= 3

        t = t \ 3

      Loop

        row =

        tmp = (Asc(ch) +  - 65) Mod 26 + 65

        result = result + Chr(tmp)

    Next i

    Text2.Text = result

    End Sub

    Private Sub Form_Load()      '用来生成3*3矩阵

    For i = 1 To 9

      a(i) = Int(Rnd * 9) + 1

      s = s + Str(a(i))

      If i Mod 3 = 0 Then

        List1.AddItem s

        s = ""

      End If

    Next i

    End Sub

  3. (3) 程序中加框处代码有错,请改正。
  4. (4) 根据程序的功能并结合图2,字母C加密后的密文为
小奕同学基于排序算法设计了一个数字矩阵排序的程序。程序界面如下图所示,在文本框中输入矩阵大小,点击“生成”按钮Command1,在左侧列表框List1中输出一个长宽均为指定大小的随机整数矩阵,随机整数范围为[1,99]。点击“排序”按钮Command2,结果输出在右侧列表框List2中,奇数行从左到右依次递增,偶数行从右至左依次递增,且保持输出矩阵的长宽不变。

  1. (1) 实现上述功能的VB程序如下,显示数据用的additem是一种(单选,填字母:A .属性名/B .事件名/C .方法名/D .过程名)。
  2. (2) 请在划线处填入合适的代码。

    Dim a (1 To 100) As Integer

    Dim n As Integer

    Function dq (s As String,L As Integer) As String     ‘自定义对齐函数

      Rem在输入的字符串s前加若干空格,输出长度为L的字符串,代码略

    End Function

    Private Sub Command1_Click()     ‘生成数字矩阵

    ‘随机生成n^2个数字,存储在数组a中,代码略

    ‘以一行n个,共n行的格式显示在List1中,代码略

    End Sub

    Private Sub Command2_Click     ‘数字矩阵排序

    Dim i As Integer,k As Integer,j As Integer,s As String

    Dim f As Boolean

    List2.Clear

    f = True

      For i = 1 To n^2 Step n

        s=“”

        For j = i To n

        k=n^2

        Do While

          If a(k) < a(k-1) Then

            t = a(k):a(k) = a(k-1):a(k-1) = t

          End If

          k = k-1

        Loop

        If f = True Then

          s=s+“”+dq(Str(a(j)),2)

        Else

          s=s+“”+dq(Str(a(j)),2)+s

        End If

        Next j

        List2.AddItems

       

      Next i

    End Sub

  3. (3) 程序中加框处代码有错,请改正。
编写VB程序,实现如下功能:在文本框Textl和Text2中分别输入一个整数,单击命令按钮Command1,在列表框List1中显示结果,运行效果如1图所示。结果包含两列数据,第1列为两数之间的摄氏温度值(间隔1度、升序),第2列为对应的华氏温度值。

1图

  1. (1) 要使命令按钮Command1上显示的文本改为“转换”,可在其属性窗口(2图)中将属性的属性值修改为“转换”。

    2图

  2. (2) 为实现上述功能,请在方框处填入合适代码。

    Private Sub Command1_Click()

    Dim t1 As Integer, t2 As Integer

    Dim i As Integer, t As Integer

    Dim f As Single

    List1.Clear

    t1 = Val(Text1.Text)

    t2 = Val(Text2.Text)

    If           ①          Then

      t = t1: t1 = t2: t2 = t

    End If

    i = t1

    Do While        ②           

      f = i * 9 / 5 + 32    '摄氏温度转换为华氏温度

      List1.AddItem Str(i) + " " + Str(f)

    Loop

    End Sub

  3. (3) 划线处填入合适的选项:

    A.i <= t2  B.f <= t2  C.t1 > t2  D. i < f

     ② 

凯凯学习了桶排序和冒泡排序,他发现桶排序占空间比较多而冒泡排序的效率又较低,于是他想到综合两个算法来对数据进行排序。凯凯对n个由二位数组成的数据进行排序,排序步骤如下:

1)以每个数的十位数来区分,放置到各个桶里(如图①);

2)分别对每个桶中的数据进行冒泡排序(如图②);

3)最后依次输出各个桶中的数据即可(如图③)。

图片_x0020_100010

Dim a(1 To 100) As Integer, b(1 To 100) As Integer

Dim c(0 To 10) As Integer Dim n As Integer

Private Sub Form_Load( )

'读取若干个二位数到a(i)中,并保存个数到n

End Sub

Private Sub Command1_Click()

    Dim i As Integer, t As Integer

    For i = 1 To n

        c(a(i) \ 10) = c(a(i) \ 10) + 1

    Next i

    c(0) = 1 : c(10) =        ①       

    For i = 1 To 9

        c(i) = c(i) + c(i - 1)

    Next i

    For i = 1 To n

        t = a(i) \ 10

        c(t) = c(t) - 1

               ②       

    Next i

    For i = 1 To 9

        Call px(c(i), c(i + 1) – 1)

    Next i

    For i = 1 To n

        List2.AddItem b(i)

    Next i

End Sub

Sub px(x As Integer, y As Integer)

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

    For i =

        For j = x To y - i

            If b(j) > b(j + 1) Then

                t = b(j): b(j) = b(j + 1): b(j + 1) = t

            End If

        Next j

    Next i

End Sub

  1. (1) 若要修改“桶排”按钮上显示的文字,应修改的属性名是
  2. (2) 加框处代码有错,请改正。
  3. (3) 请在划线处填入合适的代码。

     ② 

疫情期间,学校开展“教室就餐”,食堂提供A、B、C、D四种套餐,学生通过网络订餐,订餐后的数据都存在数据库中(如图a所示),已按班级由小到大排列,套餐字母均为大写。

现需要设计一程序,在窗体加载时,读取数据库中学生的订餐情况,以班级+姓名+订餐情况输出至列表框List1中,在文本框Text1中输人班级,单击命令按钮Command1统计该班级的订餐情况,程序运行如图b所示。

  1. (1) 将结果输出至列表框List2中,使用的语句为:List2.Addltem s。 其中“AddItem”是列表框类ListBox对象的(单选,填字母:A .属性名/B .过程名/C .方法名/D .事件名)。
  2. (2) 实现上述功能的VB程序段如下,请在画线处填入合适的代码。

    Dim xm(1 To 1000) As String, bj(1 To 1000) As Integer

    Dim tc1(1 To 1000) As String, tc2(1 To 1000) As String

    Dim n As Integer '学生总人数

    Private Sub Form_ Load( )

        '从数据库中按班级、学号有序地读取学生的姓名、班级、中午套餐、晚上套餐,

        '依次存人xm、bj、tc1、tc2数组中,在List1中显示,总人数存人n中,代码略

    End Sub

    Private Sub Command1_ Click( )

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

        Dim zc(1 To 4) As Integer, wc(1 To 4) As Integer        '用于统计套餐数量

        k = Val(Text1.Text)

        For i=1 To 4     '为数组赋初始值

            zc(i)=0:wc(i)=0

        Next i

        i=1:j=n        '查找班级里第一-位同学的序号

        Do While i<=j

            m=(i+j)\2

            If  Then i=m+1 Else j= m-1

        Loop

        For i=j+1 To n

            If bj(i) = k Then

                         '改错

               wc(fx(tc2(i)))= wc(fx(tc2(i))) + 1

            End If

            If  Then Exit For

        Next i

        's为班级订餐统计信息,代码略

        List2.AddItem s

    End Sub

    Function fx(a As String) As Integer              '将套餐字母转换为数字序号

       

    End Function

  3. (3) 程序中加框处代码有错,请改正:
趣味数学题:n的阶乘n!=1*2*3*4*5*…*n,当n≥5时,其结果末尾必然包含多个0,求n!(5≤n≤32 726)末尾包含0的个数。

算法思路:n较大时,n!的值将超出long类型范围,求出n!的结果再数0的个数不现实。那么末尾的0到底是从哪里来的?每一个因子5与任一偶数相乘就会产生一个0。所以末尾有多少0是由因子5的个数决定的,求出因子5的个数即是末尾0的个数。程序运行界面和代码如图所示。

  1. (1) 为使窗体加载时,窗体标题栏自动显示为“第14题程序”,则可以在过程(填写过程名)中添加代码:Form1. Caption="第14题程序"。
  2. (2) 实现上述算法的VB程序如下,请补充程序中画线处的代码。

    Private Sub Command1_Click()

    Dim n As Integer

    n=Val(Text1. Text)

    i=1

    Do While

        s=s+n\5^i

        i=i+1

    Loop

    List1. AddItem Str(n)+"!末尾包含0的个数:"+

    End sub

  3. (3) 根据上述算法,2018!末尾包含0的个数是个个。
阅读下列创建游戏窗口示例

import pygame

pygame.init()

screen=pygame.display.set_mode([600,400])

screen.fill((144,238,144))

img=pygame.image.load('ball.png')

screen.blit(img,[200,200])

pygame.display.update( )

input("运行完毕,请按回车键退出...")

下列说法错误的是(      )

A . 窗口的大小为800x600 B . 窗口中图“ball.png”的大小为200x200 C . 窗口的填充色为RGB(144,238,144) D . 以上都不对
袜子颜色配对问题。现有不同颜色的袜子若干(袜子的颜色用数字编号1~15表示),颜色相同的袜子才能组成一双,其中有几只袜子是落单的,现要求找出落单袜子的颜色以及能够配对的袜子数量。编写VB程序解决该问题,程序运行时,在文本框Text1中依次输人袜子的颜色编号(数据都用逗号分隔并以逗号结尾),单击“查找”按钮,在列表框List1中输出落单袜子的颜色编号,在标签Label1中显示能配对的袜子数量。运行界面如图所示,实现上述功能的VB程序如下。

请回答下列问题:

Const n=15

Private Sub Command1_ Click() 

  Dim a(1 To n) As Integer      '数组 a存放不同颜色袜子的数量,默认值为0

  Dim s As String, ch As String

  Dim c As Integer, i As Integer, t As Integer

    List1. Clear

    s= Text1. Text

    t=0:c=0:i=1

    Do While i <= Len(s)

        ch= Mid(s, i, 1)

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

            t=t * 10 + Val(ch)

        Else

            a(t)=   ① 

            t=0

        End If

        i=i+ 1

    Loop

    For i=1 To n

        If    ②    Then List1. AddIt-em"落单袜子的颜色为" + Str(i)

        c=

    Next i

    Label1. Caption="能配对的袜子有"+ Str(c) + "双"

End Sub

  1. (1) 写出VB代码中的方法名(只需填一个方法名);
  2. (2) 根据题意,请在划线处填入合适代码

     ② 

  3. (3) 加框处程序代码有错,请改正。
最近更新