VB程序填空文档格式.docx
《VB程序填空文档格式.docx》由会员分享,可在线阅读,更多相关《VB程序填空文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
![VB程序填空文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/24/e8c55609-796e-4e0b-955b-18886322cbbc/e8c55609-796e-4e0b-955b-18886322cbbc1.gif)
DimnAsInteger,kAsInteger,sAsString,dAsString*1,iAsInteger
n=Len(st):
k=0:
s="
Fori=1Ton
】
Ifd="
Then
k=k+1
a(k)=Val(s)
s=s&
d
a(4)=s
PrivateFunctionconvert(ByValnAsInteger)AsString
DimbAsInteger,iAsInteger,sAsString
DoWhilen>
0
b=nMod2
n=n\2
Loop
Fori=1To8-Len(s)
0"
&
s
EndFunction
答案:
=======(答案1)=======
str2=str2&
convert(a(i))
=======(答案2)=======
d=Mid(st,i,1)
=======(答案3)=======
s="
=======(答案4)=======
s=CStr(b)&
=========或=========
s=b&
=======(答案5)=======
convert=s
第2题题号:
21(2009年(春)笔试试卷-8)
下面程序的功能是:
统计存放在数组A中的N个数有多少个是不同的。
具体做法是:
变量Left指向要被处理的数(从第2个元素开始),
Right指向数组最后一个元素。
若A(Left)与排在它前面的某个数组元素值相同,
就用数组元素A(Right)的值来替换A(Left)的值,同时将变量Right的值减1;
否则将变量Left的值加1,处理数组下一个元素,重复以上过程,直到Left>
Right为止。
Right的值即为不同的数的个数。
程序界面参见下图所示。
OptionBase1
DimA()AsInteger,NAsInteger,IAsInteger
DimOPAsInteger
N=InputBox("
请输入数据个数"
,10)
ReDimA(N)
Randomize
ForI=1ToN
A(I)=Int(Rnd*10)+1
Text1=Text1&
A(I)&
"
NextI
Callstatistic(A,OP)
Text2="
有"
OP&
个不同的数:
ForI=1ToOP
Text2=Text2&
EndSub
PrivateSubstatistic(A()AsInteger,RightAsInteger)
DimLeftAsInteger,KAsInteger,IAsInteger
Right=【?
Left=2
DoWhileLeft<
=Right
K=【?
ForI=KTo1Step-1
IfA(Left)=A(I)ThenExitFor
If【?
】Then
Left=Left+1
A(Left)=A(Right)
UBound(A)
Left-1
I=0
Right=Right-1
第3题题号:
7(2008年(春)笔试试卷-7)
下面程序的功能是随机生成小于100的诸素数组成的数据。
程序界面如下图所示。
Dimp()AsInteger,iAsInteger,nAsInteger
DimstAsString,kAsInteger
k=InputBox("
元素个数;
,20)
ReDimp(k)
Do
n=Int(Rnd*90)+10
i=i+1
p(i)=n
LoopUntil【?
Fori=1ToUBound(p)
st=st&
Str(p(i))
IfiMod10=0Thenst=st&
vbCrLf
Text1=st
PrivateFunctionprime(nAsInteger)AsBoolean
DimiAsInteger
Prime=True
Fori=2ToSqr(n)
IfnModi=0Then
ExitFor
Nexti
prime(n)
prime(n)=true
i=k
prime=False
第4题题号:
19(2009年(春)笔试试卷-6)
用以下公式求f(x)的值。
当通项的绝对值小于10^-7时停止计算,x的值由键盘输入。
程序界面和公式参考图片所示:
DimxAsSingle,fxAsSingle
DimaAsSingle,a1AsSingle,a2AsSingle
DimtAsSingle
a1=1:
a2=2
x=Text1
】Then
MsgBox("
x必须在-1~1之间"
fx=a1*x-a2*x*x
t=(-1)*x*x
a=1/(a1+a2)
t=(-1)*t*x
fx=【?
a1=a2
LoopUntilAbs(a*t)<
0.0000001
Text2=fx
Abs(x)>
=1
fx+a*t
a2=a
第5题题号:
4(2007年(秋)笔试试卷-9)
首先生成一个由小到大已排好序的整数数组,再输入一个数据,
单击"
插入"
按钮会自动把这个数据插人到原数组适当的位置,并保持数组的有序性。
OptionExplicit
Dima()AsInteger
PrivateSubForm_Activate()'
生成有序数组
ReDima(10)
Fori=1To10
a(i)=(i-1)*10+1
Text1=Text1&
Str(a(i))
Text2.SetFocus
DimnAsInteger,iAsInteger
n=Text2
Fori=1ToUBound(a)
】ThenExitFor'
确定插入的位置
Text3=Text3&
PrivateSubinst(P()AsInteger,nAsInteger,kAsInteger)'
数组元素移位并实现插入
Fori=UBound(P)-1TokStep-1
P(k)=n
n<
a(i)
Callinst(a,n,i)
insta,n,i
ReDimPreservep(UBound(p)+1)
p(i+1)=p(i)
第6题题号:
15(2008年(秋)笔试试卷-7)
将输入的2位16进制数的每一位转换为一个4位的二进制数,
再组合成为一个8位的二进制数。
DimhAsString,h1AsString*1,h2AsString*1
h=Text1
h1=Left(h,1):
h2=Right(h,1)
Text2=h2b(h1)&
h2b(h2)
PrivateFunctionh2b(pAsString)AsString
DimstAsString,iAsInteger
st=″0123456789ABCDEF″
Fori=1ToLen(st)
】ThenExitFor
i=i-1
h2b=【?
i=i\2
LoopUntili<
=0
p=Mid(st,i,1)
iMod2&
h2b
Right("
0000"
h2b,4)
String(4-Len(h2b),"
)&
第7题题号:
13(2008年(春)笔试试卷-6)
用以下公式(公式如下图所示)求Sin(x)的值.当级数通项的绝对值小与eps=10^-7时停止
计算,x的值由键盘输入.
请完善如下程序
PrivateSubForm_Click()
DimxAsDouble,tAsDouble,nAsInteger,sumAsDouble
Consteps=0.0000001
X=Val(InputBox("
请输入x:
))
sum=t
n=1
DoUntil【?
t=-t
t=【?
sum=sum+t
n=n+1
Print"
Sin("
;
x;
)="
Format(sum,"
0.000"
t=x
Abs(t)<
eps
t*x*x/(2*n*(2*n+1))
t*x^2/(2*n)/(2*n+1)
第8题题号:
18(2008年(秋)笔试试卷-9)
在文本框1中输入若干以空格分隔的整数(末尾无空格),
程序自动将输入的数据分解并存储到一个一维数组,
再把数组中所有重复的元素删除(只保留一个),并输出到文本框2。
OptionBase1
PrivateSubCommand1_Click()
Dima()AsInteger,iAsInteger,stAsString
DimkAsInteger,pAsInteger
st=Text1
p=InStr(st,"
Ifp<
>
0Then
ReDimPreservea(k)
a(k)=Val(Left(st,p-1))
st=Right(st,Len(st)-p)
a(k+1)=Val(st)
Calldel(a)
Fori=1ToUBound(a)
Text2=Text2&
Text2=LTrim(Text2)
PrivateSubdel(a()AsInteger)
DimiAsInteger,jAsInteger,kAsInteger
i=i+1
j=i+1
DoWhilej<
=Ubound(a)
】Then
Fork=jToUBound(a)-1
a(k)=a(k+1)
Nextk
ReDimPreservea(UBound(a)-1)
Loop
LoopUntili>
UBound(a)
k=k+1
ReDimPreservea(k+1)
p=0
a(i)=a(j)
j=j+1
第9题题号:
11(2008年(春)笔试试卷-8)
下面程序的功能是将给定整数N表示成若干个质数因子相乘的形式(分解质因数).
DimnAsInteger,a()AsInteger
DimstAsString,iAsInteger
n=Text1
Callfenjie(n,a)
st=CStr(n)&
="
Fori=1ToUBound(a)-1
St=st&
a(i)&
*"
Text2=st&
a(i)
PrivateSubfenjie(【?
】)
DimkAsInteger,iAsInteger
k=2
IfnModk=0Then
i=i+1
ReDimPreservea(i)
a(i)=k
ByValnAsInteger,a()AsInteger
n=n\k
n=1
第10题题号:
20(2009年(春)笔试试卷-7)
学生的某次课程测验中,选择题的答案已记录在列表框List1中,
其数据行格式是:
学号为6个字符长度、2个空格、选择题的答案为15个字符长度。
程序根据标准答案进行批改,每答对一题给1分,并将得分存放到列表框List2中。
标准答案存放在变量Exact中。
程序界面参考图片所示。
DimAnwAsString,StudIdAsString
DimScorAsInteger,ExactAsString
DimIAsInteger,JAsInteger
Exact="
ABCCBAACBBDCCDA"
'
标准答案
ForI=【?
Anw=【?
StudId=Left(Anw,6)
Anw=Right(Anw,Len(Anw)-8)
ForJ=1ToLen(Anw)
Scor=Scor+1
NextJ
List2.AddItemStudId&
Scor
0ToList1.ListCount-1
List1.List(I)
Scor=0
Mid(Anw,J,1)=Mid(Exact,J,1)
第11题题号:
16(2008年(秋)笔试试卷-8)
输入一个n位的整数(n≤10),求出由这n个数字组成的n位的
最小整数和最大整数。
0ptionBase1
DimnAsLong,a()AsString
n=Text1
Callchange(n,a)
Callsort(a)
large=a(i)&
large
small=【?
Text2=large
Fori=1ToLen(small)
Ifi<
1Then
small=Mid(small,i,1)&
Left(small,i-1)&
Right(small,Len(small)-i)
Text3=small
PrivateSubsort(a()AsInteger)'
冒泡法排序
DimiAsInteger,jAsInteger,tAsInteger
Fori=1ToUBound(a)-1
F