2011年3月全国计算机等级考试二级Visual Basic语言程序设计笔试

更新时间:2024-03-19 01:58:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2011年3月全国计算机等级考试二级Visual Basic语言程序设计

笔试真题

一、选择题(每小题2分,共70分)

下列各题A、B、C、D四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡 相应位置上,答在试卷上不得分。 1. 下列关于栈叙述正确的是 A. 栈顶元素最先能被删除 B. 栈顶元素最后才能被删除 C. 栈底元素永远不能被删除 D. 上述三种说法都不对 答案:A

解析:在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。故本题选A。 2. 下列叙述中正确的是

A. 有一个以上根结点的数据结构不一定是非线性结构 B. 只有一个根结点的数据结构不一定是线性结构 C. 循环链表是非线性结构 D. 双向链表是非线性结构 答案:B

解析:如果一个非空的数据结构满足以下两个条件:(1)有且只有一个根结点;(2)每个结点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构。如果一个数据结构不是线性结构,则称之为非线性结构,故A项错误。有一个根结点的数据结构不一定是线性结构,如二叉树,B项说法正确。循环链表和双向链表都属于线性链表,故C、D项错误。 3. 某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层) A. 3 B. 4 C. 6 D. 7 答案:D

解析:根据二叉树的性质:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。所以n2=0,由n=n0+n1+n2可得n1=6,即该二叉树有6个度为1的结点,可推出该二叉树的深度为7。

4. 在软件开发中,需求分析阶段产生的主要文档是 A. 软件集成测试计划 B. 软件详细设计说明书 C. 用户手册

D. 软件需求规格说明书 答案:D

解析:软件需求规格说明书是需求分析阶段的最后成果,是软件开发中的重要文档之一。 5. 结构化程序所要求的基本结构不包括

A. 顺序结构 B. GOTO跳转

C. 选择(分支)结构 D. 重复(循环)结构 答案:B

解析:结构化程序设计的三种基本控制结构为:顺序结构、选择结构和重复结构。 6. 下面描述中错误的是

A. 系统总体结构图支持软件系统的详细设计 B. 软件设计是将软件需求转换为软件表示的过程 C. 数据结构与数据库设计是软件设计的任务之一 D. PAD图是软件详细设计的表示工具 答案:A

7. 负责数据库中查询操作的数据库语言是 A. 数据定义语言 B. 数据管理语言 C. 数据操纵语言 D. 数据控制语言 答案:C

解析:数据操纵语言负责数据的操纵,包括查询及增、删、改等操作。

8. 一个教师可讲授多门课程,一门课程可由多个教师讲授。则实体教师和课程间的联系是 A. 1∶1联系 B. 1∶m联系 C. m∶1联系 D. m∶n联系 答案:D

9. 有三个关系R、S和T如下: 则由关系R和S得到关系T的操作是 A. 自然连接 B. 交 C. 除 D. 并 答案:C

10. 定义无符号整数类为UInt,下面可以作为类UInt实例化值的是 A. -369 B. 369 C. 0.369

D. 整数集合{1,2,3,4,5} 答案:B

解析:A项为有符号型,C项为实型常量,D项为整数集合,只有B项符合,故本题选B。 11. 在Visual Basic集成环境中,可以列出工程中所有模块名称的窗口是 A. 工程资源管理器窗口 B. 窗体设计窗口 C. 属性窗口 D. 代码窗口

答案:A

12. 假定编写了如下4个窗体事件的事件过程,则运行应用程序并显示窗体后,已经执行的事件过程是 A. Load B. Click C. LostFocus D. KeyPress 答案:A 解析:Load事件用来在启动程序时对属性和变量进行初始化,在装入窗体后,如果运行程序,将自动触发该事件。

13. 为了使标签具有\透明\的显示效果,需要设置的属性是 A. Caption B. Alignment C. BackStyle D. AutoSize 答案:C 解析:Caption属性用来在标签中显示文本;Alignment属性用来确定标签中标签的放置方式 ;AutoSize属性设置标签是否根据标题的长度自动调整大小;BackStyle属性可以取两个值,当值为1时,标签将覆盖背景,当值为0时,则标签具有“透明”的显示效果。 14. 下面可以产生20~30(含20和30)的随机整数的表达式是 A. Int(Rnd*10+20) B. Int(Rnd*11+20) C. Int(Rnd*20+30) D. Int(Rnd*30+20) 答案:B

解析:Rnd函数用来生成范围在[0,1)之间的随机数。

15. 设窗体上有一个名称为HS1的水平滚动条,如果执行了语句: HS1.Value=(HS1.Max-HS1.Min)/2+HS1.Min则 A. 滚动块处于最左端 B. 滚动块处于最右端 C. 滚动块处于中间位置

