二级VISUAL BASIC-80
(总分:94.50,做题时间:90分钟)
一、选择题(总题数:35,分数:66.50)
1.以下关于过程及过程参数的描述中,错误的是
(分数:2.00)
 A.过程的参数可以是控件名称
 B.调用过程时使用的实参的个数应与过程形参的个数相同(假定不含可变参数)
 C.只有函数过程能够将过程中处理的信息返回到调用程序中 
 D.窗体可以作为过程的参数
解析:[解析] 本题考查的考点是有关过程参数的。过程的参数可以为任何控件,包括窗体,在传递参数时,形参表与实参表中对应变量的名字不必相同,但参数的个数、对应位置和对应类
型必须相同。除了函数过程可以把信息返回到调用程序中,一般过程也可以通过地址传递的方法把信息返回到调用程序中。
2.将E-R图转换为关系模式时,实体和联系都可以表示为______。
(分数:1.00)
 A.属性
 B..键
 C.关系 
 D..域
解析:[解析] 从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性。
3.写了叙述中正确的是______。
(分数:2.50)
 A.栈是一种先进先出的线性表
 B.队列是一种后进先出的线性表
 C.栈与队列都是非线性结构
 D.以上三种说法都不对 
解析:[解析] 栈和队列都是线性结构。栈是一种“先进后出”的特殊线性表,而队列则是一种“先进先出”的特殊线性表。
4.窗体上有一个名称为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
以下关于上述程序的叙述中,错误的是______。
(分数:1.00)
 A.每执行一次Timer1_Timer事件过程,x的值都在原有基础上增加1
 B.Shape1每移动10次回到起点,重新开始
 C.窗体上的Shape1由下而上移动 
 D.Shape1每次移动100
解析:[解析] 题目中变量x定义为Static,即每次进入Timer事件过程时,x都会保留上次的值,从而实现每执行一次Timer1_Timer事件过程x的值都在原有基础上增加1。程序中判断调用Timer事件过程10次后,重置Shape1的top值为0,即回到起点。控件Shape1的Top属性是距离窗体顶的位置,数值越大距离越远,因此Shape1会由上向下移动。
5.设有下面程序代码:
Option Base 1
Private Sub Command1_Click()
Dim x(6)
a=Array(4, 2, 5, 1, 6, 3)
b=Array(64, 24, 98, 27, 58, 41)
For k=1 To 6
x(a(k))=b(k)
Next k
For k=1 To 6
Print x(k);
Next k
End Sub
程序运行时的输出是
(分数:2.00)
 A.27 24 41 64 98 58 
 B.64 24 98 27 58 41
 C.24 27 41 58 64 98
 D.98 64 58 41 27 24
解析:[解析] 本题是一个简单的数组赋值,只要把握好每次为哪个元素赋以什么样的值就不会出错。最后x数组中存放的数据依次是27、24、41、64、98、58。
6.打开菜单编辑器的快捷键是______。
(分数:2.00)
 A.Ctrl+E 
 B.shift+E
 C.Alt+E
 D.Tab+E
解析:
7.下列程序段的执行结果为 ____
a=6
For k=1 To n
a=a+k
Next
Print k; a
(分数:2.00)
 A.-16
 B.-116
 C.16 
 D.11 21
解析:[解析] For循环的—般格式是
For循环变量=初值To终值Step[步长]
语句
[Exit For]
语句
Next[循环变量]
该循环语句的执行过程为:“循环变量”首先取得“初值”,检查是否超过”终值”,如果超过,就不循环并跳出循环,属于“先检查后执行”的类型。现在来看程序段,For k=1 To 0中,初值为1,终值为O,显然当“循环变量”首先取得“初值”1,检查后超过“终值”0,所以一次也不执行,即最后执行Print时,k=1,a=6。
8.设有如图所示窗体和以下程序:
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”(如图所示),然后单击Command1按钮,则产生的结果是 ____
(分数:2.00)
 A.文本框中无内容,焦点在文本框中 
 B.文本框中为“Basic”,焦点在文本框中
 C.文本框中为“Basic”,焦点的按钮上
 D.文本框中为“Visual Basic”,焦点的按钮上
