1、二级 VISUAL+BASIC 笔试-107 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.算法的时间复杂度是指(分数:2.00)A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数2.以下合法的变量名是(分数:2.00)A.A%BB.Test1C.1costD.And3.下列选项中,不属于模块间耦合的是(分数:2.00)A.数据耦合B.标记耦合C.异构耦合D.公共耦合4.设 a=5,b=4,c=3,d=2,则表达式 32 术 b Or a=c And bc Or cd 的值是(分数
2、:2.00)A.1B.TrueC.FalseD.25.数据库设计包括两个方面的设计内容,它们是(分数:2.00)A.概念设计和逻辑设计B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计6.以下关系表达式中,其值为假的是(分数:2.00)A.“XYZ“XYz“B.“VisualBasic“=“visualbasic“C.“the“there“D.“Integer“Int“7.Sub 过程与 Function 过程最根本的区别是(分数:2.00)A.Sub 过程可以用 Call 语句直接使用过程名调用,而 Function 过程不可以B.Function 过程可以有形参
3、,Sub 过程不可以C.Sub 过程不能返回值,而 Function 过程能返回值D.两种过程参数的传递方式不同8.下列选项中不属于结构化程序设计方法的主要原则的是(分数:2.00)A.自顶向下B.逐步求精C.模块化D.可复用9.阅读程序:Function Fun(a As Integer)Static Cb=0:b=b+2:c=c+2F=a*b*cEnd FunctionPrivate Sub Command1_Click()Dim a As Integera=2For i=1 To 2Print Fun((分数:2.00)A.;NextEnd Sub运行上面的程序,单击命令按钮,输出结果为
4、 A) 8 16B.9 18C.10 20D.7 1410.在 Visual Basic 中,组合框是文本框和下列哪一项的特性的组合(分数:2.00)A.复选框B.标签C.列表框D.目录列表框11.单击滚动条的滚动箭头时,产生的事件是(分数:2.00)A.ClickB.ScrollC.ChangeD.Move12.在窗体上画个命令按钮和个文本框,名称分别为 Command1 和 Text1,然后编写如下程序:Private Sub Command1_Click()a=InputBox(“请输入日期(131)“)t=“旅游景点:“s;End SubFunction Fun(a()As Integ
5、er)Dim t#i%t=1For i=LBound(A) To UBound(A) t=t*a(i)NextFun=tEnd Function(分数:2.00)填空项 1:_44.在 Visual Basic 的立即窗口内输入以下语句:X=97CR?Chr$(X)CR在窗口中显示的结果是_。(分数:2.00)填空项 1:_下列程序计算 Sn 的值。Sn=a+aa+aaa+aaaa,其中最后一项为 n 个。例如:a=5,n=4 时,则 Sn=5+55+555+5555。请在空白处填入适当的内容,将程序补充完整。Private Sub Command1_Click()Dim a As Integ
6、er,n As Integer,Cout As IntegerDim Sn As Long,Tn As LongCout=1Sn=0Tn=0a=InputBox(“请输入 a 的值:“)(10) DoTn=Tn*10+aSn=Sn+TnCout=Cout+1(11) Debug.Print a,n,SnEnd Sub(分数:4.00)填空项 1:_填空项 1:_45.在 n 个运动员中选出任意 r 个人参加比赛,有很多种不同的选法,选法的个数可以用公式 计算,下图窗体中 3 个文本框的名称依次是 Text1、Text2、Text3。程序运行时,在 Text1、Text2 中分别输入n 和 r
7、的值,单击 Command1 按钮即可求出选法的个数,并显示在 Text3 文本框中(见下图)。请填空。(分数:2.00)填空项 1:_46.下面程序是由鼠标事件在窗体上画图,如果按下鼠标将可以画图,双击窗体可以清除所画图形。补充完整下而的程序。首先在窗体层定义如下变量:Dim PaintStart As Boolean编写如下事件过程:Private Sub Form_Load()DrawWidth=2ForeColor=vbGreenEnd SubPrivate Sub Form_MouseDown(Button As Integer,Shift As Integer,_X As Sing
8、le,Y As Single)PaintStart=TrueEnd SubPrivate Sub Form_MouseMove(Button As Integer,Shift As Integer,_x As Single,Y As Single)If PaintStart ThenPSet(X,Y)End IfEnd SubPrivate Sub Form_MouseUp(Button As Integer,Shift As Integer,_X As Single,Y As Single)_End SubPrivate Sub Form-DblClick()ClsEnd Sub(分数:2.
9、00)填空项 1:_有一个事件过程,其功能是:从已存在于磁盘上的顺序文件 NM1.txt 中读取数据,计算读出数据的平方值,将该数据及其平方值存入新的顺序文件 NM2.txt 中。请填空。Private Sub Form_Click()Dim x As Single,y As SingleOpen“NM1.txt“For Input As #1Open“NM2.txt“For Input As #2Do While Not EOF(1)(14) Print xy=x2(15) Print yLoopClose #1,#2End Sub(分数:4.00)填空项 1:_填空项 1:_二级 VISU
10、AL+BASIC 笔试-107 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.算法的时间复杂度是指(分数:2.00)A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数 D.算法程序中的指令条数解析:解析 算法的复杂度主要包括算法的时间复杂度和空间复杂度。算法的时间复杂度是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算的次数;算法的空间复杂度一般是指执行这个算法所需要的内存空间。2.以下合法的变量名是(分数:2.00)A.A%BB.Test1 C.1costD.And解析:解析 Visual
11、Basic 中规定变量名的首字符必须是字母,不能包含%、#、$字符,不能是Visual Basic 的保留字。3.下列选项中,不属于模块间耦合的是(分数:2.00)A.数据耦合B.标记耦合C.异构耦合 D.公共耦合解析:解析 模块之间的耦合程度反映了模块的独立性,也反映了系统分解后的复杂程度。按照耦合程度从强到弱分别是:内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合和非直接耦合,没有异构耦合这种方式。4.设 a=5,b=4,c=3,d=2,则表达式 32 术 b Or a=c And bc Or cd 的值是(分数:2.00)A.1B.True C.FalseD.2解析:解析 本题
12、考查各类表达式的综合运算。先执行 32*b 值为 False,再判断 a=c And bc 为False,cd 为 True,所以最终结果为 True。5.数据库设计包括两个方面的设计内容,它们是(分数:2.00)A.概念设计和逻辑设计 B.模式设计和内模式设计C.内模式设计和物理设计D.结构特性设计和行为特性设计解析:解析 数据库设计包括数据库概念设计和数据库逻辑设计两个方面的内容。6.以下关系表达式中,其值为假的是(分数:2.00)A.“XYZ“XYz“B.“VisualBasic“=“visualbasic“ C.“the“there“D.“Integer“Int“解析:解析 字符串比较
13、大小的规则:从左到右逐个比较其字符的 ASCII 值。有以下几种情况:字符串相等。当两个字符串不是所有对应位置上的字符都相等,以第一次出现不同字符时的比较结果为准。前面完全相等,以长者为大。对于纯英文且大小写相同,可按英文字典顺序比较。在字典顺序后出现的比在前面出现的大。当出现不对应的大小写字母时,小写字母总是大于相同的大写字母。字符串由汉字组成时,按拼音的 ASCII 值比较。数字字符比较遵循上面的规则。7.Sub 过程与 Function 过程最根本的区别是(分数:2.00)A.Sub 过程可以用 Call 语句直接使用过程名调用,而 Function 过程不可以B.Function 过程
14、可以有形参,Sub 过程不可以C.Sub 过程不能返回值,而 Function 过程能返回值 D.两种过程参数的传递方式不同解析:解析 在 Visual Basic 中有两类过程:一类是系统提供的内部函数和事件过程;另一类是用户根据自己的需要定义的,供事件过程的多次调用,而在第二类过程中,我们现在涉及最多的是子过程。它们的共同点是完成某种特定功能的一组程序代码;不同的是函数是带有返回值的特殊过程,所以函数过程定义时有返回值的类型说明。8.下列选项中不属于结构化程序设计方法的主要原则的是(分数:2.00)A.自顶向下B.逐步求精C.模块化D.可复用 解析:解析 结构化程序设计方法的主要原则是:自
15、顶向下,逐步求精,模块化,限制使用 goto 语句。可复用性是指软件元素不加修改和稍加修改可在不同的软件开发过程中重复使用的性质。软件可复用性是软件工程追求的目标之一,是提高软件生产效率的主要方法。面向对象的程序设计具有可复用性的优点。9.阅读程序:Function Fun(a As Integer)Static Cb=0:b=b+2:c=c+2F=a*b*cEnd FunctionPrivate Sub Command1_Click()Dim a As Integera=2For i=1 To 2Print Fun((分数:2.00)A.;NextEnd Sub运行上面的程序,单击命令按钮,
16、输出结果为 A) 8 16 B.9 18C.10 20D.7 14解析:解析 本题的难点是子函数调用过程和 Static 变量。子函数有 Static 变量 c,在第 1 次子函数调用时其值为 2,局部变量 b 为 2,但在第 2 次子函数调用时 c=2+2=4,b=0+2=2。表达式 a*b*c 的结果通过子函数名 F 返回。10.在 Visual Basic 中,组合框是文本框和下列哪一项的特性的组合(分数:2.00)A.复选框B.标签C.列表框 D.目录列表框解析:解析 组合框是一个独立的控件,它具有列表框和文本框的功能,它可以像列表框一样,让用户通过鼠标选择需要的项目,也可以像文本框一
17、样,用键入的方式选择项目。11.单击滚动条的滚动箭头时,产生的事件是(分数:2.00)A.ClickB.ScrollC.Change D.Move解析:解析 滚动条控件有两个事件:Change 事件在滚动框移动后发生;Scroll 事件在移动滚动框时发生,在单击滚动箭头或滚动条时不发生。12.在窗体上画个命令按钮和个文本框,名称分别为 Command1 和 Text1,然后编写如下程序:Private Sub Command1_Click()a=InputBox(“请输入日期(131)“)t=“旅游景点:“s;End SubFunction Fun(a()As Integer)Dim t#i%
18、t=1For i=LBound(A) To UBound(A) t=t*a(i)NextFun=tEnd Function(分数:2.00)填空项 1:_ (正确答案:120)解析:解析 程序首先调用循环语句为数组 a、b 赋值,其中 a(i)=i;b(i)=i,且数组 a 的上下界分别为 1 和 5,接着将数组 a 作为参数调用 Fun 过程,在 Fun 过程中,定义了两个变量 t 及 i,i 作为循环语句 For 的变量,它的初始值和终值分别为数组的上下界,循环体为 t=t*a(i),即将 a(i)的值乘以 t,然后再赋给 t,当循环结束后,程序返回的就是数组 a 中的各元素的积,故输出结
19、果为:s=120。44.在 Visual Basic 的立即窗口内输入以下语句:X=97CR?Chr$(X)CR在窗口中显示的结果是_。(分数:2.00)填空项 1:_ (正确答案:a)解析:解析 Chr$()是求 ASCII 字符的函数,格式是 Chr$(表达式),其中“表达式”应该是合法的ASCII 码值,Chr$()函数把“表达式”的值转换为相应的 ASCII 字符。本题中 X=97 对应的 ASCII 码是字符 a,所以显示的结果应该是 a。下列程序计算 Sn 的值。Sn=a+aa+aaa+aaaa,其中最后一项为 n 个。例如:a=5,n=4 时,则 Sn=5+55+555+5555
20、。请在空白处填入适当的内容,将程序补充完整。Private Sub Command1_Click()Dim a As Integer,n As Integer,Cout As IntegerDim Sn As Long,Tn As LongCout=1Sn=0Tn=0a=InputBox(“请输入 a 的值:“)(10) DoTn=Tn*10+aSn=Sn+TnCout=Cout+1(11) Debug.Print a,n,SnEnd Sub(分数:4.00)填空项 1:_ (正确答案:n=InputBox(“请输入 n 的值!“))解析:填空项 1:_ (正确答案:Loop while Co
21、ut=n 或 Loop Until Cout=n+1)解析:解析 a 和 n 的值必须已知,表达式才能计算。但程序中没有给变量 n 赋值的语句,可见第一个空白行应该填写给 n 赋值的语句。Do 循环应该有与之相对应的终端语句,可见第二个空白行应填写 Do 循环的终端语句,即 While 语句,同时要构造出控制循环的条件。程序中有四个赋值语句,其中有一个计数语句 Cout=Cout+1,可见控制循环次数的变量应是 Cout。45.在 n 个运动员中选出任意 r 个人参加比赛,有很多种不同的选法,选法的个数可以用公式 计算,下图窗体中 3 个文本框的名称依次是 Text1、Text2、Text3。
22、程序运行时,在 Text1、Text2 中分别输入n 和 r 的值,单击 Command1 按钮即可求出选法的个数,并显示在 Text3 文本框中(见下图)。请填空。(分数:2.00)填空项 1:_ (正确答案:n-r)解析:解析 根据题中选法方式*可知,这就是 3 个阶乘函数的剩除运算,由于程序中已经写出 fun(n)和fun(r)阶乘,因此,在空白处应填写 fun(n-r)。46.下面程序是由鼠标事件在窗体上画图,如果按下鼠标将可以画图,双击窗体可以清除所画图形。补充完整下而的程序。首先在窗体层定义如下变量:Dim PaintStart As Boolean编写如下事件过程:Private
23、 Sub Form_Load()DrawWidth=2ForeColor=vbGreenEnd SubPrivate Sub Form_MouseDown(Button As Integer,Shift As Integer,_X As Single,Y As Single)PaintStart=TrueEnd SubPrivate Sub Form_MouseMove(Button As Integer,Shift As Integer,_x As Single,Y As Single)If PaintStart ThenPSet(X,Y)End IfEnd SubPrivate Sub F
24、orm_MouseUp(Button As Integer,Shift As Integer,_X As Single,Y As Single)_End SubPrivate Sub Form-DblClick()ClsEnd Sub(分数:2.00)填空项 1:_ (正确答案:PaintStart=False)解析:解析 上述过程定义了一个布尔型变量 PaintStart,当按下鼠标左键(触发 MouseDown 事件)时,由题意按下鼠标键表示能画图,所以该变量的值为 True,而松开鼠标左键(触发 MouseUp 事件)时,该变量为 False;如果变量 PaintStart 为 True
25、,则移动鼠标(触发 MouseMove 事件),将在窗体上绘出一个点;除鼠标事件外,上述程序还含有一个 Load 事件过程和一个 DblClick 事件过程,其中 Load 事件过程用来设置画点的大小和颜色,DblClick 事件过程用来清除所画的图形,函数 Pset 是画点语句,用它可以在(x,y)处画一个点。有一个事件过程,其功能是:从已存在于磁盘上的顺序文件 NM1.txt 中读取数据,计算读出数据的平方值,将该数据及其平方值存入新的顺序文件 NM2.txt 中。请填空。Private Sub Form_Click()Dim x As Single,y As SingleOpen“NM1
26、.txt“For Input As #1Open“NM2.txt“For Input As #2Do While Not EOF(1)(14) Print xy=x2(15) Print yLoopClose #1,#2End Sub(分数:4.00)填空项 1:_ (正确答案:Input #1,x)解析:填空项 1:_ (正确答案:Print #2,x,y)解析:解析 本题考查顺序文件的读写操作,事件过程中,顺序文件的打开和关闭语句都正确,循环语句使用也正确。事件过程的功能是:从 NM1.txt 中读取数据,向 NM2.txt 中写入数据。程序中没有对数据文件进行读写的语句,故空白处要填写的是对顺序文件读数据和写数据的语句。