湖南省计算机二级题库2程序改错.docx
《湖南省计算机二级题库2程序改错.docx》由会员分享,可在线阅读,更多相关《湖南省计算机二级题库2程序改错.docx(108页珍藏版)》请在冰豆网上搜索。
湖南省计算机二级题库2程序改错
【1】
程序功能:
已知24有8个正整数因子(即:
1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。
求[100,300]之间能被其因子数目整除的数中最大的数。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()DimNAsIntegerDimsAsIntegerDimiAsIntegerForN=300To100s=0Fori=1ToNIfNModi=0Thens=s+1EndIfNextiIfsModN=0ThenPrintNExitForEndIfNextNEndSub
【296】
【2】
程序功能:
求这样的一个三位数,其个位数不大于2。
若将个位数移动到百位之前(如:
321移成132),新三位数大于原三位数的两倍。
程序中有两行错误,改正错误,使程序能输出正确的结果。
PrivateSubCommand1_Click()Fori=0To9Forj=0To9Fork=0To9n=100*i+10*j+km=100*k+10*i+jIfm>=2*nThenPrintnNextkNextjNextiEndSub
【102】
【3】
程序功能:
有一堆桃子(个数不超过1000),如果分成4个一组余2个;7个一组余3个;9个一组余5个。
求这堆桃子的个数有几种可能。
程序中有错误,改正错误,使程序能输出正确的结果。
PrivateSubCommand1_Click()Forx=1To1000IfxMod4=2OrxMod7=3OrxMod9=5Theni=i+1EndIfNextxPrintiEndSub
【4】
【4】
程序功能:
求个位数是6,且能被3整除的所有四位数之和。
程序中有错误,改正错误,使程序能输出正确的结果。
PrivateSubCommand1_Click()Dimi%Dims&s=0Fori=1000To9999IfiMod3=0OriMod1000=6Thens=s+iEndIfNextiPrintsEndSub
【1653300】
【5】
程序功能:
求四位奇数中,各位数字之积(积不为0)是60的倍数的数之和。
程序中有一行错误,改正错误,使程序能输出正确的结果。
PrivateSubCommand1_Click()num1=0Forx=1001To9999Step2a=Int(x/1000)‘千位b=Int(x/100)-a*10‘百位c=Int(x/10)-a*100-b*10‘十位d=x-a*1000-b*100-c*10‘个位Ifa*b*c*dMod60=0Thennum1=num1+xEndIfNextxPrintnum1EndSub
【3456254】
【6】
程序功能:
求满足以下条件的(a,b,c)的组数:
(1)1/(a^2)+1/(b^2)=1/(c^2);
(2)a>b>c;(3)a+b+c<80。
程序中有错误,改正错误,使程序能输出正确的结果。
PrivateSubCommand1_Click()s=0Forc=1To80Forb=1To80Fora=1To80Ifa+b+c<80Or1/(a^2)+1/(b^2)=1/(c^2)Thens=s+1Nexta,b,cPrintsEndSub
【1】
【7】
程序功能:
求满足以下条件的(a,b,c)的组数:
(1)1/(a^2)+1/(b^2)=1/(c^2);
(2)a>b>c;(3)a+b+c<100。
程序有错误,改正错误,使程序能输出正确的结果。
PrivateSubCommand1_Click()s=0Forc=1To100Forb=1To100Fora=1To100Ifa+b+c<100Or1/(a^2)+1/(b^2)=1/(c^2)Thens=s+1NextaNextbNextcPrintsEndSub
【2】
【8】
程序功能:
求四位偶数中,各位数字之和是30的倍数的数之和。
程序中有错误,改正错误,使程序能输出正确结果。
PrivateSubCommand1_Click()s2=0Forx=1001To9999Step2s1=0a=Int(x/1000)b=Int(x/100)-a*10c=Int(x/10)-a*100-b*10d=x-a*1000-b*100-c*10s1=a+b+c+dIfs1Mod30=0Thens1=s1+xEndIfNextxPrints2EndSub
【288840】
【9】
程序功能:
求四位偶数中,所有各位数字之和是25的倍数的数之和。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()s2=0Forx=1001To9999Step2s1=0a=Int(x/1000)b=Int(x/100)-a*10c=Int(x/10)-a*100-b*10d=x-a*1000-b*100-c*10s1=a+b+c+dIfmod(s1,25)=0Thens2=s2+xEndIfNextxPrints2EndSub
【1112360】
【10】
程序功能:
求字符串"87IM&2345kjwdssdcf"中数,字母字符的ASCII码之和。
程序中有一行错误,改正错误,使程序能输出正确的结果。
PrivateSubCommand1_Click()alpha=0st="87IM&2345kjwdssdcf"Fori=1Tostch=Mid$(st,i,1)SelectCasechCase"a"To"z"alpha=alpha+Asc(ch)Case"A"To"Z"alpha=alpha+Asc(ch)EndSelectNextiPrintalphaEndSub
【1113】
【11】
程序功能:
求字符串“ThisismyBasic”所有字符的ASCII码之和。
程序中有一行有错误。
改正错误,使程序能输出正确结果。
PrivateSubCommand1_Click()sum=0s="ThisismyBasic"Fori=1Tossum=sum+asc(Mid$(s,i,1))NextiPrintsumEndSub
【1436】
【12】
程序功能:
将50元兑换成5元、2元和1元的方法的种数(每种面额至少2张)。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()Forx=2To10Fory=2To25Forz=2To50Ifx+y+z=50Thenn=n+1ExitforEndIfNextzNextyNextxPrintnEndSub
【7】
【13】
程序功能:
求[100,999]之间满足以下条件的数的个数:
其个位数字与十位数字之和除以10所得的余数等于百位数字。
程序中有两行有错误。
改正错误,使程序能输出正确的结果。
PrivateSubCommand1_Click()Forx=100To999a=x/100b=x/10-a*10c=x-a*100-b*10If(b+c)Mod10=aThens=s+1EndIfNextxPrintsEndSub
【90】
【14】
程序功能:
将50元兑换成5元、2元和1元的方法的种数(每种面额至少2张)。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()Forx=2To10Fory=2To25Forz=2To50Ifx+y+z=50Thenn=n+1ExitforEndIfNextzNextyNextxPrintnEndSub
【7】
【15】
程序功能:
求1900年~2003年所有闰年年号之和。
程序中有一行有错误。
改正错误,使程序能输出正确的结果。
(年号能被400整除的是闰年,或者被4整除但不能被100整除的是闰年)PrivateSubCommand1_Click()ForY=1900To2003If(YMod400=0)and(YMod4=0orYMod100<>0)Thens=s+YEndIfNextYPrintsEndSub
【48800】
【16】
程序功能:
计算两个数的最大公约数。
程序中有一行有错误,改正错误,使程序能输出正确结果。
PrivateSubCommand1_Click()Printfun(1248,25736)EndSubPrivateFunctionfun(u,v)AsIntegerIfuu=v:
v=tempEndIfWhile(v<>0)t=uModvu=vv=tWendfun=vEndFunction
【8】
【17】
程序功能:
百钱百鸡问题。
用100钱买100只鸡,公鸡一只五钱,母鸡一只三钱,雏鸡三只一钱,编程计算共有几种买法(要求每种鸡至少要买1只)。
程序中有一行有错误。
改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()s=0cock=1DoWhilecock<=100/5hen=1DoWhilehen<=100/3-cockchick=100-cock-henIfcock+hen+chick=100Thens=s+1EndIfhen=hen+1Loopcock=cock+1LoopPrintsEndSub
【3】
【18】
程序功能:
计算两个数的最小公倍数。
程序中有两行有错误,改正错误,使程序能输出正确结果。
PrivateSubCommand1_Click()Printfun(1248,888)EndSubPrivateFunctionfun(u,v)Ifuu=v:
v=tempEndIft=uDoWhiletModu<>0andtModv<>0t=t+uLoopfun=uEndFunction
【153】
【19】
程序功能:
求当N=20时,1/(1*2)+1/(2*3)+1/(3*4)+….+1/(N*(N+1))的值。
要求:
按四舍五入的方式精确到小数点后第二位。
程序中有一行有错误。
改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()s=0n=1DoWhilen<=20s=s+1/n*(n+1)n=n+1LoopPrintformat(s,”##0.##”)EndSub
【0.95】
【20】
程序功能:
计算两个数的最小公倍数。
程序中有两行有错误,改正错误,使程序能输出正确结果。
PrivateSubCommand1_Click()Printfun(248,848)EndSubPrivateFunctionfun(u,v)t=uDoWhiletModu<>0andtModv<>0t=t+uLoopfun=uEndFunction
【26288】
【21】
程序功能:
已知24有8个正整数因子(即:
1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。
问[100,300]之间有多少个这样的数。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()Dimn1AsInteger,n2AsIntegerDimxAsIntegerDimiAsIntegern2=0Forx=100To300n2=0Fori=1To100IfxModi=0Thenn1=n1+1EndIfNextiIfxModn1=0Thenn2=n2+1EndIfNextxPrintn2EndSub
【19】
【22】
程序功能:
求[444,666]中最大的素数。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()DimxAsIntegerDimiAsIntegerForx=666To444k=Int(Sqr(x))Fori=2TokIfxModi=0ThenExitDoEndIfNextiIfi>kThenPrintxExitForEndIfNextxEndSub
【661】
【23】
程序功能:
根据整型参数m,计算1-123的平方根的倒数之和。
程序的函数fun()中有一行有错误,改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()PrintFormat(fun(123),"#.######")EndSubPrivateFunctionfun(mAsInteger)Assingley=0Fori=1Tomt=1/Sqr(i)y=y+tNextifun=tEndFunction
【20.76577】
【24】
程序功能:
求[351,432]之间既不能被3整除,也不能被8整除的正整数的个数。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()DimcAsIntegerDimxAsIntegerForx=351To432IfxMod3<>0orxMod8<>0Thenc=c+1EndIfNextcPrintcEndSub
【47】
【25】
程序功能:
求3000以内能被17或23整除的正整数的个数。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()DimxAsIntegerDimcountAsIntegerForx=1To3000step-1IfxMod17=0andxMod23=0Thencount=count+1EndIfNextxPrintcountEndSub
【299】
【26】
程序功能:
求四位奇数中,所有各位数字之和是36的倍数的数之和。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()s2=0Forx=1000To9999Step2s1=0a=Int(x/1000)b=Int(x/100)-a*10c=Int(x/10)-a*100-b*10d=x-a*1000-b*100-c*10s1=a+b+c+dIfmod(s1,36)=0Thens2=s2+xEndIfNextxPrints2EndSub
【9999】
【27】
程序功能:
统计1~1000中能被3整除的数的个数。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()DimcountAsIntegerDimiAsIntegeri=3count=0DoWhileI>=1000Ifxmod3=0Thencount=count+1EndIfi=i+1LoopPrintcountEndSub
【333】
【28】
程序功能:
求所有符合算式ij*ji=1300的最大数ij。
其中i、j是1~9之间的一位整数。
程序中有三行错误。
改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()Fori=9To1Forj=9To1Ifij*ji=1300ThenPrint10*i+jExitsubEndIfNextjNextiEndSub
【52】
【29】
程序功能:
求所有符合算式ij*ji=1300的最小数ij。
其中i、j是1~9之间的一位整数。
程序中有三行错误。
改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()Fori=1To9Forj=1To9Ifij*ji=1300ThenPrint10*i+jExitsubEndIfNextiNextjEndSub
【25】
【30】
程序功能:
求共有几组i、j、k符合算式ijk+kji=1534,其中i、j、k是0~9之间的一位整数。
程序中有一行有错误。
改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()n=0Fori=0To9Forj=0To9Fork=0To9Ifijk+kji=1534Thenn=n+1EndIfNextkNextjNextiPrintnEndSub
【5】
【31】
程序功能:
求共有几组i、j、k符合算式ijk+kji=1333,其中i、j、k是0~9之间的一位整数。
程序中有一行有错误。
改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()n=0Fori=0To9Forj=0To9Fork=0To9Ifijk+kji=1333Thenn=n+1EndIfNextkNextjNextiPrintnEndSub
【6】
【32】
程序功能:
求[351,432]之间既不能被3整除,也不能被8整除的正整数的个数。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()DimcAsIntegerDimxAsIntegerForx=351To432IfxMod3<>0orxMod8<>0Thenc=c+1EndIfNextcPrintcEndSub
【47】
【33】
程序功能:
求1~99的平方根的和并输出结果。
(保留小数点两位),程序中有两行有错误。
改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()DimxAsIntegerDimsumAsIntegerx=1DoWhilex<=99sum=sum+Sqrt(x)x=x+1LoopPrintRound(sum,2)EndSub
【661.46】
【34】
程序功能:
求共有几组i、j、k符合算式ijk+kji=1333,其中i、j、k是0~9之间的一位整数。
程序中有一行有错误。
改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()n=0Fori=0To9Forj=0To9Fork=0To9Ifijk+kji=1333Thenn=n+1EndIfNextkNextjNextiPrintnEndSub
【6】
【35】
程序功能:
求500以内最大的10个能被13或17整除的自然数之和。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
PrivateSubCommand1_Click()s=0:
n=0x=500DoWhilex>=1IfxMod13=0andxMod17=0Thens=s+xn=n+1EndIfIfn=10ThenExitDox=x+1LoopPrintsEndSub
【46