首页 理论教育无纸化考试试卷增加+计算机二级VB模拟考场改造

无纸化考试试卷增加+计算机二级VB模拟考场改造

【摘要】:A 通用对话框是一种ActiveX控件,它随同Visual Basic提供给程序设计人员。在一般情况下,启动Visual Basic后,在工具箱中没有通用对话框控件。B 在Visual Basic环境中,程序可以以解释的方式执行,也可以生成可执行文件,故B选项叙述错误,其他三项叙述均正确。

一、选择题

(1)A 【解析】根据完全二叉树的性质6,满二叉树和完全二叉树可以按层序进行顺序存储,但对一般的二叉树不适用。堆可以用一维数组来存储,也可以用完全二叉树来直观地表示堆的结构。队列、栈本身就是顺序存储的。故本题答案为A选项。

(2)B 【解析】循环队列是队列的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。循环链表是用不连续的存储单元存储数据,它有一个表头结点,队头指针指向表头结点,最后一个结点的指针域指向表头结点。二叉链表是树的二叉链表实现方式。栈是一种特殊存取方式的线性表。故本题答案为B选项。

(3)A 【解析】根据题目,树的结点数=4×2+3×3+2×3+1×0+根结点=8+9+6+0+1=24,即总结点数为24,总结点数减去度不为0的结点数即是叶子结点,24-(2+3+3)=16。故本题答案为A选项。

(4)D 【解析】在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。在循环队列中进行出队、入队操作时,头尾指针仍要加1,朝前移动。只不过当头尾指针指向向量上界时,其加1操作的结果是指向向量的下界0。由于入队时尾指针向前追赶头指针,出队时头指针向前追赶尾指针,故队空和队满时,头尾指针均相等。故本题答案为D选项。

(5)A 【解析】系统结构图的宽度指整体控制跨度(横向最大模块数)的表示。本题中,模块数最多的是第3层,即“功能X.X”的模块个数就是宽度,有5个。故本题答案为A选项。

(6)C 【解析】测试用例(Test Case)是为测试设计的数据,由测试输入数据和与之对应的预期输出结构两部分组成。故本题答案为C选项。

(7)A 【解析】软件设计是软件工程的重要阶段,是一个把软件需求转换为软件表示的过程。软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,即解决软件“怎么做”的问题。故本题答案为A选项。

(8)B 【解析】用树形结构表示实体及其之间联系的模型称为层次模型。在层次模型中,结点是实体,树枝是联系,从上到下是一对多的关系。故本题答案为B选项。

(9)D 【解析】关系数据模型的三个组成部分:数据结构,操作集合(数据操纵),完整性约束。故本题答案为D选项。

(10)A 【解析】π表示投影运算,针对属性;σ表示选择运算,针对元组;▷◁表示自然连接。首先在Tr表中选择D#为1的记录σD#=1(Tr),并检索这些记录中患者的编号πP#(σD#=1(Tr)),检索结果与表P进行自然连接生成中间表πP#(σD#=1(Tr))▷◁P,最后在中间表中检索患者的姓名πPn(πP#(σD#=1(Tr))▷◁P)。故本题答案为A选项。

(11)A 【解析】在Visual Basic中给变量命名时应遵循以下规则:(1)变量名只能由字母、数字和下画线组成;(2)变量名的第一个字符必须是英文字母,最后一个字符可以是类型说明符;(3)变量名的长度不能超过255个字符;(4)不能使用Visual Basic的保留字作为变量名。本题中B选项为Visual Basic的保留字;C选项以数字开头;D选项含有非法字符“-”。本题选择A选项。

(12)C 【解析】Instr([首字符位置,]字符串1,字符串2[,n])函数:该函数在“字符串1”中查找“字符串2”,如果找到了,则返回“字符串2”的第一个字符在“字符串1”中出现的位置;Val(x)函数:用来将字符串转换为数值;Trim$(字符串)函数:用来删除“字符串”两边的空白字符,其返回值为删除掉“字符串”前部和尾部空格后的字符串;sgn(x)函数:返回自变量x的符号;故本题C选项返回值为字符串,符合题意。本题选择C选项。

(13)C 【解析】使用Open语句可以打开或建立文件,并同时指定文件的输入输出方式,可以是下述操作之一:

①Output:指定顺序输出方式。

②Input:指定顺序输入方式。

