posts - 70,comments - 80,trackbacks - 0

VB程序设计部分

一、选择题

21、在程序中将变量Inta、B1、St、D 分别定义为Integer 类型、Boolean类型、String类型和Date 类型,下列赋值语句中,正确的是 ___ 。

A. Inta="333"+"22"          B. D=#10/05/01#

C. St=5+"abc"              D. B1=#True#

22、以下使用方法的语句中,正确的是 ___ 。

A. List1.Clear           B. Form1.Clear

C. Combo1.Cls              D. Picture1.Clear

23、以下所列的7个控件中,具有Caption 属性的有 ____ 个。

PictureBox(图片框)、Frame(框架)、OptionButton(单选按钮)、ListBox(列表框)、TextBox(文本框)、Form(窗体)、DriveListBox(驱动器列表框)

A. 3        B. 4        C. 2         D.5

24、以下有关对象属性的说法中错误的是 ___ 。

A. 所有的对象都具有 Name(名称)属性

B. 只能在执行时设置或改变的属性为执行时属性

C. 对象的某些属性只能在设计时设定,不能使用代码改变

D. Enabled属性值设为False 的控件对象在窗体上将不可见

25、在窗体的通用声明处有语句 Dim A() As Single ,以下在某事件过程中重定义此数组的一组正确语句是: ___ 。

A. ReDim A(3,3)

ReDim A(4,4) As Integer

B. ReDim A(3,3)

ReDim Preserve A(4,4)

C. ReDim A(3)

ReDim A(3,3) As Integer

D. ReDim A(3,3)

ReDim Preserve A(3,4)

26、在窗体Form1 中用“Public Sub Fun (x As Integer ,y As Single)”定义过程 Fun ,在窗体 Form2 中定义了变量i 为Integer , j 为Single ,若要在 Form2的某事件过程中调用 Form1中的Fun 过程,则下列语句中,正确的语句有 ____ 个。

(1) Call Fun(i,j)

(2) Call Form1.Fun(i,j)

(3) Form1.Fun(i),j

(4) Form1.Fun i+1,(j)

A.1            B.2        C.3 2、3、4对)        D.4

27、在文本框Text1中输入数字12,Text2中输入数字34,执行一下语句,只有 ____ 可使文本框Text3中显示46。

A. Text3.Text=Text1.Text&Text2.Text

B. Text3.Text=Val(Text1.Text)+Val(Text2.Text)

C. Text3.Text=Text1.Text+Text2.Text

D. Text3.Text=Val(Text1.Text)& Val(Text2.Text)

28、在窗体模块的通用声明处有如下语句,会产生错误的语句是 ___。

(1) Const A As Integer=25

(2) Public St As String*8

(3) Redim B(3) As Integer

(4) Dim Const X As Integer=10

A. (1)(2)       B.(1)(3)     C.(1)(2)(3)     D.(2)(3)(4)

29、下列定义Sub 过程的语句中,正确的语句是 _____ 。

(1) Private Sub Test(St As String * 8)

(2) Private Sub Test(Sarray() As String * 5)

(3) Private Sub Test(Sarray() As String)

(4) Private Sub Test(St As String)

A. (1)(2)      B.(1)(4)     C.(2)(3)(4)     D.(1)(2)(3)(4)

30、VB中利用Circle 方法不可以画 _____ 。

A.园        B.直线      C.弧       D.椭圆

二、填空题

1、将任意一个两位正整数 N 的个位数与十位数对换得到新数的 VB 表达式是 (n mod 10)*10+n\10 n=val(mid(trim(str(n)),2,1)+mid(trim(str(n)),1,1))

2、执行下面的程序,单击窗体,则在窗体上显示的第一行是 1 2 3 ,第二行是 4 5 .
Private Sub Form_Click()
Dim a(3, 3) As Integer, i As Integer, j As Integer
For i = 1 To 3 
   For j = 1 To 3 
      a(i, j) = (i - 1) * 2 + j 
   Next j
Next i
For j = 1 To 3 
   For i = j To 3 
      Print a(j, i); 
   Next i 
   Print
Next j
End Sub

3、执行下面程序,单击命令按钮 Command1,则窗体上显示的第一行是 C ,第二行是 CW ,第三行是 8
Private Sub Command1_Click()
Dim s As String, t As String
Dim K As Integer, m As Integer
s = "BASICY"
K = 1: m = K
For K = 1 To Len(s) Step m + 1
 
   t = t & Chr(Asc(Mid(s, m, 1)) + K)
   K = K + 1
   If Mid(s, K, 1) = "Y" Then Exit For
   m = m + K
   Print t
 
Next K
Print m

End Sub

4、执行下面程序,单击窗体,在立即窗口上显示的第二行是 4 14 80 ,第三行 22 10 80 Option Explicit
Dim A As Integer
Private Sub Form_Click()

Dim B As Integer
Dim D As Integer
A = 1: B = 2
D = fun(A, fun(A, B))
Debug.Print A, B, D

End Sub
Private Function fun(K As Integer, N As Integer) As Integer
Debug.Print K, N,
K = N + A + K
N = K + A + N
fun = K + N
Debug.Print fun

End Function

