湖南省计算机二级vb题库.docx
- 文档编号:10877408
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:35
- 大小:34.17KB
湖南省计算机二级vb题库.docx
《湖南省计算机二级vb题库.docx》由会员分享,可在线阅读,更多相关《湖南省计算机二级vb题库.docx(35页珍藏版)》请在冰豆网上搜索。
湖南省计算机二级vb题库
湖南省VB二级考试试题汇编
一、程序填空
【试题1】出售金鱼的问题:
商人将养的一缸金鱼分五次出售,第一次卖出全部的一半加二分之一条;第二次卖出余下的三分之一加三分之一条;第三次卖出余下的四分之一加四分之一条;第四次卖出余下的五分之一加五分之一条;最后卖出余下的11条。
问原来渔缸中共有几条鱼
PrivateSubcmdSaleGoldFish_Click()
DimkAsLong,xAsLong
k=4:
x=11
While
x=:
k=k-1
Wend
Printx
EndSub
【答案】k,((k+1)*x+1)/k结果:
59
注解:
设第k次出售后还余x条金鱼,第k-1次出售后还余y条,则有:
x=y-(y+1)/(k+1),即y=((k+1)x+1)/k。
【试题2】在窗体上画一个命令按钮,其名称为Command1,程序如下,先填上相应的语句,然后程序运行,单击命令按钮,并输出结果。
FunctionM(xAsLong,yAsLong)AsLong
M=IIf(x>y,x,____________)
EndFunction
PrivateSub____________________
DimaAsLong,bAsLong
FontSize=14:
FontBold=True
Print:
Print:
a=131421
b=211314
Printtab(5);M(a,b)
EndSub
【答案】y,Command1_Click()结果:
211314
【试题3】设某四位数的各位数字的平方和等于100,共有多少个这种四位数
PrivateSubcmdFourSqr_Click()
DimaasInteger,basInteger,casInteger,dasInteger
DimiasInteger,countAsInteger
count=0
i=1000
DoUntil________________
a=i\1000
b=(iMod1000)\100
c=Int((i–a*1000–b*100)\10)
d=iMod10
If100=a*a+b*b+c*c+d*dThen___________________
i=i+1
Loop
PrintTab(5);"满足条件的四位数数目为:
";count
EndSub
【答案】i>=10000,count=count+1结果:
49
【试题4】求方程51X-21Y=3,在|X|≤201,|Y|≤81内共有多少组整数解
PrivateSubcmdIntegerRoot_Click()
DimcountAsInteger
FontSize=14:
FontBold=True
Print:
Print:
Forx=-201To201
Fory=-81To81
If_________________Thencount=count+1
Next________________
PrintTab(5);“符合条件的数的数目为:
”;count
EndSub
【答案】51*x-21*y=3,y,x结果:
10
【试题5】利用公式ex≈1+x+x2/2!
+x3/3!
+x4/4!
…+xn/n!
求ex的近似值。
设x=9,n=25。
PrivateSubForm_click()
DimnAsInteger,xAsInteger,iAsInteger
DimxpowerAsSingle,yAsSingle
x=int(InputBox("请输入x:
"))
n=int(InputBox("请输入n:
"))
y=1
factor=1:
xpower=1
Fori=1Ton
factor=factor*i
xpower=
y=
Nexti
Printy
EndSub
【答案】xpower*x,y+xpower/factor结果:
【试题6】已知菲波纳契数列{X}中,X
(1)=1,X
(2)=1,X(n)=X(n-1)+X(n-2),编程求数列前30个数中,所有质数的和。
PrivateSubForm_Click()
DimsAsLong
DimIAsInteger
DimNo(30)AsLong
No
(1)=1
No
(2)=1
s=0
For
No(I)=No(I–1)+No(I–2)
j=2:
k=sqr(No(I))
DoWhilej<=k
IfNo(I)Modj=0ThenExitDo
j=j+1
Loop
Ifj>kThen
NextI
Print"前三十个菲波纳契数中质数和是:
";s
EndSub
【答案】I=3To30,s=s+No(I)结果:
544828
【试题7】 求27090,21672,11352,8127的最大公约数。
OptionBase1
FunctionGreatestCommonDivisor(ByValmAsLong,ByValnAsLong)AsLong
DimtAsLong
DimrAsLong
Ifm m=n: n=t Do r=mModn m=n n=r LoopUntilr=0 GreatestCommonDivisor= EndFunction PrivateSubForm_Click() Dima,gcd&,iAsByte a=Array(27090,21672,11352,8127) gcd=a (1) Fori=2To gcd=GreatestCommonDivisor(gcd,a(i)) Next Printgcd EndSub 【答案】m,UBound(a)结果: 129 二、程序改错 【第1题】下面程序是输出100-200之间的所有素数个数,程序中有两行有错误。 改正错误,使它能输出正确的结果。 PrivateSubForm_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 【答案】 ExitFor改为ExitDo Ifi 【第2题】下面程序是解决猴子吃桃问题。 猴子第1天摘下若干桃子,当即吃掉一半,又多吃一个,第二天将剩余的部分吃掉一半还多一个;以此类推,到第10天只剩余1个。 问第1天共摘了多少桃子。 程序中有两行有错误。 改正错误,使它能输出正确的结果。 OptionExplicit PrivateSubForm_Click() DimdayAsInteger,sumAsInteger day=10;sum=1 DoWhileday>0 sum=sum*2 day=day–1 Loop Printsum EndSub 【答案】 Day=10改为Day=9 sum=sum*2改为sum=(sum+1)*2 【第3题】一个两位数的正整数,如果将其个位数与十位数字对调所生成的数称为其对调数,如28是82的对调数。 现给定一个两位的正整数,请找到另一个两位的整数,使这两个数之和等于它们的各自的对调数之和。 这样的另一个两位数有多少个。 程序中有两行有错误(从键盘输入的两位数为46)改正错误,使它能输出正确的结果。 OptionExplicit PrivateSubForm_Click() DimxAsInteger,yAsInteger,numberasInteger DimxfAsInteger,yfAsInteger Number=0 Do x=int(InputBox("请输入一个2位正整数: ")) LoopWhile(x<9)Or(x>99) xf=(xMod10)*10+Int(y/10) Fory=10To99 yf=yMod10+Int(y/10) Ifx+y=xf+yfThen Printx;"+";y;"=";xf;"+";yf;"=";x+y Number=Number+1 EndIf Nexty PrintNumber EndSub 【答案】 xf=(xMod10)*10+Int(y/10)改为xf=(xMod10)*10+Int(x/10) yf=yMod10+Int(y/10)改为yf=(yMod10)*10+Int(y/10) 【第4题】下面程序解决的问题是: 已知24有8个正整数因子(即: 1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。 求[100,300]之间能被其因子数目整除的数中最大的数。 程序中有两行有错误。 改正错误,使它能输出正确的结果。 PrivateSubCommand1_Click() DimNAsInteger DimsAsInteger DimiAsInteger ForN=300To100 s=0 Fori=1ToN IfNModi=0Then s=s+1 EndIf Nexti IfsModN=0Then PrintN ExitFor EndIf NextN EndSub 【答案】 ForN=300To100改为ForN=300To100Step-1 IfsModN=0Then改为IfNMods=0Then 【第5题】若一个四位正整数是另一个正整数的平方,且各位数字的和是一个平方数,则称该四位正整数是“四位双平方数”。 求最小的四位双平方数。 程序中有行两有错误。 改正错误,使它能输出正确的结果。 PrivateSubCommand1_Click() DimaAsInteger,bAsInteger,cAsInteger,dAsInteger,xAsInteger 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 IfSqr(x)=Int(Sqr(x))AndSqr(a+b+c+d)=Sqr(a+b+c+d)Then Printx ExitFor EndIf Nextx EndSub 【答案】 b=Int(x/100)–a*100改为b=Int(x/100)–a*10 或b=x\100mod10 Sqr(a+b+c+d)=Sqr(a+b+c+d)改为: Sqr(a+b+c+d)=Int(Sqr(a+b+c+d)) 【第6题】下面程序的功能是: 用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。 程序中有两行有错误。 改正错误,使它能输出正确的结果。 π/4=1-1/3+1/5-1/7+… PrivateSubCommand1_Click() PrintFormat(fun,"#.####") EndSub PrivateFunctionfun(numAsSingle)AsSingle DimsAsInteger,nAsInteger DimpiAsSingle,tAsSingle pi=0: t=1: s=1: n=1 While(t>=num) pi=pi+t n=n+2 s=-s t=s%n Wend pi=pi*4 fun=pi EndFunction 【答案】 pi=pi+t改为pi=pi+t*s t=s%n改为t=1/n 【第7题】有这样一个三位数,其尾数不大于2。 若将尾数移到首位后(其余二个数字次序不变,依次后推),新三位数将是原三位数的两倍多。 求这个三位数。 程序中有错误,改正错误,使程序能输出正确的结果。 PrivateSubCommand1_Click() Dimi%,j%,k%,n%,m% Fori=1To9 Forj=0To9 Fork=1To9 n=100*i+10*k+j m=100*k+10*j+i Ifn>=2*mOrn<=3*mThenPrintm Nextk Nextj Nexti EndSub 【答案】 Fori=1To9改为Fori=1To2 Ifn>=2*mOrn<=3*mThen改为: Ifn>=2*mandn<=3*mThen 三、程序设计 【第1题】编写程序,求共有几组i、j、k符合算式ijk+kji=1333,其中i、j、k是0~9之间的一位整数。 【参考答案】 Functionfun()AsInteger DimiAsInteger,jAsInteger,kAsInteger,nAsInteger Fori=1To9 Forj=0To9 Fork=1To9 If101*(i+k)+20*j=1333Thenn=n+1: Printi;j;k, Next Next Next fun=n EndFunction 【第2题】问[100,200]之间有奇数个不同因子的整数共有多少个 【参考答案】 分析: 因M=XY,故因子总是成对出现的,除非X=Y。 即: 只有完全平方数才有奇数个因子。 [100,200]之间平方数从102到142共5个。 【第3题】求[500,2500]之间按递增顺序的素数中的第25大的素数。 【参考答案】 PrivateSubCommand1_Click() DimkAsLong,nAsLong,iAsLong Fork=503To2500Step2 Fori=2ToSqr(k) IfkModi=0ThenExitFor Next Ifi>Sqr(k)Then n=n+1 Ifn=25ThenExitFor EndIf Next Printk EndSub 【第4题】A,B,C三个正整数,当满足1/A2+1/B2=1/C2关系时,称为倒勾股数。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 湖南省 计算机 二级 vb 题库