1、VB编程题目及答案VB编程题目(tm)及答案VB编程题目(tm)及答案1.输入(shr)3个数,输出最大的数2.有一元二次方程:aX2+bX+c=0,依次(yc)输入a,b,c,判断(pndun)此方程是否有实根3.输入一个(y )百分制的成绩,若大于等于60,则用消息(xio xi)框弹出,显示“恭喜!成绩通过!”,若小于60,则弹出消息框,显示“抱歉!成绩没有通过!”4.输入一年份,判断它是否为闰年,并显示有关信息。(判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除)5.输入学生的百分制成绩,转换输出为五级制成绩,90100分转换为优秀,8089转换为良好,7079转
2、换为中等,6069转换为及格,060转换为不及格。6.随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。例如,产生246,输出是642。7.输入两个整数,求它们的最大公约数。8.编程求200-400范围内5的倍数或7的倍数之和。(一个数如果同时是7和5的倍数,则只能加一次。9.计算100300之间所有能被3和7整除的数之和10.分别统计1-100中,满足3的倍数(bish)、7的倍数的数各有多少。11.某次歌曲(gq)大奖赛,有7个评委。如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分。12.输入(shr)一串字符,统计其
3、中字母A(不区分大小写)出现(chxin)的次数。13.我国目前有13亿人口(rnku),按人口年增长率0.8%计算,多少年后我国人口将超过26亿。14.小猴有桃若干,第一天吃掉一半多一个;第二天吃剩下桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天只剩一个,问小猴原有桃多少?15.求100以内的素数16.百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元,编程求解购鸡方案。17.编程求斐波那契数列前11项。(斐波那契数列:F(0)=f(1)=1, F(n)=F(n-1)+F(n-2) n=2 )18.将输入的字符串以反序显示。例如:输入“ASDFGT”,显示“TGFDS
4、A”19.随机(su j)产生10个30,100内的整数,求最大值及所对应的下标20.随机(su j)产生10个30,100内的整数,求最大值、最小值和平均值。21.随机产生(chnshng)10个30,100内的整数,求最小值及所对应的下标。22.随机生成一个整型的二维数组,范围在10,20之间,以下三角(snjio)形式输出该数组。23.随机(su j)产生10个1100的正整数放入数组,显示产生的数,求最大值、最小值、平均值。24.利用随机函数生成一个44的矩阵(即二维矩阵),范围是20,50内的整数,输出该矩阵所有数据之和25.已知有序数组a(),编程插入x(x的值为14)。数组a中的
5、元素分别为12,6,4,89,75,63,100,20,31。26.编写一函数,计算Double类型一维数组所有元素的平均值。27.用函数过程求表达式1+1/2+1/3+1/4+1/n的和.28.编一子过程ProcMin,求一维数组a中的最小值,子过程的形参自己确定。29.编一个(y )函数(hnsh),求一维数组a中的最大值,函数(hnsh)的形参自己(zj)确定。30.编写一个过程计算并输出区间100,1000内所有素数的和(要求判断素数使用过程(函数或子过程)来实现。调用(dioyng)该过程。(提示:只能被1和自身整除的自然数称为素数。)(注:本答案第一行代码应在题目之后,自行调整)P
6、rivate Sub Command11_Click()1. 输入3个数,输出最大的数Dim max% X1 = Val(InputBox(input)X2 = Val(InputBox(input)x3 = Val(InputBox(input)max = X1If max = X2 Thenmax = X2End IfIf max = x3 Thenmax = x3End IfMsgBox (3个数之中的最大数max= & max)End SubPrivate Sub Command12_Click()2. 有一元二次方程:aX2+bX+c=0,依次输入a,b,c,判断此方程是否有实根a
7、= Val(InputBox(input)B = Val(InputBox(input)c = Val(InputBox(input)s = B 2 - 4 * a * cIf a 0 ThenIf s = 0 ThenMsgBox (两个相等实根)ElseIf s 0 ThenMsgBox (两个不相等实根)ElseIf s = 60 ThenMsgBox (恭喜!成绩(chngj)通过!)ElseMsgBox (抱歉(boqin)!成绩没有通过!)End IfEnd SubPrivate Sub Command14_Click()4. 输入一年份,判断它是否(sh fu)为闰年,并显示有关
8、信息。(判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除)yes = Val(InputBox(year)If yes Mod 4 = 0 And yes Mod 100 0 Or yes Mod 400 = 0 ThenMsgBox (yes & 是闰年)ElseMsgBox (yes & 不是闰年)End IfEnd SubPrivate Sub Command15_Click()5. 输入学生的百分制成绩,转换输出为五级制成绩,90100分转换为优秀,8089转换为良好,7079转换为中等,6069转换为及格,060转换为不及格。score = Val(InputB
9、ox(input)Select Case scoreCase Is = 90 MsgBox (优秀) Case Is = 80MsgBox (良好(lingho) Case Is = 70 MsgBox (中) Case Is = 60 MsgBox (及格(j g) Case Else MsgBox (不及格) End Select End SubPrivate Sub Command16_Click()6. 随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示(xinsh)。例如,产生246,输出是642。a = 645n = Len(a)For i = 1 To Int(n /
10、 2)c = Mid(a, i, 1)Mid(a, i, 1) = Mid(a, n - i + 1, 1)Mid(a, n - i + 1, 1) = cNext iMsgBox (a)End SubPrivate Sub Command1_Click()7. 输入两个整数(zhngsh),求它们的最大公约数m = Val(InputBox(input m值)n = Val(InputBox(input n值)If n m Thent = nn = mm = tEnd Ifr = m Mod nDo While r 0m = nn = rr = m Mod nLoopMsgBox (最大公约
11、数= & n)End SubPrivate Sub Command2_Click()8. 编程求200-400范围内5的倍数或7的倍数之和。(一个数如果(rgu)同时是7和5的倍数,则只能加一次。Dim sum1%, sum2%sum1 = 0: sum2 = 0For i = 200 To 400If i Mod 5 = 0 Thensum1 = sum1 + iElseIf i Mod 7 = 0 Thensum2 = sun2 + iEnd IfDebug.Print i, sum1, sum2Next iMsgBox (5 的倍数(bish)之和sum= & sum1)MsgBox (
12、7 的倍数(bish)之和sum= & sum2)End SubPrivate Sub Command3_Click()9. 计算(j sun)100300之间所有能被3和7整除的数之和Dim sum%sum = 0For i = 100 To 300If i Mod 3 = 0 And i Mod 7 = 0 Thensum = sum + iEnd IfNext iMsgBox (sum= & sum)End SubPrivate Sub Command4_Click()10. 分别统计(tngj)1-100中,满足3的倍数、7的倍数的数各有多少m = 0: n = 0For i = 1
13、To 100If i Mod 3 = 0 Thenn = n + 1ElseIf i Mod 7 = 0 Thenm = m + 1End IfNext iMsgBox (3的倍数个数= & n)MsgBox (7的倍数个数= & m)End SubPrivate Sub Command5_Click()11. 某次歌曲大奖赛,有7个评委。如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均(pngjn)得分Dim sum%, max%, min%sum = 0: max = 0: min = 999For i = 1 To 7X = Val(
14、InputBox(input)If max = X Thenmin = XEnd Ifsum = sum + XNext iAvg = (sum - max - min) / 5MsgBox (最高分= & max)MsgBox (最低分= & min)MsgBox (总和(zngh)= & sum)MsgBox (平均分= & Avg)End SubPrivate Sub Command10_Click()12. 输入一串字符,统计其中字母(zm)A(不区分大小写)出现的次数。Dim ch As Stringch = ASDEASn = 0For i = 1 To Len(ch)st = M
15、id(ch, i, 1)If UCase(st) = A Thenn = n + 1End IfNext iMsgBox (字符(z f)串中出现A字符的系数 & n)End SubPrivate Sub Command6_Click()13. 我国目前有13亿人口(rnku),按人口年增长率0.8%计算,多少年后我国人口将超过26亿。n = 0X = 13Do While X =2 )Dim f(11) As Integerf(0) = 1f(1) = 1For i = 2 To 10f(i) = f(i - 1) + f(i - 2)Next iFor i = 0 To 10Print f
16、(i);Next iEnd SubPrivate Sub Command21_Click()18. 将输入的字符串以反序显示(xinsh)。例如:输入ASDFGT,显示TGFDSADim s(10) As StringFor i = 0 To 9s(i) = InputBox(input)Next iFor i = 9 To 0 Step -1Print s(i)Next iEnd SubPrivate Sub Command22_Click()19. 随机产生10个30,100内的整数(zhngsh),求最大值及所对应的下标Dim a(10) As Integer, max%For i =
17、0 To 9a(i) = Int(Rnd * 71 + 30)Next imax = a(0)maxi = 0For i = 1 To 9If a(i) = max Thenmax = a(i)maxi = iEnd IfNext iMsgBox (max= & max)MsgBox (maxi= & maxi)End SubPrivate Sub Command23_Click()20. 随机产生(chnshng)10个30,100内的整数,求最大值、最小值和平均值。Dim a(10) As Integer, max%, min%For i = 0 To 9a(i) = Int(Rnd *
18、71 + 30)Next imax = a(0)min = a(0)For i = 1 To 9If a(i) = max Thenmax = a(i)Elsemin = a(i)End Ifsum = sum + a(i)Next iMsgBox (max= & max)MsgBox (min= & min)MsgBox (avg= & sum / 10)End SubPrivate Sub Command17_Click()21. 随机(su j)产生10个30,100内的整数,求最小值及所对应的下标。Dim a(10) As IntegerFor i = 0 To 9a(i) = Int
19、(Rnd * 71 + 30)Next imin = a(0)Mini = 0For i = 1 To 9If a(i) = max Thenmax = a(i)Elsemin = a(i)End Ifsum = sum + a(i)Next iMsgBox (max= & max)MsgBox (min= & min)MsgBox (avg= & sum / 10)End SubPrivate Sub Command24_Click()24. 利用(lyng)随机函数生成一个44的矩阵(j zhn)(即二维矩阵),范围是20,50内的整数,输出该矩阵所有数据之和Dim a(4, 4) As
20、IntegerDim sum%, i%, j%For i = 0 To 3For j = 0 To 3a(i, j) = Int(Rnd * 31 + 20)sum = sum + a(i, j)Next jNext iFor i = 0 To 3For j = 0 To 3Print a(i, j),Next jPrintNext iMsgBox (sum= & sum)End SubPrivate Sub Command25_Click()25. 已知有序数组a(),编程插入(ch r)x(x的值为14)。数组a中的元素分别为12,6,4,89,75,63,100,20,31。 Dim a
21、(), iMin%, n%, i%, j%, t% a = Array(2, 6, 4, 89, 75, 63, 100, 20, 31) X = 14 n = UBound(a) 获得(hud)数组的下标上界 For i = 0 To n - 1 进行(jnxng)n-1轮比较 iMin = i 对第i轮比较时,初始假定第i个元素最小 For j = i + 1 To n 在数组 i+1n个元素中选最小元素的下标 If a(j) a(iMin) Then iMin = j Next j t = a(i) i+1n个元素中选出的最小元素与第i个元素交换 a(i) = a(iMin) a(iMi
22、n) = t Next i For k = 0 To n 查找欲插入数x在数组中的位置 If X a(k) Then Exit For Next k ReDim Preserve a(n + 1) 数组增加一个元素 For i = n To k Step -1 数组元素后移一位,腾出位置 a(i + 1) = a(i) Next i a(k) = X For i = 0 To n + 1 Print a(i); NextEnd SubPrivate Sub Command26_Click()26. 编写一函数,计算Double类型一维数组所有(suyu)元素的平均值。Dim a(), n%,
23、s! a = Array(1, 4, 7, 9, 12, 23, 56) n = UBound(a) s = sum1(a() MsgBox (sum= & s) MsgBox (avg= & s / n) End SubPrivate Sub Command27_Click()27. 用函数(hnsh)过程求表达式1+1/2+1/3+1/4+1/n的和.n = InputBox(INPUT)s = sum2(n) MsgBox (SUM2= & s)End SubPrivate Sub Command28_Click()28. 编一子过程(guchng)ProcMin,求一维数组a中的最小值
24、,子过程的形参自己确定Dim a(), n%, min% a = Array(1, 4, 7, 9, 12, -23, 56) n = UBound(a) Call procmin(a(), min) MsgBox (min= & min) End Sub28. 编一子过程(guchng)ProcMin,求一维数组a中的最小值,子过程的形参自己确定Private Sub Command1_Click()Dim a(), n%, min% a = Array(1, 4, 7, 9, 12, -23, 56) n = UBound(a) Call procmin(a(), min) MsgBox (min= & min) End SubPrivate Sub Command29_Click()
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1