江苏省计算机二级vb分章节解析 联系客服

发布时间 : 星期四 文章江苏省计算机二级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