文档库 最新最全的文档下载
当前位置:文档库 › VB1

VB1

VB编程题
1、求100以内的素数。
2、从键盘输入任意长度的字符串,要求将字符顺序倒置,例如,将输入的“ABCDEFG”变换成“GFEDCBA”。
3、计算0~200之间所有能被11或5整除的数之和
4、输入一年份,判断它是否为闰年,并显示有关信息。(判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除)
5、已知x,y,z 3个变量中存放了3个不同的数,比较它们的大小并进行调整,使得x6、求s=a+aa+aaa+...aaaaa(n个a),其中a和n的值随机产生,a的范围是[1,9]的整数,n的范围是[5,10]。如a=3,n=6,则s=3+33+333+3333+33333+333333。编程确定n和a的值,并计算s。
7、计算100~300之间所有能被3和7整除的数之和。
8、编程求200--400范围内5的倍数或7的倍数之和。(一个数如果同时是7和5的倍数,则只能加一次。)
9、找出被3、5、7除,余数为1的最小的5个正整数。
10、某次歌曲大奖赛,有7个评委。如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分。
11、编程显示100~500之间所有的水仙花数之和。(水仙花数是3位数,其各位数之和等于该数本身)
12、随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。例如,产生246,输出是642。
13、从键盘输入三角形的三条边a,b,c的值,根据其数值,判断能否构成三角形。
14、已知数组a(),编程删除a中第5个元素。数组a中的元素分别为{12,6,4,89,75,63,100,20,31}。
15、随机生成一个整型的二维数组,范围在[10,20]之间,以上三角形式输出该数组。
16、利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[20,50]内的整数,输出每行中的最大值和下标。
17、利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[40,80]内的整数,求它的最大值及所对应的下标。
18、输入一系列字符串,编程求出长度最大的字符串并输出其所对应的次序。
19、利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[20,50]内的整数,输出该矩阵所有数据之和
20、输入一系列字符串,将字符串按递减次序排列。请编程实现。
21、随机产生10个[30,100]内的整数,求最大值、最小值和平均值。
22、定义三个4×4的二维数组A,B,C,A和B中的元素均随机生成,数组A的范围是1~20,数组B的范围是100~200,数组C是A和B相乘得到的。请编程生成并输出A,B,C。
23、随机产生15个小写字母,放在字符数组中。提示:c=chr(int(rnd*26+97))
24、随机产生10个[30,100]内的整数,求最大值及所对应的下标。
25、定义三个4×4的二维数组A,B,C,A和B中的元素均随机生成,数组A的范围是1~20,数组B的

