您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 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=0AndaMod100<>0ThenMsgBox("Yes")ElseMsgBox("No")EndIfEndSub6、计算100~300之间所有能被3和7整除的数之和。PrivateSubForm_Click()Fori=100To300IfiMod21=0Thens=s+iPrinti;EndIfNextiPrintPrint"s=";sEndSub7、某次歌曲大奖赛,有7个评委。如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分。PrivateSubCommand1_Click()Dimmark!,max!,min!,aver!,i%aver=0Fori=1To7mark=InputBox("输入第"&i&"位评委的打分")Ifi=1Thenmax=mark:min=markElseIfmark<minThenmin=markIfmark>maxThenmax=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);NextiPrint"maxa="&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)NextiPrint"mina="&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);NextiPrintPrint"max=";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);NextiPrintPrint"max=";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)PrintPrint"amin=";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="A"Thenj=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}。Private
本文标题:VB程序20道考试题
链接地址:https://www.777doc.com/doc-3689695 .html