5、执行下面程序,如果不选中复选框 Check1,单击命令按钮 Command1 ,则在文本框Text1 中显示的变量a 的值为 12 、b的值为 3 r的值为 3 ;如果选中复选框Check1 ,单击命令按钮Command1 ,则文本框Text1 中显示为 GCD(27,12)=3 (图1为本程序设计界面)。o_02-1.JPG
Private Sub Command1_Click()
Dim a As Integer, b As Integer, r As Integer
a = 27: b = 12
If Check1.Value = 0 Then
 
   r = gcd(a, b)
   Text1 = "GCD(" & CStr(a) & "," & CStr(b) & ")=" & CStr(r)

ElseIf Check1.Value = 1 Then 
   r = gcd((a), (b))
   Text1 = "GCD(" & CStr(a) & "," & CStr(b) & ")=" & CStr(r)

End If
End Sub
Private Function gcd(x As Integer, y As Integer) As Integer
Dim r As Integer
r = x Mod y
Do While r <> 0
 
   x = y: y = r
   r = x Mod y

Loop
gcd = y

End Function

6、运行下面的程序,单击命令按钮 Command1 ,则在文本框Text1中的内容是 K = 4 A(4) 的值是 8 A(5) 的值是 6

Option Explicit
Private Sub Command1_Click()

Dim A(8) As Integer, I As Integer, K As Integer
A(1) = 1: A(2) = 4: A(3) = 6: A(4) = 4
A(5) = 6: A(6) = 8: A(7) = 6: A(8) = 1
Call Stat(A, K)
Text1 = "K = " & Str(K)

End Sub
Private Sub Stat(A() As Integer, N As Integer)

Dim Idx As Integer, Count As Integer, P As Integer
Dim T As Integer
Count = UBound(A)
Do
 
   Idx = Idx + 1
   P = Idx + 1
   Do While P <= Count
 
      If A(Idx) = A(P) Then 
         A(P) = A(Count)
         Count = Count - 1
 
      Else 
         P = P + 1 
      End If 
   Loop
   N = Count

Loop While Idx <> Count

End Sub

7、下面程序的功能是将以“12;3;15”形式输入的字符串分解为数字12、3、15,分别赋给3个数组元素,并对其进行简单运算(图2为本程序执行画面)。o_02-2.JPG

Private Sub Command1_Click()
Dim a(3) As Integer, i As Integer, n As Integer
Dim s As String
s = Text1.Text
For i = 1 To 2
 
   n=InStr(s, ";") 
   a(i) = Left(s, n - 1)
   s=
Mid(s,n+1,Len(s) - N)_
Next i
A(i) = val(s)

Text2.Text = a(1) * a(2) + a(3)

End Sub

本题更为简单的算法是:

Dim s() As String
s = Split(Text1, ";")
Text2.Text = Val(s(0)) * Val(s(1)) + Val(s(2))

8、本程序是找零巧数。所谓零巧数是具有下述特征的四位正整数:其百位数为0,如果去掉0,得到一个三位正整数,而该正整数乘以9,等于原数。例如2025=225*9,所以2025是零巧数(如图3所示)。

Private Function change(s As String) As Stringo_02-3.JPG
Dim p As String, i As Integer
For i = 1 To Len(s)
 
   If i <> 2 Then 
      p = p & Mid(s, i, 1) 
   End If
Next i
change = p

End Function
Private Sub Command1_Click()
Dim i As Integer, s As String
For i = 1000 To 9999
 
   s = CStr(i) 
   If Mid(s, 2, 1) = "0" Then 
      If Val(change(s)) * 9 = i Then 
      List1.AddItem (s + "=" + change(s) + "*9") 
      End If 
   End If
Next i

End Sub

9、本程序是把给定的二进制整数转换为八进制整数。

Private Sub Command1_Click()
Dim a As String, b As String, c As String
Dim L As Integer, m As Integer, n As Integer
a = InputBox("请输入一个二进制数", "输入框")
L = 3 - Len(a) Mod 3

a = String(L, "0") & a
n = Len(a)
For m = 1 To n / 3 
   b = Mid(a, 3 * m - 2, 3)
   c = c & zh(b)
Next m
Text1.Text = c

End Sub
Private Function zh(ByVal s As String) As String

Dim i As Integer, n As Integer, p As Integer
p = 1
For i = 2 To 0 Step -1
 
   n = n + Val(Mid(s, p, 1)) * 2 ^ i
p = p + 1
Next i
zh = Str(n)

End Function

10、找出由两个不同数字组成的平方数,并将结果按图4中的格式显示在列表框 List1中。

Option Explicito_02-4.JPG
Private Sub Command1_Click()

Dim I As Long, N As Long
For I = 11 To 300
 
   N = I * I 
   If Verify(N) Then 
   List1.AddItem (CStr(N) + "=" + CStr(I) + "*" + CStr(I)) 
   End If
Next I

End Sub
Private Function Verify(
ByVal N As Long ) As Boolean
Dim A(0 To 9) As Integer, I As Integer, Js As Integer
Do While N <> 0
 
   A(N Mod 10) = 1 
   N = N \ 10
Loop
For I = 0 To 9
 
   Js = Js + A(I)
Next I
If Js = 2 Then Verify = True

End Function

 

 

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

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