③Append:指定顺序输出方式,与Output不同的是,当用Append方式打开文件时,文件指针被定位在文件末尾。

④Random:指定随机存取方式,也是默认方式。

⑤Binary:指定以二进制方式打开文件。

故本题C选项不是文件的输入输出方式。本题选择C选项。

(14)A 【解析】通用对话框是一种ActiveX控件,它随同Visual Basic提供给程序设计人员。在一般情况下,启动Visual Basic后,在工具箱中没有通用对话框控件。为了把通用对话框控件加入到工具箱中,可以使用“工程”菜单中的“部件”对话框将通用对话框控件引入工具箱中,A选项叙述错误;对话框的类型可以通过Action属性设置,也可以用相应的方法设置,B、C选项叙述正确;在程序设计阶段,通用对话框按钮以图标形式显示,不能调整其大小,程序运行后消失,D选项叙述正确,故本题A选项叙述有误。本题选择A选项。

(15)D 【解析】在Visual Basic中表示表达式“x+y小于10且x-y大于或等于6”可以写成:x+y<10 And x-y>=6,故只有D选项表达正确。本题选择D选项。

(16)B 【解析】在Visual Basic环境中,程序可以以解释的方式执行,也可以生成可执行文件(.EXE),故B选项叙述错误,其他三项叙述均正确。本题选择B选项。

(17)D 【解析】控件数组的每个元素都有一个与之关联的下标,或称索引(Index),下标值由Index属性指定,故每个元素的Index属性值不同,A选项叙述错误;Erase语句用来重新初始化静态数组的元素,或者释放动态数组的存储空间,B选项叙述错误;数组中的每个控件的Name属性必须相同,C选项叙述错误;在数组定义中下标下界可以是负值,D选项叙述正确。本题选择D选项。

(18)A 【解析】当在一个Dim语句中定义多个变量时,每个变量都要用As子句声明其类型,否则该变量会被看做是变体类型,因此,题目中语句“Dim a,b As Integer”只有变量b被声明为整型;在变量声明时,还可以使用类型说明符来标识变量类型,其中%表示整型;&表示长整型;!表示单精度型;#表示双精度型;@表示货币型;$表示字符串型。所以本题中变量b、变量d和变量f被声明为整型,变量a为变体类型,变量c为单精度类型,变量e为双精度类型,故A选项叙述正确。本题选择A选项。

(19)B 【解析】当在标准模块中定义用户定义数据类型时,关键字Type前可以有Public(默认)或Private;而如果在窗体模块中定义,则必须在前面加上关键字Private。所以B选项叙述正确而A选项叙述错误;记录类型中的元素可以是变长字符串,也可以是定长字符串,C选项叙述错误;标准模块和窗体模块中均可以使用自定义类型,D选项叙述错误。本题选择B选项。

(20)A 【解析】A选项为定义一个默认数组,数组名为x,然后通过Array函数对数组进行初始化,A选项正确;B选项定义一个一维字符串类型的数组,且将字符串赋值给数组名,这种赋值方式不正确;C选项中,定义了一个一维整型数组,然后试图使用Array函数为一维数组赋值,但是这种赋值方式只适用于变体类型的数组,即定义数组的方式为:“Dim x As Variant”,故C选项错误;D选项中将数组x通过赋值语句赋值给数组y,这种赋值方式是错误的,故本题只有A选项是正确声明和对数组元素进行赋值。本题选择A选项。

(21)B 【解析】在设计模式下,双击按钮控件,将进入代码设计窗口,故B选项正确。本题选择B选项。

(22)A 【解析】ListIndex属性的设置值为已选中的表项的位置;List用来列出表项的内容,List属性保存了列表框中所有值的数组,可以通过下标访问数组中的值,本题中使用表达式“List1.List(List1.ListIndex)”可以得到列表框中被选中列表项的内容;ListCount属性列出列表框中表项的数量,本题中使用表达式List1.ListCount可以获得列表框List1中的总项数,而表达式“List1.List(List1.ListCount)”可以获得列表框List1中最后一项的内容,故本题可以通过表达式“List1.List(List1.ListCount)=List1.List(List1.ListIndex)”将列表框List1中选中的列表项重复出现在列表框的最后,A选项正确。本题选择A选项。

