上海市高等学校计算机等级考试试卷(B)
上海市高等学校计算机等级考试试卷
二级Visual Basic程序设计
(考试时间120分钟----B卷)
一、单选题(15分,每题1分)
1. MyObject.SetFocus方法是将 D 移至对象MyObject上。
A. 鼠标
B. 程序控制权
C. 焦点
D. 光标
2.在Visual Basic 中称各种可在对象上操作的过程为______B____。
A. 属性
B. 方法
C.事件
D.封装
3.下列控件中既可用于输入文本,又可用于显示文本的是___B_____。
A. Label 控件(输出)
B. TextBox 控件
C. Timer 控件
D. CommandButton 控件
4.能够将文本框来的属性是__B____ _。
A. Locked
B. Visible
C. Hide
D. Enabled
5. 可以通过函数,返回最近一次读写操作的文件指针位置。
A. LOC
B. LOF9返回某文件字节数)
C. EOF (检查指针是否到达文件尾)
D. Seek
6.下列数值中_____D_______ 不可能通过表达式Rnd * 20 + 10 产生。
A.10
B. 15
C. 20
D. 30
7.表达式10 \ 8 Mod 9 的值是_____B____。
A. 0
B. 1
C. 2
D. 9
8. 如果有自定义函数Fact(x As Integer),则形式参数x的默认传递方式是。
A. 传值
B. 传址
C. 传变量
D. 传函数
9.为了给x,y,z三个变量赋初值1,下面的赋值语句正确的是___A________。
A. x=1: y=1: z=1
B. x=1,y=1,z=1
C. x=y=z=1
D. xyz=1
10.数组声明语句Dim a(4,-1 To 2)中的数组a包含了_____D___个数组元素。
A. 12
B. 15
C. 16
D. 20
11.从函数过程退出,并返回到主调过程,可使用语句____C____ 。
A. Exit For
B. End
C. Exit Sub
D. Exit Function
12.要使计时器正常工作,其属性值应满足______A___。
A. Enabled = True且Interval > 0
B. Enabled = False且Interval > 0
C. Enabled = False且Interval = 0
D. Enabled = False且Interval = 0
13.当要用字符串"VB考试"修改列表框List1所选中的数据项时,正确的表示方法是
_________。
A. List1.AddItem "VB考试"
B. List1.List(List1.ListIndex)="VB考试"
C. List(List1.ListIndex) = "VB考试"
D. List1.List(ListIndex) = "VB考试"
14.在用Open 语句打开文件时,如果省略"For方式",则打开的文件的存取方式是
_________。
A. 顺序输入方式
B. 顺序输出方式
C. 随机存取方式random
D. 二进制方式binary
15.在Visual Basic中默认坐标原点在窗体的________A___ 。
A. 左上角
B. 左下角
C. 中心
D. 底部中点
二、填充题(20分,每空2分)
1.当焦点进入文本框Text1时,要自动选定文本框开始的5个字符,则需要通过代码
Text1.SelStart = __0____ 和Text1.SelLength = 5来实现。
2.当设置文本框的ScrollBar 属性为2(有垂直滚动条)后,没有显示垂直滚动条,原因是没有将__MULTILINE______ 属性设置为True。
3.在程序代码Label1.Caption = "Visual Basic"中,表示对象的是___LABEL1______。
4.设变量TestMe的值为500,则Print TestMe > 1000, "Large", "Small") 将输出
____SMALL____。
5.请在空白处填入适当的内容,使程序的输出结果是3 。
Private Sub Command1_Click()
num = 0
Do While ____num<>3____
num = num + 1
Loop
Print num
End Sub
6.对For i = 5 To -5 Step -2 语句,共循环___5_______次。
7.在过程定义时,表示值传递的关键字是____byval_____。
8.要使装入到列表框中的数据项能自动排序,应设置该控件的____sorted_______ 属性为True 。
9.要覆盖一个已存在的顺序文件中原有的数据,在Open 语句中应该以For __output_____模式打开文件。
10.已知窗体Form1 的CurrentX = 1000,执行了命令PSet Step(200, 200) 后,CurrentX 的值为________ 。
三、程序填充题(30分,每空2.5分)
1.下面程序的功能是统计文件file2.txt中数字符号出现的次数。
程序的思想是:每次从文件中读取一个字符,判断是否是数字字符。若是数字字符,计数器加1。
Private Sub Command1_Click()
Dim a As Integer, c As String * 1
(1) open” file2.txt”For Input As #3
a = 0
Do While Not EOF(3)
c = Input$((2)#1 ) ' 读取一个字符,
If c >= "0" And c <= "9" Then
(3)a=a
+1 ' 计数器加1
End If
Loop
Close #3
Print " 数字字符出现的次数:"; a
End Sub
2. 程序完成对数组a中的10个整数用冒泡法按升序排列,并将排序结果显示在Picture1图片框中。
Private Sub Command1_Click()
Dim a()
Dim i%, j%, n%, t%
a = Array(678, 45, 324, 528, 439, 387, 87, 875, 273, 823)
n = UBound(a)
For i = 0 To (1) 9
For j = 0 To n - i - 1
If (2) a(i) > a(j + 1) Then
t = a(j)
a(j) = (3) a(i)
a(j + 1) = t
End If
Next j
Next i
For j = 0 To n
Picture1. print “j
“
(4) ; " ";
Next j
End Sub
3. 所谓回文素数是指构成的字符左右对称的素数。例如:11、101、313等。下面的程序求10~1000以内的所有回文素数。
程序的思想是选取正整数N,若N是素数,调用子过程hws判断该素数是否为回文数(判断左右对称),若是,在文本框内显示所求结果,如图所示。
Private Sub Command1_Click()
Dim i%, j%, flg As Boolean,m%
For i = 10 to 1000 (1)
m= Int(Sqr(i))
For j = 2 To m ' 判断是否为素数
If i Mod j = 0 Then next i (2)
Next j
If j>m Then
Call hws (3)
If flg Then Text1 = Text1 & i & vbCrLf
End If
Next i
End Sub
Private Sub hws(n As Integer, bz As Boolean) '
Dim j%, k%, m$
bz = True
m = CStr(n) ' 将数值转为字符
k = len(m) (4) ' 求字符m的长度
For j = 1 To k \ 2 '判断回文数
If j (5) <> Mid(m, k - j + 1, 1) Then
bz = False
Exit For
End If
Next j
End Sub
四、编程题(35分)
编写一个完整的程序,要求如下:
1. 在Form1窗体上放置1个标签和1个列表框(初始值为空)。窗体标题栏显示考生真
菜单项菜单名称说明
窗体1 Menu1 一级菜单
….添加Menu11 二级菜单
….平均值Menu12 二级菜单
….-(分隔线)bar 二级菜单
….退出(X) Menu13 二级菜单
图形Menu2 一级菜单
建立
2.在Form1中,单击“添加”菜单项,在列表框中随机产生5组三个相邻正整数N ,N+1和N+2(100≤N<1000)。单击“平均值”菜单项,计算所产生数的平均值(保留2位小数),并显示在标签上。
3.选择“图形”菜单项,显示Form2窗体。双击Form2窗体,显示Form1窗体。选择“退出”菜单项,结束程序运行。
4.单击Form2窗体,重新定义窗体的坐标系为(-10, 300)-(300, -10)。在窗体上按公式:y=x2÷255,x=0~255。
用Pset方法绘制如图2所示图形,其中绘制坐标轴直线的线宽为1,绘制曲线的线宽为5,曲线的颜色为绿色。
5.在C:\KSB目录下将工程保存为bctb.vbp、Form1窗体为bctb1.frm、Form 2窗体为bctb2.frm。
(文件名中符号1是数字1,不是字母L)。