20130702VB+VBA期末考卷

20130702VB+VBA期末考卷
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

Print

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过程中。

相关主题
相关文档
最新文档