诚信应考 考出水平 考出风格
浙江大学城市学院
2007 — 2008 学年第二学期期末考试试卷
《 VB 语言程序设计基础 》
开课单位: 计算分院 ;考试形式:闭卷;考试时间: 2008 年 6 月24 日 所需时间:120 分钟
一.单选题(本大题共 10 题,每题 1 分,共 10 分。)
二.程序填空题(本大题共 4 题 15 空,每空 2 分,共 30 分。) 三.程序阅读题(本大题共 5 题,前 2 题每空 2 分,共 14 分;后3 题分别 6第3题: 第4题: 第5题:
四.程序设计题(本大题共 3 题,每题 10 分,共 30 分。)
第1题: . 第2题: .
第3题: .
2007 — 2008 学年第二学期期末考试试卷
《VB语言程序设计基础》
开课单位:计算分院;考试形式:闭卷;考试时间: 2008 年 6 月24 日
所需时间:120 分钟
一、单选题(10%)
1.以下叙述中,错误的是______。
A、在Visual Basic中,对象所能响应的事件是由系统定义的。
B、对象的任何属性既可以通过属性窗口设定,也可以通过程序语句设定。
C、Visual Basic中允许不同对象使用相同名称的方法。
D、Visual Basic中的对象具有自己的属性和方法。
2.下列不合法的变量名是______。
A、a5b
B、endif
C、a_b
D、_xyz
3.设在窗体上有1个名称为Combo1的组合框,含有5个项目,要删除最后一项,正确的语句是______。
A、Combo1.RemoveItem Combo1.Text
B、Combo1.RemoveItem 4
C、Combo1.RemoveItem Combo1.ListCount
D、Combo1.RemoveItem 5
4.改变了容器的坐标系后,该容器的_________属性值不会改变。
A、Left
B、ScaleLeft
C、ScaleTop
D、ScaleWidth
5.若窗体上的图片框中有一个命令按钮,则此按钮的Left属性是指______。
A、按钮左端到窗体左端的距离
B、按钮左端到图片框左端的距离
C、按钮中心点到窗体左端的距离
D、按钮中心点到图片框左端的距离
6.为使程序运行时通用对话框CD1上显示的标题为“对话框窗口”,若通过程序设置
该标题,则应使用的语句是______。
A、CD1.DialogTitle=“对话框窗口”
B、CD1.Action=“对话框窗口”
C、CD1.FileName=“对话框窗口”
D、CD1.Filter=“对话框窗口”
7.在窗体Form1中,弹出快捷菜单menu1的语句是______。
A、menu1.Click
B、Form.PopupMenu menu1
C、Form1.PopupMenu menu1
D、menu1.PopupMenu
8.在窗体Form1的一个事件过程中,使用_________来清除窗体上所绘制的图形,是不正确的。
A、Form1.Cls
B、Form.Cls
C、Me.CLS
D、Cls
9.若窗体中已经有若干个不同的单选按钮,要把它们改为一个单选按钮数组,在属性窗
口中需要且只需要进行的操作是______。
A、把所有单选按钮的Index属性改为相同值。
B、把所有单选按钮的名称改为相同值。
C、把所有单选按钮的Caption属性值改为相同。
D、把所有单选按钮的名称改为相同,且把它们的Index属性改为连续的不同值。10.下列代码中,______能使驱动器列表框Drive1的盘符改变时,文件夹列表框Dir1随之作相应改变。
A、Private Sub Dir1_Change()
B、Private Sub Dir1_Change()
Dir1.Path=Drive1.Drive Drive1.Drive= Dir1.Path
End Sub End Sub
C、Private Sub Drive1_Change()
D、Priveate Sub Drive1_Change()
Drive1.drive = Dir1.Path Dir1.Path=Drive1.drive
End Sub End Sub
二、程序填空题(30%)
阅读下列程序说明和程序,在每小题提供的若干可选答案中,挑选一个正确答案。
1.单击Command1后用输入对话框输入1个整数,单击Command2后在T ext1中显示其反序的数(高位变低位)。要求在文本框中不可输入任何字符。
例如:输入123显示321,输入-567显示-765。
【程序】
(11)
Private Sub Form_Load()
(12)
End Sub
Private Sub Command1_Click()
Text1.Text = "": n = InputBox("n=")
End Sub
Private Sub Command2_Click()
If n < 0 Then n = -n: Text1.Text = "-"
While n <> 0
Text1.Text = (13)
(14)
Wend
End Sub
【供选择的答案】
(11) A、Dim n As Byte B、Dim n As Integer
C、Dim n As String
D、Public n As Byte
(12) A、Text1.Locked = True B、Text1.Locked = False
C、Text1.Visible = True
D、Text1.Visible = False
(13) A、n/10 & Text1.Text B、n Mod 10 & Text1.Text
C、Text1.Text & n/10
D、Text1.Text & n Mod 10
(14) A、n = n \ 10 B、n = n / 10
C、n = n Mod 10
D、n = n - 10
2.单击Command1后,打开通用对话框指定的文本文件,将文本文件逐行读入,并将每行中的英文字母、其他字符分别写入"e:\a1.txt" 和 "e:\a2.txt"文件中。
【程序】
Private Sub Command1_Click()
Dim s As String, h1 As String, h2 As String
CommonDialog1. (15)
Open CommonDialog1.FileName For input As #1 Open "e:\a1.txt" For Output As #2 Open "e:\a2.txt" For (16) As #3 Do While (17)
Line Input #1, s Call fs(s,h1,h2) Print #2, h1 Print #3, h2
Loop Close End Sub
Private Sub fs(s As String, s1 As String, s2 As String) Dim j As Integer, n As Integer n = Len(s) (18) s1 = "": s2 = "" For j = 1 To n
a(j) = Mid(s, j, 1) If (19) Then s1 = s1 + a(j) Else
s2 = s2 + a(j) End If Next j End Sub
【供选择的答案】 (15) A 、ShowOpen
B 、ShowSave
C 、ShowColor
D 、ShowFont (16) A 、Output B 、Appent C 、Input D 、Read (17) A 、Eof(1) B 、Not Eof(1) C 、Eof(#1)
D 、Not Eof(#1)
(18) A 、ReDim a(n) As String * 1 B 、Dim a(n) As String C 、ReDim a(n) As Integer
D 、ReDim s(n) As String
(19)A 、a(j)>='a' And a(j)<='z' Or a(j)>='A' And a(j)<='Z' B 、a(j)>="a" And a(j)<="z" Or a(j)>="A" And a(j)<="Z" C 、"a"<=a(j)<="z" Or "A"<=a(j)<="Z"
D 、(a(j)>='a' And a(j)<='z') Or (a(j)>='A' And a(j)<='Z')
3.由输入对话框输入n(设n 为大于零且小于30的自然数),计算下列表达式的值,并在标签框Label1上显示。
)
1(1
......431321211+?+
?+?+?n n
【程序】
Private Sub Form_Click()
Dim n As integer ,sum As Double ,k As Integer
n=Val(InputBox("n=","请输入自然数n(n>0且n<30)"))
Do (20)
n=Val(InputBox("n=","请重输"))
Loop
sum=0
(21)
Do
k=k+1
sum= (22)
Loop Until k >= n
Label1.Caption = "sum=" + Str(sum)
End sub
【供选择的答案】
(20) A、Until n>0 Or n<30
B、While n<=0 And n>=30
C、While n <=0 Or n >=30
D、Until n>=0 And n<=30
(21)A、k=2 B、k=1 C、k=-1 D、k=0
(22)A、1/(k*(k+1)) B、1/(k-1)*k
C、sum+ 1 / (k *(k+1))
D、sum+ 1/k* (k+1)
4.下列过程用选择法对double类型数组按值从小到大排序。
Private Sub Sort( (23) )
Dim i As Integer, j As Integer, k As Integer, t As Double
For i = 1 To (24)
k=i
For j = i + 1 To n
If (25) Then k = j
Next j
t = a(i): a(i) = a(k): a(k) = t
Next i
End Sub
(23) A、a() As Double, k As Integer B、a As Double, n As Integer
C、a() As Double, n As Integer
D、a() As Integer, n As Integer
(24)A、n B、n-1 C、n+1 D、a(n)
(25)A、a(k)>a(i) B、a(k)a(j) D、a(k) 三、程序阅读题(30%,其中第1-2题为选择阅读题,第3-5题为阅读题)1.阅读下列程序在每组选项中选出一正确答案。 【程序】 Private Sub Form_Load() Timer1.Interval = 1000 End Sub Private Sub Timer1_Timer() Static k As Byte Form1.CurrentX=0: Form1.CurrentY=0 '窗体的所有其他属性均取缺省值 Form1.Cls If k = 0 Then k = 1 Else k = 0 If k=0 Then Form1.ForeColor = RGB(0, 255, 0) Else _ Form1.ForeColor = RGB(0, 0, 255) Print Time End Sub 【供选择的答案】 (26) 激活Timer1后,每间隔1秒显示一次系统时间,方式是: A、蓝、绿色交替显示 B、蓝色显示 C、绿色显示 D、红色显示 (27) 系统时间的显示位置,是在: A、窗体右上角 B、窗体左上角 C、窗体右下角 D、窗体左下角 (28) 如果将Timer过程中的语句“Static k As Byte”改为“Dim k As Byte”,激活Timer1 后,窗体系统时间显示上的颜色为: A、蓝、绿色交替 B、蓝色 C、绿色 D、红色 (29) 如果要将程序中RGB(0, 255,0) 用以下值替代,不可取的是: A、vbgreen B、qbcolor(2) C、green D、&HFF00 2.界面设计以及运行时HScroll1.Value值为90时的显示分别如下图左、图右所示。 【程序】 Private Sub Form_Load() Picture1.Width = Picture1.Height Picture1.Scale (-10, 10)-(10, -10) Picture1.BorderStyle = 0 HScroll1.Min = 0: HScroll1.Max = 360 HScroll1.SmallChange = 2: https://www.doczj.com/doc/1c17802230.html,rgeChange = 10 End Sub Private Sub HScroll1_Change() Dim t As Single Picture1.Cls t = HScroll1.Value * 3.14159 / 180 Label1.Caption = HScroll1.Value Picture1.Circle (0, 0), 10, vbRed Picture1.Line (0, 0)-(9 * Cos(t), 9 * Sin(t)) End Sub (30) 滚动条Value属性值为180时,以原点为起点的直线指向: A、12点方向 B、9点方向 C、6点方向 D、3点方向 (31) 滚动条Value属性值为270时,以原点为起点的直线指向: A、12点方向 B、9点方向 C、6点方向 D、3点方向 (32) 下列说法中正确的是: A、拖动滚动条滑块的过程中以及结束后都不会触发HScroll1_Change事件 B、拖动滚动条滑块的过程结束后立即触发HScroll1_Change事件 C、单击滚动条两端箭头时Value的增量为10或-10。 D、单击滚动条上空白区域时Value的增量为2或-2。 3.在窗体上有一组合框,阅读下列程序,运行时在组合框控件中输入字符串 "abc12↙xyz34↙+-*/↙”,其中"↙"代表Enter回车键,输入结束后组合框中各表项依次是什么。 【程序】 Private Sub Form_Load() Combo1.Clear End Sub Private Sub Combo1_keypress(K As Integer) Dim n As Integer If K >= Asc("0") And K <= Asc("9") Then K = 0 If K = 13 Then Combo1.AddItem Combo1.Text, n n = n + 1 Combo1.SelStart = 0 Combo1.SelLength = Len(Combo1.Text) End If End Sub 4.在窗体上有一命令按钮,阅读下列程序,运行时第1次单击Command1输入2、3,第2次单击Command1输入4、5后,窗体上的显示结果是什么。 【程序】 Private Function f(a As Integer, b As Integer) As Integer f = a Do While f Mod b <> 0 f = f + a Loop End Function Private Sub Command1_Click() Static k As Integer Dim m As Integer, n As Integer m = InputBox("m=") n = InputBox("n=") k = k + 1 Print f(m, n) End Sub 5.画出下列程序运行时单击命令按钮Command1后窗体上四个图片框上图案的形状。 【程序】 Private Sub Form_Load() Dim i As Byte For i = 0 To 3 Picture1(i).FillStyle = (i + 1) Mod 2 Picture1(i).Cls Next i End Sub Private Sub Command1_Click() Dim i As Byte For i = 0 To 3 Picture1(i).Scale (-10, 10)-(10, -10) Next i Picture1(0).Line (-10, 10)-(0, 0) Picture1(0).Line -(-10, -10) Picture1(1).Line (0, 0)-(5, -5), , B Picture1(2).Circle (0, 0), 5, , 0, 3.14159 Picture1(3).Circle (0, 0), 5, , , , 2 End Sub 四、程序设计题(30%) 1. 计算下列数列的值,变量x 与n 的数值用输入对话框输入,计算结果输出到Text1控件。 2. 编程,按Command1输入10个实数到数组中,要求在窗体上输出数组,再输出与整个数组的平均值之差的绝对值为最小的那个数组元素。 3.在窗体上有一个列表框、二个命令按钮,要求实现以下操作: (1)单击“添加”按钮(Command1)产生50个三位随机整数放入列表框中。 (2)单击“删除”按钮(Command2)删除列表框中的所有素数。 ! !3!2132n x x x x s n + ??++++=