《2022年VB编程题目及答案 .pdf》由会员分享,可在线阅读,更多相关《2022年VB编程题目及答案 .pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.输入 3 个数,输出最大的数2.有一元二次方程:aX2+bX+c=0 ,依次输入a,b,c,判断此方程是否有实根3.输入一个百分制的成绩,若大于等于60,则用消息框弹出,显示“恭喜!成绩通过!” ,若小于 60,则弹出消息框,显示“抱歉!成绩没有通过!”4.输入一年份,判断它是否为闰年,并显示有关信息。(判断闰年的条件是:年份能被4整除但不能被100 整除,或者能被400 整除)5.输入学生的百分制成绩,转换输出为五级制成绩,90100 分转换为优秀, 8089 转换为良好, 7079 转换为中等, 6069 转换为及格, 060 转换为不及格。6.随机产生一个三位正整数,然后逆序输出,产
2、生的数与逆序数同时显示。例如,产生246,输出是 642。7.输入两个整数,求它们的最大公约数。8.编程求 200-400 范围内 5 的倍数或 7 的倍数之和。(一个数如果同时是7 和 5 的倍数,则只能加一次。 。9.计算 100300 之间所有能被3 和 7 整除的数之和10.分别统计 1-100 中,满足 3 的倍数、 7 的倍数的数各有多少。11.某次歌曲大奖赛,有 7 个评委。 如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分。12.输入一串字符,统计其中字母A(不区分大小写 )出现的次数。13.我国目前有13 亿人口,按人
3、口年增长率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 ” ,显示“ TGFDSA ”19.随机产生 10 个30,100内的整数,求最大值及所对
4、应的下标20.随机产生 10 个30,100内的整数,求最大值、最小值和平均值。21.随机产生 10 个30,100内的整数,求最小值及所对应的下标。22.随机生成一个整型的二维数组,范围在10,20 之间,以下三角形式输出该数组。23.随机产生 10 个 1100 的正整数放入数组,显示产生的数,求最大值、 最小值、 平均值。24.利用随机函数生成一个44 的矩阵 (即二维矩阵 ),范围是 20,50 内的整数 ,输出该矩阵所有数据之和25.已知有序数组a(),编程插入x(x 的值为 14) 。数组 a 中的元素分别为12 , 6,4,89,75,63,100,20,31 。26.编写一函数
5、,计算Double 类型一维数组所有元素的平均值。27.用函数过程求表达式1+1/2+1/3+1/4+ +1/n 的和 . 28.编一子过程ProcMin, 求一维数组a 中的最小值,子过程的形参自己确定。29.编一个函数,求一维数组a 中的最大值,函数的形参自己确定。30.编写一个过程计算并输出区间100,1000内所有素数的和(要求判断素数使用过程(函数或子过程)来实现。调用该过程。(提示:只能被1 和自身整除的自然数称为素数。) (注:本答案第一行代码应在题目之后,自行调整) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - -
6、- - - - - -第 1 页,共 13 页 - - - - - - - - - - Private Sub Command11_Click() 1. 输入 3 个数,输出最大的数Dim max% X1 = Val(InputBox(input) X2 = Val(InputBox(input) x3 = Val(InputBox(input) max = X1 If max = X2 Then max = X2 End If If max = x3 Then max = x3 End If MsgBox (3 个数之中的最大数max= & max) End Sub Private Sub
7、Command12_Click() 2. 有一元二次方程:aX2+bX+c=0 ,依次输入 a,b,c,判断此方程是否有实根a = Val(InputBox(input) B = Val(InputBox(input) c = Val(InputBox(input) s = B 2 - 4 * a * c If a 0 Then If s = 0 Then MsgBox ( 两个相等实根 ) ElseIf s 0 Then MsgBox ( 两个不相等实根) ElseIf s = 60 Then MsgBox ( 恭喜!成绩通过!) 精品资料 - - - 欢迎下载 - - - - - - -
8、- - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 13 页 - - - - - - - - - - Else MsgBox ( 抱歉!成绩没有通过!) End If End Sub Private Sub Command14_Click() 4. 输入一年份,判断它是否为闰年,并显示有关信息。(判断闰年的条件是:年份能被4 整除但不能被100 整除,或者能被400 整除)yes = Val(InputBox(year) If yes Mod 4 = 0 And yes Mod 100 0 Or yes Mod 400 = 0 Then MsgBox (y
9、es & 是闰年 ) Else MsgBox (yes & 不是闰年 ) End If End Sub Private Sub Command15_Click() 5. 输入学生的百分制成绩,转换输出为五级制成绩,90100 分转换为优秀, 8089 转换为良好, 7079 转换为中等, 6069 转换为及格, 060 转换为不及格。score = Val(InputBox(input) Select Case score Case Is = 90 MsgBox ( 优秀 ) Case Is = 80 MsgBox ( 良好 ) Case Is = 70 MsgBox ( 中) Case Is
10、 = 60 MsgBox ( 及格 ) Case Else MsgBox ( 不及格 ) End Select End Sub Private Sub Command16_Click() 6. 随机产生一个三位正整数,然后逆序输出, 产生的数与逆序数同时显示。例如, 产生 246,输出是 642。a = 645 n = Len(a) For i = 1 To Int(n / 2) c = Mid(a, i, 1) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 13 页 - - - - - -
11、 - - - - Mid(a, i, 1) = Mid(a, n - i + 1, 1) Mid(a, n - i + 1, 1) = c Next i MsgBox (a) End Sub Private Sub Command1_Click() 7. 输入两个整数,求它们的最大公约数m = Val(InputBox(input m值) n = Val(InputBox(input n值) If n m Then t = n n = m m = t End If r = m Mod n Do While r 0 m = n n = r r = m Mod n Loop MsgBox ( 最大
12、公约数 = & n) End Sub Private Sub Command2_Click() 8. 编程求 200-400 范围内 5 的倍数或 7 的倍数之和。 (一个数如果同时是7 和 5 的倍数,则只能加一次。Dim sum1%, sum2% sum1 = 0: sum2 = 0 For i = 200 To 400 If i Mod 5 = 0 Then sum1 = sum1 + i ElseIf i Mod 7 = 0 Then sum2 = sun2 + i End If Debug.Print i, sum1, sum2 Next i MsgBox (5 的倍数之和sum=
13、& sum1) MsgBox (7 的倍数之和sum= & sum2) End Sub Private Sub Command3_Click() 9. 计算 100300 之间所有能被3 和 7 整除的数之和精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 13 页 - - - - - - - - - - Dim sum% sum = 0 For i = 100 To 300 If i Mod 3 = 0 And i Mod 7 = 0 Then sum = sum + i End If Nex
14、t i MsgBox (sum= & sum) End Sub Private Sub Command4_Click() 10. 分别统计 1-100 中,满足 3 的倍数、 7 的倍数的数各有多少m = 0: n = 0 For i = 1 To 100 If i Mod 3 = 0 Then n = n + 1 ElseIf i Mod 7 = 0 Then m = m + 1 End If Next i MsgBox (3 的倍数个数 = & n) MsgBox (7 的倍数个数 = & m) End Sub Private Sub Command5_Click() 11. 某次歌曲大奖
15、赛,有7 个评委。如果分别输入7 个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分Dim sum%, max%, min% sum = 0: max = 0: min = 999 For i = 1 To 7 X = Val(InputBox(input) If max = X Then min = X End If sum = sum + X Next i Avg = (sum - max - min) / 5 MsgBox ( 最高分 = & max) MsgBox ( 最低分 = & min) MsgBox ( 总和 = & sum) 精品资料
16、 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 13 页 - - - - - - - - - - MsgBox ( 平均分 = & Avg) End Sub Private Sub Command10_Click() 12. 输入一串字符,统计其中字母A(不区分大小写 )出现的次数。Dim ch As String ch = ASDEAS n = 0 For i = 1 To Len(ch) st = Mid(ch, i, 1) If UCase(st) = A Then n = n + 1 End
17、If Next i MsgBox ( 字符串中出现A 字符的系数 & n) End Sub Private Sub Command6_Click() 13. 我国目前有13 亿人口,按人口年增长率0.8%计算,多少年后我国人口将超过26 亿。n = 0 X = 13 Do While X =2 )Dim f(11) As Integer f(0) = 1 f(1) = 1 For i = 2 To 10 f(i) = f(i - 1) + f(i - 2) Next i For i = 0 To 10 Print f(i); Next i End Sub Private Sub Command
18、21_Click() 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 13 页 - - - - - - - - - - 18. 将输入的字符串以反序显示。例如:输入ASDFGT ,显示 TGFDSA Dim s(10) As String For i = 0 To 9 s(i) = InputBox(input) Next i For i = 9 To 0 Step -1 Print s(i) Next i End Sub Private Sub Command22_Click() 19. 随
19、机产生 10 个30,100 内的整数,求最大值及所对应的下标Dim a(10) As Integer, max% For i = 0 To 9 a(i) = Int(Rnd * 71 + 30) Next i max = a(0) maxi = 0 For i = 1 To 9 If a(i) = max Then max = a(i) maxi = i End If Next i MsgBox (max= & max) MsgBox (maxi= & maxi) End Sub Private Sub Command23_Click() 20. 随机产生 10 个30,100 内的整数,求
20、最大值、最小值和平均值。Dim a(10) As Integer, max%, min% For i = 0 To 9 a(i) = Int(Rnd * 71 + 30) Next i max = a(0) min = a(0) For i = 1 To 9 If a(i) = max Then max = a(i) Else min = a(i) End If sum = sum + a(i) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 13 页 - - - - - - - - - -
21、Next i MsgBox (max= & max) MsgBox (min= & min) MsgBox (avg= & sum / 10) End Sub Private Sub Command17_Click() 21. 随机产生 10 个30,100 内的整数,求最小值及所对应的下标。Dim a(10) As Integer For i = 0 To 9 a(i) = Int(Rnd * 71 + 30) Next i min = a(0) Mini = 0 For i = 1 To 9 If a(i) = max Then max = a(i) Else min = a(i) End
22、 If sum = sum + a(i) Next i MsgBox (max= & max) MsgBox (min= & min) MsgBox (avg= & sum / 10) End Sub Private Sub Command24_Click() 24. 利用随机函数生成一个44 的矩阵 (即二维矩阵 ),范围是 20,50 内的整数 ,输出该矩阵所有数据之和Dim a(4, 4) As Integer Dim sum%, i%, j% For i = 0 To 3 For j = 0 To 3 a(i, j) = Int(Rnd * 31 + 20) sum = sum + a
23、(i, j) Next j Next i For i = 0 To 3 For j = 0 To 3 Print a(i, j), Next j Print Next i MsgBox (sum= & sum) End Sub Private Sub Command25_Click() 25. 已知有序数组a(),编程插入x(x 的值为 14) 。数组 a 中的元素分别为 12 ,6,4,89,75,63,100,20,31 。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 13 页 - -
24、 - - - - - - - - Dim a(), iMin%, n%, i%, j%, t% a = Array(2, 6, 4, 89, 75, 63, 100, 20, 31) X = 14 n = UBound(a) 获得数组的下标上界For i = 0 To n - 1 进行 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
25、(iMin) a(iMin) = 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); Next End Sub Private Sub Command26_Click() 26. 编写一函数,计算Double 类型一维数组所有元素的平均值。Dim a
26、(), n%, s! a = Array(1, 4, 7, 9, 12, 23, 56) n = UBound(a) s = sum1(a() MsgBox (sum= & s) MsgBox (avg= & s / n) End Sub Private Sub Command27_Click() 27. 用函数过程求表达式1+1/2+1/3+1/4+ +1/n 的和 . n = InputBox(INPUT) s = sum2(n) MsgBox (SUM2= & s) End Sub 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - -
27、 - - - - - - -第 11 页,共 13 页 - - - - - - - - - - Private Sub Command28_Click() 28. 编一子过程ProcMin, 求一维数组a 中的最小值,子过程的形参自己确定Dim a(), n%, min% a = Array(1, 4, 7, 9, 12, -23, 56) n = UBound(a) Call procmin(a(), min) MsgBox (min= & min) End Sub 28. 编一子过程ProcMin, 求一维数组a 中的最小值,子过程的形参自己确定Private Sub Command1_C
28、lick() Dim a(), n%, min% a = Array(1, 4, 7, 9, 12, -23, 56) n = UBound(a) Call procmin(a(), min) MsgBox (min= & min) End Sub Private Sub Command29_Click() 29. 编一个函数,求一维数组a 中的最大值,函数的形参自己确定。Dim a(), n%, s! a = Array(1, 4, 7, 9, 12, 23, 56) n = UBound(a) s = max(a() MsgBox (max= & s) End Sub Private Su
29、b Command30_Click() 30. 编写一个过程计算并输出区间100,1000内所有素数的和 (要求判断素数使用过程(函数或子过程)来实现。调用该过程。(提示:只能被1 和自身整除的自然数称为素数。) Dim i%, sum!, f% sum = 0 For i = 100 To 1000 Call procs(i, f) If f = 1 Then sum = sum + i End If Next i MsgBox (sum= & sum) End Sub 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 13 页 - - - - - - - - - - 文档编码:KDHSIBDSUFVBSUDHSIDHSIBF-SDSD587FCDCVDCJUH 欢迎下载 精美文档欢迎下载 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 13 页,共 13 页 - - - - - - - - - -
限制150内