范围是100~200,数组C是A和B相加得到的。请编程生成并输出A,B,C。
26、利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[20,50]内的整数,求它的两条对角线上元素之和。
27、利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[40,80]内的整数,求它的最小值及所对应的下标。
28、随机生成一个整型的二维数组,范围在[10,20]之间,以下三角形式输出该数组。
29、有10个评委对歌手进行打分(分数存放在A数组中)要求编程计算歌手平均得分(按去掉一个最高分和一个最低分的计算办法计算)。a = Array(98, 97, 95, 91, 90, 99, 93, 94, 93, 96)
30、编程输出n行杨辉三角图形,n由键盘输入。
31、声明一个整型的二维数组a(1 to 4,1 to 4),用随机函数产生各元素,范围介于[1,20]之间,编程将第1行和第3行对应元素交换。
32、随机产生15个大写字母,放在字符数组中。提示:c=chr(int(rnd*26+65))
33、编写一个过程计算并输出区间[100,1000]内所有素数的和(要求判断素数使用过程(函数或子过程)来实现。调用该过程。(提示:只能被1和自身整除的自然数称为素数。)
34、随机产生10个1~100的正整数放入数组,显示产生的数,求最大值、最小值、平均值。
35、已知一维数组a()中的元素已排序,分别为{12,15,21,25,27,35,36,39,48,52},编程将30插入数组a,并使a依然有序。
37、声明一个整型的二维数组a(1 to 4,1 to 4),用随机函数产生各元素,范围介于[1,20]之间,编程将第2行和第4行对应元素交换。
38、随机产生10个[30,100]内的整数,求最小值及所对应的下标。
39、编写一个判断素数的通用过程(函数或子程序)。调用该过程,计算并输出区间[1000,1100]内所有素数的和。(提示:只能被1和自身整除的自然数称为素数。)
40、编一子过程ProcMin,求一维数组a中的最小值,子过程的形参自己确定。
41、编一个冒泡排序法子过程,对已知的若干整数按递减次序排列。提示:子过程的形式为sub sort1(a%())。
42、编一个选择排序法子过程,对已知的若干整数按递减次序排列。提示:子过程的形式为sub sort1(a%())。
43、编一个选择排序法子过程,对已知的若干整数按递增次序排列。提示:子过程的形式为sub sort1(a%())。
44、编一个冒泡排序法子过程,对已知的若干整数按递增次序排列。提示:子过程的形式为sub sort1(a%())。
45、编一个冒泡排序法子过程,对已知的若干整数按递增次序排列。提示:子过程的形式为sub sort1(a%())。
VB答案
1、求100以内的素数。
.Private Sub Command1_Click()
Dim i, a, k
For i = 1 To 100
k = 1
For a = 2 To Sqr(i)
If i Mod a = o Then k = 0
Next a
If k = 1 Then Print i;
Next i
End Sub
2从

键盘输入任意长度的字符串,要求将字符顺序倒置,例如,将输入的“ABCDEFG”变换成“GFEDCBA”。 .
Private Sub Command1_Click()
Dim i, a, b, n as string
n = InputBox("输入字符")
i = Len(n)
For a = 1 To i / 2
b = Mid(n, a, 1)
?Mid(n, a, 1) = Mid(n, i + 1 - a, 1)
?Mid(n, i + 1 - a, 1) = b
?Next a
?Print n
End Sub
3.计算0~200之间所有能被11或5整除的数之和
Private Sub Command1_Click()
Dim i%, sum
sum = 0
For i = 1 To 200
?If i Mod 5 = 0 Or i Mod 11 = 0 Then
?sum = sum + i

End If
Next i
Print sum
End Sub
4.输入一年份,判断它是否为闰年,并显示有关信息。(判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除)
Private Sub Command1_Click()
?Dim i%
?n = InputBox("输入年份n")
?i = 0
?If n Mod 4 = 0 And n Mod 100 <> 0 Or n Mod 400 = 0 Then
?i = 1
?End If
?If i = 1 Then
?Print n & "为闰年"
?Else
?Print n & "为平年"
End If
End Sub
5.已知x,y,z 3个变量中存放了3个不同的数,比较它们的大小并进行调整,使得xPrivate Sub Command1_Click()
Dim x%, y%, z%, i
x = Int(Rnd * 100)
y = Int(Rnd * 100)
z = Int(Rnd * 100)
If x > y Then
i = x
x = y
y = i
End If
If x > z Then
i = x
x = z
z = i
End If
If y > z Then
i = y
y = z
z = i
End If
Print x & "<" & y & "<" & z
End Sub
6.求s=a+aa+aaa+...aaaaa(n个a),其中a和n的值随机产生,a的范围
是[1,9]的整数,n的范围是[5,10]。如a=3,n=6,则s=3+33+333+3333+33333+333333。编程确定n和a的值,并计算s。
Private Sub Command1_Click()
Dim c(1 To 10), a%, n%, s#, i%, m#
n = Int(Rnd * 6 + 5)
a = Int(Rnd * 9 + 1)
m = a
c(1) = m
For i = 1 To 10
c(i) = m
m = 10 * m + a
Next i
s = c(1) + c(2) + c(3) + c(4)
For i = 5 To n
s = s + c(i)
Next i
Print "a=" & a, "n=" & n, "s=" & s
End Sub
7计算100~300之间所有能被3和7整除的数之和。
.Private Sub Command1_Click()
Dim s%, i%
s = 0
For i = 100 To 300
If i Mod 3 = 0 Or i Mod 7 = 0 Then
s = s + i
End If
Next i
Print "s=" & s
End Sub
8编程求200--400范围内5的倍数或7的倍数之和。(一个数如果同时是7和5的倍数,则只能加一次。)
.Private Sub Command1_Click()
Dim s1%, s2%, s3%, i%
s1 = 0
s2 = 0
For i = 200 To 400
If i Mod 5 = 0 Or i Mod 7 = 0 Then
s1 = s1 + i
End If
Next i
For i = 200 To 400
If i Mod 5 = 0 And i Mod 7 = 0 Then
s2 = s2 + i
End If
Next i
s3 = s1 - s2
Print s3
End Sub
?
9..找出被3、5、7除,余数为1的最小的5个正整数。
.Private Sub Form_Click()
Dim t%
For i = 0 To 500
?If i Mod 5 = 1 And i Mod 7 = 1 And i Mod 3 = 1 Then Print i;
?Next i
End Sub
10某次歌曲大奖赛,有7个评委。如果分别输入7个评委
对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分。
.Private Sub Command1_Click()
Dim a(6), imin!, imax!, i!, j%, n%, t%, k%, f%
a(0) = Val

(InputBox("a(0) "))
a(1) = Val(InputBox("a(1)"))
a(2) = Val(InputBox("a(2)"))
a(3) = Val(InputBox("a(3)"))
a(4) = Val(InputBox("a(4)"))
a(5) = Val(InputBox("a(5)"))
a(6) = Val(InputBox("a(6)"))
For i = 0 To 6
imin = i
For j = i + 1 To 6
If a(j) < a(imin) Then imin = j
Next j
t = a(i)
a(i) = a(imin)
a(imin) = t
Next i
a(i - 1) = 0
For k = 0 To 6
imax = k
For f = k + 1 To 6
If a(f) > a(imax) Then imin = f
Next f
t = a(k)
a(k) = a(imax)
a(imax) = t
Next k
a(k - 1) = 0
n = (a(0) + a(1) + a(2) + a(3) + a(4) + a(5) + a(6)) / 5
Print n
End Sub
11、题编程显示100~500之间所有的水仙花数之和。(水仙花数是3位数,其各位数之和等于该数本身)
Private Sub Form_Click()
Print "100~500之间所有的水仙花数为:"
?Dim x%, a%, b%, c%
For x = 100 To 500
a = x Mod 10
b = (x Mod 100) \ 10
c = x \ 100
If x = a ^ 3 + b ^ 3 + c ^ 3 Then Print x
Next x
End Sub
12题随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。例如,产生246,输出是642。
:Private Sub Command1_Click()
Text1 = Int(Rnd * 900 + 100)
End Sub
Private Sub Command2_Click()
Dim x%, a%, b%, c%
x = Val(Text1)
a = x Mod 10
b = (x Mod 100) \ 10
c = x \ 100
Text2 = a * 100 + b * 10 + c
End Sub
13题从键盘输入三角形的三条边a,b,c的值,根据其数值,判断能否构成三角形
:Private Sub Form_Click()
Dim a, b, c,
?? a = Text1.Text
?? b = Text2.Text
?? c = Text3.Text
?? If a + b > c And a + c > b And b + c > a Then
?? MsgBox "能够成三角形"
?? Else
?? MsgBox "不能构成三角形"
End If
End Sub
14题已知数组a(),编程删除a中第5个元素。数组a中的元素
分别为{12,6,4,89,75,63,100,20,31}。
Private Sub Form_Click()
Dim a(), i%, j%
a = Array(12, 6, 4, 89, 75, 63, 100, 20, 31)
j = UBound(a)
For i = 0 To j
Print a(i)
Next i
Print
?? For i = 5 To j
?? ? a(i - 1) = a(i)
?? ? Next i
?? ? j = j - 1
? ? ReDim Preserve a(j)
? ? For i = 0 To j
? ? Print a(i)
? ? Next i
? ? Print
End Sub
15题随机生成一个整型的二维数组,范围在[10,20]之间,以上三角形式输出该数组。
Dim a%(3, 3)
Private Sub Form_Load()
?For i = 0 To 3
?For j = 0 To 3
?a(i, j) = Int(Rnd * 11 + 10)
?Next j
?Next i
End Sub
Private Sub Picture1_Click()
?For i = 0 To 3
?For j = i To 3
?Picture1.Print Tab(j * 5); a(i, j);
?Next j
?Picture1.Print
?Next i
End Sub
16、利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[20,50]内的整数,输出 = 0 To 3
? ? c(i, j) = a(i, j) + b(i, j)
?? ? Picture1.Print c(i, j);
? ? Next j
?Next i
End Sub
26、利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[20,50]内的整数,求它的两条对角线上元素之和。
Private Sub Command1_Click()
Dim a%(3, 3), i%, j%, sum%
For i = 0 To 3
For j = 0 To 3
a(i, j) = Int(Rnd * 31 + 20)
Picture1.Print a(i, j); "";
Next j
Picture1.Print
Next i

sum = 0
For i = 0 To 3
sum = sum + a(i, i) + a(i, 3 - i)
Next i
Text1 = sum
End Sub
27、利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[40,80]内的整数,求它的最小值及所对应的下标。
Private Sub Command1_Click()
Dim a%(3, 3), i%, j%, sum%
For i = 0 To 3
For j = 0 To 3
a(i, j) = Int(Rnd * 21 + 40)
Picture1.Print a(i, j); "";
Next j
Picture1.Print
Next i
imax = 0
For i = 0 To 3
For j = 0 To 3
If a(i, imin) > a(i, j) Then
imin = j
End If
Next j
Picture2.Print "第"; i + 1; "行"; "最小值为"; a(i, imin); "下标为"; "("; i; imin; ")"
Next i
End Sub
.28、随机生成一个整型的二维数组,范围在[10,20]之间,以下三角形式输出该数组。
.Private Sub Form_Click()
Dim a(4, 4) As Integer
For i = 0 To 4
? For j = 0 To 4
?? a(i, j) = Int(Rnd * 11 + 10)
?? Next j
?Next i
For i = 0 To 4
? For j = 0 To i
?Print a(i, j);
?Next j
?Print
Next i
End Sub
29.有10个评委对歌手进行打分(分数存放在A数组中)要求编程计算歌手平均得分(按去掉一个最高分和一
个最低分的计算办法计算)。a = Array(98, 97, 95, 91, 90, 99, 93, 94, 93, 96)
..Private Sub Form_Click()
Dim a(), max%, min%, imax%, imin%, s!
a = Array(98, 97, 95, 91, 90, 99, 93, 94, 93, 96)
n = UBound(a)
For i = 0 To n
?Print a(i);
?Next i
?Print
min = a(0): imin = 0
For i = 0 To n
?If a(i) < min Then min = a(i): imin = i
?Next i
?Print "min="; min; "imin="; imin
?For i = imin + 1 To n
? a(i - 1) = a(i)
? Next i
?ReDim Preserve a(n - 1)
? For i = 0 To n - 1
?? Print a(i);
?? Next i
?? Print
For i = 0 To n - 1
If a(i) > max Then max = a(i): imax = i
Next i
Print "max="; max; "imax="; imax
? ReDim Preserve a(n - 2)
? s = 0
? For i = 0 To n - 2
? s = s + a(i)
?? Print a(i);
?? Next i
?? Print
? Print "avr="; s / (n - 1)
End Sub
?30..编程输出n行杨辉三角图形,n由键盘输入。
Private Sub Command1_Click()
Dim n%, i%, j%
n = Val(Text1)
Dim a%(1 To 1000, 1 To 1000)
For i = 1 To n
a(i, i) = 1
Next i
For j = 2 To n - 1
For i = 3 To怪茫纾淙氲摹癆BCDEFG”变换成“GFEDCBA”。 .
Private Sub Command1_Click()
Dim i, a, b, n as string
n = InputBox("输入字符")
i = Len(n)
For a = 1 To i / 2
b = Mid(n, a, 1)
?Mid(n, a, 1) = Mid(n, i + 1 - a, 1)
?Mid(n, i + 1 - a, 1) = b
?Next a
?Print n
End Sub
3.计算0~200之间所有能被11或5整除的数之和
Private Sub Command1_Click()
Dim i%, sum
sum = 0
For i = 1 To 200
?If i Mod 5 = 0 Or i Mod 11 = 0 Then
?sum = sum + i

End If
Next i
Print sum
End Sub
4.输入一年份,判断它是否为闰年,并显示有关信息。(判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除)
Private Sub Command1_Click()
?Dim i%
?n = InputBox("输入年份n")
?i = 0
?If n Mod 4 = 0 And n Mod 100 <> 0 Or n Mod 400 = 0 Then
?i = 1
?End If
?If i = 1 Then
?Print n & "为闰年"
?Else
?Prin

t n & "为平年"
End If
End Sub
5.已知x,y,z 3个变量中存放了3个不同的数,比较它们的大小并进行调整,使得xPrivate Sub Command1_Click()
Dim x%, y%, z%, i
x = Int(Rnd * 100)
y = Int(Rnd * 100)
z = Int(Rnd * 100)
If x > y Then
i = x
x = y
y = i
End If
If x > z Then
i = x
x = z
z = i
End If
If y > z Then
i = y
y = z
z = i
End If
Print x & "<" & y & "<" & z
End Sub
6.求s=a+aa+aaa+...aaaaa(n个a),其中a和n的值随机产生,a的范围
是[1,9]的整数,n的范围是[5,10]。如a=3,n=6,则s=3+33+333+3333+33333+333333。编程确定n和a的值,并计算s。
Private Sub Command1_Click()
Dim c(1 To 10), a%, n%, s#, i%, m#
n = Int(Rnd * 6 + 5)
a = Int(Rnd * 9 + 1)
m = a
c(1) = m
For i = 1 To 10
c(i) = m
m = 10 * m + a
Next i
s = c(1) + c(2) + c(3) + c(4)
For i = 5 To n
s = s + c(i)
Next i
Print "a=" & a, "n=" & n, "s=" & s
End Sub
7计算100~300之间所有能被3和7整除的数之和。
.Private Sub Command1_Click()
Dim s%, i%
s = 0
For i = 100 To 300
If i Mod 3 = 0 Or i Mod 7 = 0 Then
s = s + i
End If
Next i
Print "s=" & s
End Sub
8编程求200--400范围内5的倍数或7的倍数之和。(一个数如果同时是7和5的倍数,则只能加一次。)
.Private Sub Command1_Click()
Dim s1%, s2%, s3%, i%
s1 = 0
s2 = 0
For i = 200 To 400
If i Mod 5 = 0 Or n
a(i, j) = a(i - 1, j - 1) + a(i - 1, j)
Next i
Picture1.Print
Next j
Picture1.Print Tab(j * n); a(i, j)
For i = 1 To n
For j = 1 To i
Picture1.Print a(i, j); "";
Next j
Picture1.Print
Next i
End Sub
31、声明一个整型的二维数组a(1 to 4,1 to 4),用随机函数产生各元素,范围介于[1,20]之间,编程将第1行和第3行对应元素交换。
Private Sub Form_click()
Dim a%(1 To 10, 1 To 10), i%, j%
Print "排序前"
For i = 1 To 4
For j = 1 To 4
a(i, j) = Int(Rnd * 20 + 1)
Print Tab(j * 4); a(i, j);
Next j
Print
Next i
Print "排序后"
For j = 1 To 4
t = a(1, j): a(1, j) = a(3, j): a(3, j) = t
Next j
For i = 1 To 4
For j = 1 To 4
Print Tab(j * 4); a(i, j);
Next j
Print
Next i
End Sub
32.随机产生15个大写字母,放在字符数组中。提示:c=chr(int(rnd*26+65))
Private Sub Form_Click()
Dim a(1 To 15) As String
For i = 1 To 15
a(i) = Chr(Int(Rnd * 26 + 65))
Print Tab(i * 2); a(i);
?Next i
End Sub
33、编写一个过程计算并输出区间[100,1000]内所有素数的和
(要求判断素数使用过程(函数或子过程)来实现。调用该过程。
(提示:只能被1和自身整除的自然数称为素数。)
Function sushu%(ByVal x%)
Dim m%, tag As Boolean, i%
m = Val(x)
tag = True
For i = 2 To m - 1
If (m Mod i) = 0 Then tag = False
Next i
If tag Then sushu = x
End Function
Private Sub Command1_Click()
Dim i%, k%
For i = 100 To 1000
If sushu(i) Then List1.AddItem i
Next i
sum = 0
For k = 0 To List1.ListCount - 1
sum = sum + Val(List1.List(k))
Next k
Label1 = "[100,1000]内所有的素

数和为:" & sum
End Sub
34.随机产生10个1~100的正整数放入数组,显示产生的数,求最大值、最小值、平均值。
Private Sub Form_Click()
Dim a(1 To 10) As Integer, i%, maxa%, mina%, suma%
For i = 1 To 10
a(i) = Int(Rnd * 71 + 30)
Next i
mina = a(1)
maxa = a(1)
suma = a(1)
For i = 2 To 10
If a(i) > maxa Then maxa = a(i)
If a(i) < mina Then mina = a(i)
suma = suma + a(i)
Next i
For i = 1 To 10
Print a(i);
Next i
Print
Print "max="; maxa, "min="; mina, "aver="; suma / 10
End Sub
35、已知一维数组a()中的元素已排序,分别为{12,15,21,25,27,35,36,39,48,52},编程将30插入数组a,并使a依然有序。
Private Sub Form_Load()
Dim a(), i%, k%, x%, n%
a = Array(12, 15, 25, 27, 35, 36, 39, 48, 52)
n = UBound(a)
For i = o To n
List1.AddItem a(i)
Next i
End Sub
Private Sub Command1_Click()
x = Val(Text1)
For k = 0 To List1.ListCount - 1
If x < Val(List1.List(k)) Then Exitfor
Next k
List1.AddItem x, k
End Sub
37.、声明一个整型的二维数组a(1 to 4,1 to 4),用随机函数产生各元素,范围介于[1,20]之间,编程将第2行和第4行对应元素交换。
Private Sub Form_Click()
Dim a(0 To 3, 0 To 3), i%, j%, t
For i = 0 To 3
? For j = 0 To 3
? a(i, j) = Int(Rnd * 21 + 1)
? Print Tab(j * 5); a(i, j);
Next j
Next i
Print
?Print
? For j = 0 To 3
t = a(1, j): a(1, j) = a(3, j): a(3, j) = t
Next j
For i = 0 To 3
?For j = 0 To 3
Print Tab(j * 5); a(i, j);
Next j
Next i
End Sub
38.随机产生10个[30,100]内的整数,求最小值及所对应的下标。
Private Sub Form_click()
Dim a(1 To 10) As Integer, zb%, mina%, i%
For i = 1 To 10
a(i) = Int(Rnd * 71 + 30)
Print a(i);
Next i
?zb = 1
?mina = a(1)
For i = 2 To 10
If mina > a(i) Then mina = a(i): zb = i
Next i
Print
Print "min="; mina, "zb="; zb
End Sub
?39编写一个判断素数的通用过程(函数或子程序)。
调用该过程,计算并输出区间[1000,1100]内所有素数的和。
(提示:只能被1和自身整除的自然数称为素数。)
.Private Sub Picture1_Click()
Dim i%, avera
avera = 0
For i = 1000 To 1100
If ss(i) <> 0 Then Print ss(i)
avera = avera + ss(i)
Next i
Picture1.Print avera
End Sub
Function ss(n) As Integer
Dim i%, tag As Boolean
tag = True
For i = 3 To n / 2
If (n Mod i) = 0 Then tag = False
Next i
If tag Then ss = n
End Function
40.编一子过程ProcMin,求一维数组a中的最小值,子过程的形参自己确定
Private Sub Form_Click()
Dim a(1 To 10), amin, i%
For i = 1 To 10
a(i) = -Int(Rnd * 101 + 300)
Print a(i);
Next i
Call s(a(), amin)
Print
Print "最小值="; amin
End Sub
Sub s(b(), min)
Dim i%
min = b(1)
For i = 2 To 9
If b(i) < min Then min = b(i)
Next i
End Sub
41、编一个冒泡排序法子过程,对已知的若干整数按递减次序排列。提示:子过程的形式为sub sort1(a%())。
Sub sort(a())
Dim imin%, i%, j%
For i = 0 To UBound(a) - 1
F

or j = 0 To UBound(a) - 1 - i
If a(j + 1) > a(j) Then
t = a(j): a(j) = a(j + 1): a(j + 1) = t
End If
Next j
Next i
End Sub

Private Sub Form_click()
Dim b(), i%
b = Array(8, 9, 4, 2, 6)
Call sort(b())
For i = 0 To UBound(b)
Print b(i);
Next i
End Sub
42、编一个选择排序法子过程,对已知的若干整数按递减次序排列。提示:子过程的形式为sub sort1(a%())。
Sub sort(a())
Dim i%, j%, t%, n%, imax%
n = UBound(a)
For i = 0 To n - 1
imax = i
For j = i + 1 To n
If a(j) > a(imax) Then imax = j
Next j
t = a(i)
a(i) = a(imax)
a(imax) = t
Next i
End Sub
Private Sub Form_click()
Dim b(), i%
b = Array(23, 5, 78, 99, 67, 94)
Call sort(b())
For i = LBound(b) To UBound(b)
Print b(i)
Next
End Sub
43、(排列顺序不正确)编一个选择排序法子过程,对已知的若干整数按递增次序排列。提示:子过程的形式为sub sort1(a%())。
Sub sort(a())
Dim imin%, i%, j%
For i = 0 To UBound(a) - 1
imin = 1
For j = i + 1 To UBound(a)
If a(j) < a(imin) Then imin = j
Next j
t = a(i): a(i) = a(imin): a(imin) = t
Next i
End Sub
Private Sub Form_click()
Dim b(), i%
b = Array(8, 9, 4, 2, 6)
Call sort((b))
For i = 0 To UBound(b)
Print b(i);
Next i
End Sub
?45、编一个冒泡排序法子过程,对已知的若干整数按递增次序排列。提示:子过程的形式为sub sort1(a%())。
Sub sort(a())
Dim imin%, i%, j%
For i = 0 To UBound(a) - 1
For j = 0 To UBound(a) - 1 - i
If a(j) > a(j + 1) Then
t = a(j): a(j) = a(j + 1): a(j + 1) = t
End If
Next j
Next i
End Sub
Private Sub Form_click()
Dim b(), i%
b = Array(8, 9, 4, 2, 6)
Call sort(b())
For i = 0 To UBound(b)
Print b(i);
Next i
End Sub







7






相关文档