1、二级 VISUAL+BASIC 笔试-415 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列叙述中中正确的是( )A线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D上述三种说法都不对(分数:2.00)A.B.C.D.2.下列叙述中正确的是( )A在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动
2、态变化D上述三种说法都不对(分数:2.00)A.B.C.D.3.软件测试的目的是( )A评估软件可靠性 B发现并改正程序中的错误C改正程序中的错误 D发现程序中的错误(分数:2.00)A.B.C.D.4.下面描述中,不属于软件危机表现的是( )A软件过程不规范 B软件开发生产率低C软件质量难以控制 D软件成本不断提高(分数:2.00)A.B.C.D.5.软件生命周期是指( )A软件产品从提出、实现、使用维护到停止使用退役的过程B软件从需求分析、设计、实现到测试完成的过程C软件的开发过程D软件的运行维护过程(分数:2.00)A.B.C.D.6.面向对象方法中,继承是指( )A一组对象所具有的相似
3、性质 B一个对象具有另一个对象的性质C各对象之间的共同性质 D类之间共享属性和操作的机制(分数:2.00)A.B.C.D.7.层次型、网状型和关系型数据库划分原则是( )A记录长度 B文件的大小C联系的复杂程度 D数据之间的联系方式(分数:2.00)A.B.C.D.8.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是( )A一对一 B一对多C多对多 D多对一(分数:2.00)A.B.C.D.9.数据库设计中反映用户对数据要求的模式是( )A内模式 B概念模式 C外模式 D设计模式(分数:2.00)A.B.C.D.10.有三个关系 R、S 和 T
4、 如下:则由关系 R 和 S 得到关系 T 的操作是( )(分数:2.00)A.B.C.D.11.在 Visual Basic 集成环境中,要添加一个窗体,可以单击工具栏上的一个按钮,这个按钮是( )(分数:2.00)A.B.C.D.12.在 Visual Basic 集成环境的设计模式下,用鼠标双击窗体上的某个控件打开的窗口是( )A工程资源管理器窗口 B属性窗口C工具箱窗口 D代码窗口(分数:2.00)A.B.C.D.13.下列叙述中错误的是( )A列表框和组合框都有 List 属性 B列表框有 Selected 属性,而组合框没有C列表框和组合框都有 Style 属性 D组合框有 Tex
5、t 属性,而列表框没有(分数:2.00)A.B.C.D.14.设窗体上有一个命令按钮数组,能够区分数组中各个按钮的属性是( )AName BIndexCCaption DLeft(分数:2.00)A.B.C.D.15.滚动条可以响应的事件是( )ALoad BScrollCClick DMouseDown(分数:2.00)A.B.C.D.16.设 a5,b=6,c=7,d=8,执行语句 x=IIf(ab)And(cd),10,20)后,X 的值是( )A10 B20C30 D200(分数:2.00)A.B.C.D.17.语句 Print Sgn(-62)+Abs(-62)+Int(-62)的输
6、出结果是( )A-36 B1 C-1 D-72(分数:2.00)A.B.C.D.18.在窗体上画一个图片框,再在图片框中画一个命令按钮,位置如图所示,则命令按钮的 Top 属性值是( )(分数:2.00)A.B.C.D.19.在窗体上画一个名称为 Command1 的命令按钮。单击命令按钮时执行如下事件过程:Private Sub Command1_Click()a$=“software and hardware“b$=Right(a$,8)c$=Mid(a$,1,8)MsgBox a$,b$,c$,1End Sub则在弹出的信息框标题栏中显示的标题是( )Asoftware and hard
7、ware BhardwareCsoftware D1(分数:2.00)A.B.C.D.20.在窗体上画一个文本框(名称为 Text1)和一个标签(名称为 Label1),程序运行后如果在文本框中输入文本,则标签中立即显示相同的内容。以下可以实现上述操作的事件过程是( )APrivate Sub Text1_Change()Label1.Caption=Text1.TextEnd Sub BPrivate Sub Label1_Change()Label1.Caption=Text1.TextEnd SubCPrivate Sub Text1_Click()Label1.Caption=Text
8、1.textEnd Sub DPrivate Sub Label1_Click()Label1.Caption=Text1.TextEnd Sub(分数:2.00)A.B.C.D.21.以下说法中错误的是( )A如果把一个命令按钮的 Default 属性设置为 True,则按回车健与单击该命令按钮的作用相同B可以用多个命令按钮组成命令按钮数组C命令按钮只能识别单击(Click)事件D通过设置命令按钮的 Enabled 属性,可以使该命令按钮有效或禁用(分数:2.00)A.B.C.D.22.以下关于局部变量的叙述中错误的是( )A在过程中用 Dim 语句或 Static 语句声明的变量是局部变量
9、B局部变量的作用域是它所在的过程C在过程中用 Static 语句声明的变量是静态局部变量D过程执行完毕,该过程中用 Dim 或 Static 语句声明的变量即被释放(分数:2.00)A.B.C.D.23.以下程序段的输出结果是( )x=1y=4Do Until y4xx*yyy+1LoopPrint xA1 B4 C8 D20(分数:2.00)A.B.C.D.24.如果执行一个语句后弹出如图所示的窗口,则这个语句是( )(分数:2.00)A.B.C.D.25.有如下事件过程:Private Sub Form_Click()Dim n As Integerx=0n=InputBox(“请输入一个
10、整数“)For i=1 To nFor j=1 To ix=x+1Next jNext iPrint XEnd Sub程序运行后,单击窗体,如果在输入对话框中输入 5,则在窗体上显示的内容是( )A13 B14 C15 D16(分数:2.00)A.B.C.D.26.请阅读程序:Sub subP(b()As Integer)For i=1 To 4b(i)=2*iNext iEnd SubPrivate Sub Command1_Click()Dim a(1 To 4)As Integera(1)=5:a(2)=6:a(3)=7:a(4)=8subP a()For i=1 To 4Print a
11、(i)Next iEnd Sub运行上面的程序,单击命令按钮,则输出结果是( )A2468B5 6 7 8 C10 12 14 16D出错(分数:2.00)A.B.C.D.27.Fibonacci 数列的规律是:前 2 个数为 1,从第 3 个数开始,每个数是它前 2 个数之和,即1,1,2,3,5,8,13,21,34,55,89,某人编写了下面的函数,判断大于 1 的整数 x 是否是Fibonaeci 数列中的某个数,若是,则返回 True,否则返回 False。Function Isfab(x As Integer)As BooleanDim a As Integer,b As Inte
12、ger,c As Integer,flag As BooleanfIag=Falsea=1:b=1Do While xbc=a+ba=bb=cIf x=b Then flag=TrueLoopIsfab=flagEnd Function测试时发现对于所有正整数 x,函数都返回 False,程序需要修改。下面的修改方案中正确的是( )A把 a=b 与 b=C 的位置互换B把 c=a+b 移到 b=c 之后C把 Do while xb 改为 Do While xbD把 If x=b Then flag=True 改为 If x=a Then flag=True(分数:2.00)A.B.C.D.28
13、.在窗体上画一个命令按钮,其名称为 Command1,然后编写如下事件过程:Private Sub Command1_Click()Dim a$,b$,c$,k%a=“ABCD“b=“123456“c=“ “k=1Do White k=Len(a)Or k=Len(b)If k=Len(a) Thenc=cMid(a,k,1)End IfIf k=Len(b) Thenc=cm=m+1For j=1 To iPrint“*“;Next jPrintNext iEnd Sub程序运行后,单击窗体,则输出结果是( )A1 * * * * 2 * * *3 * * 4 *B4 * * * *3 *
14、* *2 * *1 * C* * * * * * *D* * * * * * *(分数:2.00)A.B.C.D.30.在窗体上画一个命令按钮(其名称为 Command1),然后编写如下代码:Private Sub Command1_Click()Dim aa=Array(1,2,3,4)i=3:j=1Do While i0ss+a(i)*jii-1jj*10LoopPrint SEnd Sub运行上面的程序,单击命令按钮,则输出结果是( )A4321 B123 C234 D1234(分数:2.00)A.B.C.D.31.下列可以打开随机文件的语句是( )AOpen“file1.dat“For
15、 Input As#1BOpen“file1.dat“For Append As#1COpen“file1.dat“For Output As#1DOpen“file1.dat“For Randow As#1 Len=20(分数:2.00)A.B.C.D.32.有弹出式菜单的结构如下表所示,程序运行时,单击窗体则弹出如下图所示的菜单。下面的事件过程中能正确实现这一功能的是( )(分数:2.00)A.B.C.D.33.请阅读程序:Option Base 1Private Sub Form_Click()Dim Arr(4,4)As IntegerFor i=1 To 4For j=1 To 4A
16、rt(i,j)=(i-1)*2+jNext jNext iFor i=3 To 4For j=3 To 4Print Arr(j,i)Next jPrintNext iEnd Sub程序运行后,单击窗体,则输出结果是( )A5 76 8 B6 87 9C7 98 10D8 108 11(分数:2.00)A.B.C.D.34.下面函数的功能应该是:删除字符串 str 中所有与变量 ch 相同的字符,并返回删除后的结果,例如若str=“ABCDABCD“,ch=“B“,则函数的返回值为:“ACDACD”Function delchar(str As String,ch As String)As S
17、tringDim k As Integer,temp As String,ret As Stringret=“ “For k=1 To Len(str)temp=Mid(str,k,1)If temp=ch Thenret=retm=m+1For j=1 To iPrint“*“;Next jPrintNext iEnd Sub程序运行后,单击窗体,则输出结果是( )A1 * * * * 2 * * *3 * * 4 *B4 * * * *3 * * *2 * *1 * C* * * * * * *D* * * * * * *(分数:2.00)A. B.C.D.解析:解析 本题是利用循环语句输
18、出,每次循环在一行中输出 i 个星号,变量 m 是行号,j 是星号个数,无参数的 print 语句让程序在新的一行输出。30.在窗体上画一个命令按钮(其名称为 Command1),然后编写如下代码:Private Sub Command1_Click()Dim aa=Array(1,2,3,4)i=3:j=1Do While i0ss+a(i)*jii-1jj*10LoopPrint SEnd Sub运行上面的程序,单击命令按钮,则输出结果是( )A4321 B123 C234 D1234(分数:2.00)A.B.C.D. 解析:解析 此程序的作用是将数组 a 中 a(0)、a(1)、a(2)
19、、a(3)作为千位、百位、十位、个位组成一个新数,i 是数组的下标,作用是依次取 a(3)、a(2)、a(1)、a(0),s=s+a(i)*j 的作用是将取到的数依次放到个位、百位、十位、千位,这是因为 j 四次循环的取值分别为 1、10、100、1000,所以 s 四次循环的取值为 4、4+30、34+200、324、324+1000。31.下列可以打开随机文件的语句是( )AOpen“file1.dat“For Input As#1BOpen“file1.dat“For Append As#1COpen“file1.dat“For Output As#1DOpen“file1.dat“Fo
20、r Randow As#1 Len=20(分数:2.00)A.B.C.D. 解析:解析 本题主要考查随机文件与顺序文件的特点与区别,及文件操作的特点。Visual Basic 中有3 种文件访问的类型:顺序文件、随机文件、二进制文件。随机文件又称直接存取文件,简称随机文件或直接文件。随机文件的每个记录都有一个记录号,在写入数据时只要指定记录号,就可以把数据直接存入指定位置。而在读取数据时,只要给出记录号,就可直接读取。在记录文件中,可以同时进行读、写操作,所以能快速地查找和修改每个记录,不必为修改某个记录而像顺序文件那样,对整个文件进行读、写操作。其优点是数据存取较为灵活,方便,速度快,容易修
21、改,主要缺点是占空间较大,数据组织复杂。顺序文件:顺序文件将文件中的记录一个接一个地按顺序存放。二进制访问能提供对文件的完全控制,因为文件中的字节可以代表任何东西,当要使文件的尺寸尽量小时,应使用二进制访问。在文件处理过程中,执行完 Open 操作后,程序将生成一个文件指针,程序可以调用 LOF 函数来获得返回给文件分配的字节数。在随机文件中,每个记录的长度是固定的记录中的每个字段的长度也是固定的。因为是操作随机文件,所以选 D。32.有弹出式菜单的结构如下表所示,程序运行时,单击窗体则弹出如下图所示的菜单。下面的事件过程中能正确实现这一功能的是( )(分数:2.00)A.B.C. D.解析:
22、解析 PopupMenu 方法用来显示弹出式菜单,其格式为:对象.PopupMenu 菜单名,Flags,X,Y,BoldCommand。根据题意,为了显示菜单,所以要把 PopupMenu 方法放到 Form_Click 事件中,菜单名为edit,所以选 C。33.请阅读程序:Option Base 1Private Sub Form_Click()Dim Arr(4,4)As IntegerFor i=1 To 4For j=1 To 4Art(i,j)=(i-1)*2+jNext jNext iFor i=3 To 4For j=3 To 4Print Arr(j,i)Next jPri
23、ntNext iEnd Sub程序运行后,单击窗体,则输出结果是( )A5 76 8 B6 87 9C7 98 10D8 108 11(分数:2.00)A.B.C. D.解析:解析 本题利用嵌套 for 循环给数组 Arr 赋值。结果是 Arr(3,3)=7,Arr(3,4)=8,Arr(4,3)=9,Arr(4,4)=10,其他与后面程序无关,然后再次利用嵌套循环输出,输出顺序为 Arr(3,3),Arr(4,3),print,Arr(3,4),Arr(4,4),所以结果为 C。34.下面函数的功能应该是:删除字符串 str 中所有与变量 ch 相同的字符,并返回删除后的结果,例如若str=
24、“ABCDABCD“,ch=“B“,则函数的返回值为:“ACDACD”Function delchar(str As String,ch As String)As StringDim k As Integer,temp As String,ret As Stringret=“ “For k=1 To Len(str)temp=Mid(str,k,1)If temp=ch Thenret=ret&tempEnd IfNext kdelchar=retEnd Function但实际上函数有错误,需要修改,下面的修改方案中正确的是( )A把 ret=ret&temp 改为 ret=temp B把 I
25、f temp=ch Then 改为 If tempch ThenC把 delchar=ret 改为 delchar=temp D把 ret=“ “改为 temp=“ /(分数:2.00)A.B. C.D.解析:解析 Mid 函数用于提取字符串中的指定位数。Len 函数的作用是返回串的长度。本题中,For k=1 To Len(str)语句的作用是每次循环提取 str 串中的一个字符,语句 temp=Mid(str,k,1)的作用是将提取的字符存入字符变量 temp 中,然后将 temp 和用户欲删除的字符做比对,若不同,则将此字符插入到字符串 ret 的末尾。循环结束 ret 中保存的就是不包
26、含用户欲删除字符的字符串,也就是题目要求的字符串了,所以选 B。35.在窗体上画一个命令按钮和两个文本框,其名称分别为 Command1、Text1 和 Text2,在属性窗口中把窗体的 KeyPreview 属性设置为 True,然后编写如下程序:Dim S1 As String,S2 As StringPrivate Sub Form_Load()Text1.Text=“ “Text2.Text=“ “Text1.Enabled=FalseText2.Enabled=FalseEnd SubPrivate Sub Form_KeyDown(KeyCode As Integer,Shift
27、As Integer)S2=S2&Chr(KeyCode)End SubPrivate Sub Form_KeyPress(KeyAscii As Integer)S1=S1&Chr(KeyAscii)End SubPrivate Sub Command1_Click()Text1.Text=S1Text2.Text=S2S1=“ “S2=“ “End Sub程序运行后,先后按“a”、“b”、“c”键,然后单击命令按钮,在文本框 Text1 和 Text2 中显示的内容分别为( )Aabc 和 ABC B空白CABC 和 abc D出错(分数:2.00)A. B.C.D.解析:解析 KeyPr
28、eview 属性被设置为 True,则一个窗体先于该窗体上的控件接收到此事件。Form_Load 事件是窗体载入事件,常用于窗体的初始化,Text1 和 Text2 的属性 Enabled 设置成 False,禁止向文本框里输入。本题中 Form_KeyDown,Form_KeyPress 事件的作用是将用户按下的按键值分别传给字符串 s1、s2,然后通过命令按钮输出。二、填空题(总题数:9,分数:30.00)36.一个栈的初始状态为空。首先将元素 5,4,3,2,1 依次入栈,然后退栈一次,再将元素 A,B,C,D依次入栈,之后将所有元素全部退栈,则所有元素退栈(包括中间退栈的元素)的顺序为
29、 1。(分数:2.00)填空项 1:_ (正确答案:填 1DCBA2345)解析:解析 栈是限制仅在表的一端进行插入和删除的运算的线性表,通常称插入、删除的这一端为栈顶,另一端称为栈底。37.在长度为 n 的线性表中,寻找最大项至少需要比较 1。(分数:2.00)填空项 1:_ (正确答案:1)解析:解析 题干未说明线性表的元素是否已排序,若元素已降序排列,则用顺序查找法最少只需要找1 次。38.一棵二叉树有 10 个度为 1 的结点,7 个度为 2 的结点,则该二叉树共有 1 个结点。(分数:2.00)填空项 1:_ (正确答案:填 25)解析:解析 在任意一棵二叉树中,度数为 0 的结点(
30、即叶子结点)总比度为 2 的结点多一个,因此该二叉树中叶子结点为 7+1=8,8+17=25。39.仅由顺序、选择(分支)和重复(循环)结构构成的程序是 1 程序。(分数:2.00)填空项 1:_ (正确答案:结构化)解析:解析 结构化程序可以分为三种基本结构,即顺序结构、分支结构、循环结构。40.数据库设计的四个阶段是:需求分析,概念设计,逻辑设计和 1。(分数:2.00)填空项 1:_ (正确答案:物理设计)解析:解析 数据库设计的四个阶段包括:需求分析、概念设计、逻辑设计和物理设计四个阶段。41.窗体上有一个名称为 Combo1 的组合框,其初始内容为空,有一个名称为 Command1、
31、标题为“添加项目”的命令按钮,程序运行后,如果单击命令按钮,会将给定数组中的项目添加到组合框中,如图所示,请填空。(分数:6.00)填空项 1:_ (正确答案:Array 1 city(i))解析:解析 根据题意欲创建名为 city 的数组,所以第一空填 Array,然后利用 for 循环遍历数组 city的元素,由 Option Base 1 语句知数组的下界限定为 1,所以第二空填 1,Combo1.AddItem city(i)的作用是将数组中的第 i 项的字符串添加到 Combo1 中构成组合框中下拉列表的第 i 项,所以第三空填 city(i)。42.窗体上有一个名称为 Text1
32、的文本框和一个名称为 Command1、标题为“计算”的命令按钮,如图所示。函数 fun 及命令按钮的单击事件过程如下,请填空。(分数:4.00)填空项 1:_ (正确答案:fun 276)解析:解析 因为 fun 是个求值函数,故通过函数名返回值,所以第一空填 fun。本题中 fun 函数的参数 n 是按地址传送的(印此值不会在函数结束后被销毁),所以语句 Str(fun(x)+fun(x)+fun(x),据题意可知第一个 fun(x)结果为 4,第二个 fun(x)结果为 16,第三次 fun(x)结果为 256,所以第二空填 276。43.窗体上有一个名称为 List1 的列表框,一个名
33、称为 Picture1 的图片框。Form_Load 事件过程的作用是把 Data1.txt 文件中的物品名称添加到列表框中。运行程序,当双击列表框中的物品名称时,可以把该物品对应的图片显示在图片框中,如图所示,以下是类型定义及程序,请填空。(分数:6.00)填空项 1:_ (正确答案:Len p(i).gName picFile)解析:解析 Open 语句格式 Open filename For Random as#filenumber Len=Reclength。(1)参数filename 和 filenumber 分别表示文件名或文件号。(2)关键字 Random 表示打开的是随机文件。
34、(3)Len 子句用于设置记录长度,长度由参数 Reclength 指定,Reclength 的值必须大于 0,而且必须与定义的记录结构的长度一致。本题中 Len(pRec)是求 pic 结构类型的长度,也就是设置欲读取的结构类型的长度,所以第一空填 Len。RTtim(List1.List(i)=RTrim(),此判定表达式的作用是判定列表框中的列表项的值和物品名是否相同,函数 trim 是去字符串中的空格,是干扰项,对本题没什么影响,所以第二空填p(i)gName。语句 Picturel.Picture=LoadPicture(p(i).picFile)的作用是装载指定的图片,loadPi
35、cture 函数的参数是所要载入图片的图片名,所以第三空填 picFile。44.窗体上有一个名称为 CD1 的通用对话框,通过菜单编辑器建立如下图左图所示的菜单。程序运行时,如果单击“文件”菜单项,则执行打开文件的操作,当选定了文件(例如 G:/VB/2010-9/in.txt)并打开后,该文件的文件名会被添加到菜单中,如下图右图所示,各菜单项的名称和标题等定义如下表所示。(分数:4.00)填空项 1:_ (正确答案:Cd1.FileName Visible)解析:解析 语句 Open Cd1.FileName For Input As # 1 的作用是读取文件的内容,而 Cd1.FileName属性就是打开文件操作时用户选中的 in.txt 文件的名字(包含文件的绝对路径),所以第一空填Cd1.FileName。由于菜单 FName 的 Visible 属性是 False,为了要将其显示,第二空须填 Visible。