1、国家二级 VB机试(选择题)模拟试卷 111 及答案与解析 一、选择题 1 结构化程序设计的基本原则不包括 ( )。 ( A)多态性 ( B)自顶向下 ( C)模块化 ( D)逐步求精 2 程序流程图中带有箭头的线段表示的是 ( )。 ( A)图元关系 ( B)数据流 ( C)控制流 ( D)调用关系 3 在长度为 n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。 ( A) O(n) ( B) O(n2) ( C) O(log2n) ( D) O(nlog2n) 4 下列叙述中正确的是 ( )。 ( A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 (
2、B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构 ( C)顺序存储结构能存储有序表,链式存储结构不能存储有序表 ( D)链式存储结构比顺序存储结构节省存储空间 5 软件按功能可以分为:应用软件、系统软件和支撑软件 (或工具软件 )。下面属于应用软件的是 ( )。 ( A)编译程序 ( B)操作系统 ( C)教务管理系统 ( D)汇编程序 6 下面叙述中错误的是 ( )。 ( A)软件测试的目的是发现错 误并改正错误 ( B)对被调试的程序进行 “错误定位 “是程序调试的必要步骤 ( C)程序调试通常也称为 Debug ( D)软件测试应严格执行测试计划,排除测试的随意性 7 软件详
3、细设计生产的图如下:该图是 ( ) ( A) N S图 ( B) PAD图 ( C)程序流程图 ( D) E R图 8 数据库管理系统是 ( )。 ( A)操作系统的一部分 ( B)在操作系统支持下的系统软件 ( C)一种编译系统 ( D)一种操作系统 9 有三个关系 R、 S和 T如下:由关系 R和 S通过运算得到关系 T,则所使用的运算为 ( )。 ( A)并 ( B)自然连接 ( C)笛卡尔积 ( D)交 10 设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号 ),课程 C(课号,课名 ),选课 SC(学号,课号,成绩 ),则表 SC的关键字 (键或码 )为( )。
4、( A)课号,成绩 ( B)学号,成绩 ( C)学号,课号 ( D)学号,姓名,成绩 11 以下不能输出 “Program“的语句是 ( )。 ( A) Print Mid(“VBProgram“, 3, 7) ( B) Print Right(“VBProgram“, 7) ( C) Print Mid(“VBProgram“, 3) ( D) Print Left(“VBProgram“, 7) 12 以下叙述中错误的是 ( )。 ( A)在通用过程中,多个形式参数之间可以用逗号作为分隔符 ( B)在 Print方法中,多个输出项之间可以用逗号作为分隔符 ( C)在 Dim语句中,所定义的
5、多个变量可以用逗号作为分隔符 ( D)当一行中有多个语句时,可以用逗号作为分隔符 13 以下关于函数过程的叙述中,正确的是 ( )。 ( A)函数过程形参的类型与函数返回值 的类型没有关系 ( B)在函数过程中,过程的返回值可以有多个 ( C)当数组作为函数过程的参数时,既能以传值方式传递,也能以传址方式传递 ( D)如果不指明函数过程参数的类型,则该参数没有数据类型 14 以下关于过程及过程参数的描述中,错误的是 ( )。 ( A)过程的参数可以是控件名称 ( B)调用过程时使用的实参的个数应与过程形参的个数相同 (假定不含可变参数 ) ( C)只有函数过程能够将过程中处理的信息返回到调用程
6、序中 ( D)窗体可以作为过程的参数 15 下面关于标准模块的叙述中错误的是 ( )。 ( A)标准模块中可以声明全局变量 ( B)标准模块中可以包含一个 Sub Main过程,但此过程不能被设置为启动过程 ( C)标准模块中可以包含一些 Public过程 ( D)一个工程中可以含有多个标准模块 16 下面正确使用动态数组的是 ( )。 17 在设计窗体时双击窗体的任何地方,可以打开的窗口是 ( )。 ( A)代码窗口 ( B)属性窗口 ( C)工程资源管理器窗口 ( D)工具箱窗口 18 若变量 a未事先定义而直接使用 (例如: a 0),则变量 a的类型是 ( )。 ( A) Intege
7、r ( B) String ( C) Boolean ( D) Variant 19 以下关系表达式中,其值为 True的是 ( )。 ( A) XYZ “XYz“ ( B) VisualBasic“visualbasic“ ( C) the “there“ ( D) Integer “Int“ 20 执行以下程序段: a$ “Visual Basic Programming“ b$ “C “ c$ UCase(Left$(a$, 7)& b$ & Right$(a$, 12) 后,变量 c$的值为 ( )。 ( A) Visual BASIC Programming ( B) VISUAL
8、C Programming ( C) Visual C Programming ( D) VISUAL BASIC Programming 21 若看到程序中有以下事件过程,则可以肯定的是,当程序运行时 ( )。 Private Sub Click_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Print “VB Program“ End Sub ( A)用鼠标左键单击名称为 “Command1“的命令按钮时,执行此过程 ( B)用鼠标左键单击名称为 “MouseDown“的命令按钮时,执行此过
9、程 ( C)用鼠标右键单击名称为 “MouseDown“的控件时,执行此过程 ( D)用鼠标左键或右键单击名称为 “Click“的控件时,执行此过程 22 窗体上有名称为 Command1的命令按钮和名称为 Text1的文本框 Private Sub Command1_Click() Text1.Text “程序设计 “ Text1.SetFocus End Sub Private Sub Text1_GotFocus() Text1.Text “等级考试 “ End Sub 运行以上程序,单击命令按钮后 ( )。 ( A)文本框中显示的是 “程序设计 “,且焦点在文本框中 ( B)文本框中显
10、示的是 “等级考试 “,且焦点在文本框中 ( C)文本框中显示的是 “程序设计 “,且焦点在命令按钮上 ( D)文本框中显示的是 “等级考试 “,且焦点在命令按钮上 23 要求当鼠标在图片框 P1中移动时,立即在图片框中显示鼠标的位置坐标。下面能正确实现上述功能的事件过 程是 ( )。 ( A) Private Sub P1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Print X, Y End Sub ( B) Private Sub P1_MouseDown(Button As Inte
11、ger, Shift As Integer, X As Single, Y As Single) Picture.Print X, Y End Sub ( C) Private Sub P1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) P1.Print X, Y End Sub ( D) Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) P1.Print X, Y
12、End Sub 24 为了使窗体的大小可以改变,必须把它的 BorderStyle属性设置为 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 25 要使两个单选按钮属于同一个框架,下面三种操作方法中正确的是 ( )。 先画一个框架,再在框架中画两个单选按钮 先画一个框架,再在框架外画两个单选按钮,然后把单选按钮拖到框架中 先画两个单选按钮,再画框架将单选按钮框起来 ( A) ( B) 、 ( C) ( D) 、 、 26 能够存放组合框的所有项目内容的属性是 ( )。 ( A) Caption ( B) Text ( C) List ( D) Selected 27 以下叙述
13、中错误的是 ( )。 ( A)在程序运行时,通用对话框控件是不可见的 ( B)调用同一个通用对话框控件的不同方法 (如 ShowOpen或 ShowSave)可以打开不同的对话框窗口 ( C)调用通用对话框控件的 ShowOpen方法,能够直接打开在该通用对话框中指定的文件 ( D)调用通用对话框控件的 ShowColor方法,可以打开颜色对话框窗口 28 下面控件中,没有 Caption属性的是 ( )。 ( A)复选框 ( B)单选按钮 ( C)组合框 ( D)框架 29 设窗体中有一个文本 框 Text1,若在程序中执行了 Text1.SetFocus,则触发( )。 ( A) Text
14、1的 SetFocus事件 ( B) Text1的 GotFocus事件 ( C) Text1的 LostFocus事件 ( D)窗体的 GotFocus 事件 30 窗体上有两个水平滚动条 HV、 HT,还有一个文本框 Text1和一个标题为 “计算 “的命令按钮 Command1,并编写了以下程序:Private Sub Command1_Click()Call calc(HV.Value, HT.Value)End SubPublic Sub calc(x As Integer, y As Integer)Text1.Text x*yEnd Sub运行程序,单击 “计算 “按钮,可根据速
15、度与时间计算出距离,并显示计算结果。对以上程序,下列叙述中正确的是 ( )。 ( A)过程调用语句不对,应为 calc(HV, HT) ( B)过程定义语句的形式参数不对,应为 Sub calc(x As Control, y As Control) ( C)计算结果在文本框中显示出来 ( D)程序不能正确运行 31 在窗体上画一个命令按钮,然后编写如下事 件过程: Private Sub Command1_Click() Dim I, Num Randomize Do For I 1 To 1000 Num Int(Rnd * 100) Print Num; Select Case Num
16、Case 12 Exit For Case 58 Exit Do Case 65, 68, 92 End End Select Next I Loop End Sub 上述事件过程执行后,下列描述中正确的是 ( )。 ( A) Do循环执行的次数为 1000次 ( B)在 For循环中产生的随机数小于或等于 100 ( C)当所产生的随机数为 12时结束所有循环 ( D)当所产生的随机数为 65、 68或 92时窗体关闭、程序结束 32 在窗体上画一个名为 Command1的命令按钮,然后编写如下代码: Option Base 1 Private Sub Command1_Click() Di
17、m a a Array(1, 2, 3, 4) j 1 For i 4 To 1 Step 1 s s a(i)* j j j * 10 Next i Print s End Sub 运行上面的程序,其输出结果是 ( )。 ( A) 1234 ( B) 12 ( C) 34 ( D) 4321 33 窗体上有一个名称为 Combo1的组合框,要求在其编辑区输入文本并按回车键后,编辑区中的文本被添加到列表中。下面能实现这一功能的是 ( )。 ( A) Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCo
18、de 13 Then Combo1.AddItem Combo1.Text End If End Sub ( B) Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode 13 Then Combo1.AddItem Text1.Text End If End Sub ( C) Private Sub Combo1_Click() Combo1.AddItem Combo1.Text End Sub ( D) Private Sub Combo1_Click() Combo1.AddItem Tex
19、t1.Text End Sub 34 工程文件中包含一个模块文件和一个窗体文件。模块文件的程序代码是: Public x As Integer Private y As Integer 窗体文件的程序代码是: Dim a As Integer Private Sub Form_Load() Dim b As Integer a 2: b 3: x 10: y 20 End Sub Private Sub Command1_Click() a a 5: b b 5: x x 5: y y 5 Print a; b; x; y End Sub 运行程序,单击窗体上的命令按钮,则在窗体上显示的是 (
20、 )。 ( A) 5 5 15 5 ( B) 7 5 15 25 ( C) 7 8 15 5 ( D) 7 5 15 5 35 某人编写了向随机文件中写一条记录的程序,代码如下: Type RType Name As String * 10 Tel As String * 20 End Type Private Sub Command1_Click() Dim p As RType p.Name InputBox(“姓名 “) p.Tel InputBox(“电话号 “) Open “Books.dat“ For Random As #1 Put #1, , p Close #1 End Su
21、b 该程序运行时有错误,修改的方法是 ( )。 ( A)在类型定义 “Type RType“之前加上 “Private“ ( B) Dim p As RType必须置于窗体模块的声明部分 ( C)应把 Open语句中的 For Random 改为 For Output ( D) Put语句应该写为 Put #1, p.Name , p.Tel 36 有如下程序: Private Sub Form_Click() Dim s As Integer, p As Integer p 1 For i 1 To 4 For j 1 To i s s j Next j p p * s Next i Pri
22、nt p End Sub 程序运行后,单击窗体,则输出结果是 ( )。 ( A) 90 ( B) 180 ( C) 400 ( D) 800 37 窗体上有 Command1、 Command2两个命令按钮。现编写以下程序: Option Base 0 Dim a()As Integer, m As Integer Private Sub Command1_Click() m InputBox(“请输入一个正整数 “) ReDim a(m) End Sub Private Sub Command2_Click() m InputBox(“请输入一个正整数 “) ReDim a(m) End S
23、ub 运行程序时,单击 Command1后输入整数 10,再单击 Command2后输入整数 5,则数组 a中元素的个数是 ( )。 ( A) 5 ( B) 6 ( C) 10 ( D) 11 38 在窗体上画一个命令按钮和一个标签,其名称分别为 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 程序运行后,
24、单击命令按钮,标签中显示的内容是 ( )。 ( A) 11 ( B) 12 ( C) 16 ( D) 20 39 在窗体上画两个文本框 (名称分别为 Text1和 Text2)和一个命令按钮 (名称为Command1),然后编写如下事件过程: Private Sub Command1_Click() x 0 Do While x“Int“,返回 False。 选项 B中两个字符串不完全一样,有大写 和小写的字符,不等。所以返回 True。故 B 选项正确。 20 【正确答案】 B 【试题解析】 UCase(Left(a$, 7)是从字符串 a的左边向右取出 7个字符,然后再全部转换为大写字母,
25、结果是: “VISUAL “, Right$(a$, 12)是从字符串 a的右边向左取出 12个字符,结果为 “ Programming“, &是字符串连接符,把 “VISUAL “ & “C “ & “ Programming“ 连接在一起,合成字符串 “VISUAL C Programming“,并把它赋给字符串变量 c,所以字符串变量 c的值就是合成的字符串。故 B 选项正确。 21 【正确答案】 D 【试题解析】 本题中, Click是控件的名称, MouseDown 是鼠标按下事件,当用鼠标左键或右键单击 Click 控件时就会触发 MouseDown 事件,执行 MouseDown
26、事件过程。故选 D。 22 【正确答案】 B 【试题解析】 运行程序,单击命令按钮后,执行 Command1_Click 事件过程代码,文本框 Text1 中显示 “程序设计 “,并且文本框 Text1获得焦点,此时焦点在Text1中;当 Text1 获得焦点就会触发它的 Got_Focus 事件,执行 Got_Focus 事件过程,结果文本框 Text1中显示 “等级考试 “。故 B 选项正确。 23 【正确答案】 C 【试题解析】 当鼠标在图片框 P1 中移动时,就会触发 P1 的鼠标移动事件,即P1_MouseMove事件,故排除 B 选项;鼠标在图片框 P1 中移动时,立即在图片框中显
27、示鼠标的位置坐标,说明是在图片框上输出数据,所以用 P1 的 Print语句实现。故 C选项正确。 24 【正确答案】 B 【试题解析】 窗体的 BorderStyle属性是用来 设置窗体的边框样式的。属性值 1为 Fixed Single,3 为 Fixed Dialog,4为 Fixed ToolWindow,设置为这 3个属性值都不能改变窗口大小。 2是 Sizable,表示窗体大小可以改变。故选 B。 25 【正确答案】 A 【试题解析】 的操作方法可使两个单选按钮属于同一个框架,其他方法不行。故 A选项正确。 26 【正确答案】 C 【试题解析】 组合框没有 Caption属性; T
28、ext属性用来设置或返回组合框中当前选项的文本内容; Selected 属性是列表框控件的属性,组 合框没有 Selected 属性;List属性用来设置或返回组合框中的各选项,它是一个字符串数组,组合框中各选项内容用 List(下标 )表示。故 A、 B、 D选项错误, C选项正确。 27 【正确答案】 C 【试题解析】 调用通用对话框的 ShowOpen方法,只是显示文件 “打开 “对话框,如果 ShowOpen方法后面没有其他处理文件的代码,就不能实现打开文件的功能。故选项 C错误。 28 【正确答案】 C 【试题解析】 Caption 属性是设置或返回控件的标题。组合框没有 Capti
29、on 属性。故选 C。 29 【正确答案】 B 【试题解析】 SetFocus 是控件获得焦点的方法, GotFocus是控件获得焦点后触发的事件, LostFocus 是控件失去焦点后触发的事件。本题中程序执行Text1.SetFocus 后, Text1就获得焦点,进而触发 Text1的 GotFocus 事件。故 B选项正确。 30 【正确答案】 C 【试题解析】 访问滚动条控件的值,可以直接使用控件的名称,也可以在名称后面指明 Value属性。滚动条位置是用数值来表示的,因此定义 Calc过程时参数应该定义为 Integer类型。 程序中, Text1.Text x*y语句说明计算的结
30、果在文本框中显示出来。 31 【正确答案】 D 【试题解析】 程序 Do循环中嵌套了 For循环, Do循环没有设置结束条件,而是在 For循环体中的 Select语句中设置了退出 Do循环和 For循环及结束程序的分支,因此 Do循环的次数无法确定。随机函数 Rnd 产生 0,1)之间的一个数,包括 0但不包含 1,因此 Rnd*100的范围是大于等于 0小于 100。随机数为 65、 68或 92时结束程序关闭窗体,为 58时退出 Do 循环,为 12时退出 For循环进入下一次Do循环 。 32 【正确答案】 A 【试题解析】 33 【正确答案】 A 【试题解析】 在组合框中的输入的文本
31、保存在它的 Text属性中,根据程序要求,只要判断按下了回车键后,使用组合框的 AddItem方法把 Text中的字符添加到列表中即可。选项 C和 D没有判断是否按下回车键,所以排除。而选项 B中使用 AddItem方法添加的是 Text1.Text的值,不是组合框 Combo1 的 Text值,所以也不对。 34 【正确答案】 D 【试题解析】 程序在模块文件中定义 x为整型全局变量,在整个工程中都 起作用,而 y定义为整型私有变量,只能在本模块文件中起作用。在窗体文件中变量 a在本窗体文本中起作用,窗体加载事件中定义的变量 b 和没有声明的变量 y,只在本事件过程起作用。程序窗体加载时,对
32、后边有影响的变量值为 a为 2, x为 10,没有指定初值的变量值默认为 0,因此单击命令按钮后, a a 5 7, b b 55, x x 5 15, y y 5 5,结果输出 7 5 15 5。 35 【正确答案】 A 【试题解析】 记录类型的定义必须放在模块的声明部分,当在标准模块中定义时,关键字 Type前可以有 Public(默 认 )或 Private,而如果在窗体模块中定义,则必须在前面加上关键字 Private。 Open 语句中使用 For Random表示文件以随机方式存取。 Put语句的语法为: Put #文件号, 记录号 ,变量。其中 “变量 “是除对象变量和数组变量外的任何变量。 36 【正确答案】 D 【试题解析】 37 【正确答案】 B 【试题解析】 程序中 Option Base 0表示指定数组的下标默认下界为 0。 ReDim语句用来重新定义动态数组,按定义的上下界重新分配存储单元。在一个程序中,可以多次用 ReDim语句定义同一个数组,随时修改数组中元素的个数。程序中先执行 ReDim a(10),然后执行了 ReDim a(5),因此数组 a的下界为 0,上界为5,共有 6个元素。 38 【正确答案】 B 【试题解析】 39 【正确答案】 B 【试题解析】 40 【正确答案】 A 【试题解析】