A(i, j) = 5 Else
A(i, j) = 0 End If Next j Next i
For i = 1 To 5 For j = 1 To 5 Print A(i, j); Next j
(13) Next i End Sub
10.1955年,卡普耶卡(D.R.Kaprekar)研究了对四位数的一种变换:任给出四位数k0,用它的四个数字由大到小重新排列成一个四位数m,再减去它的反序数rev(m),得出数k1=m-rev(m),然后,继续对k1重复上述变换,得数k2。如此进行下去,卡普耶卡发现,无论k0是多大的四位数,只要四个数字不全相同,最多进行7次上述变换,就会出现四位数6174。例如:k0=5298,k1=9852-2589=7263,k2=7632-2367=5265,k3=6552-2556=3996,k4=9963-3699=6264,k5=6642-2466=4176,k6=7641-1467=6174。给定下列程序实现其功能。给定的程序不完整,将程序补充完整。
Option Base 1
Private Sub Form_Click() Dim n(4) As Integer Randomize
k = (14) m = 0 Do
Print k
For i = 1 To 4
n(i) = k Mod 10 (15) Next i
For i = 1 To 3 For j = i To 4
If (16) Then t = n(i) n(i) = n(j) n(j) = t End If Next j Next i
Max = n(1) * 1000 + n(2) * 100 + n(3) * 10 + n(4) Min = n(4) * 1000 + n(3) * 100 + n(2) * 10 + n(1) k = Max - Min (17) Loop Until k = 6174 Print k
Print \交换次数=\End Sub
11.下面程序的功能是找出由两个不同的数字组成的回文平方数。程序界面参见图3。
图3
Option Explicit
Private Sub Command1_Click()
Dim a(0 To 9) As Integer, i As Long, flg As Boolean Dim j As Integer, sum As Integer For i = 10 To 1000 Erase a
Call sub1((i * i), a, flg) If (18) Then For j = 0 To 9
sum = sum + a(j) Next j
If (19) Then
List1.AddItem CStr(i) & \ End If End If sum = 0 Next i End Sub
Private Sub sub1(x As Long, a() As Integer, bl As Boolean) Dim n As Integer, idx As Integer, i As Integer bl = (20) n = Len(CStr(x)) For i = 1 To n / 2
If Mid(CStr(x), i, 1) <> Mid(CStr(x), n - i + 1, 1) Then Exit Sub End If Next i bl = True For i = 1 To n
idx = x Mod 10 a(idx) = 1 x = (x \\ 10) Next i End Sub
12.下列的程序的功能是,将密码转换成字符串,其中密码的规则为:数码后面的字符表示数码的个数,例如A表示1个,B表示2个,C表示3个,……。转换顺序是密码→(每7位)二进制→ASCII码→原代码,程序运行后的结果如图4所示。给定的程序不完整,将程序补充完整。
图4
Dim w As String
Private Sub Command1_Click() w = Text1(0).Text
For i = 1 To Len(w) (21) s1 = Mid(w, i, 1)
For j = 1 To Asc(Mid(w, i + 1, 1)) - 64 t = t + s1 Next j Next i
Text1(1).Text = (22) s2 = \
For i = 0 To Len(t) / 7 - 1 s1 = Mid(t, i * 7 + 1, 7) (23)
For j = 6 To 0 Step -1
Sum = Sum + Val(Mid(s1, 7 - j, 1)) * 2 ^ j Next j
Text1(2).Text = Text1(2).Text + Str(Sum) s2 = s2 + Chr(Sum) Next i
Text1(3).Text = (24) End Sub
13.下列程序是统计字母和数字字符在文本中出现的次数。程序运行后的结果如图5所示。给定的程序不完整,将程序补充完整。
图5
Option Explicit
Private Sub Command1_Click()
Dim str1 As String, n1 As Integer Dim A(62) As Integer
Dim I As Integer, line1 As Integer Dim s1 As String * 1, len1 As Integer (25) = Text1.Text len1 = Len(str1) For I = 1 To len1 s1 = (26)
If s1 >= \ n1 = Asc(s1) - Asc(\ A(n1) = A(n1) + 1
ElseIf s1 >= \ n1 = Asc(s1) - Asc(\ (27)
ElseIf s1 >= \ n1 = Asc(s1) - Asc(\ A(n1) = A(n1) + 1 End If Next I
For I = 0 To 62
If A(I) > 0 Then
Select Case (28) Case 0 To 25
Text2 = Text2 & Chr(I + Asc(\:\ Case 26 To 51
Text2 = Text2 & Chr(I - 26 + Asc(\:\ Case Else
Text2 = Text2 & (29) End Select (30)
If line1 Mod 6 = 0 Then Text2 = Text2 & vbCrLf End If Next I End Sub
相关推荐: