posts - 70,comments - 80,trackbacks - 0

第二部分  Visual Basic 程序设计

一•  选择题 (用答题卡答题,答案依次填在 21~30 答题号内)

21.以下关于方法的叙述中,错误的是 ____________ 。

A.方法是构成对象实体的一个部分
B.方法是一种特殊的过程或函数 
C.调用方法的一般格式是:对象名称.方法名称[参数]
D.在调用方法时,对象名称是不可缺少的

22.创建应用程序的界面时,在窗体上设置了一个命令按钮,运行程序后,命令按钮没有出现在窗体上,可能的原因是 ____________ 。

A.该命令按钮的 Value 属性被设置为 False
B.该命令按钮的 Enabled 属性被设置为 False
C.该命令按钮的 Visible 属性被设置为 False
D.该命令按钮的 Default 属性被设置为 True

23.若需要在同一窗口内安排两组相互独立的单选按钮( OptionButton ),可使用 ____________ 控件将它们分隔开。

   ① TexBox      ② Picture    ③ Image     ④ Frame

   A. ①②   B. ②③   C. ②④   D. ③④

24.单击滚动条两端的箭头时,滚动条 Value 属性值的改变量由 ____________ 属性值决定。

A. LargeChange  B. Max    C. SmallChange  D. Min

25.设变量 D 为 Date 型、 A 为 Integer 型、 S 为 String 型、 L 为 Long 型,下面赋值语句中不能执行的是 ____________ 。

A. D=#12:30:00 PM#  B. A=”3277e 1” C. S=Now D. L=”4276D 3”

26.下面表达式中, ____________ 的值是整型( Interger 或 Long )。

  ① 36+4/2    ② 123+Fix(6.61)       ③ 57+5.5\2.5      ④ 356 & 21     ⑤ “374”+258         ⑥ 4.5 Mod 1.5

A.  ①②④⑥   B. ③④⑤⑥  C. ②④⑤⑥  D. ③⑥

27.在 Select Case X 结构中,描述判断条件 3 ≦ X ≦ 7 的测试项应该写成 ____________ 。

   A. Case 3 ≦ X ≦ 7          B. Case 3 ≦ X , X ≦ 7  
   C. Case Is ≦ 7 , Is ≧ 3     
D. Case 3 To 7

28.下面关于过程参数的说法,错误的是 ____________ 。

A.过程的形参不可以是定长字符串类型的变量
B.形参是定长字符串的数组,则对应的实参必须是定长字符串型数组,且长度相同
C.若形参是按地址传递的参数,形参和实参也能以按值传递方式进行形实结合
D.按值传递参数,形参和实参的类型可以不同,只要相容即可

29.下面有关文件管理控件的说法,正确的是 ____________ 。

A. ChDir 语句的作用是指明新的缺省工作目录,同时也改变目录列表框的 Path 属性
B.改变文件列表框的 FileName 属性值,仅改变列表框中显示的文件名,不会引发其它事件
C.改变驱动器列表框的 ListIndex 属性值,会改变 Drive 属性值并触发 Change 事件
D.单击目录列表框中某一项,会触发 Change 事件

30.以下有关 Line 划线方法的说明,错误的是 ____________ 。

A. Line 方法既可用于单个划线,也可用于连续划线
B. Line 方法中的 Step 选项用于指定由 CurrentX 、 CurrentY 属性决定的图形坐标位置
C. Line 方法划线的宽度由 DrawWidth 属性决定
D.当使用 F 选项时, Line 方法可用于绘制矩形

二、填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行)

1.执行下面的程序,单击窗体,则在窗体上显示的是 ____-1________
  Option Explicit
  Private Sub Form_Click()
    Dim a As Integer, b As Integer, c As Integer
    b = 6: c = 6.5
    a = b = c
    Print a
  End Sub

2.执行下面的程序,单击按钮 Command1 ,在窗体上显示的第一行是 ____0.6________ ,第二行是 ____1.8________ ,第三行是 _____5.4_______
  Option Explicit
   Private Sub Command1_Click()
     Dim x As Single, i As Integer
     x = 1.2
     For i = 1 To 3
       x = x * i
       Print fun1(x)
     Next i
  End Sub
  Private Function fun1(x As Single) As Single
    Static y As Single
    y = y + x
    fun1 = y / 2
  End Function

3.执行下面的程序后,单击按钮 Command1 ,则 N 的值是
____10________ , A 的值是 _____27_______ , B 的值是 _____9_______
  Option Explicit
  Dim n As Integer
  Private Sub Command1_Click()
    Dim a As Integer, b As Integer
    a = 2: b = 3
    For n = 1 To 6
      If n Mod 2 = 0 Then
        b = fun(n, a) + a
      Else
        a = fun(b, n) + b
      End If
    Next n
    Print n, a, b
  End Sub
  Private Function fun(x As Integer, y As Integer) As Integer
     x = y - 1 + n
     y = x + y - n
     fun = x + y
  End Function

4.执行下面的程序,单击按钮 Command1 ,窗体上显示的结果中 I 的值是 ____11________ , J 的值是 ____2________ , K 的值是 _____43_______
  Option Explicit 
  Private Sub Command1_Click()
    Dim i As Integer, j As Integer
    Dim k As Integer
    i = 1: j = 2
    k = fun(i, fun(i, j)) + i + j
    Print "i="; i; "j="; j; "k="; k
  End Sub
  Function fun(a As Integer, ByVal b As Integer) As Integer
    a = a + b
    b = a + b
    fun = a + b
  End Function

