首页 理论教育无纸化考试题库试卷-二级VisualBasic模拟考场试卷

无纸化考试题库试卷-二级VisualBasic模拟考场试卷

【摘要】:A栈支持子程序调用。程序调试的基本步骤有:错误定位、修改设计和代码,以排除错误、进行回归测试,防止引进新的错误。程序调试通常称为Debug,即排错。②MsgBox语句格式:MsgBox,有无括号都可以,无返回值。本题中x2-1中有-(减号),不是下划线。A因为Rnd函数产生的随机数范围是大于等于0而小于1。

一、选择题

(1)D 【解析】栈是先进后出的线性表,所以A错误;队列是先进先出的线性表,所以B错误;循环队列是线性结构的线性表,所以C错误。

(2)A 【解析】栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表,在主程序调用子函数时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主程序中调用子程序的位置,继续向下执行,这种调用符合栈的特点,因此本题的答案为A)。

(3)C 【解析】根据二叉树的基本性质3:在任意一颗二叉树中,度为0的叶子结点总是比度为2的结点多一个,所以本题中是5+1=6个。

(4)D 【解析】冒泡排序、直接插入排序与简单选择排序法在最坏情况下均需要比较n(n-1)/2次,而堆排序在最坏情况下需要比较的次数是n log2 n。

(5)C 【解析】编译软件、操作系统、汇编程序都属于系统软件,只有C教务管理系统才是应用软件。

(6)A 【解析】软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误,所以选项A错误。程序调试的基本步骤有:错误定位、修改设计和代码,以排除错误、进行回归测试,防止引进新的错误。程序调试通常称为Debug,即排错。软件测试的基本准则有:所有测试都应追溯到需求、严格执行测试计划,排除测试的随意性、充分注意测试中的群集现象、程序员应避免检查自己的程序、穷举测试不可能、妥善保存测试计划等文件。

(7)B 【解析】模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。一般较优秀的软件设计,应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,所以A错误,B正确。耦合性是模块间互相连接的紧密程度的度量而内聚性是指一个模块内部各个元素间彼此结合的紧密程度,所以C与D错误。

(8)A 【解析】数据库应用系统中的核心问题是数据库的设计。

(9)B 【解析】投影运算是指对于关系内的域指定可引入新的运算。本题中S是在原有关系R的内部进行的,是由R中原有的那些域的列所组成的关系。所以选择B。

(10)C 【解析】从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性。

(11)C 【解析】Msgbox语句的功能:显示消息提示框,在对话框中显示提示消息,等待用户单击按钮,单击不同的按钮返回不同的整数。它有2种形式:

①MsgBox函数格式:

变量=MsgBox(<提示内容>[,样式][,标题]),注意MsgBox函数带括号,有返回值。

②MsgBox语句格式:

MsgBox(<提示内容>[,样式][,标题]),有无括号都可以,无返回值。故A选项错误。

其中:

第1个参数:提示内容是必需的,不能省略。故C选项正确。

第2个参数:可选。整型表达式,缺省值0,指定信息框中按钮数目、类型、图标类型、缺省按钮等。

第3个参数:可选,如果省略,则标题栏并不为空默认显示它所属的工程名。故D选项错误。

执行MsgBox语句时出现信息框后,必须关闭信息框才可执行其他操作。故B选项错误。

(12)D 【解析】本题定义的是一个整型的二维数组,-3 To 4指的是-3、-2、-1、0、1、2、3、4(共8行),3 To 6指的是3、4、5、6(共4列),因此数组元素个数是8×4=32,故选D。

(13)A 【解析】定义函数过程的格式:

Function函数过程名([形参表])As函数返回值的数据类型

函数过程名=表达式

End Function

说明:

①形参的类型可以是任何数据类型,函数返回值的类型是调用函数后返回的数据类型,,他们没有关系,互不影响。故选项A正确。

②选项B错误的原因是:函数过程中可以有多个“函数过程名=表达式”这样的语句,但是最终函数只能有一个返回值。如果省略这条语句,函数过程则返回一个默认值,数值函数过程返回0,字符串函数过程返回空字符串。

③选项C错误的原因是:数组作为函数过程的参数时,这时数组名看作是一个符号地址,实参和形参之间传递的是地址,所以以传址方式传递。

④选项D错误的原因是:形参如果没指明数据类型,默认为Variant类型。

(14)C 【解析】过程定义时,形参除了可以是整型、单精度、双精度等数据类型外,还可以是控件或窗口等对象型。相对应的调用过程时实参也可以是一般数据类型、控件名或窗体。故选项A、D正确。

调用过程时使用的实参的个数、类型、顺序应与过程中形参相同。故选项B正确。

