1、国家二级( VB)机试历年真题试卷汇编 3及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)栈是 “先进先出 ”的线性表 ( B)队列是 “先进后出 ”的线性表 ( C)循环队列是非线性结构 ( D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构 2 支持子程序调用的数据结构是 ( )。 ( A)栈 ( B)树 ( C)队列 ( D)二叉树 3 某二叉树有 5个度为 2的结点,则该二叉树中的叶子结点数是 ( )。 ( A) 10 ( B) 8 ( C) 6 ( D) 4 4 下列排序方法中,最坏情况下比较次数最少的是 ( )。 ( A)冒泡排序 ( B)简单选择排序
2、 ( C)直接插入排序 ( D)堆排序 5 软件按功能可以分为:应用软件、系统软件和支撑软件 (或工具软件 )。下面属于应用软件的是 ( )。 ( A)编译程序 ( B)操作系统 ( C)教务管理系统 ( D)汇编程序 6 下面叙述中错误的是 ( )。 ( A)软件测试的目的是发现错误并改正错误 ( B)对被调试的程序进行 “错误定位 ”是程序调试的必要步骤 ( C)程序调试通常也称为 Debug ( D)软件测试应严格执行测试计划,排除测试的随意性 7 耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是 ( )。 ( A)提高耦合性降低内聚性有利于提高模块的独立性 ( B)降低耦
3、合性提高内聚性有利于提高模块的独立性 ( C)耦合性是指一个模块内部各个元素间彼此结合的紧密程度 ( D)内聚性是指模块间互相连接的紧密程度 8 数据库应用系统中的核心问题是 ( )。 ( A)数据库设计 ( B)数据库系统设计 ( C)数据库维护 ( D)数据库管理员培训 9 有两个关系 R、 S如下: 由关系 R通过运算得到关系 s,则所使用的运算为 ( )。 ( A)选择 ( B)投影 ( C)插入 ( D)连接 10 将 ER图转换为关系模式时,实体和联系都可以表示为 ( )。 ( A)属性 ( B)键 ( C)关系 ( D)域 11 下列叙述中正确的是 ( )。 ( A) MsgBo
4、x语句的返回值是一个整数 ( B)执行 MsgBox语句并出现信息框后,不用关闭信息框即可执行其他操作 ( C) MsgBox语句的第一个参数不能省略 ( D)如果省略 MsgBox语句的第三个参数 (Title),则 信息框的标题为空 12 语句 Dima (-3To4, 3To6)As Integer定义的数组的元素个数是 ( )。 ( A) 18 ( B) 28 ( C) 21 ( D) 32 13 以下关于函数过程的叙述中,正确的是 ( )。 ( A)函数过程形参的类型与函数返回值的类型没有关系 ( B)在函数过程中,过程的返回值可以有多个 ( C)当数组作为函数过程的参数时,既能以传
5、值方式传递,也能以传址方式传递 ( D)如果不指明函数过程参数的类型,则该参数没有数据类型 14 以下关于过程及过程参数的描 述中,错误的是 ( )。 ( A)过程的参数可以是控件名称 ( B)调用过程时使用的实参的个数应与过程形参的个数相同 (假定不含可变参数 ) ( C)只有函数过程能够将过程中处理的信息返回到调用程序中 ( D)窗体可以作为过程的参数 15 以下变量名中合法的是 ( )。 ( A) x2-1 ( B) ptint ( C) str_n ( D) 2x 16 把数学表达式 表示为正确的 VB表达式应该是 ( )。 ( A) (5x+3) (2y-6) ( B) x*5+3
6、2 y-6 ( C) (5*x+3)(2*y-6) ( D) (x*5+3) (y*2-6) 17 下面有关标准模块的叙述中,错误的是 ( )。 ( A)标准模块不完全由代码组成,还可以有窗体 ( B)标准模块中的: Private过程不能被工程中的其他模块调用 ( C)标准模块的文件扩展名为 bas ( D)标准模块中的全局变量可以被工程中的任何模块引用 18 可以产生 30 50(含 30和 50)之间的随机整数的表达式是 ( )。 ( A) Int(Rnd*21+30) ( B) Int(Rnd*20+30) ( C) Int(Rnd*50-Rnd*30) ( D) Int(Rnd*30
7、+50) 19 在程序运行时,下面的叙述中正确的是 ( )。 ( A)用鼠标右键单击窗体中无控件的部分,会执行窗体的 Form_Load事件过程 ( B)用鼠标左键单击窗体的标题栏,会执行窗体的 Form_Click事件过程 ( C)只装入而不显示窗体,也会执行窗体的 Form_Load事件过程 ( D)装入窗体后,每次显示该窗体时,都会执行窗体的 Form_Click事件过程 20 下列有关文件的叙述中,正确的是 ( )。 ( A)以 Output方式打开一 个不存在的文件时,系统将显示出错信息 ( B)以 Append方式打开的文件,既可以进行读操作,也可以进行写操作 ( C)在随机文件中
8、,每个记录的长度是固定的 ( D)无论是顺序文件还是随机文件,其打开的语句和打开方式都是完全相同的 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”的命令按钮时,执行此过程 ( C)用鼠标右键单击名称为 “Mou
9、seDown”的控件时,执行此过程 ( 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 设窗体上有名称为 Option1的单选按钮,且程序中有语句: If Opfion1 Value=True Then 下面语句中与该语句不等价的是 ( )。 ( A) If Option1 Value Then ( B) If Option1=True Then ( C) If Value=True Then ( D) If Option1 Then 24 设窗体上有 1个水平滚动条,已经通过属性窗口把它的 Max属性设置为 1,Min属性设置为 100。下面叙述中正
11、确的是 ( )。 ( A)程序运行时,若使滚动块向左移动,滚动条的 Value属性值就增加 ( B)程序运行时,若使滚动块向左移动,滚动条的 Value属性值就减少 ( C)由于滚动条的 Max属性值小于 Min属性值,程序会出错 ( D)由于滚动条的 Max属性值小于 Min属性值,程序运行时滚动条的长度会缩为一点,滚动块无法移动 25 下列关于通用对话框 CommonDialog1的叙述中,错误的是 ( )。 ( A)只要在 “打开 ”对话框中选择了文件,并单击 “打开 ”按钮,就可以将选中的文件打开 ( B)使用 CommonDialog1 ShowColor方法,可以显示 “颜色 ”对
12、话框 ( C) CancelError属性用于控制用户单击 “取消 ”按钮关闭 对话框时,是否显示出错警告 ( D)在显示 “字体 ”对话框前,必须先设置 CommonDialog1的 Flags属性,否则会出错 26 在利用菜单编辑器设计菜单时,为了把组合键 “Alt+X”设置为 “退出 (X)”菜单项的访问键,可以将该菜单项的标题设置为 ( )。 ( A)退出 (X&) ( B)退出 (&X) ( C)退出 (X#) ( D)退出 (#X) 27 下面哪个属性肯定不是框架控件的属性 ( )。 ( A) Text ( B) Caption ( C) Left ( D) Enabled 28
13、窗 体上有一个名称为 Option1的单选按钮数组,程序运行时,当单击某个单选按钮时,会调用下面的事件过程: Private Sub Option1_Click(Index As Integer) End Sub 下面关于此过程的参数 Index的叙述中,正确的是 ( )。 ( A) Index为 1表示单选按钮被选中,为 0表示未选中 ( B) Index的值可正可负 ( C) Index的值用来区分哪个单选按钮被选中 ( D) Index表示数组中单选按钮的数量 29 设窗体中有一个文本框 Text1,若在程序中执行 了 Text1 SetFocus,则触发( )。 ( A) Text1的
14、 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 Contro1) ( C)计算结果在文本框中显示出来 ( D)程序不能正确运行 31 现有如下程序: PrivateSubCommand1_Click() s=0 For i=1To5 S=s+f(5+i) Next Print s End Sub Public Function f(x As Integer) If x =10Then t=x+1 Else t=x+2
16、 End If f=t End Funcfion 运行程序,则窗体上显示的是 ( )。 ( A) 38 ( B) 49 ( C) 61 ( D) 70 32 窗体上有一个名称为 Pieture1的图片框控件,一个名称为 Lbel1的标签控件,如图所示。 现有如下程序: Public Sub display(x As Control)If TypeOf x Is Lable1 Thenx Caption=“计算机等级考试“ElsexPicture=LoadPicture(“pic jpg“)End IfEnd SubPrivate Sub Label1_Click()Call display(L
17、abel1)End SubPrivate Sub Picture1_Click()Call display(Picture1)End Sub对以上程序,下列叙述中错误的是 ( )。 ( A)程序运行时会出错 ( B)单 击图片框,在图片框中显示一幅图片 ( C)过程中的 x是控件变量 ( D)单击标签,在标签中显示一串文字 33 窗体上有两个名称分别为 Text1、 Text2的文本框。 Text1的 KeyUp事件过程如下: Private Sub Text1_KeyUp(KeyCode As Integer, shift As Integer) Dim c As String c=UCas
18、e(Chr(KeyCode) Text2 Text=Chr(Ase(c)+2) End Sub 当向文本框 Text1中输入小写字母 a时,文 本框 Text2中显示的是 ( )。 ( A) A ( B) a ( C) C ( D) c 34 设窗体上有一个文本框 Text1和一个命令按钮 Command1,并有以下事件过程: Private Sub Command1_Click() Dim s As String, ch As String s=“ “ For k=1ToLen(Text1) ch=Mid(Text1, k, 1) s=ch+s Next k Text1 Text=s End
19、 Sub 程序执行时,在文本框中输入 “Basic”,然后单击命令按钮 ,则 Text1中显示的是( )。 ( A) Basic ( B) cisaB ( C) BASIC ( D) CISAB 35 某人编写了如下程序,用来求 10个整数 (整数从键盘输入 )中的最大值: Private Sub Command1_Click() Dim a(10)As Integer, max As Integer For k=1To10 a(k)=InputBox(“输入一个整数 “) Next k max=0 For k=1To10 If a(k) max Then max=a(k) End If Ne
20、xt k Print max End Sub 运行程序时发现,当输入 10个正数时,可以得到正确结果,但输入 10个负数时结果是错误的,程序需要修改。下面的修改中可以得到正确运行结果的是 ( )。 ( A)把 If a(k) max Then改为 If a(k) max Then ( B)把 max=a(k)改为 a(k)=max ( C)把第 2个循环语句 For k=1To10改为 For k=2To10 ( D)把 max=0改为 max=a(10) 36 已知在 4行 3列的全局数组 score(4, 3)中存放了 4个学生 3门课程的考试成绩(均为整数 )。现需要计算每个学生的总分,
21、某人编写程序如下: Option Base1 Private Sub Command1_Click() Dim sum As Integer sum=0 For i=1To4 For j=1To3 sum=sum+score(i, j) Next j Print“第 “&i&“个学生的总分是: “; sum Next i End Sub 运行此程序时发现,除第 1个人的总分计算正确外,其他人的总分都是错误的,程序需要修改。以下修改方案中正确的是 ( )。 ( A)把外层循环语句 For i=1To4改为 Fori =1To3 内层循环语句 For j=1To3改为 For j=1To4 ( B
22、)把 sum=0移到 For i=1To4和 For j=1To3之间 ( C)把 sum=sum+score(i, j)改为 sum=sum+score(j, i) ( D)把 sum=sum+score(i, j)改为 sum=score(i, j) 37 窗体上有 Command1、 Command2两个命令按钮。现编写以下程序: Option Base0 Dim a()As Integer, m As Integer Private Sub Command1_Click() m=InputBox(“请输入一个正整数 “) ReDim a(m) End Sub Private Sub C
23、ommand2_Click() m=InputBox(“请输入一个正整数 “) ReDim a(m) End Sub 运行程序时,单击 Command1后输入整数 10,再单击 Command2后输入整数 5,则数组 a中元素的个数是 ( )。 ( A) 5 ( B) 6 ( C) 10 ( D) 11 38 在窗体上画 一个命令按钮和一个标签,其名称分别为 Command1和 Label1,然后编写如下事件过程: Private Sub Command1_Click() Counter=0 For i=1To4 For j=6To1Step-2 Counter=Counter+1 Next
24、j Next i Label1 Caption=Sir(Counter) End Sub 程序运行后,单击命令按钮,标签中显示的内容是 ( )。 ( A) 11 ( B) 12 ( C) 16 ( D) 20 39 在窗体上画一个名为 Command1的命令按钮,然后编写以下程序: Private Sub Command1_Click() Dim M(10)As Integer For k=1To10 M(k)=12-k Next k X=8 Print M(2+M(x) End Sub 运行程序,单击命令按钮,在窗体上显示的是 ( )。 ( A) 6 ( B) 5 ( C) 7 ( D) 8
25、 40 在窗体上画一个名称为 Command1的命令按钮,再画两个名称分别为 Label1、Label2的标签,然后编写如下程序代码: Private X As Integer Private Sub Command1_Click() X=5: Y=3 Call proc(X, Y) Label1 Caption=X Label2 Caption=Y End Sub Private Sub proc(a As Integer, ByVal b As Integer) X=a*a Y=b+b End Sub 程序运行后,单击命令按钮,则两个标签中显示的内容分别是 ( )。 ( A) 25和 3
26、( B) 5和 3 ( C) 25和 6 ( D) 5和 6 二、基本操作题 41 在名称为 Form1的窗体上添加一个标签,其名称为 Label1,然后通过属性窗口设置窗体和标签的属性,实现如下功能: 窗体标题为 “设置标签属性 ”; 标签的位置为:距窗体左边界 500,距窗体顶边界 300; 标签的标题为 “等级考试 ”; 标签的 AutoSize属性为 True; 标签带有边框。程序的运行情况如图所示。要求:不编写任何代码。注意:存盘时必须存放在考生文件夹下,工程文件名保存为 sjt1 vbp,窗体文件名保存为sjt1 frm。 (2)在名称为 Form1的窗体上添加一个命令按钮和一个水
27、平滚动条,其名称分 别为 Command1和 HSeroll1,编写适当的事件过程。程序运行后,如果单击命令按钮,则按如下要求设置水平滚动条的属性: Max=窗体宽度Min=0LargeChange=50SmallChange=10而如果移动水平滚动条的滚动框,则滚动框的位置值显示在窗体上。程序的运行情况如图所示。要求:不得使用任何变量。注意:存盘时必须存放在考生文件夹下,工程文件名保存为 sjt2 vbp,窗体文件名保存为sjt2 frm。 三、简单应用题 42 在考生文件夹下有一个工程文件 sjt3 vbp,相应的窗体文件为 sjt3 frm。其功能是随机产生 20个 0 1000的整数,
28、将其放入一个数组中,然后输出这 20个整数的平均值。程序运行后,单击命令按钮 (名称为 Command1,标题为 “输出平均值 ”),即可求出其平均值,并显示在窗体上 (如图所示 )。这个程序不完整,请把它补充完整,并能正确运行。要求:去掉程序中的注释符,把程序中的 ?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后将修改后的文件按原文件名存盘。 (2)在考生文件夹下有一个工程文件 sjt4 vhp,相应的窗体文件为 sjt4 frm,在窗体上有一个文 本框和一个命令按钮。程序运行后,单击命令按钮,即可计算出 0 200范围内能被 3整除的所有整数的和,并显示在文本框中。在窗
29、体的代码窗口中,已给出了部分程序,其中计算能被 3整除的整数的和的操作在通用过程 Fun中实现,请编写该过程的代码。要求:请勿改动程序中的任何内容,只在 Function Fun()和 End Function之间填入你编写的若干语句。最后将修改后的文件按原文件名存盘。 四、综合应用题 43 在考生文件夹下有一个工程文件 sjt5 vbp,界面如图所示,其功能如下: 单击 “读数据 ”按钮,则把考 生文件夹下文件in5 dat中的 12组整数 (其中每组 含有 10个数,共计 120个整数 )读到数组 a中; 单击 “计算 ”按钮,则对每组数求平均值,并将所求各级数的平均值截尾取整后存人 s数
30、组中; 单击 “显示 ”按钮,则将所求各组数的平均值显示在文本框架 Text1中; 单击 “存盘 ”按钮则把计算结果存盘。在给出的窗体文件中已经有了全部控件,且 “读数据 ”、 “显示 ”和 “存盘 ”按钮的 Click事件过程已经给出,请为 “计算 ”按钮编写适当的事件过程以实现上述功能。注意:不得修改已经存在的程序,在结束程序运行之前,必须用 “存盘 ”按钮存储计算结果,否则元成绩。最后,程序按原文件名存盘。 国家二级( VB)机试历年真题试卷汇编 3答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 栈是先进后出的线性表,所以 A错误;队列是先进先出的线性表,所以 B错误;循环队
31、列是线性结构的线性表,所以 C错误。 2 【正确答案】 A 【试题解析】 栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为 A)。 3 【正确答案】 C 【试题解析】 根据二叉树的基本性质 3:在任意一颗二叉树中,度为 0的叶子结点总是比度为 2的结点多一个,所以本题中是 5+1=6个。 4 【正确答案】 D 【试题解析】 冒泡排序、直接插入排序与简单选择排序法在最坏情况下均需要比较 n(n-1) 2次,而堆排
32、序在最坏情况下需要比较的次数是 nlog2n。 5 【正确答案】 C 【试题解析】 编译软件、操作系统、汇编程序都属于系统软件,只有 C教务管理系统才是应用软件。 6 【正确答案】 A 【试题解析】 软件测试 的目的是为了发现错误而执行程序的过程,并不涉及改正错误,所以选项 A错误。程序调试的基本步骤有:错误定位、修改设计和代码,以排除错误、进行回归测试,防止引进新的错误。程序调试通常称为 Debug,即排错。软件测试的基本准则有:所有测试都应追溯到需求、严格执行测试计划,排除测试的随意性、充分注意测试中的群集现象、程序员应避免检查自己的程序、穷举测试不可能、妥善保存测试计划等文件。 7 【正
33、确答案】 B 【试题解析】 模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。 一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,所以 A错误, B正确。耦合性是模块间互相连接的紧密程度的度量而内聚性是指一个模块内部各个元素间彼此结合的紧密程度,所以 C与 D错误。 8 【正确答案】 A 【试题解析】 数据库应用系统中的核心问题是数据库的设计。 9 【正确答案】 B 【试题解析】 投影运算是指对于关系内的域指定可引入新的运算。本题中 S是在原有关系 R的内部进行的,是由 R中原有的那些域的列
34、所组成的关系。所以选择B。 10 【正确答案】 C 【试题解析】 从 ER图到关系模式的转换是比较直接的,实体与联系都可以表示成关系, ER图中属性也可以转换成关系的属性。 11 【正确答案】 C 【试题解析】 Msgbox语句的功能:显示消息提示框,在对话框中显示提示消息,等待用户单击按钮,单击不同的按钮返回不同的整数。它有 2种形式: MsgBox函数格式: 变量 =MsgBox(提示内容 ,样式 ,标题 ),注意 MsgBox函数带括号,有返回值。 MsgBox语句格式: MsgBox(提示内容 ,样式 ,标题 ),有无括号都可以,无返回值。故 A选项错误。 其中: 第 1个参数:提示内
35、容是必需的,不能省略。故 C选项正确。 第 2个参数:可选。整型表达式,缺省值 0,指定信息框中按钮数目、类型、图标类型、缺省按钮等。 第 3个参数:可选,如果省略,则标题栏并不为空默认显示它所属的工程名。故D选项错误。 执行 MsgBox语句时出现信息框后,必须关闭信息框才可执行其他操作。故 B选项错误。 12 【正确答案】 D 【试题解析】 本题定义的是一个整型的二维数组, -3To4指的是 -3、 -2、 -1、 0、1、 2、 3、 4(共 8行 ), 3To6指的是 3、 4、 5、 6(共 4列 ),因此数组元素个数是84=32,故选 D。 13 【正确答案】 A 【试题解析】 定
36、义函数过程的格式: Function函数过程名 (形参表 )As函数返回值的数据类型 函数过程名 =表达式 End Function 说明: 形参的类型可以是任何数据类型,函数返回值的类型是调用函数后返回的数据类型,他们没有关系,互不影响。故选项 A正确。 选项 B错误的原因是:函数过程中可以有多个 “函数过程名 =表达式 ”这样的语句,但是最终函数只能有一个返回 值。如果省略这条语句,函数过程则返回一个默认值,数值函数过程返回 0,字符串函数过程返回空字符串。 选项 C错误的原因是:数组作为函数过程的参数时,这时数组名看作是一个符号地址,实参和形参之间传递的是地址,所以以传址方式传递。 选项
37、 D错误的原因是:形参如果没指明数据类型,默认为 Variant类型。 14 【正确答案】 C 【试题解析】 过程定义时,形参除了可以是整型、单精度、双精度等数据类型外,还可以是控件或窗口等对象型。相对应的调用过程时实参也可以是一般数据类型、控件名或窗体。故选项 A、 D正确。 调用过程时使用的实参的个数、类型、顺序应与过程中形参相同。故选项 B正确。 在过程调用时,不只是函数过程能把过程中处理的信息传回到调用程序中, Sub过程也可以。 Sub过程中形参声明时前面有关键字 ByRef或省略 ByRef(默认 )时,实参和形参之间传递的是地址, Sub过程中形参的变化也会引起实参的变化,这样
38、Sub过程中处理的信息也可以传回调用程序中。故选项 C说法错误。 15 【正确答案】 C 【试题解析】 VB中变量名的命名规则: 必须以字母或汉字开头 由字母、汉字、数字或下划线组成 不能使用 VB的保留字。本题中 x2-1中有 -(减号 ),不是下划线。 print是 VB的保留字,也不能作变量名。 2x以数字开头,也是错误的。故 C选项正确。 16 【正确答案】 D 【试题解析】 VB数学表达式中的乘用 *表示,除用表示,表示一个整体的可加括号 ()。故 D选项正确。 17 【正确答案】 A 【试题解析】 标准模块中只包含其他窗体模块中公用的一些变量、过程等代码,不包括窗体。故选项 A错误
39、。 标准模块中用 Private声明的过程属于私有过程,只能被它所在的模块中的其他过程调用,不能被工程中其他 模块调用,用 Public声明的全局变量属于公用变量,可以被工程中的任何模块引用。标准模块的文件扩展名是 bas。 18 【正确答案】 A 【试题解析】 因为 Rnd函数产生的随机数范围是大于等于 0而小于 1。要产生30 50(含 30和 50)之间的随机整数,可先产生 0 (50-30),即 0 20之间的随机整数,然后在这个基础上再加上 30。 Rnd*20生成 0 20之间的随机数中不包括 20,所以要用 Int(Rnd*21)可产生 020之间的随机整数,然后加上 30,综合
40、起来就是 Int(Rnd*21+30), 故 A选项正确。 19 【正确答案】 C 【试题解析】 如果窗体是活动的,那么在窗体上按下鼠标右键 (尚未松手抬起 ),即会触发 Form_MouseDown事件,松手抬起后,要先触发 Form_MouseUp事件,然后再触发 Form_Click事件。如果窗体原先是非活动的,还会触发Form_GotFoCcus事件,并且它最先发生。 Form_Load事件是窗体显示之前,加载时触发,单击窗体时不触发。故 A选项错误。 用鼠标左键单击窗体标题栏时,不会执行 Form_Click事件过程。故 B选项错误。 装入窗体后, 每次显示该窗体时或窗体成为活动窗体
41、时,都会执行 From_Active窗体的激活事件。故 D选项错误。 20 【正确答案】 C 【试题解析】 A选项错误原因:当以 Output方式打开一个不存在的顺序文件时, Open语句会首先创建该文件,然后再打开它,系统不会出错。 B选项错误原因:以 Append方式打开文件后,可将内存中的数据追加到顺序文件的尾部,可进行写操作,不能进行读 D选项错误原因: VB中三种可访问的文件有:顺序文件、随机文件和二进制文件,不同文件打开的方式是不同的。 C选项中随机文件中的每一行 称为一条记录,每条记录的长度相同目,通过记录号来定位和查找指定记录。故 C选项正确。 21 【正确答案】 D 【试题解
42、析】 本题中, Click是控件的名称, MouseDown是鼠标按下事件,当用鼠标左键或右键单击 Click控件时就会触发 MouseDown事件,执行 MouseDown事件过程。故选 D。 22 【正确答案】 B 【试题解析】 运行程序,单击命令按钮后,执行 Command1_Click事件过程代码,文本框 Text1中显示 “程序设计 ”,并且文本框 Text1获得焦点,此时焦点在Text1中;当 Text1获得焦点就会触发它的 Got-Focus事件,执行 Got-Focus事件过程,结果文本框 Text1中显示 “等级考试 ”。故 B选项正确。 23 【正确答案】 C 【试题解析】
43、 A选项中 Option1 Value可作为一个条件表达式,它返回的是单选按钮 Value属性的属性值,根据属性值就可判断出单选按钮是否被选中; B选项中 Option1等价于 Option1 Value; D选项与 A选项等价,故 A、 B、 D选项均与程序中语句等价; C选项中 Value是属性名,前面必须加控件名才能用,不能单独使 用,故 C选项错误。 24 【正确答案】 A 【试题解析】 水平滚动条的 Max和 Min属性值可以是 0 32767中任意值。当Max Min属性值时,滚动块向右移动 Value属性值增加,向左移动 Value属性值减少;反之,当 Max Min属性值时,滚
44、动块向右移动 Value属性值减少,向左增加;当它们 Max=Min时,滚动块不能移动。故 A选项正确。 25 【正确答案】 A 【试题解析】 “打开 ”对话框主要用来获取用户指定的文件信息并供程序使用,对话框本身并不提供打开文件功能,这些功能需另外编写 代码才能实现,所以在 “打开 ”对话框中可选中某文件,但不能打开。故 A选项错误。 26 【正确答案】 B 【试题解析】 要使菜单项的快捷键设置为 Alt+字母,就要在菜单项的标题中设置为 &+字母。本题把 “Alt+X”设置为 “退出 (x)”菜单项,则菜单项的标题设置为 “退出 (&X)”。故选 B。 27 【正确答案】 A 【试题解析】
45、 框架没有 Text属性。故选 A。 28 【正确答案】 C 【试题解析】 Index参数值返回的是单选按钮数组中备单选按钮的索引值,用它来区分各单选按钮。故 A、 D选项错误, C选项正确; Index的值只能是非负数,故 B选项错误。 29 【正确答案】 B 【试题解析】 SetFocus是控件获得焦点的方法, GotFocus是控件获得焦点后触发的事件, LostFocus是控件失去焦点后触发的事件。本题中程序执行Text1 SetFocus后, Text1就获得焦点,进而触发 Text1的 GotFocus事件。故 B选项正确。 30 【正确答案】 C 【试题解析】 访问滚动条控件的值
46、,可以直接使用控件的名称,也可以在名称后面指明 Value属性。滚动条位置是用 数值来表示的,因此定义 Calc过程时参数应该定义为 Integer类型。程序中, Text1 Text=x*y语句说明计算的结果在文本框中显示出来。 31 【正确答案】 B 【试题解析】 程序中过程 f的功能是参数值大于等于 10时,返回参数加 l的值,否则返回参数加 2的值。因此按钮事件中 s值的计算过程如下: i=1时, s=0+f(5+1)=8; i=2时, s=8+f(5+2)=8+9=17; i=3时, s=17+f(5+3)=17+10=27; i=4时, s=27+f(5+4)=27+11=38;
47、i=5时, s=38+f(5+5)=38+11=49; 因此最终在窗体上输出的是 49。 32 【正确答案】 A 【试题解析】 程序中定义了一个过程 display(x as Control),它的参数 x是一个控件变量。当单击 Picture1控件或 Label1控件时,都会调用 display过程,而传入的参数分别是这两个参数的控件名,在 display过程中程序判断参数传入控件的类型,如果是标签控件,就在它的标题上显示 “计算机等级考试 ”,否则就认为是图片控件,就在图片框中加载一个图片显示出来。程序运行正常,因此 A选项错。 33 【正确答案】 C 【试题解析】 KeyDown和 Ke
48、yup事件的 Keycode参数返回的是 “键 ”,即按字母“A”和 “a”时得到的 KeyCode的值是相同的,都是 &H41。因此程序中对输入 “a”时得到的 KeyCode,经 Chr函数转为字符后为 “A”,经 Uease函数转换仍为 “A”,所以变量 c中的字符为 “A”。 Asc(c)将返回变量 c中的第一个字符的 AsCII,加 2后,再由 Chr函数转为字符即为 “A”后面的第 2个字符,即 “C”。所以答案应为选项 C。 34 【正确答案】 B 【 试题解析】 Len函数返回字符串的长度, Mid函数为字符串中部截取函数格式为: Mid(字符串,起始位置,长度 )。程序中,
49、For循环的终值是 Text1中输入的字符串的长度,即 “Basic”的长度,为 5。循环体中 Mid函数从第一个字符开始依次取出一个字符,然后与上次取出的字符连接,本次取出的字符在前,上次取出的字符在后。最终变量 s中应该是 “cisaB”。 35 【正确答案】 D 【试题解析】 程序中把变量 max的初始值设置为 0,没有考虑到负数的情况。应该把它的初始值设置为数组中的一个元素的值,然后让数 组中的各个元素与这个值比较,如果比它大,就替换变量 max的值,这样才能得到数组中的最大值。因此要修改 max=0这一行。 36 【正确答案】 B 【试题解析】 程序变量 sum的值在开始计算第 2个学生的总成绩时,仍保留着第一个学生的总成绩,这样会把前面学生的总成绩计算进去,显然不对。因此,sum=0这一句应该放在第 1层 For循环体的第一句,即 For i=1to4和 for i=1to3之间。 37 【正确答案】 B 【试题解析】 程序中 Option Base0表示指定数组的下标默认下界为 0。