posts - 70,comments - 80,trackbacks - 0

第二部分 Visual Basic 程序设计

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

21.在VB中,下列关于控件的属性或方法中,搭配错误的有(21)个。
  1)Timer1.Interval    2)List1.Cls      3) Text1.Print
  4)List1.RemoveTtem    5)Vscroll1.Value   6)Picture1.Print
  A. 0     B . 1     
C. 2
        D. 3

22.下面所列的控件中,其值既能在程序设计时设定,又能在程序运行时通过赋值改变的是(22)。
  A.List1.ListCount   B.Text1.Index   C. Dir1.Path 
D.Label1.Visible

23.下面(23)语句,可以将列表框List1中的当前选定的列表项的值替换成”ABC”.
A.List1.AddItem”ABC’,List1.ListIndex       B.List.Text=”ABC”
C.List1.List(List.ListIndex)=”ABC”         D.前三项均可

24.函数CInt(-3.5),Int(-3.5),Fix(-3.5)的值分别是(24)。
  A.-3 ,-4 , -3    
B.-4 , -4 ,-3     C.-3 , -4 , -4     D.-4, -3 , -3

25.设整形变量a、b 的当前取值分别为200与20,以下赋值与句中不能正确执行的是(25)。
  A. Text1=a/b*a            
B. Text1 = a*a/b
  C. Text1 = “200”*a/b      D. Text1 = A & b & a

26.对正实数X 的第四位小数四舍五入的VB表达式是(26)。
  A.0.001*Int(x+0.005)       B.0.001*(1000*x+0.5)
 C.0.001*Int(1000*x+5)       
D.0.001*Int(1000*(x+0.0005))

27.下列有关数组的说法中,不正确的是(27)。
  A.在窗体模块中不可以定义全局数组
  
B. 可以使用Erase语句释放所有数组所占据的存储空间
  C. 语句Dim X(3.6+2)As Integer定义了一个维上界是6的一维德整形数组
  D. 形参数组的类型可以是定长字符串类型

28.根据控件有下列(28)属性,就能判断该控件是否可以和数据控件绑定。
  1) RecordSource   2)DataSource   3)DataField    4)DatabaseName
  A. 1) 3)    
B. 2) 3)       C. 3) 4)      D. 1) 4)

29.窗体上放置有名为Drive1与Dir1的驱动器列表框与文件夹列表框,需要在选定驱动器列表框中的列表项时,文件夹列表框中的内容随之改变,正确的语句及语句的位置是(29)。
   A.Dir1.Path = Drive1.Path ‘位于Drive1_Change()过程
   B. Dir1.Path = Drive1.Path ‘位于Dir1_Change()过程
  
 C. Dir1.Path = Drive1.Drive ‘位于Drive1_Change()过程
   D. Dir1.Path = Drive1.Drive ‘位于Dir1_Change()过程

30.执行下面的程序段,结果是(30)。
  X = Width/2:Y = Height/2
  Picture1.Line(X,Y)-(X,Y -2000)
  Picture1.Line(X,Y + 2000)-(X,Y)
  Picture1.Line – (X – 2000,Y)
 
 A. 在图片框中画形如┫的交叉直线
   B. 在图片框中画形如┣的交叉直线
   C. 在图片框中画形如┳的交叉直线
   D. 在图片框中画形如┻的交叉直线

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

1.执行Command1_Click实践过程后,显示在窗体上的第一行内容是 CUPMOT ,第二行内容是 COPMUT ,第三行内容是 COMPUT
Private Sub Command1_Click()
Dim i As Integer, s As String, k As Integer

s = "TUPMOC": k = Len(s)
For i = 1 To k / 2

Mid(s, i, k - 2 * (i–1)) = Mid(s, k + 1 - i, 1) & Mid(s, i + 1, k - 2 * i) & Mid(s, i, 1)
Print s
Next i
End Sub

 

2.运行下面的程序,当单击窗体时,窗体上第一行内容是 10 6 ,第三行内容是 5 4 ,第四行内容是 10 -6
 Dim x As Integer, y As Integer
 Private Sub Form_Click()
 Dim A As Integer, B As Integer
  A = 5: B = 3
  Call Sub1(A, B)
  Print A, B
  Print x, y
 End Sub
 
  Private Sub Sub1(ByVal M As Integer, N As Integer)
  Dim x As Integer, y As Integer
   x = M + N: y = M - N
   M = fun1(x, y)
   N = fun1(y, x)
 End Sub
 Private Function fun1(A As Integer, B As Integer) As Integer
   x = A + B: y = A - B
   Print x, y
   fun1 = x + y
 End Function


3.执行Command1_Click事件过程时,共输出
行数据,其中第三行输出结果为 2   13
 Private Sub Command1_Click()
  dunno 3
 End Sub
 Public Function dunno(M As Integer) As Integer
 Dim value As Integer
   If M = 0 Then
     value = 3
   Else
     value = dunno(M - 1) + 5
   End If
     dunno = value
     Print M, value
 End Function 

4.执行下面程序,单击命令按钮 Command1 后,窗体上显示的第一行内容是 16 6 10 ,第二行内容是 40 12 28 , 最后一行内容是 56
  Private Sub Command1_Click()
  Dim A As Integer, B As Integer, K As Integer
    A = 2: B = 4
    K = Fun((A), B) + Fun(A, B)
    Print K
  End Sub
  Private Function Fun(N As Integer, M As Integer) As Integer
  Static K As Integer
     N = N + M
     K = K + N
     M = M + K
     Fun = N + M
  Print Fun; N; M
  End Function

