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,输入年份,判断它是否为闰年,并显示有关信息。(判断闰年的条件是:年份能被 4
整除但不能被100整除,后不能被400整除) Private Sub Command 1_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
3,计算100-300 之间所有能被3和7整除的数之和。 Private Sub Command1_Click() Dim s%,i%
s=0
For i = 100 To 300
If i Mod 7 = 0 Then
s = s+i
End If
Next i
Print “s=” & s
End Sub
4,编程求200-400范围内5的倍数或7的倍数之和。(一个数如果同时是7和5的倍数, 则
只能加一次。)
Print 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 = s2 + i
End If
Next i
s3 = s1 - s2
Print s3
End Sub
5,某次歌曲大奖赛,有7个评委。如果分别输入7个评委对某个参赛者的打分数,按照 去
掉一个最高分和去掉一个最低分的计算办法,求出该参赛者的平均得分。 Private Sub Command1_ Click() Dim a(6),imin!,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
6、随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。例如,产 生
246,输出是642.
Private Sub Command 1_Click()
Text 1 = Int(Rnd*900+100)
End Sub
Private Sub Command2_Click()
Dim x%,a%,b%,c%
x = Val(Text1)
a = x Mod 10
b = (xMod 100)\10
c = x\100
Text2 = a*100+b*10+c
End Sub
7、已知数组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 = 6 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
8、利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是 [20,50]内的整数,输出 该矩
阵所有数据之和
Private Sub Form_Click()
Dim A(3,3),sum%
For i = 0 To 3
For j = 0 To 3
a(i,j) = Int(Rnd*31+20)
Next j
Next i
For i = 0 To 3
For j = 0 To 3
Print a(i,j);
Next j
Print
Next i
For i = 0 To 3
For j = 0 To 3
sum = sum + a(i,j)
Next j
Next i
Print"sum=";sum
End Sub
9、随机产生10个[30,100]内的整数,求最大值、最小值和 平均值。
Private Sub Form_Click()
Dim a(1 To 10)As Integer,i%,maxa%,mina%,avera!
For i = 1 To 10
a(i) = Int(Rnd*71+30)
Next i
mina = a(1)
maxa = a(1)
avera = a(1)
For i = 2 To 10
If a(i) > maxa Then maxa = a(i)
If a(i) < mina Then mina = a(i)
avera = avera + a(i)
Next i
For i = 1 To 10
Print a(i);
Next i
Print
Print "max=";maxa,"min=",mina,"avera=";avera/10
End Sub
10、随机产生10个[30,100]内的整数,求最大值及所对应的下标
Private Sub Form_Click()
Dim a$(1 To 15),i%
Print "字符数组为 a(i):"
For i = 1 To 15
a(i) = Chr(Int(Rnd*26+97))
Print a(i);Spc(1);
Next i
Print
End Sub
Private Sub Form_load()
FontSize = "10"
End Sub
11、随机生成一个整形的二维数组,范围在,10,20,之间,一下三角形式输出该数组
Private Sub Form_Click() Dim a(4,4)As lnteger
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
12、 编写一个过程计算并输出区间,100,1000,内所有素数的和。 Fuction 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 Fuctiaon
Prite Sub Oommand 1_Click() Dim i%,k%
For i=100 To 1000
If sushu(i) Then List1.Addidem i Next i
Sum = 0
For k=0 To List.ListCount- 1 Sum=sum + Val(List1.List(k) Next k
Labell 1 =”,100,1000,内所有素数和为: “ , sum End Sub
13、 随机产生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(l)
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
14、、编一子过程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(l)
For i = 2 To 9
If b(i),min Then min = b(i)
Next i
End Sub
15、编一个冒泡排序法子过程,对已知的若干整数按递减次序排列。提示;子过程的形式为
sub sort l(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+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
16、编一个选择排列法子过程,对已知的若干整数按递减次序排列。提示,子过程的形式为
sub sort (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
17、编一个冒泡排序法子过程,对已知的若干证书按递增次序排列。提示:子过程的形式为
sub sort (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
18、输入一串字符,统计其中字母A(不区分大小写)出现的次数。 Private Sub Command1_Click()
s = Text1.Text
l = Len(s)
For i = 1 To l
a = Mid(s, i, 1)
If Asc(a) = 65 Or Asc(a) = 97 Then n = n + 1
Next i
Text2.Text = n
End Sub
19、利用InputBox函数输入两个整数,求它们的最大公约数。 Private Sub Form_Click() Dim A As Long, B As Long A = Val(InputBox("请输入第一个数:"))
B = Val(InputBox("请输入第二个数:"))
Print "两个数为:"; A; B
Print "最大公约数为:"; MaxGYS(A, B) End Sub
Private Function MaxGYS(A As Long, B As Long)
Dim X As Long, Y As Long, K As Long
X = IIf(A >= B, A, B)
Y = IIf(A <= B, A, B)
Do
K = X Mod Y: If K = 0 Then Exit Do
X = Y: Y = K
Loop
MaxGYS = Y
End Function
20、随机产生10个1~100的正整数放入数组,显示产生的数,求最大值、最小值、平均值。
Private Sub Command1_Click()
Dim a(1 To 10)
Randomize
Picture1.Print "产生的随机数为:"
For i = 1 To 10
a(i) = Int(Rnd * 99 + 1)
Picture1.Print a(i);
Next i
Picture1.Print
End Sub
Private Sub Command2_Click()
Dim max, min, pv
max = a(1)
min = a(1)
pv = 0.1 * a(1)
For i = 2 To 10
If a(i) > max Then max = a(i)
If a(i) < min Then min = a(i)
pv = pv + 0.1 * a(i)
Next i
Picture1.Print "最大数为:"; max
Picture1.Print "最小数为:"; min
Picture1.Print "平均数为:"; pv
End Sub
21、我国目前有13亿人口,按人口年增长率0.8%计算,多少年后我国人口将超过26亿。
Private Sub Form_Click()
Dim s!, n%, r!
s = 13
r = 1.008
n = 0
Do While s <= 26
s = s * r
n = n + 1
Loop
Print n & "年以后我国的人口将达到" & s & "亿~" End Sub
本文档为【vb编程题】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。