VB程序设计编程考试题及答案1.输入3个数,输出最大的数PrivateSubcommand1_click()DimmaxFori=1To3n=Val(InputBox(输入第&i&个数))IfnmaxThenmax=nEndIfNextPrint三个数中最大的数是;maxEndSub2.有一元二次方程:aX2+bX+c=0,依次输入a,b,c,判断此方程是否有实根PrivateSubCommand1_Click()Dima,b,c,na=Text1b=Text2c=Text3n=b*b-4*a*cIfn=0ThenLabel4=方程有根ElseLabel4=方程无根EndIfEndSub3.输入一个百分制的成绩,若大于等于60,则用消息框弹出,显示“恭喜!成绩通过!”,若小于60,则弹出消息框,显示“抱歉!成绩没有通过!PrivateSubForm_Load()Text1=EndSubPrivateSubCommand1_Click()Dimnn=Text1Ifn=60ThenVal(MsgBox(恭喜!成绩通过!))ElseVal(MsgBox(抱歉!成绩没有通过!))EndIfEndSub4.输入一年份,判断它是否为闰年,并显示有关信息。(判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除)PrivateSubCommand1_Click()Dimy%y=InputBox(请输入年份)IfyMod4=0AndyMod1000OryMod400=0ThenVal(MsgBox(闰年!))ElseVal(MsgBox(平年!))EndIfEndSub5.输入学生的百分制成绩,转换输出为五级制成绩,90~100分转换为优秀,80~89转换为良好,70~79转换为中等,60~69转换为及格,0~60转换为不及格。PrivateSubCommand1_Click()a=Val(InputBox(请输入成绩))Ifa100ThenPrint超出范围Ifa=90Anda=100ThenPrint优秀Ifa=80Anda90ThenPrint良好Ifa=70Anda80ThenPrint中等Ifa=60Anda70ThenPrint及格Ifa60ThenPrint不及格EndSub6.随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。例如,产生246,输出是642。PrivateSubCommand1_Click()Dimx%,x1%,x2%,x3%x=Text1x1=xMod10x2=(xMod100)\10x3=x\100Label1=x1*100+x2*10+x3EndSub7.输入两个整数,求它们的最大公约数。privateSubCommand1_Click()n1=InputBox(输入n)m1=InputBox(输入m)Ifm1n1Thenm=m1:n=n1Elsem=n1:n=m1EndIfr=mModnDoWhiler0m=nn=rr=mModnLoopPrintmn的最大公约数是:;nEndSub8.编程求200--400范围内5的倍数或7的倍数之和。(一个数如果同时是7和5的倍数,则只能加一次。。PrivateSubCommand1_Click()Fori=200To400IfiMod5=0OriMod7=0ThenSum=Sum+iEndIfNextiFori=200To400IfiMod5=0AndiMod7=0ThenSum=Sum-iEndIfNextiPrint“倍数之和=”;SumEndSub9.计算100~300之间所有能被3和7整除的数之和PrivateSubCommand1_Click()DimiSum=0Fori=100To300IfiMod3=0AndiMod7=0ThenSum=Sum+iEndIfNextiPrintSumEndSub10.分别统计1-100中,满足3的倍数、7的倍数的数各有多少。PrivateSubCommand1_Click()Dimi,s3,s7s3=0s7=0Fori=1To100IfiMod3=0Thens3=s3+1EndIfNextiFori=1To100IfiMod7=0Thens7=s7+1EndIfNextiPrint3的倍数;s3Print7的倍数;s7EndSub11.某次歌曲大奖赛,有7个评委。如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分。PrivateSubCommand1_Click()Dimmax,a(1To7),min,sFori=1To7a(i)=Val(InputBox(输入第&i&个数))Nextimax=a(1)min=a(1)s=a(1)Fori=2To7Ifa(i)maxThenmax=a(i)Ifa(i)minThenmin=a(i)s=s+a(i)Nextis=s-min-maxs=s/5Print平均分;sEndSub12.输入一串字符,统计其中字母A(不区分大小写)出现的次数。PrivateSubCommand1_Click()DimcAsString,aAsIntegerb=InputBox(请输入字符)Fori=1ToLen(b)c=UCase(Mid(b,i,1))Ifc=AThena=a+1EndIfNextiPrinta出现的次数:;aEndSub13.我国目前有13亿人口,按人口年增长率0.8%计算,多少年后我国人口将超过26亿。PrivateSubCommand1_Click()Dima,ia=13i=0DoWhilea26a=a*(1.008)i=i+1LoopPrintiEndSub14.小猴有桃若干,第一天吃掉一半多一个;第二天吃剩下桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天只剩一个,问小猴原有桃多少?PrivateSubCommand1_Click()Dima,ia=1Fori=1To6a=2*(a+1)NextiPrint小猴原有桃;a;”只”EndSub15.求100以内的素数PrivateSubCommand1_Click()Dimi,jFori=2To100Forj=2Toi-1IfiModj=0ThenExitForNextjIfj=iThenPrintiNextiEndSub16.百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元,编程求解购鸡方案。PrivateSubCommand1_Click()Print小鸡;;母鸡;;公鸡PrintForx=1To100Fory=1To100Forz=1To100If0.5*x+2*y+3*z=100ThenPrint;x;;y;;zEndIfNextzNextyNextxEndSub17.编程求斐波那契数列前11项。(斐波那契数列:F(0)=f(1)=1,F(n)=F(n-1)+F(n-2)n=2)PrivateSubCommand1_Click()DimF(11),iAsLongF(0)=1F(1)=1Fori=2To10F(i)=F(i-1)+F(i-2)NextiFori=0To11PrintF(i);NextiEndSub18.将输入的字符串以反序显示。例如:输入“ASDFGT”,显示“TGFDSA”PrivateSubCommand1_Click()Dima,b,c,d,na=InputBox(输入字符串)n=Len(a)Forb=1ToInt(n\2)c=Mid(a,b,1)Mid(a,b,1)=Mid(a,n-b+1,1)Mid(a,n-b+1,1)=cNextbPrintaEndSub19.随机产生10个[30,100]内的整数,求最大值及所对应的下标PrivateSubCommand1_Click()Dima(1To10),mRandomizeForI=1To10a(I)=Int(Rnd*71)+30Printa(I)NextIMax=a(1)ForI=2To10Ifa(I)MaxThenMax=a(I):m=INextIPrintmax=;MaxPrintmax的下标为;mEndSub20.随机产生10个[30,100]内的整数,求最大值、最小值和平均值。PrivateSubCommand1_Click()Dima(1To10)Fori=1To10a(i)=Int(Rnd*71)+30Printa(i)NextiMax=a(1)Min=a(1)Avg=a(1)Fori=2To10Ifa(i)MaxThenMax=a(i)Ifa(i)MinThenMin=a(i)Avg=Avg+a(i)NextiAvg=Avg/10Printmax=;MaxPrintmin=;MinPrintavg=;AvgEndSub21.随机产生10个[30,100]内的整数,求最小值及所对应的下标。PrivateSubCommand1_Click()Dima(1To10),mRandomizeForI=1To10a(I)=Int(Rnd*71)+30Printa(I)NextIMin=a(1)ForI=2To10Ifa(I)MinThenMin=a(I):m=INextIPrintmin=;MinPrintmin的下标为;mEndSub22.随机生成一个整型的二维数组,范围在[10,20]之间,以下三角形式输出该数组。PrivateSubCommand1_Click()Dima(1To10,1To10),i,jAsIntegerFori=1To10Forj=1To10a(i,j)=Int(Rnd*11+10)NextNextFori=1To10Forj=1ToiPrintSpc(3);a(i,j);NextPrintNextEndSub23.随机产生10个1~100的正整数放入数组,显示产生的数,求最大值、最小值、平均值。PrivateSubCommand1_Click()Dima(1To10)Fori=1To10a(i)=Int(Rnd*101)+1Printa(i)NextiMax=a(1)Min=a(1)Avg=a(1)Fori=2To10Ifa(i)MaxThenMax=a(i)Ifa(i)MinThenMin=a(i)Avg=Avg+a(i)NextiAvg=Avg/10Printmax=;MaxPrintmin=;MinPrintavg=;AvgEndSub24.利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[20,50]内的整数,输出该矩阵所有数据之和PrivateSubCommand1_Click()Dima%(4,5),sumFori=1To4Forj=1To4a(i,j)=Int(Rnd*31)+20Printa(i,j);sum=sum+a(i,j)NextjPrint'换行NextiPrintsum=;sumEndSub25.已知有序数组a(),编程插入x(x的值为14)。数组a中的元素分别为{12,6,4,89,75,63,100,20,31}。PrivateSubCommand1_Click()Dima(),i%,k%,x%,n%a=Array(4,6,12,20,31,63,75,89,100)n=UBound(a)x=Val(InputBox(请输入所要插入数))Fork=0TonIfxa(k)ThenExitForNextkReDimPreservea(n+1)Fori=nTokStep-1a(i+1)=a(i)Nextia(k)=xFori=0Ton+1Printa(i);NextiEndSub26.编写一函数,计算Double类型一维数组所有元素的平均值。27.编一子过程ProcMin,求一维数组a中的最小值,子过程的形参自己确定PrivateSubcommand1_Click()Dima(1To10),min,i