(考试时间120分钟满分100分)
一、选择题(每小题1分,共40分)
1.窗体上的3个命令按钮构成名称为Command1的控件数组,如图1所示。
图1
程序如下:
Private Sub Command1_Click(Index As Integer) If Index= 1 Then Print"计算机等级考试" End If If Index=2 Then Print Command1(2).Caption End If End Sub
运行程序,单击“命令按钮2”,则如下叙述中正确的是(
)。
A.Print Command1(2).Caption语句有错
B.在窗体上显示“命令按钮2”
C.在窗体上显示“命令按钮3”
D.在窗体上显示“计算机等级考试”
2.在窗体上画一个名称为Command1的命令按钮,再画两个名称分别为Label1、Label2的标签,然后编写如下程序代码:
Private X As Integer Private Sub Command1_Click() X=5:Y=3 Call proc(X,Y) Label1.Caption=X Label2.Caption=Y End Sub Private Sub proc(a As Integer, ByVal b As Integer) X=a*a Y=b+b End Sub
程序运行后,单击命令按钮,则两个标签中显示的内容分别是(
)。
A.25和3
B.5和3
C.25和6
D.5和6
3.下列数据结构中,能够按照“先进后出”原则存取数据的是(
)。
A.循环队列
B.栈
C.队列
D.二叉树
4.设有如下通用过程:
Public Function Fun(xStr As String)As String Dim tStr As String,strL As Integer tStr="" strL=Len(xStr) i=1 Do While i<=strL/2 tStr=tStr & Mid(xStr,i,1)& Mid(xStr,strL-i+1,1) i=i+1 Loop Fun=tStr End Function
在窗体上画一个名称为Command1 的命令按钮,然后编写如下的事件过程:
Private Sub Command1_Click() Dim S1 As String S1="abcdef" Print UCase(Fun(S1)) End Sub
程序运行后,单击命令按钮,输出结果是(
)。
A.ABCDEF
B.abcdef
C.AFBECD
D.DEFABC
5.软件设计中模块划分应遵循的准则是(
)。
A.低内聚低耦合
B.高内聚低耦合
C.低内聚高耦合
D.高内聚高耦合
6.窗体上有一个名称为Command1的命令按钮,其事件过程如下:
Private Sub Command1_Click() x="VisualBasicProgramming" a=Right(x,11) b=Mid(x,7,5) c=MsgBox(a,,b) End Sub
运行程序后单击命令按钮。以下叙述中错误的是(
)。
A.信息框的标题是Basic
B.信息框中的提示信息是Programming
C.c的值是函数的返回值
D.MsgBox的使用格式有错
7.表达式2*3^2+4*2/2+3^2的值是(
)。
A.30
B.31
C.49
D.48
8.下面程序的执行结果是(
)。
Private Sub Command1_Click() a=0 k=1 Do While k<4 x=k^k^a k=k+1 Print x; Loop End Sub
A.31427
B.111
C.149
D.000
9.用来设置文字字体是否斜体的属性是(
)。
A.FontUnderdine
B.FontBold
C.FontSlope
D.FontItalic
10.现有如下程序:
Private Sub Command1_Click() s=0 For i=1 To 5 s=s+f(5+i) Next Print s End Sub Public Function f(x As Integer) If x>=10 Then t=x+1 Else t=x+2 End If f=t End Function
运行程序,则窗体上显示的是(
)。
A.38
B.49
C.61
D.70
11.窗体上有一个名称为CD1的通用对话框控件和由4个命令按钮组成的控件数组Command1,其下标从左到右分别为0、1、2、3。窗体外观如图2所示。
图2
命令按钮的事件过程如下:
Private Sub Command1_Click(Index As Integer) Select Case Index Case 0 CD1.Action=1 Case 1 CD1.ShowSave Case 2 CD1.Action=5 Case 3 End End Select End Sub
对上述程序,下列叙述中错误的是(
)。
A.单击“打开”按钮,显示打开文件的对话框
B.单击“保存”按钮,显示保存文件的对话框
C.单击“打印”按钮,能够设置打印选项,并执行打印操作
D.单击“退出”按钮,结束程序的运行
12.设窗体上有名称为Option1的单选按钮,且程序中有语句:If Option1.Value=True Then
下面语句中与该语句不等价的是(
)。
A.If Option1.Value Then
B.If Option1=True Then
C.If Value=True Then
D.If Option1 Then
13.窗体上有一个名称为Picture1的图片框控件。一个名称为Label1的标签控件,如图3所示。
图3
现有如下程序:
Public Sub display(x As Control) If TypeOf x Is Label Then x.Caption="计算机等级考试" Else x.Picture=LoadPicture("pic.jpg") End If End Sub Private Sub Label1_Click() Call display(Label1) End Sub Private Sub Picture1_Click() Call display(Picture1) End Sub
对以上程序,下列叙述中错误的是(
)。
A.程序运行时会出错
B.单击图片框,在图片框中显示一幅图片
C.过程中的x是控件变量
D.单击标签,在标签中显示一串文字
14.在窗体上画一个文本框,其名称为Text1,为了在程序运行后隐藏该文本框,应使用的语句为(
)。
A.Text1.Clear
B.Text1.Visible=False
C.Text1.Hide
D.Text1.Enabled=False
15.设有如图4所示窗体和以下程序:
Private Sub Command1_Click() Text1.Text="Visual Basic" End Sub Private Sub Text1_LostFocus() If Text1.Text<>"BASIC" Then Text1.Text="" Text1.SetFocus End If End Sub
程序运行时,在Text1文本框中输入“Basic”(如图4所示),然后单击Command1按钮,则产生的结果是(
)。
图4
A.文本框中无内容,焦点在文本框中
B.文本框中为“Basic”,焦点在文本框中
C.文本框中为“Basic”,焦点在按钮上
D.文本框中为“Visua1 Basic”,焦点在按钮上
16.在窗体上画一个名为Command1的命令按钮,然后编写以下程序:
Private Sub Command1_Click() Dim M(10)As Integer For k=1 To 10 M(k)=12-k Next k x=8 Print M(2+M(x)) End Sub
运行程序,单击命令按钮,在窗体上显示的是(
)。
A.6
B.5
C.7
D.8
17.设a=4,b=5,c=6,执行语句Print a<b And b<c后,窗体上显示的是(
)。
A.True
B.False
C.出错信息
D.0
18.窗体上有一个名称为Timer1的计时器控件,一个名称为Shape1的形状控件,其Shape属性值为3(Circle)。编写程序如下:
Private Sub Form_Load() Shape1.Top=0 Timer1.Interval=100 End Sub Private Sub Timer1_Timer() Static x As Integer Shape1.Top=Shape1.Top+100 x=x+1 If x Mod 10=0 Then Shape1.Top=0 End If End Sub
以下关于上述程序的叙述中,错误的是(
)。
A.每执行一次Timer1_Timer事件过程,x的值都在原有基础上增加1
B.Shape1每移动10次回到起点,重新开始
C.窗体上的Shape1由下而上移动
D.Shape1每次移动100
19.在Visual Basic中,表达式3*2\5 Mod 3的值是(
)。
A.1
B.0
C.3
D.出现错误提示
20.为了对多个控件执行操作,必须选中这些控件。下列不能选中多个控件的操作是(
)。
A.按住Alt键,不要松开,然后单击每个要选中的控件
B.按住Shift键,不要松开,然后单击每个要选中的控件
C.按住Ctrl键,不要松开,然后单击每个要选中的控件
D.拖动鼠标画出一个虚线矩形,使所选中的控件位于这个矩形内
21.设窗体上有1个水平滚动条,已经通过属性窗口把它的Max属性设置为1,Min属性设置为100。下面叙述中正确的是(
)。
A.程序运行时,若使滚动块向左移动,滚动条的Value属性值就增加
B.程序运行时,若使滚动块向左移动,滚动条的Value属性值就减少
C.由于滚动条的Max属性值小于Min属性值,程序会出错
D.由于滚动条的Max属性值小于Min属性值,程序运行时滚动条的长度会缩为一点,滚动块无法移动
22.若在窗体模块的声明部分声明了如下自定义类型和数组:
Private Type rec Code As Integer Caption As String End Type Dim arr(5)As rec
则下面的输出语句中正确的是(
)。
A.Print arr.Code(2),arr.Caption(2)
B.Print arr.Code,arr.Caption
C.Print arr(2).Code,arr(2).Caption
D.Print Code(2),Caption(2)
23.设窗体上有一个标签Label1和一个计时器Timer1,Timer1的Interval属性被设置为1000,Enabled属性被设置为True。要求程序运行时每秒在标签中显示一次系统当前时间。以下可以实现上述要求的事件过程是(
)。
A.
Private Sub Timer1_Timer() Label1.Caption=True End Sub
B.
Private Sub Timer1_Timer() Label1.Caption=Time $ End Sub
C.
Private Sub Timer1_Timer() Label1.Interval=1 End Sub
D.
Private Sub Timer1_Timer() For k=1 To Timer1.Interval Label1.Caption=Timer Next k End Sub
24.执行下列语句:
strInput=InputBox("请输入字符串","字符串对话框","字符串")
将显示输入对话框。此时如果直接单击“确定”按钮,则变量strInput的内容是(
)。
A."请输入字符串"
B."字符串对话框"
C."字符串"
D.空字符串
25.数据库应用系统中的核心问题是(
)。
A.数据库设计
B.数据库系统设计
C.数据库维护
D.数据库管理员培训
26.把数学表达式
表示为正确的VB表达式应该是(
)。
A.(5x+3)/(2y-6)
B.x*5+3/2*y-6
C.(5*x+3)÷(2*y-6)
D.(x*5+3)/(y*2-6)
27.数据流图中带有箭头的线段表示的是(
)。
A.控制流
B.事件驱动
C.模块调用
D.数据流
28.为把圆周率的近似值3.14159存放在变量pi中,应该把变量pi定义为(
)。
A.Dim pi As Integer
B.Dim pi(7)As Integer
C.Dim pi As Single
D.Dim pi As Long
29.下面是求最大公约数的函数的首部:
Function gcd(ByVal x As Integer, ByVal y As Integer)As Integer
若要输出8、12、16这3个数的最大公约数,下面正确的语句是(
)。
A.Print gcd(8,12),gcd(12,16),gcd(16,8)
B.Print gcd(8,12,16)
C.Print gcd(8),gcd(12),gcd(16)
D.Print gcd(8,gcd(12,16))
30.在软件开发中,需求分析阶段可以使用的工具是(
)。
A.N-S图
B.DFD图
C.PAD图
D.程序流程图
31.在E-R图中,用来表示实体联系的图形是(
)。
A.椭圆形
B.矩形
C.菱形
D.三角形
32.下列数据结构中,属于非线性结构的是(
)。
A.循环队列
B.带链队列
C.二叉树
D.带链栈
33.有三个关系R、S和T如下:
其中关系T由关系R和S通过某种操作得到,该操作为(
)。
A.选择
B.投影
C.交
D.并
34.在窗体上画一个文本框(名称为Text1)和一个标签(名称为Label1),程序运行后,在文本框中每输入一个字符,都会立即在标签中显示文本框中字符的个数。以下可以实现上述操作的事件过程是(
)。
A.
Private Sub Text1_Change() Label1.Caption=Str(Len(Text1.Text)) End Sub
B.
Private Sub Text1_Click() Label1.Caption=Str(Len(Text1.Text)) End Sub
C.
Private Sub Text1_Change() Label1.Caption=Text1.Text End Sub
D.
Private Sub Label1_Change() Label1.Caption=Str(Len(Text1.Text)) End Sub
35.以下变量名中合法的是(
)。
A.x2-1
B.print
C.str_n
D.2x
36.在软件开发中,需求分析阶段产生的主要文档是(
)。
A.可行性分析报告
B.软件需求规格说明书
C.概要设计说明书
D.集成测试计划
37.设窗体上有一个列表框控件List1,含有若干列表项。以下能表示当前被选中的列表项内容的是(
)。
A.List1.List
B.List1.ListIndex
C.List1.Text
D.List1.Index
38.耦合性和内聚性是对模块独立性度量的两个标准。下列叙述中正确的是(
)。
A.提高耦合性降低内聚性有利于提高模块的独立性
B.降低耦合性提高内聚性有利于提高模块的独立性
C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度
D.内聚性是指模块间互相连接的紧密程度
39.为计算n!(0<n<=12)编写如下函数过程:
Private Function fun(n As Integer)As Long Dim p As Long p=1 For k=n-1 To 2 Step-1 p=p*k Next k fun=p End Function
在调试时发现该函数过程产生的结果是错误的,程序需要修改。下面的修改方案中有3种是正确的,错误的方案是(
)。
A.把p=1改为p=n
B.把For k=n-1 T0 2 Step-1改为For k=1 To n-1
C.把For k=n-1 T0 2 Step-1改为For k=1 To n
D.把For k=n-1 T0 2 Step-1改为For k=2 To n
40.以下叙述中错误的是(
)。
A.标准模块文件的扩展名是.bas
B.标准模块文件是纯代码文件
C.在标准模块中声明的全局变量可以在整个工程中使用
D.在标准模块中不能定义过程
二、基本操作题(共18分)
(1)请在名称为Form1的窗体上添加一个名称为H1的水平滚动条,并在属性窗口中设置它的属性值,使其满足下列要求:它的最小刻度值为1,最大刻度值为100,在程序运行时,用鼠标单击滚动条上滚动框以外的区域(不包括两边按钮),滚动框移动10个刻度。再在滚动条下面画两个名称分别为L1和L2的标签,并分别显示1和100。运行时的窗体如图5所示。
图5
注意:存盘时必须存放在考生文件夹下,工程文件名为sjt1.vbp,窗体文件名为sjt1.frm。
答: 步骤1:打开Visual Basic开发环境,按照题目的要求新建窗体并添加一个水平滚动条控件,如图10所示。
图10(a)
图10(b)
图10
步骤2:在属性窗口中,按照题目的要求设置水平滚动条的相关属性,如图11所示。
图11(a)
图11(b)
图11
步骤3:按照题目的要求,在窗体上添加两个标签控件,如图12所示。
图12
步骤4:按照题目的要求设置两个标签的相关属性,如图13所示。
图13(a)
图13(b) 图13
程序中用到的控件及属性如表2所示:
表2
步骤5:按下键盘上的F5键运行程序,程序运行后的窗体界面如图14所示。
图14
步骤6:按题目要求保存工程和窗体,如图15所示。
图15(a)
图15(b)
图15(c) 图15
(2)在名称为Form1的窗体上添加两个名称分别为Text1和Text2的文本框,初始内容均为空;再建立一个下拉菜单,菜单标题为“操作”,名称为M1,此菜单下含有两个菜单项,名称分别为Copy和Clear,标题分别为“复制”、“清除”,请编写适当的事件过程,使得在程序运行时,单击“复制”选项菜单,则把Text1中的内容复制到Text2中;单击“清除”选项菜单,则清除Text2中的内容(即在Text2中填入空字符串)。运行时的窗体如图6所示。要求在程序中不得使用任何变量,每个事件过程中只能写一条语句。
图6
注意:存盘时必须存放在考生文件夹下,工程文件名为sjt2.vbp,窗体文件名为sjt2.frm。
答: 步骤1:新建窗体,按表3建立菜单项并设置其属性,如图16所示。
表3
图16(a)
图16(b)
图16(c) 图16
步骤2:同步骤1,输入第3项的标题和名称,单击“确定”按钮即可。
步骤3:添加文本框控件,按表4设置文本框的属性。
表4
步骤4:打开代码编写窗口,如图17所示,编写程序代码。
图17
【参考答案】
Private Sub Clear_Click() Text2.Text="" End Sub Private Sub Copy_Click() Text2.Text=Text1.Text End Sub
步骤5:调试并运行程序,关闭程序后按题目要求存盘。
三、简单应用题(共24分)
(1)在考生文件夹下有一个工程文件sjt3.vbp,窗体上已经有一个标签Label1,请添加一个单选按钮数组,名称为Op1,含3个单选按钮,它们的Index属性分别为0、1、2,标题依次为“飞机”、“火车”、“汽车”。再添加一个名称为Text1的文本框。窗体文件中已经给出了Op1的Click事件过程,但不完整,要求去掉程序中的注释符,把程序中的问号改为正确的内容,使得在程序运行时单击“飞机”或“火车”单选按钮时,在Text1中显示“我坐飞机去”或“我坐火车去”;单击“汽车”单选按钮时,在Text1中显示“我开汽车去”,如图7所示。
图7
注意:不能修改程序中的其他部分。最后将修改后的文件按原文件名存盘。
答: 步骤1:打开本题工程文件,按照题目要求建立单选按钮数组,如图18所示。
图18(a)
图18(b)
图18(c)
图18(d)
图18(e) 图18
步骤2:按照题目要求建立其他控件并设置其属性,见表5。
表5
步骤3:打开代码编辑窗口,去掉程序中的注释符,将?改为正确的内容。
程序提供代码如下:
Private Sub Op1_Click(Index As Integer) Dim a As String, b As String, c As String a="我坐" b="我开" Select Case ? ‘通过Index 值决定响应哪一个控件数组 Case 0 Text1.Text=a+Me.Op1(0).Caption+"去" Case 1 Text1.Text=?+Me.Op1(1).Caption+"去" ‘当Index 值为1 时,选择"我坐" Case 2 Text1.Text=b+Me.Op1(2).Caption+"去" End Select End Sub
【参考答案】
第1个?号处填入:Index
第2个?号处填入:a
步骤4:调试并运行程序,关闭程序后按题目要求存盘。
(2)在考生文件夹下有一个工程文件sjt4.vbp,Form1窗体中有一个文本框,名称为Text1;请先在窗体上添加两个框架控件,名称分别为F1、F2,标题分别为“性别”、“身份”;然后在F1中添加两个单选按钮控件Op1、Op2,标题分别为“男”、“女”;其次在F2中添加两个单选按钮控件Op3、Op4,标题分别为“学生”、“教师”;最后再添加一个命令按钮,名称为C1,标题为“确定”,如图8所示。请编写适当的事件过程,使得运行时,在F1、F2中各选一个单选按钮,然后单击“确定”接钮,就可以按照表1把结果显示在文本框中。
图8
表1
最后把修改后的文件以原来的文件名存盘。
注意:考生不得修改窗体文件中已经存在的程序和Text1的属性,在结束程序运行之前,必须进行能够产生上表中一个结果的操作。必须用窗体右上角的关闭按钮结束程序,否则无成绩。
答: 步骤1:打开本题工程文件,按照题目要求建立框架控件并设置其属性,如图19所示。
图19(a)
图19(b) 图19
步骤2:按照步骤1建立其他控件并设置相关属性,程序中用到的控件及属性如表6和表7所示。
表6
表7
步骤3:打开代码编辑窗口,在指定位置编写如下代码:
Private Sub C1_Click() Text1.Text="我是"′首先确定不论选什么情况,Text1 的内容一定以"我是"开头 If Op1.Value Then Text1.Text=Text1.Text & Op1.Caption Else Text1.Text=Text1.Text & Op2.Caption End If ′通过单选按钮的Value 值(选择为true,否则为false)确认性别,最后把其Caption 值接至Text1 后 If Op3.Value Then Text1.Text=Text1.Text & Op3.Caption Else Text1.Text=Text1.Text & Op4.Caption End If ′确认身份,思路同上 End Sub
步骤4:调试并运行程序,关闭程序后按题目要求存盘。
四、综合应用题(共18分)
以下数列:1,1,2,3,5,8,13,21···的规律是从第3个数开始,每个数都是其前面两个数之和。
在考生文件夹下有一个工程文件sjt5.vbp。窗体中已经给出了所有控件,如图9所示。请编写适当的事件过程完成如下功能:选中一个单选按钮后,单击“计算”按钮,则计算出上述数列第n项的值,并在文本框中显示,n是选中的单选按钮后面的数值(提示:因计算结果较大,应使用长整型变量)。
图9
注意:不能修改已经给出的程序和已有的控件的属性;在结束程序运行之前,必须选中一个单选按钮,并单击“计算”按钮以获得一个结果;必须使用窗体右上角的关闭按钮结束程序,否则无成绩。最后把修改后的文件按原文件名存盘。
答: 步骤1:打开本题工程文件。
步骤2:打开代码编辑窗口,在指定位置编写如下代码:
Private Sub Command1_Click() Dim a() As Long Dim i As Integer Dim n As Integer ‘Op1.Count 是单选按钮数目,这里用的是控件数组 For i=0 To Op1.Count-1 ‘判断哪一项被选择,把它后面的数值赋给n,确定n 值 If Op1(i).Value=True Then n=Val(Op1(i).Caption) Exit For End If Next ReDim a(n)’重新申请空间,这里是动态申请 a(1)=1 a(2)=1 ‘数到第一项,第二项值确定 For i=3 To n a(i)=a(i-1)+a(i-2)′后一项值是前两项值之和 Next Text1.Text=a(n) End Sub
步骤3:调试并运行程序,关闭程序后按题目要求存盘。