(23)A 【解析】计时器的Interval属性以毫秒为单位,B选项叙述错误;计时器控件的位置和大小无关紧要,因为它只是在设计阶段出现在窗体上,程序运行时会自动消失,故C选项和D选项叙述均错误,本题A选项叙述正确。本题选择A选项。

(24)B 【解析】Left属性指的是控件的左边与窗体左边之间的距离,题目中要求按钮控件Command1向左移动100,所以应该将其Left属性减少100,故B选项正确。本题选择B选项。

(25)A 【解析】一个工程文件可以包含多个窗体,A选项叙述错误,其它三项叙述均正确。本题选择A选项。

(26)A 【解析】滚动条的Value属性值表示滚动框在滚动条上的当前位置,A选项叙述正确;计时器控件的Interval属性的单位为毫秒,语句Timer1.Interval=2表示每隔2毫秒触发一次Timer事件,B选项叙述错误;复选框的Value属性表示复选框的状态,其值可以设置为0、1或2,C选项叙述错误;与滚动条有关的事件主要是Scroll和Change。当在滚动条内拖动滚动框时会触发Scroll事件,而改变滚动框的位置后会触发Change事件,滚动条无Move事件,D选项叙述错误。本题选择A选项。

(27)A 【解析】在实际应用中,驱动器列表框、目录列表框和文件列表框往往需要同步操作,这可以通过Path属性的改变引发Change事件来实现,A选项的事件过程使窗体上的目录列表框Dir1和文件列表框File1产生同步。因为目录列表框Path属性的改变将产生Change事件,所以在Dir1-Change事件过程中,把Dir1.Path赋给File1.Path,就可以产生同步效果。故本题A选项符合题意。本题选择A选项。

(28)A 【解析】文本框控件的PasswordChar属性用于口令输入,如果把PasswordChar属性设置为%,则在文本框键入字符时,显示的不是键入的字符,而是被设置的字符(%),故本题会显示两个%,但是文本框控件的Text属性仍然是键入的两个字符“OK”,故A选项叙述正确。本题选择A选项。

(29)C 【解析】框架控件不能接受用户输入,不能显示文本和图形,也不能与图形相连,C选项叙述正确;可以将窗体上(不是框架内)已有控件放在一个框架中,并作为一个整体移动或删除,A选项叙述错误;图片框和框架控件都可以容纳能显示图片的控件,B选项叙述错误。本题选择C选项。

(30)D 【解析】在Command1的Click事件过程中,首先应使用Form1.Hide语句隐藏窗体1,然后使用Form2.Print“OK”语句在窗体2中显示字符串“OK”,故本题D选项正确。本题选择D选项。

(31)C 【解析】本题中“+”号为字符串运算符,它可以把两个字符串连在一起,生成一个较长的字符串,表达式“Text1.Text+Text2.Text”的结果为字符串“234432”。Val函数的功能是将指定字符串转换为数值,故本题变量x的值为数值234432,C选项正确。本题选择C选项。

(32)D 【解析】使用列表框的AddItem方法,可以向列表框中添加列表项,本题的Form-Load事件过程依次向列表框List1中添加了3个值,列表项的值分别为:List1(0)=“花卉”;List(1)=“绿植”;List(2)=“盆景”(列表项的索引值从0开始)。在List1-DblClick事件中打印输出表达式“List1+Text1.Text”的结果,当双击列表框List1中的“绿植”表项时,List1得到的值为“绿植”,Text1.Text为输入的字符串“摆放”,故最终输出结果为“绿植摆放”,D选项正确。本题选择D选项。

(33)D 【解析】题目在过程Command1-Click之前声明了动态数组arr,并使用Option Base 1语句声明数组下标从1开始,在Command1-Click过程中使用ReDim语句对动态数组进行了定义,arr数组是一个3行2列的数组,接着使用二重For循环给数组中的运算进行赋值,arr(1,1)=1+1=2;arr(1,2)=1+2=3;arr(2,1)=2+1=3;arr(2,2)=2+2=4;arr(3,1)=3+1=4;arr(3,2)=3+2=5。接着继续使用ReDim语句对动态数组进行定义,arr数组被定义为3行4列的数组,并且当重新分配动态数组时,数组中的内容被清除。接着使用For循环给数组元素赋值,循环共执行2次,数组元素arr(3,3)=3+6=9;arr(3,4)=4+6=10。接着使用print方法输出arr(3,2)+arr(3,4)的结果,由于第二次重新分配动态数组,第一次计算出的arr(3,2)的结果被清除,而第二次并未对数组运算arr(3,2)赋值,所以arr(3,2)默认为0,表达式最终的结果为0+10=10,故D选项正确。本题选择D选项。

