VB编程题及答案_第1页
VB编程题及答案_第2页
VB编程题及答案_第3页
VB编程题及答案_第4页
VB编程题及答案_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、VB编程题1、求 100 以内的素数。2、从键盘输入任意长度的字符串,要求将字符顺序 倒置,例如,将输入的“ ABCDEF”G变换成 “GFEDCB”A。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,

2、10 。如 a=3,n=6, 则 s=3+33+333+3333+33333+333333。编程确定 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、 仙花数是 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、利用随机函数生成一个 44的矩阵 ( 即二维矩阵), 范围是 20,50 内的整数 , 输出每行中的最大值 和下标。17、利

4、用随机函数生成一个 44的矩阵 ( 即二维矩 阵 ), 范围是 40,80 内的整数,求它的最大值及所对 应的下标。18、输入一系列字符串, 编程求出长度最大的字符串 并输出其所对应的次序。19、利用随机函数生成一个 44的矩阵 ( 即二维矩 阵), 范围是 20,50 内的整数 , 输出该矩阵所有数据 之和20、输入一系列字符串,将字符串按递减次序排列。 请编程实现。21、随机产生 10 个 30,100 内的整数,求最大值、 最小值和平均值。22、定义三个 44的二维数组 A,B,C ,A和 B 中的元 素均随机生成,数组 A 的范围是 120,数组 B 的范 围是 100200,数组 C

5、是 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 的范 围是 100200,数组 C是 A 和 B相加得到的。请编 程生成并输出 A,B,C 。26、利用随机函数生成一个 44的矩阵 ( 即二维矩 阵 ), 范围是 20,50 内的整数,求它的两条对角线上 元素之和。27、利用随机函数生成一个 4

6、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 行和

