VB考试复习题.doc_第1页
VB考试复习题.doc_第2页
VB考试复习题.doc_第3页
VB考试复习题.doc_第4页
VB考试复习题.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、已知x,y,z 3个变量中存放了3个不同的数,比较它们的大小并进行调整,使得xyz。Private Sub Command1_Click()Dim x!, y!, z!x = InputBox(input x)y = InputBox(input y)z = InputBox(input z)Print Tab(8); ; x; y; zPrint 排序前:; x; ; y; ; zIf x y Then t = x: x = y: y = t:If x z Then t = x: x = z: z = t:If y c And b + c a And a + c b ThenMsgBox (能构成三角形)ElseMsgBox (不能构成三角形)End IfEnd Sub4、随机产生10个30,100内的整数,求最小值及所对应的下标。Private Sub Form_click()Dim a(1 To 10) As Integer, zb%, mina%, i%For i = 1 To 10a(i) = Int(Rnd * 71 + 30)Print a(i);Next i zb = 1 mina = a(1)For i = 2 To 10If mina a(i) Then mina = a(i): zb = iNext iPrintPrint min=; mina, 下标=; zbEnd Sub5、随机产生10个30,100内的整数,求最大值、最小值和平均值。Dim a(1 To 10) As Integer, amin, amax, i%, avera!Private Sub Form_Click()For i = 1 To 10a(i) = Int(Rnd * 71 + 30)Next iamin = a(1)amax = a(1)avera = a(1)For i = 2 To 10If a(i) amax Then amax = a(i)If a(i) amin Then amin = a(i)avera = avera + a(i)Next iFor i = 1 To 10Print a(i);Next iPrintPrint max=; amax, min=; amin, avera=; avera / 10End Sub6、随机产生10个30,100内的整数,求最大值及所对应的下标Private Sub Form_Click()Dim a(9), max%, imax%For i = 0 To 9a(i) = Int(Rnd * 71 + 30)Print a(i);Next iPrintmax = a(0)For i = 1 To 9 If max a(i) Then max = a(i): imax = i Next iPrint max=; maxPrint 下标=; imaxEnd Sub7、某次歌曲大奖赛,有7个评委。如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分。Private Sub Command1_Click()Dim mark!, max!, min!, aver!, i%aver = 0For i = 1 To 7mark = InputBox(输入第 & i & 位评委的打分)If i = 1 Thenmax = mark: min = markElseIf mark max Then max = markEnd Ifaver = aver + markNext iaver = (aver - min - max) / 5Print averEnd Sub8,9、求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 Form_click()Dim s!, t!, i!, a%, n%a = Int(Rnd * 9 + 1)n = Int(Rnd * 6 + 5)t = 0: s = 0Print Tab(9); a=; a, n=; nPrintFor i = 1 To nt = t * 10 + as = s + tPrint Tab(9); tNext iPrintPrint Tab(9); s=; Val(s)End Sub10.产生1100以内的素数Private Sub Command1_Click()Dim i%, j%, tag As BooleanFor j = 1 To 100tag = TrueFor i = 2 To j - 1If j Mod i = 0 Then tag = FalseNext iIf tag Then Print j;Next jEnd Sub11、计算100300之间所有能被3和7整除的数之和。Private Sub Command1_Click()Dim s%, i%s = 0For i = 100 To 300If i Mod 3 = 0 Or i Mod 7 = 0 Thens = s + iEnd IfNext iPrint s= & sEnd Sub12.输入一年份,判断他是否为闰年,并现实是否是闰年的有关信息。Private Sub Command1_Click()Dim y%y = Val(Text1)If y Mod 4 = 0 And y Mod 100 0 Or y Mod 400 = 0 ThenMsgBox (y & 年是闰年)ElseMsgBox (y & 年是平年)End IfEnd Sub13、编程求200-400范围内5的倍数或7的倍数之和。(一个数如果同时是7和5的倍数,则只能加一次。) Private Sub Command1_Click()Dim s1%, s2%, s3%, i%s1 = 0s2 = 0For i = 200 To 400If i Mod 5 = 0 Or i Mod 7 = 0 Thens1 = s1 + iEnd IfNext iFor i = 200 To 400If i Mod 5 = 0 And i Mod 7 = 0 Thens2 = s2 + iEnd IfNext is3 = s1 - s2Print s3End Sub14.利用inputbox函数输入两个整数,求它们的最大公约数Private Sub Command1_Click() n1 = InputBox(输入n) m1 = InputBox(输入m) If m1 n1 Then m = m1: n = n1 Else m = n1: n = m1 End If r = m Mod n Do While r 0 m = n n = r r = m Mod n LoopPrint m n 的最大公约数是:; nEnd Sub15、随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。例如,产生246,输出是642。Private Sub Command1_Click()Text1 = Int(Rnd * 900 + 100)End SubPrivate Sub Command2_Click()Dim x%, x1%, x2%, x3%x = Val(Text1)x1 = x Mod 10x2 = (x Mod 100) 10x3 = x 100Text2 = x1 * 100 + x2 * 10 + x3End Sub方法二:Dim a%, m%, b%, c%, d%Private Sub Form_Click()a = Int(Rnd * 900 + 100)Print ad = (a Mod 10) * 100b = (a Mod 100) - (a Mod 10)c = a 100m = c + b + dPrint mEnd Sub16、从键盘输入任意长度的字符串,要求将字符顺序倒置,例如,将输入的“ABCDEFG”变换成“GFEDCBA”。 Private Sub Form_Click()Dim i, a, b, n As Stringn = InputBox(输入字符)i = Len(n)For a = 1 To i / 2b = Mid(n, a, 1) Mid(n, a, 1) = Mid(n, i + 1 - a, 1) Mid(n, i + 1 - a, 1) = b Next a Print nEnd Sub17、利用随机函数生成一个44的矩阵(即二维矩阵),范围是20,50内的整数,输出该矩阵所有数据之和Private Sub Form_Click()Dim a(3, 3), sum%For i = 0 To 3 For j = 0 To 3a(i, j) = Int(Rnd * 31 + 20) Next jNext iFor i = 0 To 3 For j = 0 To 3 Print a(i, j); Next j PrintNext iFor i = 0 To 3 For j = 0 To 3 sum = sum + a(i, j) Next j Next i Print sum=; sumEnd Sub18.编一子过程Procmin(a(),amin),求一维数组中a的最小值amin.(随机产生10个200-400之间的数,并显示数组各元素;调用子函数,显示最小值)Private Sub Form_Click()Dim a(1 To 10), amin, i%For i = 1 To 10a(i) = Int(Rnd * 200 + 200)Print a(i);Next iCall s(a(), amin)PrintPrint min=; aminEnd SubSub s(b(), min)Dim i%min = b(LBound(b)For i = LBound(b) + 1 To UBound(b)If b(i) min Then min = b(i)Next iEnd Sub19,20.编一个选择排序法子过程,对已知的若干整数按递增次序排列。提示:子过程的形式为sub sort1(a%()。Private Sub Command1_Click()Dim b%(10), i%Print 排序前For i = 1 To 10b(i) = Int(Rnd * 100)Print b(i);Next iPrintPrint 排序后Call sort(b()End SubSub sort(a%()Dim i%, m%, n%, min%, t%n = UBound(a)For i = 0 To n - 1min = iFor j = i + 1 To nIf a(j) a(min) Then min = jNext jm = a(i): a(i) = a(min): a(min) = mNext iFor i = LBound(a) To UBound(a)Print a(i);Next iEnd Sub递减次序排列Private Sub Command1_Click()Dim b%(10), i%Print 排序前For i = 0 To 9b(i) = Int(Rnd * 100)Print b(i);Next iPrintPrint 排序后Call sort(b()End SubSub sort(a%()Dim i%, m%, n%, min%, j%n = UBound(a)For i = 0 To n - 1For j = 0 To n - 1 - iIf a(j) a(j + 1) Then m = a(j): a(j) = a(j + 1): a(j + 1) = mNext jNext iFor i = LBound(a) To UBound(a) - 1Print a(i);Next iEnd Sub21,22.已知有序数组a(),编程插入x(x的值为14)。数组a中的元素分别为12,6,4,89,75,63,100,20,31。Ip = Val(InputBox(请输入数字x)For i = 0 To UBound(A) If Ip maxa Then maxa = a(i)If a(i) mina Then mina = a(i)suma = suma + a(i)Next iFor i = 1 To 10Print a(i);Next iPrintPrint max=; maxa, min=; mina, aver=; suma / 10End Sub26、利用随机函数生成一个44的矩阵(即二维矩阵),范围是20,50内的整数,输出每行中的最大值和下标。Dim a%(3, 3), i%, j%, imax%Private Sub Command1_Click() 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 iimax = 0 For i = 0 To 3 For j = 0 To 3 If a(i, imax) a(i, j) Then imax = j End If Next j Picture2.Print 第; i + 1; 行; 最大值为; a(i, imax); 下标为; (; i; imax; ) Next iEnd Sub27、声明一个整型的二维数组a(1 to 4,1 to 4),用随机函数产生各元素,范围介于1,20之间,编程将第1行和第3行对应元素交换。Private Sub Form_Click()Dim a%(1 To 4, 1 To 4), 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 PrintNext iPrint 排序后For j = 1 To 4t = a(1, j): a(1, j) = a(3, j): a(3, j) = tNext jFor i = 1 To 4 For j = 1 To 4 Print Tab(j * 4); a(i, j); Next j PrintNext iEnd Sub28.编写一个过程计算并输出区间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 = xEnd FunctionPrivate Sub Command1_Click()Dim i%, k%For i = 100 To 1000If sushu(i) Then List1.AddItem iNext iSum = 0 For k = 0 To List1.ListCount - 1 Sum = Sum + Val(List1.List(k) Next kLabel1 = 100,1000内所有素数和为: & SumEnd Sub29,30、随机生成一个整型的二维数组,范围在10,20之间,以下三角形式输出该数组。 Private Sub Form_Click()Dim a(4, 4) As IntegerFor i = 0 To 4 For j = 0 To 4 a(i, j) = Int(Rnd * 11 + 10) Next j Next iFor i = 0 To 4 For j = 0 To i Print a(i, j); Next j PrintNext iEnd Sub以上三角形式输出该数组Dim a%(4, 4)Private Sub Command1_Click()Picture1.ClsFor i = 0 To 4For j = i To 4Picture1.Print Tab(j * 6); a(i, j);Next jPicture1.PrintNext iEnd SubPrivate Sub Form_Load()For i = 0 To 4For j = 0 To 4a(i, j) = Int(Rnd * 11 + 10)Next jNext iEnd Sub31、利用随机函数生成一个44的矩阵(即二维矩阵),范围是40,80内的整数,求它的最大值及所对应的下标。Private Sub Form_Click()Dim a(3, 3), max%, imax%For i = 0 To 3 For j = 0 To 3a(i, j) = Int(Rnd * 41 + 40) Next jNext iFor i = 0 To 3 For j = 0 To 3 Print a(i, j); Next j PrintNext iFor i = 0 To 3 For j = 0 To 3 If max a(i, j) Then max = a(i, j): imax = i & j Next jNext i Print max=; max; imax=; imaxEnd Sub32.已知一维数组a中元素已排序,分别为12,15,21,25,27,35,36,39,48,52,编程将30插入数组,使a仍保持有序。Private Sub Form_load()Dim a(), i%, k%, x%, n%a = Array(1, 4, 7, 9, 12, 14, 23, 56)n = UBound(a)For i = 0 To nList1.AddItem a(i)Next iEnd SubPrivate Sub command1_Click()x = Val(Text1)For k = 0 To List1.ListCount - 1If x a(i, j) Then imin = j End If Next j Picture2.Print 第; i + 1; 行; 最小值为; a(i, imin); 下标为; (; i; imin; ) Next iEnd Sub1、找出被3、5、7除,余数 均为1的最小的5个正整数。Private Sub Command1_Click()Dim countN%, n%countN = 0n = 1Don = n + 1If n Mod 3 = 1 And n Mod 5 = 1 And n Mod 7 = 1 ThenPrint ncountN = countN + 1End IfLoop Until countN = 5End Sub2、编程显示100500之间所有的水仙花数之和。(水仙花数是3位数,其各位数之和等于该数本身) Private Sub Form_Click()Print 100500之间所有的水仙花数为: Dim x%, a%, b%, c%For x = 100 To 500a = x Mod 10b = (x Mod 100) 10c = x 100If x = a 3 + b 3 + c 3 Then Print xNext xEnd Sub3、输入一系列字符串,编程求出长度最大的字符串并输出其所对应的次序Private Sub Form_Click()Dim a(5) As String, b(4) As Integer, t%, max%, imax%For i = 1 To 5 a(i) = InputBox(a) Next iFor i = 0 To 4 b(i) = Len(Trim(a(i) Next i max = 1For i = 0 To 4 If max b(i) Then max = b(i): imax = i Next i Print max=; a(i) Print cixu=; imax + 1End Sub4、输入一系列字符串,将字符串按递减次序排列。请编程实现Dim a() As String, n%, i%, j%Private Sub Command1_Click()n = Val(Text1)ReDim a(n) As StringFor i = LBound(a) To UBound(a)a(i) = InputBox(请输入字符串)Picture1.Print a(i); Spc(1);Next iEnd SubPrivate Sub Command2_Click()For i = 0 To nFor j = 0 To n - 1If a(j) maxa Then maxa = a(i)If a(i) mina Then mina = a(i)avera = avera + a(i)Next iFor i = 1 To 10Print a(i);Next iPrintPrint max=; maxa, min=; mina, aver=; avera / 10End Sub6、定义三个44的二维数组A,B,C,A和B中的元素均随机生成,数组A的范围是120,数组B的范围是100200,数组C是A和B相乘得到的。请编程生成并输出A,B,C。Private Sub Form_Click()Dim a%(1 To 4, 1 To 4), b%(1 To 4, 1 To 4), c%(1 To 4, 1 To 4)Print 数组A 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 PrintNext iPrint 数组B For i = 1 To 4 For j = 1 To 4 b(i, j) = Int(Rnd * 100 + 100)Print Tab(j * 6); b(i, j); Next j PrintNext iPrint 数组C; For i = 1 To 4 For j = 1 To 4 c(i, j) = b(i, j) * a(i, j)Print Tab(j * 4); c(i, j); Next j PrintNext iPrint 数组C; For i = 1 To 4 For j = 1 To 4 c(i, j) = b(i, j) * a(i, j)Print Tab(j * 6); c(i, j); Next j PrintNext iEnd Sub7、随机产生15个小写字母,放在字符串中。(提示:c=chr(int(rnd*26+97))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 iPrintEnd SubPrivate Sub Form_Load()FontSize = 10End Sub8、利用随机函数生成一个44的矩阵(即二维矩阵),范围是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 isum = 0For i = 0 To 3sum = sum + a(i, i) + a(i, 3 - i)Next iText1 = sumEnd Sub9、有10个评委对歌手进行打分(分数存放在A数组中)要求编程计算歌手平均得分(按去掉一个最高分和一个最低分的计算办法计算)。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 Printmin = a(0): imin = 0For i = 0 To n If a(i) max Then max = a(i): imax = iNext iPrint 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 Sub10、随机产生15个大写字母,放在字符数组中。提示:c=chr(int(rnd*26+65)Private Sub Form_Click()Dim a(1 To 15) As StringFor i = 1 To 15a(i) = Chr(Int(Rnd * 26 + 65)Print Tab(i * 2); a(i); Next iEnd Sub11.编程输出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 na(i, 1) = 1Next iFor i = 1 To na(i, i) = 1Next iFor j = 2 To i -

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论