5.执行下面的程序,单击按钮 Command1 , A ( 1 , 1 )的值是 _____7_______ A ( 1 , 4 )的值是 _____1_______ , A ( 4 , 1 )的值是 ____16________ , A ( 4 , 4 )的值是 _____10_______
  Option Base 1
  Private Sub Command1_Click()
    Dim a() As Integer, i As Integer, j As Integer
    Dim k As Integer, n As Integer
    n = 4
    ReDim a(n, n)
    i = 1: j = n: a(i, j) = 1
    For k = 2 To n * n
      If  i + 1 > n Then
        i = n - j + 2: j = 1
      ElseIf  i + 1 <= n And j + 1 > n Then
          j = j - i: i = 1
      Else
          i = i + 1: j = j + 1
      End If
      a(i, j) = k
    Next k
    For i = 1 To n
      For j = 1 To n
        Print a(i, j);
      Next j
      Print
    Next i
  End Sub

o_05-1.JPG

  Option Explicit
  Private Sub Form_Click()
    Dim y As Single, t As Single, a As Single
    y = 2: t = 0
    Do
      
t = Sqr(2 + t)
      a = 2 / t
      If
Abs(a - 1) < 10 ^ (-5) Then Exit Do
      y = y * a
    Loop
    Print "pi="; y
  End Sub

7.本程序的功能是从给定的纯英文字符串中找出最长的一个按字母顺序排列的子串。程序界面参见图 1 。
  o_05-2.JPG

Option Explicit
Private Sub Command1_Click()
   Dim st As String
   st = Text1
   Text2 = max_st(st)
End Sub
Private Function max_st(st As String) As String
  Dim i As Integer, sta As String
  Dim p As String
  p = Mid(st, 1, 1)
  For i = 1 To Len(st) - 1
   If Asc(Mid(st, i + 1, 1)) - Asc(Mid(st, i, 1)) = 1 Then
     
p = p & Mid(st, i + 1, 1)
   Else
     If Len(p) > 1 And Len(p) > Len(sta) Then
     sta =
 p     


          

      End If
     
p = Mid(st, i + 1, 1)
   End If
  Next i
  If Len(p) > 1 And Len(p) > Len(sta) Then
     
max_st = p
  Else
     max_st = sta
  End If
End Function

8.下面程序的功能是找出由两个不同的数字组成的回文平方数。程序界面参见图 2 。
   Option Explicito_05-3.JPG
  Private Sub Command1_Click()
    Dim a(0 To 9) As Integer, i As Long, flg As Boolean
    Dim l As Long, j As Integer, sum As Integer

    For i = 10 To 1000
      l = i * i
      
Erase a
      Call
sub1((l), a, flg)
      If flg Then
       For j = 0 To 9
         sum = sum + a(j)
       Next j
       If sum = 2 Then
         List1.AddItem CStr(i) & "^2=" & Str(l)
       End If
      End If
      sum = 0
    Next i


     

   End Sub
  Private Sub sub1(x As Long, a() As Integer, bl As Boolean)
    Dim n As Integer, idx As Integer, i As Integer
    bl = False
    n = Len(CStr(x))
    For i = 1 To n / 2
      If
Mid(CStr(x), i, 1) <> Mid(CStr(x), n - i + 1, 1) Then
        Exit Sub
      End If
    Next i
    bl = True
    For i = 1 To n
      idx = x Mod 10
      
a(idx) = 1  
      x = (x \ 10)
    Next i
  End Sub

9.下面程序的功能是随机生成 10 个不同的两位数,从中找出所有互质数对。若两个数除了 1 以外没有其他公约数,这两个数就是互质数。其中函数 Rec 是一个递归函数。程序界面参见图 3 。
  Option Explicito_05-4.JPG
  Private Sub Command1_Click()
    Dim a(10) As Integer, i As Integer, j As Integer
    Dim n As Integer, k As Integer
    Randomize
    a(1) = Int(90 * Rnd) + 10
    Text1 = a(1)
   
  k = 1
    Do
  While k < 10
      n = Int(90 * Rnd) + 10
      If
  InStr   (Text1, CStr(n)) = 0 Then
        Text1 = Text1 & Str(n)
        k = k + 1
        a(k) = n
      End If
    Loop
    For i = 1 To 9
      For j = i + 1 To 10
        If Not rec(a(i), a(j), 2) Then
          List1.AddItem Str(a(i)) & Str(a(j))
        End If
      Next j
    Next i
  End Sub
  Private Function rec(n As Integer, m As Integer, k As Integer) As Boolean

   If k > n Then
    
rec = False
   Else
     If n Mod k = 0 And m Mod k = 0 Then
      rec = True
      
Exit Function
     Else
      
rec = rec(n, m, k + 1)
     End If
   End If
  End Function


 
        

 

 

 

 

 

posted on 2006-10-21 09:10 木子李 阅读(941) 评论(0)  编辑 收藏 引用 网摘 所属分类: Visual Basic 课堂

只有注册用户登录后才能发表评论。