7、第 3 行对应元素交换。32、随机产生 15 个大写字母,放在字符数组中。提 示: c=chr(int(rnd*26+65)33、编写一个过程计算并输出区间 100 ,1000 内所 有素数的和 ( 要求判断素数使用过程 (函数或子过程) 来实现。调用该过程。 (提示:只能被 1 和自身整除 的自然数称为素数。 )34、随机产生 10 个 1100 的正整数放入数组,显示 产生的数,求最大值、最小值、平均值。35、已知一维数组 a() 中的元素已排序,分别为 12 , 15,21,25,27,35,36,39,48,52 ,编程将 30 插入数组 a,并使 a 依然有序。37、声明一个整型的二

8、维数组 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%(

9、) 。42、编一个选择排序法子过程, 对已知的若干整数按 递减次序排列。提示:子过程的形式为 sub sort1(a%() 。43、编一个选择排序法子过程, 对已知的若干整数按 递增次序排列。提示:子过程的形式为 sub sort1(a%() 。44、编一个冒泡排序法子过程, 对已知的若干整数按递增次序排列。提示:子过程的形式为 sub sort1(a%() 。45、编一个冒泡排序法子过程, 对已知的若干整数按 递增次序排列。提示:子过程的形式为 sub sort1(a%() 。V B 答 案 1、求 100 以内的素数。.Private Sub Command1_Click()Dim i,

10、a, kFor i = 1 To 100k = 1For a = 2 To Sqr(i)If i Mod a = o Then k = 0Next aIf k = 1 Then Print i;Next iEnd Sub2 从键盘输入任意长度的字符串, 要求将字符顺序倒 置,例如,将输入的“ ABCDEF”G变换成 “GFEDCB”A。 .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,

11、 1) = Mid(n, i + 1 - a, 1)Mid(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 整除

12、,或者能被 400 整除)Private Sub Command1_Click()Dim i%n = 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 I

13、fIf y z Theni = yy = zz = iEnd IfPrint x & & y & & zEnd Sub6. 求 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

14、 = ac(1) = mFor i = 1 To 10c(i) = mm = 10 * m + aNext is = c(1) + c(2) + c(3) + c(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 i

15、Print s= & sEnd Sub8 编程求 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 = s

16、1 - s2Print s3End Sub9. 找出被 3、 5、 7除,余数为 1 的最小的 5 个正整 数。.Private Sub Form_Click()Dim t%For i = 0 To 500If i 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

17、%, 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 = iFor j = i + 1 To 6If a(j) a(imax) Then imin = f Next f t = a(k) a(k) = a(imax) a(imax) = t Nex

18、t k a(k - 1) = 0 n = (a(0) + a(1) + a(2) + a(3) + a(4) + a(5) + a(6) / 5 Print n End Sub11、题编程显示 100500 之间所有的水仙花数之和。 ( 水仙花数是 3 位数,其各位数之和等于该数本身 ) Private Sub Form_Click()最低分的计算办法,求出该参赛者的平均得分。Print 100500 之间所有的水仙花数为: Dim x%, a%, b%, c%For x = 100 To 500 a = x Mod 10 b = (x Mod 100) 10 c = x 100If x =

19、a 3 + b 3 + c 3 Then Print xNext xEnd Sub12 题随机产生一个三位正整数,然后逆序输出,产 生的数与逆序数同时显示。例如,产生246,输出是642。: Private Sub Command1_Click()Text1 = Int(Rnd * 900 + 100)End SubPrivate Sub Command2_Click()Dim x%, a%, b%, c%x = Val(Text1) a = x Mod 10 b = (x Mod 100) 10 c = x 100Text2 = a * 100 + b * 10 + cEnd Sub13 题

20、从键盘输入三角形的三条边 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 ThenMsgBox 能够成三角形 ElseMsgBox 不能构成三角形 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

21、, 89, 75, 63, 100, 20, 31) j = UBound(a)For i = 0 To jPrint a(i)Next iPrintFor i = 5 To j a(i - 1) = a(i) Next i j = j - 1ReDim Preserve a(j)For i = 0 To jPrint a(i)Next iPrintEnd Sub15 题随机生成一个整型的二维数组, 范围在 10,20 之间,以上三角形式输出该数组。Dim a%(3, 3) Private Sub Form_Load()For i = 0 To 3For j = 0 To 3 a(i, j)

22、= Int(Rnd * 11 + 10)Next jNext iEnd SubPrivate Sub Picture1_Click()For i = 0 To 3For j = i To 3Tab(j * 5); a(i, j);Next jNext iEnd Sub16、利用随机函数生成一个 44的矩阵 ( 即二维矩 阵), 范围是 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

23、 + 20)a(i, j); ;Next jNext i imax = 0 For i = 0 To 3For j = 0 To 3If a(i, imax) a(i, j) Then imax = 0End IfNext j第; i + 1; 行; 最大值为 ; a(i, imax); 下标为 ; (; i; imax; )Next iEnd Sub17. 利用随机函数生成一个 44的矩阵 ( 即二维矩 阵), 范围是40,80 内的整数,求它的最大值及所对应的下标。 Private Sub Form_Click()Dim a(3, 3), max%, imax%For i = 0 To 3

24、For j = 0 To 3a(i, j) = Int(Rnd * 41 + 40)Next jNext iFor i = 0 To 3For j = 0 To 3Print a(i, j);Next jPrintNext iFor i = 0 To 3For j = 0 To 3If max a(i, j) Then max = a(i, j): imax= i & jNext jNext iPrint max=; max; imax=; imaxEnd Sub18. 输入一系列字符串, 编程求出长度最大的字符串 并输出其所对应的次序。.Private Sub Form_Click()Dim

25、 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 i max = 1For i = 0 To 4If max b(i) Then max = b(i): imax = iNext iPrint max=; a(i)Print cixu=; imax + 1End Sub19. 利用随机函数生成一个 44的矩阵 (即二维矩 阵), 范围是 20,50 内的整数 , 输出该矩阵所有数据 之和.P

26、rivate Sub Form_Click()Dim a(3, 3), sum%For i = 0 To 3For j = 0 To 3a(i, j) = Int(Rnd * 31 + 20)Next jNext iFor i = 0 To 3For j = 0 To 3Print a(i, j);Next jPrintNext iFor i = 0 To 3For j = 0 To 3 sum = sum + a(i, j) Next jNext iPrint sum=; sumEnd Sub20、输入一系列字符串,将字符串按递减次序排列。 请编程实现。Dim a() As String,

27、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 = 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 i

28、For i = 1 To 10Print a(i)Next iPrintPrint max=; maxa, min=; mina, aver=; avera/ 10End Sub22( 维数错误! ) 、定义三个 44的二维数 组 A,B,C,A和 B中的元素均随机生成, 数组 A 的范围是 1 20,数组 B 的范围是 100200, 数组 C是 A和 B相乘得到的。请编程生成并输出 A,B,C。Private Sub 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

29、 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 4 b(i, j) = Int(Rnd * 100 + 100) Print Tab(j * 6); b(i, j)Next jPrintNext iPrint 数组 CFor i = 1 To 4For j = 1 To 4 c(i, j) = b(i, j) * a(i, j) Print Tab(j * 4); c(i, j) Next j Pr

30、int Next i End Sub 23、随机产生 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 form_load()FontSize = 10End Sub24 随机产生 10 个 30,100 内的整数, 求最大值及所 对应的下标。Private

31、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 、随机生成一个整型的二维数组, 范围在 10,20 之间,以下三角形式输出该数组。.Private Sub Form_Click()Dim

32、a(4, 4) As IntegerFor i = 0 To 4For j = 0 To 4 a(i, j) = Int(Rnd * 11 + 10) Next jNext iFor i = 0 To 4For j = 0 To iPrint a(i, j);Next jPrintNext iEnd Sub29. 有 10 个评委对歌手进行打分(分数存放在 A 数组中)要求编程计算歌手平均得分(按去掉一个最高分和一个最低分的计算办法计算) 。 aArray(98, 97, 95,91, 90, 99, 93, 94, 93, 96).Private Sub Form_Click()Dim a(

33、), 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=; imaxReDim Preserve a(n - 2)s = 0For i = 0 To n - 2s = s + a(i)Print a

34、(i);Next iPrintPrint 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, j - 1) + a(i - 1, j)Next iNext jTab(j * n); a(i, j)For i =

35、1 To nFor j = 1 To ia(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 + 1)Print Tab(j * 4); a(i, j);Next jPrintNext iPrint

36、 排序后 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 To 15a(i) = Chr(Int(Rnd * 26 + 65)Print Tab(i

37、 * 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 = xEnd FunctionPrivate Sub Command1_C

38、lick()Dim i%, k%For i = 100 To 1000If sushu(i) Then iNext isum = 0For k = 0 To - 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%, suma%For i = 1 To 10a(i) = Int(Rnd *

39、 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

40、插入数组 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 na(i)Next iEnd SubPrivate Sub Command1_Click()x = Val(Text1)For k = 0 To - 1If x a(i) Then mina = a(i): zb = iNext iPrintPrint min=; mina, zb=; zb End Sub39 编写一个判断素数的通用过程(函数或子程 序)。调用该过程, 计算并输出区间 1000 ,1100 内所有素 数的和。(提示:只能被 1 和自身整除的自然数称为素数。 ) .Private Sub Picture1_Click()Dim i%, avera avera = 0For i = 1000 To 1100If ss(i) 0 Then Print ss(i)avera = avera +

温馨提示

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

评论

0/150

提交评论