vb考试复习题.doc
一、选择题((1)(20)每小题2分,(21)(30)每小题3分,共70分)(1) 设窗体上有一个文本框,名称为text1,程序运行后,要求该文本框不能接受键盘输入,但能输出信息,以下属性设置正确的是:()。A)text1.maxlength=0 B)text1.enabled=flase C)text1.visible=flase D)text1.width=0 (2) 以下能在窗体Form1的标题栏中显示“VisualBasic窗体"的语句是()。A) Form1.Name="VisualBasic窗体" B) Form1.Title="VisualBasic窗体"C) Form1.Caption="VisualBasic窗体" D) Form1.Text="VisualBasic窗体”(3) 在窗体上画一个名称为Text1的文本框,然后画一个名称为HScroll1的滚动条,其Min和Max属性分别为0和100。程序运行后,如果移动滚动框,则在文本框中显示滚动条的当前值,如图所示:以下能实现上述操作的程序段是()。A) Private Sub HScroll_Change()Text1.Text=HScroll1.valueEnd SubB) Private Sub HScroll_Click()Text1.Text=HScroll1.valueEnd SubC) Private Sub HScroll_Change()Text1.Text=HScroll.CaptionD) Private Sub HScroll_Click()Text1.Text=HScroll.CaptionEnd Sub(4) 设菜单中有一个菜单项为"Open"。若要为该菜单命令设计访问键,即按下Alt及字母O时,能够执行"Open"命令,则在菜单编辑器中设置“Open"命令的方式是()。A) 把Caption属性设置为&Open B) 把Caption属性设置为O&penC) 把Name属性设置为&Open D) 把Name属性设置为O&pen(5) 在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:Private Sub Command1_Click()x=InputBox("Input")Select Case xCase 1,3Print "分支 1"Case Is >4Print "分支 2"Case ElsePrint "Else 分支 "End SelectEnd Sub程序运行后,如果在输入对话框中输入2,则窗体上显示的是()。A) 分支1 B) 分支2 C) Else分支 D) 程序出错(6) 以下关于MsgBox的叙述中,错误的是()。A) MsgBox函数返回一个整数B) 通过MsgBox函数可以设置信息框中图标和按钮的类型C) MsgBox语句没有返回值D) MsgBox函数的第一个参数是一个整数,该参数只能确定对话框中显示的按钮数量(7)在窗体上画一个名称为Timer1的计时器控件,要求每隔0.5秒发生一次计时器事件,则以下正确的属性设置语句是()。A)Timer1.InterVal=0.5 B) Timer1.Interval=5 C) Timer.Interval=50 D) Timer1.Interval=500(8) 在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:Private Sub Command1_Click()Static x As IntegerClsFor i=1 To 2y=y+xx=x+2Next Print x,yEnd Sub程序运行后,连续三次单击Command1按钮后,窗体上显示的是()。A) 4 2 B) 12 18 C) 12 30 D) 4 6(9) 以下关于多重窗体程序的叙述中,错误的是()。A)用Hide方法不但可以隐藏窗体,而且能清除内存中的窗体B)在多重窗体程序中,各窗体的菜单是彼此独立的C)在多重窗体程序中,可以根据需要指定启动窗体D)对于多重窗体程序中,而且单独保存每个窗体(10)以下关于文件的叙述中,错误的是()。A)顺序文件中的记录一个接一个地顺序存放 B)随机文件中记录的长度是随机的C)执行打开文件的命令后,自动生成一个文件指针 D)LOF函数返回给文件分配的字节数(11) 以下叙述中错误的是()。A)事件过程是响应特定事件的一段程序 B)不同的对象可以具有相同名称的方法C)对象的方法是执行指定操作的过程 D)对象事件的名称可以由编程者指定(12) 以下合法的Visual Basic标识符是()。A) ForLoop B) Const C) 9abcD) a#x(13) 当一个复选框被选中时,它的value属性的值是()。A) 3 B) 2 C) 1 D) 0(14) 表达式 5 Mod 3+35*2的值是()。A) 0 B) 2 C)4 D) 6(15) 设x=4,y=8,z=7,以下表达式的值是()。x<y And (Not y>z) Or z<xA) 1B) -1 C) TrueD) False(16) 在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:Private Sub Command1_Click()a$="VisualBasic"Print String(3,a$)End Sub程序运行后,单击命令按钮,在窗体上显示的内容是()。A)VVV B) Vis C) sic D) 11(17) 设有如下程序段:x=2For i=1 To 10 Step 2x=x+iNext运行以上程序后,x的值是()。A) 26 B) 27 C) 38 D) 57(18) 以下叙述中错误的是()。A) 在KeyPress事件过程中不能识别键盘的按下与释放B) 在KeyPress事件过程中不能识别回车键C) 在KeyDown和KeyUp事件过程中,将键盘输入的"A"和"a"视作相同的字母D) 在KeyDown和KeyUp事件过程中,从大键盘上输入的"1"和从右侧小键盘上输入的"1"被视作不同的字符(19) 执行如下两条语句,窗体上显示的是()。a=9.8596Print Format(a,"$00,00.00")A) 0,009.86 B) $9.86 C) 9.86 D) $0,009.86(20)在窗体上画一个名称为CommandDialog1 的通用对话框,一个名称为Command1的命令按钮。然后编写如下事件过程:Private Sub Command1_Click()CommonDialog1.FileName =""CommonDialog1.Filter="All file|*.*|(*.Doc)|*.Doc|(*.Txt)|*.Txt"CommonDialog1.FilterIndex=2CommonDialog1.DialogTitle="VBTest"CommonDialog1.Action=1End Sub对于这个程序,以下叙述中错误的是()。A) 该对话框被设置为“打开”对话框B) 在该对话框中指定的默认文件名为空C) 该对话框的标题为VBTestD) 在该对话框中指定的默认文件类型为文本文件(*.Txt)(21) 设一个工程由两个窗体组成,其名称分别为Form1和Form2,在Form1上有一个名称为Command1的命令按钮。窗体Form1的程序代码如下:Private Sub Command1_Click()Dim a As Integera=10Call g(Form2,a)End SubPrivate Sub g(f As Form,x As Integer)y=IIf(x>10,100,-100)f,Showf.Caption=yEnd Sub运行以上程序,正确的结果是()。A) Form1的Caption属性值为100 B) Form2的Caption属性值为-100C) Form1的Caption属性值为-100 D) Form2的Caption属性值为100(22)在窗体上画一个名称为Command1的命令按钮,并编写如下程序:Private Sub Command1_Click()Dim x As IntegerStatic y As Integerx=10y=5Call f1(x,y)Print x,yEnd SubPrivate Sub f1(ByRef x1 As Integer, y1 As Integer)x1=x1+2y1=y1+2End Sub程序运行后,单击命令按钮,在窗体上显示的内容是()。A) 10 5 B) 12 5 C) 10 7 D) 12 7(23)设有如下程序Option Base 1Private Sub Command1_Click()Dim a(10) As IntegerDim n As Integern=InputBox("输入数据")If n<10 ThenCall GetArray(a,n)End IfEnd SubPrivate Sub GetArray(b() As Integer,n As Integer)Dim c(10) As Integerj=0For i=1 To nb(i)=CInt(Rnd()*100)If b(i)/2=b(i)2 Thenj=j+1c(j)=b(i)End IfNextPrint jEnd Sub以下叙述中错误的是()。A) 数组b中的偶数被保存在数组c中B) 程序运行结束后,在窗体上显示的是c数组中元素的个数C) GetArray过程的参数n是按值传送的D) 如果输入的数据大于10,则窗体上不显示任何显示(24)在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:Option Base 1Private Sub Command1_Click()Dim aa= Array(1,2,3,4,5)For i=1 To UBound(a)a(i) = a(i)+i-1NextPrint a(3)End Sub程序运行后,单击命令按钮,则在窗体上显示的内容是()。A) 4 B) 5 C) 6 D)7(25)阅读程序Option Base 1Private Sub Form_Click()Dim arr,SumSum = 0arr = Array(1,3,5,7,9,11,13,15,17,19)For i=1 To 10If arr(i)/3 = arr(i)3 ThenSum =Sum+arr(i)End IfNext iPrint SumEnd Sub程序运行后,单击窗体,输入结果为()。A)13 B)14 C)27 D)15(26)在窗体上画一个名称为File1的文件列表框,并编写如下程序:Private Sub File1_DblClick()x=Shell(File1.FileName,1)End Sub以下关于该程序的叙述中,错误的是()。A) x没有实际作用,因此可以将该语句写为:Call Shell(File1,FileName,1)B)双击文件列表框中的文件,将触发该事件过程C)要执行的文件的名字通过File1.FileName指定D)File1中显示的是当前驱动器、当前目录下的文件(27) 在窗体上画一个名称为Label1、标题为“VisualBasic考试”的标签,两个名称分别为Command1和Command2、标题分别为“开始”和“停止”的命令按钮,然后画一个名称为Timer1的计时器控件,并把其Interval属性设置为500,如图所示。编写如下程序:Private Sub Form_Load()Timer1.Enabled=FalseEnd SubPrivate Sub Command1_Click()Timer1.Enabled=TrueEnd SubPrivate Sub Timer1_Timer()If Label1.Left<Width ThenLabel1.Left = Label1.Left + 20ElseLabel1.Left=0End IfEnd Sub程序运行后,单击“开始”按钮,标签在窗体中移动。对于这个程序,以下叙述中错误的是()。A) 标签的移动方向为自右向左B)单击“停止”按钮后再单击“开始”按钮,标签从停止的位置继续移动C) 当标签全部移出窗体后,将从窗体的另一端出现并重新移动D)标签按指定的时间时隔移动(28)执行以下程序段a$="abbacddcba"For i=6 To 2 Step -2X=Mid(a,i,i)Y=Left(a,i)z=Right(a,i)z=UCase(X&Y&z)Next iPrint z输出结果为()。A)ABA B)BBABBA C)ABBABAD)AABAAB(29)在窗体上画一个名称为Command1的命令按钮,然后编写如下程序:Option Base 1Private Sub Command1_Click()Dim a As Varianta=Array(1,2,3,4,5)Sum=0For i=1 To 5Sum = sum+a(i)Next ix=Sum/5For i =1 To 5If a(i)>x Then Print a(i);Next iEnd Sub程序运行后,单击命令按钮,在窗体上显示的内容是()。A) 1 2 B) 1 2 3 C) 3 4 5D) 4 5(30)假定一个工程由一个窗体文件Form1和两个标准模块文件Model1及Model2组成。Model1代码如下:Public x As IntegerPublic y As IntegerSub S1()x =1S2End SubSub S2()y=10Form1.ShowEnd ShowModel2的代码如下:Sub Main()S1End Sub其中Sub Main被设置为启动过程。程序运行后,各模块的执行顺序是 ()。A) Form1->Model1->Model2B) Model1->Model2->Form1C) Model2->Model1->Form1D) Model2->Form1->Model1二、填空题(每空2分,共30分) 请将每空的正确答案写在答题卡【1】【15】序号的横线上,答在试卷上不得分。(1) 设有如下程序段:a$="BeijingShanghai"b$=Mid(a$,InStr(a$,"g")+1)执行上面的程序段后,变量b$的值为_1_。(2) 以下程序段的输出结果是_2_。num =0While num<=2num = num+1WendPrint num(3)阅读下面的程序Private Sub Form_Click()Dim Check As Boolean, Counter As IntegerCheck = TrueCounter = 5DoDo While Counter < 20Counter = Counter + 1If Counter = 10 ThenCheck = FalseExit DoEnd IfLoopLoop Until Check = FalsePrint CounterEnd Sub程序运行后,单击窗体,输出结果是【3】 (4).设有如下程序:Option Base 1Private Sub Command1_Click()Dim arr1Dim Min As Integer, i As Integerarr1 = Array(12, 435, 76, -24, 78, 54, 866, 43)Min = 【4】For i = 2 To 8If arr1(i) < Min Then 【5】Next iPrint "最小值是:" MinEnd Sub以上程序的功能是用Array函数建立一个含有8个元素的数组,然后查找并输出该数组中的最小值,请填空(5) 本程序的功能是利用随机数函数模拟投币,方法是:每次随机产生一个0或1的整数,相当于一次投币,1代表正面,0代表反面。在窗体上有三个文本框,名称分别是Text1、Text2、Text3,分别用于显示用户输入投币总次数、出现正面的次数和出现反面的次数,如图所示。程序运行后,在文本框Text1中输入总次数,然后单击“开始”按钮,按照输入的次数模拟投币,分别统计出现正面、反面的次数,并显示结果。以下是实现上述功能的程序,请填空。Private Sub Command1_Click()Randomizen=CInt(Text1.Text)n1=0n2=0For i=1 To_6_r=Int(Rnd*2)If r=_7_Thenn1=n1+1Elsen2=n2+1End IfNextText2.Text=n1Text3.Text=n2End Sub(6) 阅读程序:Option Base 1Private Sub Form_Click()Dim a(3) As IntegerPrint "输入的数据是:"For i=1 To 3a(i)=InputBox("输入数据")Print a(i);NextPrintIf a(1)<a(2) Thent=a(1)a(1)=a(2)a(2)=_8_End IfIf a(2)>a(3) Thenm=a(2)ElseIf a(1)>a(3) Thenm=_9_Elsem=_10_End IfPrint "中间数是:"mEnd Sub程序运行后,单击窗体,在输入对话框中分别输入三个整数,程序将输出三个数中的中间数,如图所示。请填空。(7) 在窗体上画一个名称为“Command1”,标题为“计算”的命令按钮,再画7个标签,其中5个标签组成名称为Label1的控件数组;名称为Label2的标签用于显示计算结果,其Caption属性的初始值为空;标签Label3的标题为“计算结果”。运行程序时会自动生成5个随机数,分别显示在标签控件数组的各个标签中,如图所示。单击“计算”按钮,则将标签数组各元素的值累加,然后计算结果显示在Label2。请填空。Private Sub Command1_Click()Sum = 0For i=0 To 4Sum=Sum+_11_Next_12_=SumEnd Sub(8) 在窗体上画两个名称分别为Command1和Command2、标题分别为“初始化”和“求和”的命令按钮。程序运行后,如果单击“初始化”命令按钮,则对数组a的各元素赋值;如果单击“求和”命令按钮,则求出数组a的各元素之和,并在文本框中显示出来,如图所示。请填空。Option Base 1Dim a(3,2) As IntegerPrivate Sub Command1_Click()For i=1 To 3For j=1 To 2_13_=i+jNext jEnd SubPrivate Sub Command2_Click()For j=1 To 3For i=1 To 2s=s+_14_Next iNext jText1.Text= _15_End Sub一、选择题((1)(20)每小题2分,(21)(30)每小题2分,共70分)(1)(10)B C A A C D D B A B(11)(20) D A C B D A B B D D(21)(30) B D C B C A A B D C二、填空题(每空2分,共30分)1、 (1) "Shanghai"2、 (2) 33、 (3) 104、(4) arr1(1)(5)min=arr1(i)5、 (6) n(7) 1 6、 (8) t (9) a(3) (10) a(1)7、 (11) label1(i).caption(12) label2.caption8、 (13) a(i,j) (14) a(j,i) (15) s