编程填空题:
《实验指导书》 页93:7、8、9题
页114:7、8、9、10、11 ――――――――――――
工程中有两个窗体form1和form2,一个标准模块module1,设在form1中定义了过程aa,在module1中定义了过程bb。 Sub aa(x, y, z)
z = x * x + y * y End Sub
Sub bb(x, y, z) z = x ^ 3 + y ^ 3
End Sub
当在form1中单击命令按钮时,调用以上过程计算两个数的平方和和立方和,并分别将计算结果显示在文本框text3和text4中,请填空完成调用语句。 Private Sub Command1_Click() a = Val(Text1.Text) b = Val(Text2.Text)
Call [ ] Text3.Text = c1 bb [ ]
Text4.Text = c2 End Sub
――――――――――――――――――
下面的程序用于根据文本框X中输入的内容进行以下处理:若X为2、4、6,则打印\的值为2、4、6\;若X在11到15之间,则打印\的值为大于等于11小于等于15\;若X大于20,则打印\的值大于20\;否则,打印\不在范围内\。 Private Sub Command1_Click() Select Case Val(X.Text) Case [ ]
Print \的值为2,4,6\
Case [ ]
Print \的值为大于等于11小于等于15\ Case Is >20
Print \的值大于20\ Case Else
Print \不在范围内\
End Select End Sub
――――――――――――――
下面的程序是使用冒泡法对数组进行排序,请将程序补充完整。 Option Base 1
Private Sub Command1_Click() Dim iA(0 To 10)
n = 6
iA(0) = 8: iA(1) = 6: iA(2) = 9: iA(3) = 3: iA(4) = 2: iA(5) = 7 For 0 = 1 To n - 1 ' 进行n-1遍比较 ' 对第i遍比较时,大数沉底
For [ ] ' 在数组 i~n个元素中选最小元素的下标 If [ ] Then t = iA(j) iA(j) = iA(j + 1) iA(j + 1) = t End If
Next j End Sub
――――――――――――
程序的功能是使用辗转相除法求两个数的最大公约数。 Private Sub Command1_Click() Dim m%, n%
m = Int(InputBox(\ n = Int(InputBox(\ Print gcd(m, n) End Sub
Public Function gcd%(m%, n%) Dim t%
If [ ] Then t = m: m = n: n = t Do
r = m Mod n If r = 0 Then Exit Do m = n [ ] Loop gcd = n
End Function
―――――――――
输入任意长度的字符串,要求将字符顺序倒置,例如,将输入的“ABCDEF”变换成“FEDCBA”。请将程序补充完整。 Private Sub Command1_Click()
Dim a$, i%, c$, n% 'n存放字符串的长度 a = InputBox(\ n = [ ]
For i = 1 To Int(n / 2) c = Mid(a, i, 1)
Mid(a, i, 1) = [ ] Mid(a, n - i + 1, 1) = c Next i End Sub
――――――――――
下面的程序允许用户按Enter(回车)键后,将组合框中没有的项目添加到组合框。请将程序补充完整。
Private Sub Combo1_KeyPress(KeyAscii As Integer) Dim flag As Boolean If KeyAscii = 13 Then
flag = False
For i = 0 To Combo1.ListCount - 1 '查找项目是否已存在 If [ ] Then flag = True Exit For End If
Next i
If flag = False Then '不存在则添加 [ ] End If
End If End Sub
―――――――――
下面的程序是使用选择法对数组进行升序排列,请将程序补充完整。 Option Base 1
Private Sub Command1_Click() Dim iA(1 To 10) n = 6
iA(1) = 8: iA(2) = 6: iA(3) = 9: iA(4) = 3: iA(5) = 2: iA(6) = 7 For i = 1 To n - 1 ' 进行n-1遍比较
iMin = i ' 对第i遍比较时,初始假定第i个元素最小 For [ ] ' 在数组 i~n个元素中选最小元素的下标 If [ ] Then iMin = j Next j
t = iA(i) 'i~n个元素中选出的最小元素与第i个元素交换 iA(i) = iA(iMin) iA(iMin) = t Next i
End Sub
―――――――――――
找出被3、5、7除,余数均为1的最小的5个正整数。 Private Sub Command1_Click() Dim countn%, n% n = 1: countn = 0 Do
n = n + 1
If [ ]Then Print n
countn = countn + 1 End If
Loop [ ] End Sub
――――――――――――――
下面程序段是检查输入的算术表达式中圆括号是否配对,并显示相应的结果。本程序在文本框输入表达式,
边输入,边统计,以输入回车键作为表达式输入结束,然后显示结果。 Dim count1%
Private Sub Text1_KeyPress(KeyAscii As Integer) If [ ] = \ count1 = count1 + 1
ElseIf Chr(KeyAscii) = \ [ ] End If
If KeyAscii = 13 Then If count1 = 0 Then
Print \左右括号配对\
ElseIf count1 > 0 Then
Print \左括号多于右括号\个\ Else
Print \右括号多于左括号\个\
End If End If End Sub
――――――――――――
顺序文件的建立。建立文件名为“c:\\stud1.txt”的顺序文件,内容来自文本框,
每按Enter键写入一条记录,然后清除文本框的内容,直到文本框内输入“END”字符串。 Private Sub Form_Load()
Open “c:\\stud1.txt” For Output As #1 Text1.Text=“” End Sub
Private Sub Text1_KeyPress(keyAscii As Integer) If keyAscii=13 Then If[ ] Then Close #1 End Else
[ ] Text1.Text=“” End If
End If End Sub
―――――――――――――
输入若干字符,统计有多少个元音字母、有多少个其他字母,不区分大小写,并显示结果。其中,CountY中放元音字母个数,CountC中放其他字符数。 Private Sub Command1_Click() Dim CountY%, CountC%, i% Dim C$, B$ c=Text1.Text For i = 1 To Len(C) B =UCase(Mid(C, i, 1)) If [ ] Then Select Case B
Case \ CountY = CountY + 1 Case [ ]
CountC = CountC + 1 End Select End If
Next i
Print \元音字母有\; \个\ Print \其它字母有\个\End Sub
――――――――
将C盘根目录下的一个文本文件old.dat复制到新文件new.dat中,并利用文件操作语句 将old.dat文件从磁盘上删除。 Private Sub Command1_Click() Dim str1 $
Open “c:\\old.dat” For Input As #1 Open “c:\\new.dat” [ ] Do While[ ] Line Input #1,str1 Print #2,str1 Loop
Close #1,#2
KILL “c:\\old.dat” End Sub
―――――――――
产生[10,37]之间的随机整数的Visual Basic表达式是[=\。 表示x是5的倍数或9的倍数的逻辑表达式是[
表示字符变量s是字母字符(不区分大小写)的VB表达式是[
将一个两位数x的个位数与十位数交换位置,组成另一个两位数,则对应的表达式是[<(x Mod 10)+x\\10>]。 随机产生一个“C”~“L”范围内的大写字符,则对应的VB表达式是[