1、国家二级( VB)机试模拟试卷 78及答案与解析 一、选择题 1 下列排序方法中,最坏情况下比较次数最少的是 ( )。 ( A)冒泡排序 ( B)简单选择排序 ( C)直接插入排序 ( D)堆排序 2 软件按功能可以分为:应用软件、系统软件和支撑软件 (或工具软件 )。下面属于应用软件的是 ( )。 ( A)编译程序 ( B)操作系统 ( C)教务管理系统 ( D)汇编程序 3 下面叙述中错误的是 ( )。 ( A)软件测试的目的是发现错误并改正错误 ( B)对被调试的程序进行 “错误定位 “是程序调试的 必要步骤 ( C)程序调试通常也称为 Debug ( D)软件测试应严格执行测试计划,排
2、除测试的随意性 4 耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 ( )。 ( A)提高耦合性降低内聚性有利于提高模块的独立性 ( B)降低耦合性提高内聚性有利于提高模块的独立性 ( C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度 ( D)内聚性是指模块间互相连接的紧密程度 5 有两个关系 R, S如下: 由关系 R通过运算得到关系 S,则所使用的运算为 ( )。 ( A)选择 ( B)投影 ( C)插入 ( D)连接 6 将 E R图转换为关系模式时,实体和联系都可以表示为 ( )。 ( A)属性 ( B)键 ( C)关系 ( D)域 7 下列叙述中正确的是 ( )
3、。 ( A) MsgBox语句的返回值是一个整数 ( B)执行 MsgBox 语句并出现信息框后,不用关闭信息框即可执行其他操作 ( C) MsgBox语句的第一个参数不能省略 ( D)如果省略 MsgBox 语句的第三个参数 (Title),则信息框的标题为空 8 语句 Dim a( 3 To 4,3 To 6)As Integer 定义的数 组的元素个数是 ( )。 ( A) 18 ( B) 28 ( C) 21 ( D) 32 9 以下关于函数过程的叙述中,正确的是 ( )。 ( A)函数过程形参的类型与函数返回值的类型没有关系 ( B)在函数过程中,过程的返回值可以有多个 ( C)当数
4、组作为函数过程的参数时,既能以传值方式传递,也能以传址方式传递 ( D)如果不指明函数过程参数的类型,则该参数没有数据类型 10 以下关于过程及过程参数的描述中,错误的是 ( )。 ( A)过程的参数可以是控件名称 ( B)调用过程时使用的实参的个数应与过程形 参的个数相同 (假定不含可变参数 ) ( C)只有函数过程能够将过程中处理的信息返回到调用程序中 ( D)窗体可以作为过程的参数 11 以下变量名中合法的是 ( )。 ( A) x2 1 ( B) print ( C) str_n ( D) 2x 12 把数学表达式 表示为正确的 VB表达式应该是 ( )。 ( A) (5x 3)/(2
5、y 6) ( B) x*5+3/2-6 ( C) (5*x+3)/(2*y-6) ( D) (x*5 3)/(y*2 6) 13 下面有关标准模块的叙述中,错误的是 ( )。 ( A)标 准模块不完全由代码组成,还可以有窗体 ( B)标准模块中的 Private过程不能被工程中的其他模块调用 ( C)标准模块的文件扩展名为 .bas ( D)标准模块中的全局变量可以被工程中的任何模块引用 14 标准模块中用 Private声明的过程属于私有过程,只能被它所在的模块中的其他过程调用,不能被工程中其他模块调用,用 Public声明的全局变量属于公用变量,可以被工程中的任何模块引用。标准模块的文件扩
6、展名是 .bas 。 可以产生 30 50(含 30和 50)之间的随机整数的表达式是 ( )。 ( A) Int(Rnd*21 30) ( B) Int(Rnd*20 30) ( C) Int(Rnd*50 Rnd*30) ( D) Int(Rnd*30 50) 15 在程序运行时,下面的叙述中正确的是 ( )。 ( A)用鼠标右键单击窗体中无控件的部分,会执行窗体的 Form_Load事件过程 ( B)用鼠标左键单击窗体的标题栏,会执行窗体的 Form_Click事件过程 ( C)只装入而不显示窗体,也会执行窗体的 Form_Load事件过程 ( D)装入窗体后,每次显示该窗体时,都会执行
7、窗体的 Form_Click事件过程 16 下列有关文件的叙述中,正确的是 ( )。 ( A)以 Output方式打开一个不存在的文件时,系统将显示出错信息 ( B)以 Append方式打开的文件,既可以进行读操作,也可以进行写操作 ( C)在随机文件中,每个记录的长度是固定的 ( D)无论是顺序文件还是随机文件,其打开的语句和打开方式都是完全相同的 17 若看到程序中有以下事件过程,则可以肯定的是,当程序运行时 ( )。 Private Sub Click_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Sin
8、gle) Print “VB Program“ End Sub ( A)用鼠标左键单击名称为 “Command1“的命令按钮时,执行此过程 ( B)用鼠标左键单击名称为 “MouseDown“的命令按钮时,执行此过程 ( C)用鼠标右键单击名称为 “MouseDown“的控件时,执行此过程 ( D)用鼠标左键或右键单击名称为 “Click“的控件时,执行此过程 18 窗体上有名称为 Command1的命令按钮和名称为 Text1的文本框 Private Sub Command1_Click() Text1.Text “程序设计 “ Text1.SetFocus End Sub Private
9、Sub Text1_GotFocus() Text1.Text “等级考试 “ End Sub 运行以上程序,单击命令按钮后 ( )。 ( A)文本框中显示的是 “程序设计 “,且焦点在文本框中 ( B)文本框中显示的是 “等级考试 “,且焦点在文本框中 ( C)文本框中显示的是 “程序设计 “,且焦点在命令按钮上 ( D)文本框中显示的是 “等级考试 “,且焦点在命令按钮上 19 设窗 体上有名称为 Option1的单选按钮,且程序中有语句: If Option1.Value True Then 下面语句中与该语句不等价的是 ( )。 ( A) If Option1.Value Then (
10、 B) If Option1 True Then ( C) If Value True Then ( D) If Option1 Then 20 设窗体上有 1个水平滚动条,已经通过属性窗口把它的 Max属性设置为 1,Min属性设置为 100。下面叙述中正确的是 ( )。 ( A)程序运行时,若使滚动块向左移动,滚 动条的 Value属性值就增加 ( B)程序运行时,若使滚动块向左移动,滚动条的 Value属性值就减少 ( C)由于滚动条的 Max属性值小于 Min属性值,程序会出错 ( D)由于滚动条的 Max属性值小于 Min属性值,程序运行时滚动条的长度会缩为一点,滚动块无法移动 21
11、 下列关于通用对话框 CommonDialog1的叙述中,错误的是 ( )。 ( A)只要在 “打开 “对话框中选择了文件,并单击 “打开 “按钮,就可以将选中的文件打开 ( B)使用 CommonDialog1.ShowColor方法,可以显示 “颜色 “对话框 ( C) CancelError属性用于控制用户单击 “取消 “按钮关闭对话框时,是否显示出错警告 ( D)在显示 “字体 “对话框前,必须先设置 CommonDialog1的 Flags 属性,否则会出错 22 在利用菜单编辑器设计菜单时,为了把组合键 “Alt X“设置为 “退出 (X)“菜单项的访问键,可以将该菜单项的标题设置
12、为 ( )。 ( A)退出 (X&) ( B)退出 (&X) ( C)退出 (X#) ( D)退出 (#X) 23 下面哪个属性肯定不是框架控件的属性 ( )。 ( A) Text ( B) Caption ( C) Left ( D) Enabled 24 窗体上有一个名称为 Option1的单选按钮数组,程序运行时,当单击某个单选按钮时,会调用下面的事件过程: Private Sub Option1_Click(Index As Integer) End Sub 下面关于此过程的参数 Index 的叙述中正确的是 ( )。 ( A) Index为 1表示单选按钮被选中,为 0表示未选中 (
13、 B) Index 的值可正可负 ( C) Index 的值用来区分哪个单选按钮被选中 ( D) Index表示 数组中单选按钮的数量 25 设窗体中有一个文本框 Text1,若在程序中执行了 Text1.SetFocus,则触发( )。 ( A) Text1的 SetFocus事件 ( B) Text1的 GotFocus事件 ( C) Text1的 LostFocus事件 ( D)窗体的 GotFocus 事件 26 窗体上有两个水平滚动条 HV、 HT,还有一个文本框 Text1和一个标题为 “计算 “的命令按钮 Command1,并编写了以下程序:Private Sub Command
14、1_Click()Call calc(HV.Value, HT.Value)End SubPublic Sub calc(x As Integer, y As Integer)Text1.Text x*yEnd Sub运行程序,单击 “计算 “按钮,可根据速度与时间计算出距离,并显示计算结果。对以上程序,下列叙述中正确的是 ( )。 ( A)过程调用语句不对,应为 calc(HV, HT) ( B)过程定义语句的形式参数不对,应为 Sub calc(x As Control, y As Control) ( C)计算结果在文本框中显示出来 ( D)程序不能正确运行 27 现有如下程序: Pri
15、vate Sub Command1_Click() s 0 For i 1 To 5 s s f(5 i) Next Print s End Sub Public Function f(x As Integer) If x 10 Then t x 1 Else t x 2 End If f t End Function 运行程序,则窗体上显示的是 ( )。 ( A) 38 ( B) 49 ( C) 61 ( D) 70 28 窗体上有一个名称为 Picture1的图片框控件,一个名称为 Label1 的标签控件,如图所示。 现有如下程序: Public Sub display(x As Con
16、trol) If TypeOf x Is Label Then x Caption “计算机等级考试 “ Else xPicture LoadPicture(“pic.jpg“) End IfEnd SubPrivate Sub Label1_Click() Call display(Label1)End SubPrivate Sub Picture1_Click() Call display(Picture1)End Sub对以上程序,下列叙述中错误的是 ( )。 ( A)程序运行时会出错 ( B)单击图片框,在图片框中显示一幅图片 ( C)过程中的 x是控件变量 ( D)单击标签,在标签中
17、显示一串文字 29 窗体上有两个名称分别为 Text1、 Text2的文本框。 Text1的 KeyUp事件过程如下: Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer) Dim c As String c UCase(Chr(KeyCode) Text2.Text Chr(Asc(c) 2) End Sub 当向文本框 Text1中输入小写字母 a时,文本框 Text2中显示的是 ( )。 ( A) A ( B) a ( C) C ( D) c 30 设窗体上有一个文本框 Text1和一个命令按钮 Command1,并有
18、以下事件过程: Private Sub Command1_Click() Dim s As String, ch As String s “ For k 1 To Len(Text1) ch Mid(Text1, k, 1) s ch s Next k Text1.Text s End Sub 程序执行时,在文本框中输入 “Basic“,然后单击命令按钮,则 Text1中显示的是( )。 ( A) Basic ( B) cisaB ( C) BASIC ( D) CISAB 31 某人编写了如下程序,用来求 10个整数 (整数从键盘输入 )中的最大值: Private Sub Command1
19、_Click() Dim a(10)As Integer, max As Integer For k 1 To 10 a(k) InputBox(“输入一个整数 “) Next k max 0 For k 1 To 10 If a(k)max Then max a(k) End If Next k Print max End Sub 运行程序时发现,当输入 10个正数时,可以得到正确结果,但输入 10个负数时结果是错误的,程序需要修改。下面的修改中可以得到正确运行结果的是 ( )。 ( A)把 If a(k)max Then改为 If a(k),样式 ,标题 ),注意 MsgBox函数带括号,
20、有返回值。 MsgBox语句格式: MsgBox(,样式 ,标题 ),有无括号都可以,无返回 值。故 A选项错误。 其中: 第 1个参数:提示内容是必需的,不能省略。故 C选项正确。 第 2个参数:可选。整型表达式,缺省值 0,指定信息框中按钮数目、类型、图标类型、缺省按钮等。 第 3个参数:可选,如果省略,则标题栏并不为空默认显示它所属的工程名。故D选项错误。 执行 MsgBox语句时出现信息框后,必须关闭信息框才可执行其他操作。故 B 选项错误。 8 【正确答案】 D 【试题解析】 本题定义的是一个整型的二维数组, 3 To 4指的是 3、 2、1、 0、 1、 2、 3、 4(共 8行
21、),3 To 6指的是 3、 4、 5、 6(共 4列 ),因此数组元素个数是 84 32,故选 D。 9 【正确答案】 A 【试题解析】 定义函数过程的格式: Function 函数过程名 (形参表 )As函数返回值的数据类型 函数过程名表达式 End Function 说明: 形参的类型可以是任何数据类型,函数返回值的类型是调用函数后返回的数据类型,他们没有关系,互不影响。故选项 A正确。 选项 B错误的原因是:函数过程中可以有多个 “函数过程名表达式 “这样的语句,但是最终函数只能有一个返回值。如果省略这条语句,函数过程则返回一 个默认值,数值函数过程返回 0,字符串函数过程返回空字符串
22、。 选项 C错误的原因是:数组作为函数过程的参数时,这时数组名看作是一个符号地址,实参和形参之间传递的是地址,所以以传址方式传递。 选项 D错误的原因是:形参如果没指明数据类型,默认为 Variant类型。 10 【正确答案】 C 【试题解析】 过程定义时,形参除了可以是整型、单精度、双精度等数据类型外,还可以是控件或窗口等对象型。相对应的调用过程时实参也可以是一般数据类型、控件名或窗体。故选项 A、 D正确。 调用过程时使用的实参的个数、类型、顺 序应与过程中形参相同。故选项 B正确。 在过程调用时,不只是函数过程能把过程中处理的信息传回到调用程序中, Sub过程也可以。 Sub过程中形参声
23、明时前面有关键字 ByRef或省略 ByRef(默认 )时,实参和形参之间传递的是地址, Sub过程中形参的变化也会引起实参的变化,这样 Sub过程中处理的信息也可以传回调用程序中。故选项 C说法错误。 11 【正确答案】 C 【试题解析】 VB 中变量名的命名规则: 必须以字母或汉字开头 由字母、汉字、数字或下划线组成 不能使用 VB的保留字。本题中 x2 1中有 (减号 ), 不是下划线。 print是 VB 的保留字,也不能作变量名。 2x以数字开头,也是错误的。故 C选项正确。 12 【正确答案】 D 【试题解析】 VB 数学表达式中的乘用 *表示,除用 /表示,表示一个整体的可加括号
24、 ()。故 D选项正确。 13 【正确答案】 A 【试题解析】 标准模块中只包含其他窗体模块中公用的一些变量、过程等代码,不包括窗体。故选项 A错误。 14 【正确答案】 A 【试题解析】 因为 Rnd 函数产生的随机数范围是大于等于 0 而小于 1。要产生30 50(含 30和 50)之间的随机整数 ,可先产生 0 (50 30),即 0 20之间的随机整数,然后在这个基础上再加上 30。 Rnd*20生成 0 20之间的随机数中不包括20,所以要用 Int(Rnd*21)可产生 0 20之间的随机整数,然后加上 30,综合起来就是 Int(Rnd*21 30),故 A选项正确。 15 【正
25、确答案】 C 【试题解析】 如果窗体是活动的,那么在窗体上按下鼠标右键 (尚未松手抬起 ),即会触发 Form_MouseDown 事件,松手抬起后,要先触发 Form_MouseUp 事件,然后再触发 Form_Click 事件。如果窗体原 先是非活动的,还会触发Form_GotFocus 事件,并且它最先发生。 Form_Load 事件是窗体显示之前,加载时触发,单击窗体时不触发。故 A选项错误。 用鼠标左键单击窗体标题栏时,不会执行 Form_Click 事件过程。故 B 选项错误。 装入窗体后,每次显示该窗体时或窗体成为活动窗体时,都会执行 From_Active窗体的激活事件。故 D
26、选项错误。 16 【正确答案】 C 【试题解析】 A选项错误原因:当以 Output方式打开一个不存在的顺序文件时, Open 语句会首先创建该文件,然后再打开它,系统不会 出错。 B 选项错误原因:以 Append 方式打开文件后,可将内存中的数据追加到顺序文件的尾部,可进行写操作,不能进行读操作。 D选项错误原因: VB 中三种可访问的文件有:顺序文件、随机文件和二进制文件,不同文件打开的方式是不同的。 C选项中随机文件中的每一行称为一条记录,每条记录的长度相同,通过记录号来定位和查找指定记录。故 C选项正确。 17 【正确答案】 D 【试题解析】 本题中, Click是控件的名称, Mo
27、useDown 是鼠标按下事件,当用鼠标左键或右键单击 Click 控件时就会触发 MouseDown 事件,执行 MouseDown事件过程。故选 D。 18 【正确答案】 B 【试题解析】 运行程序,单击命令按钮后,执行 Command1_Click 事件过程代码,文本框 Text1 中显示 “程序设计 “,并且文本框 Text1获得焦点,此时焦点在Text1中;当 Text1 获得焦点就会触发它的 Got_Focus 事件,执行 Got_Focus 事件过程,结果文本框 Text1中显示 “等级考试 “。故 B 选项正确。 19 【正确答案】 C 【试题解析】 A选项中 Option1.
28、Value可作为一个条件表达式,它返 回的是单选按钮 Value属性的属性值,根据属性值就可判断出单选按钮是否被选中; B选项中Option1 等价于 Option1.Value; D选项与 A选项等价,故 A、 B、 D选项均与程序中语句等价; C选项中 Value是属性名,前面必须加控件名才能用,不能单独使用,故 C选项错误。 20 【正确答案】 A 【试题解析】 水平滚动条的 Max和 Min 属性值可以是 0 32767中任意值。当MaxMin 属性值时,滚动块向右移动 Value属性值增加,向左移动 Value属性值减少;反之,当 Max 0 Then Select Case ? C
29、ase Is 15 第 5个?处填入: 11 * 1.2 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 四、综合应用题 43 【正确答案】 【操作步骤】 步骤 1:打开本题工程文件。 步骤 2:分析并编写程序代码。 程序提供代码 Dim a(10) As Integer Public Sub Save() Open App.Path & “out5.txt“ For Output As #1 Print #1, Label4.Caption Close #1 End Sub Private Sub Command1_Click() Open App.Path & “Data5.txt“
30、 For Input As #1 Do While Not ? For i = 1 To 10 Input #1, a(i) s = s & ? Next i Loop Close #1 Label2.Caption = s End Sub Private Sub Command2_Click() 以下考生编写程序开始 考生编写程序结束 For i = 1 To 10 s = s & Str(a(i) Next i Label4.Caption = s Save End Sub 程序结束 参考答案 第 1个?处填入: EOF(1) 第 2个?处填入: a(i) For i = 1 To 10 f = True For j = 1 To 9 If a(j) a(j + 1) Then t = a(j) a(j) = a(j + 1) a(j + 1) = t f = False End If Next j If f Then Exit For End If Next i 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。