您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > VB程序20道考试题
1、求100以内的素数。PrivateSubForm_Click()Dimi%,j%Fori=2To100Forj=2Toi-1IfiModj=0ThenExitForNextjIfj=iThenPrinti;NextiEndSub2、随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。例如,产生246,输出是642。Dima%,m%,b%,c%,d%PrivateSubForm_Click()a=Int(Rnd*900+100)Printad=(aMod10)*100b=(aMod100)-(aMod10)c=a\100m=c+b+dPrintmEndSub3、利用InputBox函数输入两个整数,求它们的最大公约数。PrivateSubcommand1_click()DimxAsInteger,yAsIntegerx=InputBox(请输入x的值)y=InputBox(请输入y的)Printx&和&y&的最大公约数是;;gys(x,y)EndSubPrivateFunctiongys(ByValmAsInteger,ByValnAsInteger)AsIntegerDimaAsIntegera=mModnDoUntila=0m=n:n=a:a=mModnLoopgys=nEndFunction4、编程求200--400范围内5的倍数或7的倍数之和。(一个数如果同时是7和5的倍数,则只能加一次。)PrivateSubCommand1_Click()Dims1%,s2%,s3%,i%s1=0s2=0Fori=200To400IfiMod5=0OriMod7=0Thens1=s1+iEndIfNextiFori=200To400IfiMod5=0AndiMod7=0Thens2=s2+iEndIfNextis3=s1-s2Prints3EndSub5、输入一年份,判断它是否为闰年,并显示有关信息。(判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除)PrivateSubCommand1_Click()DimaAsIntegera=InputBox(请输入年份)IfaMod400=0OraMod4=0AndaMod1000ThenMsgBox(Yes)ElseMsgBox(No)EndIfEndSub6、计算100~300之间所有能被3和7整除的数之和。PrivateSubForm_Click()Fori=100To300IfiMod21=0Thens=s+iPrinti;EndIfNextiPrintPrints=;sEndSub7、某次歌曲大奖赛,有7个评委。如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分。PrivateSubCommand1_Click()Dimmark!,max!,min!,aver!,i%aver=0Fori=1To7mark=InputBox(输入第&i&位评委的打分)Ifi=1Thenmax=mark:min=markElseIfmarkminThenmin=markIfmarkmaxThenmax=markEndIfaver=aver+markNextiaver=(aver-min-max)/5PrintaverEndSub8、随机产生10个[30,100]内的整数,求最大值及所对应的下标PrivateSubCommand1_Click()Dima(1To10)AsInteger,i%,maxa%,m%Fori=1To10a(i)=Int(Rnd*70)+30Nextimaxa=a(1)Fori=2To10Ifa(i)a(1)Thenmaxa=a(i)m=iEndIfNextiFori=1To10Printa(i);NextiPrintmaxa=&maxa;下标为&mEndSub9、随机产生10个[30,100]内的整数,求最小值及所对应的下标。PrivateSubCommand1_Click()Dima(1To10)AsInteger,i%,mina%,m%Fori=1To10a(i)=Int(Rnd*71+30)Nextim=1mina=a(1)Fori=2To10Ifa(i)a(1)Thenmina=a(i)m=iEndIfNextiFori=1To10Printa(i)NextiPrintmina=&mina;下标为&mEndSub10、随机生成一个整型的二维数组,范围在[10,20]之间,以下三角形式输出该数组。PrivateSubCommand1_Click()Dima%(4,4)Picture1.ClsFori=0To4Forj=0To4a(i,j)=Int(Rnd*11+10)NextjNextiFori=0To4Forj=0ToiPicture1.PrintTab(j*6);a(i,j);NextjPicture1.PrintNextiEndSub11、编写一个过程计算并输出区间[100,1000]内所有素数的和(要求判断素数使用过程(函数或子过程)来实现。调用该过程。(提示:只能被1和自身整除的自然数称为素数。)Functionsushu%(ByValx%)Dimm%,TagAsBoolean,i%m=Val(x)Tag=TrueFori=2Tom-1If(mModi)=0ThenTag=FalseNextiIfTagThensushu=xEndFunctionPrivateSubCommand1_Click()Dimi%,k%Fori=100To1000Ifsushu(i)ThenList1.AddItemiNextiSum=0Fork=0ToList1.ListCount-1Sum=Sum+Val(List1.List(k))NextkLabel1=[100,1000]内所有素数和为:&SumEndSub12、随机产生10个1~100的正整数放入数组,显示产生的数,求最大值、最小值、平均值。PrivateSubForm_Click()Dima(1To10)AsInteger,amin,amax,i%,sum%Fori=1To10a(i)=Int(Rnd*71+30)Nextiamin=a(1)amax=a(1)sum=a(1)Fori=2To10Ifa(i)amaxThenamax=a(i)Ifa(i)aminThenamin=a(i)sum=sum+a(i)NextiFori=1To10Printa(i);NextiPrintPrintmax=;amax,min=;amin,avera=;sum/10EndSub13、利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[20,50]内的整数,输出该矩阵所有数据之和PrivateSubForm_Click()Dima%(3,3)Fori=0To3Forj=0To3a(i,j)=Int(Rnd*31+20)PrintTab(j*5);a(i,j);NextjNextis=a(0,0)+a(1,1)+a(2,2)+a(3,3)+a(3,0)+a(2,1)+a(1,2)+a(0,3)Print所有数据之和为:;s;EndSub14、随机产生10个[30,100]内的整数,求最大值、最小值和平均值。Dima(1To10)AsInteger,amin,amax,i%,avera!PrivateSubForm_Click()Fori=1To10a(i)=Int(Rnd*71+30)Nextiamin=a(1)amax=a(1)avera=a(1)Fori=2To10Ifa(i)amaxThenamax=a(i)Ifa(i)aminThenamin=a(i)avera=avera+a(i)NextiFori=1To10Printa(i);NextiPrintPrintmax=;amax,min=;amin,avera=;avera/10EndSub15、编一子过程ProcMin,求一维数组a中的最小值,子过程的形参自己确定。PrivateSubForm_Click()Dima(1To10),amin,i%Fori=1To10a(i)=Int(Rnd*101)Printa(i);NextiCallProcMin(a(),amin)PrintPrintamin=;aminEndSubSubProcMin(b(),min)Dimi%min=b(LBound(b))Fori=LBound(b)+1ToUBound(b)Ifb(i)minThenmin=b(i)NextiEndSub16、编一个选择排序法子过程,对已知的若干整数按递减次序排列。提示:子过程的形式为subsort1(a%())。PrivateSubCommand1_Click()Dimb%(10),i%Print排序前Fori=1To10b(i)=Int(Rnd*100)Printb(i);NextiPrintPrint排序后Callsort(b())EndSubSubsort(a%())Dimi%,m%,n%,min%,t%n=UBound(a)Fori=0Ton-1min=iForj=i+1TonIfa(j)a(min)Thenmin=jNextjm=a(i):a(i)=a(min):a(min)=mNextiFori=LBound(a)ToUBound(a)Printa(i);NextiEndSub17、编一个冒泡排序法子过程,对已知的若干整数按递增次序排列。提示:子过程的形式为subsort1(a%())。PrivateSubCommand1_Click()Dimb%(10),i%Print排序前Fori=0To9b(i)=Int(Rnd*100)Printb(i);NextiPrintPrint排序后Callsort(b())EndSubSubsort(a%())Dimi%,m%,n%,min%,j%n=UBound(a)Fori=1TonForj=0Ton-1-iIfa(j)a(j+1)Thenm=a(j):a(j)=a(j+1):a(j+1)=mNextjNextiFori=LBound(a)ToUBound(a)Printa(i);NextiEndSub18、输入一串字符,统计其中字母A(不区分大小写)出现的次数。PrivateSubCommand1_Click()Dima(1To26)AsInteger,cAsStringle=Len(Text1)Fori=1Tolec=UCase(Mid(Text1,i,1))Ifc=AThenj=Asc(c)-65+1a(j)=a(j)+1EndIfNextiLabel2=A的个数为&a(j)EndSub19、已知有序数组a(),编程插入x(x的值为14)。数组a中的元素分别为{12,6,4,89,75,63,100,20,31}。PrivateSubCommand1_Click()Dima(),i%,m%,x%,n%a=Array(4,6,12,20,31,63,75,89,100)n=UBound(a)x=Val(Text1)Print插入前Fori=0TonPrinta(i);NextiForm=0TonIfxa(m)ThenExitForNextmReDimPreservea(n+1)Fori=nTomStep-1a(i+1)=a(i)Nextia(m)=xPrintPrint插入后Fori=0Ton+1Printa(i);NextiEndSub20、我国目前有13亿人口,按人口年增长率0.8%计算,多少年后我国人口将超过26亿。PrivateSubCommand1_Click()n=Int(Log(2)/Log(1.008)+1)Label1=n&年后人数超过26亿EndSub求100以内的素数。随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。例如,产生246,输
本文标题:VB程序20道考试题
链接地址:https://www.777doc.com/doc-4652559 .html