绝密★考试结束前
浙江省2013年1月高等教育自学考试
Visual Basic程序设计试题
课程代码:07759
本试卷分A、B卷,使用2003年版本教材的考生请做A卷,并将答题纸上卷别“A”涂黑;使用2012年版本教材的考生请做B卷,并将答题纸上卷别“B”涂黑。不涂或全涂,均以B卷记分。请考生按规定用笔将所有试题的答案涂、写在答题纸上。
A卷
选择题部分
注意事项:
1. 答题前,考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。
2. 每小题选出答案后,用2B铅笔把答题纸上对应题目的答案标号涂黑。如需改动,用橡皮擦干净后,再选涂其他答案标号。不能答在试题卷上。
一、单项选择题(本大题共10小题,每小题1分,共10分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。错涂、多涂或未涂均无分。
1.下列逻辑表达式的值为真的是 c 数字到大写到小写,顺序越往前,值越小
A."A" > "a"
B."9" > "A"
C."That" > "Thank"
D.12 > 1.21E1
2.骰子是一个正六面体,用1~6这六个数分别代表这六面,掷一次骰子出现的数可表示为 d
选项A的最大数是1,选项B的最大数是5,选项C的最小数是0,只有选项D能产生1~6之间的整数。
A.Int(Rnd(6) + 1)
B.Int(Rnd * 6)
C.Int(Rnd(1) * 7)
D.Int(Rnd(1) * 6 + 1)
3.下列语句中,可以将列表框List1中当前选定的列表项的值替换为“ABC”的是c
A.List1.AddItem "ABC", List1.ListIndex
B.List1.Text = "ABC"
C.List1.List(List1.ListIndex) = "ABC"
D.前三项均可
4.下列可作为Visual Basic中的变量名的是 d
在Visual Basic中,有关变量命名的规则如下:名字只能由字母、数字和下划线组成。排除选项A、C项。名字的第一个字母必须是英文字母,最后一个字符可是类型说明符。名字的有效字符为255个。不能用Visual Basic 的保留字作变量名,但可以把保留字嵌入变量名中;同时变量名也不能是末尾带有类型说明符的保留字。排除B选项
A.A#A
B.4A
C.?xy
D.constA
5.用下面的语句所定义的数组的元素个数是c
Dim arr(3 To 5, -2 To 2)
A.20
B.12
C.15
D.24
6.如果要在菜单中添加一个分割线,则应将菜单项的Caption属性设置为 d 分割线
A.:
B.,
C.&
D.-
7.在下列控件中,不具有坐标系的控件是b容器才具有坐标系
A.Frame(框架)
B.TextBox(文本框)
C.PictureBox(图片框)
D.Form(窗体)
8.数据控件的Reposition事件发生在a只要将记录指针从一条记录移动到另一条记录就会触发
A.记录成为当前记录后
B.修改与删除记录前
C.记录成为当前记录前
D.移动记录指针前
9.下列关于Select Case s的叙述中,错误的是 d 表示判断s是否为-7,0,100三个数中的一个
A.Case 10 To 100 表示判断s是否介于10与100之间
B.Case "abc", "ABC" 表示判断s是否和"abc", "ABC"中的一个相同
C.Case "X" 表示判断s是否为大写字母X
D.Case -7, 0, 100 表示判断s是否等于字符串"-7, 0, 100"
10.定义过程的语句为:Sub Suba(x As Single, y As Single),则正确的调用语句为c
调用一个过程时,并不一定要使用Call 关键字。如果使用Call 关键字来调用一个需要参数的过程,argumentlist 就必须要加上括号。如果省略了Call 关键字,那么也必须要省略argumentlis 外面的括号。
A.Call Suba x, y
B.Call Suba("A", Sin(1.57))
C.Suba 10, 12
D.Call Suba(12, 10, x)
二、判断题(本大题共10小题,每小题1分,共10分)
判断下列各题,在答题纸相应位置正确的涂“A”,错误的涂“B”。
11.对象的方法是指在对象中预先设置好的,能够被该对象识别并响应的动作。错,不是方法,是事件
12.Long型和Single型数据都占4个字节存储空间,所以它们的取值范围是相同的。错
13.用Shell函数可以调用可执行文件,也可以调用Visual Basic的内部函数。错,不用调用内部函数
14.在同一个程序中,用不同的方法(如ShowOpen或ShowSave等)打开的通用对话框具有不同的作用。对
15.若工程文件中有多个窗体,可以根据需要指定一个窗体为启动窗体。对
16.过程的传值调用参数是单项传递的,过程的传地址调用参数是双向传递的。对
17.结构化程序设计方法的基本思想:任何程序都可以用三种基本结构表示,即顺序结构、选择结构和循环结构。对
18.ActiveX控件的使用方法与其他标准控件相似,可以在工程中直接使用。对
19.将图片框控件PictureBox属性Stretch的值设为True,使其能够根据所加载的图片调整自身大小。错,autosize
20.在VB中,用Dim定义数组时,数组元素将自动赋初值为0。错
三、程序选择填空题(本大题共8小题,每小题3分,共24分)
(一)【程序说明】在窗体上有一个名称为Text1的文本框和三个单选按钮,并且这三个单选按钮建立了一个控件数组,名称为Option1。程序运行后,如果单击某个单选按钮,则文本框中的字体将根据所选择的单选按钮切换,如下图所示。
【程序】
Private Sub Option1_Click(Index As Integer)
Dim a As String
Select Case 21 c
Case 0
a = "宋体"
Case 1
a = "黑体"
Case 2
a = "楷体_GB2312"
End Select
22 a= a https://www.wendangku.net/doc/9f19017932.html,或者font
End Sub
【供选择的答案】
21.A.Option1.Index B.Option1.Value
C.Index
D.Option1.Count
22.A.Text1.Font B.Text1.FontName
C.Option1.FontName
D.Option1.Font
(二)【程序说明】找出两个正整数a和b,使得a < b、a + b = 99、a和b的最大公约数是3的倍数,并统计满足条件的数对的个数。
【程序】
Dim a As Integer, b As Integer, n As Integer, c As Integer
Private Function Gcd(ByVal a As Integer, ByVal b As Integer) As Integer
Do
c = a Mo
d b
a = b
b = c
Loop While c <> 0
Gcd = a
End Function
Private Sub Command1_Click()
n = 0
For a = 1 To 49
b = 23 99-a
c = 24 gcd(a,b)
If c Mod 3 = 0 Then
25 n=n+1
Print a, b, c
End If
Next a
Print n
End Sub
【供选择的答案】
23. A.99 B.1
C.99 - a
D.99-n
24.A.Gcd(b, a) B.Gcd(a, b)
C.Gcd(b, n)
D.Gcd(n, b)
25.A.n = n - 1 B.n = n + 1
C.n = 0
D.n = a
由求最大公约数的算法可知,当余数c为0时,a为a和b的最大公约数,因为条件设定a+b=99,所以b=99-a,n为累计数
(三)【程序说明】有一个分数序列为:2/1、3/2、5/3、8/5、13/8…,求这个序列前20项的和。
【程序】
Private Sub Form_Click()
Dim s As Single
Dim t1 As Integer, t2 As Integer, t As Integer
Dim i As Integer
s = 0
t1 = 2
t2 = 1
i = 0
Do While 26 i < 20
s = 27 s + t1 / t2
t = t1 + t2
t2 = t1
t1 = t
28 i = i + 1
Loop
Print s
End Sub
【供选择的答案】
26.A.i > 0 B.i < 20
C.i <= 20
D.i < 19
27.A.t1 / t2 B.s + t1 / t2
C.t2 / t1
D.s + t2 / t1
28.A.i = i - 1 B.i = 0
C.i = i + 1
D.s = 0
四、程序阅读题(本大题共8小题,每小题2分,共16分)
(一)【程序】
Private Sub Command1_Click()
Cls
Line (300, 300)-(1600, 1600), , BF
End Sub
Private Sub Command2_Click()
Cls
Line (300, 300)-(1600, 1600), , B
End Sub
【供选择的答案】
29.运行时单击Command1,窗体显示的图形为
A.直线
B.折线
C.空心矩形
D.实心矩形
30.运行时单击Command2,窗体显示的图形为
A.直线
B.折线
C.空心矩形
D.实心矩形
B表示画矩阵,F表示用画矩阵四条边的颜色来填充矩形。只用B不用F,则矩形的填充由fillstyle和fillcolor属性来决定。
(二)【程序】
Dim y As Integer
Private Sub Command1_Click()
Dim x As Integer
x = 2
Text1.Text = P2(P1(x), y)
Text2.Text = P1(x)
End Sub
Private Function P1(x As Integer) As Integer
x = x + y
y = x + y
P1 = x + y
End Function
Private Function P2(x As Integer, y As Integer) As Integer
P2 = 2 * x + y
End Function
【供选择的答案】
31.当一次单击命令按钮后,文本框Text1和Text2的值分别是
A.2、4
B.4、8
C.10、10
D.4、4
32.当两次单击命令按钮后,文本框Text1和Text2的值分别是
A.2、4
B.8、8
C.58、58
D.4、8
33.将x的声明方式改为Static,程序运行时,当两次单击命令按钮后,文本框Text1和Text2的值分别是
A.2、4
B.8、8
C.58、58
D.4、8
关键是搞清全局变量y和局部变量x的作用域。
y变量运行时初值默认为0,以后每次单击按钮,都会保留上一次的值,而x每次都被置为0。
第1次单击时,x值0,y值0:
当给text1.text赋值时,先调用p1函数,参数x值0,表达式x=x+y,得到x值2,此时y值仍为0。表达式y=y+x得到y值2,x 值仍为2。返回值表达式p1=x+y,所以p1函数返回值为4。然后用4和2两个实参来调用p2函数。p2返回的表达式是2*x+y,所以返回值为10。
然后为text2.text赋值,调用p1函数,此时参数x值仍为2,但此时y的值也是2,所以经过表达式x=x+y得到x值为4,表达式y=y+x得到y值为6,返回值为x+y,所以返回10。
所以,两个文本框第一次鼠标单击时,都显示结果10。
当第2次单击时,过程和上面一样,只不过调用函数时,x值被重新置为2,因为它是局部变量。而y值仍然是上次的结果值6。最终第2次运行的结果都是58。
(三)【程序】
Dim a(10) As Integer
For i = 1 To 10
a(i) = i * 2
Next i
For m = 1 To n - 1
For z = 1 To n - m
If a(z) > a(z + 1) Then
t = a(z)
a(z) = a(z + 1)
a(z + 1) = t
End If
Next z
Next m
【供选择的答案】
上面这段程序执行后,a(1)的值为34 ,a(3)的值为35 ,a(7)的值为36 。
34.A.2 B.20
C.10
D.12
35.A.2 B.20
C.6
D.14
36.A.2 B.20
C.6
D.14
非选择题部分
注意事项:
用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。
五、填空题(本大题共10小题,每小题2分,共20分)
37.表达式-25 \21 / 3 Mod (1 - 2 * 3 ∧2) \3的值为-3 。
-25\21/3 mod (1-2*9)\3
-25\21/3 mod -17\3
-25\7 mod -5
-3 mod -5
-3
38.为了改变计时器控件的时间间隔,应该修改该控件的interval 属性。
39.VB提供的对数据文件的三种访问方式为随机访问方式、顺序方式和二进制访问方式。
40.删除score表中“学号”为“111202”记录的SQL语句为delete from score where 学号=‘111202’。
41.数学关系3≤x<10表示成正确的VB表达式为x<10 and x>=3。
42.使输入焦点到文本框控件Text1中的语句是text1.setfocus。
43.语句For k = 33 To -5 Step -2的循环体执行次数为20 。[ (-5)-33]/(-2)+1
44.滚动条控件产生Change事件是因为它的value 值改变了。
45.通过设置Shape控件的shape属性可以绘制多种形状的图形。
46.一个名为MenuItem的菜单项,为了在运行时使该菜单项失效,使用的语句为MenuItem.Enabled=False。
六、程序设计题(本大题共2小题,每小题10分,共20分)
47.编制事件过程Command1_Click,要求从已存在于磁盘上的顺序文件C:\Data1.txt中读取一个数据,计算出该数据的平方值,将该数据及其平方值存入新的顺序文件C:\Data2.txt中。
Private Sub Command1_Click()
Dim ci As Integer
Dim s As String
Open "d:\1.txt" For Input As #1
Do While EOF(1) = False
Line Input #1, s
ci = ci + 1
If ci = 1 Then
a = a & s
Else
a = a & vbCrLf & s
End If
Loop
Close #1
Open "d:\2.txt" For Output As #2
Print #2, a
Close #2
End Sub
48.所谓“水仙花数”是指一个三位数等于它每位上数字的立方和。例如:153=13+53+33,那么153就是一个水仙花数。编制事件过程Command1_Click,输入一个三位正整数n,判断该数是否是水仙花数,将判断结果输出。Private Sub Command1_Click()
Dim i As Integer
Dim a As Integer
Dim b As Integer
Dim c As Integer
i = InputBox("请输入一个三位数")
a = i Mod 10 '个位
b = (i \ 10) Mod 10 '十位
c = i \ 100 '百位
If i = a ^ 3 + b ^ 3 + c ^ 3 Then
Print "您输入的数属于水仙花数"
Else
Print "您输入的数不属于水仙花数"
End If
End Sub
B卷
选择题部分
注意事项:
1. 答题前,考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。
2. 每小题选出答案后,用2B铅笔把答题纸上对应题目的答案标号涂黑。如需改动,用橡皮擦干净后,再选涂其他答案标号。不能答在试题卷上。
一、单项选择题(本大题共10小题,每小题2分,共20分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。错涂、多涂或未涂均无分。
1.以下合法的Visual Basic变量是
A.ForLoop
B.Const
C.9abc
D.a#x
2.表达式5 Mod 3+3\5*2的值是
A.0
B.2
C.4
D.6
3.在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
x=InputBox("Input")
Select Case x
Case 1,3
Print "分支1"
Case Is >4
Print "分支2"
Case Else
Print "Else 分支"
End Select
End Sub
程序运行后,如果在输入对话框中输入2,则窗体上显示的是
A.分支1
B.分支2
C.Else分支
D. 程序出错
4.如果要改变窗体的标题,则需要设置的属性是
A.Caption
https://www.wendangku.net/doc/9f19017932.html,
C.BackColor
D.BorderStyle
5.设有语句open "c:\Test.Dat" For Output As#1,则以下正确的叙述是
A.该语句打开C盘根目录下一个已存在的文件Test.Dat;如果文件不存在,则出错
B.该语句以只读的方式打开一个名为Test.Dat的文件
C.该语句建立的文件的文件号为1
D.执行该语句后,就可以通过Input#语句从文件Test.Dat中读取信息
6.在程序代码中,将图片文件“abc.jpg”装入图片框Picture1的语句是
A.Picture1.Picture = "abc.jpg"
B.Picture1.image = "abc.jpg "
C.Picture1.Picture = LoadPicture("abc.jpg")
D.LoadPicture("abc.jpg")
7.可以惟一标识控件数组中的每一个控件属性的是
https://www.wendangku.net/doc/9f19017932.html,
B.Caption
C.Index
D.Enabled
8.执行指令“Circle (1000,1000),500,8,-6,-3”将绘制
A.圆
B.椭圆
C.圆弧
D.扇形
9.名为Sort的Sub子过程的形式参数为一数组,以下的定义语句中正确的是
A.Private Sub Sort(A() As Integer)
B.Private Sub Sort(A(10) As Integer)
C.Private Sub Sort(ByVal A() As Integer)
D.Private Sub Sort(A(,) As Integer)
10.创建一个名为“文件”的菜单项,欲使其可用Alt+F方式访问,则在菜单编辑器的标题文本框中应输入
A.文件($F)
B.文件(&F)
C.文件(#F)
D.文件(%F)
二、判断题(本大题共10小题,每小题1分,共10分)
判断下列各题,在答题纸相应位置正确的涂“A”,错误的涂“B”。
11.事件可以由用户触发,也可以由系统触发。
12.Visual Basic的单行结构条件语句应在一行写完,如果一行写不完,只能采用多行结构。
13.对于滚动条控件,在一次拖动滚动块的操作中,只发生一次Change事件。
14.形状控件的BorderWidth属性决定形状控件所绘制的几何图形的宽度。
15.执行Unload Forml语句后,窗体Forml消失,但仍在内存中。
16.目录列表框的Path属性只能在程序代码中设置,不能在设计阶段设置。
17.在Visual Basic中,控件数组可以由不同类型的控件组成。
18.在函数过程定义时,如果不指明函数过程参数的类型,则该参数没有数据类型。
19.在窗体的Form_Load事件过程中定义的变量是全局变量。
20.复选框的Value属性为1时,表示复选框被选中。
三、程序填空题(本大题共11小题,每小题2分,共22分)
(一)【程序说明】在图片框坐标系中,左上角的坐标为(-100, 100),右下角坐标为(100, -100),在文本框中输入弧度制的角度值,单击命令按钮,图片框内将生成带有坐标系的角度。
【程序】
Private Sub Form_Load()
21
Text1 =""
Text1.TabIndex = 0
Command1.Enabled = False
End Sub
Private Sub Command1_Click()
Picture1.Cls
Picture1.CurrentX = 22
Picture1.CurrentY = 0
Picture1.Print "(0, 0)"
Picture1.Line 23
Picture1.Line (0, -100)-(0, 100)
Picture1.Line 24
Command1.Enabled = False
End Sub
Private Sub Text1_Change()
Command1.Enabled = True
End Sub
【供选择的答案】
21.A.Scale (-100, 100)-(100, -100)
B.Picture1.Scale (100, -100)-(-100, 100)
C.Picture1.Scale (-100, 100)-(100, -100)
D.Scale (100, -100)-(-100, 100)
22.A.50 B.0
C.-100
D.100
23.A.(0, 100)-(-100, 0) B.(100, 0)-( 0, -100)
C.(100,-100)-( 0,-100)
D.(-100, 0)-(100, 0)
24.A.(0, 0)-(100 * Cos(Val(Text1.Text)), 100 * Sin(Val(Text1.Text)))
B.(0, 0)-(100 * Sin(Val(Text1.Text)), 100 * Cos(Val(Text1.Text)))
C.(0, 0)-(100 * Cos(Val(Text1.Text)), 100 * Cos(Val(Text1.Text)))
D.(0, 0)-(100 * Sin(Val(Text1.Text)), 100 * Sin(Val(Text1.Text)))
(二)【程序说明】该程序调用通用对话框控件,并在“打开”对话框窗口中只显示扩展名为“.txt”的文本文件,选中并打开其中的某个文本文件,将该文件中的数据逐行读入到字符串变量str中,并在Text1中显示出来。
【程序】
Private Sub Command1_Click()
Dim str as string
CommonDialog1.ShowOpen
CommonDialog1. 25
Open CommonDialog1.FileName For 26
Do While Not 27
28
Text1.text = Text1.text + str
Loop
Close #2
End Sub
【供选择的答案】
25.A.FilterName ="文本文件|*.txt" B.FilterName = "文本文件; *.txt"
C.Filter = "文本文件|*.txt"
D.Filter = "文本文件; *.txt"
26.A.Append as #2 B.output As #2
C.Input
D.Input As #2
27.A.EOF(1) B.EOF(2)
C.EOF(#1)
D.EOF(#2)
28.A.Line Input #2, str B.Line Input str,#2
C.Line Input 2, str
D.Line Input str, 2
(三)【程序说明】该程序的功能是随机产生20个两位数,从中找出最大的元素和最小的元素,请完善程序完成上述功能。
【程序】
Option Base 1
Private Sub Command1_Click()
Dim a(20) As Integer, i As Integer
Dim max As Integer, min As Integer
Randomize
For i = 1 To 20
a(i) = 29
Print a(i);
Next i
max = a(1): min = a(1)
For i = 2 To 20
If a(i) > max Then
30
ElseIf 31 Then
min = a(i)
End If
Next i
Print "最大数是:"; max
Print "最小数是:"; min
End Sub
【供选择的答案】
29.A.Int((Rnd*90)+10) B.Int((Rnd*89)+10)
C.Rnd*90+10
D.Int(Rnd*90)
30.A.a(i)=max B.max= a(i)
C.max=i
D.i=max
31.A.a(i)