湖南省计算机二级考试 VB程序设计题.docx
- 文档编号:5737397
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:42
- 大小:29.09KB
湖南省计算机二级考试 VB程序设计题.docx
《湖南省计算机二级考试 VB程序设计题.docx》由会员分享,可在线阅读,更多相关《湖南省计算机二级考试 VB程序设计题.docx(42页珍藏版)》请在冰豆网上搜索。
湖南省计算机二级考试VB程序设计题
3.程序设计题(35’)
(1)程序改错(15’)
1.程序功能:
求s=1+3+5+7+...直到s>2000为止。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
(2025)
PrivateSubForm_Click()
DimiAsInteger,sAsLong
s=0:
i=1
DoUntils<2000
s=s+i
i=i+1
Loop
Prints
EndSub
答案:
s>2000;i+2
2.程序功能:
计算s=2!
+4!
+8!
。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
(40346)
PrivateSubCommand1_Click()
DimkAsInteger,iAsInteger
DimsAsLong,tAsLong
s=0
i=1
DoWhilei<=3
t=1
k=1
Whilek<=2*i
t=t*k
k=k+1
Wend
s=s+t
i=i+1
wend
Prints
EndSub
答案:
k<=2^i;loop
3.程序功能:
计算s=2!
+4!
+6!
+8!
。
程序中有错误。
改正错误,使它能输出正确的结果。
(41066)
PrivateSubCommand1_Click()
DimkAsInteger,iAsInteger
DimsAsLong,tAsLong
s=0:
i=1
DoWhilei<=4
t=1
k=1
Whilek<=2^i
t=t*k
k=k+1
Wend
s=s+t
i=i+1
wend
Prints
EndSub
答案:
k<=2*i;loop
4.程序功能:
求200到400间,能被3整除但不能被7整除的数的个数。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
(57)
PrivateSubCommand1_Click()
DimcountAsInteger
DimxAsInteger
count=0
x=200
Whilex<=400
IfxMod3=0orxMod7<>0Then
count=count+1
EndIf
x=x+1
Loop
Printcount
EndSub
答案:
and;wend
5.程序功能:
求1到400间,同时能被3和7整除的数的个数。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
(19)
PrivateSubForm_Click()
DimcountAsInteger
DimxAsInteger
Forx=1To400
ifmod(x,3)=0andmod(x,7)=0then
count=count+1
endif
Nextcount
Printcount
EndSub
答案:
xMod3=0AndxMod7=0;x
6.程序功能:
求能被3整除且至少有一位数字为5的三位数的个数。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
(85)
PrivateSubCommand1_Click()
DimcountAsInteger
DimaAsInteger,bAsInteger,cAsInteger
DimxAsInteger
x=100
doWhilex<=999
IfxMod3=0Then
a=Int(x/100)
b=Int((x-a*100)/10)
c=x-a*100-b*10
Ifa=5andb=5andc=5Then
count=count+1
EndIf
EndIf
x=x+1
wend
Printcount
EndSub
答案:
a=5orb=5orc=5;loop
7.程序功能:
求三位偶数中,个位数字与十位数字之和除以10所得的余数是百位数字的数的个数。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
(45)
PrivateSubCommand1_Click()
DimcountAsInteger
DimaAsInteger,bAsInteger,cAsInteger
DimxAsInteger
count=0
x=100
Whilex<=999
a=Int(x/100)
b=Int(x/10)-a*10
c=x-a*100-b*10
IfMod(x,2)=0ormod(b+c,10)=aThen
count=count+1
EndIf
x=x+1
loop
Printcount
EndSub
答案:
xMod2=0And(b+c)Mod10=a;wend
8.程序功能:
求平方和小于2000的最大自然数。
程序中有两行有错误。
改正错误,使它能输出正确的结果。
(18)
PrivateSubForm_Click()
DimxAsInteger
DimsAsInteger
s=0
x=0
DoWhiles>=2000
x=x+2
s=s+x*x
loop
Printx
EndSub
答案:
s<=2000;x=x+1
9.程序功能:
解百马百瓦古题。
大、小马和马驹共100匹,共驮100片瓦。
大马一驮三,小马一驮二,马驹二驮一,一次驮完,三种马都驮,共有多少种组合?
程序中有三行有错误。
改正错误,使它能输出正确的结果。
(6)
PrivateSubForm_Click()
DimxAsInteger,yAsInteger,zAsInteger
DimsAsInteger
s=0
Forx=1To33
Fory=1To50
z=100-x-y
If3*x+2*y+z/2<>100Then
s=s+1
EndIf
Nextx
Nexty
Prints
EndSub
答案:
3*x+2*y+z/2=100;Nexty;Nextx
10.程序功能:
求100-200之间的所有素数个数,程序中有两行有错误。
改正错误,使它能输出正确的结果。
(21)
PrivateSubCommand1_Click()
Number=0
Forx=101To199Step2
i=2
k=Int(x/2)
DoWhilei<=k
IfxModi=0ThenExitfor
i=i+1
Loop
Ifi Number=Number+1 EndIf Nextx PrintNumber EndSub 答案: exitdo;i>k 11.程序功能: sum=d+dd+ddd+……+ddd..d(d为1-9的数字)。 例如: 3+33+333+3333(此时d=3,n=4)。 从键盘上输入d的值为8,n的值为9,求sum的值。 程序中有两行有错误。 改正错误,使它能输出正确的结果。 987654312 PrivateSubForm_Click() DimdAsInteger,nAsInteger,iAsInteger DimsumAsLong sum=0 d=Val(InputBox("d: ")) n=Val(InputBox("n: ")) Fori=1Ton tn=tn+d sum=sun+tn Nexti Printsum EndSub 答案: tn=tn*10+d;sum=sum+tn 12.程序功能: 输出水仙花的个数(所谓水仙花数是指一个三位十进制数,该数的各位数字立方之和等于该数本身。 例如153是一个水仙花数,因为1^3+5^3+3^3=153)程序中有两行有错误。 改正错误,使它能输出正确的结果。 4 PrivateSubForm_Click() DimnumberAsInteger DimnAsInteger,iAsInteger,jAsInteger,kAsInteger Forn=100To999 i=n/100‘百位 j=Int(n/10)-I*10‘十位 k=nMod10 Ifn=i*i*i+j*j*j+k*k*kThen number=numbre+1 EndIf Nextn Printnumber EndSub 答案: j=Int((n-i*100)/10);number=number+1 13.程序功能: 求数列2/1,3/2,5/3,8/5,13/8,……的前10项之和。 程序中有两行有错误。 改正错误,使它能输出正确的结果。 16.47991 PrivateSubForm_Click() DimiAsInteger,tAsInteger,nAsInteger DimaAsInteger,bAsInteger DimsAsSingle a=2: b=1: n=10: s=0 Fori=1Ton s=s+a/b t=b a=a+b a=t Nexti Prints EndSub 答案: t=a;b=t 14.程序功能: 猴子第1天摘下若干桃子,当即吃掉一半,又多吃一个,第二天将剩余的部分吃掉一半还多一个;以此类推,到第10天只剩余1个。 问第1天共摘了多少桃子。 程序中有两行有错误。 改正错误,使它能输出正确的结果。 1534 PrivateSubForm_Click() DimdayAsInteger,sumAsInteger day=10;sum=1 DoWhileday>1 sum=sum*2 day=day-1 Loop Printsum EndSub 答案: day=10: sum=1;sum=(sum+1)*2 15.程序功能: 求1~200之间的能被7整除的数的平方和。 程序有两处错误。 改正错误,使它能输出正确的结果。 377986 PrivateSubCommand1_Click() DimxAsInteger DimsumAsInteger x=1 sum=0 Whilex<=200 IfxMod7=0 sum=sum+x^2 EndIf x=x+1 Wend Printsum EndSub 答案: DimsumAsDouble;IfxMod7=0Then 16.程序功能: 求1~99的平方根的和并输出结果。 (保留小数点两位),程序中有两行有错误。 改正错误,使它能输出正确的结果。 661.46 PrivateSubCommand1_Click() DimxAsInteger DimsumAsinteger x=1 DoWhilex<=99 sum=sum+Sqrt(x) x=x+1 Loop PrintRound(sum,2) EndSub 答案: DimsumAsSingle;sum=sum+Sqr(x) 17.程序功能: 求[1,5000]内能被5整除的前若干个偶数之和,直到和大于50000为止。 程序中有两行有错误。 改正错误,使它能输出正确的结果。 50500 PrivateSubCommand1_Click() DimxAsInteger DimsAsLong x=2 DoWhilex<=5000 IfxMod5=0Then s=s+x Ifs>50000Then Exitfor EndIf EndIf x=x+2 Loop Prints EndSub 答案: exitdo(只有一处有错) 18.程序功能: 求3000以内能被17或23整除的正整数的个数。 程序中有两行有错误。 改正错误,使它能输出正确的结果。 299 PrivateSubCommand1_Click() DimxAsInteger DimcountAsInteger Forx=1To3000Step-1 IfxMod17=0andxMod23=0Then count=count+1 EndIf Nextx Printcount EndSub 答案: 1;or 19.程序功能: 已知一个数列的前3项为0,0,1,以后每项为前3项的和,求此数列的第36项。 程序中有两行有错误。 改正错误,使它能输出正确的结果。 334745777 PrivateSubCommand1_Click() DimaAsLong DimbAsLong DimcAsLong DimdAsLong DimiAsInteger a=0: b=0: c=1 Fori=1To36 d=a a=b b=c c=a+b+c Nexti Printc EndSub 答案: 33;c=a+b+d 20.程序功能: 求数列2,4,8,16,32,…前若干项之和。 当和大于9000时,终止求和并输出结果。 程序中有两行有错误。 改正错误,使它能输出正确的结果。 16382 PrivateSubCommand1_Click() DimsAsInteger DimxAsInteger x=1 Do x=x+2 s=s+x Untils>9000 Prints EndSub 答案: x=x*2;loopuntils>9000 21.程序功能: 已知24有8个正整数因子(即: 1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。 问[100,300]之间有多少个这样的数。 程序中有两行有错误。 改正错误,使它能输出正确的结果。 19 PrivateSubCommand1_Click() Dimn1AsInteger,n2AsInteger DimxAsInteger DimiAsInteger n2=0 Forx=100To300 n1=0 Fori=1To100 IfxModi=0Then n1=n1+1 EndIf Nexti IfxModn1=0Then n2=n2+1 EndIf Nextx Printn2 EndSub 答: n1=0;x 22.程序功能: 我国今年的国民生产总值为45600亿元,若今后每年以9%的增长率增长,计算多少年后能实现国民生产总值翻一番? 程序中有两行有错误。 改正错误,使它能输出正确的结果。 9 PrivateSubCommand1_Click() DimpAsLong,p1AsLong DimnAsInteger n=0 p1=45600 p=p1 Do p=p*(1+9) n=n+1 LoopUntilp<2*p1 Printn EndSub 答案: p=p*(1+0.09);>= 23.程序功能: 已知24有8个正整数因子(即: 1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。 求[100,300]之间能被其因子数目整除的数中最大的数。 程序中有两行有错误。 改正错误,使它能输出正确的结果。 296 PrivateSubCommand1_Click() DimNAsInteger DimsAsInteger DimiAsInteger ForN=300To100Step-1 s=0 Fori=1ToN IfNModi=0Then s=s+1 EndIf Nexti IfsModN=0Then PrintN ExitFor EndIf NextN EndSub 答案: Nmods=0(只有一处错误) 24.程序功能: 有一个三位数满足下列条件: (1)三位数字各不相同; (2)此数等于它的各位数字的立方和。 求这种三位数的个数。 程序中有两行有错误。 改正错误,使它能输出正确的结果。 4 PrivateSubCommand1_Click() DimxAsInteger,aAsInteger,bAsInteger DimcAsInteger,nAsInteger n=0 x=100 DoWhilex>=999 a=Int(x/100) b=Int(x/10)-a*10 c=x-a*100-b*10 Ifa<>cAndb<>cAnda<>bAndx=a^3+b^3+c^3Then n=n+1 EndIf x=x+1 Loop Printn EndSub 答案: x<=999;将or全部换成and 25.程序功能: 求[3,500]内所有素数之和。 程序中有一行错误,改正错误,使它能输出正确的结果。 21534 PrivateSubCommand1_Click() Sum=0 Forx=3To500 flag=True Fori=2Tox-1 IfxModi=0Then flag=False ExitFor EndIf Nexti IfnotflagThen Sum=Sum+x EndIf Nextx PrintSum EndSub 答案: flag 26.程序功能: 求[3-1000]之间最大的五个素数之和。 程序中有两行有错误。 改正错误,使它能输出正确的结果。 4919 PrivateSubCommand1_Click() n=0: Sum=0 x=1000 Do flag=True Fori=2Tox-1 IfxModi=0Then flag=False Exitdo EndIf Nexti IfflagThen Sum=Sum+x n=n+1 Ifn=5ThenExitDo EndIf x=x-1 LoopWhilex<=3 PrintSum EndSub 答案: exitfor;x>=3 27.程序功能: 把一张一元钞票,换成一分、二分和五分硬币,每种至少8枚,求方案数。 程序中有两行有错误。 改正错误,使它能输出正确的结果。 80 PrivateSubCommand1_Click() n=0 Forx=1To100 Fory=8To50 Forz=8To20 Ifx+y*2+z*5=100Thenn=n+1 Nextz Nexty Nextx Printn EndSub 答案: 8;x+y*2+z*5=100 28.程序功能: 求区间[500,2500]中按递增顺序的第25个素数。 程序中有两行有错误。 改正错误,使它能输出正确的结果。 659 PrivateSubCommand1_Click() n=0 Forx=500To2500 flag=False Fori=2Tox-1 IfxModi=0Then flag=True ExitFor EndIf Nexti IfflagThen n=n+1 Ifn=25ThenExitFor EndIf Nextx Printx EndSub 答案: notflag(只有一处错误) 29.程序功能: 设某四位数的千位数字与十位数字的和等于百位数字与个位数字的积,例如,对于四位数: 9512,9+1=5*2,求所有这样的四位数之和。 程序中有一行有错误。 改正错误,使它能输出正确的结果。 1078289 PrivateSubCommand1_Click() Sum=0 Forx=1000To9999 a=Int(x/1000) b=Int(x/100)-a*100 c=Int(x/10)-a*100-b*10 d=x-a*1000-b*100-c*10 Ifa+c=b*dThen Sum=Sum+x EndIf Nextx PrintSum EndSub 答案: b=Int(x/100)-a*10 30.程序功能: 求[200,300]之间的有奇数个不同因子的最大整数。 程序中有两行有错误。 改正错误,使它能输出正确的结果。 289 PrivateSubCommand1_Click() Forx=300To200Step-1 n=0 Fori=1Tox IfxModi=0Then n=n+1 EndIf Nexti Ifn/2<>0Then Printx ExitFor EndIf Nextx EndSub 答案: x=300To200Step–1;nMod2<>0 31.程序功能: 计算y=1+2/3+3/5+4/7+…+n/(2*n-1)(n=50),要求: 按四舍五入的方式精确到小数点后第二位。 程序中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 湖南省计算机二级考试 VB程序设计题 湖南省 计算机 二级 考试 VB 程序设计