西科大网络教育《程序设计语言VB》指导书作业参考答案.docx
西科大网络教育程序设计语言VB指导书作业参考答案第1题PrivateSubCommand1_Click()DimaAsLongDimnAsIntegern=0a=Val()DoIfa<100000Thena=a*2n=n+1ElseExitDoEndIfLoopMSgBOX”共翻“&n&”倍”EndSub第2题PrivateSubCommand1_Click()Fori=1To50Forj=2To50Step2Fork=5To50Step5Ifi+j+k=50ThenPrinti&”个1分+“&j&”个2分+"&k&”个5分”EndIfNextkNextjNextiEndSub第3题PrivateSubCommand1_Click()Dimprod(4)AsSingleDimalIprodAsSingleDimmaxAsSingleDimposAsInteger,最大数位置alIprod=0max=0pos=0Fori=1To4prod(i)=InPUtBoX("输入第“&i&”个季度的产量”)alIprod=alIprod+prod(i)Ifmax<prod(i)Thenmax=prod(i)EndIfNextiFori=1To4Print&i&"季度的产量占全年的百分比="&prod(i)/allprod*100&"%Ifprod(i)=maxThenpos=iEndIfNextiPrint”最大产量的季度="&POSEndSub第4题PrivateSubCommand1_Click()DimaAsSingleDimnAsIntegern=Oa=Val()Doa=a*0.5n=n+1Ifa<0.001ThenExitDoEndIfLoopMSgBOX"分半的次数="&nEndSub第5题PrivateSubCommand1_Click()DimscoreAsSingleDima,b,c,dAsInteger'a,b,c,d分别为各分数段的人数Fori=1To6score=Val(InPUtBox("请输入第“&i&”位学生的成绩”)Ifscore<60Thena=a+IEIseIfscore<=70Thenb=b+1ElseIfscore<100ThenElsed=d+1EndIfNextiPrint”不及格:'60-70",”71-99",“100”Printa,b,c,dEndSub第6题PrivateSubCommand1_Click()DimaAsSingleDimbAsSinglea=Val()b=0Ifa>=800Anda<=2000Thenb=a*0.02EIseIfa>2000Thenb=a*0.05EndIfMSgBOX”应收税="&b&”元"EndSub第7题PrivateSubCommand1_Click()Dima,sAsIntegern=InPUtBOX("请输入需要计算的次数")s=0Fori=1Tons=s+i*(i+1)NextiMsgBox,S="&sEndSub第8题PrivateSubCommand1_Click()DimaAsIntegerDimallAsIntegerall=0a=Val()Ifa<0Ora>100ThenMsgBox”输入的数应在0-100之间”ElseFori=0ToaStep2all=all+iNextiEndIfMSgBOX”小于此数的偶数之和为:”&allEndSub第9题PrivateSubCommand1_Click()DimnAsInteger,定义个数DimscoreAsInteger,定义单个成绩Dimal!ScoreAsInteger'定义成绩的累加DimmaxAsInteger,定义存放最大数的变量DimminAsInteger,定义存放最小数的变量max=0min=10n=OallScore=0Doscore=Val(InPUtBOx("请输入第”&(n+1)&”位评委的成绩”)Ifscore>10ThenMSgBoX”成绩应在010之间,请重输”GoTo10,跳转到10EIseIfscore<0ThenExitDoElseIfmax<scoreThenmax=scoreEndIfIfmin>scoreThenmin=scoreEndIfallScore=allScore+scoren=n+1EndIf10LoopallScore=allScore-max-min,去掉一个最大数和一个最小数n=n-2=allScore*l#/n'*1.0的目的是将整数转换为小数EndSub第10题PrivateSubCommand1_Click()DimpriceAsSingle,票价DimnumAsInteger,订票数DimmonthAsInteger'月份price=InPUtBOx("请输入票价")num=InPUtBOx("请输入订票数”)month=InPUtBox(”请输入月份")Ifmonth>=7Andmonth<=9Then,若在7-9月份Ifnum>20Thenprice=price*num*(I-0.15),优惠15%EIseIfnum>10Thenprice=price*num*(I-0.05),优惠5%EndIfElseIfmonth>=IAndmonth<=5Andmonth=11Then,若在1-5月份和11月份Ifnum>20Thenprice=price*num*(I-0.25),优惠25%EIseIfnum>10Thenprice=price*num*(I-0.15),优惠15%EndIfEndIf=priceEndSub第11题PrivateSubCommand1_Click()DimstrlAsStringstrl=IfMid(Strl,1,3)="358"Then,mid函数中第2个参数代表取子串的起始位置,'第3个参数代表取子串的长度on=”一等奖”ElseIfMid(strl,1,2)=',35"Thenon二"二等奖”ElseIfMid(str1,1,l)="3,Thenon二"三等奖”Elseon二"谢谢参与”EndIfEndSub第12题Dima,b,cAsIntegerDimx1,x2AsSinglePrivateSubCommand1_Click()a=Val()b=Val()c=Val()Ifb*b-4*a*c<0ThenPrint”此方程无实根”EIseIfb*b-4*a*c=OThenxl=b/(2*a)Print”实根xl=x2="&xlElsexl=(b+Sqr(b*b-4*a*c)/(2*a)xl=(b-Sqr(b*b-4*ac)/(2*a)Print”实根xl="&xlPrint”实根x2="&x2EndIfEndSub第13题PrivateSubOptionl_Click()EndSubPrivateSubOption2_Click()_IIHEndSuhPrivateSubOption3_Click()="Good"EndSub第14题PrivateSubCheckl_Click()If=CheckedAnd=UncheckedAnd=CheckedThen="Hello"Else_IHIEndIfEndSubPrivateSubCheck2_Click()If=CheckedAnd=UncheckedAnd=CheckedThen="Hello"Else_IHIEndIfEndSubPrivateSubCheck3_Click()If=CheckedAnd=UncheckedAnd=CheckedThen="Hello"Else_IHIEndIfEndSub第15题-ll×lPrivateSubCommand1_Click()Jtfl.DimstrlAsStringPrivateSubTextl_GotFocus()=strlEndSubPrivateSubTextl_LostFocus()strl=_IHIEndSubPrivateSubText2_GotFocus()=strlEndSubPrivateSubText2_LostFocus()strl=一HllEndSub第16题PrivateSubCommand1_Click()Dima(5,5)AsIntegerDimmax,maxi,maxjAsIntegermax=0Fori=1To5Forj=1To5a(i,j)=Int(Rnd*99)+1NextjNextiFori=1To5Forj=1To5Printa(i,j);,”;NextjPrintNextiFori=1To5Forj=1To5Ifmax<a(ij)Thenmax=a(ij)maxi=imaxj=jEndIfNextjNextiPrint"最大元素的值:"&max&"行:"&maxi&咧:"&maxjEndSub第17题PrivateSubCommand1_Click()ed=TrueEndSubPrivateSubCommand2_Click()ed=FalseEndSubPrivateSubCOmmand3_Click()_IIHEndSubPrivateSubTimerl_Timer()=NowEndSub第18题菜单建立如下:代码如下:PrivateSubbegin_Click()OEndSubPrivateSubexit_Click()UnloadMeEndSubPrivateSubstop_Click()UnloadForm2EndSub第19题在SCore.txt文件中存放了10个运动员IOO米跑的成绩,例如:13.512.815.416.113.212.113.614.313.213.3PrivateSubCommand1_Click()Dima(10)AsIntegerDimsc(10)AsSingleOpen&",'ForInputAs#1Fori=ITo10Input#1,sc(i)a(i)=iNextiClose#1Fori=1To9Forj=i+1To10Ifsc(i)>sc(j)Then,按从小到大顺序排列temp=sc(i)咬换SC与sc(j冲的数据sc(i)=sc(j)sc(j)=temptempi=a(i)'交换a(i)与a(j)中的数据(即名次也得交换)a(i)=a(j)