当前位置:首页 > 江苏省计算机二级vb分章节解析
Loop End Sub
Private Sub Command2_Click() Dim S as String, st as String, I as Integer For I = 0 To ____3_____ ST = List1.List(i) For j = 1 To Len(st) S = Mid(st, j, 1) & S Next j For j = Len(S) To 1 Step –1 N = ____4______ Next j Text2 = Text2 & Chr(N) S = “” ____5____ Next i End Sub
【答案】(1)N=N+1,(2)St=””,(3) List1.ListCount-1,(4)N+Val(Mid(s,j,1))*2^(8-J),(5)N=0
【解析】Command1_Click过程中:N为计数器,表示对第N个数字进行操作,通过If语句对N进行判断是否是8的倍数,如是则表示St是一个密文字符的ASCII码逆序,输出至List1中,并将St清空,为下一个字符作准备。Command2_Click过程中:循环次数为List1中的列表项数,由于循环变量I是从0开始,因此循环终值为List1.ListCount-1,由于List1中存放的是密文的逆序,通过第一个For-Next j循环将其反射输出至S中,即S中存放的是密文的正序,再通过第二个For-Next j循环将S由二进制转换成十进制数N,最后再在循环体结束处将S和N清空,为解密下一字符作准备。
4.下面程序的功能是,验证任意一个大于5的奇数可表示为3个素数之和。完善程序,实现以上功能。
Option Base l
Private Sub Command1_Click()
Dim P() As Integer, N As Integer, L As Integer Dim I As Integer, J As Integer, k As Integer Dim ch As String
N=InputBox("输入一个大于5的奇数")
Label1.Caption=____1____ Call Prime(P, N) L=UBound(P) For I=1 To L For J=1 To L For k=1 To L
If ____2____ Then
ch=CStr(P(I)) & "+" & CStr(P(J)) & "+" & CStr(P(k)) Text1.Text=ch
____3____
End If Next k Next J Next I End Sub
Private Sub Prime(A() As Integer, N As Integer) Dim I As Integer, Idx As Integer Dim J As Integer For I=2 To N
For J=2 To Sqr(I)
If I Mod J=0 Then Exit For Next J
If J>Sqr(I) Then ____4____
ReDim Preserve A(Idx) A(Idx)=I
End If Next I End Sub
【答案】(1) N & \,(2) N = P(I) + P(J) + P(k) ,(3) Exit Sub ,(4) Idx = Idx + 1
5.将20个棋子围成一圈,按顺时针方向从1~20给棋子编号,从中取出棋子的规则是:从某编号棋子开始取出第1个棋子,然后按顺时针方向围绕圆周数棋子,从1数到2取第2个,再从1数到3取第3个,再从1数到4取第4个??直到取完。本程序的功能就是找出依照上述规则取棋子的编号序列,使得最后一个被取棋子的编号为指定的编号。例如:若指定最后取棋子的编号为9,则必须从编号为17的棋子开始取第一个棋子,取棋子的顺序是:17,19,2,6,11,18??9。完善程序,实现以上功能。
Option base 1
Private sub command1_Click()
Dim a(20) as integer, i as integer , k as integer Dim n as integer, number as integer, s as string Number=val(text2) For k=1 to 20 For i=1 to 20 a(i)=1 next i
s=____1____
call sub1(a, k, n, s) if n=number then text1=s exit for end if next k end sub
private sub sub1(a() as integer, Byval Idx As integer, n as integer, s as string) dim i as integer, js as integer, sum as integer dim ub as integer, step as integer ____2____ js=1:step=1 A(Idx)=0
Do while js<20 Step=step+1
____3____
Do While Sum If Idx>Ub Then ____4____ Sum=Sum+A(Idx) Loop A(Idx)=0 S=S & Left(CStr(Idx) & " ", 3) _____5____ If Js Mod 10=0 Then S=S & vbCrLf Loop N=Idx End Sub 【答案】(1) s = Left(CStr(k) & \ \,(2) ub = UBound(a)(或ub=20) ,(3) sum = 0 ,(4) Idx = 1,(5) js = js + 1 6.下列程序的功能是计算圆周率π(计算精确到第n项减1的绝对值小于10-5为止)。 ??2?22?22?2?22?2?2??? Option Explicit Private Sub Form_Click() Dim Y As Single, t As Single, a As Single Y=2:t=0 Do _____1______ a=2/t If ______2_______ Then Exit Do Y=Y*a Loop Print \End Sub 【答案】(1)t = Sqr(2 + t)(2)abs(a – 1) < 0.00001 7.执行下面程序,单击按钮Command1,在图片框Pic2中显示的第一行是_____1_____,第二行是_____2_____,第三行是____3_____。 Option Explicit Option Base 1 Private Sub Command1_Click() Dim sa(3, 3) As String*1, i As Integer, J As Integer Dim S As String, k As Integer S=\K=1 For i=1 To 3 For J=1 To 3 sa(I, J)=Mid(S, k, 1) Pic1. Print sa(i, j); \ k=k+1 Next J Pic1.Print Next i For i=1 To 3 For J=1 To 3 k=(Asc(sa(I, J))-Asc(\ sa(I, j)=Chr(k+Asc(\ Pic2.Print sa(I, J); \ \ Next J Pic2.Print Next i End Sub 【答案】(1)L S P(2)H X F(3)B G J 8.执行下面的程序,单击按钮Command1,在窗体上显示的第一行是____1_____,第二行是_____2_____,第三行是____3____,事件过程Command1_Click中的For循环共执行了_____4_____次。 Private Sub Command1_Click() Dim X As Integer, Y As Integer, m As Integer Y=2 For X=1 To 8 Step y M=x +Y Call sub1(m, x) Print m, x Next X End Sub Private Sub Sub1(ByVal a As Integer, b As Integer) a=a +b b=b+1 End Sub 【答案】(1)3 2(2)6 5(3)9 8(4)3
共分享92篇相关文档