05年秋江苏计算机二级VB上机试题及答案.docx
- 文档编号:28079142
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:16
- 大小:105.26KB
05年秋江苏计算机二级VB上机试题及答案.docx
《05年秋江苏计算机二级VB上机试题及答案.docx》由会员分享,可在线阅读,更多相关《05年秋江苏计算机二级VB上机试题及答案.docx(16页珍藏版)》请在冰豆网上搜索。
05年秋江苏计算机二级VB上机试题及答案
江苏省等级考试二级VB上机试卷2005年(秋)及参考答案
【题目1】本程序的功能是:
找出2~10000之间可以表示成2²-1形式的素数.本题程序界面见图1.
答:
源程序:
OptionExplicit
PrivateSubCommand1_Click()
DimExpAsInteger,IdxAsInteger
ForIdx=2To10000
IfMersenne(Idx,Exp)Then
IfPrime(Idx)Then
List1.AddItemIdx&"="&2&"^"&Exp&"-1"
EndIf
EndIf
Exp=0
NextIdx
EndSub
PrivateFunctionMersenne(NAsInteger,ExpAsInteger)AsBoolean
DimMAsInteger,ExAsLong
M=N
Ex=1
DoWhileM>Ex
Exp=Exp+1
Ex=Ex*2
Loop
IfM=Ex-1Then
Mersenne=True
EndIf
EndFunction
PrivateFunctionPrime(NAsInteger)AsBoolean
DimKAsInteger
ForK=2ToSqr(N)
IfNModK=0ThenExitFunction
NextK
Prime=True
EndFunction
【题目2】将1~9这9个数字顺序排列围成一圈,从中任意一个数字开始,依次将其分成三段,每段数字连在一起算一个数,得到一个2位数、一个3位数和一个4位数,将这三个数相加,使其和数能被77整除.编写一个能找出这三个数的程序.
【编程要求】
1.程序参考界面如图2所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;
2.单击“运行”按钮,找出符合条件的三个数,并将它们显示在文本框中;
3.单击“清理”按钮,则将文本框清空,并将焦点设置在“运行”按钮上;单击“结束”按钮,结束程序运行;
4.程序中必须包含一个将数字分段,得到一个2位数、一个3位数和一个4位数的通用过程.
答:
源程序:
PrivateSubCommand1_Click()
DimsAsString,iAsInteger,sumAsInteger,s1AsInteger,s2AsInteger,s3AsInteger
s=""
Fori=1ToLen(s)
Callpart(s,i,s1,s2,s3)
If(s1+s2+s3)Mod77=0Then
Text1.Text=Text1.Text&"("&s1&"+"&s2&"+"&s3&")mod"&77&"=0"&vbCrLf
EndIf
Nexti
EndSub
PrivateSubpart(ByValsAsString,iAsInteger,s1,s2,s3)
s=s&s
s1=Int(Mid(s,i,2))
s2=Int(Mid(s,i+2,3))
s3=Int(Mid(s,i+5,4))
EndSub
PrivateSubCommand2_Click()
End
EndSub
[题目3]下面程序的功能是将给定的十六进制整数转换成二进制整数(删除高位0)。
答:
源程序:
OptionExplicit
PrivateSubCommand1_Click()
DimHAsString,BinAsString,LAsInteger,IAsInteger
DimKAsInteger,SAsString*1
H=UCase(Trim(Text1))
L=Len(H)
ForI=1ToL
S=Mid(H,I,1)
IfS<="9"AndS>="0"Then
K=Val(S)
Else
K=Asc(S)-55
EndIf
IfK<0OrK>15Then
Bin="十六进制数据错误"
EndIf
CallTrans(Bin,K)
NextI
Bin=Right(Bin,Len(Bin)-InStr(Bin,"1")+1)
Text2=Bin
EndSub
PrivateSubTrans(BinAsString,KAsInteger)
DimSAsString,IAsInteger,NAsInteger
DoWhileK>0
S=KMod2&S
K=K\2
Loop
S="0000"&S
Bin=Bin&Right(S,4)
EndSub
[题目4]编写程序,找出由1,2,3,4四个不同数字组成的4位整数中的素数。
[编程要求]
1程序参考界面如图2所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;
2单击“开始”按钮,生成(或筛选出)由1,2,3,4四个数字组成的4位整数,并显示在列表框List1中,在列表框List2中显示其中的素数;
3单击“清理”按钮,则将两个列表框清空;单击“退出”按钮,结束程序运行;
4程序中必须包含一个判断某数是否为素数的通用过程。
答:
源程序:
PrivateSubCommand1_Click()
DimiAsInteger,jAsInteger,kAsInteger,tAsInteger,sAsString
Fori=1To4
Forj=1To4
Fork=1To4
Fort=1To4
Ifi<>jAndi<>kAndi<>tAndj<>kAndj<>tAndk<>tThen
s=i&j&k&t
List1.AddItems
Ifprime(Int(s))ThenList2.AddItems
EndIf
Nextt
Nextk
Nextj
Nexti
EndSub
PrivateFunctionprime(ByValxAsInteger)AsBoolean
DimiAsInteger
prime=True
Fori=2ToSqr(x)
IfxModi=0Thenprime=False:
ExitFunction
Nexti
EndFunction
PrivateSubCommand2_Click()
List1.Clear
List2.Clear
EndSub
PrivateSubCommand3_Click()
End
EndSub
[题目5]下面程序的功能是:
从由2,4,5,7四个数字组成的没有重复数字的24个四位数中,找出一个具有倍数关系的四位数对。
本题程序界面如图1。
答:
源程序:
OptionExplicit
PrivateSubCompare(A()AsInteger,SAsString,IdxAsInteger)
DimIAsInteger,JAsInteger
ForI=1ToIdx
ForJ=1ToIdx
IfA(I)ModA(J)=0AndJ<>IThen
S=A(I)&"是"&A(J)&"的"&A(I)\A(J)&"倍"&vbCrLf
Text1=S
ExitSub
EndIf
NextJ
NextI
EndSub
PrivateSubCommand1_Click()
DimN(100)AsInteger,IAsInteger,SAsString,IdxAsInteger
DimJAsInteger,ChAsString*1,KAsInteger
ForI=2457To7542
S=CStr(I)
ForJ=1To4
Ch=Mid(S,J,1)
IfCh<>"2"AndCh<>"4"AndCh<>"5"AndCh<>"7"ThenExitFor
K=J
Do
K=K+1
IfCh=Mid(S,K,1)ThenExitFor
LoopUntilK>4
NextJ
IfJ>4Then
Idx=Idx+1
N(Idx)=I
List1.AddItemI
EndIf
NextI
CallCompare(N,S,Idx)
EndSub
[题目6]编写程序:
生成两个等差数列A={3,10,17,24,31,……,108}与B={3,8,13,18,23,……,108},再找出两个数列中的相同项。
[编程要求]
1.程序参考界面如图2所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;
2.单击“运行”按钮,生成这两个数列,分别输出到多行文本框1与多行文本框2中,找出两个数列中的相同项,并输出到文本框3中;
3.单击“清除”按钮,则将文本框清空,并将焦点置于“运行”按钮上;单击“结束”按钮,结束程序运行;
4. 程序中必须包含一个生成等差数列的通用过程。
答:
源程序:
OptionBase1
PrivateSubCommand1_Click()
Dimd1()AsInteger,d2()AsInteger,n1AsInteger,n2AsInteger,iAsInteger,jAsInteger
Callscdcsl(d1,3,7,108,n1)
Callscdcsl(d2,3,5,108,n2)
Fori=1Ton1
Text1=Text1&d1(i)&""
Nexti
Fori=1Ton2
Text2=Text2&d2(i)&""
Nexti
i=1
j=1
Do
Ifd1(i)=d2(j)Then
Text3=Text3&d1(i)&""
i=i+1
j=j+1
ElseIfd1(i)>d2(j)Then
j=j+1
Else
i=i+1
EndIf
LoopUntil(i>n1)
EndSub
PrivateSubscdcsl(a()AsInteger,xAsInteger,d,y,n)
Do
n=n+1
ReDimPreservea(n)
a(n)=x
x=x+d
LoopWhile(x<=y)
EndSub
PrivateSubCommand2_Click()
Text1.Text=""
Text2.Text=""
Text3.Text=""
Command1.SetFocus
EndSub
PrivateSubCommand3_Click()
End
EndSub
[题目7]下面程序的功能是,找出1~300之间的三个相临整数N,N+1和N+2,且每个整数均为两个素数的乘积。
本题程序界面如图1。
答:
源程序:
OptionExplicit
PrivateSubCommand1_Click()
Dimp()AsInteger,iAsInteger,N(3)AsInteger
CallPrime(p,150)
Fori=1To300
IfCompare(p,i)Then
List1.AddItemi&","&i+1&","&i+2
EndIf
Nexti
EndSub
PrivateSubPrime(p()AsInteger,NAsInteger)
DimiAsInteger,kAsInteger,idxAsInteger
Fori=2ToN
Fork=2ToSqr(i)
IfiModk=0ThenExitFor
Nextk
Ifk>Sqr(i)Then
idx=idx+1
ReDimPreservep(idx)
p(idx)=i
EndIf
Nexti
EndSub
PrivateFunctionCompare(p()AsInteger,ByValaAsInteger)AsBoolean
DimiAsInteger,JAsInteger,kAsInteger,FlgAsBoolean
Fork=1To3
i=1
DoWhilei<=UBound(p)
ForJ=1ToUBound(p)
Ifa=p(i)*p(J)ThenExitDo
NextJ
i=i+1
Loop
IfJ>UBound(p)ThenExitFunction
a=a+1
Nextk
Compare=True
EndFunction
[题目8]编写程序求给定正整数的所有因子及所有因子的倒数之和。
[编程要求]
1.程序参考界面如图2所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;
2.运行程序,在文本框1中输入测试数据,单击“运行”按纽,求出其所有因子及所有因子的倒数和,按图示格式输出到多行文本框2中(结果要进行约分);
3.单击“清除”按纽,则将两个文本框清空,焦点置于文本框1上;
4.程序中必须包含一个求其正整数所有因子倒数之和的通用过程。
答:
源程序:
PrivateSubCommand1_Click()
DimxAsLong
x=Int(Trim(Text1.Text))
Text2.Text=x&"的所有因子为:
"
Callyzsum(x)
EndSub
PrivateSubyzsum(ByValxAsLong)
Dima()AsInteger,idxAsInteger,fzAsLong,s1AsLong,fmAsLong,s2AsLong
DimiAsInteger
Fori=1Tox
IfxModi=0Then
idx=idx+1
ReDimPreservea(idx)
a(idx)=i
Text2=Text2&i&""
Iffm=0Then
fm=fm+i
fz=1
Else
s1=gcd(fm,i)
s2=fm*i/s1
fz=fz*s2/fm+s2/i
fm=s2
EndIf
EndIf
Nexti
s1=gcd(fm,fz)
fz=fz/s1
fm=fm/s1
Iffm=1Then
Text2=Text2&vbCrLf&"所求因子倒数之和为:
"&fz
Else
Text2=Text2&vbCrLf&"所求因子倒数之和为:
"&fz&"/"&fm
EndIf
EndSub
PrivateFunctiongcd(ByValxAsLong,ByValyAsLong)AsLong
DimrAsLong
Do
r=xMody
x=y
y=r
LoopUntil(y=0)
gcd=x
EndFunction
PrivateSubCommand2_Click()
Text1.Text=""
Text2.Text=""
Text1.SetFocus
EndSub
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 05 江苏 计算机 二级 VB 上机 试题 答案