二级VB复习题.docx
《二级VB复习题.docx》由会员分享,可在线阅读,更多相关《二级VB复习题.docx(15页珍藏版)》请在冰豆网上搜索。
二级VB复习题
三、阅读程序,回答问题
1、执行下面程序,如果运行时输入2,则在窗体上输出结果是2。
PrivateSubCommand1_Click()
DimxAsInteger
x=InputBox("Inputx")
Ifx>1Then
y=x+2
ElseIfx<5Then
y=x+3
ElseIfx=2Then
y=x
EndIf
Printy
EndSub
2、运行下面程序,窗体上第一行显示的结果为BBCDE;第四行显示的结果为EDCBBCDE。
PrivateSubCommand1_Click()
DimchAsString,iAsInteger
ch="BCDE"
Fori=1ToLen(ch)
ch=Mid(ch,2*i-1,1)&Right(ch,Len(ch))
Printch
Nexti
EndSub
3、在窗体上画一个名称为Command1的命令按钮和两个名称分别为Text1、Text2的文本框,然后编写如下事件过程:
PrivateSubCommand1_Click()
N=Text1.Text
SelectCaseN
Case1To20
X=10
Case2,4,6
X=20
CaseIs<10
X=30
Case10
X=40
EndSelect
Text2.Text=X
EndSub
程序运行后,如果在文本框Text1中输入10,然后单击命令按钮,则在Text2中显示的内容是___10_____。
4、设窗体上有一个文体框Text1和一个命令按钮Command1,并有以下事件过程:
PrivateSubCommand1_Click()
DimsAsString,chAsString
s=""
Fork=1ToLen(Text1)
ch=Mid(Text1,k,1)
s=ch+s
Nextk
Text1.Text=s
EndSub
程序执行时,在文本框中输入“Basic”,然后单击命令按钮,则Text1中显示的是_____cisaB___。
5、运行下面程序,窗体上显示的结果为735。
PrivateSubCommand1_Click()
DimaAsInteger,bAsInteger
a=1
b=0
DoWhilea<=6
b=b+a*a
a=a+2
Loop
Printa,b
EndSub
6、下面程序段的运行结果是-1242。
PrivateSubForm_Click()
a=0
b=0
Fori=-1To-3Step-1
Forj=1To3
b=b+j^2
Nextj
a=a+2*i
Nexti
Printa;b
EndSub
7、在窗体上画一个命令按钮(其NAME属性为Command1),然后编写如下代码:
OptionBase1
PrivateSubCommand1_Click()
DimA
S=0
A=Array(1,2,3,4)
J=1
ForI=4To1Step-1
S=S+A(I)*J
J=J*10
NextI
PrintS
EndSub
运行上面的程序,单击命令按钮,其输出结果是__1234_____。
8、在窗体上画一个名称为Label1的标签,然后编写如下事件过程:
PrivateSubForm_Click()
DimArr(10,10)AsInteger
DimIAsInteger,JAsInteger
ForI=2To4
ForJ=2To4
Arr(I,J)=I*J
NextJ
NextI
Label1.Caption=Str(Arr(2,2)+Arr(3,3))
EndSub
程序运行后,单击窗体,在标签中显示的内容是___13____。
9、单击窗体,执行下面的程序,a(1,1)的值是2,a(2,2)的值是12。
OptionBase1
PrivateSubForm_Click()
Dima(3,3)AsInteger
Dimi,j,sAsInteger
Fori=1To3
Forj=1To3
a(i,j)=i+j+s
s=s+2
Printa(i,j);
Nextj
Print
Nexti
EndSub
10、运行下面的程序,单击窗体后,在窗体上显示的内容是16。
PrivatesubForm_click()
Dimaasinteger,basinteger
a=4
b=180
Do
a=a*a
Loopuntila>sqr(b)
Printa
Endsub
11、阅读以下程序代码,写出执行这些程序代码后,在窗体上显示的内容3471118。
程序:
PrivateSubForm_Click()
Dimn1asinteger,n2asinteger,n3asinteger
n1=3
n2=4
Printn1;n2;
Do
n3=n1+n2
Printn3;
n1=n2
n2=n3
Loopuntiln3>=15
Endsub
12、阅读以下程序代码,写出执行这些程序代码后,在窗体上显示的内容为7101313。
PrivateSubForm_Click()
Dimx,yasinteger
x=3
y=4
Dowhilex+y<20
Y=y+3
X=x+2
Printy;
Ify>20thenexitdo
Loop
Printy
Endsub
13、第一行结果为ABCDEFG第二行结果为BCDEFGH
PrivateSubForm_Click()
Dimstr1AsString,iAsInteger,strAsString
str1="ABCDEFG"
Fori=1ToLen(str1)
str=str&Chr(Asc(Mid(str1,i,1))+1)
Nexti
Printstr1
Printstr
EndSub
14、第一行结果为x=35y=55,第二行结果为m=15n=55。
PrivateSubForm_Click()
DimmAsInteger,nAsInteger
m=15:
n=20
Callvalue(m,n)
Print"m=";m,"n=";n
EndSub
PrivateSubvalue(ByValxAsInteger,yAsInteger)
x=x+20
y=x+y
Print"x=";x,"y=";y
EndSub
四、完善程序
1、编写一个程序,用随机函数生成10个两位数,存放在数组Com中,并从中找出一个最大数Max和一个最小数Min。
OptionExplicit
OptionBase1
PrivateSubForm_Click()
Dimcom(12)AsInteger,iAsInteger
DimmaxAsInteger,minAsInteger
Randomize
Fori=1To10
com(i)=Int(90*Rnd)+10
Printcom(i);
Nexti
Print
max=com
(1):
min=com
(1)
Fori=2To10
Ifcom(i)>maxThen
Max=com(i)
ElseIfcom(i)Min=com(i)
EndIf
Nexti
Print"最大数是:
";max
Print"最小数是:
";min
EndSub
2、窗体上有一个名称为List1的列表框,一个名称为Text1的文本框,一个名称为Label1、Caption属性为“Sum”的标签,一个名称为Command1、标题为“计算”的命令按钮。
程序运行后,将把1~100之间能够被7整除的数添加到列表框。
如果单击“计算”按钮,则对List1中的数进行累加求和,并在文本框中显示计算结果,如图所示。
以下是实现上述功能的程序,请填空。
PrivateSubForm_Load()
ForI=1To100
IfIMod7=0Then
______List1.Additemstr(i)_____
EndIf
Next
EndSub
PrivateSubCommand1_Click()
Sum=0
ForI=0To_________List1.Listcount-1______
Sum=Sum+_____val(List1.List(I))__________
Next
Text1.Text=Sum
EndSub
3、以下是按钮cmd1的click事件过程,求2到100之间的所有素数,素数显示在窗体上。
PrivateSubcmd1_click()
Dimint1asinteger,int2asinteger
Forint1=2to100
Forint2=2toint1\2
Ifint1modint2=0then
Exitfor
Endif
Nextint2
Ifint2>100then
Printint1
Nextint1
Endsub
4、以下程序的功能是:
将一维数组A中的100个元素分别赋给二维数组B的每个元素并打印出来,要求把A
(1)到A(10)依次赋给B(1,1)到B(1,10),把A(11)到A(20)依次赋给B(2,1)到B(2,10),……,把A(91)到A(100)依次赋给B(10,1)到B(10,10)。
请填空。
OptionBase1
PrivateSubForm_Click()
DimiAsInteger,jAsInteger
DimA(1To100)AsInteger
DimB(1To10,1To10)AsInteger
Fori=1To100
A(i)=Int(Rnd*100)
Nexti
Fori=1To__10______
Forj=1To__10______
B(i,j)=(i-1)*10+j
PrintB(i,j);
Nextj
Print
Nexti
EndSub
5、本程序的功能是:
产生10个个位数不相同的三位随机正整数,并存放其下标与其个位数相同的数组元素中,例如:
395应存到a(5)中。
OptionExplicit
PrivateSubForm_click()
Dima(9)asinteger,xasinteger,kasinteger,Iasinteger
Randomize
DowhileI<=9
X=int(Rnd*900+100)
K=xmod10
ifa(k)=0then
a(k)=x
I=I+1
endif
loop
forI=0to9
printa(i);
nextI
endsub
6、下面的程序是找出两个正整数a和b,使得a
OptionExplicit
DimaAsInteger,bAsInteger,nAsInteger,cAsInteger
PrivateFunctionGcd(ByValaAsInteger,ByValbAsInteger)AsInteger
Do
c=aModb:
a=b:
b=c
Loopuntilc=0
Gcd=a
EndFunction
PrivateSubform_click()
n=0
Fora=1To49
b=99–a
c=Gcd(a,b)
IfcMod3=0Then
n=n+1
Printa,b,c
EndIf
Nexta
Printn
EndSub
7、下列程序的功能是随机生成10个两位正整数,统计其中奇数和偶数的累加和,并打印输出奇数和偶数的个数
PrivateSubForm_click()
DimxAsInteger,s1AsInteger,s2AsInteger
Dimn1AsInteger,n2AsInteger,iAsInteger
Randomize
Fori=1To10
x=Int(Rnd*90)+10
Printx;
Ifxmod2=0Then
n2=n2+1
s2=s2+x
Else
n1=n1+1
s1=s1+x
EndIf
Nexti
Print
Print"奇数个数=";n1,"偶数个数=";n2
EndSub
8、在窗体上画一个名称为Command1的命令按钮,然后编写如下程序:
OptionBase1
PrivateSubCommand1_Click()
DimA(10)AsInteger
ForI=1To10
A(I)=I
Next
CallSwap( a )
ForI=1To10
PrintA(I);
Next
EndSub
SubSwap(B()AsInteger)
N=Ubound(B)
ForI=1ToN/2
T=B(I)
B(I)=B(N)
B(N)=T
N=N-1
Next
EndSub
上述程序的功能是,通过调用过程Swap,调换数组中数值的存放位置,即A
(1)与A(10)的值互换,A
(2)与A(9)的值互换,……,A(5)与A(6)的值互换。
请填空。
9、在窗体上画一个文本框,名称为Text1,然后编写如下程序:
PrivateSubForm_Load()
Open"d:
empdat.txt"ForOutputAs#1
Text1.Text=""
EndSub
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
IfKeyAscii=13Then
IfUCase(Text1.Text)="END"Then
Close#1
End
Else
Write#1, Text1.Text/Text1
Text1.Text=""
EndIf
EndIf
EndSub
以上程序的功能是:
在D盘temp文件夹下建立一个名为dat.txt的文件,在文本框中输入字符,每次按回车键都把当前文本框中的内容写入文件dat.txt,并清除文本框中的内容;如果输入“END”,则不写入文件,直接结束程序。
请填空。
10、以下程序的功能是:
把程序文件smtext1.txt的内容全部读入内存,并在文本框Text1中显示出来。
请填空。
PrivateSubCommand1_Click()
DiminDataAsString
Text1.Text=""
Open"smtext1.txt"ForInputAs2
DoWhileNotEOF
(2)
Input#2,inData
Text1.Text=Text1.Text&inData
Loop
Close#2
EndSub