浙江省高中信息技术选考加试题
VB专项练习题一
一、选择题:本大题13小题,第小题2分,共26分。在每小题给出的四个选项中,只有
一个是符合题目要求的。
1.某程序代码中变量X的取值范围是-999~99999的整数,则X的数据类型应定义为:(A)Integer (B)Long (C)String (D)Boolean
2.VB表达式len(mid(“abc123”,4,1))+int(-0.01)的值是:
(A)0 (B)1 (C)2 (D)3
3.有如下VB程序段:
Private Sub Command1_Click()
Dim s As String
s = "zj"
For i = 1 To 4
s = " " + s
Next i
Print s
End Sub该程序的作用是:
(A)在变量S前加4个空格(B)在变量S后加4个空格
(C)程序运行后S结果不变(D)程序运行后S的值是“zjzjzjzj”
4.将数学表达式e4+x2写成VB表达式,正确的是:
(A)e4+x2(B)e*e*e*e+x*x (C)e^4+x^2 (D)exp(4)+x*x
5.小王正在用VB编写一个简易计算器程序,请问他下次重新打开准备修改时,需要打开的文件是:
(A)计算器.bas (B)计算器.frm (C)计算器.vbp (D)计算器.cls
6.下面是一个计算100以内倒数和的程序,运算结果如图所示,请问代码中有错的语句是:
(A)Dim s as integer (B)i as integer
(C)text1=s (D)s=s+1/i
7.下面VB程序中,双击命令按钮二次,s的值是:
Dim s As Integer
Private Sub Command1_Click()
For i = 1 To 2
s = s + 1
Next i
Print s
End Sub
(A)0 (B)1 (C)2 (D)4
8.下面VB表达式的计算结果为4的是:
(A)13 / 3 (B)13 mod 3 (C)13 \ 3 (D)13 mod 3 \ 13 9.下图所示是一个求和程序,程序界面上有标签Label1、标签Label2和一个命令按钮Command1。程序运行时,单击命令按钮Command1后弹出“编译错误”信息提示并指向错误语句所在代码。请问下面修改方法可以让程序正确运行的是:
(A)Command1.caption=s (B)B.Text1.text=s
(C)Text1=s (D)Labe2.caption=s
10.上题运行结束后,i的值是()
(A)1 (B)20 (C)22 (D)23
11.小王想把身边600个“兔年”吉祥物装到规格不一样的三种盒子里,大盒子同时能装8个,中盒子同时能装5个,小盒子同时能装2个。要求所有盒子都要用到,并且小盒子至少用到3个或以上。
Private Sub Command1_Click()
For ______________________
For y = 1 To 118
For z = 1 To 74
If 2 * x + 5 * y + 8 * z = 600 Then
Print x, y, z
c = c + 1
End If
Next z
Next y
Next x
Print "总共有" + Str(c) + "方案"
End Sub
划线处最合适的语句是:
(A)x =3 To 293 (B)x = 1 To 293
(C)x = 1 To 300 (D)x = 3 To 600
12.下图是某个控件的属性设置情况,如果把Visible的值设为false,则程序运行后:
(A)程序运行时什么都不显示
(B)程序运行时只显示命令按钮,不显示窗体
(C)程序运行时能显示窗体
(D)程序运行时窗体和命令按钮都能显示
13.有如下四个VB程序段,启动程序后自动运行的是:
(A)Private Function sina(n) As Integer .......
End Function (B)Private Sub work(a, b) .......
End Sub
(C)Private Sub Command1_Click() .......
End Sub (D)Private Sub Form_Load() .......
End Sub
二、综合题:本大题5小题,其中第14题2分,第15题4分,第17题4分,第18题5
分,共19分。
14.下列VB程序运行时,在文本框Text1中输入45,单击命令按钮Command1后,文本框Text2中显示的内容是。
Private Sub Command1_Click()
Dim n As Integer, a As Integer, b As Integer
n = Val(Text1.Text)
a = n Mod 10
b = n \ 10
Text2.Text = Str(a * 10 + b)
End Sub
15. 某省外高校2016年预备在浙江招生30人,投档比例为1:1.2,投档考生数按四舍五入原则取整。假设第一志愿填报该校的考生有100人,投档时是按照高考总分从高到低的原则进行。根据题意补充完成以下程序代码。
Private Sub Command1_Click()
Dim a(1 To 100) As Integer '定义第一志愿报考考生个人高考总分
Dim x As Integer '定义某校招生人数
Dim y As Integer '定义实际投档人数
X=30
y = ①
For i = 1 To y - 1
k = i
For j = i + 1 To y
If a(j) > a(k) Then k = j
Next j
If ②m = d(i): d(i) = d(k): d(k) = m
End If
Next i
End Sub
①②
16. 小马做了一个高校录取查询系统,当用户输入考号后,系统根据chaxun函数将录取结果返回到text_2对象上,根据下图,完成划线处的代码:
Private Sub Command1_Click()
D im t as string
t=text1.text
If ①Then
② = "恭喜您,已被录取!"
Else
P rint("很遗憾,您未被录取!")
End If
End Sub
Function chaxun(test As String) As Boolean
'代码省略,当返回true时则录取,false则未被录取
End Function
①②
17.下列VB程序的功能是:程序运行时,在文本框Text1中输入正整数N,单击计算按钮Commandl后,计算N中各位数之和,并在文本框Text2中输出结果,例如:2012的各位上数之和是2+0+1+2=5,则在Text2中输出5。程序运行界面如图所示。请在划线上填入合适的代码:
Private Sub Command1_Click() Dim i As Integer, sum As Integer Dim r As Integer
Dim n As Long
n = Val(Text1.Text):sum = 0
Do While n > 0
①
sum = sum + r
②
Loop
Text2.Text = Str(sum)
End Sub
①②
18.某商店为了推出VIP会员卡促销活动,VIP会员卡号是唯一的,VIP卡内会记录每位顾客的卡号、姓名、金额等信息。每当刷卡时,VIP卡号就被输入电脑,然后进行查找,如果找到就显示姓名,否则显示“无效的VIP卡”。下列程序的功能是根据卡号查找对应的姓名和余额,第i位顾客的卡号保存在a(i)中,姓名保存在b(i)中,余额保存在c(i)中。
程序界面如下图所示,左边列表框列出所有顾客的卡号、姓名、余额,在右边文本框Text1中输入卡号,单击“查找”按钮(Command1),程序就按卡号进行查找,如果找到就在标签Label3中输出卡号对应同学的姓名,否则就输出“查无此人”。
(1)虚线内程序段所采用的查找算法名称是。
(2)程序加框处代码有错,请改正。
Dim a(1 To n) As Long ' 数组a存储会员编号,设会员总数为n
Dim b(1 To n) As String ' 数组b存储对应会员的积分
Dim c(1 To n) As Single ' 数组c存储对应会员的余额
Private Sub Form_Load()
' 此过程用于将会员编号及其对应的姓名金额分别存入数组a、b、c中
' 对数组a按升序进行排序,代码略
End Sub
Private Sub Command1_Click()
Dim x As Long, i As Long, j As Long, m As Long
Dim flag As Boolean
x = Val(Text1.Text)
flag = True
i = 1: j = n
Do While (i <= j) And Not flag
m=Fix((i+j)/2)
If x = a(m) Then
flag = True
ElseIf x < a(m) Then
i = m - 1
Else
i = m + 1
End If
Loop
If flag Then
Label3.Caption = "姓名: " + b(m)+ " 余额: " + Str(c(m))
Else
Label3.Caption = "找不到此会员"
End If
一、选择题:
题号 1 2 3 4 5 6 7 8 9 10 11 12 13 答案 B A A D C A D C D C A A D
二、填空题:
14. 54
15.①Int(1.2 * x + 0.5) 或Int(1.2 *30 + 0.5)
②i <> k Then
16.①chaxun(t)或chaxun(t)=true或chaxun(t)<>false
②text_2.caption或text2
17. ①r = n Mod 10 ②n = n \ 10
18. (1)对分查找(2)①flag=true ②j=m-1