一.选择题(50分)
1.下列叙述中,正确的是( )。
A) VB的事件由用户定义
B) VB程序从Main( )函数开始执行
C) VB运行时,总是等待事件的发生
D) VB程序运行后,在内存中只能驻留一个窗体
2.下列运算符中,优先级最高的是( )。
A) Not B) Mod C) Like D) Eqv
注:
Eqv用来对两个表达式进行逻辑等价运算。
esult = expression1 Eqv expression2
如果 expression1 为 且 expression2 为 则 result 为
True True True
True False False
False True False
False False True
3 窗体form,框架frame ,图片框picture,图象框image中( )是容器控件。
a) image form frame b) frame picture image
c) picture image form d) form frame picture
4 下列关于变量的说法错误的是( )。
a)局部变量是指那些在过程中用DIM或STATIC语句声明的变量。
b)局部变量的作用域仅限于声明它的过程。
c)静态局部变量是在过程中用STATIC语句生明的。
d)局部变量在声明它的过程执行完毕后就被释放了。
5.执行x = MsgBox("数据类型不匹配", , "出错提示!") ,然后按回车,x的值是( )。
A) True B) False C) 0 D) 1
6.窗体上有文本框Text1和命令按钮Command1,对Command1编写如下事件过程:
Private Sub Command1_Click()
Text1.Text = "ABCDE"
Text1.SelStart = 1
Text1.SelLength = 3
MsgBox Text1.SelText
End Sub
运行时,单击命令按钮,出现的信息框显示( )。
A) ABCDE B) BCD C) ABC D) "CDE"
7.一个工程中含有窗体Form1、Form2和标准模块Modell,如果在Form1中有语句Public X As Integer,在Modell中有语句Public Y As Integer。则以下叙述中正确的是( )。
A)变量X、Y的作用域相同 B)Y的作用域是Modell
C)在Form1中可以直接使用X和Y D)在Form2中可以直接使用X和Y
8.在实际应用中,经常将一组单选按钮置于一个框架(Frame)控件内,这主要是为了( )。
A) 使用户界面美观
B) 使该组单选按钮同步
C) 使该组单选按钮处于禁止状态
D) 使该组单选按钮互斥,即同一时刻只有一个单选按钮被选中
9. 将窗体的( )属性设置为True,可使Form_Load事件中的Print方法显示结果。
A) DrawStyle B) DrawMode C) AutoRedraw D) Enabled
10.下面程序,sum是运算( )表达式的值。
Private Sub Commandl_Click( )
Dim sum As Double,s1 As Double
Dim I as integer, k as double
sum=0:s1=0: k=1
for I=1 to 3
k=k*I
s1=s1+k
sum=sum+s1
next I
print sum
End Sub
A)1+(1+2)+(1+2+3) B)1!+2!+3!
C)1!+(1!+2!)+(1!+2!+3!) D)(1!+2!)+(1!+2!+3!)
11.下面程序运行时单击窗体4次,每次输入分别为1,2,3,4时窗体上显示的最后结果是( )。
private sub form1_click()
static s as integer
dim x as integer
cls
x=val(inputbox(“请输入一个正整数”))
if x mod 2 =0 then
s=s*x
else
s=s+x
endif
print “s=”+str(s)
end sub
A)s=10 B)s=5 C)s=1 D)s=20
注::若把static s as integer 去掉,在通用中加Public s As Integer则结果一样.
12.在窗体上画一个名称为Drive1的驱动器列表框,一个名称为Dir1的目录列表框。当改变当前驱动器时,目录列表框应该与之同步改变。设置两个控件同步的命令放在一个事件过程中,这个事件过程是( )。
A) Drive1_Change B) Drive1_Chick C) Dir1_Chick D) Dir1_ Change
13.窗体中有标签、文本框和用图形方法绘制的图形,它们依次位于哪一图形层( )。
A) 上层、中层和下层 B) 中层、上层和下层 C) 下层、中层和上层 D) 上层、下层和中层
14已知字母D的ASCII码是68。在窗体上添加命令按钮Command1,并编写如下事件过程:
Private Sub Command1_Click()
m = 68: a = "D"
Print a
For i =
m = m + 1
a = Chr(m) + a + Chr(m)
Print a
Next i
End Sub
运行时,要使单击按钮后输出如下结果:
D
EDE
FEDEF
GFEDEFG
程序中的_____部分应为( )。
A) 1 To 4 B) 1 To 3 C) 1 To 4 step 2 D) 1 To 3 step 2
15.以下关于函数过程的叙述中,正确的是( )。
A)函数过程形参的类型与函数返回值的类型没有关系
B)在函数过程中,过程的返回值可以有多个
C)当数组作为函数过程的参数时,既能以传值方式传递,也能以传址方式传递
D)如果不指明函数过程参数的类型,则该参数没有数据类型
16关于过程作用域,错误的描述是( )。
A) 全局过程的作用域为整个工程
B) 在不同模块中定义的全局过程不能同名
C) 在不同模块中定义的模块级过程可以同名
D) 在某一窗体定义的全局过程,其它窗体调用模块,必须在该过程名前加上窗体名称
17.下列关于多文档界面(MDI)的叙述错误的是( )。
A) MDI子窗口包含在一个大小可调的MDI父窗口内
B) MDI应用程序允许同时显示多个文档,每个文档显示在它自己的窗口中
C) MDI窗体的ActiveForm属性可以返回具有焦点或者最后被激活的子窗体
D) MDI应用程序中只有两种类型的窗体,即父窗体和子窗体
18 在窗体画一个名称为Command1的命令按钮,然后编写如下事件过程:
Dim xm as string,zf as integer
private sub command1_click()
open “stu.dat” for as #1
do while TRUE
xm=inputbox(“请输入姓名”)
if xm=”end” then exit do
zf=val(inputbox(“请输入总分”))
#1,xm,zf
loop
close #1
end sub
程序运行后,单击命令按钮,向顺序文件stu.dat中添加记录,每条记录包含姓名(字符型)和总分(数值型)两个数据。则应在下划线处分别填入( )。
A) output , Print B) append , write C) input, get D) append , Put
19在窗体上画一个通用对话框,若要求打开该对话框时,"文件类型"栏只显示扩展名为的文件,则通用对话框的Filter属性应设置为( )。
A
20在窗体上画一个名称为Text1的的文本框,一个名称为Command1的命令按钮,然后编写如下事件过程和通用过程
Public Function f1(ByRef x)
x = x * x
f1 = x + x
End Function
Public Function f2(ByVal x)
x = x * x
f2 = x + x + x
End Function
Private Sub Command1_Click()
n = Val(Text1.Text)
If n \\ 2 = n / 2 Then
f = f1(n)
Else
f = f2(n)
End If
Print f; n
End Sub
程序运行后,在文本框中输入6,然后单击命令按钮,窗体上显示的是( )。
A) 72 36 B) 108 36 C) 72 6 D) 108 6
二、设计题共3小题,每题10分,说明如下:
⑴ 如无具体说明,窗体及控件名称均采用默认值;
⑵ 默认属性的访问应使用全称,如文本框t1的Text属性为:t1.Text,而非t1;
⑶ 请在考生文件夹下保存窗体文件和工程文件;
1.设计如图所示窗体Form1,窗体的标题为“字体设置”为蓝色,在窗体内画一个名称为Label1、的标签,标签透明、文本内容居中显示,其标题为“字体设置示例”。在标签的下方画一个名称为Cb1的组合框,设置适当属性使其成为下拉式列表框,并通过属性窗口向下拉式列表框添加“宋体”、“黑体”、 “隶书”三个项目。右边画二个复选框,其中Check1的标题为“粗体”,Check2的标题为“下划线”。编写适当的事件过程,使程序运行后,当单击下拉式列表框中某项时,Label1标题上就显示该项的字体;选中复选框Check1时标签文字效果为粗体,选中复选框Check2时标签文字加下划线。
注:程序中不得使用任何变量。
窗体文件名为ziti.frm,工程文件名为ziti vbp。
2、如图画一个宽度为2000,距窗体顶端500,字号设为“小四”内容为“Select All Text!”且居中显示的文本框,运行时,指针指向文本框时显示“单击全选”,单击文本框将选中其全部内容。
注:程序中无需使用任何变量。
窗体文件名St.frm,工程文件名St.vbp。
3、请按图在窗体左侧设文本框和“添加”命令按钮各一个,在右侧设列表框两个(List1和List2)。运行时,单击按钮,先将文本框中输入的字符串添加到List1中,并将其去除首尾空格后的长度添加到List2中,然后清空文本框,并使文本框获得焦点。
注:程序中无需使用任何变量。
窗体文件名StS.frm,工程文件名StS.vbp。
三、编程题共2小题,每题10分,说明如下:
编程后,需运行程序,并在运行后关闭程序窗口,否则不得分。
1、打开考生文件夹下的工程文件Yu1.vbp,添加适当的事件代码,实现以下功能:
(1)Text1文本框中最多只能显示20个字符,当输入字符数超过20时,剩余部分将显示在Text2中;
(2)单击“统计并替代”,在Text3中显示统计Text1字符出现最多的次数,并把Text1中该字符用 * 替代。
----------------------------------------------------------------------------------------------------------------------
2.打开考生文件夹下的工程Yu2.vbp,窗体界面如图所示,编写适当的事件代码,以达到程序运行时的如下功能要求:
⑴单击“读出数据”按钮,则读入考生文件夹的y1.txt文件中的6个整数,放入A数组中,并显示在文本框控件数组Text1(0)—Text1(5)中。
⑵单击“升序排列”按钮,则调用由考生编写的paixu过程对A数组元素进行降序排序,并在Text1(0)—Text1(5)中按自左向右从大到小的顺序重新排列这6个整数。
(3)单击“写入数据”按钮,则将A数组中降序排序的元素添加到考生文件夹的y2.txt文件中。