1、计算机二级(VB)31 及答案解析(总分:100.00,做题时间:120 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:35,分数:70.00)1.窗体文件的扩展名是( )。(分数:2.00)A.Rem 注释内容B.注释内容C.a=3:b=2,对 a、b 赋值D.Private Sub Command1_MouseDown(button As Integer,shift As Integer,_Rem 鼠标按下事件的命令调用过程 X As Single,Y As Single)2.在默认情况下,InputBox 函数返回值的类型为( )。(分数:2.00)A.constru
2、ctA destructAB.constructA constructA destructA destructAC.constructA constructA constructA destructA destructA destructAD.constructA constructA constructA constructA destructA destructA destructA destructA3.在程序运行期间可以将图形装入窗体、图片框或图像框的函数是( )。(分数:2.00)A.DrawStyleB.AutoSizeC.PasswordCharD.LoadPicture4.在
3、Visual Basic 中,被称为对象的是 ( )。(分数:2.00)A.在需要自定义 Swing 构件的时候,首先要确定使用哪种构件类作为所定制构件的父类B.paintComponent( )方法位于 JComponent 类内,该方法与 paint( )方法类似,也要求一个 Graphics类的实例为参数C.无论在系统开始执行还是窗口被覆盖后需要重新绘制时,paintComponent( )方法都会被系统自动调用,所以在程序中不要调用它,否则会与自动化过程相冲突D.如果需要重新绘制 Applet,就调用方法 paintComponent( )5.设窗体上有一个名为 Text1 的文本框,
4、并编写如下程序: Private Sub Form_Load() Show Text1.Text = “ Text1.SetFocus End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Print “程序设计“ End Sub Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) Print “Visual Basic“; End Sub 程序运行后,如果在文本框中输入字母“a”,
5、然后单击窗体,则在窗体上显示的内 容是_。 (分数:2.00)A.Visual BasicB.程序设计C.Visual Basic 程序设计D.a 程序设计6.下列说明中,不属于随机文件特点的是( )。(分数:2.00)A.可移植性和跨平台的特点B.多线程的并发机制C.编译器将 Java 源程序转换成机器码D.Applet 是 Java 的特殊应用程序,它嵌入到 HTML 中,随主页发布到互连网上7.有如下事件过程,当同时按下转换键 Ctrl 和功能键 F6 时,最后输出的信息是( )。 Const ShiftKey=1 Const CtrlKey=2 Const Key_F5= n End
6、Sub Public Function f1(ByRef x) x=x*x f1=x+x End Function Public Function f2(ByVal x) x=x*x f2=x+x+x End Function 程序运行后,在文本框中输入 6,然后单击命令按钮,窗体上显示的是( )。 (分数:2.00)A.72 36B.108 36C.72 6D.108 631.以下关于 MsgBox 的叙述中,错误的是( )。(分数:2.00)A.MsgBox 函数返回一个整数B.通过 MsSBox 函数可以设置信息框中图标和按钮的类型C.MsgBox 语句没有返回值D.MsgBox 函数的
7、第二个参数是一个整数,该参数只能确定对话框中显示的按钮数量32.数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和【 】(分数:2.00)A.编码设计B.测试阶段C.运行阶段D.物理设计33.在窗体上画一个命令按钮,然后编写如下程序: Private Sub Comrnand3_Click( ) Cop 2 Cop 3 Cop 4 End Sub Sub Cop (a As Integer) Static x As Integer x=x + a Print x; End Sub 程序运行后,单击命令按钮,输出结果为( )。 (分数:2.00)A.2 3 4B.2 5 9C.3 5 4D.
8、2 4 334.在代码编辑器中,续行符是用来换行书写同一个语句的符号,用以表示续行符的是( )。(分数:2.00)A.123B._nameC.classD.1first35.单击命令按钮时,下列程序的执行结果为( )。 Private Sub Command1_Click() Dim x As Integer,y As Integer x=50:y=78 Call PPP(x,y) Print x;y End Sub Public Sub PPP(ByVal n As Integer,ByValm As Integer) n=n/10 m=m/10 End Sub (分数:2.00)A.多态B
9、.继承C.封装D.垃圾回收二、填空题(每空 2 分,共 30 分)(总题数:15,分数:30.00)36.一个关系表的行称为 1。(分数:2.00)填空项 1:_37.下列程序的功能是:当 x100 时,没有意义。请填空。 Private Sub Command1_Click1 Dim x As Single x=InputBox(“请输入 x 的值!“) 2 Case Is3 Print“输入的数据出界!“ End Select Print x,y End Sub (分数:2.00)填空项 1:_38.在 E 盘当前目录文件夹下建立一个名为“Studenttxt的顺序文件,要求用 Input
10、Box 函数输入 5个学生的姓名(StuName)、年级(StuGrade)和年龄(StuAge)。 Private Sub Form _ Click1 2 For i=1 To 5 StuName=InputBox(“请输入姓名“) StuGrade=InputBox(“请输入年级号“) StuAge=InputBox(“请输入年龄“) 3 Next i 4 End Sub (分数:2.00)填空项 1:_39.下列软件系统结构图的宽度为 1 (分数:2.00)填空项 1:_40.下列程序的输出结果为 1。 num=2 While numx Then MsgBox “请重新输入!“ End
11、If End Sub (分数:2.00)A.TextB.SelTextC.Control D.Form解析:由过程 Text1_LostFocus 及过程 Text2_LostFocus 中对过程 CheckInput 的调有可知,CheckInput 的第 一个参数应为 TextBox 类型或其父类型,在所有选项中 C 符合要求。Control 为所有控件的基类型。22.设 a=5,b=4,c=3,d=2 下列表达式的值是_。3 2 * b Or a = c And b d (分数:2.00)A.1B.True C.FalseD.2解析:本题考的是关系运算符和逻辑运算符的执行顺序。当运算符不
12、只一种时,要先处理关系运算符,然 后再处理逻辑运算符。关系运算符的优先顺序是相同的,而逻辑运算符的执行顺序是:Not,And,Or,Xor, Eqv,Imp。本题中先运行关系运算,3 2 * b 为 False,a=c 为 False,bd 为 True;然后执行 And 运算,为 False,再执行第一个 Or,为 False,最后执行第二个 Or,即 False Or True 为 True。23.如果将文本框的 MaxLength 属性设置为 0,则文本框中的字符不能超过( )。(分数:2.00)A.SELECT FROM 教师表 IF(性别=男)B.SELECT 性别 FROM 教师表
13、 IF(性别=男)C.SELECT * FROM 教师表 WHERE(性别=男) D.SELECT * FROM 性别 WHERE(性别=男)解析:该段语法为 SELECT*|FROMWHERE。24.以下各项,可以作为 Visual Basic 变量名的是( )。(分数:2.00)A.Book B.2_SeekC.123.58D.Book-1解析:在 Visual Basic 中,可以用名字来表示内存的位置,以便访问内存中的数据。有关变量命名的规则如下: 名字只能由字母、数字和下划线组成; 名字的第一个字符必须是英文字母,最后一个字符可是是类型说明符; 名字的有效字符为 255 个; 不能用
14、 Visual Basic 的保留字作变量名,但可以把保留字嵌入变量名中;同时变量名也不能是末尾带有类型说明符的保留字,例如变量 Print 和 Print$是非法的,而变量 Print_Number 是合法的。 根据变量命名规则,选项 B)开头第一个字符是数字,非法;选项 C)变量名开头第一个字符是数字,非法;选项 D)中包含非法字符“-”;所以只有选项 A)是正确的。 25.确定一个控件在窗体上的位置的属性是( )。 (分数:2.00)A.Width 和 HeightB.Width 或 HeightC.Top 和 Left D.Top 或 Left解析:26.下列程序段执行结果为( )。
15、x=5 y=-6 If Not x0 Then x=y-3 Else y=x+3 Print x-y;y-x (分数:2.00)A.k/1lB.k%11 C.k/11=0D.k%11=0解析:本题考查引用的用法。引用必须在第一时间进行赋值,int n End Sub Public Function f1(ByRef x) x=x*x f1=x+x End Function Public Function f2(ByVal x) x=x*x f2=x+x+x End Function 程序运行后,在文本框中输入 6,然后单击命令按钮,窗体上显示的是( )。 (分数:2.00)A.72 36 B.
16、108 36C.72 6D.108 6解析:31.以下关于 MsgBox 的叙述中,错误的是( )。(分数:2.00)A.MsgBox 函数返回一个整数B.通过 MsSBox 函数可以设置信息框中图标和按钮的类型C.MsgBox 语句没有返回值D.MsgBox 函数的第二个参数是一个整数,该参数只能确定对话框中显示的按钮数量 解析:32.数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和【 】(分数:2.00)A.编码设计B.测试阶段C.运行阶段D.物理设计 解析:数据库设计目前一般采用生命周期法,即将整个数据库应用系统的开发分解成目标独立的若干阶段。它们是:需求分析阶段、概念设计阶段、逻
17、辑设计阶段和物理设计阶段。 33.在窗体上画一个命令按钮,然后编写如下程序: Private Sub Comrnand3_Click( ) Cop 2 Cop 3 Cop 4 End Sub Sub Cop (a As Integer) Static x As Integer x=x + a Print x; End Sub 程序运行后,单击命令按钮,输出结果为( )。 (分数:2.00)A.2 3 4B.2 5 9 C.3 5 4D.2 4 3解析:在过程 Sub 中,将 Integer 型变量 x 定义为静态变量(Static),Static 语句的格式与 Dim 语句完全一样,但 Sta
18、tic 语句只能出现在事件过程,Sub 过程或 Function 过程中,在过程中的 Static 变量只有局部的作用域,即只能在本过程中可见,但可以和模块级变量传递,即使过程结束后,其值仍能保留。Cop 过程是将变量 a 的值加上 x 赋给 x,然后输出 x 的值;第一次调用 Cop 过程时,x 未赋值,默认为 0,所以输出结果为 2,第二次调用 Tcl 过程时,因为 x 为静态变量,所以它的值为上次调用后的值,即为2,加上 a 后,x 的值变为 5,输出结果为 5,同理,第三次调用后输出结果为 9。34.在代码编辑器中,续行符是用来换行书写同一个语句的符号,用以表示续行符的是( )。(分数
19、:2.00)A.123B._name C.classD.1first解析:TextField 为单行文本输入区,TextArea 为多行多列文本输入区, Button 为按扭,Checkbox 为复选框。35.单击命令按钮时,下列程序的执行结果为( )。 Private Sub Command1_Click() Dim x As Integer,y As Integer x=50:y=78 Call PPP(x,y) Print x;y End Sub Public Sub PPP(ByVal n As Integer,ByValm As Integer) n=n/10 m=m/10 End
20、Sub (分数:2.00)A.多态B.继承C.封装D.垃圾回收 解析:本题考查面向对象语言的基本思想。面向对象语言的基本特性是封装,继承和多态。注意:垃圾回收是 Java 的主要特点。二、填空题(每空 2 分,共 30 分)(总题数:15,分数:30.00)36.一个关系表的行称为 1。(分数:2.00)填空项 1:_ (正确答案:元组)解析:在关系中,水平方向的行称为元组,垂直方向的列称为属性,每一列有一个属性名。37.下列程序的功能是:当 x100 时,没有意义。请填空。 Private Sub Command1_Click1 Dim x As Single x=InputBox(“请输入
21、 x 的值!“) 2 Case Is3 Print“输入的数据出界!“ End Select Print x,y End Sub (分数:2.00)填空项 1:_ (正确答案:Select Case x)解析:阅读程序后,看到程序中有了 Case 和 End Select 子句,没有多分支选择结构的起始语句,很明显,第一个空应该填写多分支结构的起始语句 Select Case x。在 Select Case 结构中,只有两个 Case 子句,分别表示 x 取值的两种情况,但题目中将 x 的值分为 3 种情况,可见第二个空应该填写 Case Else 语句。38.在 E 盘当前目录文件夹下建立一
22、个名为“Studenttxt的顺序文件,要求用 InputBox 函数输入 5个学生的姓名(StuName)、年级(StuGrade)和年龄(StuAge)。 Private Sub Form _ Click1 2 For i=1 To 5 StuName=InputBox(“请输入姓名“) StuGrade=InputBox(“请输入年级号“) StuAge=InputBox(“请输入年龄“) 3 Next i 4 End Sub (分数:2.00)填空项 1:_ (正确答案:Open“E:/Studenttxt“ For Output As #1)解析:在 Form _ Click 过程中
23、,要在文件中写入数据,首先要建立一个文件,建立文件用 Open 语句,文件名必须是全称;因为要建立的文件为空文件,所以可以认为不能从它里面读出数据,只能写入数据在For“模式”中应该用“Output”,所以在第一个空处应填入的语句是“Open”E:/Studenttxt“ For Output As #1”;在 For 循环语句中,首先调用 InputBox 函数,给出提示信息,并将接收到的信息依次赋给相应的变量,然后将它们写入文件中,因为 StuName,StuGrade,StuAge 为变量名,不能用双引号,所以在第二个空处应填入的语句是“Write #1,StuName,StuGrade
24、,StuAge”;当对文件写完以后,就要关闭文件,关闭文件用 Close 语句,关闭文件的格式为 Close#文件号,#文件号,文件号即为打开文件时的文件号,所以第三个空应填入的语句是“Close #1”。39.下列软件系统结构图的宽度为 1 (分数:2.00)填空项 1:_ (正确答案:3)解析:在程序结构图的有关术语中,宽度的概念是:整体控制跨度,即各层中所含的模块数的最大值,由图可得此软件系统结构图的宽度为 3。40.下列程序的输出结果为 1。 num=2 While num=3 num=num+1 Print num Wend (分数:2.00)填空项 1:_ (正确答案:3 4)解析
25、:程序先将 2 赋给 num,然后执行 While 语句。 While 循环语句的执行过程是:如果“条件”为真,则执行“语句块”,当遇到 Wend 语句时,控制返回到 While 语句并对“条件”进行测试 ,如果仍然为真,则重复上述过程,直到“条件”为假。 起初 num 为 2,所以小于 3,条件为真,执行 num=num+1 语句,此时 num 为 3,然后输出 num 的值即 3,当程序执行 num 为 3 的时候,因为 3 等于 3, 所以执行num=num+1,此时 num 为 4,输出 num 的值并退出循环。41.关系式 x-5 或 x5 所对应的布尔表达式是 1。(分数:2.00
26、)填空项 1:_ (正确答案:x=-5 Or x=5)解析:表示逻辑或的关系运算符号为 Oro42.下列程序的功能是:将数据 1,2,8 写入顺序文件 Numtxt 中,请补充完整。 Private Sub Form_Click1 Dim i As Integer Open“Numtxt“For Output As #1 For i=1 To 8 2 Next i Close #1 End Sub (分数:2.00)填空项 1:_ (正确答案:Print #1,i)解析:向文件中写入数据用 Print 语句。43.把窗体的 KeyPreView 属性设置为 True,并编写如下两个事件过程:
27、Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer) Print KeyCode End Sub Private Sub Form_KeyPress(KeyAscii As Integer) Print KeyAscii End Sub 程序运行后,如果按下 B 键,则在窗体上输出的数值是 1 和 2。 (分数:2.00)填空项 1:_ (正确答案:66)解析:KeyDown 事件是返回的是键盘的直接状态,返回的是“键”,所以当按字母“B”时KeyDown 得到的 KeyCode 码与按字母键“b”是相同的,所以程序输出为
28、66;当按下键盘上的某个键时将发生KeyPress,KeyPress 并不反映键盘的直接状态,当按下字母“B”时,与按下字母“b”时,对 KeyPress来说,所得到的 ASCII 码是不样的,KeyPress 事件用来识别按键的 ASCII 码,所以按下“B”键,KeyAscii 的值为 98。44.为了使计时器控件 Timer1 每隔 0.5 秒触发一次 Timer 事件,应将 Timer1 控件的 1 属性设置为 2。(分数:2.00)填空项 1:_ (正确答案:interval)解析:45.在窗体上有二个名称为 Command1 的命令按钮和一个名称为 Text1 的文本框。程序运行后
29、,Command1 为禁用(灰色),此时如果在文本框中输入字符,则命令按钮 Command1 变为可用。请填空。 Private Sub Form_Load1 Commandl.Enabled=False End Sub Private Sub Text1 23 Commandl.Enabled=True End Sub (分数:2.00)填空项 1:_ (正确答案:Change)解析:每当用户修改或通过代码修改文本框中的文本内容时,将触发其 Change 事件。通过该事件可通知程序何时修改了文本框的文本,可以使用该事件随时获得文本框的文本,并更新数据、同步其他控件显示等。46.有一个事件过程
30、,其功能是:从已存在于磁盘上的顺序文件 NMltxt 中读取数据,计算读 出数据的平方值,将该数据及其平方值存入新的顺序文件 NM2txt 中。请填空。 Private Sub Form_Click1 Dim x As Single,y As Single Open “NMl.txt“ For Input As #1 Open “NM2.txt“ For Input As #2 Do While Not EOF(1) 2 Print x y=x2 3 Print x Loop Close #1,#2 End Sub (分数:2.00)填空项 1:_ (正确答案:Input #1,x)解析:本题
31、考查顺序文件的读写操作,事件过程中,顺序文件的打开和关闭语句都正确。循环语句使用也正确。事件过程的功能是:从 NM1 txt 中读取数据,向 NM2txt 中写入数据。程序中没有对数据文件进行读写的语句,故空白处要填写的正是对顺序文件读数据和写数据的语句。47.下面的程序的作用是利用随机函数产生 10 个 100-300(不包含 300)之间的随机整数,打印其中 7 的倍数的数,井求它们的总和,请填空。 Sub TOF1 Randomize Dim s As Double Dim a(10) As lnteger For i=0 To 9 2 Next For i=0 To 9 If 3The
32、n Print a(i) s=s+a(i) 4 Next i Print Print “S=“ ; s End Sub (分数:2.00)填空项 1:_ (正确答案:a(i)=Int(Rnd)填空项 1:_ (正确答案:*)填空项 1:_ (正确答案:200+100))解析:求随机数要用到随机函数 Rnd,所以在程序中调用了 Rnd 函数,100300 之间的随机函数表示为:a(i)=Int(Rnd * 200+100);求某个数的倍数要用到取模运算符 Mod,本题中求 7 的倍数,所以表示为:a(i) Mod 7=0;对于条件语句,有 If 开头的必须有 End If 结尾,Select C
33、ase 开头的,必须要用 End Select 结尾,所以本题中应添加 End If。48.下列程序的功能是:当 x100 时,没有意义。请填空。 Private Sub Command1_Click1 Dim x As Single x=InputBox(“请输入 x 的值!“) 2 Case Is3 Print“输入的数据出界!“ End Select Print x,y End Sub (分数:2.00)填空项 1:_ (正确答案:Select Case x)解析:阅读程序后,看到程序中有了 Case 和 End Select 子句,没有多分支选择结构的起始语句,很明显,第一个空应该填写
34、多分支结构的起始语句 Select Case x。在 Select Case 结构中,只有两个 Case 子句,分别表示 x 取值的两种情况,但题目中将 x 的值分为 3 种情况,可见第二个空应该填写 Case Else 语句。49.本程序的功能是利用随机数函数模拟投币,方法是;每次随机产生一个 0 或 1 的整数,相当于一次投币,1 代表正面,0 代表反面。在窗体上有三个文本框,名称分别是 Text1、Text2、 Text3,分别用于显示用户输入投币总次数、出现正面的次数和出现反面的次数,如图所示。 程序运行后,在文本框 Text1中输入总次数,然后单击“开始”按钮,按照输入的次数模拟投币,分别统计出现正面、反面的次数,并显示结果。以下是实现上述功能的程序,请填空。 (分数:2.00)填空项 1:_ (正确答案:n)解析:50.某二叉树中度为 2 的结点有 18 个,则该二叉树中有 1 个叶子结点。(分数:2.00)填空项 1:_ (正确答案:19)解析:二叉树的性质 3:在任意一棵二叉树中,度为 0 的结点(即叶子结点)总是比度为 2 的结点多一个。 本题中度为 2 的结点数为 18,故叶子结点数为 18+1=19 个。