5.执行下面程序,单击命令按钮Command1 后,A(1,3)值是 19 A(2,2)值是 15 A(3,2)值是 14
  Private Sub Command1_Click()
  Dim I As Integer, J As Integer, K As Integer
  Dim A(1 To 3, 1 To 3) As Integer, N As Integer
    N = 3
    For I = 1 To 3
    For J = 1 To 3
    K = K + 1
    A(I, J) = K + 10
  Print A(I, J); "*"
  Next J
   Next I
  Call Sub1(A, N)

   End Sub
  Private Sub Sub1(A() As Integer, N As Integer)
  Dim I As Integer, J As Integer, T As Integer, K As Integer
    K = N + 1
    For I = Int(N / 2) To 1 Step -1
    For J = N–I To I Step -1
    T = A(K–J, I)
    A(K–J, I) = A(I, J)
    A(I, J) = A(J, K - 1)
    A(J, K - 1) = A(K–I, N + 1 - J)
    A(K - I, N + 1 - J) = T

   Next J
  Next I
  End Sub

6.下面程序是求出所有的幸运数显示在列表框中,并将幸运数的个数显示到文本框中。凡前两位数字之和等于后两位数字之和的思维书称为幸运数。
   Private Sub Command1_Click()
  Dim i As Integer, N As Integer, n1 As Integer, n2 As Integer
    For i = 1000 To 9999
      
n1 = i \ 100

      n2 = i Mod 100
    If sum(n1) = sum(n2) Then
     
N = N + 1
     List1.AddItem CStr(i)
    End If
    Next i
     Text1 = N
    End Sub
   Private Function sum(s As Integer) As Integer
   Dim p As Integer, Q As Integer
     p = s \ 10
     
Q = s Mod 10
     sum = p + Q
   End Function
7. 若一个等比数列的首项为2,公比为3,其第n项到第m 项之和为720。下面是求出符合上述要求的n 和m 的程序。
 Private Sub Command1_Click()
  Dim Num() As Integer, Q As Integer, A As Integer
  Dim i As Integer, N As Integer, M As Integer
  Const k As Integer = 720
  ReDim Num(1)
    A = 2: Q = 3
    Num(1) = A
  
  i = 1
  Do
    A = A * Q
    i = i + 1
   
ReDim Preserve Num(i)
   Num(i) = A
  Loop Until Num(i) >= 720
  Call Sum1(Num, N, M, k)
  Label1 = "第" + Str(N) & "项~第" & Str(M) & " 项的和是720"
  End Sub
 Private Sub Sum1(Num() As Integer, N As Integer, M As Integer, ByVal k As Integer)
 Dim Ub As Integer, s As Integer, i As Integer, Idx As Integer
  
Ub = UBound(Num)
  For i = 1 To Ub
  
 s = 0
   N = i
   
Idx = i
  Do Until s >= k
   s = s + Num(Idx)
   Idx = Idx + 1
  Loop
   If s = k Then
   M = Idx–1
  Exit For
  End If
  Next i
  End Sub

8. 以下是一个加密程序,其中r1与r2是两个密钥表,分别对应字母a~z及空格。加密方法是从原文的字符串中取一个字符,再根据该字符在原文中的排位次序是奇数还是偶数,分别从r1或r2密钥表中查出相应的替代字符。如原文为“meet me at sunset”,其首字符为m,排位为1,则使用密钥表r1,由于在字母表中m为第13个字符,而r1中对应字符为t,故将m替换成t。其余类推。原文中如包含大写字母,则应先全部转换为小写字母。
   Const r1 As String * 27 = "qazwsxedcrfvtgbyhnujm ikolp"
   Const r2 As String * 27 = "poi uytrewqasdfghjklmnbvcxz"
   Private Sub Command1_Click()
   Dim I As Integer, code As String, s As String * 1
   Dim N As Integer, decode As String
       code =
Text1.Text

   For I = 1 To Len(code)
       s = Mid(code, I, 1)
   If s <> " " Then    
     
N = Asc(s) - 96
   If I Mod 2 <> 0 Then
     decode = decode & Mid(r1, N, 1)
   Else
     
decode = decode & Mid(r2, N, 1)
   End If
   Else
   If I Mod 2 <> 0 Then
    
 decode = decode & Mid(r1, 27, 1)
   Else
     decode = decode & Mid(r2, 27, 1)
   End If
   End If
     Next I
     Text2 = decode
   End Sub

9. 下面程序的功能是通过键盘输入一个正整数 N ,找出所有分母为N ,找出所有分母为 N ,且数值介于 1/3 和1/4 之间的最简分数 (即分子、分母除1外无公因子)。
   Private Sub Command1_Click()
   Dim i As Integer, J As Integer
   Dim N As Integer, Flag As Boolean
     N = Val(InputBox("输入分母 N :", , 11))
    For i = 1 To N - 1
    
 Flag = False
     Call Sub1(i, N, Flag)
    If
Flag Then
      Print CStr(i); "/"; CStr(N)
    End If
  Next i
  End Sub
  Private Sub Sub1(k As Integer, N As Integer, F As Boolean)
  Dim i As Integer
   If
k / N > 1 / 4 And k / N < 1 / 3
Then
     For i = 2 To k
   If
N Mod i = 0 And k Mod i = 0
Then
   Exit Sub
   End If
    Next i
   F = True
   End If
   End Sub

 

 

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

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