1、一.选择结构 '------------------------------------------------------- '功能:用输入对话框输入x,根据如图公式计算对应的y,在窗体上输出y的值。 '------------------------------------------------------- Private Sub Command1_Click() '**********SPACE********** Dim x As Single, 【?】 As Single '**********SPACE********** x = Val(【?
2、"Please input x :", "输入X的值")) If x = 10 Then '**********SPACE********** 【?】 ElseIf x > 10 Then '**********SPACE********** y = Sqr(x) 【?】 Else y = 2 * x ^ 3 + 6 End If Print y End Sub (答案) Y InputBox y = 0 + Sin(x) '-
3、 '功能:下面的事件过程判断文本框Text1中输入的数所在区间,并在文本框Text2中输出判断结果 '------------------------------------------------------- Private Sub Command1_Click() Dim int1 As Integer '**********SPACE********** 【?】 = Val(Text1.Text) S
4、elect Case int1 Case 0 Text2.Text = "值为0" '**********SPACE********** Case 【?】 Text2.Text = "值在1和10之间(包括1和10)" '**********SPACE********** Case Is > 【?】 Text2.Text = "值大于10"
5、 Case Else Text2.Text = "值小于0" End Select End Sub (答案1) int1 1 To 10 10 二.一般 '------------------------------------------------------- '功能:本程序功能为,第一次单击窗体,Form1的输出结果为 2 5 9 '------------------------------------------------------- Private Fu
6、nction sum(n As Integer) '**********SPACE********** 【?】 j As Integer j = j + n + 1 sum = j End Function Private Sub Form_Click() Dim i%, s% '**********SPACE********** For 【?】 = 1 To 3 '**********SPACE********** s = 【?】 Form1.Print s; Next i End Sub (答案)
7、 Static I sum(i) '------------------------------------------------------- '功能:窗体上建立了一个文本框Text1("输入口令")和一个命令按钮Command1("检查")。 ' 判断密码是否正确,并显示相应提示 ' 在加载窗体时设置密码框最大长度为8,密码显示字符为“*” '------------------------------------------------------- dim x as string Private Sub Com
8、mand1_Click() x = Text1.Text '**********SPACE********** If x 【?】 "12345678" Then MsgBox ("欢迎你用机!") Else MsgBox ("对不起,口令错") End If Text1.Text = "" Text1.SetFocus End Sub Private Sub Form_Load() Text1.Text = ""
9、 '**********SPACE********** Text1.【?】 = 8 '**********SPACE********** Text1.【?】 = "*" End Sub (答案) = MaxLength PasswordChar '------------------------------------------------------- '功能:在窗体上画一个标签(名称为 Label1 )和一个计时器(名称为 Timer1 ), 然后编写如下几个事件过程:要求:每
10、一秒钟Label1更新显示一次系统时间 '------------------------------------------------------- Private Sub Form_Load() Timer1.Enabled = False '**********SPACE********** Timer1.Interval = 【?】 End Sub Private Sub Form_Click() '**********SPACE********** Timer1.Enabled = 【?】
11、 End Sub Private Sub Timer1_Timer() '**********SPACE********** Label1.Caption = 【?】 End Sub (答案) 1000 True Now 或 Time '------------------------------------------------------- '功能:写出程序运行后,单击窗体,Form1上显示的内容 ' sum 函数的功能为累加求和 ' isum = 1 ' isu
12、m = 3 ' isum = 6 ' isum = 10 ' isum = 15 '------------------------------------------------------- Private Sub Form_Click() Dim I As Integer, isum As Integer '**********SPACE********** For I = 1 To 【?】 isum = sum(I) '**********SPACE*******
13、 Form1.Print "isum =" 【?】 Next I End Sub Private Function sum(n As Integer) Static j As Integer '**********SPACE********** 【?】 j + n sum = j End Function (答案) 5 & isum j = 三.级数 '--------------------------------------------------
14、 '功能:以下程序段用于求∑n! '------------------------------------------------------- Private Sub Form_Click() Dim sum As Integer, n As Integer n = InputBox("请输入一个正整数") sum = 0 For i = 1 To n '**********SPACE********** sum =【?】 Next i Print sum End Sub Private Functi
15、on mul(ByVal x As Integer) Dim s As Integer, i As Integer s = 1 '**********SPACE********** For i = 1 To 【?】 s = s * i Next i '**********SPACE********** 【?】 End Function (答案) sum + mul(i) x mul = s '--------------------------------------------
16、 '功能:由输入对话框输入n(n必须为大于零且小于30的自然数), 计算下列表达式的值,并在标签框Label1上显示。 sum=1/2+1/6+ ... +1/(k*(k+1)) (k<=n) '------------------------------------------------------- Private Sub Form_Click() Dim n As Integer, sum As Double, k As Integer n = Val(InputBox("n=", "请输入自然数n(
17、n>0 且n<30)")) '**********SPACE********** Do While n <= 0 【?】 n >= 30 n = Val(InputBox("n=", "请重输入")) Loop sum = 0 k = 0 Do '**********SPACE********** k =【?】 sum = sum + 1 / (k * (k + 1)) '**********SPACE********** Loop Until 【?】 Label1.
18、Caption = "Sum=" + Str(sum) End Sub (答案) Or k + 1 k >= n 四.数字关系 '------------------------------------------------------- '功能:过程suixian可以判断某一个数字是否是水仙花数,利用该过程找出三位数中所有水仙花数。 ' 所谓"水仙花数"是指一个3位数,其各位数字立方和等于该数本身。 '------------------------------------------------------- Private S
19、ub Form_Click() Dim i As Integer For i = 100 To 999 '**********SPACE********** 【?】 Next i End Sub Public Sub suixian(x As Integer) Dim i%, j%, k% '**********SPACE********** i =【?】 j = (x - i * 100) \ 10 k = x - i * 100 - j * 10 '**********SPACE********** If 【?】 Then Print x
20、End Sub (答案) call suixian (i) x \ 100 x = i ^ 3 + j ^ 3 + k ^ 3 五.数组 '------------------------------------------------------- '功能:下面的程序段,用于实现在一个nXm的矩阵中,找出 值最大的元素所在的行和列,并输出其值及行号和列号。 '------------------------------------------------------- Private Sub Form_Click()
21、Dim mat() As Integer Dim n as integer, m As Integer n = Val(InputBox("请输入矩阵的行数")) m = Val(InputBox("请输入矩阵的列数")) '**********SPACE********** 【?】 For i = 1 To n For j = 1 To m mat(i, j) = InputBox("请输入数组元素值") mat(i, j) = Val(mat(i, j)) Next j Next i Print "所建立的矩阵为" For i = 1
22、To n For j = 1 To m Print mat(i, j); Next j Print Next i Max = mat(1, 1) For i = 1 To n For j = 1 To m '**********SPACE********** If 【?】 Then Max = mat(i, j) col = j '**********SPACE********** 【?】 End If Next j Next i Print Print "矩阵
23、最大的元素的值为:"; mat(row, col) Print "它所在的行号为:"; row; "列号为:"; col End Sub (答案) ReDim mat(n, m) As Integer mat(i, j) > Max row = I '------------------------------------------------------- '功能:本程序利用二分法查找某数字n是否在已排序的数列当中, ' 若在其中则输出其在数列中的位置,否则输出-1。 '-------------------------------
24、 Option Base 1 Sub birsearch(a(), ByVal low%, ByVal high%, ByVal key, index%) Dim mid As Integer mid = (low + high) \ 2 If a(mid) = key Then '**********SPACE********** 【?】 Exit Sub ElseIf low > high Then index = -1 Exit Sub
25、 End If If key < a(mid) Then '**********SPACE********** high = 【?】 Else low = mid + 1 End If '**********SPACE********** Call birsearch(a(), low, high, 【?】, index) End Sub Private Sub Command1_Click() Dim b() As Variant, index As Integer b = Array(5, 13,
26、 19, 21, 37, 56, 64, 75, 80, 88, 92) n = Val(Text1) Call birsearch(b, LBound(b), UBound(b), n, index) Print index End Sub (答案) index = mid mid – 1 key '------------------------------------------------------- '功能:单击“插入数据”按钮后,输入一个整型数据, ' 该数据会被插入到一个有序的数组a(1
27、 to 10)中,插入该数据后数组还是有序的。 '------------------------------------------------------- Option Base 1 Private Sub Command1_Click() Dim a%(1 To 10), i%, k%, m% Print "原数列是"; For i = 1 To 9 a(i) = (i - 1) * 3 + 1 Print a(i); Next i Print m = Val(InputBox("输入要插入的数据")) For k
28、 = 1 To 9 '**********SPACE********** If (m < a(k)) Then 【?】 Next k For i = 9 To k Step -1 '**********SPACE********** a(【?】) = a(i) Next i '**********SPACE********** a(k) = 【?】 Print "插入"; m; "后的数列是:" For i = 1 To 10 Print a(i); Next i Print End
29、 Sub (答案) Exit For i+1 m '------------------------------------------------------- '功能:写出程序运行时单击窗体后,Form1上的输出结果 ' x(1) = 8 ' x(2) = 6 ' x(3) = 4 ' x(4) = 3 ' x(5) = 1 '------------------------------------------------------- Priv
30、ate Sub Form_Click() Dim x(5) As Integer '**********SPACE********** Dim i, j, t,【?】 As Integer x(1) = 8 x(2) = 3 x(3) = 1 x(4) = 6 x(5) = 4 For i = 1 To 4 For j = i + 1 To 5 '**********SPACE********** If x(i) 【?】 x(j) Then t =
31、 x(i): x(i) = x(j): x(j) = t Next j, i '**********SPACE********** For k = 1 To 【?】 Form1.Print "x("; k; ")="; x(k) Next k End Sub (答案) K < 5 '------------------------------------------------------- '功能:以下程序段用于输出杨辉三角:结果样式如图1 '------------
32、 Private Sub Form_Click() Const n = 10 Dim arr(n, n) As Integer For I = 1 To n arr(I, I) = 1 '**********SPACE********** 【?】 Next I For I = 3 To n For j = 2 To I - 1 '**********SPACE********** arr(i, j) =【?】 Next j Next I For I =
33、1 To n For j = 1 To I '**********SPACE********** ? 【?】& " "; Next j Print Next I End Sub (答案) arr(i, 1) = 1 arr(i - 1, j - 1) + arr(i - 1, j) arr(i, j) 六.文件 '------------------------------------------------------- '功能:本程序执行后,最终在窗体上打印数字7。 '----------------------
34、 Private Sub Command1_Click() Dim a As String '**********SPACE********** Open App.Path & "\abc.bat" For 【?】 As #1 n = 8 For I = 1 To n Print #1, I + 1 Next I Close #1 '**********SPACE********** Open App.Path & "\a
35、bc.bat" For 【?】 As #1 For I = 1 To n Input #1, a If I Mod 5 = 0 Then '**********SPACE********** Print CInt(a) + 【?】 End If Next I Close #1 End Sub (答案) Output Input 1 '--------------------------------------------------
36、 '功能:本程序求3~100之间的所有素数(质数)并统计个数; ' 同时将这些素数从小到大依次写入顺序文件 dataout.txt; ' 素数的个数显示在窗体Form1上。 '------------------------------------------------------- Private Sub Command1_Click() Dim count As Integer, flag As Boolean Dim t1 As Integer, t2 As Integer '**********SPACE*****
37、 Open App.Path & "\dataout.txt" For Output As 【?】 count = 0 For t1 = 3 To 100 '**********SPACE********** flag = 【?】 For t2 = 2 To Int(Sqr(t1)) If t1 Mod t2 = 0 Then flag = False Next t2 If flag Then '**********SPACE*
38、 count = 【?】 Write #1, t1 End If Next t1 Form1.Print "素数个数"; count Close #1 End Sub (答案) #1 True count + 1 '------------------------------------------------------- '功能:窗体中有两个List列表,及4个按钮。程序功能,单击 “产生随机数”按钮,随机产生20个随机数填入L
39、ist1中 ' “保存”按钮 作用是将数组内容写到文件中 ' “读出”按钮 作用是将文件内容读到数组中 ' “结束”按钮 作用是结束程序 '------------------------------------------------------- Dim d(1 To 20) As Integer Private Sub Command1_Click() '"产生随机数" Dim i As Integer List1.Clear For i = 1 To 20 '**********SPA
40、CE********** d(i) = Int(1 + 99 *【?】) List1.AddItem d(i) Next i End Sub Private Sub Command2_Click() '"保存" Dim i As Integer Open App.Path & "\MyFile3.txt" For Output As #1 For i = 1 To 20 '**********SPACE********** Write 【?】, d(i)
41、 Next i Close #1 End Sub Private Sub Command3_Click() '"读出" Dim x As String Open App.Path & "\MyFile3.txt" For Input As #1 List2.Clear '**********SPACE********** Do While Not 【?】 Input #1, x List2.AddItem x Loop Close #1 End
42、Sub Private Sub Command4_Click() '"结束" End End Sub (答案) Rnd #1 EOF(1) '------------------------------------------------------- '功能: 本程序实现功能:将顺序文本文件 “MYFILE.TXT” 的 ' 内容一个字符一个字符地读入文本框txtTest中 '------------------------------------------------------- Pr
43、ivate Sub Form_Click() Dim InputData As String * 1 txtTest.Text = "" '**********SPACE********** Open App.Path & "\MYFILE.TXT" For 【?】 As #1 '**********SPACE********** Do While 【?】 EOF(1) ' Do While Not 【?】 Input #1, In
44、putData '**********SPACE********** txtTest.Text = txtTest.Text + 【?】 Loop Close #1 End Sub (答案) Input Not InputData 七.杂项 '------------------------------------------------------- '功能:程序输出结果为:n=3 x=42 y=9 '------------------
45、 Private Sub Command1_Click() Dim n, x, y As Integer '**********SPACE********** n = 0: x =【?】: y = 0 Do While x < 20 '**********SPACE********** n = n 【?】 y = x + y x = x * (x + 1) '**********SPACE**********
46、 Form1.Print "n=" & Str(n) Form1.Print "x=" & Str(x) Form1.Print "y=" & Str(y) End Sub (答案) 1 + 1 Loop '------------------------------------------------------- '功能:利用下面的过程求m!和m*n '------------------------------------------------------- Private Sub Form_Cli
47、ck() Dim m As Integer, n As Integer m = 2 n = 3 '**********SPACE********** 【?】 End Sub Private Sub find(x As Integer, y As Integer) Dim s, i As Integer '**********SPACE********** 【?】 For i = 1 To x s = s * i '**********SPACE********** p=【?】 N
48、ext i Print s, p End Sub (答案3) call find(m,n) s = 1 p + y '------------------------------------------------------- '功能:以下程序段用于实现矩阵转置,即将一个n×m的矩阵的行和列互换 '------------------------------------------------------- Private Sub Form_Click() Const n = 3 Const m = 4 Dim a(n,
49、 m), b(m, m) As Integer For I = 1 To n For j = 1 To m a(I, j) = Int(Rnd * 90) + 10 Next j '**********SPACE********** 【?】 For I = 1 To n For j = 1 To m '**********SPACE********** 【?】 Next j Next I Print "矩阵转置前" For I = 1 To n For j = 1 To m Print a(I, j);
50、Next j '**********SPACE********** 【?】 Next I Print "矩阵转置后" For I = 1 To m For j = 1 To n Print b(I, j); Next j Print Next I End Sub (答案) Next I b(j, i) = a(i, j) Print '功能:下面的程序段用于打印出以下图形 ' ' * ' *** ' ***** ' ******* '






