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

“字符洗牌”程序模拟扑克洗牌的操作,为了打乱牌序,把手工的扑克牌中间抽一部分放到最上面,完成一次洗牌(如字串“1234ABCD”,若把中间的低给到第5个字符串抽出并保持原来的顺序放到前面,则一次洗牌操作后字符串变成“34A12BCD”也可以把扑克牌分成下两部分,把下面的部分放置到上面(如字符串“1234ABCD”,把第3个字符变成洗牌的目的,效果如图所示。

  1. (1) 若要把窗体的标题名称由“Form1”改为“字符洗牌”,应改变窗体的属性。
  2. (2) 完成上述功能的程序代码如下,请在画线处填入合适的代码。

    Private Sub Command1_Click()

      Dim r As Integer,k1 As Integer,k2 As Integer

      Dim s As String,n As Integer

        ①       ‘从文本框TxtIn中获取字符串

      Randomize

      r=Int(Rnd()*10)+1      ‘随机生成洗牌次数

      n=Len(s)

      Do While r>=1         ‘洗牌操作

        k1=Int(Rnd()*(n-2))+2

        k2=Int(Rnd()*(n-k1+1))+k1

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

        r=r-1

      Loop

              ‘在文本框TxtOut中输出结果

    End Sub

     ② 

  3. (3) 若加框处的语句改为TxtOut.Text=Str(s),则运行程序时会发生的错误消息为    (单选,填字母)

    A . B . C . D .
在Visual Basic中,语句Lab.Caption="你好"中的“Lab”是(       )
A . 属性值 B . 对象名 C . 属性名 D . 类名
某VB程序段如下:

Private Sub Command1_Click( )

Dim x As Integer

x = Val(Text1.Text)

x = x \ 2 + 1

Text1.Text = Str(x)

End Sub

程序运行时,在文本框Text1输入13时,连续两次单击命令按钮Command1后,文本框Text1中显示的内容是(   )

A . 6 B . 7 C . 4 D . 5
在VB中,某工程的代码窗口如图所示:

程序运行时,能触发“Label2.Caption=″*″”代码执行的事件是(  )

A . 单击Command1对象 B . 单击Command2对象 C . 单击Command3对象 D . 单击Command4对象
下列四个VB控件,具有数据输入功能的是(   )
A . 窗体 B . 文本框 C . 图片框 D . 命令按钮
模拟一个简单计算器,输入两个数和一个运算符(加、减、乘、除),进行算术运算,并输出运算结果。程序界面如下图所示,在文本框Text1输入第一个数a,在文本框Text2输入第二个数b,在文本框Text3输入运算符ch,在文本框Text4中输出结果。当输入的运算符不是加、减、乘、除四种运算符时,则输出“运算符不正确”;当进行除法运算时,如果除数为0,提示输出“除数不能为零”。相应的Visual Basic程序如下,

  1. (1) 观察程序设计界面,共有类对象具有Caption属性。
  2. (2) 实现上述功能的VB程序如下在划线处,填入合适的语句或表达式,把程序补充完整。

    Private Sub Command1_Click()

        Dim a As Single, b As Single, ch As String

        a = Val(Text1.Text)

        b = Val(Text2.Text)

           

        If ch = "+" Then

            Text4.Text = Str(a + b)

        ElseIf ch = "*" Then

            Text4.Text = Str(a * b)

        ElseIf ch = "-" Then

            Text4.Text = Str(a - b)

        ElseIf ch = "/" Then

            If Then Text4.Text = Str(a / b) Else Text4.Text = "除数不能是零" 

        Else

            

        End If

    End Sub

编写“矩形面积”程序,实现如下功能:按一定比例随机生成a(1)至a(100)数组元素的值:0或1(0多1少);将这100个数组元素,按行依次转化为10×10的二维阵列; 当数组元素的值为0 时显示成“□”,当数组元素的值为1时显示成“◆”,并在列表框 List1中输出。寻找阵列中,由“□”字符构造出的最大面积的矩形,在标签Label1中显示最大面积所占的单位数。程序运行界面如图所示。

实现上述功能的VB代码如下:

Dim a(1 To 100) As Integer Private Sub Command1_Click()

Dim i As Integer, s As Integer, smax As Integer ‘用于随机生成数据,并将阵列按规则在列表框中输出,该部分功能的代码略。

smax = 0

For i = 1 To 100

If a(i) = 0 Then s = search(i) If s > smax Then smax = s

Next i

Label1.Caption = "最大面积的矩形,占" + Str(smax) + "个单位。" End Sub

Function search(i As Integer) As Integer

Dim x As Integer, x1 As Integer, xend As Integer Dim y As Integer, y1 As Integer

Dim s As Integer

x = (i - 1) Mod 10 + 1   '起始列号 y = (i - 1) \ 10 + 1    '起始行号 x1 = x

y1 = y xend = 10

search = 0

Do While y1 <= 10

If a((y1 - 1) * 10 + x) = 1 Then Exit Do   '判断 x1 = x

Do While x1 <= xend

If a((y1 - 1) * 10 + x1) = 1 Then

x1 = x1 – 1   '改错

Else

x1 = x1 + 1

End If Loop

y1 = y1 + 1

s = (x1 - x) * (       )   '填空 If s > search Then search = s

Loop

End Function

请回答下列问题:

  1. (1) 根据程序的运行界面,没有 Caption 属性的控件为类(单选,填字母: A .窗 体/ B .命令按钮/ C .列表框/ D .标签)。
  2. (2) 程序代码中,去除“判断”处语句,是否会影响程序的结果(选填:是/否)。
  3. (3) 程序代码中,“改错”处的语句有误,请改正。
  4. (4) 程序代码中,将“填空”处的语句补充完整。
属性窗口中没有的是(  )
A . 对象下拉列表框 B . 标题栏 C . 选项卡 D . 按钮
多数高次方程不存在求根公式,求精确根非常困难,因此寻找方程的近似根就显得特别重要。由于数轴上的点是有序的,所以我们可以用对分查找法找出高次方程在某一区间的实根,即:不断地将区间对分,使得区间中点的值不断逼近方程的根,当区间小于精度的时候我们就停止对分,并用此时区间的中点值作为方程的根。

现有三次方程y=5x^3-55x^2+170x-130,其函数图象如图所示:

观察该函数图象发现函数有一实根在区域(1.2)之间,因此我们取两者的中点m=(1+2)/2代入方程进行检测发现f(1.5)=18.125。因为f(1.5)>0,因此区间应该往左移动,得下一个区间(1,1.5)然后继续进行检测。如果区间差值≤误差率,则认为该中点是方程的根。根据上述方法描述设计一个VB求解程序的根,要求单击求解按钮Command1,在文本框Text1中显示方程的根,部分程序如下。

  1. (1) 代码“PrivateSubCommand1_Click()”中的Command1_Click()是(单选,填字母:A.对象名/B.事件名/C.事件处理过程)
  2. (2) 将划线处的代码补充完整。

    PrivateSubCommand1_Click()

    DimiAsDouble,jAsDouble,mAsDoubleDimrAsDouble,yAsDouble

    i=1:j=2:y=1:r=j-iDoWhiley<>0Andr>0.00001

    m=(i+j)/2

    y=

    Ify>0Then

    j=m

    ElseIfy<0Then

    i=m

    EndIf

    Loop

    Text1.Text=m

    EndSub

数组元素a(1)~a(100)用以存储某班级50位学生的信息技术和通用技术成绩,奇数位置存储信息技术成绩,偶数位置存储对应学生的通用技术成绩。该数组已经按照两科总成绩升序排序。依据对分查找思想,设计一个在数组a中查找总成绩为key的程序,统计输出两科总成绩大于等于key的人数。部分运行界面如图所示:

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

Private Sub Command1_Click()

Dim a(1 To 100) As Integer

Dim sum As Intcger

Const t= 50

‘将50个学生的信息技术和通用技术成绩依次存储在数组a(1)~a(100),代码略

Key = Val(Text2.Text)

i= 1

j= 100

m=(i+j)\2

Do While   ①   And m>1

    If m Mod 2=1 Then m= m- 1

    sum = a(m)+ a(m- 1)

    If  ②  Then

        j=m-2

    Else

       

    End If

    m=(i+j)\2

Loop

Label2.Caption "大于等于"& Key & "分的人数为: "+ Str(t-j\2)

End Sub

  1. (1) 代码"Private Sub Command1_Click()"中的Command1_Click()是(单选,填字母:A .对象名/B .属性名/C .事件名/D .事件处理过程明)。
  2. (2) 请在①②划线处填入合适代码。

     ② 

  3. (3) 加框出代码有错,请改正。
(加试题)在学校操场的一边摆放着m堆石子。现在校学生志愿队接到一项任务,要将石子有次序地合并成一堆。每堆石头的重量为a(1)、a(2)、…、a(m)。规定每次只能选相邻的2堆石子合并成新的一堆。由于每次合并都需要搬运石头,非常考验体能。假设合并石子堆消耗的体能值为两堆石头的重量之和。例如将重量为8、8、5的三堆石头合并时,先将8和5的两堆合并,消耗体力13,再将13和8两堆合并,消耗体力21,于是总的体力消耗值为34。经过志愿队队长的分析,每次将最轻的两堆石子合并,可以使消耗的总体能最小。现编写一段VB了程序用于求解这n堆石子合并后需要消耗的体能总和的最小值。
  1. (1) 要使得程序的按钮上中显示“石子合并”,可修改窗体的属性(单选,填字母:A .Text/B .Form/C .Caption)。
  2. (2) 实现上述功能的VB程序如下,请在①②③划线处填入合适的代码。

    '读入m的值和m堆石子的重量依次存入a(1)……a(m),数据结构的定义略

    Private Sub Command1_Click()

    For i=1 To m

      For j=i To 2 Step-1

         If a(j)>a(j-1) Then

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

         End If

       Next j

    Next i

    sum= 0

    Do While   ① 

        a(m-1)=a(m-1)+a(m)

        m=m-1

        sum=sum+  ② 

        For i=  ③   To 2 Step-1

            If a(i)>a(i-1) Then

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

        End If

      Next i

    Loop

    Label 1.Caption=sum

    End Sub

     ② ③ 

有一个报数游戏,n个人排成一圈,游戏开始时规定个报数号m,然后从其中一个人开始按顺时针报数1,2,3,…,n,当某人报到的数为m的倍数时,即被淘汰,其他人继续游戏,直到最后。现用VB设计了一个程序,程序界面如下图所示。在文本框Text1中输入参加游戏的人数n,在文本框Text2中输入报数号m,单击“报数”按钮,即在列表框List1中显示每次被淘汰的人的顺序号。

实现上述功能的VB代码如下,但加框处有错,请改正。

Private Sub Command1_Click()

Dim n As Integer, m As Integer

Dim a(1 To 50)As Integer

n= Val(Text1. Text)

m= Val(Text2. Text)

For i= 1 To n

Next i

s=0;j=0

Do While s <n

t=0

Do While t <m

     ①   

t=t+ a(j)

Loop

a(j)=0

s=s+1

List1. Additem"第"+Str(s)+"次:"+Str(j)

Loop

End sub

  1. (1) “报数”按钮的对象名称是
  2. (2) 程序代码中,加框处有错,请改正。
  3. (3) 程序代码中,将①处语句补充完整。
  4. (4) 程序运行结束后,变量t的值是
在VB中,如果要在窗体对象Form1上显示文字“我的程序”,则下列正确的是(  )
A . Form.Caption="我的程序" B . Forml.Caption="我的程序" C . Form.Text="我的程序" D . Form1.Text="我的程序"
(消失的pigs)用VB编写程序实现:从某一字符串中删除指定的字符串,并将处理后的字符串重新输出。程序界面如图1所示,在文本框Text1中输入原始字符串,在文本框Text2中输入需要删除的字符串,单击“删除字符串”按钮Command1后,在文本框Text3中输出处理后的结果。

图1

  1. (1) 在设计应用程序界面时,应使用图2所示“控件工具箱”中的(填写相应编号)添加按钮。

    图2

  2. (2) 窗体按钮上显示的文字“删除字符串”是需要修改按钮Command1的属性值修改为“删除字符串”。
  3. (3) 为实现上述功能,请在划线处填入合适的代码。

    Private Sub Command1_Click()

      Dim s As Integer, r As Integer, c As Integer

      Dim source As String, delstr As String, ch As String

      c = 0: i = 1

      source = Text1.Text:delstr = Text2.Text

      s = Len(source)

      r = Len(delstr)

      Do While s-i+1 >= r

        ch = Mid(source, i, r)

        If ch = delstr Then

            source = Mid(source,1, i-1) +

            s = Len(source)

             

        Else

            i = i + 1

        End If

      Loop

      Label4.Caption = "共删除:" + Str(c) + "处"

      Text3.Text = source

    End Sub

某单位招聘人员,根据应聘人员的笔试成绩从高到低取一定比例的人员进入面试,若按比例计算出的人数为小数,则直接取整(不四舍五入),若进入面试的最后1名有多个同分人员,同分人员也进入面试。程序运行界面如下,请完成后面的小题:

  1. (1) 程序运行时自动清空文本框Text1中显示的内容,应该在            事件处理过程执行相关命令
    A . Form_load B . Text1_Change C . Command1_Click
  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

    '人员编号和笔试成绩分别存储到数组变量id 和score中,应聘总人数存储在变量n中面试比例在文本框Text1中输入,所输入比例值必须使面试人数大于1且小于n,代码略。

    Private Sub Command1_Click( )

        Dim i As Integer, j As Integer, st As String, t As Integer

        For i = 1 To n - 1             '按笔试成绩从高到低排序

            k = i

            For j = i + 1 To n

                If  Then k = j

            Next j

            If k <> i Then

                st = id(k): id(k) = id(i): id(i) = st

                t = score(k): score(k) = score(i): score(i) = t

            End If

        Next i

        num =

        j=num+1

        Do while j<=n

            If  Then Exit Do

            j=j+1

        Loop

        For k=

            List2.AddItem Str(k) + " " + id(k) + " " + Str(score(k))

        Next k

    End Sub

  3. (3) 程序中加框处代码有错,请改正
用英文字母 A~D 对数字字符 0~9 进行编码, 规则如下表所示:

数字字符

0

1

...

7

8

9

二进制值

0

0

0

0

0

0

0

1

...

0

1

1

1

1

0

0

0

1

0

0

1

十进制值

0

0

0

1

...

1

3

2

0

2

1

对应编码

A

A

A

B

...

B

D

C

A

C

B

例如, 数字字符串“709”的编码为“BDAACB”。用VB程序实现上述编码,功能如下:在文本框Text1中输入编码的一串数字字符,单击“编码”命令按钮Command1,在文本框Text2中显示编码结果。程序运行界面如图所示。

  1. (1) 若要将按钮中的“编码”二字替换成“字符编码”,应修改其对应的属性。
  2. (2) 下列属于VB窗体文件的是           (单选, 填字母)。
    A . szbm.vbp B . szbm.frm C . szbm.exe
  3. (3) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

    Private Sub Command1_Click( )

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

        Dim i As Integer, numL As Integer, numR As Integer

        Dim flag As Boolean

        code = "ABCD"

        s = Text1.Text

        flag = True

        result = ""

        For i = 1 To

            

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

                flag = False

                Exit For                   ' 退出循环

            Else

                numL = Val(ch) \ 4

                numR =

                result = result + Mid(code, numL + 1, 1) +

            End If

        Next i

        If flag Then

            Text2.Text = result

        Else

            Text2.Text = "输入错误"

        End If

    End Sub

  4. (4) 运行该程序,若在文本框Text1中输入“58”,单击“编码”命令按钮Command1,在文本框Text2中显示编码结果为
窗体上有一个图片框Picture1,两个命令按钮Command1和Command2,如图所示。当单击命令按钮Command1时,在图片框中画出正弦函数,当单击命令按钮Command2时,清空图片框中的图像,请填空。

Private Sub Command1_Click()

    Picture1.Scale (-6, 6)-(6, -6)

    Picture1.DrawWidth = 5

    For i = -6 To 6 Step 0.0001

        Picture1.  (i,)

       

End Sub

Private Sub Command2_Click()

    Picture1.

End Sub

当CHECK1被选中时,其VALUE属性取值为(     )
A . 1 B . 0 C . TRUE D . FALSE
下列叙述正确的是(      )
A . 单选按钮被选中时其VALUE的值为1 B . 单选按钮被选中时其VALUE的值为TRUE C . 复选框被选中时其VALUE的值为TRUE D . 复选框被选中时其VALUE的值为0
在Visual Basic中,某对象属性窗口的部分信息如图所示。下列说法正确的是(    )

A . Command1是对象名 B . True为属性名 C . Font为属性值 D . 该对象的宽度值为495
最近更新