D. 滚动块可能处于任何位置,具体位置取决于Max、Min属性的值 答案:C

解析:本题中语句的设置效果是将滚动条的Value值设为当前滚动条刻度个数的1/2再加上Min值,此值正好为滚动条的中间位置,而Value值用来设置滚动块的位置,故答案为C。 16. 窗体上有一个名称为Cb1的组合框,程序运行后,为了输出选中的列表项,应使用的语句是

A. Print Cb1.Selected

B. Print Cb1.List(Cb1.ListIndex) C. Print Cb1.Selected Text D. Print Cb1.List(ListIndex) 答案:B

17. 为了在窗体上建立2组单选按钮,并且当程序运行时,每组都可以有一个单选按钮被选中,则以下做法中正确的是

A. 把这2组单选按钮设置为名称不同的2个控件数组 B. 使2组单选按钮的Index属性分别相同 C. 使2组单选按钮的名称分别相同

D. 把2组单选按钮分别画到2个不同的框架中 答案:D

解析:当窗体上有多个单选按钮时,如果选择其中的一个,其他单选按钮将自动关闭。当需要在同一个窗体上建立几组相互独立的单选按钮时,则必须通过框架为单选按钮分组,使得在一个框架内的单选按钮为一组,每个框架内的单选按钮操作不影响其他组的按钮。 18. 如果一个直线控件在窗体上呈现为一条垂直线,则可以确定的是 A. 它的Y1、Y2属性的值相等 B. 它的X1、X2属性的值相等

C. 它的X1、Y1属性的值分别与X2、Y2属性的值相等 D. 它的X1、X2属性的值分别与Y1、Y2属性的值相等 答案:B

解析:平行线的Y1、Y2属性的值相等;垂直线的X1、X2属性的值相等。 19. 设a=2,b=3,c=4,d=5,则下面语句的输出是 Print3>2*b Or a=c And b<>c Or c>d A. False B. 1 C. True D. -1 答案:A

解析:分别计算表达式3>2*b;a=c And b<>c;c>d的值,其值均为False,则输出为False。 20. 窗体Form1上有一个名称为Command1的命令按钮,以下对应窗体单击事件的事件过程是 A. A B. B C. C D. D 答案:A

21. 默认情况下,下面声明的数组的元素个数是 Dim a(5,-2 To 2) A. 20 B. 24 C. 25 D. 30 答案:D

解析:VB中数组下标默认从0开始,数组定义的值为数组可取的最大值,因此第一维可取值为6个,第二维可取值为:-2,-1,0,1,2,为5个,故数组元素个数为5*6=30个。 22. 设有如下程序段: Dim a(10) ?

For Each x In a Print x; Next x

在上面的程序段中,变量x必须是 A. 整型变量 B. 变体型变量 C. 动态数组 D. 静态数组 答案:B

解析:在For Each?Next语句中,x为一个变体变量,它是为循环提供的,并在For Each?Next结构中重复使用,它实际上代表的是数组中的每个元素。 23. 设有以下函数过程

Private Function Fun(a() As Integer, b As String)As Integer ?

End Function 若已有变量声明:

