金陵科技学院VB期末考试题目1.docx
《金陵科技学院VB期末考试题目1.docx》由会员分享,可在线阅读,更多相关《金陵科技学院VB期末考试题目1.docx(25页珍藏版)》请在冰豆网上搜索。
金陵科技学院VB期末考试题目1
金陵科技学院2012-2013年第一学期VisualBasic期末考试范围(题目及答案)
M12机械设计制造及其自动化(专转本)—丁世斌
整理于2012/12/27
二.填空题。
1.设计界面时,要使一个文本框具有水平和垂直滚动条,应先将其_multiline_属性置为True,再将ScrollBar属性设置为3。
2.运行程序后,要对文本框中的内容进行编辑,但按下键盘不起作用,原因是没有设置__Enabled属性为True。
3.关于SetFocus与GotFocus,其中SetFocus是方法,GotFocus是__事件___。
4.Print方法可在__窗体_____、__图片框_____和_打印机_上输出数据。
5.在窗体上按顺序拖放了3个控件Text1、Label1、Command1,运行程序,焦点定位在___Text1____控件上。
若要使程序一运行焦点就定位在Command1控件上,应对Command1控件设置__Tabstop___属性的值为____0___。
6.运行下列程序,输出结果为21.5。
PrivateSubForm_Click()
DimxAsInteger,yAsSingle
x=1.5:
y=3.5
Ifx<>0Then
y=y-x
ElseIfy>0.5Then
x=y
ElseIfx<>3.5Then
y=y*x
EndIf
Printx,y
EndSub
7.执行下列程序,单击命令按钮后,从键盘分别输入4和5,则输出是16。
PrivateSubCommand1_Click()
DimxAsInteger,yAsInteger,sAsInteger
x=InputBox("请输入x的值")
y=InputBox("请输入y的值")
s=x
Ifx>yThens=y
s=s*s
Prints
EndSub
8.以下循环进行了10次。
PrivateSubForm_Click()
n=10
DoWhilen>=1
n=n-1
Loop
EndSub
9.执行下面程序,单击Command1,则窗体上显示的第一行是912,第三行是3-3,最后一行是0-6。
OptionExplicit
PrivateSubCommand1_Click()
DimxAsInteger,yAsInteger
X=12:
y=0
DoWhilex>0
IfxMod4=0Then
y=y+x
Else
y=y-x
EndIf
x=x-3
Printx,y
Loop
EndSub
10.运行下列程序,单击窗体后,窗体上显示的结果为81318。
PrivateSubForm_Click()
DimxAsInteger,yAsInteger
x=5:
y=3
DoWhilex+y<25
y=y+5
x=x+2
Printy;
Ify>14ThenExitDo
Loop
EndSub
11.执行下列程序,点击Command1后,A
(2)的值是1、A(7)的值是0。
程序中第二个循环被执行了4次。
OptionExplicit
OptionBase1
PrivateSubCommandl_Click()
DimA(10)AsInteger
DimiAsInteger,KAsInteger
Fori=lTo10
A(i)=1
NextI
K=1
ForK=1To10StepK
A(K)=0
K=K+2
NextK
EndSub
12.执行下列程序,点击Command1后,窗体上的显示结果为1234。
OptionBase1
PrivateSubCommand1_Click()
Dima
a=Array(1,2,3,4)
j=1
Fori=4To1Step-1
s=s+a(i)*j
j=j*10
Nexti
Prints
EndSub
13.运行下面的程序,当单击窗体时,窗体上显示的内容的第一行是0:
1,第三行是2:
3,第五行是4:
1。
PrivateSubForm_Click()
DimsAsString,iAsInteger,n(9)AsInteger
Dims1AsString*1,jAsInteger
s=Trim("12345a307291b233")
Fori=1ToLen(s)
s1=Mid(s,i,1)
Ifs1>="0"Ands1<="9"Then
j=Val(s1)
n(j)=n(j)+1
EndIf
Nexti
Forj=0To9
Printj;":
";n(j)
Nextj
EndSub
14.若将二维数组a(3,4)转化为一位数组b(12),请完善下列程序。
OptionBase1
PrivateSubCommand1_Click()
Dima(3,4)AsInteger,b(12)AsInteger
Fori=1To3
Forj=1To4
redima(val(n))=a(i,j)
Nextj
Nexti
EndSub
15.执行下面程序,单击Command1,数组元素a(3,2)的值是1,a(1,2)的值是9,a(2,3)的值是7。
OptionBase1
PrivateSubCommand1_Click()
DimnAsInteger,iAsInteger,jAsInteger
Dima(3,3)AsInteger,kAsInteger
n=3:
k=1
i=n:
j=(n+1)/2
a(i,j)=k
Fork=2Ton*n
i=i+1:
j=j+1
Ifi>nAndj<=nthen
i=1
ElseIfi<=nAndj>nThen
j=1
ElseIfi>nAndj>nThen
i=i-2:
j=j-1
ElseIfi<=nAndj<=nAnda(i,j)<>0Then
i=i-2:
j=j-1
EndIf
a(i,j)=k
Nextk
Fori=1Ton
Forj=1Ton
Pic1.PrintRight(“”&Str(a(i,j)),3);
Nextj
Pic1.Print
Nexti
EndSub
16.执行下面程序,单击Command1后,ch
(1)的值是MEET,ch(3)的值是AFTER。
OptionExplicit
PrivateSubCommand1_Click()
DimsAsString,kAsInteger,ch()AsString
DimpAsString,iAsInteger
s=UCase("Meetmeaftertheclass.")
Fori=1ToLen(s)
IfMid(s,i,1)<="Z"AndMid(s,i,1)>="A"Then
p=p&Mid(s,i,1)
ElseIfp<>""Then
k=k+1
ReDimPreservech(k)
ch(k)=p
p=""
EndIf
Nexti
Fori=1ToUBound(ch)
Printch(i)
Nexti
EndIf
17.下面过程运行后显示的结果为7。
PrivateSubCommand1_Click()
DimxAsString,LxasString,RxAsString
x="125"
Lx=Left(x,2)
Rx=Right(x,1)
Printf1(Lx,Rx)
EndSub
PrivateFunctionf1(aAsString,bAsString)asInteger
DimmAsInteger,nAsInteger
n=Len(a)
Fori=1Ton
m=m+val(Mid(a,i,1))*val(b)^(n-i)
Nexti
f1=m
EndFunction
※传值传地址
18.下面过程运行后显示的结果为234。
PrivateSubCommand1_Click()
DimxAsInteger,yAsInteger
x=12
y=34
CallF1(x,y)
Printx,y
EndSub
PrivateSubF1(nAsInteger,ByValmAsInteger)
n=nMod10
m=m\10
EndSub
19.运行下面的程序,单击Command1,在窗体上显示的变量a的值为30,变量b的值为30,变量c的值为15。
OptionExplicit
PrivateSubCommand1_Click()
DimaAsInteger,bAsInteger,cAsInteger
a=5:
b=10:
c=15
Printfun(a,b,c)+fun(a,b,c)
Printa,b,c
EndSub
PrivateFunctionfun(xAsInteger,yAsInteger,zAsInteger)AsInteger
z=x
x=x+y
y=y+z
fun=x+y
EndFunction
20.执行下面程序,单击Command1,窗体上显示的第一行是36,第二行是47第四行是5811。
OptionExplicit
PrivateSubCommand1_Click()
DimaAsInteger,bAsInteger,iAsInteger
a=2:
b=5
Fori=aToa*bStepa
Callsub1(i,a,b)
Printa,b
Nexti
Printa,b,i
EndSub
PrivateSubsub1(iAsInteger,aAsInteger,bAsInteger)
i=i+1
a=a+1
b=b+1
EndSub
※作用域
21.运行下面的程序,单击Command1后单击Command2,在窗体上显示的变量A的值为10,变量B的值为0。
DimAAsInteger,BAsInteger
PrivateSubCommand1_Click()
DimBAsInteger
A=10
B=10
EndSub
PrivateSubCommand2_Click()
PrintA,B
EndSub
22.运行下面的程序,单击Command1,在窗体上显示的变量A的值为19,变量B的值为68。
OptionExplicit
DimAAsInteger
PrivateSubCommand1_Click()
DimBAsInteger
B=3
A=4
B=Fun(Fun(A,B+2),A)+B
PrintA,B
EndSub
PrivateFunctionFun(NAsInteger,KAsInteger)
N=N+A
K=N-K
Fun=N+K+A
EndFunction
※静态变量(数组)
23.执行下面的程序,连续三次单击命令按钮Command1之后,窗体上显示第一行为
1212,第三行为1236。
PrivateSubCommand1_Click()
DimaAsInteger,bAsString
StaticcAsInteger,dAsString
a=a+1
b=b&"VB"
c=c+1
d=d&"VB"
Printa,Len(b),c,Len(d)
EndSub
24.执行下面的程序,连续三次单击命令按钮Command1之后,A数组共有6个元素;数组元素A
(2)的值5,A(4)的值是17。
OptionExplicit
OptionBase1
PrivateSubCommand1_Click()
StaticA()AsInteger,nAsInteger
DimiAsInteger,kAsInteger
k=n
n=n+2
ReDimPreserveA(n)
Fori=k+1Ton
A(i)=i*n+1
Nexti
Fori=1Ton
PrintA(i);
Nexti
Print
EndSub
※递归
25.执行下面的程序,单击Command1,窗体上显示的第一行是23,第二行是
58,第四行是3455。
OptionExplicit
PrivateSubCommand1_Click()
DimaAsInteger,bAsInteger
a=1:
b=1
Callsub1(a,b)
Printa,b
EndSub
PrivateSubsub1(aAsInteger,bAsInteger)
a=a+b:
b=b+a
Printa,b
Ifa>10Then
a=a+b
b=b+a
Else
Callsub1(a,b)
EndIf
EndSub
26.执行下面程序,单击Command1,窗体上显示的第一行是12345,第二行是
123,第四行是OVER,最后一行是5。
OptionExplicit
PrivateSubCommand1_Click()
DimnAsInteger
n=5
Calltest(n)
Printn
EndSub
PrivateSubtest(ByValnAsInteger)
DimiAsInteger,sAsInteger
Ifn>0Then
Fori=1Ton
s=s&CStr(i)
Nexti
Prints
Calltest(n-2)
Else
Print"OVER"
EndIf
EndSub
27.执行下面程序,当单击窗体时,i的内容是5,a的内容是0101。
PrivateSubForm_Click()
Dimaasstring,basstring,iasinteger
a="1010"
b="1111"
fori=1tolen(b)
ifmid(a,i,1)=mid(b,i,1)then
mid(a,i,1)="0"
else
mid(a,i,1)="1"
endif
nexti
printi,a
EndSub
28.执行下列程序,第一行显示DDEF,第三行显示FEDDEF。
PrivateSubcmd1_Click()
DimchAsString,iAsInteger
ch="DEF"
Fori=1ToLen(ch)
ch=Mid(ch,2*i-1,1)&Left(ch,Len(ch))
Printch
Nexti
EndSub
29.运行下面程序,单击CmdRun,在窗体上显示a的值是5;b的值14;
i的值是13。
OptionExplicit
PrivateSubCmdRun_Click()
DimiAsInteger,aAsInteger,bAsInteger
a=1:
b=10
Fori=aTobStepa+1
a=a+1
b=b+1
i=i+1
Nexti
Printa,b,i
EndSub
30.执行下面程序,当单击窗体时,显示在窗体上第一行的内容是200,第二行的内容是10。
PrivateSubForm_Click()
DimIAsInteger,SumAsInteger
ForI=0.5To8.5Step2.5
Sum=Sum+I*10
NextI
PrintSum
printI
EndSub
31.执行下面程序,当单击窗体时,显示在窗体上第一行的内容是012,第二行的内容是101,第三行的内容是210。
PrivateSubForm_Click()
DimiAsInteger,jAsInteger
Fori=1To3
Forj=1To3
Ifi>jThen
Printi-j;
Else
Printj-i;
EndIf
Nextj
Print
Nexti
EndSub
32.执行下面程序,单击Command1,则窗体上显示的第一行是912,第三行是3-3,最后一行是0-6。
OptionExplicit
PrivateSubCommand1_Click()
DimxAsInteger,yAsInteger
x=12:
y=0
DoWhilex>0
IfxMod4=0Then
y=y+x
Else
y=y-x
EndIf
x=x-3
Printx,y
Loop
EndSub
33.执行下列程序,运行后a的值为6,b的值为55。
PrivateSubcmd1_Click()
DimaAsInteger,bAsInteger
a=1:
b=0
DoWhilea<=5
b=b+a*a
a=a+1
Loop
Printa,b
EndSub
34.执行下面程序,单击Command1,窗体上显示的第一行是_D_HL_,第二行是__NRV__,第三行是__XBF__。
OptionExplicit
OptionBase1
PrivateSubCommand1_Click()
Dimsa(3,3)AsString*1,iAsInteger,jAsInteger,kasInteger
k=1
Fori=1To3
Forj=1To3
sa(i,j)=Chr(Asc("A")+(k+i+j)Mod26)
Printsa(i,j);"";
k=k+3
Nextj
Print
Nexti
EndSub
35.执行以下程序,单击Command1,则在Picturel上显示的第一行是__492_______,第二行是__357_______,第三行是__816_______。
OptionExplicit
PrivateSubCommand1_Click()
DimA(3,3)AsInteger,iAsInteger,jAsInteger
DimkAsInteger
i=3:
j=2:
A(i,j)=1:
k=1
DoUntilk>9
k=k+1
Ifi+1>3Andj+1<=3Then
i=1:
j=j+1
ElseIfi+1<=3Andj+1>3Then
i=i+1:
j=1
Elselfi+1>3Andj+1>3Then
i=i-1
ElseIfi+1<=3Andj+1<=3AndA(i+1,j+1)<>0Then
i=i-1
Else
i=i+1:
j=j+1
EndIf
A(i,j)=k
Loop
Fori=1To3
Forj=1To3
Picture1.PrintA(i,j);
Nextj
Picture1.Print
Nexti
EndSub
36.执行下面的程序,单击Command1,则数组元素a(1,2)的数值是_15__,数组元素a(2,3)的数值是___9______,数组元素a(4,3)的数值是__2____。
OptionExplicit
PrivateSubCommand1_Click()
Dima(4,4)AsInteger,iAsInteger
DimjAsInteger,kAsInteger,nAsInteger
n=16:
k=2
Do
Fori=1To4
Forj=1To4
Ifi+j=kThen
a(i,j)=n
n=n-1
EndIf
Nextj
Nexti
k=k+1
LoopUntilk>8
Fori=1To4
Forj=1To4
PrintRight(""&a(i,j),3);
Nextj
Print
Nexti
EndSub
37.执行下列的程序,单击Command1,在窗体上显示的变量b的值为____-1_____,变量c的值为_____1____,变量z的值为___4______。
PrivateSubCo