《VB编程题及答案 .doc》由会员分享,可在线阅读,更多相关《VB编程题及答案 .doc(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、VB编程题1、求100以内的素数。2、从键盘输入任意长度的字符串,要求将字符顺序倒置,例如,将输入的“ABCDEFG”变换成“GFEDCBA”。 3、计算0200之间所有能被11或5整除的数之和4、输入一年份,判断它是否为闰年,并显示有关信息。(判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除)5、已知x,y,z 3个变量中存放了3个不同的数,比较它们的大小并进行调整,使得xyz。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+33333
2、3。编程确定n和a的值,并计算s。7、计算100300之间所有能被3和7整除的数之和。8、编程求200-400范围内5的倍数或7的倍数之和。(一个数如果同时是7和5的倍数,则只能加一次。) 9、找出被3、5、7除,余数为1的最小的5个正整数。10、某次歌曲大奖赛,有7个评委。如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分。11、编程显示100500之间所有的水仙花数之和。(水仙花数是3位数,其各位数之和等于该数本身) 12、随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。例如,产生246,输出是642。13、从键盘输入
3、三角形的三条边a,b,c的值,根据其数值,判断能否构成三角形。14、已知数组a(),编程删除a中第5个元素。数组a中的元素分别为12,6,4,89,75,63,100,20,31。15、随机生成一个整型的二维数组,范围在10,20之间,以上三角形式输出该数组。16、利用随机函数生成一个44的矩阵(即二维矩阵),范围是20,50内的整数,输出每行中的最大值和下标。17、利用随机函数生成一个44的矩阵(即二维矩阵),范围是40,80内的整数,求它的最大值及所对应的下标。18、输入一系列字符串,编程求出长度最大的字符串并输出其所对应的次序。19、利用随机函数生成一个44的矩阵(即二维矩阵),范围是2
4、0,50内的整数,输出该矩阵所有数据之和20、输入一系列字符串,将字符串按递减次序排列。请编程实现。21、随机产生10个30,100内的整数,求最大值、最小值和平均值。22、定义三个44的二维数组A,B,C,A和B中的元素均随机生成,数组A的范围是120,数组B的范围是100200,数组C是A和B相乘得到的。请编程生成并输出A,B,C。23、随机产生15个小写字母,放在字符数组中。提示:c=chr(int(rnd*26+97) 24、随机产生10个30,100内的整数,求最大值及所对应的下标。25、定义三个44的二维数组A,B,C,A和B中的元素均随机生成,数组A的范围是120,数组B的范围是
5、100200,数组C是A和B相加得到的。请编程生成并输出A,B,C。26、利用随机函数生成一个44的矩阵(即二维矩阵),范围是20,50内的整数,求它的两条对角线上元素之和。27、利用随机函数生成一个44的矩阵(即二维矩阵),范围是40,80内的整数,求它的最小值及所对应的下标。28、随机生成一个整型的二维数组,范围在10,20之间,以下三角形式输出该数组。29、有10个评委对歌手进行打分(分数存放在A数组中)要求编程计算歌手平均得分(按去掉一个最高分和一个最低分的计算办法计算)。a = Array(98, 97, 95, 91, 90, 99, 93, 94, 93, 96)30、编程输出n
6、行杨辉三角图形,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个1100的正整数放入数组,显示产生的数,求最大值、最小值、平均值。35、已知一维数组a()中的元素已排序,分别为12,15,21,25,27,35,3
7、6,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
8、(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, kFor i = 1 To 1
9、00k = 1For a = 2 To Sqr(i)If i Mod a = o Then k = 0Next aIf k = 1 Then Print i;Next iEnd Sub2从键盘输入任意长度的字符串,要求将字符顺序倒置,例如,将输入的“ABCDEFG”变换成“GFEDCBA”。 .Private Sub Command1_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
10、(n, i + 1 - a, 1) = bNext aPrint nEnd Sub3.计算0200之间所有能被11或5整除的数之和Private Sub Command1_Click()Dim i%, sumsum = 0For i = 1 To 200If i Mod 5 = 0 Or i Mod 11 = 0 Thensum = sum + iEnd IfNext iPrint sumEnd Sub4.输入一年份,判断它是否为闰年,并显示有关信息。(判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除)Private Sub Command1_Click()Dim i%n
11、 = InputBox(输入年份n)i = 0If n Mod 4 = 0 And n Mod 100 0 Or n Mod 400 = 0 Theni = 1End IfIf i = 1 ThenPrint n & 为闰年ElsePrint n & 为平年End IfEnd Sub5.已知x,y,z 3个变量中存放了3个不同的数,比较它们的大小并进行调整,使得xy y Theni = xx = yy = iEnd IfIf x z Theni = xx = zz = iEnd IfIf y z Theni = yy = zz = iEnd IfPrint x & & y & & zEnd S
12、ub6.求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 = ac(1) = mFor i = 1 To 10c(i) = mm = 10 * m + aNext is = c(1) + c(2) + c(3) + c
13、(4)For i = 5 To ns = s + c(i)Next iPrint a= & a, n= & n, s= & sEnd Sub7计算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 Sub8编程求200-400范围内5的倍数或7的倍数之和。(一个数如果同时是7和5的倍数,则只能加一次。) .Private Sub Comma
14、nd1_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 Sub9.找出被3、5、7除,余数为1的最小的5个正整数。.Private Sub Form_Click()Dim t%For i = 0 To 500If i
15、Mod 5 = 1 And i Mod 7 = 1 And i Mod 3 = 1 Then Print i;Next iEnd Sub10某次歌曲大奖赛,有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(In
16、putBox(a(3)a(4) = Val(InputBox(a(4)a(5) = Val(InputBox(a(5)a(6) = Val(InputBox(a(6)For i = 0 To 6imin = iFor j = i + 1 To 6If a(j) a(imax) Then imin = fNext ft = a(k)a(k) = a(imax)a(imax) = tNext ka(k - 1) = 0n = (a(0) + a(1) + a(2) + a(3) + a(4) + a(5) + a(6) / 5Print nEnd Sub11、题编程显示100500之间所有的水仙花
17、数之和。(水仙花数是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 Sub12题随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。例如,产生246,输出是642。:Private Sub Command1_Click()Text1 = Int(Rnd * 900
18、+ 100)End SubPrivate Sub Command2_Click()Dim x%, a%, b%, c%x = Val(Text1)a = x Mod 10b = (x Mod 100) 10c = x 100Text2 = a * 100 + b * 10 + cEnd Sub13题从键盘输入三角形的三条边a,b,c的值,根据其数值,判断能否构成三角形:Private Sub Form_Click()Dim a, b, c, a = b = c = If a + b c And a + c b And b + c a Then MsgBox 能够成三角形 Else MsgBox
19、 不能构成三角形End IfEnd Sub14题已知数组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 jPrint a(i)Next iPrint 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
20、 a(i) Next i PrintEnd Sub15题随机生成一个整型的二维数组,范围在10,20之间,以上三角形式输出该数组。Dim a%(3, 3)Private Sub Form_Load()For i = 0 To 3For j = 0 To 3a(i, j) = Int(Rnd * 11 + 10)Next jNext iEnd SubPrivate Sub Picture1_Click()For i = 0 To 3For j = i To 3 Tab(j * 5); a(i, j);Next jNext iEnd Sub16、利用随机函数生成一个44的矩阵(即二维矩阵),范围是
21、20,50内的整数,输出每行中的最大值和下标Dim a%(3, 3), i%, k%, imax%Private Sub command1_click()For i = 0 To 3For j = 0 To 3a(i, j) = Int(Rnd * 31 + 20) a(i, j); ;Next jNext iimax = 0For i = 0 To 3For j = 0 To 3If a(i, imax) a(i, j) Thenimax = 0End IfNext j 第; i + 1; 行; 最大值为; a(i, imax); 下标为; (; i; imax; )Next iEnd Su
22、b17.利用随机函数生成一个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 3Print a(i, j); Next jPrintNext iFor i = 0 To 3 For j = 0 To 3 If max a(i, j) Then max = a(i, j): im
23、ax = i & j Next jNext iPrint max=; max; imax=; imaxEnd Sub18.输入一系列字符串,编程求出长度最大的字符串并输出其所对应的次序。.Private Sub Form_Click()Dim a(5) As String, b(4) As Integer, t%, max%, imax%For i = 1 To 5a(i) = InputBox(a)Next iFor i = 0 To 4b(i) = Len(Trim(a(i)Next imax = 1For i = 0 To 4If max b(i) Then max = b(i): im
24、ax = iNext iPrint max=; a(i)Print cixu=; imax + 1End Sub19.利用随机函数生成一个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 3Print a(i, j); Next jPrintNext iFor i = 0 To 3 For j
25、= 0 To 3 sum = sum + a(i, j) Next j Next iPrint sum=; sumEnd Sub20、输入一系列字符串,将字符串按递减次序排列。请编程实现。Dim a() As String, n%, i%, j%Private Sub Command1_Click()n = Text1ReDim a(1 To n) As StringFor i = LBound(a) To UBound(a)a(i) = InputBox(请输入字符串) a(i); Spc(1);Next iEnd SubPrivate Sub Command2_Click()For i =
26、 1 To nFor j = 1 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 Sub22(维数错误!)、定义三个44的二维数组A,B,C,A和B中的元素均随机生成,数组A的范围是120,数组B的范围是100200,数组C是A和B相乘得到的。请编程生成并输出A,B,C。Private S
27、ub Form_click()Dim a%(1 To 4, 1 To 4), b%(1 To 4), c%(1 To 4, 1 To 4)Print 数组AFor i = 1 To 4For j = 1 To 4a(i, j) = Int(Rnd * 20 + 1)Print Tab(j * 4); a(i, j);Next jPrintNext iPrint 数组BFor i = 1 To 4For j = 1 To 4b(i, j) = Int(Rnd * 100 + 100)Print Tab(j * 6); b(i, j)Next jPrintNext iPrint 数组CFor i
28、= 1 To 4For j = 1 To 4c(i, j) = b(i, j) * a(i, j)Print Tab(j * 4); c(i, j)Next jPrintNext iEnd Sub23、随机产生15个小写字母,放在字符数组中。提示:c=chr(int(rnd*26+97) Private Sub Form_click()Dim a$(1 To 15), i%Print 字符数组为a(i):For i = 1 To 15a(i) = Chr(Int(Rnd * 26 + 97)Print a(i); Spc(1);Next iPrintEnd SubPrivate Sub for
29、m_load()FontSize = 10End Sub24随机产生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 9If max a(i, j) Thenimin = jEnd IfNext j 第; i + 1; 行; 最小值为; a(i, imin); 下标为; (; i; imin; )Next iEnd Sub.28、随机生成
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 jNext iFor i = 0 To 4 For j = 0 To iPrint a(i, j);Next jPrintNext iEnd Sub29.有10个评委对歌手进行打分(分数存放在A数组中)要求编程计算歌手平均得分(按去掉一个最高分和一个最低分的计算办法计算)。a = Array(98, 97, 9
31、5, 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 nPrint a(i);Next iPrintmin = a(0): imin = 0For i = 0 To nIf a(i) max Then max = a(i): imax = iNext iPrint max=; max; imax=; imax ReDi
32、m 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 Sub30.编程输出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, i) = 1Next iFor j = 2 To n - 1For i = 3 To na(i, j) = a(i - 1
33、, j - 1) + a(i - 1, j)Next iNext j Tab(j * n); a(i, j)For i = 1 To nFor j = 1 To i a(i, j); ;Next jNext iEnd Sub31、声明一个整型的二维数组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 4For j = 1 To 4a(i, j) = Int(Rnd * 20 +
34、1)Print Tab(j * 4); a(i, j);Next jPrintNext iPrint 排序后For j = 1 To 4t = a(1, j): a(1, j) = a(3, j): a(3, j) = tNext jFor i = 1 To 4For j = 1 To 4Print Tab(j * 4); a(i, j);Next jPrintNext iEnd Sub32.随机产生15个大写字母,放在字符数组中。提示:c=chr(int(rnd*26+65)Private Sub Form_Click()Dim a(1 To 15) As StringFor i = 1 T
35、o 15a(i) = Chr(Int(Rnd * 26 + 65)Print Tab(i * 2); a(i);Next iEnd Sub33、编写一个过程计算并输出区间100,1000内所有素数的和(要求判断素数使用过程(函数或子过程)来实现。调用该过程。(提示:只能被1和自身整除的自然数称为素数。) Function sushu%(ByVal x%)Dim m%, tag As Boolean, i%m = Val(x)tag = TrueFor i = 2 To m - 1If (m Mod i) = 0 Then tag = FalseNext iIf tag Then sushu =
36、 xEnd FunctionPrivate Sub Command1_Click()Dim i%, k%For i = 100 To 1000If sushu(i) Then em iNext isum = 0For k = 0 To ount - 1sum = sum + Val(k)Next kLabel1 = 100,1000内所有的素数和为: & sumEnd Sub34.随机产生10个1100的正整数放入数组,显示产生的数,求最大值、最小值、平均值。Private Sub Form_Click()Dim a(1 To 10) As Integer, i%, maxa%, mina%,
37、 suma%For i = 1 To 10a(i) = Int(Rnd * 71 + 30)Next imina = a(1)maxa = a(1)suma = a(1)For i = 2 To 10If a(i) 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 Sub35、已知一维数组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 nem a(i)Next iEnd SubPrivate Sub Command1_Click()x = Val(Text1)For k = 0 To ount - 1If x Val(k) Then E