1、二级 VISUAL+BASIC 笔试 23 及答案解析(总分:90.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.执行下面的程序,输出的结果是 _ 。 Private Sub Command1_Click() ch $ = “Welcome to China!“ n = Len(ch $ ) For i =1 To n-1 s$ =Mid(ch$ ,i,1) If s$ =“o“ Then m=m + 1 Next i Print m End Sub(分数:2.00)A.1B.2C.8D.02.队列适用于下列哪一种应用? _(分数:2.00)A.表达式求值B
2、.堆排序算法的实现C.树的层次次序周游算法的实现D.二叉树对称序周游算法的实现3.在窗体上画一个命令按钮 Command1 和两个文本框,名称分别为 Text 1 和 Text 2 Text 2。编写如下两个事件过程: Dim str As String, strl As String Private Sub form_load() Text1. Text = “ “ Text2. Text = “ “ Text1. Enabled = False Text2. Enabled = False End Sub Private Sub Form KeyPress(KeyAscii As Inte
3、ger) str= str s(分数:2.00)A.0 1B.30 30C.4 30D.3 18229.在结构化设计方法中生成的结构图(SC) 中,带有箭头的连线表示 _ 。(分数:2.00)A.模块之间的调用关系B.程序的组成成份C.控制程序的执行顺序D.数据的流向30.设在菜单编辑器中定义了一个菜单项,名为 menul。为了在运行时隐藏该菜单项,应使用的语句是 _ 。(分数:2.00)A.menu Enabled=TrueB.menuEnabledFalseC.menuVisible=TrueD.menuVisibleFalse31.以下对 Visual Basic 的 Sub 过程的有关
4、描述中,正确的是 _ 。(分数:2.00)A.调用于过程时,只能把实参的值传送给形参,形参的值不能传送给实参B.子过程既可以嵌套定义,又可以递归调用C.子过程没有返回值D.具有调用关系的所有过程必须放在同一个模块中32.假设在窗体 Form1 上加一个通用对话框控件 CommonDialog1,用语句 CommonDialog1.ShowOpen 建立打开文件对话框,那么从该对话框中单击“确定”按钮退出对话框时,为了得到用户所选择的文件的路径以及文件名,应该使用 CommonDialog1 的属性是 _ 。(分数:2.00)A.DefaultEXTB.DialogTitleC.FileName
5、D.FileTitle33.数据库三级模式体系结构的划分,有利于保持数据库的 _ 。(分数:2.00)A.数据独立性B.数据安全性C.结构规范化D.操作可行性34.对线性表进行二分法查找,其前提条件是 _ 。(分数:2.00)A.线性表以顺序方式存储,并已按关键码值排好序B.线性表以顺序方式存储,并已按关键码值的查找频率排好序C.线性表以链接方式存储,并已按关键码值排好序D.线性表以链接方式存储,并已按关键码值的查找频率排好序35.一般在数据流程图中,圆圈用来表示 _ 。(分数:2.00)A.外部实体B.变换/加功C.数据存储D.数据流二、B填空题/B(总题数:10,分数:20.00)36.在
6、一个容量为 25 的循环队列中,若头指针 front=16,尾指针 rear=9,则该循环队列中共有U 【1】 /U个元素。(分数:2.00)填空项 1:_37.在长度为 n 的线性表中查找一个表中不存在的元素,需要的比较次数为U 【2】 /U。(分数:2.00)填空项 1:_38.白盒测试方法重视U 【3】 /U的度量。(分数:2.00)填空项 1:_39.在面向对象方法中,允许作用于某个对象上的操作称为U 【4】 /U。(分数:2.00)填空项 1:_40.数据模型是数据库系统中用于提供信息表示和操作手段的结构形式。实际数据库系统中斯支持的数据模型主要有层次模型、网状模型和U 【5】 /U
7、3 种。(分数:2.00)填空项 1:_41.如果在菜单标题的某个字母前面输入一个字符“U 【6】 /U”,就会使该字母成为热键字母;如果建立菜单时,在标题文本框中输入一个字符“U 【7】 /U”,那么菜单显示时就会形成一行分隔符。(分数:2.00)填空项 1:_42.如果要在文本框中显示垂直滚动条,则必须把U 【8】 /U属性设置为 2,同时还应把Multiline 属性设置为 True。(分数:2.00)填空项 1:_43.有如下过程,将两次调用过程 proc 的结果分别填于空U 【9】 /U和U 【10】 /U处。Private Sub Command1_Click( ) Dim a A
8、s Integer Dim b As Integer a=2 b=5 Call proc(a, b) U 【9】 /U Call proc(a) U 【10】 /U End Sub Private Sub proc(x As Integer,Optional y) Dim z As Integer If IsMissing(y) Then MsgBox (“没有提供可选参数“) Else z=x*y MsgBox (“乘积=“ + Str(z) End If End Sub(分数:2.00)填空项 1:_44.在窗体上加上一个富文本控件 Rich TextBox,画一个命令按钮,当单击命令按钮
9、的时候,将显示“打开文件”对话框,设置该对话框只用于找开文本文件,然后在富文本控件中显示打开的文件内容。 Private Sub Command1_Click ( ) CommonDialog1. Filter = U 【11】 /U CommonDialog1. ShowOpen RichTextBox1. FileName = U 【12】 /U End Sub(分数:2.00)填空项 1:_45.在窗体上利用菜单编辑器设计一个主菜单项“菜单控制”(Name 属性值为 mnuMenu),然后为其设计一个子菜单项“增加菜单”(Name 属性值为 mnuAdd) 另外设置一个标题为空的菜单项(
10、控件数组),其 Name 属性值为 mnuDyn,Index 值为 0,Visible 属性值为 False;然后编写以下程序来实现增加菜单项的功能。 Dim IndexId As Integer Private Sub mnuAdd_Click( ) Dim mnuCaption As String mnuCaption = InputBox(“请输入菜单项的标题“) IndexId =U 【13】 /U U 【14】 /UmnuDyn(IndexId) mnuDyn(IndexId) . Caption = mnucaption mnuDyn(IndexId) .U 【15】 /U= Tr
11、ue End Sub(分数:2.00)填空项 1:_二级 VISUAL+BASIC 笔试 23 答案解析(总分:90.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.执行下面的程序,输出的结果是 _ 。 Private Sub Command1_Click() ch $ = “Welcome to China!“ n = Len(ch $ ) For i =1 To n-1 s$ =Mid(ch$ ,i,1) If s$ =“o“ Then m=m + 1 Next i Print m End Sub(分数:2.00)A.1B.2 C.8D.0解析:解析 此题
12、的功能是统计字母。在字符串中出现的次数。注意两个字符串函数的使用:Len()求字符中中字符的个数,Mid()是取子串。此题即依次取串中的字符,逐个与字母。进行比较,如果相等,则对计数变量 m 加 1。2.队列适用于下列哪一种应用? _(分数:2.00)A.表达式求值B.堆排序算法的实现C.树的层次次序周游算法的实现 D.二叉树对称序周游算法的实现解析:解析 本题的考查点是队列的应用。选项 A:表达式求值是栈的典型应用;选项 B:堆排序算法的实现是数组的典型应用;选项 C:树的层次次序周游算法的实现是队列的典型应用;选项 D:二叉树对称序周游算法的实现是栈的典型应用。3.在窗体上画一个命令按钮
13、Command1 和两个文本框,名称分别为 Text 1 和 Text 2 Text 2。编写如下两个事件过程: Dim str As String, strl As String Private Sub form_load() Text1. Text = “ “ Text2. Text = “ “ Text1. Enabled = False Text2. Enabled = False End Sub Private Sub Form KeyPress(KeyAscii As Integer) str= str s(分数:2.00)A.0 1B.30 30C.4 30D.3 182 解析:
14、解析 此循环的功能是不断根据表达式修改变量 s 的值,直到其值大于等于 30 才退出循环。变量n 用于记录循环的次数。第一次循环时,s1*22;第二次循环时,s3*412;第三次循环时,s=13*14182,随即退出循环,因此共循环了 3 次,即 n3。29.在结构化设计方法中生成的结构图(SC) 中,带有箭头的连线表示 _ 。(分数:2.00)A.模块之间的调用关系 B.程序的组成成份C.控制程序的执行顺序D.数据的流向解析:解析 结构图中用带有箭头的连线表示模块之间的调用关系。30.设在菜单编辑器中定义了一个菜单项,名为 menul。为了在运行时隐藏该菜单项,应使用的语句是 _ 。(分数:
15、2.00)A.menu Enabled=TrueB.menuEnabledFalseC.menuVisible=TrueD.menuVisibleFalse 解析:解析 Enabled 属性用于设置菜单项是否可用,当设置为 False 时,用户可以看到变灰的菜单项,但是不能单击它。Visible 属性用于设置菜单项是否可见,当设置为 False 时,用户则看不到该菜单项了,故选项 D 正确。31.以下对 Visual Basic 的 Sub 过程的有关描述中,正确的是 _ 。(分数:2.00)A.调用于过程时,只能把实参的值传送给形参,形参的值不能传送给实参B.子过程既可以嵌套定义,又可以递归
16、调用C.子过程没有返回值 D.具有调用关系的所有过程必须放在同一个模块中解析:解析 过程调用时,如果没有用 ByVal 指定参数按传值过程传递,一般是传地址方式,实参的值传送给形参,形参的值如果发生改变,同样会传递给实参,使实参的值也发生变化,故选项 A 错误。而子过程不能嵌套定义,即在一个子过程中定义另一个子过程,选项 B 错误。具有调用关系的所有过程不一定必须放在同一个模块中,比如公用过程就可以被其他模块所调用,故选项 D 错误。子过程不需要返回值,所以选项 C 正确。32.假设在窗体 Form1 上加一个通用对话框控件 CommonDialog1,用语句 CommonDialog1.Sh
17、owOpen 建立打开文件对话框,那么从该对话框中单击“确定”按钮退出对话框时,为了得到用户所选择的文件的路径以及文件名,应该使用 CommonDialog1 的属性是 _ 。(分数:2.00)A.DefaultEXTB.DialogTitleC.FileName D.FileTitle解析:解析 DefaultEXT 属性用于设置对话框中默认文件类型(即扩展名)。DialogTitle 属性用来设置对话框的标题,在默认情况下,“打开”对话框的标题是“打开”,“保存”对话框的标题是“保存”。FileName 属性用来设置或返回要打开或保存的文件的路径及文件名。FileTitle 属性用来指定文
18、件对话框中所选择的文件名(不包括路径),该属性与 FileName 属性的区别是:FileName 属性用来指定完整的路径,而 FileTitle 只指定文件名。33.数据库三级模式体系结构的划分,有利于保持数据库的 _ 。(分数:2.00)A.数据独立性 B.数据安全性C.结构规范化D.操作可行性解析:解析 数据库三级模式包括外模式、模式、内模式。三级模式的两级映像是外模式/模式的映像、模式/内模式的映像。外模式/模式的映像保证逻辑独立性,模式/内模式的映像则保证物理独立性。34.对线性表进行二分法查找,其前提条件是 _ 。(分数:2.00)A.线性表以顺序方式存储,并已按关键码值排好序 B
19、.线性表以顺序方式存储,并已按关键码值的查找频率排好序C.线性表以链接方式存储,并已按关键码值排好序D.线性表以链接方式存储,并已按关键码值的查找频率排好序解析:解析 本题的考查点是二分查找。二分查找又叫做折半查找,其前提条件是:查找表是按关键码值排好序的线性有序表;查找表的存储是采用顺序存储结构。35.一般在数据流程图中,圆圈用来表示 _ 。(分数:2.00)A.外部实体B.变换/加功 C.数据存储D.数据流解析:解析 本题的考查点是数据流程图中各符号的含义。外部实体用方框表示,变换/加功用圆圈表示,数据存储用直线表示,数据流用箭头表示。二、B填空题/B(总题数:10,分数:20.00)36
20、.在一个容量为 25 的循环队列中,若头指针 front=16,尾指针 rear=9,则该循环队列中共有U 【1】 /U个元素。(分数:2.00)填空项 1:_ (正确答案:18)解析:解析 设循环队列的容量为 n。若 rearfront,则循环队列中的元素个数为 rear-front;若rearfront,则循环队列中的元素个数为 n+(rear-front)。题中,front16,rear9,即rearfront,所以,循环队列中的元素个数为 m+(rear-front)=25+(9-16)=1837.在长度为 n 的线性表中查找一个表中不存在的元素,需要的比较次数为U 【2】 /U。(分
21、数:2.00)填空项 1:_ (正确答案:n)解析:解析 在长度为 n 的线性表中查找一个表中不存在的元素,需要的比较次数为 n。38.白盒测试方法重视U 【3】 /U的度量。(分数:2.00)填空项 1:_ (正确答案:测试覆盖率)解析:解析 白盒测试又称为结构测试,它是根据被测程序的逻辑结构设计测试用例的。白盒测试作为对结构的测试,必然要求对被测程序的各种结构特性进行测试。我们把这种情况称为覆盖,故白盒测试又称为“基于覆盖的测试”,白盒测试方法重视测试覆盖率的度量。白盒测试力求提高覆盖率,从而找出被测程序的错误。39.在面向对象方法中,允许作用于某个对象上的操作称为U 【4】 /U。(分数
22、:2.00)填空项 1:_ (正确答案:4方法)解析:解析 在面向对象方法中,方法是指允许作用于某个对象上的各种操作。40.数据模型是数据库系统中用于提供信息表示和操作手段的结构形式。实际数据库系统中斯支持的数据模型主要有层次模型、网状模型和U 【5】 /U3 种。(分数:2.00)填空项 1:_ (正确答案:关系模型)解析:解析 数据模型是数据库系统中用于提供信息表示和操作手段的结构形式。数据模型指的是数据库的组织形式,它决定了数据库中数据之间联系的表达方式。在数据库中正是用数据模型来对现实世界进行抽象并表示成为能被计算机存取的数据, 在数据库系统设计时,首先要确定系统支持的数据模型的类型,
23、从而根据实际情况建立适合某种数据模型的数据库。数据库管理系统所支持的 3 种主要传统数据模型是:层次模型、网状模型和关系模型。其中层次模型和网状模型又统称为格式化模型(或非关系模型),早期的数据库系统都是按照格式化模型建立的。41.如果在菜单标题的某个字母前面输入一个字符“U 【6】 /U”,就会使该字母成为热键字母;如果建立菜单时,在标题文本框中输入一个字符“U 【7】 /U”,那么菜单显示时就会形成一行分隔符。(分数:2.00)填空项 1:_ (正确答案:6& 7一)解析:解析 在菜单标题的某个字母前面输入一个字符“&”,就会使该字母成为热键字母,在建立菜单时,在标题文本框中输入一个折线字
24、符“一”(也可以输入一段所需长度的下划线“_”),那么菜单显示时就会形成一行分隔符。42.如果要在文本框中显示垂直滚动条,则必须把U 【8】 /U属性设置为 2,同时还应把Multiline 属性设置为 True。(分数:2.00)填空项 1:_ (正确答案:Scrollbars)解析:解析 滚动条分为水平滚动条(Hscroll)和垂直滚动条(Vscroll)。滚动条是 Visual Basic 的标准控件,可以直接通过工具箱中的水平滚动条和垂直滚动条工具来建立。要得到垂直滚动条,把Scrollbars 属性设置为 2,并且应当设置为多行显示状态。43.有如下过程,将两次调用过程 proc 的
25、结果分别填于空U 【9】 /U和U 【10】 /U处。Private Sub Command1_Click( ) Dim a As Integer Dim b As Integer a=2 b=5 Call proc(a, b) U 【9】 /U Call proc(a) U 【10】 /U End Sub Private Sub proc(x As Integer,Optional y) Dim z As Integer If IsMissing(y) Then MsgBox (“没有提供可选参数“) Else z=x*y MsgBox (“乘积=“ + Str(z) End If End
26、Sub(分数:2.00)填空项 1:_ (正确答案:9乘积:10 10没有提供可选参数)解析:解析 本题中出现了可选参数,注意函数 IsMissing()的使用。空9处的调用语句的结果是显示“乘积 10”空10处调用的结果是显示“没有提供可选参数”。显然,第二次调用中,由于第二个可选参数默认,使 IsMissing()函数的值为 True,才使程序流程进入 Then 子句的分支。 在没有指定可选参数的默认值时,可选参数的默认值被默认为变体类型的 Empty 值。当然,用户也可以提供可选参数的默认值,指定方式是在用 Optional 声明的形式参数后面用“”号赋默认值。指定默认值后,即使没有提供
27、可选参数,函数 IsMissing()的值均为 False,因为程序把指定的默认值默认为可选参数的值,因而没有丢失。将上例稍加修改,在可选参数 y 后为其指定默认值 1。 Private Sub proc(x As Integer,Optional y1) 空10处调用的结果变为显示“乘积=2”。显然,第二次调用中,虽然第二个可选参数默认,但将默认值 1 作为形式参数 y 的初值。从 If 语句分支的进入情况可以看出,该次调用中IsMissing()函数的值为 False,才使程序流程进入 Else 子句的分支。44.在窗体上加上一个富文本控件 Rich TextBox,画一个命令按钮,当单击
28、命令按钮的时候,将显示“打开文件”对话框,设置该对话框只用于找开文本文件,然后在富文本控件中显示打开的文件内容。 Private Sub Command1_Click ( ) CommonDialog1. Filter = U 【11】 /U CommonDialog1. ShowOpen RichTextBox1. FileName = U 【12】 /U End Sub(分数:2.00)填空项 1:_ (正确答案:11“Text Files(*.txt)|*.txt“ 12CommonDialogl.FileName)解析:解析 要设置通用对话框只用于打开文本文件,需要设置通用对话框控件的
29、 Filter 属性值,在这里应该是“Text Files(*,txt)|*.txt“,在使用了对话框控件的 ShowOpen 后,出现的打开文件对话框中的文件类型只有 Text Files(*.txt),选择了需要打开的文本文件后,应该让文件的内容显示在富文本框中,因此需要将通用(打开文件)对话框中选择的文件(包括文件路径和文件名,即 FileName 的值)赋给富文本控件。45.在窗体上利用菜单编辑器设计一个主菜单项“菜单控制”(Name 属性值为 mnuMenu),然后为其设计一个子菜单项“增加菜单”(Name 属性值为 mnuAdd) 另外设置一个标题为空的菜单项(控件数组),其 Na
30、me 属性值为 mnuDyn,Index 值为 0,Visible 属性值为 False;然后编写以下程序来实现增加菜单项的功能。 Dim IndexId As Integer Private Sub mnuAdd_Click( ) Dim mnuCaption As String mnuCaption = InputBox(“请输入菜单项的标题“) IndexId =U 【13】 /U U 【14】 /UmnuDyn(IndexId) mnuDyn(IndexId) . Caption = mnucaption mnuDyn(IndexId) .U 【15】 /U= True End Sub(分数:2.00)填空项 1:_ (正确答案:13Indexld+1 14Load 15Visible)解析:解析 单击 mnuAdd 菜单项后,首先弹出输入对话框,要求输入新增加的菜单项的标题,接下来是给变量 Indexld 赋值,菜单控件数组 mnuDyn 最初其数组下标 Index 为 0,每增加一个菜单项,则该控件数组的下标应该加 1,以指向下一个数组中的下一个控件(菜单)。在解决了下标问题之后,就可将菜单项装载进内存(用于装载控件的语句是 Load),然后将输入的新菜单项的标题赋给该菜单项,最后使得该菜单项可见,即将其 Visible 属性设置为 True。