(34)A 【解析】题目中定义的循环变量x的初始值为3,在Do Until循环结构中,当条件表达式的结果为假时执行循环体,直到条件表达式的结果为真时,结束循环。第一次判断循环条件表达式“x>=6”,条件为假,执行循环体语句,执行完循环体语句后,循环变量x的值为6;第二次判断循环条件表达式“x>=6”,条件为真,循环结束,故题目中的循环体值会被执行一次。A选项中使用Do While循环结构,当循环条件表达式为真时执行循环体,当条件表达式的结果为假时,结束循环,A选项循环体语句只执行一次,所以它与题目中循环执行一致;B选项中循环体执行两次;C选项中循环体执行两次;D选项中循环体执行两次。A选项符合题意。本题选择A选项。

(35)D 【解析】在程序开始之前,使用Option Base 1语句声明数组下标从1开始。在Form-Click事件过程中定义了默认数组x,然后使用Array函数给数组元素赋值,UBound函数可以获得数组下标的上限值,然后赋值给变量n,n=7。在For循环中变量i的初始值为1终止值为n/2,For循环体语句的功能是对数组首尾两个数进行互换,循环结束后数组中的元素依次为(17,13,-30,10,15,20,-8),故最后输出x(n)的值为数组最后一个元素的值,D选项正确。本题选择D选项。

(36)D 【解析】程序运行前Text1文本框中的内容为空,当Command1-Click事件过程执行时,if语句判断Text1为空,条件成立,执行语句Exit Sub,过程被提前结束,后续语句将不会被执行,所以本题D选项叙述正确。本题选择D选项。

(37)A 【解析】在Open语句中指定文件的访问方式为输出(Output)、附加(Append)或随机(Random),若打开的文件不存在,则建立相应的文件。本题中指定的访问方式为Random,所以B选项叙述错误;对于用随机访问方式打开的文件,其每个记录的长度必须是相同的,C选项叙述错误;记录类型的定义必须放在模块(包括标准模块和窗体模块)的声明部分,D选项叙述错误,本题A选项叙述正确。本题选择A选项。

(38)B 【解析】程序开始时,变量a赋值为5,变量b赋值为8;For循环一共执行30次,循环执行过程中各变量的值如下表所示:

根据循环执行特点可知:当循环执行完第6次时,变量a和b的值又回到起始值,根据这样的规律,循环是以6为执行单元,每执行6次后,变量的值会回到起始值,而本题循环一共会执行30次,30是6的倍数,所以第30次循环和第6次循环,各变量获得的值是相等的,故第30次循环中变量c的值为8,B选项正确。本题选择B选项。

(39)A 【解析】fun函数中字符串变量ch作为形参,函数的返回值类型为整型,For循环中循环变量k的初始值为1终止值为字符串的长度,每当循环执行一次时,将字符串ch中的一个字符取出赋值给字符变量c,然后使用if语句判断取出的字符是否等于字符“A”,若取出的字符不是“A”,则将该字符放入字符串st中,若取出的字符是“A”,则将变量n的值加1;由程序可知for循环的功能是:将字符串ch中非“A”字符存放到字符串变量st中,并对字符串ch中“A”字符的个数进行计数,故本题A选项叙述正确。本题选择A选项。

(40)A 【解析】在List1-DblClick过程中调用Exchange过程,并将控件对象List1作为参数传递给Exchange过程,在调用含有对象的过程时,对象是通过传地址的方式进行传递。在Exchange过程中执行如下操作步骤:

第一步:变量k保存List1列表框中已选中表项的位置第二步:变量ch用来保存被选中列表项的内容

第三步:使用列表框的RemoveItem方法将列表框中已选中列表项的内容移除

第四步:通过Add Item方法将列表框最后一项的内容放置于已选中表项的位置

第五步:将列表框的最后一项内容移除(www.chuimin.cn)

第六步:将第二步中变量ch中保存的内容放置到列表框的最后一项