Dim x(5)As Integer,n As Integer,ch As String 则下面正确的过程调用语句是 A. x(0)=Fun(x,\B. n=Fun(n,ch) C. Call Fun x,\D. n=Fun(x(5),ch) 答案:A

24. 假定用下面的语句打开文件: Open \则不能正确读文件的语句是 A. Input #1,ch$

B. Line Input #1,ch$ C. ch$=Input$(5,#1) D. Read #1,ch$ 答案:D

解析:本题打开的是顺序文件,读取方式有:Input #语句,Line Input #语句,Input函数,故答案选D。

25. 下面程序的执行结果是 Private Sub Command1_Click() a=10

For k=1 To 5 Step-1 a=a-k Next k Print a;k End Sub A. -56 B. -5-5 C. 100 D. 101 答案:D

解析:本题For循环的步长为-1,但题中给出的初始值比终止值小,因此循环未执行,故a

值未变,仍为10。k值需被赋值为1后与5作比较才知道大小,故k值为1。

26. 设窗体上有一个名为Text1的文本框和一个名为Command1的命令按钮,并有以下事件过程:

Private Sub Command1_Click() x!=Val(Text1.Text) Select Case x

Case Is<-10,Is>=20 Print\输入错误\Case Is<0 Print 20-x Case Is<10 Print 20 Case Is<=20 Print x+10 End Select End Sub

程序运行时,如果在文本框中输入-5,则单击命令按钮后的输出结果是 A. 5 B. 20 C. 25

D. 输入错误 答案:C

解析:本题考查的知识点是Select Case语句,其功能是根据“测试表达式”的值(本题中测试表达式为x),从多个语句块中选择符合条件的一个语句块执行。 27. 设有如下程序

Private Sub Command1_Click() x=10:y=0 For i=1 To 5 Do x=x-2 y=y+2

Loop Until y>5 Or x<-1 Next End Sub

运行程序,其中Do循环执行的次数是 A. 15 B. 10 C. 7 D. 3 答案:C

解析:本题需要注意区分Do Until?Loop语句和Do?Loop Until语句。后者为后判断条件的循环语句,无论初始条件是否满足都至少执行一次循环,当条件满足时跳出循环。 28. 阅读程序:

Private Sub Command1_Click()

Dim arr

Dim i As Integer

arr=Array(0,1,2,3,4,5,6,7,8,9,10) For i=0 To 2 Print arr(7-i); Next End Sub

程序运行后,窗体上显示的是 A. 8 7 6 B. 7 6 5 C. 6 5 4 D. 5 4 3 答案:B 解析:本题中,arr被Array函数定义为数组并被赋初值;For循环中i的值为0到2,那么,7-i的值为7,6,5;Print arr(7-i)也就是输出arr(7),arr(6),arr(5)的值,即输出7,6,5。 29. 在窗体上画一个名为Command1的命令按钮,然后编写以下程序: Private Sub Command1_Click() Dim a(10)As Integer For k=10 To 1 Step-1 a(k)=20-2*k Next k k=k+7

Print a(k-a(k)) End Sub

运行程序,单击命令按钮,输出结果是 A. 18 B. 12 C. 8 D. 6 答案:A

30. 窗体上有一个名为Command1的命令按钮,并有如下程序: Private Sub Command1_Click() Dim a(10),x% For k=1 To 10

a(k)=Int(Rnd*90+10) x=x+a(k)Mod 2 Next k Print x End Sub

程序运行后,单击命令按钮,输出结果是 A. 10个数中奇数的个数 B. 10个数中偶数的个数 C. 10个数中奇数的累加和 D. 10个数中偶数的累加和

答案:A

解析:Mod函数为求余函数,与2取余,值为0表示为偶数,值为1表示为奇数。因加上0对x的值并无影响,加上1表示有一个奇数,因此答案为A。

31. 窗体上有一个名为Command1的命令按钮和一个名为Timer1的计时器,并有下面的事件过程:

Private Sub Command1_Click() Timer1.Enabled=True End Sub

Private Sub Form_Load() Timer1.Interval=10 Timer1.Enabled=False End Sub

Private Sub Timer1_Timer() Command1.Left=Command1.Left+10 End Sub

程序运行时,单击命令按钮,则产生的结果是 A. 命令按钮每10秒向左移动一次 B. 命令按钮每10秒向右移动一次 C. 命令按钮每10毫秒向左移动一次 D. 命令按钮每10毫秒向右移动一次 答案:D

解析:Interval属性的单位为毫秒。

32. 设窗体上有一个名为List1的列表框,并编写下面的事件过程: Private Sub List1_Click() Dim ch As String

ch=List1.List(List1.ListIndex) List1.RemoveItem List1.ListIndex List1.AddItem ch End Sub

程序运行时,单击一个列表项,则产生的结果是 A. 该列表项被移到列表的最前面 B. 该列表项被删除

C. 该列表项被移到列表的最后面 D. 该列表项被删除后又在原位置插入 答案:C

解析:RemoveItem方法作用是删除项;AddItem方法作用是添加项,若省略Index值,则默认为插入到列表的最后面。

33. 窗体上有一个名为Command1的命令按钮,并有如下程序: Private Sub Command1_Click() Dim a As Integer,b As Integer a=8 b=12

Print Fun(a,b);a;b End Sub

Private Function Fun(ByVal a As Integer,b As Integer)As Integer a=a Mod 5 b=b\5 Fun=a

End Function

程序运行时,单击命令按钮,则输出结果是 A. 332 B. 382 C. 8812 D. 3812 答案:B

34. 为了从当前文件夹中读入文件File1.txt,某人编写了下面的程序: Private Sub Command1_Click()

Open \Do While Not EOF(20) Line Input #20,ch$ print ch Loop

Close #20 End Sub

程序调试时,发现有错误,下面的修改方案中正确的是 A. 在Open语句中的文件名前添加路径 B. 把程序中各处的\改为\

C. 把Print ch语句改为Print #20,ch D. 把Open语句中的Output改为Input 答案:D 解析:本题要求从当前文件夹中读入文件,因此在Open语句中应使用输入(Input)打开文件。 35. 以下程序运行后的窗体如图所示。其中组合框的名称是Combo1,已有列表项如图所示;命令按钮的名称是Command1。 Private Sub Command1_Click() If Not Check(Combo1.Text) Then MsgBox(\输入错误\Exit Sub End If

For k=0 To Combo1.ListCount-1

If Combo1.Text=Combo1.List(k) Then MsgBox(\添加项目失败\Exit Sub End If Next k

Combo1.AddItem Combo1.Text MsgBox(\添加项目成功\End Sub

Private Function Check(ch As String)As Boolean

n=Len(ch) For k=1 To n

c$=UCase(Mid(ch,k,l)) If c<\Check=False Exit Function End If Next k Check=True End Function

程序运行时,如果在组合框的编辑区中输入“Java”,则单击命令按钮后产生的结果是 A. 显示\输入错误\B. 显示\添加项目失败\C. 显示\添加项目成功\D. 没有任何显示 答案:B

二、填空题(每空2分,共30分)

请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。 1. 有序线性表能进行二分查找的前提是该线性表必须是【1_______】存储的。 答案:【1】顺序【解析】二分查找只适用于顺序存储的有序线性表。

2. 一棵二叉树的中序遍历结果为DBEAFC,前序遍历结果为ABDECF,则后序遍历结果为【 2_______】。

答案:【2】DEBFCA

3. 对软件设计的最小单位(模块或程序单元)进行的测试通常称为【3_______】测试。 答案:【3】单元【解析】单元测试是对软件设计的最小单位——模块(程序单元)进行正确性检验的测试。单元测试的目的是发现各模块内部可能存在的各种错误。 4. 实体完整性约束要求关系数据库中元组的【4_______】属性值不能为空。

答案:【4】主键【解析】实体完整性约束要求关系的主键中属性值不能为空值,因为主键是惟一决定元组的,如为空值则其惟一性就成为不可能的了。

5. 在关系A(S,SN,D)和关系B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则称【5_______】是关系A的外码。

答案:【5】D【解析】如果表A中的某属性集是某表B的键,则称该属性集为A的外键或外码。 6. 在窗体上有1个名称为Command1的命令按钮,并有如下事件过程和函数过程: Private Sub Command1_Click() Dim p As Integer p=m(1)+m(2)+m(3) Print p End Sub

Private Function m(n As Integer)As Integer Static s As Integer For k=1 To n s=s+1 Next m=s

End Function

运行程序,单击命令按钮Command1后的输出结果为【6_______】。 答案:【6】10

7. 在窗体上画1个名称为Command1的命令按钮,然后编写如下程序: Private Sub Command1_Click() Dim m As Integer,x As Integer Dim flag As Boolean flag=False

n=Val(InputBox(\请输入任意1个正整数\Do While Not flag a=2

flag=【7_______】

Do While flag And a <=Int(Sqr(n)) If n/a=n\a Then flag=False Else

【8_______】 End If Loop

If Not flag Then n=n+1 Loop

Print【9_______】 End Sub

上述程序的功能是,当在键盘输入任意的1个正整数时,将输出不小于该整数的最小素数。请填空完善程序。

答案:【7】True 【8】a=a+1【9】n 8. 以下程序的功能是:先将随机产生的10个不同的整数放入数组a中,再将这10个数按升序方式输出。请填空。

Private Sub Form_Click()

Dim a(10) As Integer, i As Integer Randomize i=0 Do

num=Int(Rnd*90)+10

For j=1 To i’检查新产生的随机数是否与以前的相同,相同的无效 If num=a(j) Then Exit For End If Next j

If j>i Then i=i+1

a(i)=【10_______】 End If

Loop While i<10

For i=1 To 9

For j=【11_______】To 10

If a(i)>a(j) Then temp=a(i):a(i)=a(j):【12_______】 Next j Next i

For i=1 To 10 Print a(i) Next i End Sub

答案:【10】num【11】i+1【12】a(j)=temp

9. 窗体上已有名称分别为Drive1、Dir1、File1的驱动器列表框、目录列表框和文件列表框 ,且有1个名称为Text1的文本框。以下程序的功能是:将指定位置中扩展名为“.txt”的文件显示在File1中,如果双击File1中的某个文件,则在Text1中显示该文件的内容。请填空。 Private Sub Form_Load() File1.Pattern=【13_______】 End Sub

Private Sub Drive1_Change() Dir1.Path=Drive1.Drive End Sub

Private Sub Dir1_Change() File1.Path=Dir1.Path End Sub

Private Sub File1_DblClick() Dim s As String*1

If Right(File1.Path,1)=\\\f_name=File1.Path+File1.FileName Else

f_name=File1.Path+\\\End If

Open f_name【14_______】As #1 Text1.Text=\

Do While【15_______】 s=Input(1,#1)

Text1.Text=Text1.Text+s Loop Close #1 End Sub mp

答案:【13】*.txt【14】For Input【15】NOT EOF(1)

本文来源:https://www.bwwdw.com/article/d2v8.html

Top