解析:[解析] LostFocus事件是当光标离开当前文本框或用鼠标选择其他对象时触发的事件;SetFocus是将焦点移到文本框中;本题程序的含义是单击按钮,触发单击事击,在文本框中写入“Visual Basic”,此时的光标不在文本框中,就是触发LostFocus事件,If语句检查文本框中的内容不等于“Basic”,于是置空文本框,再使光标(焦点)移到文本框中。
9.以下合法的VB变量名是
(分数:2.50)
 A.#1
 B.123_a
 C.string
 D.x_123 
解析:[解析] 变量是用一个名称来表示的,给变量命名时应遵循规则:名称只能由字母、数字和下划线组成;名称的第一个字符必须是英文字母,最后一个字符可以是类型说明符;名称的有效字符为255个;不能用VB的保留字作变量名,但变量名中可以包含保留字,如ConstA;变量名也不能是末尾带有类型说明符的保留字,如Dim!是不合法的变量名;不区分字母的大小写。
10.在设计程序时,应采纳的原则之一是______。
(分数:2.00)
 A.程序结构应有助于读者理解 
 B.不限制goto语句的使用
 C.减少或取消注解行
 D.程序越短越好
解析:[解析] 滥用goto语句将使程序流程无规律,可读性差;添加的注解行有利于对程序的理解,不应减少或取消:程序的长短要依照实际需要而定,并不是越短越好。
11.面向对象方法中,继承是指______。
(分数:2.50)
 A.一组对象所具有的相似性质
 B.一个对象具有另一个对象的性质
 C.各对象之间的共同性质
 D.类之间共享属性和操作的机制 
basic语言if语句
解析:[解析] 继承:在程序设计中,继承是指子类自动享用父类的属性和方法,并可以追加新的属性和方法的一种机制。它是实现代码共享的重要手段,可以使软件更具有开放性、可扩充性,这是信息组织与分类的行之有效的方法,也是面向对象的主要优点之一。继承又分
为单重继承和多重继承。单重继承是指子类只能继承一个父类的属性和操作;而多重继承是指子类可以继承了多个父类的属性和操作。熟悉IT的人都知道,Java是一种单重继承语言,而C++是一种多重继承语言。
12.以下叙述中错误的是
(分数:2.50)
 A.Sub Main是定义在标准模块中的特定过程
 B.一个工程中只能有一个Sub Main过程
 C.Sub Main过程不能有返回值
 D.当工程中含有Sub Main过程时,工程执行时一定最先执行该过程 
解析:[解析] 在Visual Basic中,可以将多窗体程序中的其中一个窗体或某标准模块中的Sub Main过程设置为启动对象。Sub Main是定义在标准模块中的特定过程,该过程不能有返回值,一个工程中仅能有一个Sub Main过程。
13.要求如果x被7除余2,则输出x的值,下列语句中不能实现此功能的语句是______。
(分数:1.00)
 A.Ifx mod 7=2 Then Print x
 B.If x-(x/7)*7=2 Then Print x
 C.If x-(x/7)*7=2 Then Print x 
 D.If x-Int(x/7)*7=2 Then Print x
解析:[解析] 选项C中(x/7)*7得到的值是x,x-y=0返回False,不执行Print x,所以不能输出x的值。故C选项错误。也可以把实际数值带入语句中运行,根据结果就可判断选项。
14.在设计阶段,当按Ctrl+R键时,所打开的窗口是______。
(分数:2.50)
 A.代码窗口
 B.工具箱窗口
 C.工程资源管理器窗口 
 D.属性窗口
解析:[解析] 此题属于识记题。按Ctrl+R键,可以直接打开工程资源管理器窗口。
15.使用语句Dim A(1 To 10)As Integer声明数组A之后,以下说法正确的是 ____
(分数:2.00)
 A.A数组中的所有元素值为0 
 B.A数组中的所有元素值不确定
 C.A数组中的所有元素值为Empty
 D.执行EraseA后,A数组中的所有元素值为Null
解析:
16.在窗体上画一个名称为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
程序运行后,单击命令按钮,则两个标签中显示的内容分别是______。
(分数:1.00)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。