首页 vb编程题

vb编程题

举报
开通vip

vb编程题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 Com...

vb编程题
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,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_633808
暂无简介~
格式:doc
大小:34KB
软件:Word
页数:16
分类:生活休闲
上传时间:2017-09-18
浏览量:6