上海计算机VB二级(A卷)_上海计算机二级vb试卷
上海计算机VB二级(A卷)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“上海计算机二级vb试卷”。
2011 上海计算机VB二级(A卷)
一、单选题
1.当运行程序时,系统自动执行启动窗体的__________事件过程。
A. Load B. Click C. Unload D. Gotfocus 2.已知列表框(List1)中有10个数据项,对列表框操作不正确的语句是___________。
A. List1.Clear B. List1.RemoveItem “计算机” C. List1.RemoveItem 4 D. List1.Additem “打印机”
3.若要使标签控件显示时不覆盖窗体的背景图案,要对___________ 属性进行设置。
A. BackColor B. BorderStyle C. ForeColor D. BackStyle 4.下列函数中,_________函数返回值是数值型的。
A. Chr()B. Mid()C. Val()D. Replace()5.下面的过程定义语句中_________是不合法的。
A. Sub Sub1(ByVal n%)As Integer B. Sub Sub1(ByVal n%)C. Function Sub1(ByVal n%)As Integer D. Function Sub1%(ByVal n%)6.定义结构类型并声明变量如下: Type Student Dim No As Integer Dim Name As String End Type Dim s As Student 下列语句正确的是__________。
A. s={100001,”张三”} B. Name=”张三”
C. Student.Name=”张三” D. s.Name=”张三”
7.VB程序设计中,响应对象的外部动作称为______ , 而对象可以执行的动作或对象本身的行为则称为______。
A. 方法,事件 B. 事件,方法 C. 属性,方法 D. 过程,事件
8.在过程A中定义了静态变量y。从调用过程A第一条语句开始,在退出过程A前,y的值为5。当下次再进入过程A时,y的值为_____。
A. 5 B. 0 C. 不定值 D. 出错
9.用户单击水平滚动条HScrollBar1两端的箭头(“>”或“
A. LargeChange B. SmallChange C. Min D. Max 10.要打开CommonDialog1 对话框选取字体属性来改变Text1的字体大小,下面_________语句组是正确的。
A. CommonDialog1.ShowFont Text1.FontSize=CommonDialog1.FontSize B. CommonDialog1.ShowFont Text1.Font=CommonDialog1.Font C. CommonDialog1.Show Text1.FontSize=CommonDialog1.FontSize D. CommonDialog1.Show Text1.Font=CommonDialog1.Font 11.在多分支结构的Case子句中,判断字符变量 C 的值是“W”到“Y”之间的字母,以下写法中正确的是________。
A. Case C=”Y” Or C=”X” Or C=”W” B. Case C>=”W” And C
12.下面________不属于VB的变量作用域。
A. 窗体/模块级变量 B. 外部变量 C. 局部变量 D. 全局变量
13.若要在一窗体内安排两组单选按钮,可用________控件加以分隔。
A. 文本框 B. 标签 C. 框架 D. 菜单
14.执行如下循环语句:
For i=1 To 10 Step 0
...Next 结果为________。
A. 死循环
B. 循环体执行一次 C. 语法错误
D. 循环体一次也不执行
15.若用Dim a(10)As Integer 声明了数组a,以下语句中错误的是________。
A. a(10)=10 B. a(10)=Lbound(a)C. a(10)=a(1)+a(2)D. a(10)=a(11)+10
二、程序填空:
1.文本文件“D:score.txt”存放着不超过100个学生的成绩,每行存放一个学生的成绩。程序打开该文件,逐个读入学生成绩,存放在数组score中,并显示在文本框Text1中,同时计算所有学生成绩合格率(大于等于60分为合格),并显示在标签上,如下图所示,请完成填空。
Private Sub Form_Click()Dim score(100)As Integer, n As Integer, m As Integer Open “D:score.txt” For(1)As #1 n = 0 '总人数
m = 0 '成绩合格人数 Text1.Text = “” Do While Not(2)n = n + 1 Input #1, score(n)Text1.Text = Text1.Text & score(n)& vbCrLf If score(n)(3)Then m = m + 1 '合格人数计数 End If Loop
Label1.Caption = “合格率为” & Format(m / n * 100, “0.00”)& “%” Close #1 End Sub 1)Input 2)EOF(1)3)>=60
2.产生10个不重复的2位随机整数。算法思想是先产生一个随机数tmp,然后在已经存放着不重复随机数的数组a中,查找tmp是否已经存在。如果已经存在,则丢弃,再重新产生;反之,就将tmp存放入数组a中。
Private Sub Form_Click()Dim tmp As Integer, i As Integer, j As Integer Dim a(10)As Integer Dim isExist As Boolean ' 重复随机数标志 Randomize Label1.Caption = “不重复的2位随机整数:” i = 0 Do While(i
3.求1000~9999之间的零巧数。
零巧数:一个百位数字为0的四位数,如果去掉这个零得到三位数的9倍等于原数。
例如2025的百位数是0,去掉这个0,得到225。因为225 * 9 =2025,所以2025是零巧数。
函数Shu功能是判断是否是零巧数。其返回值:如果是零巧数,则返回零巧数的三位;否则返回-1。
列表框1显示零巧数,列表框2显示对应的三位数。
Private Sub Command1_Click()Dim i%, n% For i = 1000 To 9999 n =(1)If n > 0 Then '若是零巧数,则添加 List1.AddItem i List2.(2)End If Next i End Sub Function Shu(n%)As Integer Dim k%, m% Shu =-1 k = Mid(n, 2, 1)'获取百位数 If(3)Then m = Mid(n, 1, 1)&(4)If m * 9 = n Then Shu =(5)End If End Function 1)2)3)4)5)Shu(i)AddItem n K=0 Mid(n,3,2)m
三、程序调试题(共20分,每错2.5分,第1题有2处错,第2题有3处错,第3题有3处错)
启动工程文件“C:ks改错A.vbp”,请调试改正,并按原文件名和位置保存。正确结果见样例“c:样张改错样例A.exe”。
改错方法:不能修改或重新定义变量,不允许增加或删除语句,但可以修改语句,所修改的语句必须在句尾加上注释标记 ' ***********。
调试改错题1, 程序中有2个错误。
程序的功能是单击“调试改错题1”按钮,随机产生一个2000-2300之间的年份,在文本框显示;在标签2显示是否是闰年。判断闰年:若该年份能够被4整除但不能被100整除,或者能够被400整除,则该年份是闰年。程序中有2个错误,请调试改正。
Private Sub Command1_Click()Dim year% Dim t1 As Boolean, t2 As Boolean, t3 As Boolean '3个逻辑变量用于存放3个条件的结果
year = Int(Rnd()* 301 + 2000)'此句正确 year = Text1.Text
Text1.Text= Int(Rnd()* 301 + 2000)' *********** t1 = year Mod 4 = 0 t2 = year Mod 100 0 t3 = year Mod 400 = 0 If(t1 And t2)And t3 Then If(t1 And t2)Or t3 Then
*********** Label2.Caption = year & “年是闰年” Else Label2.Caption = year & “年不是闰年” End If End Sub
调试改错题2, 程序中有3个错误。
单击“调试改错题2”按钮,启动定时器,显示打字机效果的文字和光标效果(“_”);当文字显示完整,关闭定时器,光标不显示,见样例。程序中有
3个错误,请调试改正。
Private Sub Command2_Click()Timer1.Enabled = False Timer1.Enabled = True
*********** End Sub Private Sub Timer1_Timer()Static p% 'p为记录字符位置的变量
Dim s$ s = “欢迎参加2011年计算机等级考试” Label3.Caption = Mid(s, p)& “_” '取字符串左起p个字符
Label3.Caption = Left(s, p)& “_”
************ If p = Len(s)Then Timer1.Enabled = True Timer1.Enabled = False
************ Label3.Caption = s Else p = p + 1 End If End Sub
调试改错题3, 程序中有3个错误。
计算多项式 e = 1+1/1!+ 1/2!+1/3!+…+1/6!的值。Private Sub Command3_Click()Dim i As Integer Dim f As Long Dim ee As Double ee = 1 f = 0 f = 1
************* For i = 1 To 6 f = f * i ee = ee + f ee = ee + 1/f
************* Next Label4.Caption = “ e= ” + ee Label4.Caption = “ e= ” & ee
************* End Sub
四、编程题(35分)
参照样例,编写一个完整的程序,要求如下:
1.在Form1窗体上放置文本框、列表框、标签和命令按钮,并建立菜单,界面如样例所示。
在Form2窗体上放置“绘图”和“返回”两个命令按钮,设置窗体宽度为4800单位,高3600单位。
2.在Form1窗体上单击“确定”按钮,模拟出租车计价器:计算车费,将本单交易添加到列表框,并清除文本框中数据。
计算公式:起步费:13元(3公里);3到10公里:2.4元/公里;10公里以后:3.6元/公里。
3.单击“求平均值”菜单项,在标签中显示各次车费的平均值;单击“窗体2”菜单项时,先隐藏Form1窗体,再打开Form2窗体;单击“退出”菜单项时,结束程序的运行。4.在Form2窗体上单击“绘图”命令按钮,设置坐标系Scale(-2,2)-(2,-2),xcos(2x)(x0)y2sin(3x)x21(x0)绘制坐标轴;按分段函数:,步长0.001,绘制曲线。x
单击“返回”命令按钮则关闭Form2窗体,显示Form1窗体。5.在C:KS 目录下将工程保存为bcta.vbp、Form1窗体为bcta1.frm、Form2窗体为bcta2.frm。
‘form1 Dim s As Single
Dim n, y
n = Val(Text1.Text)
Select Case n
Case Is
MsgBox(“请输入数据”)
Exit Sub
Case Is
y = 13
Case Is
y = 13 +(n10)* 3.6
End Select
s = s + y
List1.AddItem y
Text1 = “” End Sub
Private Sub menu11_Click()
n = List1.ListCount
If n > 0 Then
Label4 = “车费平均值 ” & s / n
Else
Label4 = “无客人乘坐”
End If End Sub
Private Sub menu12_Click()
End End Sub
Private Sub menu2_Click()
Form1.Hide
Form2.Show End Sub
‘form2 Private Sub Command1_Click()
Scale(-2, 2)-(2,-2)
Line(-2, 0)-(2, 0)
Line(0, 2)-(0,-2)
For x =-2 To 2 Step 0.001
If x
y = x * 0.51
PSet(x, y), vbBlue
End If
'
If Abs(y)
'
Circle(x, 0), 0.1, vbRed
'
End If
Next x End Sub
Private Sub Command2_Click()
Unload Me
Form1.Show End Sub