1、二级 VISUAL+BASIC-11-1 及答案解析(总分:84.00,做题时间:90 分钟)一、选择题(总题数:25,分数:46.00)1.变量的类型可以用类型说明符来标识。下列使用类型说明符不正确的是_。(分数:2.00)A.zhx%B.DDDC.gzi!D.sd2.以下叙述中正确的是_。(分数:1.00)A.在属性窗口只能设置窗体的属性B.在属性窗口只能设置控件的属性C.在属性窗口可以设置窗体和控件的属性D.在属性窗口可以设置任何对象的属性3.用树状结构表示实体之间联系的模型是(分数:2.00)A.关系模型B.网状模型C.层次模型D.以上 3 个都是4.为了在按下回车键时执行某个命令按钮
2、的事件过程,需要把该命令按钮的_属性设置为True。(分数:2.50)A.ValueB.CancelC.EnabledD.Default5.在窗体上画一个命令按钮和一个标签,其名称分别为 Command1 和 Label1,然后编写如下事件过程: Private Sub Command1_Click() Counter=0 For i=1 To 4 For j=6 To 1 Step-2 Counter=Counter+1 Next j Next i Label1.Caption=Str(Counter) End Sub 程序运行后,单击命令按钮,标签中显示的内容是(分数:2.50)A.11B
3、.12C.16D.206.在窗体上画一个名称为 Label1、标题为“Visual Basic 考试”的标签,两个名称分别为 Command1 和Command2、标题分别为“开始”和“停止”的命令按钮,然后画一个名称为 Timer1 的计时器控件,并把其 Interval 属性设置为 500,如右图所示。编写如下程序: Private Sub Form_Load() Timer1Enabled=false End Sub Private Sub Command1_Click() Timer1.Enabled=True End Sub Private Sub Timer1_Timer() If
4、 Label1.LeftWidth Then Label1.Leftlabell.Left+20 Else Label1.Left=0 End If End Sub 程序运行后单击“开始”按钮,标签在窗体中移动。 (分数:2.00)A.标签的移动方向为自右向左B.单击“停止”按钮后再单击“开始”按钮,标签从停止的位置继续移动C.当标签全部移出窗体后,将从窗体的另一端出现并重新移动D.标签按指定的时间间隔移动7.设有下列二叉树: (分数:2.00)A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA8.下列各组变量声明正确的是 _ 。(分数:2.00)A.Dim abc as int
5、eger,num as singleB.Dim I%,N$as integerC.Dim a%,b%,c%,a$D.public dim n%9.单击命令按钮时,下列的执行结果为 Private Sub Command1_Click() Dim x As Integer,y As Integer x=86:y=29 Call Proc(x,y) Print x;y End Sub Public Sub Proc(n As Integer,ByVal m As Integer) n=n Mod 10 m=m Mod 10 End Sub(分数:1.00)A.12 32B.6 29C.2 3D.1
6、2 310.在窗体上画一个命令按钮,其名称为 Command1,然后编写如下事件过程: Private Sub Command1_Click() x=-3 If Sgn(x)Then y=Sgn(x2) Else y=Sgn(x) End If Print y End Sub 程序运行后,单击命令按钮,其输出结果为 _。(分数:3.00)A.-3B.9C.-1D.111.在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() x=0 Do Until x=-1 a=InputBox(“请输入 A 的值“) a=Val(A) b=InputBox
7、(“请输入 B 的值“) b=Val(B) x=InputBox(“请输入 x 的值“) x=Val(x) a=a+b+x Loop Print a End Sub 程序运行后,单击命令按钮,依次在输入对话框中输入 5、4、3、2、1、-1,则输出结果为 _。(分数:1.00)A.2B.3C.14D.1512.VB 中有 3 个键盘事件:KeyPress、KeyDown、KeyUp,若光标在 Text1 文本框中,则每输入一个字母 _(分数:2.00)A.这 3 个事件都会触发B.只触发 KeyPress 事件C.只触发 KeyDown、KeyUp 事件D.不触发其中任何一个事件13.用下面的
8、语句所定义的数组的元素个数是: _ 。 Dim arr(3 To 5,-2 to 2)(分数:1.00)A.20B.12C.15D.2414.设 a=“Visual Basic“,下面使 b=“Basic“的语句是(分数:2.00)A.b=Left(a,8,12)B.b=Mid(a,8,5)C.b=Right(a,5,5)D.b=Left(a,8,5)15.用黑盒技术测试用例的方法之一为(分数:1.00)A.因果图B.逻辑覆盖C.循环覆盖D.基本路径测试16.为使程序运行时通用对话框 Cd1 上显示的标题为“对话框窗口”,若通过程序设置该标题,则应使用的语句是_。(分数:2.00)A.CD1.
9、DialogTitle=“对话框窗口“B.CD1.Action=“对话框窗口“C.CD1.FileName=“对话框窗口“D.CD1.Filter=“对话框窗口“17.在窗体上画一个名称为 Commandl 的命令按钮,再画两个名称分别为 Labe11、Labe12 的标签,然后编写如下程序代码: Private X As Integer Private Sub Commandl_Click() X=5:Y=3 Callproc(X,Y) Labe11.Caption=X Label2.Caption=Y End Sub Private Sub proc(ByVala As Integer,B
10、yValb As Integer) X=a*a Y=b+b End Sub 程序运行后,单击命令按钮,则两个标签中显示的内容分别是 _ 。(分数:2.00)A.5 和 3B.25 和 3C.25 和 6D.5 和 618.分布式数据库系统不具有的特点是_。(分数:2.00)A.分布式B.数据冗余C.数据分布性和逻辑整体性D.位置透明性和复制透明性19.下列程序的执行结果是_。 k =0 For i=1 To 3 a = i i k Print a; Next I(分数:2.00)A.1 1 1B.1 2 3C.0 0 0D.1 4 920.数据库设计的根本目标是要解决 _ 。(分数:2.00)
11、A.数据共享问题B.数据安全问题C.大量数据存储问题D.简化数据维护21.下面的程序运行结果是 _ 。 Private Sub Form_Click() i=0 Do i=i+1 if i10 then Exit Do Loop Until i10 Print i End Sub(分数:2.00)A.0B.1C.10D.1122.已知代数式 eXSin(30)2x/(x+y)Lnx,则正确的 Visual Basic 表达式为 _ 。(分数:2.00)A.E*Sin(30*3.14/180)*2*X/X+Y*Log(X)B.Exp(X)*Sin(30)*2*X/(X+Y)*Ln(X)C.Exp
12、(X)*Sin(30*3.14/180)*2*x/(x+y)*Log(x)D.Exp(X)*Sin(30*3.14/180)*2*X/(X+Y)*Ln(X)23.要建立一个随机文件记录学生的信息,如下定义了学生的记录类型,由学号、姓名、5 门课程成绩(百分制)组成,下列的定义正确的是 _ 。(分数:2.00)A.Type stuno As Integername As Stringscore(1 To 5)AS SingleEnd TypeB.Type stuno As Integername As String*10score()As SingleEnd TypeC.Type stuno A
13、s Integername As String*10score(1 To 5)As singleEnd TypeD.Type stuno As Integername As Stringscore()As SingleEnd Type24.设置组合框的风格,可用的属性是(分数:2.00)A.BackstyleB.BorderstyleC.StyleD.Sorted25.软件生命周期中所花费用最多的阶段是 _。(分数:1.00)A.详细设计B.软件编码C.软件测试D.软件维护二、填空题(总题数:13,分数:38.00)26.在运行时,MDI 父窗体中的子窗体最小化时,其图标将显示在 1。 (分数
14、:2.00)27.在程序运行执行闲置循环过程中,程序的控制权被系统占用。若要获得控制权,可以使用一个语句。这样用户可以在获得系统的控制权后进行其他操作。这个语句是 1。 (分数:2.00)28.我国古代数学家张丘建在其著名的算经中提出了百鸡问题:每只公鸡 5 元,每只母鸡 3 元,三只雏鸡 1 元;如何用 100 元买 100 只鸡,即公鸡、母鸡、雏鸡各多少只。请在空白处填入适当的内容,将程序补充完整。 Private Sub Commandl_Click() Dim Cock As Integer Dim Hen As Integer Dim Chick As Integer FormlPr
15、int“公鸡数”,“母鸡数”,“雏鸡数” For Cock;0 To 20 For Hen=0 To 33 For Chick=0 To 100 If 1Then Form1Print Cock,Hen,Chick End If Next Chick Next Hen Next Cock End Sub (分数:1.00)29.设 a=10,b=9,c=8,则执行以下两条语句,变量 b 的值为 1。 a=CInt(b/(10/(c/2) b=c Mod a (分数:2.00)30.软件危机出现于 60 年代末,为了解决软件危机,人们提出了 _ 1_ 的原理来设计软件,这就是软件工程诞生的基础。
16、 (分数:1.00)31.一个栈的初始状态为空。首先将元素 5,4,3,2,1 依次入栈,然后退栈一次,再将元素 A,B,C,D依次入栈,之后将所有元素全部退栈,则所有元素退栈(包括中间退栈的元素)的顺序为 1。 (分数:2.00)32.简述下列程序的功能: 1。 Sub Form_Load() Dim d As Date d=Now Weekx=Weekday(d) Weeky=WeekdayName(Weekx) If Weekx=1 Or Weekx=7Then Debug.Print“今天是:“; Weeky Debug.Print“今天是休息日!“ Else Debug.Print“
17、今天是:“; Weeky Debug.Print“今天是工作日!“ End If End Sub (分数:2.00)33.数据库管理一般包含:数据库的建立、数据库的调整、数据库的重组、数据库的安全性控制与完整性控制、数据库的 _ 1_ 和数据库的监控。 (分数:1.00)34._ 1_ 的功能是查看指定表达式的值。 (分数:1.00)在窗体上有一个命令按钮,然后编写如下程序: Function Trans(ByVal num As Long)As Long Dim k As Long k=1 DO While num k=k*(num Mod 10) num=num/10 Loop Trans
18、=k Print trans End Function Private Sub Command1_Click() Dim m As Long Dim s As Long m=InputBox(“请输入一个数“) s=Trans(m) End Sub 程序运行时,单击命令按钮,在输入对话框中输入“789”,输出结果为 10 ,在输入对话框中输入“987”输出 11 ,在输入对话框中输入“879”,输出结果为 12 。(分数:18.00)35.如果在“立即”窗口中执行以下操作: a=8 b=9 print(aB) ; 则输出结果为 1。 (分数:2.00)36.如果存在如下过程: Private
19、Function Fun(a() As Integer) Dim First As Integer, Last As Integer,i As Integer First=LBound(a) Last=UBound(a) Max=a(First) For i=First To Last If a(i) Max Then Max=a(i) Next Fun=Max End Function 在窗体上添加一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() ReDim m(1 To 4)As Integer m(1)=20: m(2)=30: m(3)=5
20、0: m(4)=100 c=Fun(m) Print C End Sub 单击命令按钮,其输出结果为 _ 1_ 。 (分数:2.00)37.有一个窗体,其上有一个命令按钮 Command1(Caption 为“确定”),在该窗体上设置如下事件过程: Function fun(ByVal x As Integer) If (x=0 Or x=1)Then fun=3 Else fun=x-fun(x-2) End If End Function Private Sub Command1_Click() Print fun(9) End Sub 程序运行后,单击“确定”按钮后,输出的结果为 1。
21、(分数:2.00)二级 VISUAL+BASIC-11-1 答案解析(总分:84.00,做题时间:90 分钟)一、选择题(总题数:25,分数:46.00)1.变量的类型可以用类型说明符来标识。下列使用类型说明符不正确的是_。(分数:2.00)A.zhx%B.DDD C.gzi!D.sd解析:解析 变量的类型可以用类型说明符(%、 Weeky Debug.Print“今天是休息日!“ Else Debug.Print“今天是:“; Weeky Debug.Print“今天是工作日!“ End If End Sub (分数:2.00)解析:在立即窗口显示当天是星期几,并提示当天是工作日还是休息日。
22、33.数据库管理一般包含:数据库的建立、数据库的调整、数据库的重组、数据库的安全性控制与完整性控制、数据库的 _ 1_ 和数据库的监控。 (分数:1.00)解析:故障恢复34._ 1_ 的功能是查看指定表达式的值。 (分数:1.00)解析:监视窗口在窗体上有一个命令按钮,然后编写如下程序: Function Trans(ByVal num As Long)As Long Dim k As Long k=1 DO While num k=k*(num Mod 10) num=num/10 Loop Trans=k Print trans End Function Private Sub Comm
23、and1_Click() Dim m As Long Dim s As Long m=InputBox(“请输入一个数“) s=Trans(m) End Sub 程序运行时,单击命令按钮,在输入对话框中输入“789”,输出结果为 10 ,在输入对话框中输入“987”输出 11 ,在输入对话框中输入“879”,输出结果为 12 。(分数:18.00)解析:504解析 关键字 ByVal 用来实现传值,也就是说在定义通用过程时,如果形参前面有关键字Byval,则该参数用传值方式传递,否则用传址方式传递;在 Sub 过程中,先将输入的“456”赋给变量m,m 作为参数,调用 Ttans 过程;在 n
24、ans 过程中以 num 作为 Do While 的循环条件;在循环体中,调用Mod 函数,将 num 的个位数字与 k 相乘,然后赋给 k,第一次循环时,nun 的值是 789,所以 k 的值为 9,执行 num=hum/0 后,num 的值为 78,循环 3 次后,num 变为 0,退出循环,k 值等于 987=504,并将 k的值作为返回值;当输入“987”或“879”时执行相同的操作,结果都为 504。可以看出,此程序可用于求一个数值各位上数值的乘积。解析:504解析:50435.如果在“立即”窗口中执行以下操作: a=8 b=9 print(aB) ; 则输出结果为 1。 (分数:2
25、.00)解析:False解析 ab 是一个逻辑表达式,其运行结果为 False;Print 方法不仅有打印的功能还兼有计算的功能,将表达式的值先运算后输出。36.如果存在如下过程: Private Function Fun(a() As Integer) Dim First As Integer, Last As Integer,i As Integer First=LBound(a) Last=UBound(a) Max=a(First) For i=First To Last If a(i) Max Then Max=a(i) Next Fun=Max End Function 在窗体上添
26、加一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() ReDim m(1 To 4)As Integer m(1)=20: m(2)=30: m(3)=50: m(4)=100 c=Fun(m) Print C End Sub 单击命令按钮,其输出结果为 _ 1_ 。 (分数:2.00)解析:100解析 在程序 Sub 中定义了一个含 4 个元素的数组,并且分别给它们赋值,数组上界是 4,下界为 1;将数组 m 作为实参调用 Max 事件过程,并将数组 m 的地址传递给数组 a,即此时数组 a 与 m 共用一个存储空间;将数组的上界和下界分别赋给变量
27、 Last 和 First,在赋值表达式中分别调用了 LBound()函数求数组下界及 UBound()函数求数组的上界;在循环语句中,变量的初始值为数组的下界为 1,终值为数组的上界为 4,循环体是一个条件语句,如果 a (i)中的值大于 Max,就将 a(i)的值赋给 Max,当循环结束后,将 Max 作为函数的返回值,所以此事件过程的功能即为求数组中的最大值。37.有一个窗体,其上有一个命令按钮 Command1(Caption 为“确定”),在该窗体上设置如下事件过程: Function fun(ByVal x As Integer) If (x=0 Or x=1)Then fun=3 Else fun=x-fun(x-2) End If End Function Private Sub Command1_Click() Print fun(9) End Sub 程序运行后,单击“确定”按钮后,输出的结果为 1。 (分数:2.00)解析:7