江苏省2019年春二级计算机考试VB笔试试卷7页word
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2019春计算机等级考试(二级)
Visual Basic 程序设计 第二部分
一、 选择题
21.关于窗体,以下叙述中正确的是___________。
A 仅当窗体上没有可以获得焦点的控件时,窗体才可以获得焦点
B 一个VB 工程只能从某个指定的窗体开始启动
C 只有窗体可以作为控件的容器
D Unload Me 和End 语句的效果总是等同的
22 若a 为长整型变量,则执行a=12;Print Len(a);Len(Str(a));Len(CStr(a))后,在窗体上看到的是__________。
A 4 2 3
B 2 3 2
C 4 3 2
D 2 2 3
23 数学表达式Inx
y 430cos 。
+2e 对应的Visual Basic 表达式是___________ A Cos(30*3.14159/180)/(4*y+Ln(x))+Exp(2)
B Cos(30*3.14159/180)/(4*y+Log(x))+Exp(2)
C Cos(30*3.14159/180)/(4*y+Ln(x))+e^2
D Cos(30)/(4*y+Log(x))+e^2
24 表达式Fix(-2.5)+Int(-3.5)+CInt(-2.5)的值是_________________。
A -8
B -7
C -6
D -5
25.以下说法中,错误的是_________________。
A .使用缺省Preserve 关键字的ReDim 语句可以改变数组的维数和大小
B .ReDim 语句只能出现在过程中
C .使用ReDim 语句重新定义的动态数组,只能比原数组大
D .使用ReDim 语句可以对动态数组的所有元素进行初始化
26 下列关于菜单的说法中,错误的是_____________。
A 可以为菜单项选定快捷键
B 若在“标题”文本框中键入连字符(-),则可在菜单的两个菜单命令项之间加一条分隔线
C 除了Click 事件之外,菜单项还可以影响其他事件
D 菜单编辑器的“名称”文本框用于输入菜单项的名称
27 以下有关过程中形式参数的描述中,错误的是_____________。
A 函数过程可以没有形式参数
B 事件过程一定没有形式参数
C 形参数组只能按地址与实参数组结合
D 窗体与控件也可以作为过程的参数
28 以下表达式中,可以表示“A 和B 之一大于0”的是_______________。
①A*B<=0 ②A>0 Xor B>0 ③A>0 OrB>0 ④A>0 And B<=0 Or B>0 And A<=0
A ①③
B ③④
C ②④
D ①②④
29 设变量A 为长整型,则下面不能正常执行的语句是__________。
A A=32768*2
B A=2*1.5*16384
C A=16384*2
D A=190^2
30 以下有关滚动条控件(ScrollBar)的说法中错误的是______________。
A 只能在设计时设置Max与Min属性值
B Value属性返回滚动条内滑块当前所处位置的值
C 拖动滚动条内滑块时,将触发滚动条的Scroll事件
D 单击滚动箭头时,将触发滚动条的Change事件
二、填空题
1 执行下面程序,单击Command1后,A(1,4)的值是__ (1)____,A(2,3)的值是___(2)___,A(2,3)的值是____(3)_______。
Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim A(4, 4) As Integer, UB As Integer
Dim i As Integer, j As Integer, n As Integer
UB = UBound(A, 1)
n = 0
For i = UB To 1 Step -1
For j = 1 To UB + 1 - i
n = n + 1
A(j, j + i - 1) = n
Next j
Next i
For i = UB To 2 Step -1
For j = UB To i Step -1
A(j, j - i + 1) = A(5 - j, 4 - j + i)
Next j
Next i
For i = 1 To UB
For j = 1 To UB
Picture1.Print A(i, j);
Next j
Picture1.Print
Next i
End Sub
2 执行下面的程序,单击Command1后,在InputBox函数对话框中输入4(或直接单击“确定”按钮),窗体第一行显示的内容是___(4)______,第二行显示的内容是____(5)_____,第四行显示的内容是_____(6)_________。
Option Explicit
Private Sub Command1_Click()
Dim Days As Integer
Days = InputBox("输入正整数", , 4)
Print fun(Days)
End Sub
Private Function fun(D As Integer) As Integer
If D = 1 Then
fun = 1
Else
fun = 2 * fun(D - 1) + 1
Print D; fun
End If
End Function
3. 执行下面程序,单击Command1后,窗体第一行显示的内容是___(7)______,第三行显示的内容是___(8)______,最后一行显示的内容是___(9)______。
Private Sub Command1_Click()
Dim I As Integer, K As Integer
For I = 1 To 5
K = Fun(I) + I
Print K
Next I
Print I
End Sub
Function Fun(N As Integer) As Integer
Static M As Integer
Dim J As Integer
M = M + N
N = N + 1
For J = 1 To M
J = J + 2
Fun = Fun + J
Next J
Fun = Fun + N
End Function
4 执行下面程序,单击Command1后,窗体第一行显示的内容是___(10)______,第三行显示的内容是___(11)______,最后一行显示的内容是___(12)______。
Option Explicit
Private Sub Command1_Click()
Dim S As String, N As Integer
S = "3AB"
N = 14
Print Convert(S, N)
End Sub
Private Function Convert(S As String, N As Integer) As Long
Dim St As String, L As Integer, I As Integer
L = Len(S)
Do While L >= 1
St = Left(S, 1)
If St > "9" Then
St = Asc(St) - 55 '"A"的ASCII码为65
End If
Convert = Convert + Val(St) * N ^ (L - 1)
Print Val(St) * N ^ (L - 1)
L = L - 1
S = Right(S, L)
Loop
End Function
5 执行下面程序,单击Command1后,窗体第一行显示的内容是___(13)______,第三行显示的内容是___(14)______,最后一行显示的内容是___(15)______。
Option Explicit
Private Sub Command1_Click()
Dim s As String, k As Integer, ch() As String
Dim p As String, i As Integer
s = UCase("Meet me after the class.")
For i = 1 To Len(s)
If Mid(s, i, 1) <= "Z" And Mid(s, i, 1) >= "A" Then
p = p & Mid(s, i, 1)
ElseIf p <> "" Then
k = k + 1
ReDim Preserve ch(k)
ch(k) = p
p = ""
End If
Next i
For i = 1 To UBound(ch)
If Len(ch(i)) <= 2 Then
Call move_c(ch(i), 1)
Else
Call move_c(ch(i), 2)
End If
Print ch(i)
Next i
End Sub
Private Sub move_c(s As String, k As Integer)
Dim i As Integer, j As Integer, p As String * 1
For i = 1 To k
p = Right(s, 1)
For j = Len(s) - 1 To 1 Step -1
Mid(s, j + 1, 1) = Mid(s, j, 1)
Next j
s = p & Right(s, Len(s) - 1)
Next i
End Sub
6. 下面程序的功能是求π的近似值,当第n项的绝对值小于105 时终止计算
Option Explicit
Private Sub Command1_Click()
Dim n As Long, s As Single, t As Single, pi As Single
Const eps = 0.00001
n = 1
t = 1
s = 0
Do
s = s + t
n = n + 1
t = (16)
Loop Until (17)
pi = s * 4
Label1.Caption = "π的近似值为:"
Text1 = pi
End Sub
7. 下面程序的功能是:找出满足以下条件的三位整数,不含数字0;且任意交换数字位置所得到的数,均能被6整除。
Option Explicit
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer, st As String
Dim a(6) As Integer
For i = 100 To 999
If (18) Then
For j = 1 To 6
If a(j) Mod 6 <> 0 Then Exit For
Next j
If (19) Then
st = st & Str(i)
k = k + 1
If k Mod 3 = 0 Then st = st & vbCrLf
End If
End If
Next i
Text1 = st
End Sub
Private Function fj(a() As Integer, s As String) As Boolean
Dim n As Integer, i As Integer, j As Integer
If InStr(s, "0") <> 0 Then
(20)
End If
For i = 1 To 3
For j = 1 To 2
n = n + 1
______ (21)
s = Left(s, 1) & Right(s, 1) & Mid(s, 2, 1)
Next j
s = Right(s, 1) & Left(s, 2)
Next i
fj = True
End Function
8. 下面程序是功能是求两个特大整数之和。
由于VB中能够表示是整数大小有一定限制,所以必须用新的方法求特大整数之和,本程序将特大整数使用字符类型进行处理,其中函数Add用于求两个1位整数之和,参数c用于保存进位。
注意:求和前需先将两个整数按位对齐。
Option Explicit
Private Sub Command1_Click()
Dim s1 As String, s2 As String, s3 As String
Dim i As Integer, n1 As Integer, n2 As Integer
Dim c As Integer, n As Integer
s1 = Text1: s2 = Text2
n = (22)
If Sgn(n) > 0 Then
s2 = (23)
ElseIf Sgn(n) < 0 Then
s1 = String(Abs(n), "0") & s1 '函数String(n,"0")返回包含n个0的字符串
End If
For i = Len(s1) To 1 Step -1
n1 = Val(Mid(s1, i, 1))
n2 = Val(Mid(s2, i, 1))
s3 = (24)
Next i
If c <> 0 Then s3 = (25)
Text3 = s3
End Sub
Private Function Add(x As Integer, y As Integer, c As Integer) As String '参数c记录进位Add = CStr((x + y + c) Mod 10)
(26)
End Function
9. 下面程序的功能是:找出各位数字互不相同,且其6倍数仍由组成该数的数字构成的六位整数。
例如:126873的6倍数是761238,就是符合条件的数。
提示:程序中用a、b数组来标示数组元素下标值对应的数字是否出现在六位整数中。
例如2出现在某六位整数中,则a(2)的值为1。
Option Explicit
Private Sub Command1_Click()
Dim i As Long, i2 As Long, flag As Boolean
Dim a(0 To 9) As Integer, b(0 To 9) As Integer
For i = 100000 To 160000
Call validate(i, a, flag)
If flag Then
i2 = i * 6
Call validate(i2, b, flag)
If flag And compare(a, b) Then
List1.AddItem i & " " & i2
End If
End If
Next i
End Sub
' 验证一个数是由不同数字组成
Private Sub validate(n As Long, a() As Integer, f As Boolean)
Dim p As Integer, i As Integer
Erase a
f = False
For i = 1 To Len(CStr(n))
p = (27)
If a(p) = 1 Then
Exit Sub
Else
(28)
End If
Next i
(29)
End Sub
' 判断两个数是否由相同数字组成
Private Function compare(a() As Integer, b() As Integer) As Boolean Dim j As Integer
compare = False
For j = 1 To UBound(a)
If a(j) <> b(j) Then
(30)
End If
Next j
compare = True
End Function。