「VB程序设计30道编程题[优选材料]」.doc_第1页
「VB程序设计30道编程题[优选材料]」.doc_第2页
免费预览已结束,剩余4页可下载查看

下载本文档

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

文档简介

1.输入3个数,输出最大的数Private Sub Command11_Click()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=Val(InputBox(input)B=Val(InputBox(input)c=Val(InputBox(input)s=B2-4*a*cIf a0 ThenIf s=0 ThenMsgBox(两个相等实根)ElseIf s0 ThenMsgBox(两个不相等实根)ElseIf s=60 ThenMsgBox(恭喜!成绩通过!)ElseMsgBox(抱歉!成绩没有通过!)End IfEnd SubPrivate Sub Command14_Click()4.输入一年份,判断它是否为闰年,并显示有关信息。(判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除)yes=Val(InputBox(year)If yes Mod 4=0 And yes Mod 1000 Or yes Mod 400=0 ThenMsgBox(yes&是闰年)ElseMsgBox(yes&不是闰年)End IfEnd SubPrivate Sub Command15_Click()5.输入学生的百分制成绩,转换输出为五级制成绩,90100分转换为优秀,8089转换为良好,7079转换为中等,6069转换为及格,060转换为不及格。score=Val(InputBox(input)Select Case scoreCase Is=90MsgBox(优秀)Case Is=80MsgBox(良好)Case Is=70MsgBox(中)Case Is=60MsgBox(及格)Case ElseMsgBox(不及格)End SelectEnd Sub6.随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。例如,产生246,输出是642。a=645n=Len(a)For i=1 To Int(n/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 Sub7.输入两个整数,求它们的最大公约数m=Val(InputBox(input m值)n=Val(InputBox(input n值)If nm Thent=nn=mm=tEnd Ifr=m Mod nDo While r0m=nn=rr=m Mod nLoopMsgBox(最大公约数=&n)End Sub21.随机产生10个30,100内的整数,求最小值及所对应的下标。Dim a(10)As IntegerFor i=0 To 9a(i)=Int(Rnd*70+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 Command2_Click()8.编程求200-400范围内5的倍数或7的倍数之和。(一个数如果同时是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的倍数之和sum=&sum1)MsgBox(7的倍数之和sum=&sum2)End SubPrivate Sub Command20_Click()17.编程求斐波那契数列前11项。(斐波那契数列:F(0)=f(1)=1,F(n)=F(n-1)+F(n-2)n=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(i);Next iEnd SubPrivate Sub Command21_Click()18.将输入的字符串以反序显示。例如:输入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内的整数,求最大值及所对应的下标Dim a(10)As Integer,max%For i=0 To 9a(i)=Int(Rnd*70+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.随机产生10个30,100内的整数,求最大值、最小值和平均值。Dim a(10)As Integer,max%,min%For i=0 To 9a(i)=Int(Rnd*70+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 Command24_Click()24.利用随机函数生成一个44的矩阵(即二维矩阵),范围是20,50内的整数,输出该矩阵所有数据之和Dim a(4,4)As IntegerDim sum%,i%,j%For i=0 To 3For j=0 To 3a(i,j)=Int(Rnd*30+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(),编程插入x(x的值为14)。数组a中的元素分别为12,6,4,89,75,63,100,20,31。Dim a(),iMin%,n%,i%,j%,t%a=Array(2,6,4,89,75,63,100,20,31)X=14n=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=jNext jt=a(i)i+1n个元素中选出的最小元素与第i个元素交换a(i)=a(iMin)a(iMin)=tNext iFor k=0 To n查找欲插入数x在数组中的位置If Xa(k)Then Exit ForNext kReDim Preserve a(n+1)数组增加一个元素For i=n To k Step-1数组元素后移一位,腾出位置a(i+1)=a(i)Next ia(k)=XFor i=0 To n+1Print a(i);NextEnd SubPrivate Sub Command26_Click()26.编写一函数,计算Double类型一维数组所有元素的平均值。Dim a(),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 SubFunction sum1%(X()Dim i%sum1=0For i=0 To UBound(X)sum1=sum1+X(i)Next iEnd FunctionPrivate Sub Command27_Click()27.用函数过程求表达式1+1/2+1/3+1/4+1/n的和.n=InputBox(INPUT)s=sum2(n)MsgBox(SUM2=&s)End SubFunction sum2!(ByVal n As Integer)Dim i%sum2=0For i=1 To nsum2=sum2+1/iNext iEnd FunctionPrivate 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 SubSub procmin(X(),ByRef min%)Dim i%min=X(0)For i=1 To UBound(X)If X(i)max Then max=X(i)Next iEnd FunctionPrivate Sub Command3_Click()9.计算100300之间所有能被3和7整除的数之和Dim sum%sum=0For i=100 To 300If i Mod 3=0 And i Mod 7=0 Thensum=sum+iPrivate Sub Command30_Click()30.编写一个过程计算并输出区间100,1000内所有素数的和(要求判断素数使用过程(函数或子过程)来实现。调用该过程。(提示:只能被1和自身整除的自然数称为素数。)Dim i%,sum!,f%sum=0For i=100 To 1000Call procs(i,f)If f=1 Thensum=sum+iEnd IfNext iMsgBox(sum=&sum)End SubSub procs(ByVal X%,ByRef f%)Dim i%f=1For i=2 To X-1If i Mod X=0 Thenf=0Exit ForEnd IfNext iEnd SubPrivate Sub Command4_Click()10.分别统计1-100中,满足3的倍数、7的倍数的数各有多少m=0:n=0For i=1 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个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分Dim sum%,max%,min%sum=0:max=0:min=999For i=1 To 7X=Val(InputBox(input)If max=X Thenmin=XEnd Ifsum=sum+XNext iAvg=(sum-max-min)/5MsgBox(最高分=&max)MsgBox(最低分=&min)MsgBox(总和=&sum)MsgBox(平均分=&Avg)End Sub12.输入一串字符,统计其中字母A(不区分大小写)出现的次数。Dim ch As Stringch=ASDEASn=0For i=1 To Len(ch)st=Mid(ch,i,1)If UCase(st)=AThenn=n+1End IfNext iMsgBox(字符串中出现A字符的系数&n)End SubPrivate Sub Command6_Click()13.我国目前有13亿人口,按人口年增长率0.8%计算,多少年后我国人口将超过26亿。n=0X=13Do While X=26X=X*1.008n=n+1LoopMsgBox(n)End SubPrivate Sub Command7_Click()14.小猴有桃若干,第一天吃掉一半多一个;第二天吃剩下桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天只剩一个,问小猴原有桃多少?X=1For i=6 To 1 Step-1X=(X+1)*2Next iMsgBox(X)End SubPrivate Sub Command8_Click()15.求100以内的素数F

温馨提示

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

评论

0/150

提交评论