金陵科技学院VB期末考试题目4Word格式文档下载.docx
《金陵科技学院VB期末考试题目4Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《金陵科技学院VB期末考试题目4Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
EndSub
方法二:
①OptionExplicit
PrivateSubCommand1_Click()
DimxAsInteger,iAsInteger
Fori=2Tox-1
Ifi=xThen
MsgBoxx&
是素数"
Else
不是素数"
EndSub
2题目:
输入一个二进制数,将其转化为十进制数。
转换按钮:
用于实现进制的转换
清空按钮:
用于实现文本框的清空,同时将焦点定位在Text1中
2.参考答案:
DimstAsString
Fori=1ToLen(Text1)
st=st&
Trim(Mid(Text1,i,1))
Fori=1ToLen(st)
Sum=Sum+Mid(st,i,1)*2^(Len(st)-i)
Nexti
Text2=Sum
②PrivateSubCommand2_Click()
Text1.Text="
Text2.Text="
Text1.SetFocus
DimiAsInteger,sAsString,sumAsInteger
DimxAsString
s=Text1
Fori=1ToLen(s)
x=Mid(s,i,1)
sum=sum+Val(x)*2^(Len(s)-i)
Nexti
Text2=CStr(sum)
End
3题目:
输入一个10进制正整数,将其转换为一个2进制数。
实现进制转换
实现文本框的清空,同时焦点定位在Text1中
3.参考答案:
DimaAsInteger,stAsString
a=Val(Text1)
DoWhilea<
>
0
b=aMod2
a=a\2
st=b&
st
Loop
Text2=st
Text1.Text="
Text2.Text="
DimaAsInteger,rAsInteger,sAsString
a=Val(Text1.Text)
DoWhilea<
r=aMod2
s=CStr(r)&
s
Loop
Text2.Text=s
Text1="
Text2="
4题目:
输入2个正整数,求这2个数的最大公约数。
计算按钮:
用来实现计算最大公约数
退出按钮:
用来实现程序的退出
4.参考答案:
DimmAsLong,nAsLong
DimrAsLong
m=Val(Text1.Text)
n=Val(Text2.Text)
Ifm<
1Orn<
1Then
MsgBox"
输入的数据有错误"
Else
Do
r=mModn
m=n
n=r
LoopUntilr=0
Text3.Text=CStr(m)
EndIf
End
DimmAsLong,nAsLong,rAsLong
Ifm>
1Orn>
Do
LoopWhiler<
Text3=CStr(m)
EndIf
②PrivateSubCommand2_Click()
5题目:
产生10个10~100之间的两位随机整数,将10个数显示一个文本框中
同时查找其中是否有某个数,如果有给出其在数组中的位置,如果没有给出相应的提示信息。
结果信息用msgbox消息框弹出提示,如“36出现在第2位”;
或者“没有出现36”
5.参考答案:
方法一:
①Dima()AsInteger
ReDima(10)AsInteger
Randomize
Fori=1To10
a(i)=Int(Rnd*90+10)
Text1=Text1&
Str(a(i))
Nexti
DimfindAsInteger
find=Val(Text2)
Iffind=a(i)ThenExitFor
Ifi<
=10Then
MsgBoxfind&
出现在第"
&
Str(i)&
位"
MsgBox"
没有出现"
find
③PrivateSubCommand3_Click()
Endsub
OptionBase1
Dima(10)AsInteger,iAsInteger
Randomize
Fori=1To10
a(i)=Int(Rnd*90)+10
Text1=Text1&
DimfindAsInteger
find=Val(Text2.Text)
Ifa(i)=findThenExitFor
Ifi<
=UBound(a)Then
i&
Else
6.题目:
随机产生10个两位整数,存放在数组中,将10个数显示在一个文本框中
并从中找出一个最大数和一个最小数,分别显示在文本框中。
6.参考答:
ReDima(10)
Randomize
a(i)=Int(Rnd*90+10)
Max=a
(1)
Min=100
Ifa(i)>
MaxThenMax=a(i)
Ifa(i)<
MinThenMin=a(i)
Text2=CStr(Max)
Text3=CStr(Min)
Text3.Text="
④PrivateSubCommand4_Click()
方法二
Dimcompare(10)AsInteger,iAsInteger
compare(i)=Int(90*Rnd)+10
Text1.Text=Text1.Text&
Str(compare(i))
DimmaxAsInteger,minAsInteger
max=compare
(1):
min=compare
(1)
Fori=2To10
Ifcompare(i)>
maxThen
max=compare(i)
ElseIfcompare(i)<
minThen
min=compare(i)
Text2.Text=CStr(max)
Text3.Text=CStr(min)
Text1="
Text2="
Text3="
Command1.SetFocus
7题目:
随机产生10个两位整数
并将10个数采用选择排序的算法实现升序排列
DimjAsInteger,tAsInteger
DimvAsVariant
Fori=1To10
a(i)=Int(90*Rnd)+10
Fori=1To9
Forj=i+1To10
a(j)Then
t=a(i)
a(i)=a(j)
a(j)=t
Nextj
ForEachvIna
Text2.Text=Text2.Text&
Str(v)
Nextv
End
8题目:
并将10个数采用冒泡排序的算法实现升序排列
②PrivateSubCommand1_Click()
③PrivateSubCommand2_Click()
Forj=1To10-i
Ifa(j)>
a(j+1)Then
t=a(j)
a(j)=a(j+1)
a(j+1)=t
Nextj
Nexti
ForEachvIna
④PrivateSubCommand3_Click()
⑤PrivateSubCommand4_Click()
End
9.题目:
编程计算公式S=1!
+3!
+5!
+……(2N-1)!
的值。
窗体设计界面参见如下。
(1)要求N的值在文本框Text1中输入,累加和显示在Text2中;
(2)程序中应定义一个通用函数过程fact(),用以计算某个整数的阶乘
9.参考答案:
n=Val(Text1)
Fori=1To2*n-1Step2
Sum=Sum+fact(i)
Text2=CStr(Sum)
②PublicFunctionfact(ByValnAsInteger)AsLong
DimkAsInteger
fact=1
Ifn=0Orn=1Then
ExitFunction
Else:
Fork=1Ton
fact=fact*k
Nextk
EndFunction
DimsumAsLong,nAsInteger,iAsInteger
n=Val(Text1)
Fori=1Ton
sum=sum+fact(2*i-1)
Text2=sum
②PrivateFunctionfact(ByValnAsInteger)AsLong
DimiAsInteger
Ifn=0Orn=1Then
fact=1
fact=n*fact(n-1)
10题目:
编写程序,找出100以内的所有素数,存放在数组P中,并将所找到的素数,按每行10个的形式显示在文本框Text1中。
程序界面如下图所示:
(1)按“找素数”按钮,则查找素数,并按格式要求显示在多行文本框中;
(2)程序中应定义一个通用函数过程Prime(),以判断一个数是否为素数;
10.参考答案:
DimP(50)AsInteger
DimjAsInteger
Forj=1To100
Ifprime(j)=TrueThen
m=m+1
P(m)=j
Fori=1Tom
Str(P(i))
IfiMod10=0ThenText1=Text1&
vbCrLf
EndSub
②PrivateFunctionprime(ByValnAsLong)AsBoolean
DimiAsLong
Fori=2Ton-1
IfnModi=0ThenExitFunction
Ifi=nThenprime=True
DimiAsInteger,kAsInteger
Dima()AsInteger
Fori=2To100
Ifprime(i)Then
k=k+1
ReDimPreservea(k)
a(k)=i
Fori=1Tok
Right("
a(i),3)
IfiMod10=0ThenText1=Text1&
②PrivateFunctionprime(ByValnAsInteger)AsBoolean
prime=True