20130702VB+VBA期末考卷
诚信应考 考出水平 考出风格
浙江大学城市学院
2012 — 2013 学年第二学期期末考试题卷
《 VB 程序设计基础与VBA 应用 》
开课单位: 计算分院 ;考试形式:闭卷;考试时间: 2013 年 7 月 2 日 所需时间:120 分钟
一.单选题(本大题共 30 题,每题 1 分,共 30 分。)
二.程序匹配题(本大题共 2 题 10 空,每空 2 分,共 20 分。) 三.程序阅读题(本大题共 5 题,每题4 分,共 20 分。) 第1题:
第2题:
第3题: 第4题:
第5题:
四.程序设计题(本大题共 3 题,每题 10 分,共 30 分。)
第1题: .
Sub Form_Click()
Dim n As Integer, i As Integer, y As Single
End Sub
Sub f( )
End Sub
Private Sub Form_Click()
Dim a(10) As Single, x1 As Single, x2 As Single
Dim i As Integer
For i = 1 To 10
a(i) = 100 * Rnd
Print a(i)
Next i
Call f(a(), 10, x1, x2)
Print x1, x2
End Sub
Sub tongji() End Sub
2012 — 2013 学年第二学期期末考试试卷
《VB程序设计基础与VBA应用》
开课单位:计算分院;考试形式:闭卷;考试时间:2013 年 7 月 2 日
所需时间:120 分钟
一、单选题(30%,每小题1分)
1.当运行程序时,系统自动执行启动窗体的某个事件过程。这个事件过程是。
A. Load
B. Click
C. Unload
D. GotFocus
2.改变控件在窗体中的水平位置应修改该控件的属性。
A. Left
B. Width
C. Top
D. Right
3.工程文件的扩展名为。
A. .frx
B. .bas
C. .vbp
D. .frm
4.下面是日期型常量。
A. "12/19/99"
B. 12/19/99
C. #12/19/99#
D. {12/19/99}
5.函数Int(Abs(99-100)/2)的值为。
A. 1
B.”0”
C. ”1”
D. 0
6.可作为Visual Basic变量名的是。
A. show
B. 4D+2
C. 2E3
D. Alphi_1
7.声明符号常量应该用关键字。
A. Static
B. Const
C. Private
D. Variant
8.数学式 (xy+5)1/3写成VB表达式是。
A. (x*y+5)^1/3
B. (x*y+5)^(1/3)
C. (x*y+5)^(1\3)
D. (xy+5)^(1/3)
9.取字符串Ax从第1个非空格符开始的连续5个字符,写作表达式。
A. Mid(Ax,1,5)
B. Mid(Trim(Ax),5)
C. Left(Ax,5)
D. Left(Trim(Ax),5) 10.定义数组Dim a(3,4)后,在缺省状态下,使用将出现下标越界错误。
A.a(1,1) B.a(3,0)
C.a(3,4) D.a(4,4)
11.Function过程有别于Sub过程的最主要特点是。
A. Function有形参而Sub没有
B. Function有实参而Sub没有
C. Function可数值运算而Sub不能
D. Function要返回函数值而Sub没有
12.进入VBA界面,可以使用下列哪个快捷键。
A. CTRL+F11
B. SHIFT+F11
C. ATL+F11
D. F11
13.若某过程声明为Sub aa(n As Integer),则以下调用正确的是。
A.Call aa()
B.Call aa(y)
C. aa(y)
D. z = aa(y)
14.下列叙述中不正确的是。
A. VBA只能用于Excel
B. VBA来源于VB
C. VBA必须与应用程序结合
D. VB可以独立开发应用程序15.在Excel 中编制VBA程序时,会出现Excel 的特有对象,下列哪个是特有对象。
A. ThisWorkBook
B. Microsoft Excel
C. sheet1至sheet3
D. 以上都是
16.条件“m、n不同时为0”写作VB的表达式为。
A.m=0 And n<>0 B.m + n = 0 C.Not(m=0 And n=0)D.m * n = 0
17.在语句Sub Fact(n as Integer)中n是一个按传递的参数。
A.地址B.值C.变量D.常量
18.以下关系表达式中,其值为True的是。
A."XYZ">"XYz" B."VisualBasic"<>"Visualbasic"
C."the">="there" D.Not "Integer">="Int"
19.下面子过程语句说明合法的是。
A. Sub f1(ByVal n() As Integer)
B. Sub f1(n() As Integer)As Integer
C.Function f1(ByVal n As Integer)
D.Function f1(f1 As Integer) As Integer
20.下列程序段的执行结果是。
n=1
j=1
Do While j<=4
n=n*j
Print n;
j=j+1
Loop
A.1 2 3 4 B.1 4 7 11
C.2 4 6 8 D.1 2 6 24
21.运行下列程序段,其中“n=n+1”语句被执行的次数是。
Dim m As Integer, n As Integer
For m=1 To 3
For n=1 To 6 Step 2
n=n+1
Print n
Next n
Next m
A.3 B.6C.9 D.18
22.若某过程声明为Sub aa(n As Integer),则调用实参与形参是按地址传递。
A.Call aa(5) B.Call aa(n + 1)
C.Call aa(n)D.Call aa(i - 1)
23.单击Cmd1命令按钮,由Text1文本框获得x的值,根据以下条件计算y的值:当x>0时,y的值为x的自然对数;当x<=0时,y的值为x的绝对值,并将y的值显示在Label1中。以下能正确计算y值的程序是。
A.x=Val(Text1.Text)
y=Abs(x)
If x>0 Then y=Log(x) Label1.Caption=y B.x=Val(Text1.Text)
y=Log(x)
If x<=0 Then y= Abs(x) Label1.Caption=y
C.x=Val(Text1.Text) If x<=0 Then
y= Log(x)
Else
y= Abs(x) End If
Label1.Caption=y D.x=Val(Text1.Text) If x>=0 Then
y=Abs(x)
Else
y= Log(x)
End If
Label1.Caption=y
24.对文本框Text1编写如下的事件过程。程序运行后,将焦点置于文本框,如果在键盘上输入字母“a”,则窗体上显示的内容是。
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim x As String
x=Chr(KeyAscii)
KeyAscii=Asc(Ucase(x))
Print String(4, KeyAscii)
End Sub
A.A B.B
C.aaaa D.AAAA
25.在VB的“声明”段有语句Option Base 1,那么用Dim a(-1 To 2, 3, 4)语句声明的数组a包含的元素个数为。
A.80 B.36
C.60 D.48
26-30.以下程序中有5条语句需要重新排序(语句开始标有字母的语句,未标的语句不要重排),使之成为程序。程序功能是在Excel中创建一个设置单元格常规字体和字号大小的过程。程序和可供选择的语句如下:
A. End sub
B. Sub myfs()
C. End With
.FontStyle="Regular"
.Size=16
D. With Selection.Font
E. .Name="Arial"
二、程序匹配题(20%,每空2分)
【说明】本大题有二个小题,每个小题有5条语句需要匹配,待匹配的语句写在程序的后面。根据题目的要求将待匹配的语句号填到答题卷上。
1.从1到10000中找出这样的数,该数各个位的数字的阶乘相加之和等于该数,并将结果输出。已知fact函数用于计算阶乘。
【程序】
Private Function fact(ByVal k As Integer) As Long
Dim i As Integer
______ (1 )______
For i = 2 To k
fact = fact * i
Next i
End Function
Private Sub Form_Click()
Dim k as integer, a as string, n as long, i as integer
Dim p As Integer
For k = 1 To 10000
______ (2 )______
n = 0
For i= 1 To Len(a)
______ (3 )______
______ (4 )______
Next i
______ (5 )______
Next k
End Sub
(1) p = Val(Mid(a, i, 1))
(2) fact = 1
(3) If n = k Then Print k
(4) a = CStr(k)
(5) n = n + fact(p)
2.模仿Excel的条件格式设置,对工作表Sheet1的所有单元格,凡数值小于60的用红颜色显示。
【程序】
Private Sub Cond_Format()
Dim i as Long, j as Long
______ (6 )______
______ (7 )______
______ (8 )______
If .Cells(i,j).Value <60 Then
.Cells(i,j).Font.Color = GRB(255, 0, 0)
______ (9 )______
______ (10 )______
Next i
End With
End Sub
(6) Next j
(7) For j = 1 to .Columns.Count
(8) With https://www.360docs.net/doc/cb8074374.html,edRange
(9) End If
(10) For i = 1 to .Rows.Count
三、程序阅读题(20%,每小题4分)
1.下列程序运行时,单击窗体后,请写出窗体上显示的结果。
【程序】
Private Sub Form_Click()
Dim x As String, y As String, d As Integer
Dim i As Integer, n As Integer
x = "abcdefghijkl"
d = Asc("a") - Asc("A")
n = Len(x)
y = ""
i = 2
Do
i = i + 2
y = y + Chr(Asc(Mid(x, i, 1)) - d)
Loop While i < n
Print "y="; y
End Sub
2.窗体上有命令按钮Command1。写出单击命令按钮,输入3后程序运行的结果。
【程序】
Private Sub Command1_Click()
Dim a() As Integer, n As Integer
Dim i As Integer, j As Integer, t As Integer
n = InputBox("")
ReDim a(n)
For i = 0 To n
a(i) = n * n - i
Next i
For i = 0 To n - 1
For j = i + 1 To n
If a(i) > a(j) Then
t = a(i): a(i) = a(j): a(j) = t
End If
Next j
Next i
For i = 0 To n
Print a(i)
Next i
End Sub
3.阅读下列程序,单击命令按钮时,写出窗体显示的结果。
【程序】
Private Function f(m As Integer) As Integer
f = 1
Do While m <> 0
f = f * m
m = m - 1
Loop
End Function
Private Sub Form_Click()
Dim n As Integer
n = 3
Print f(n)
Print f(n + 2)
End Sub
4.程序运行后,将焦点置于文本框Text1,在键盘上输入以下数字和符号
12、+、34、=、回车键
写出窗体上和文本框内显示的内容
【程序】
Dim x As Integer
Private Sub Form_Load()
Text1.Text = ""
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Print x Else
If KeyAscii < Asc("0") Or KeyAscii > Asc("9") Then Print Text1.Text
x = x + Val(Text1.Text) KeyAscii = 0 End If End If End Sub
5.写出执行以下“宏”后的结果。 【程序】
Sub yuxing()
Dim i As Integer, j As Integer, n As Integer ActiveSheet.Cells.Clear n = 5
For i = 0 To n
For j = 0 To n
If i = 0 And j <> 0 Then Cells(i + 1, j + 1) = j ElseIf i <> 0 And j = 0 Then Cells(i + 1, j + 1) = i ElseIf j <= i Then
Cells(i + 1, j + 1) = i * j End If Next j Next i End Sub
四、程序设计题(30%,每小题10分)
1.在Form_Click()事件中编程。输入n 后,计算并打印下列表达式的值。
)
1(4333222111++++++++++
=n n n y
2.编写Sub 过程f ,求n 个元素Single 类型一维数组x 中最大和最小元素值(注:参考的过程调用写在Form_Click 事件中并在答题卷上列出)。
3.在EXCEL 的当前工作表中有一批学生的语文考试成绩(如下表所示)需要分类统计。要求统计出优秀(成绩>=85)、合格(60<=成绩<85)和不合格(成绩<60)的人数,并
计算平均分,统计和计算结果放入当前工作表的第23行的对应单元格中,程序写在tongji过程中。