编程填空题:
《实验指导书》 页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,则打印\"X的值为2、4、6\";若X在11到15之间,则打印\"X的值为大于等于11小于等于15\";若X大于20,则打印\"X的值大于20\";否则,打印\"X不在范围内\"。 Private Sub Command1_Click() Select Case Val(X.Text) Case [ ]
Print \"X的值为2,4,6\"
Case [ ]
Print \"X的值为大于等于11小于等于15\" Case Is >20
Print \"X的值大于20\" Case Else
Print \"X不在范围内\"
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(\"input an integer\")) n = Int(InputBox(\"input another integer\")) Print (m, n) End Sub
Public Function %(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 = n
End Function
―――――――――
输入任意长度的字符串,要求将字符顺序倒置,例如,将输入的“ABCDEF”变换成“FEDCBA”。请将程序补充完整。 Private Sub Command1_Click()
Dim a$, i%, c$, n% 'n存放字符串的长度 a = InputBox(\"input a string\") 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 [ ] = \"(\" Then count1 = count1 + 1
ElseIf Chr(KeyAscii) = \")\" Then [ ] End If
If KeyAscii = 13 Then If count1 = 0 Then
Print \"左右括号配对\"
ElseIf count1 > 0 Then
Print \"左括号多于右括号\"; count1; \"个\" Else
Print \"右括号多于左括号\"; -count1; \"个\"
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 \"A\ CountY = CountY + 1 Case [ ]
CountC = CountC + 1 End Select End If
Next i
Print \"元音字母有\"; CountY; \"个\" Print \"其它字母有\"; CountC; \"个\" 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表达式是[ 表示字符变量s是字母字符(不区分大小写)的VB表达式是[ 将一个两位数x的个位数与十位数交换位置,组成另一个两位数,则对应的表达式是[<(x Mod 10)+x\\10>]。 随机产生一个“C”~“L”范围内的大写字符,则对应的VB表达式是[ Round(-3.5)的值是[<-4>]。 Int(3.5)的值是[<3>]。 下面程序段运行后的输出结果是[<2 20 3 21 4 22 5 23>]。 For i = 0 To 3 Print Tab(5 * i + 1); \"2\" + i; \"2\" & i; Next i 循环语句For i=-3 to 20 Step 0 的循环次数是[<无数次>]。 在过程中定义的局部变量,如果希望过程结束后还保存变量的值,则应使用[ 由Array函数建立的数组,其变量必须是[ 要使循环语句循环执行20次,For k=____ to -5 Step -2,则k=[<33>]。 循环语句For i=-3.5 to 5.5 Step 0.5的循环次数是[<19>]。 下列程序段中,第41句共执行了[<12>]次。 30 For j = 1 To 12 Step 3 40 For k = 6 To 2 Step -2 41 Print j, k 42 Next k 43 Next j 循环语句For i=-3 to 20 Step 4的循环次数是[<6>]。 下面程序运行后的输出结果是[<**$$$****$$$$$>]。 a = \"*\": b = \"$\" For i = 1 To 4 If i Mod 2 = 0 Then x$ = String(Len(a) + i, b) Else x$ = String(Len(a) + i, a) End If Print x$; Next i 下面程序的运行结果是[<22 484>]。 x = 242: y = 44 z = x * y Do Until nx = y If x > y Then x = x - y Else y = y - x Loop Print x, z / x 下列程序段中,第40句共执行了[<4>]次。 30 For j = 1 To 12 Step 3 40 For k = 6 To 2 Step -2 41 Print j, k 42 Next k 43 Next j 如果在建立菜单时在标题文本框中输入一个[<下划线或者“_”>],那么菜单显示时形成一个分隔线 如果菜单标题的某个字母前输入一个[<&>]符号,那么该字母就成了热键字母。 [ 列表框中的[ [=\"A\" And s<=\"Z\">]。 表示x是5的倍数或9的倍数的逻辑表达式是[]和Selected两个属性均为数组。