根据上述操作步骤可知,过程Exchange的功能是当双击列表框中的某一表项时,将该表项内容与最后一项内容进行交换,故A选项叙述正确。本题选择A选项。

二、基本操作题

(1)【解题思路】新建一个窗体,设置窗体的Caption属性、MinButton属性、MaxButton属性和StartUpPosition属性;然后向窗体添加一个框架控件,设置框架的Caption属性;最后在框架里添加两个复选框控件,设置每个复选框的Caption属性及Check2的Value属性。

【操作步骤】

步骤1:新建一个窗体,根据表1设置窗体的相关属性。

表1

步骤2:向窗体添加一个框架控件,根据表2设置框架控件的相关属性。

表2

步骤3:向框架中添加2个复选框,根据表3设置复选框的相关属性。

表3

步骤4:调试并运行程序,关闭程序后按题目要求存盘。

(2)【解题思路】新建一个窗体,在窗体上添加一个Shape控件,并设置控件的Shape属性为0-Rectangle;再添加一个名称为Option1的单选按钮控件数组,包含3个单选按钮,下标分别为0、1、2,其Caption属性分别为“矩形”“正方形”“椭圆”,且标题为“矩形”的单选按钮的Value属性为True;最后为单选按钮控件数组的Click事件添加代码。

【操作步骤】

步骤1:新建一个窗体,在窗体上添加一个Shape控件,并按照表4设置控件的相关属性。

表4

步骤2:向窗体中添加一个单选按钮控件,然后复制两次创建控件数组,按照表5设置相关属性。

表5

步骤3:双击其中一个单选按钮,打开代码编辑窗口,在代码编辑窗口的指定位置输入以下代码(阴影部分是需要填入的内容)。

步骤4:调试并运行程序,关闭程序后按题目要求存盘。

三、简单应用题

(1)【解题思路】SelCount属性用于统计List1列表框中共有几个列表项被选中。例如,List1.SelCount=2表示有两个被选中的列表项,List1.SelCount=0表示未有列表项被选中。List是一个一维数组,数组中的值就是在执行时看到的列表项。设计时可以在属性窗口中通过List属性建立列表项,运行时对List数组从0到ListCount-1依次取值,可以获得所有项。Selected属性是一个与List数组中的各个元素相对应的一维数组,记录List数组中每个项目是否被选中。例如,List(1)被选中,则Selected(1)=True,否则Selected(1)=False。通过对Selected属性返回值的判断,得知列表项是否被选中,从而进行添加操作。

【操作步骤】

步骤1:打开本题工程文件。

步骤2:打开代码编辑窗口,去掉程序中的注释“’”,将问号改为正确的内容。

参考答案(阴影部分是需要填入的内容)

步骤3:调试并运行程序,关闭程序后按题目要求存盘。

(2)【解题思路】本题主要考查对数组运用的熟练程度。数组一定要事先定义才能使用,Start过程是对数组的初始化,把随机生成的数据存入数组a中。文本框传入的数据都是字符型,使用时需要转化成相对应的类型。Text3-KeyPress过程利用for循环判断Text3中的数据是否在数组a中,若存在,退出for循环,然后把i+1以及后面的数依次向前移一个位置,最后数组长度减1;若不存在,则弹出“未找到该数据”消息框。重新分配动态数组时,数组的内容将被清除,但如果ReDim中使用了Preserve选择项,则不清除数组内容。

【操作步骤】

步骤1:打开本题工程文件。

步骤2:打开代码编辑窗口,去掉程序中的注释“’”,将问号改为正确的内容。

参考答案(阴影部分是需要填入的内容)

步骤3:调试并运行程序,关闭程序后按题目要求存盘。

四、综合应用题

【解题思路】Calculate过程中利用For循环逐个取出文本字符串sl中的字符,然后把每个判断语句中的相对应的字母个数加1存到相对应的变量中,将所得平均值放入变量s中,最后结果显示在窗体中。

【操作步骤】

步骤1:打开本题工程文件。

步骤2:打开代码编辑窗口,填入相应的代码以实现题目的功能。

参考答案(阴影部分是需要填入的内容)

Dim m1 As Integer,m2 As Integer,m3 As Integer,m4 As Integer

Dim s As Integer

步骤3:调试并运行程序,单击“读取并统计”按钮,再单击“保存结果”按钮,最后关闭程序后按题目要求存盘。