1、国家二级(VB)机试模拟试卷 173 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下列数据结构中,不能采用顺序存储结构的是( )。(分数:2.00)A.非完全二叉树B.堆C.队列D.栈2.下列叙述中错误的是( )。(分数:2.00)A.二叉链表是二叉树的存储结构B.循环链表是循环队列的存储结构C.栈是线性结构D.循环队列是队列的存储结构3.设一棵树的度为 4,其中度为 4,3,2,1 的结点个数分别为 2,3,3,0。则该棵树中的叶子结点数为( )。(分数:2.00)A.16B.15C.17D.不可能有这样的树4.循环队列的存储空间为 Q
2、(1:100),初始状态为 front=rear=100。经过一系列正常的入队与退队操作后,front=rear=99,则循环队列中的元素个数为( )。(分数:2.00)A.1B.2C.99D.0 或 1005.某系统结构图如下图所示 (分数:2.00)A.5B.4C.2D.l6.软件测试用例包括( )。(分数:2.00)A.被测程序和测试规程B.测试计划和测试数据C.输入数据和预期输出结果D.输入数据和输出数据7.软件生存周期中,解决软件“怎么做”的阶段是( )。(分数:2.00)A.软件设计B.需求分析C.软件测试D.可行性研究8.用树型结构表示实体之间联系的模型是( )。(分数:2.00
3、)A.关系模型B.层次模型C.网状模型D.运算模型9.关系数据模型的三个组成部分中不包括( )。(分数:2.00)A.关系的完整性约束B.关系的数据操纵C.关系的数据结构D.关系的并发控制10.现有表示患者和医疗的关系如下:P(P#,Pn,Pg,By),其中 P#为患者编号,Pn 为患者姓名,Pg 为性别,By 为出生日期,Tr(P#,D#,Date,Rt),其中 D#为医生编号,Date 为就诊日期,Rt 为诊断结果。检索在 1 号医生处就诊的病人姓名的表达式是( )。(分数:2.00)A. Pn P# ( D#=1 (Tr) B. P# ( D#=1 (Tr)C. Pn (P)D. Pn
4、(Tr 11.下列 Visual Basic 变量名中,正确的是( )。(分数:2.00)A.tag_IntegerB.DimC.2_numD.Print-n12.下列 Visual Basic 函数中,计算结果为字符串型的是( )。(分数:2.00)A.lnStrB.ValC.TilmD.Sgn13.使用 Open 语句可以打开或建立文件,并同时指定文件的输入输出方式。下列输入输出方式中错误的是( )。(分数:2.00)A.RandomB.OutputC.SequentialD.Append14.以下叙述中,错误的是( )。(分数:2.00)A.缺省状态下,启动 Visual Basic 后
5、,可在工具箱窗口中找到通用对话框控件的图标B.通用对话框显示的对话框类型可以通过 Action 属性设置C.通用对话框显示的对话框类型可以通过相应的方法进行设置D.程序运行时,通用对话框控件不可见15.表示“x+y 小于 10 且 xy 大于或等于 6”的 Visual Basic 表达式是( )。(分数:2.00)A.x+y=6 num=x*y Print“num=“:num x=x+y y=y+x Loop End Sub 下列程序代码仅修改了循环语句,循环体未变,其中运行结果不变的是( )。(分数:2.00)A.Private Sub Form_Click() Dim x As Inte
6、ger,y As Integer,mim As Integer x=3 y=x Do While xB.Private Sub Form_Click() Dim x As Integer,y As Integer,num As Integer x=3 y=x Do Until x6 num=x*y Print“num=“:num x=x+y y=y+x Loop End SubC.Private Sub Form_Click() Dim x As Integer,y As Integer,num As Integer x=3 y=x Do While x=6 num=x*y Print“num
7、=“:nun x=x+y y=y+x Loop End Sub35.编写如下程序代码: Option Base 1 Private Sub Form_Click() Dim xt Dim i As Integer Dim n As Integer x=Array(一 8,20,15,10,一 30,13,17) n=UBound(x) For i=1 To n2 t=x(i) X(i)=x(ni+1) x(ni+1)=t Next i Print x(n) End Sub 当程序运行时,单击窗体产生的输出结果为( )。(分数:2.00)A.20B.17C.lOD.一 836.在窗体上画三个名称
8、分别为 Text1、List1 和 Command1 的文本框、列表框和命令按钮,且 List1 中有若干列表项,Text1 的内容为空,然后编写如下事件过程: Private Sub Command1_Click() Dim i As Integer If Text1Text=“Then Exit Sub End If If List1ListIndex一 1 Then List1List(List1ListIndex)=Text1Text Else List1Addhem Text1Text End If Text1Text=“ End Sub 以下叙述中正确的是( )。(分数:2.00)
9、A.程序的功能是从 List1 中删除一个列表项B.程序的功能是把 List1 中选中的列表项内容显示在 Text1 中C.程序的功能是将 Text1 中的文本添加到 List1 中选中的列表项之后D.程序运行时,如果 Text1 中没有输入任何文本,则单击 Command1 时程序不进行其他操作37.在窗体上画一个名称为 Command1 的命令按钮,编写如卜程序代码 Private Type Student sn As String*10 class As String*20 score As Double End Type Private Sub Command1_Click() Dim
10、 s As Student Dim s1 As Student Open“C:Scorelistdat“For Random As #1 Len=Len(s) ssn=“张一帆“ sclass=“计 20141 班“ sscore=90 Put #1,s Close #1 End Sub 以下叙述中正确的是( )。(分数:2.00)A.若文件 C:Scorelistdat 已存在并且有记录,单击命令按钮,可以修改文件中的一条记录B.若文件 C:Scorelistdat 不存在,则 Open 语句执行中出现“文件未找到”的错误C.文件 C:Scorelistdat 中的每条记录长度可以不同,但记
11、录最长为 Len(s)D.定义记录类型 Student 的 Type 语句可以移到事件过程 Command1_Click 中38.有下面事件过程: Private Sub Command l Click() a=5 b=8 For k=1 To 30 c=b-a a=b b=c Next k Print c End Sub 上面事件过程执行后产生的输出是( )。(分数:2.00)A.3B.8C.一 5D.一 839.函数 fun 如下: Private Function fun(ch As String)As Integer Dim n,st$,C$ For k=1 To Len(ch) C=
12、Mid(ch,k,1) If c“A“Then st=st&C Else n=n+1 End If Next k ch=st fun=n End Function 函数的功能是( )。(分数:2.00)A.从字符串 ch 中删除所有字符“A”,返回值为删除的个数B.从字符串 ch 中删除所有字符“A”,返回值为删除后的字符串C.统计字符串 ch 中字符“A”的个数并返回D.把字符串 ch 中不等于“A”的字符都改成“A”,返回值为修改的个数40.窗体上有 1 个名称为 List1 的列表框,其中有若干列表项,并有下面程序代码: Private Sub List1_DblClick() Exch
13、ange List1List1ListIndex End Sub Private Sub Exchange(Source As ListBox,k As Integer) k=SourceListIndex ch=SourceList(k) SourceRemovehem k SourceAddItem SourceList(SourceListCount 一 1),k SourceRemoveItem SourceListCount一 1 SourceAddltem eh End Sub 程序运行后,双击某个列表项,产生的结果是( )。(分数:2.00)A.被双击的列表项与最后一个列表项互换
14、位置B.被双击的列表项被删除C.被双击的列表项移到最前面D.被双击的列表项移到最后面二、基本操作题(总题数:1,分数:2.00)41.(1)在名称为 Form1 的窗体上添加一个名称为 Shape1 的形状控件,要求在属性窗口中将其形状设置为椭圆,其短轴(垂直方向)、长轴(水平方向)的长度分别为 800、1600。把窗体的标题改为“Shape 控件”,窗体上无最大化、最小化按钮。程序运行后的窗体如图所示。 注意:存盘时必须存放在考生文件夹下,工程文件名保存为 sjt1vbp,窗体文件名保存为 sjt1frm。 (2)在名称为 Form1 的窗体上添加一个名称为 HS 的水平滚动条,最大值为 1
15、00,最小值为 1。再添加一个名称为 List1 的列表框,在属性窗口中输入列表项的值,分别是 1000、1500、2000,如图所示。请编写适当的程序,使得运行程序时,将水平滚动条的长度改变为所选中列表框中的某一项的值。要求程序中不得使用变量,每个事件过程中只能写一条语句。注意:存盘时必须存放在考生文件夹下,工程文件名保存为 sjt!vbp,窗体文件名保存为sjt!frm。 (分数:2.00)_三、简单应用题(总题数:1,分数:2.00)42.(1)在考生文件夹下有一个工程文件 sjt3vbp,相应的窗体文件为 sjt3frm。其功能是随机产生 20个 01000 的整数,将其放入一个数组中
16、,然后输出这 20 个整数的平均值。程序运行后,单击命令按钮(名称为 Command1,标题为“输出平均值”),即可求出其平均值,并显示在窗体上(如图所示)。这个程序不完整,请把它补充完整,并能正确运行。 要求:去掉程序中的注释符,把程序中的?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后将修改后的文件按原文件名存盘。 (分数:2.00)_四、综合应用题(总题数:1,分数:2.00)43.在考生文件夹下有一个工程文件 sjt5vbp,相应的窗体文件为 sjt5frm,此外还有一个名为dataintxt 的文本文件,其内容如下: 32 43 78 58 28 12 98 57
17、 31 42 53 64 75 86 97 13 24 35 46 57 68 79 80 59 37 程序运行后,单击窗体,将把文件 dataintxt 中的数据输入到二维数组 Mat 中,按 5 行、5 列的矩阵形式显示在窗体上,并输出矩阵左上一右下对角线上的数据,如图所示。在窗体的代码窗口中已给出了部分程序,这个程序不完整,请把它补充完整,并能正确运行。 要求:去掉程序中的注释符,把程序中的?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后将修改后的文件按原文件名存盘。 (分数:2.00)_国家二级(VB)机试模拟试卷 173 答案解析(总分:86.00,做题时间:90
18、 分钟)一、选择题(总题数:40,分数:80.00)1.下列数据结构中,不能采用顺序存储结构的是( )。(分数:2.00)A.非完全二叉树 B.堆C.队列D.栈解析:解析:根据完全二叉树的性质 6,满二叉树和完全二叉树可以按层序进行顺序存储,但对一般的二叉树不适用。堆可以用一维数组来存储,也可以用完全二叉树来直观地表示堆的结构。队列、栈本身就是顺序存储的。故本题答案为 A 选项。2.下列叙述中错误的是( )。(分数:2.00)A.二叉链表是二叉树的存储结构B.循环链表是循环队列的存储结构 C.栈是线性结构D.循环队列是队列的存储结构解析:解析:循环队列是队列的一种顺序存储结构,用队尾指针 re
19、ar。指向队列中的队尾元素,用排头指针 front 指向排头元素的前一个位置。循环链表是用不连续的存储单元存储数据,它有一个表头结点,队头指针指向表头结点,最后一个结点的指针域指向表头结点。二叉链表是树的二叉链表实现方式。栈是一种特殊存取方式的线性表。故本题答案为 B 选项。3.设一棵树的度为 4,其中度为 4,3,2,1 的结点个数分别为 2,3,3,0。则该棵树中的叶子结点数为( )。(分数:2.00)A.16 B.15C.17D.不可能有这样的树解析:解析:根据题目,树的结点数=42+33+23+10+根结点=8+9+6+0+1=24,即总结点数为 24,总结点数减去度不为 0 的结点数
20、即是叶子结点,24 一(2+3+3)=16。故本题答案为 A 选项。4.循环队列的存储空间为 Q(1:100),初始状态为 front=rear=100。经过一系列正常的入队与退队操作后,front=rear=99,则循环队列中的元素个数为( )。(分数:2.00)A.1B.2C.99D.0 或 100 解析:解析:在循环队列中,用队尾指针 rear 指向队列中的队尾元素,用排头指针 front 指向排头元素的前一个位置。在循环队列中进行出队、入队操作时,头尾指针仍要加 1,朝前移动。只不过当头尾指针指向向量上界时,其加 1 操作的结果是指向向量的下界 0。由于入队时尾指针向前追赶头指针,出队
21、时头指针向前追赶尾指针,故队空和队满时,头尾指针均相等。故本题答案为 D 选项。5.某系统结构图如下图所示 (分数:2.00)A.5 B.4C.2D.l解析:解析:系统结构图的宽度指整体控制跨度(横向最大模块数)的表示。本题中,模块数最多的是第 3层,即“功能 XX”的模块个数就是宽度,有 5 个。故本题答案为 A 选项。6.软件测试用例包括( )。(分数:2.00)A.被测程序和测试规程B.测试计划和测试数据C.输入数据和预期输出结果 D.输入数据和输出数据解析:解析:测试用例(Test Case)是为测试设计的数据,由测试输入数据和与之对应的预期输出结构两部分组成。故本题答案为 C 选项。
22、7.软件生存周期中,解决软件“怎么做”的阶段是( )。(分数:2.00)A.软件设计 B.需求分析C.软件测试D.可行性研究解析:解析:软件设计是软件工程的重要阶段,是一个把软件需求转换为软件表示的过程。软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,即解决软件“怎么做”的问题。故本题答案为 A 选项。8.用树型结构表示实体之间联系的模型是( )。(分数:2.00)A.关系模型B.层次模型 C.网状模型D.运算模型解析:解析:用树形结构表示实体及其之间联系的模型称为层次模型。在层次模型中,结点是实体,树枝是联系,从上到下是一对多的关系。故本题答案为 B 选项。9.关系数
23、据模型的三个组成部分中不包括( )。(分数:2.00)A.关系的完整性约束B.关系的数据操纵C.关系的数据结构D.关系的并发控制 解析:解析:关系数据模型的三个组成部分:数据结构,操作集合(数据操纵),完整性约束。故本题答案为 D 选项。10.现有表示患者和医疗的关系如下:P(P#,Pn,Pg,By),其中 P#为患者编号,Pn 为患者姓名,Pg 为性别,By 为出生日期,Tr(P#,D#,Date,Rt),其中 D#为医生编号,Date 为就诊日期,Rt 为诊断结果。检索在 1 号医生处就诊的病人姓名的表达式是( )。(分数:2.00)A. Pn P# ( D#=1 (Tr) B. P# (
24、 D#=1 (Tr)C. Pn (P)D. Pn (Tr 解析:解析: 表示投影运算,针对属性; 表示选择运算,针对元组; 表示自然连接。首先在Tr 表中选择 D#为 1 的记录 D#=1 (Tr),并检索这些记录中患者的编号 P# ( D#=1 (Tr),检索结果与表 P 进行自然连接生成中间表 P# ( D#=1 (Tr) P,最后在中间表中检索患者的姓名 Pn ( P# ( D#=1 (Tr) 11.下列 Visual Basic 变量名中,正确的是( )。(分数:2.00)A.tag_Integer B.DimC.2_numD.Print-n解析:解析:在 Visual Basic 中
25、给变量命名时应遵循以下规则:(1)变量名只能由字母、数字和下画线组成;(2)变量名的第一个字符必须是英文字母,最后一个字符可以是类型说明符;(3)变量名的长度不能超过 255 个字符;(4)不能使用 Visual Basic 的保留字作为变量名。本题中 B 选项为 Visual Basic 的保留字;C 选项以数字开头;D 选项含有非法字符“一”。本题选择 A 选项。12.下列 Visual Basic 函数中,计算结果为字符串型的是( )。(分数:2.00)A.lnStrB.ValC.Tilm D.Sgn解析:解析:Instr(首字符位置,字符串 1,字符串 2,n)函数:该函数在“字符串
26、1”中查找“字符串 2”,如果找到了,则返回“字符串 2”的第一个字符在“字符串 1”中出现的位置;Val(x)函数:用来将字符串转换为数值;Trim$(字符串)函数:用来删除“字符串”两边的空白字符,其返回值为删除掉“字符串”前部和尾部空格后的字符串;sgn(x)函数:返回自变量 x 的符号:故本题 C 选项返回值为字符串,符合题意。奉题选择 C 选项。13.使用 Open 语句可以打开或建立文件,并同时指定文件的输入输出方式。下列输入输出方式中错误的是( )。(分数:2.00)A.RandomB.OutputC.Sequential D.Append解析:解析:使用 Open 语句可以打开
27、或建立文件,并同时指定文件的输入输出方式,可以是下述操作之一: Output:指定顺序输出方式。 Input:指定顺序输入方式。 Append:指定顺序输出方式,与Output 不同的是,当用 Append 方式打开文件时,文件指针被定位在文件末尾。 Random:指定随机存取方式,也是默认方式。 Binary:指定以二进制方式打开文件。 故本题 C 选项不是文件的输入输出方式。本题选择 C 选项。14.以下叙述中,错误的是( )。(分数:2.00)A.缺省状态下,启动 Visual Basic 后,可在工具箱窗口中找到通用对话框控件的图标 B.通用对话框显示的对话框类型可以通过 Action
28、 属性设置C.通用对话框显示的对话框类型可以通过相应的方法进行设置D.程序运行时,通用对话框控件不可见解析:解析:通用对话框是一种 ActiveX 控件,它随同 Visual Basic 提供给程序设计人员。在一般情况下,启动 VisualBasic 后,在工具箱中没有通用对话框控件。为了把通用对话框控件加入到工具箱中,可以使用“工程”菜单中的“部件”对话框将通用对话框控件引入工具箱中,A 选项叙述错误;对话框的类型可以通过 Action 属性设置,也可以用相应的方法设置,B、C 选项叙述正确;在程序设计阶段,通用对话框按钮以图标形式显示,不能调整其大小,程序运行后消失,D 选项叙述正确,故本
29、题 A 选项叙述有误。本题选择 A 选项。15.表示“x+y 小于 10 且 xy 大于或等于 6”的 Visual Basic 表达式是( )。(分数:2.00)A.x+y=6 num=x*y Print“num=“:num x=x+y y=y+x Loop End Sub 下列程序代码仅修改了循环语句,循环体未变,其中运行结果不变的是( )。(分数:2.00)A.Private Sub Form_Click() Dim x As Integer,y As Integer,mim As Integer x=3 y=x Do While xB.Private Sub Form_Click()
30、Dim x As Integer,y As Integer,num As Integer x=3 y=x Do Until x6 num=x*y Print“num=“:num x=x+y y=y+x Loop End SubC.Private Sub Form_Click() Dim x As Integer,y As Integer,num As Integer x=3 y=x Do While x=6 num=x*y Print“num=“:nun x=x+y y=y+x Loop End Sub解析:解析:题目中定义的循环变量 x 的初始值为 3,在 Do Until 循环结构中,当条
31、件表达式的结果为假时执行循环体,直到条件表达式的结果为真时,结束循环。第一次判断循环条件表达式“x=6”,条件为假,执行循环体语句,执行完循环体语句后,循环变量 x 的值为 6;第二次判断循环条件表达式“x=6”,条件为真,循环结束,故题目中的循环体值会被执行一次。A 选项中使用 Do While 循环结构,当循环条件表达式为真时执行循环体,当条件表达式的结果为假时,结束循环,A 选项循环体语句只执行一次,所以它与题目中循环执行一致;B 选项中循环体执行两次;C 选项中循环体执行两次;D 选项中循环体执行两次。A 选项符合题意。本题选择 A 选项。35.编写如下程序代码: Option Bas
32、e 1 Private Sub Form_Click() Dim xt Dim i As Integer Dim n As Integer x=Array(一 8,20,15,10,一 30,13,17) n=UBound(x) For i=1 To n2 t=x(i) X(i)=x(ni+1) x(ni+1)=t Next i Print x(n) End Sub 当程序运行时,单击窗体产生的输出结果为( )。(分数:2.00)A.20B.17C.lOD.一 8 解析:解析:在程序开始之前,使用 Option Base 1 语句声明数组下标从 1 开始。在 Form_Click 事件过程中定
33、义了默认数组 x,然后使用 Array 函数给数组元素赋值,UBound 函数可以获得数组下标的上限值,然后赋值给变量 n,n=7。在 For 循环中变量 i 的初始值为 1 终止值为 n2,For 循环体语句的功能是对数组首尾两个数进行互换,循环结束后数组中的元素依次为(17,13,一 30,10,15,20,一 8),故最后输出 x(n)的值为数组最后一个元素的值,D 选项正确。本题选择 D 选项。36.在窗体上画三个名称分别为 Text1、List1 和 Command1 的文本框、列表框和命令按钮,且 List1 中有若干列表项,Text1 的内容为空,然后编写如下事件过程: Priv
34、ate Sub Command1_Click() Dim i As Integer If Text1Text=“Then Exit Sub End If If List1ListIndex一 1 Then List1List(List1ListIndex)=Text1Text Else List1Addhem Text1Text End If Text1Text=“ End Sub 以下叙述中正确的是( )。(分数:2.00)A.程序的功能是从 List1 中删除一个列表项B.程序的功能是把 List1 中选中的列表项内容显示在 Text1 中C.程序的功能是将 Text1 中的文本添加到 L
35、ist1 中选中的列表项之后D.程序运行时,如果 Text1 中没有输入任何文本,则单击 Command1 时程序不进行其他操作 解析:解析:程序运行前 Text1 文本框中的内容为空,当 Command1_Click 事件过程执行时,if 语句判断Text1 为空,条件成立,执行语句 Exit sub,过程被提前结束,后续语句将不会被执行,所以本题 D 选项叙述正确。本题选择 D 选项。37.在窗体上画一个名称为 Command1 的命令按钮,编写如卜程序代码 Private Type Student sn As String*10 class As String*20 score As D
36、ouble End Type Private Sub Command1_Click() Dim s As Student Dim s1 As Student Open“C:Scorelistdat“For Random As #1 Len=Len(s) ssn=“张一帆“ sclass=“计 20141 班“ sscore=90 Put #1,s Close #1 End Sub 以下叙述中正确的是( )。(分数:2.00)A.若文件 C:Scorelistdat 已存在并且有记录,单击命令按钮,可以修改文件中的一条记录 B.若文件 C:Scorelistdat 不存在,则 Open 语句执行
37、中出现“文件未找到”的错误C.文件 C:Scorelistdat 中的每条记录长度可以不同,但记录最长为 Len(s)D.定义记录类型 Student 的 Type 语句可以移到事件过程 Command1_Click 中解析:解析:在 Open 语句中指定文件的访问方式为输出(0utput)、附加(Append)或随机(Random),若打开的文件不存在,则建立相应的文件。本题中指定的访问方式为 Random,所以 B 选项叙述错误;对于用随机访问方式打开的文件,其每个记录的长度必须是相同的,C 选项叙述错误;记录类型的定义必须放在模块(包括标准模块和窗体模块)的声明部分,D 选项叙述错误,本
38、题 A 选项叙述正确。本题选择 A 选项。38.有下面事件过程: Private Sub Command l Click() a=5 b=8 For k=1 To 30 c=b-a a=b b=c Next k Print c End Sub 上面事件过程执行后产生的输出是( )。(分数:2.00)A.3B.8 C.一 5D.一 8解析:解析:程序开始时,变量 a 赋值为 5,变量 b 赋值为 8;For 循环一共执行 30 次,循环执行过程中各变量的值如下表所示:39.函数 fun 如下: Private Function fun(ch As String)As Integer Dim n,
39、st$,C$ For k=1 To Len(ch) C=Mid(ch,k,1) If c“A“Then st=st&C Else n=n+1 End If Next k ch=st fun=n End Function 函数的功能是( )。(分数:2.00)A.从字符串 ch 中删除所有字符“A”,返回值为删除的个数 B.从字符串 ch 中删除所有字符“A”,返回值为删除后的字符串C.统计字符串 ch 中字符“A”的个数并返回D.把字符串 ch 中不等于“A”的字符都改成“A”,返回值为修改的个数解析:解析:fun 函数中字符串变量 ch 作为形参,函数的返回值类型为整型,For 循环中循环变
40、量 k 的初始值为 1 终止值为字符串的长度,每当循环执行一次时,将字符串 ch 中的一个字符取出赋值给字符变量c,然后使用 if 语句判断取出的字符是否等于字符“A”,若取出的字符不是“A”,则将该字符放入字符串 st 中,若取出的字符是“A”,则将变量 n 的值加 1;由程序可知 for 循环的功能是:将字符串 ch 中非“A”字符存放到字符串变量 st 中,并对字符串 ch 中“A”字符的个数进行计数,故本题 A 选项叙述正确。本题选择 A 选项。40.窗体上有 1 个名称为 List1 的列表框,其中有若干列表项,并有下面程序代码: Private Sub List1_DblClick
41、() Exchange List1List1ListIndex End Sub Private Sub Exchange(Source As ListBox,k As Integer) k=SourceListIndex ch=SourceList(k) SourceRemovehem k SourceAddItem SourceList(SourceListCount 一 1),k SourceRemoveItem SourceListCount一 1 SourceAddltem eh End Sub 程序运行后,双击某个列表项,产生的结果是( )。(分数:2.00)A.被双击的列表项与最后
42、一个列表项互换位置 B.被双击的列表项被删除C.被双击的列表项移到最前面D.被双击的列表项移到最后面解析:解析:在 List_DblClick 过程中调用 Exchange 过程,并将控件对象 List1 作为参数传递给Exchange 过程,在调用含有对象的过程时,对象是通过传地址的方式进行传递。在 Exchange 过程中执行如下操作步骤: 第一步:变量 k 保存 List1 列表框中已选中表项的位置 第二步:变量 ch 用来保存被选中列表项的内容 第三步:使用列表框的 Removehem 方法将列表框中已选中列表项的内容移除 第四步:通过 Addltem 方法将列表框最后一项的内容放置于
43、已选中表项的位置 第五步:将列表框的最后一项内容移除 第六步:将第二步中变量 ch 中保存的内容放置到列表框的最后一项 根据上述操作步骤可知,过程Exchange 的功能是当双击列表框中的某一表项时,将该表项内容与最后一项内容进行交换,故 A 选项叙述正确。本题选择 A 选项。二、基本操作题(总题数:1,分数:2.00)41.(1)在名称为 Form1 的窗体上添加一个名称为 Shape1 的形状控件,要求在属性窗口中将其形状设置为椭圆,其短轴(垂直方向)、长轴(水平方向)的长度分别为 800、1600。把窗体的标题改为“Shape 控件”,窗体上无最大化、最小化按钮。程序运行后的窗体如图所示
44、。 注意:存盘时必须存放在考生文件夹下,工程文件名保存为 sjt1vbp,窗体文件名保存为 sjt1frm。 (2)在名称为 Form1 的窗体上添加一个名称为 HS 的水平滚动条,最大值为 100,最小值为 1。再添加一个名称为 List1 的列表框,在属性窗口中输入列表项的值,分别是 1000、1500、2000,如图所示。请编写适当的程序,使得运行程序时,将水平滚动条的长度改变为所选中列表框中的某一项的值。要求程序中不得使用变量,每个事件过程中只能写一条语句。注意:存盘时必须存放在考生文件夹下,工程文件名保存为 sjt!vbp,窗体文件名保存为sjt!frm。 (分数:2.00)_正确答
45、案:(正确答案:(1)步骤 1:按题目要求添加控件,并设置其属性。程序中用到的控件及属性见表1。 步骤 2:调试并运行程序,关闭程序后按题目要求存盘。 (2)步骤 1:程序中用到的控傣及属性见表 2。 )解析:解析:(1)MaxButton 属性:确定标题栏是否显示最大化按钮,MinButton 属性:确定标题栏是否显示最小化按钮。 (2)List1 Click 事件过程中,使滚动条的 Width 属性值等于列表框的 Text 属性值,那么当选择列表框中的某一项,就将水平滚动条的长度改变为所选中的值。三、简单应用题(总题数:1,分数:2.00)42.(1)在考生文件夹下有一个工程文件 sjt3
46、vbp,相应的窗体文件为 sjt3frm。其功能是随机产生 20个 01000 的整数,将其放入一个数组中,然后输出这 20 个整数的平均值。程序运行后,单击命令按钮(名称为 Command1,标题为“输出平均值”),即可求出其平均值,并显示在窗体上(如图所示)。这个程序不完整,请把它补充完整,并能正确运行。 要求:去掉程序中的注释符,把程序中的?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后将修改后的文件按原文件名存盘。 (分数:2.00)_正确答案:(正确答案:(1)步骤 1:打开本题工程文件。 步骤 2:分析并编写程序代码。 程序提供代码 Option Base 1
47、Private Sub Command1_Click() Dim arrN(20)As Integer Dim Aver As Single Dim Sum As Integer,i Randomize For i=1 To 20 arrN(i)=Int(Rnd?) Next i Sum=7 For i=1 To 20 Sum=? Next i Aver=? Print Avet End Sub 程序结束 参考答案 第 1 个?处填入:1000 第 2 个?处填入:0 第3 个?处填入:Sum+arrN(i) 第 4 个?处填入:Sum20 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 (2)步骤 1:打开本题工程文件。 步骤 2:分析并编写程序代码。 程序提供代码 Sub SaveData() Open AppPath“&“outtxttxt”For Output As #1 Print#1Text1Text Close#1 End Sub Function Fun() End Function Private Sub Command1_Click() d=Fun() Text1Text=d SaveData End Sub 程序结束 参考答案 Function Fun() Dim s As Integer,i