vb复习题.docx
《vb复习题.docx》由会员分享,可在线阅读,更多相关《vb复习题.docx(18页珍藏版)》请在冰豆网上搜索。
vb复习题
VB复习题
一、选择题
1、在窗体Form1的Click事件过程中有以下语句:
Label1.Caption="VisualBasic"
若本语句执行之前,标签控件Label1的Caption属性为默认值,则标签控件的Name属性和Caption属性在执行本语句之前的值分别为:
(A)"Label"、"Label"(B)"Label"、"Caption"
(C)"Label1"、"Label1"(D)"Caption"、"Label"
2、文本框对象的默认属性是:
(A)Name(B)Text(C)Visible(D)Enabled
3、下列数据类型中,占用内存最小的是:
(A)Boolean(B)Byte(C)Integer(D)Single
4、下面哪一个不是字符串常量:
(A)"你好"(B)""(C)"True"(D)#False#
5、下列哪一个是日期型常量:
(A)"2/1/99"(B)2/1/99(C)#2/1/99#(D){2/1/99}
6、已知变量A、B、C中C值最小,下列表达式中,可以判断A、B、C的值可否构成三角形三条边长的是:
(A)A>=BAndB>=CAndC>0(B)A+C>BAndB+C>AAndC>0
(C)(A+B>=COrA-B<=C)AndC>0(D)A+B>CAndA-B0
7、下列运算符中,优先级最高的是:
(A)Not(B)Is(C)Like(D)&
8、当VB执行下面语句后,A的值为__________
A=1
IfA>0ThenA=A+1
IfA>1ThenA=0
(A)0(B)1(C)2(D)3
9、程序在运行循环“Fori=1to14step3”结束后,i的值等于________。
(A)16(B)13(C)14(D)15
10、以下______语句可以跳出DoUntil……Loop循环
(A)End(B)ExitLoop(C)ExitDo(D)ExitFor
11、窗体上放置一个命令按钮Commmand1,单击按钮后,X的值是______。
PrivateSubCommand1_Click()
x=5
Fori=1To20Step2
x=x+i\5
Nexti
EndSub
(A)21(B)22(C)23(D)24
12、在窗体上画1个命令按钮和1个标签,其名称分别为Command1和Label1,然后编写如下事件过程:
PrivateSubCommand1_Click()
Counter=0
Fori=1To4
Forj=6To1Step-2
Counter=Counter+1
Nextj
Nexti
Label1.Caption=Str(Counter)
EndSub
程序运行后,单击命令按钮,标签中显示的内容是
(A)11(B)12(C)16(D)20
13、阅读下面的程序段:
Fori=1to3
Forj=1toi
a=a+1
nextj
nexti
执行上面的两重循环后,a的值为
(A)3(B)9(C)6(D)21
14、用下面的语句所定义的数组的元素个数是
DimA(-3to5)AsInterger
(A)6(B)7(C)8(D)9
15、Sub过程与Function过程最根本的区别是:
(A)前者可以使用Call或直接使用过程名调用,后者不可以
(B)后者可以有参数,前者不可以
(C)两种过程参数的传递方式不同
(D)前者无返回值,但后者有返回值
16、在定义函数过程时,不可能用到的关键字是:
(A)Exit(B)As(C)Sub(D)End
17、3.在定义通用过程时,下列关键字中不能用来修饰形参的是:
(A)ByVal(B)ByRef(C)Optional(D)Static
18、执行以下程序段:
a$="abbacddcba"
Fori=6To2Step-2
X=Mid(a,i,i)
Y=Left(a,i)
Z=Right(a,i)
Z=UCase(X&Y&Z)
Nexti
PrintZ
(A)ABA(B)AABAAB(C)ABBABA(D)BBABBA
19、用下面的语句所定义的数组的元素个数是______。
Dimarr(3To5,-2To2)
(A)20(B)12(C)15(D)24
20、以下程序段的执行结果是____________。
DimA(1To10)
Fori=1To10
A(i)=2*i
Nexti
PrintA(A(3))
(A)12(B)6(C)8(D)16
二、填充题
21、下列数据类型的变量各占多少字节的内存:
Byte:
(1);Integer:
(2);Long:
(3);Single:
(4);Double:
(5)。
22、刚被定义尚未赋值的日期型变量的值为(6);逻辑型变量的值为(7);对象型变量的值为(8);变体变量的值为(9)。
23、如果int1是整型变量,则执行int1="2"+3语句之后,int1的值为(10);执行int1="2"+"3"语句之后,int1的值为(11)。
24、表达式(-3)Mod8的值为(12)。
25、判断变量X是不是能被5整除的偶数,逻辑表达式可写为(13)
26、已知a、b、c都是整型变量,使用VisualBasic逻辑表达式描述下列条件:
a小于b或小于c:
(14);
a和b都大于c:
(15);
a和b中至少有一个大于c:
(16);
a和b中只有一个大于c:
(17);
a是非正数:
(18);
a不能被b整除:
(19)。
27、阅读下面的事件过程。
单击窗体后,在文本框Text1和Text2中显示的内容分别是(20)和(21);若将程序中A语句与B语句的位置互换,再次执行程序,单击窗体后在Text1和Text2中显示的内容分别是(22)和(23)。
1PrivateSubForm_Click()
2DimxAsInteger,yAsInteger
3x=1:
y=0
4DoWhilex<3
5y=y+x'A语句
6x=x+1'B语句
7Loop
8Text1.Text=x
9Text2.Text=y
10EndSub
28、本程序根据下式计算
的值(通项的值小于10-6时停止计算),请完善之。
1PrivateSubCommand1_Click()
2DimxAsSingle,yAsSingle,tAsSingle
3DimaAsSingle,bAsSingle,nAsSingle
4x=CSng(Text1.Text)
5y=(24)
6b=1
7n=2
8Do
9a=x^(2*n-1)/(2*n-1)
10b=(25)
11t=a*b
12y=y+t
13n=n+1
14LoopWhile(26)
15Text2.Text=y
16EndSub
29、在过程调用中,参数的传递方式可分为按值传递和按地址传递两种,其中(27)是默认方式。
使用(28)关键字来修饰形式参数,可以使之按值传递。
30、运行下面程序,当单击窗体时,窗体上显示在内容是(29);如果把A语句替换为x=64,B语句替换为r=8,则输出结果为(30)。
分析一下这个程序的功能是什么。
1DimnAsInteger,kAsInteger,xAsInteger,rAsInteger'模块级变量
2Dima(8)AsInteger'模块级数组
3PrivateSubconv(dAsInteger,r,i)
4i=0
5DoWhiled<>0
6i=i+1
7a(i)=dModr:
d=d\r
8Loop
9EndSub
10
11PrivateSubForm_click()
12x=12'A语句
13r=2'B语句
14PrintCStr(x);"(";CStr(r);")=";
15Ifx=0Then
16Print0
17Else
18Callconv(x,r,n)
19Fork=nTo1Step-1
20Printa(k);
21Nextk
22Print
23EndIf
24EndSub
三、编程题
31、若一头小母牛从第四个年头开始每年生一头母牛,按此规律,求第n年时共有多少头母牛。
32、编程显示如图1所示的星号三角形,三角形的行数可由文本框指定。
图1星号三角形
33、编程计算
的值,其中n=20。
34、编写程序,实现矩阵转置,即将1个n×m的矩阵的行和列互换。
例如,a矩阵为
转置后的矩阵b为
35、编写程序,把下面的数据输入1个二维数组中:
25367813
12268893
75182232
56443658
然后执行以下操作:
(1)输出矩阵2个对角线上的数
(2)分别输出各行和各列的和
(3)交换第1行和第3行的位置
(4)交换第2列和第4列的位置
(5)输出处理后的数组
36、编写程序完成下列要求:
(1)随机产生1个NN二维数组,二维数组中的数字为0~100之间的整数,N由文本框输入(N不大于8)。
(2)找出数组中的最大数。
(3)输出随机产生的二维数组,最大数和最大数的行号及列号。
答案
一、选择题
1、C2、B3、B4、D5、C6、B7、D8、C9、A10、C11、A12、B
13、C14、D15、D16、C17、D18、D19、C20、A
二、填充题
21、
(1)1
(2)2(3)4(4)4(5)8
22、(6)#0:
00:
00#(7)Fasle(8)Nothing(9)Empty
23、(10)5(11)23
24、(12)-3
25、(13)(XMod5)=0And(XMod2)=0或XMod10=0
26、(14)acAndb>c(16)a>cOrb>c
(17)a>cXorb>c(18)a<=0(19)aModb<>0
27、(20)3(21)3(22)3(23)5
28、(24)x(25)b*(2*n-3)/(2*n-2)(26)Abs(t)>=0.000001
29、(27)按地址传递(28)ByVal
30、
(1)12
(2)=1100
(2)64(8)=100
三、编程题
31、(提示:
从第4年起,第n年牛数等于第n-1年和第n-3年牛数的和。
)
1PrivateSubCommand1_Click()
2Dima1AsInteger,a2AsInteger,a3AsInteger,aAsInteger
3Dimint1AsInteger,nAsInteger
4n=Cint(Text1.Text)
5Forint1=1Ton
6Ifint1<4Then
7a1=1:
a2=1:
a3=1:
a=1
8Else
9a=a1+a3
10a1=a2
11a2=a3
12a3=a
13EndIf
14Next
15Text2.Text=a
16EndSub
32、
1PrivateSubCommand1_Click()
2Dims1AsString,s2AsString
3DimnAsInteger
4DimiAsInteger,jAsInteger
5Cls'清除窗体上现有内容
6n=Text1.Text
7Fori=1Ton
8s1=""
9Forj=1Ton-i
10s1=s1&""'产生n-i个空格
11Next
12s2=s2&"*"'产生i个由空格分隔的“*”
13Prints1&s2'在窗体上显示一行“*”
14Next
15EndSub
33、计算结果为0.9523811。
1PrivateSubCommand1_Click()
2DimsngAmountAsSingle
3Dimint1AsInteger
4sngAmount=0
5Forint1=1To20
6sngAmount=sngAmount+1/int1/(int1+1)
7Next
8Text1.Text=sngAmount
9EndSub
34、
PrivateSubForm_Click()
ConstN=3
ConstM=4
DimA(N,M),B(M,N)AsInteger
Fori=1ToN
Forj=1ToM
A(i,j)=Int(Rnd*90)+10
Nextj
Nexti
Fori=1ToN
Forj=1ToM
B(j,i)=A(i,j)
Nextj
Nexti
Print
Print"矩阵A(转置前):
"
Print
Fori=1ToN
Forj=1ToM
PrintTab(5*j);A(i,j);
Nextj
Print
Nexti
Print
Print"矩阵B(转置后):
"
Fori=1ToM
Forj=1ToN
PrintTab(5*j);B(i,j);
Nextj
Print
Nexti
EndSub
35、
PrivateSubForm_Click()
Dimmat(4,4)AsInteger
DimN,MAsInteger
N=4
M=4
'输入矩阵
Fori=1ToN
Forj=1ToM
mat(i,j)=InputBox("请输入数组第"&i&"行第"&j&"列元素值")
Val(mat(i,j))
Nextj
Nexti
'输出初始矩阵
Print
Print"初始矩阵为:
"
Print
Fori=1ToN
Forj=1ToM
PrintTab(6*j);mat(i,j);
Nextj
Print
Nexti
'输出矩阵对角线上的数
Print
Print"矩阵对角线上的数位:
"
Print
Fori=1ToN
Forj=1ToM
Ifi=jThen
PrintTab(6*j);mat(i,j);
EndIf
Nextj
Nexti
Print
Fori=1ToN
Forj=1ToM
Ifi+j=5Then
PrintTab(6*i);mat(i,j);
EndIf
Nextj
Nexti
'输出各行的和
DimS(4)AsInteger
Print
Print"各行的和为:
"
Fori=1ToN
S(i)=0
Forj=1ToM
S(i)=S(i)+mat(i,j)
Nextj
Print"第"&i&"行的和为:
"&S(i)
Nexti
'输出各列的和
Print
Print"各列的和为:
"
Forj=1ToN
S(j)=0
Fori=1ToM
S(j)=S(j)+mat(i,j)
Nexti
Print"第"&j&"行的和为:
"&S(j)
Nextj
'交换第一行和第三行
Print
Forj=1ToM
t=mat(1,j)
mat(1,j)=mat(3,j)
mat(3,j)=t
Nextj
Print
Print"交换第一行和第三行后的矩阵为:
"
Print
Fori=1ToN
Forj=1ToM
PrintTab(6*j);mat(i,j);
Nextj
Print
Nexti
'交换第二列和第四列
Print
Fori=1ToN
t=mat(i,2)
mat(i,2)=mat(i,4)
mat(i,4)=t
Nexti
Print
Print"交换第二列和第四列后的矩阵为:
"
Print
Fori=1ToN
Forj=1ToM
PrintTab(6*j);mat(i,j);
Nextj
Print
Nexti
EndSub
36、
PrivateSubCommand1_Click()
DimiAsInteger,jAsInteger,pAsInteger,qAsInteger
DimnAsInteger,minAsInteger
Dima()AsInteger
n=Text1.Text
ReDima(n,n)
Fori=1Ton
Forj=1Ton
a(i,j)=Rnd()*100
PrintTab(5*j);a(i,j);
Nextj
Print
Nexti
Min=a(1,1)
p=1
q=1
Fori=1Ton
Forj=1Ton
Ifmin>a(i,j)Then
min=a(i,j)
p=i
q=j
EndIf
Nextj
Nexti
Print"数组中的最小数为:
"&min
Print"最小数的行号为"&p&",最小数的列号为"&q
EndSub