《VB编程题完整版 3.doc》由会员分享,可在线阅读,更多相关《VB编程题完整版 3.doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、(1)选择结构 (2)循环结构(3)数组 (4)过程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内的整数,求最大值及所对应的下标20. 随机产生10个3
4、0,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. 编写一函数,计算Double类型一维数组所有元素的平均值。27. 用函数过程求
5、表达式1+1/2+1/3+1/4+1/n的和.28. 编一子过程ProcMin,求一维数组a中的最小值,子过程的形参自己确定。29. 编一个函数,求一维数组a中的最大值,函数的形参自己确定。30. 编写一个过程计算并输出区间100,1000内所有素数的和(要求判断素数使用过程(函数或子过程)来实现。调用该过程。(提示:只能被1和自身整除的自然数称为素数。)1. 输入3个数,输出最大的数Private Sub Command1_Click()x = InputBox(键入第一个数)y = InputBox(键入第二个数)z = InputBox(键入第三个数)Max = xIf Max y Th
6、en Max = yIf Max = 0 ThenLabel1= 方程有根 Else Label1 = 方程无根End IfEnd Sub3. 输入一个百分制的成绩,若大于等于60,则用消息框弹出,显示“恭喜!成绩通过!”,若小于60,则弹出消息框,显示“抱歉!成绩没有通过!”Private Sub Form_Load()Text1 = End SubPrivate Sub Command1_Click()Dim nn = Text1If n 60 ThenVal (MsgBox(恭喜!成绩通过!)ElseVal (MsgBox(抱歉!成绩没有通过!)End IfEnd Sub4. 4输入一年
7、份,判断它是否为闰年,并显示有关信息。(判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除)Private Sub Command1_Click()Dim y% y = Val(Text1) If y Mod 4 = 0 And y Mod 100 0 Or y Mod 400 = 0 Then MsgBox (y & 年是闰年) Else MsgBox (y & 年不是闰年) End If End Sub5. 输入学生的百分制成绩,转换输出为五级制成绩,90100分转换为优秀,8089转换为良好,7079转换为中等,6069转换为及格,060转换为不及格。Private
8、Sub Command1_Click()a = Val(InputBox(请输入成绩)If a 100 Then Print 超出范围If a = 90 And a = 80 And a = 70 And a = 60 And a 70 Then Print 及格If a 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 Sub8. 编程求200-400范围内5的倍数或7的倍数之和。(一个数
9、如果同时是7和5的倍数,则只能加一次。 Private Sub Command1_Click() Dim s1%, s2%, s3%, i%s1 = 0 s2 = 0 For i = 200 To 400 If i Mod 5 = 0 Or i Mod 7 = 0 Then s1 = s1 + i End If Next i For i = 200 To 400 If i Mod 5 = 0 And i Mod 7 = 0 Then s2 = s2 + i End If Next i s3 = s1 - s2Print s3 End Sub 9、计算100300之间所有能被3和7整除的数之和P
10、rivate Sub Command1_Click()Dim iSum = 0For i = 100 To 300If i Mod 3 = 0 And i Mod 7 = 0 ThenSum = Sum + iEnd IfNext iPrint SumEnd Sub10、分别统计1-100中,满足3的倍数、7的倍数的数各有多少。Private Sub Command1_Click()Dim i, s3, s7s3 = 0s7 = 0For i = 1 To 100If i Mod 3 = 0 Thens3 = s3 + 1End IfNext iFor i = 1 To 100If i Mod
11、 7 = 0 Thens7 = s7 + 1End IfNext iPrint 3的倍数; s3Print 7的倍数; s7End Sub11、某次歌曲大奖赛,有7个评委。如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分。Private Sub Command1_Click()Dim max, a(1 To 7), min, sFor i = 1 To 7a(i) = Val(InputBox(输入第 & i & 个数)Next imax = a(1)min = a(1)s = a(1)For i = 2 To 7If a(i) max
12、 Then max = a(i)If a(i) min Then min = a(i)s = s + a(i)Next is = s - min - maxs = s / 5Print 平均分; sEnd Sub12、输入一串字符,统计其中字母A(不区分大小写)出现的次数。Private Sub Command1_Click()Dim c As String, a As Integerb = InputBox(请输入字符)For i = 1 To Len(b) c = UCase(Mid(b, i, 1) If c = A Then a = a + 1 End If Next i Print
13、a出现的次数:; aEnd Sub13、我国目前有13亿人口,按人口年增长率0.8%计算,多少年后我国人口将超过26亿。Private Sub Command1_Click()Dim a, ia = 13i = 0Do While a =2 )Private Sub Command1_Click()Dim F(11), i As LongF(0) = 1F(1) = 1For i = 2 To 10F(i) = F(i - 1) + F(i - 2)Next iFor i = 0 To 11Print F(i);Next iEnd Sub18、将输入的字符串以反序显示。例如:输入“ASDFGT
14、”,显示“TGFDSA”Private Sub Command1_Click()Dim a, b, c, d, na = InputBox(输入字符串)n = Len(a)For b = 1 To Int(n 2)c = Mid(a, b, 1)Mid(a, b, 1) = Mid(a, n - b + 1, 1)Mid(a, n - b + 1, 1) = cNext bPrint aEnd Sub19、随机产生10个30,100内的整数,求最大值及所对应的下标Private Sub Command1_Click()Dim a(1 To 10), mRandomizeFor I = 1 To
15、 10a(I) = Int(Rnd * 71) + 30Print a(I)Next IMax = a(1)For I = 2 To 10If a(I) Max Then Max = a(I): m = INext IPrint max=; MaxPrint max的下标为; mEnd Sub20、随机产生10个30,100内的整数,求最大值、最小值和平均值。Private Sub Command1_Click()Dim a(1 To 10)RandomizeFor i = 1 To 10a(i) = Int(Rnd * 71) + 30Print a(i)Next iMax = a(1)Mi
16、n = a(1)Avg = a(1)For i = 2 To 10If a(i) Max Then Max = a(i)If a(i) Min Then Min = a(i) Avg = Avg + a(i)Next iAvg = Avg / 10Print max=; MaxPrint min=; MinPrint avg=; AvgEnd Sub 21、随机产生10个30,100内的整数,求最小值及所对应的下标。Private Sub Command1_Click()Dim a(1 To 10), mRandomizeFor I = 1 To 10a(I) = Int(Rnd * 71)
17、+ 30Print a(I)Next IMin = 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 i Print Print max=; maxa, min=; mina, aver=; suma / 10 End Sub24、利用随机函数生成一个44的矩阵(即二维矩阵),范围是20,50内的整数,输出该矩阵所有数据之和Private Sub Form_Click()Dim a(3, 3), sum%For i = 0 To 3For j
18、 = 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 3sum = sum + a(i, j)Next jNext iPrint sum=; sumEnd Sub25、已知有序数组a(),编程插入x(x的值为14)。数组a中的元素分别为12,6,4,89,75,63,100,20,31。1. Private Sub Form_Click()Dim a(), i%, n%a = Ar
19、ray(12, 6, 4, 89, 75, 63, 100, 20, 31)n = UBound(a)For i = 0 To nPrint a(i);Next iPrintFor i = 5 To na(i - 1) = a(i)Next in = n - 1ReDim Preserve a(n)For i = 0 To nPrint a(i);Next iPrintEnd Sub26、编写一函数,计算Double类型一维数组所有元素的平均值。sub function xx(arr as double) as doubledim he as doubledim i as integerfor
20、 i=lbound(arr) to ubound(arr) he=he+arr(i)nextxx=he/(ubound(arr)-lbound(arr)+1)end function27、用函数过程求表达式1+1/2+1/3+1/4+1/n的和.function sumfs(i as integer) as double dim sums as double,j as integer for j=1 to i sums=sums+1/j next i sumfs=sumsend function28、编一子过程ProcMin,求一维数组a中的最小值,子过程的形参自己确定。Private Sub
21、 Command1_Click()Dim i%, n%Dim a(10) As IntegerRandomizeFor i = 1 To 10a(i) = Int(Rnd * 101 + 400)Print a( & i&; )= & a(i)Next iProcMin a()End SubSub ProcMin(b() As Integer)Dim i%, min%min = b(LBound(b)For i = LBound(b) + 1 To UBound(b)If b(i) y Then y = xmax = yEnd Function30、编写一个过程计算并输出区间100,1000内
22、所有素数的和(要求判断素数使用过程(函数或子过程)来实现。调用该过程。(提示:只能被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_Click()Dim i%, k%For i = 100 To 1000If sushu(i) Then List1.A
23、ddItem iNext iSum = 0For k = 0 To List1.ListCount - 1Sum = Sum + Val(List1.List(k)Next kLabel1 = 100,1000内所有素数和为: & SumEnd Sub13 :数内000= ) . ( 0 000 , ( = - , % 。素数的的整自能能示程用用。来程程函过数数断(的的有0000间输输算个写 ,) ( 0 0 + ( = = 0 ( 定己自自函值值最数求求函个 为小数 (= ) ( )( ) % )( ( &) 0 ) %( 定定定形程程值的 一一 程 = ) ) 00 ) ) ( ;( 0
24、) 00 , , ) 0= 0 ( ), , ( 之之据所该该输整 00围)维(的成函函随 0 ) + = (= )(= ) 0000 ) )(= )( ) * ( 0 % , 0 ( 值均小值求求数产显显放放正0个个产 000 * ) ( 0 % ( ) 0 ( 组组组式形,间 0范数数的个成成随 ;下下 ; ) = = * )0 ( _ 标的所所小,的的0, 机机 ; = = / + = (= ( = = = * = 0 ( 值值均值值值求, 机 标标 = )= = + * ( ) ( 下下下对最数数的0 个生生随 ,+ - = ( ( ( 符符输 , , ( “ “:例显显反字将 )(
25、0= - (= = ,( -(+-= , ) 契那那项前列斐斐求 ; ; 0= * *00 0 = 0 鸡 鸡 小 ( 案案案购编 鸡鸡 只只角每定假问问百百 = 0 = ( 素内00 只; 原 + ( 少多多猴,一只,个个的桃桃尚每;半子子剩吃;半掉一一若猴猴 + 0.* ( 亿 超国年,计00增口口人人前目 次出 + ) ( 输输 ( 数次次)大区区 中,串串输输 ;分 / - ) ( = )数 & 第输 , ) ( _ 分均的参参,法分个个分个去去按打赛个个委入分分果委,赛赛次 ;倍 数 0 = + = 00 = = , ( 少有有数倍数数 满0 计 = = 0 00 = ( _ 之数除
26、和和所00 、 - = = 0 0= 0 000 0= 00 0 , , ) _ 。一加, 和时时个(之的的倍内内0-0 数大大 = = 好良良 0 秀秀优 00=围范范 00 )绩成成( ( _ 格及为为0,换换 等为为 为为换0秀秀为0 制制为换转转成生 )是是 ( )年年年& 0 0- ) = ) 0:契波项前前数斐案方方求, 母元每每角角每定。问问素以少少多猴,剩 ,多的的桃都每个个半子剩剩二第第一掉第若若亿 超口口后后多算.长口口口 前数数次出大分分(其其计串分得得者参,办分分个分高高去,打赛赛某评评个别如评,大少有有各各倍 倍倍,0 之的 和和所0000。次只只,的是同个个。数 数的范范-0数数数的它它整 输输 产如显同与与生生产序,正正三格格及换 ,换 中转 良良换秀为00 制五出出绩制生除除整整被或,0能能但但能年件件闰(。示示,闰它它,年!没成成“框消消,于,!成喜喜示弹框, 于绩制分实实否程程此 ,次,= 方方二的的的输个过过 ( 结)(择选选13