内容发布更新时间 : 2025/10/31 18:46:37星期一 下面是文章的全部内容请认真阅读。
5.按如下要求书写函数过程定义的首语句,即Function MyF(a Private Command1_Click( ) as int,b(n)as int) 定义语句,要求为:形参有两个a为整型,b为一位整型数组,函数过程名为MyF,函数返回值为逻辑型。
6.滚动条产生Change事件是因为 Value 值改变了。 7.如果要每隔15s产生一个计时器事件,则Interval属性应设置为 15000 。
8.在VB中,除了可以指定某个窗体作为启动对象之外,还可以指定 Main子过程 作为启动对象。
9.用Show方法显示自定义对话框时,如果Show方法后带 vbModal 参数就将窗体作为模式对话框显示。
10.容器的实际可用高度和宽度由 右 和 上 属性确定。 11.使用Circle方法正向采用 逆 时针方向。
12.启动窗体时,为了初始化窗体中的各控件,可选作窗体的____load_____事件。
13.结构化程序设计中,三种基本结构是___分支结构______、__顺序结构______和循环结构。 三、编程应用题 1.程序阅读
(1)Private Sub Command1_Click() Dim x() As Integer Dim n%, i% n = 10
ReDim x(n - 1) x(0) = 1 x(1) = 1
For i = 2 To n - 1
x(i) = x(i - 1) + x(i - 2) Next i
For i = 0 To n - 1 Print x(i),
If (i + 1) Mod 5 = 0 Then Print Next End Sub
输出结果:
1 1 2 3 8 13 21 34 (2) Public Function f(m%, n%) Do While m< >n
Do While m> n: m=m-n: Loop Do While m< n: n=n-m: Loop Loop f=m End Function
Print f(24, 18) End Sub 输出结果:6 (3)
Public x as Integer Private Sub Fomr_Click( ) Dim x as Integer x=10
print "x=";x End Sub 输出结果: x=10 2.补充程序
(1)以下是冒泡法排序的程序,要求将数组里的数按升序排列,将其补充完整。
Private Sub Command1_Click()
Dim a(), iMin%, n%, i%, j%, t% a = Array(8, 6, 9, 3, 2, 7)
n = ubound(a) ' 获得数组的下标上界 For i = 0 To n - 1 For j = 0 To n-i-1 If a(j)>a(i) Then
t = a(j): a(j) = a(j + 1): a(j + 1) = t End If Next j Next i For i = 0 To n Print a(i); Next i End Sub
(2) 用递归的方法求n! Private Sub Command1_Click() Print \ End Sub
Public Function fac As Integer If n = 1 Then fac = 1 Else
Fac=fac*n End If End Function
VB程序设计试题及答案(三) 一、单选题
5
1. Visual Basic是一种面向对象的可视化程序设计语言,采取了 A 的编程机制。
(A) 事件驱动 (B) 按过程顺序执行 (C) 从主程序开始执行 (D) 按模块顺序执行
2. 若要使标签控件显示时不覆盖其背景内容,要对 D 属性进行设置。
n=n*j n=n*j Next j Next j Print n Print n Next I Next i (C) n=1 (D) n=1 (A) Backcolor (B) BorderStyle (C) Forecolor (D) Backstyle
3. 在Visual Basic中最基本的对象是 C ,它是应用程序的基石,是其他控件的容器。
(A) 文本框 (B) 命令按钮 (C) 窗体 (D) 标签
4. 要判断在文本框是否按下Enter键,应在文本框的 D 事件中判断。
(A) Change (B)KeyDown
(C) Click (D)KeyPress
5. 数学表达式3≤x    (A) 3<=x<10                                       (B) 3<=x AND x>10    (C) x>=3 Or x<10                                (D) x>=3 AND x<10  6. Rnd函数不可能为下列     B   值。     (A) 0             (B) 1                  (C) 0.1234          (D) 0.0005  7. 赋值语句:a=123+Mid(\,3,2)执行后,a变量中的值是   D      。     (A) \(B) 123             (C) 12334             (D) 157  8. 对于语句If x=l Then y=l,下列说法正确的是    C     。    (A) x=l和y=l均为赋值语句    (B) x=l和y=l均为关系表达式    (C) x=l为关系表达式,y=l为赋值语句    (D) x=l为赋值语句,y=l为关系表达式  9. 下面程序段表示求两个数中的大数,    D     不正确。     (A) Max=IIf(x>y,x,y)                (B) If x>y Then Max=x Else  Max=y     (C) Max=x                            (D) Ify>=x Then Max=y       If y>=x Then Max=y                    Max=x  10.当在文本框中输入“ABCD”4个字符时,窗体上显示的是   C      。        Private Sub Text1_Change( )           Print Text1;        End Sub  (A) ABCD        (B) A           (C) AABABCABCD       (D) A                                   B                                                                 AB                                   C                                                                ABC                                   D                                                                ABCD  11.下列哪个程序段不能分别正确显示1!、2!、3!、4!的值       B      。  (A) For i=1 to 4                                     (B) For i=1 to 4           n=1                                                    For j=1 to i           For j=1 to I                                           n=1           For j=1 to4                                         j=1              n=n*j                                            Do While j<=4             Print n                                                      n=n*j         Next j                                                            Print n                                                                              j=j+1                                                                   Loop  12.如下数组声明语句,则数组a包含元素的个数有    A     。         Dim a(3, -2 to 2, 5)    (A) 120              (B) 75            (C) 60            (D) 13 13.以下程序的输出结果是   D      。         Dim a         a=Array(1, 2, 3, 4, 5, 6, 7)        For i=Lbound(a) to Ubound(a)          a(i)=a(i)*a(i)        Next i        Print a(i)    (A) 49        (B) 0              (C) 不确定           (D) 程序出错  14.在过程中定义的变量,若希望离开该过程后,还能保存过程中局部变量的值,则应使用关键字    D     在过程中定义局部变量。   (A) Dim             (B) Private             (C) Public              (D) Static 15.如下程序,运行的结果是     B    。          Dim a%, b%, c%         Public Sub p1(x%, y%)          Dim c%           x=2*x: y=y+2: c=x+y        End Sub         Public Sub p2(x%, ByVal y%)          Dim c%           x=2*x: y=y+2: c=x+y        End Sub         Private Sub Command1_Click( )          a=2: b=4: c=6          Call p1(a, b)           Print “a=”; a; “b=”; b; “c=”; c          Call p2(a, b)           Print “a=”; a; “b=”; b; “c=”; c        End Sub  6       (A) a=2  b=4  c=6                                      (B) a=4  b=6  c=10          a=4  b=6  c=10                                       a=8  b=8  c=16    (C) a=4  b=6  c=6                                      (D) a=4  b=6  c=14          a=8  b=6  c=6                                         a=8  b=8  c=6  16.复选框的Value属性为1时,表示    B     。    (A) 复选框未被选中                                    (B) 复选框被选中   (C) 复选框内有灰色的勾                             (D) 复选框操作有误  17.下面关于菜单的说法中,错误的是   B      。   (A)每个菜单项都是一个控件与其他控件一样也有自己的属性和事件    (B) 除了Click事件之外,菜单项还能响应其他的,如DbClick事件    (C) 菜单项的快捷键不能任意设置    (D) 在程序执行时,如果菜单项的Enabled属性为False,则该菜单项变成灰色,不能被用户选择  18.下面关于多重窗体的叙述中,正确的是     B    。 (A) 作为启动对象的Main子过程中能放在窗体模块中 (B) 如果启动对象是Main子过程,则程序启动时不加载任何窗体,以后由该过程根据不同情况决定是否加载或加载哪一个窗体  (C) 没有启动窗体,程序不能执行 (D) 以上都不对  19.当用户将焦点移到另一个应用程序时,当前应用程序的活动窗体将   D      。 (A) 发生DeActivate事件 (B) 发生LostFocus事件  (C) 发生DeActivate和LostFocus事件 (D) DeActivate和LostFocus事件都不发生 20.顺序文件是因为     D    。  (A) 文件中的数据按每行的长度从小到大排序好的 (B) 文件中的数据按某个关键数据项从大到小进行排序 (C) 文件中的数据按某个关键数据项从小到大进行排序 (D) 数据按进入的先后顺序存放的,读出也是按原写入的先后顺序读出  21.文件号最大可取值为     B    。  (A) 255              (B) 511           (C) 512          (D) 256 22.Print #1, STR$1中的Print是    A     。  (A) 文件的写语句                         (B) 在窗体上显示的方法   (C) 子程序名                                (D) 以上均不是   23.以下的属性和方法中     C    可重定义坐标系。 (A)Drawstyle属性                          (B) DrawWidth属性   (C) Scale方法                                (D) ScaleMode属性 24.封闭图形的填充方式由下列    C     属性决定。 (A) DrawStyle, DrawMode                     (B) AutoRedraw, ClipControls    (C) FillStyle, FillColor               (D) ForeColor, BorderColor 25.下列字符串中,   D     不包含在ADO数据控件的ConnectionString属性中。 (A) Microsoft Jet 4.0 OLE DB Provider (B) Data Source=C:\\Mydb.mdb (C) Persist Security Info=False (D) 2-adCmdTable 二、填空题  1.在代码窗口对窗体的BorderStyle、MaxButton属性进行了设置,但运行后没有效果,原因是这些属性   在运行时设计是无效的      。  2.在文本框中,通过   SelStart      属性能活得当前插入点所在的位置。  3.表达式Ucase(Mid(“abcdefgh”, 3, 4))的值是    CDEF     。 4.已知a=3.5,b=5.0,c=2.5,d=True,则表达式:a>=0 And a+c>b+3 Or Not d的值是   False      。  5.要获得动态数组的上界通过    UBound   函数,下界通过  LBound    函数。  6.由Array函数建立的数组,其变量类型必须是   variant      类型。  7.VB中的变量按其作用域分为全局变量、模块变量和   局部变量      变量。  8.复选框的   Value     属性设置为2——Grayed时,变成灰色,禁止用户选择。  9.滚动条响应的重要事件有  Scroll    和Change。 10.假定有一个通用对话框控件CommonDialog1,除了用COmmonDialog1.Action=3显示颜色对话框之外,还可以用    showcolor     方法显示。  11.窗体Form1的左上角坐标为(-200, 250),窗体Form1的右下角的坐标为(300, -150),则X轴的正向向   右      ,Y轴的正向向    上     。  12.使用Circle方法画扇形,起始角、终止角取值范围为   0~2π      。  13.在运行状态改变ADO数据控件的数据源连接属性后,必须使用    Refresh     方法激活这些变化。 14.VB中工程文件的扩展名为    vbg     。  15.如果在窗体上已经创建了一个文本框对象Text1,可以通过  Keypress       事件获得输入键值的ASCII码。  7  16.VB中对象的三要素是   属性      、   事件      和   方法      。  三、编程应用题 1.程序阅读  (1) Private Sub Command1_Click( )          Dim s as String, i%          s="abcd"           For i=Len(s) to 1 step -1               Print Mid(s, i, 1)          Next i        End Sub  输出结果:  d          c         b         a (2)         Sub Swap1(ByVal x%, ByVal y%)         Dim t%          t = x: x = y: y = t     End Sub      Sub Swap2(ByRef x%, ByRef y%)         Dim t%          t = x: x = y: y = t     End Sub  Sub Command1_Click()           Dim a%, b%          a = 10:   b = 20          Print \调用Swap1前 a和b的值为:\ a; b         Call Swap1(a, b)          Print \调用Swap1后按传值方式 a和b的值为:\ a; b         a = 10: b = 20         Call Swap2(a, b)          Print \调用Swap2后按传地址方式 a和b的值为:\ a; b End Sub 输出结果     调用Swap1前 a和b的值为:10  20     调用Swap1后按传值方式 a和b的值为:10  20    调用Swap2后按传地址方式 a和b的值为: 20   10 (3)          Private Sub Command1_Click( )            Dim x%, y%, z%          x=242: y=44          z=x*y           Do Until x=y                If x>y Then x=x-y Else y=y-x          Loop           Print x, z/x        End Sub  输出结果: 22          484 2.补充程序  (1) 以下是求1~18之间某个数的阶乘的程序,具体的数值n由滚动条HScroll1获得,结果显示在窗体下部的两个Label标签里。补充完整如下程序。   Private Sub HScroll1_Change()     Dim i As Integer, s As Double     s = 1      n = Hscroll1.Value                     If n <> 0 Then         For i = 1 To n             s = s*i                 Next i     End If      Label2.Caption = n & \    Label3.Caption = s End Sub  (2)以下程序的功能是:已知数组a,删除数组中某个元素。         Private Sub Command1_Click( )           Dim a( ), key%, i%, j%           a=Array(1, 6, 8, 3, 5, 9, 10, 2, 4, 7)          key=9           For i=0 to UBound(a)               If  a(i)=9           Then                 For j=i+1 to UBound(a)                         a(j)=a(j+1)                           Next j                  ReDim      a(j)=a(i)                          MsgBox("删除完成")                 Exit Sub               End If          Next i           MsgBox("找不到要删除的元素")        End Sub  读程序并填空  8  1.给定程序的功能是输出一组数的最大值和最小值,在画线处填入适当内容,将程序补充完整。   Private Sub      End Function  4.给定程序的功能是建立并输出除主、副对角线上的元素为5外,其余元素都为1的方阵,在画线处填入适当内容,将程序补充完整。   Command1_Click( )      X=Array( -112, 18, 20, -5, -100, 82, 91, 56, 78, 99,  Private Sub Command1_Click( ) 100)      Max=x( 0 )     Min=x( 0 )     For I=1 To 10       If x( I )>Max Then         _____________       End if        If x( I )>Min Then         _____________       End if     Next  I     Print “MAX=” ; Max , “MIN=” ; Min   End  Sub  2.若A2+B2+C2 , 则A,B,C称为一组勾股数,如下程序是找出100以内的所有勾股数,并按A,B,C顺序输出。请在画线处填入适当内容。  Private Sub Command1_Click( )   For A=2 To 99     For B=A+1 To 100     C=_____________      If ____________ And  C<=100  Then       Print A, B, C     End If    Next  B  Next  A End Sub  3.本程序的功能是计算输入数的阶乘,请在画线处填上适当的内容使程序完整。     Private Sub form_Click( )      Do           N=Val(InputBox(“请输入一个大于0的整数:”))       Loop Until N>0      Print Fact( N)     End Sub     Private Function Fact( M )      Fact= _______________(1分)      For I=2  To  ____________(2分)         Fact = ______________(2分)      Next I      Dim A( 10,10 )    For I=1 To 10     For J=_______________(2分)     If  __ _____________ Then A( I, J )=5 Else A( I, J)=1  (1分) Next J Next I For I=1 To 10    For J=1 To 10    Print A( I, J ); Next  J  __ __________        (2分) Next  I    End  Sub  编写一个程序,在程序运行时输入一个0—99999之间的整数,判断输入的是几位数,并在窗体输出结果。             编写一个程序,在窗体上添加两个命令按钮,运行程序时,单击[开始]按钮,在窗体输出1~100之间所有能被3整除的数。单击[结束]按钮,结束程序。    9