在过程调用时,不只是函数过程能把过程中处理的信息传回到调用程序中,Sub过程也可以。Sub过程中形参声明时前面有关键字ByRef或省略ByRef(默认)时,实参和形参之间传递的是地址,Sub过程中形参的变化也会引起实参的变化,这样Sub过程中处理的信息也可以传回调用程序中。故选项C说法错误。

(15)C 【解析】VB中变量名的命名规则:①必须以字母或汉字开头②由字母、汉字、数字或下划线组成③不能使用VB的保留字。本题中x2-1中有-(减号),不是下划线。print是VB的保留字,也不能作变量名。2x以数字开头,也是错误的。故C选项正确。

(16)D 【解析】VB数学表达式中的乘用*表示,除用/表示,表示一个整体的可加括号()。故D选项正确。

(17)A 【解析】标准模块中只包含其他窗体模块中公用的一些变量、过程等代码,不包括窗体。故选项A错误。

标准模块中用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)可产生0~20之间的随机整数,然后加上30,综合起来就是Int(Rnd*21+30),故A选项正确。

(19)C 【解析】如果窗体是活动的,那么在窗体上按下鼠标右键(尚未松手抬起),即会触发Form-MouseDown事件,松手抬起后,要先触发Form-MouseUp事件,然后再触发Form-Click事件。如果窗体原先是非活动的,还会触发Form-GotFocus事件,并且它最先发生。Form-Load事件是窗体显示之前,加载时触发,单击窗体时不触发。故A选项错误。

用鼠标左键单击窗体标题栏时,不会执行Form-Click事件过程。故B选项错误。

装入窗体后,每次显示该窗体时或窗体成为活动窗体时,都会执行From-Active窗体的激活事件。故D选项错误。

(20)C 【解析】A选项错误原因:当以Output方式打开一个不存在的顺序文件时,Open语句会首先创建该文件,然后再打开它,系统不会出错。

B选项错误原因:以Append方式打开文件后,可将内存中的数据追加到顺序文件的尾部,可进行写操作,不能进行读操作。

D选项错误原因:VB中三种可访问的文件有:顺序文件、随机文件和二进制文件,不同文件打开的方式是不同的。

C选项中随机文件中的每一行称为一条记录,每条记录的长度相同,通过记录号来定位和查找指定记录。故C选项正确。

(21)D【解析】本题中,Click是控件的名称,MouseDown是鼠标按下事件,当用鼠标左键或右键单击Click控件时就会触发MouseDown事件,执行MouseDown事件过程。故选D。

(22)B 【解析】运行程序,单击命令按钮后,执行Command1-Click事件过程代码,文本框Text1中显示“程序设计”,并且文本框Text1获得焦点,此时焦点在Text1中;当Text1获得焦点就会触发它的Got-Focus事件,执行Got-Focus事件过程,结果文本框Text1中显示“等级考试”。故B选项正确。

(23)C【解析】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属性值时,滚动块向右移动Value属性值减少,向左增加;当它们Max=Min时,滚动块不能移动。故A选项正确。(www.chuimin.cn)

(25)A 【解析】“打开”对话框主要用来获取用户指定的文件信息并供程序使用,对话框本身并不提供打开文件功能,这些功能需另外编写代码才能实现,所以在“打开”对话框中可选中某文件,但不能打开。故A选项错误。

(26)B 【解析】要使菜单项的快捷键设置为Alt+字母,就要在菜单项的标题中设置为&+字母。本题把“Alt+X”设置为“退出(X)”菜单项,则菜单项的标题设置为“退出(&X)”。故选B。

(27)A 【解析】框架没有Text属性。故选A。

(28)C 【解析】Index参数值返回的是单选按钮数组中各单选按钮的索引值,用它来区分各单选按钮。故A、D选项错误,C选项正确;

Index的值只能是非负数,故B选项错误。

(29)B【解析】SetFocus是控件获得焦点的方法,GotFocus是控件获得焦点后触发的事件,LostFocus是控件失去焦点后触发的事件。本题中程序执行Text1.SetFocus后,Text1就获得焦点,进而触发Text1的GotFocus事件。故B选项正确。

(30)C 【解析】访问滚动条控件的值,可以直接使用控件的名称,也可以在名称后面指明Value属性。滚动条位置是用数值来表示的,因此定义Calc过程时参数应该定义为Integer类型。程序中,Text1.Text=x*y语句说明计算的结果在文本框中显示出来。

(31)B 【解析】程序中过程f的功能是参数值大于等于10时,返回参数加1的值,否则返回参数加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;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和KeyUp事件的KeyCode参数返回的是“键”,即按字母“A”和“a”时得到的KeyCode的值是相同的,都是&H41。因此程序中对输入“a”时得到的Key-Code,经Chr函数转为字符后为“A”,经Ucase函数转换仍为“A”,所以变量c中的字符为“A”。Asc(c)将返回变量c中的第一个字符的ASCII,加2后,再由Chr函数转为字符即为“A”后面的第2个字符,即“C”。所以答案应为选项C。

(34)B 【解析】Len函数返回字符串的长度,Mid函数为字符串中部截取函数格式为:Mid(字符串,起始位置,长度)。程序中,For循环的终值是Text1中输入的字符串的长度,即“Basic”的长度,为5。循环体中Mid函数从第一个字符开始依次取出一个字符,然后与上次取出的字符连接,本次取出的字符在前,上次取出的字符在后。最终变量s中应该是“cisaB”。

(35)D 【解析】程序中把变量max的初始值设置为0,没有考虑到负数的情况。应该把它的初始值设置为数组中的一个元素的值,然后让数组中的各个元素与这个值比较,如果比它大,就替换变量max的值,这样才能得到数组中的最大值。因此要修改max=0这一行。

(36)B 【解析】程序变量sum的值在开始计算第2个学生的总成绩时,仍保留着第一个学生的总成绩,这样会把前面学生的总成绩计算进去,显然不对。因此,sum=0这一句应该放在第1层For循环体的第一句,即For i=1 to4和for j=1 to 3之间。

(37)B 【解析】程序中Option Base 0表示指定数组的下标默认下界为0。ReDim语句用来重新定义动态数组,按定义的上下界重新分配存储单元。在一个程序中,可以多次用Re-Dim语句定义同一个数组,随时修改数组中元素的个数。程序中先执行ReDim a(10),然后执行了ReDim a(5),因此数组a的下界为0,上界为5,共有6个元素。

(38)B 【解析】这是一个双层循环,外层循环是4次,内层循环变量初值6,终值1,步长-2,则j可取的值为6、4、2,因此内层For循环会循环3次,两层循环的总数是4*3=12次,Counter的值即为12。Str函数将数值转换成字符串,即“12”,所以标签中显示的内容为“12”。

(39)A 【解析】从程序中可知,数组M元素M(1)~M(10)的值为11、10、9、8、7、6、5、4、3、2。则M(8)的值为4,M(2+M(8))即M(2+4),即M(6)。M(6)的值为6。因此窗体上显示为6。

(40)A 【解析】虽然在过程proc中参数a默认为按地址传递,参数b指定了ByVal(按值)方式传递,但过程中并没有对a,b的值改变,只对变量X和Y进行了赋值,而X是在窗体模块中起作用的模块变量,而变量Y在proc过程中没有声明,要整个模块中也没有声明,说明它是一个局部变量,只在本过程中起作用。因此,在proc过程中X=a*a=5*5=25,会使按钮单击事件中的变量X值变为25,而按钮单击事件过程中的变量Y不受影响,仍是原来的值3。因此两个标签上会分别显示25和3。

二、基本操作题

(1)【解题思路】AutoSize属性值可决定控件(标签和图片框)是否自动改变大小以显示其全部内容,当值为True时表示自动改变控件大小以显示全部内容;为False(默认值)时表示保持控件大小不变,超出控件区域的内容被裁剪掉。Border-Style属性用于设置标签的边框样式,值为0表示无边框,值为1表示有边框。

【操作步骤】

步骤1:建立界面,并设置控件的属性。程序中用到的控件及属性见表1。 

表1

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

(2)【解题思路】本题主要考查控件的画法、水平滚动条(HScrollBar)相关属性的设置以及命令按钮简单事件编程的掌握情况。

滚动条的Max、Min属性限定了滚动条所能表示的最大值和最小值,即Value属性值的取值范围。LargeChange属性用于设置当单击滚动条滑块与两侧箭头间区域时Value属性值的改变量,SmallChange属性用于设置当单击滚动条两侧箭头时Value属性值的改变量。滚动条滑块位置改变时触发其Change事件。在窗体上输出内容使用Print方法。

【操作步骤】

步骤1:按照题目要求建立窗体和控件,并设置控件的属性。程序中用到的控件及属性见表2。

表2

步骤2:编写程序代码。

参考答案

三、简单应用题

(1)【解题思路】表达式Int(Rnd*1000)可生成0~1000范围内随机整数。根据题意求出20个随机整数的平均值,须用For循环语句逐一将数组中的各元素累加到变量Sum,然后求出平均值。

【操作步骤】

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

步骤2:分析并编写程序代码。

程序提供代码

(2)【解题思路】判断0~200范围内的数能不能被3整除,须使用求余运算符Mod,如果余数不为0,则表示该数不能被整除。并需要设置一个变量,以累计不能被3整除的数的和。

【操作步骤】

四、综合应用题

【解题思路】将考生文件夹下文件in5.dat中的12组整数读到数组a中;在Command2 Click事件过程中,通过循环嵌套对每组数据求平均值,并将其值运用Int函数截尾取整后存入s数组中;运用If语句进行判断,使1-9的组号后添加一个空格,保持数列的整齐。

【操作步骤】