实现上述功能的VB程序如下,请回答下列问题:
Dim a(1 To 100) As String '数组大小满足处理要求,学生学号
Dim b(1 To 100) As String '数组大小满足处理要求,学生姓名
Dim i As Integer '学生总数
Dim j As Integer
Dim dd(1 To 100) As Integer
Private Sub Form_Load()
‘从数据库读取全班同学的相关信息,存储在数组a、数组b和变量i中
Dim n As Integer
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strSQL As String
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & App.Path & "\1718.accdb"
conn.Open
Set rs.ActiveConnection = conn
strSQL = "SELECT * FROM stuinfo"
rs.Open strSQL
'本过程的其他语句略
End Sub
Private Sub Command1_Click()
Dim ShuruNum As Integer, k As Integer, y As Integer,n As Integer
Randomize
ShuruNum = Val(Text1.Text)
Label4.Caption = ""
For k = 1 To i
dd(k) = 0
Next k
If ShuruNum > 0 And ShuruNum <= i Then
j = 1
Do While j <= ShuruNum
y = Int(Rnd() * i) + 1
If Then'
dd(j) = y
j = j + 1
End If
Loop
List2.Clear
For n = 1 To ShuruNum
List2.AddItem '
Next n
Else
Label4.Caption = "错误:没有输入中奖人数或超过学生总数"
End If
End Sub
'核对重复,避免同一人再次中奖
Private Function CheckCF(p As Integer) As Boolean
Dim m As Integer,x As Boolean
x = True '初始化
For m = 1 To j
If Then '
x = False
Exit For
End If
Next m
CheckCF = x
End Function
Private Sub Command1_Click()
Dim n As Integer, L As Integer, t As Integer
Dim i As Integer, j As Integer, k As Integer
Dim s As String, result As String
Dim a(1 To 50) As Integer, dir(1 To 50) As Integer
L = Val(Text1.Text): n = Val(Text2.Text): t = Val(Text3.Text) s = Text4.Text
s = s + ".": tmp = 0: k=0
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch >= "0" And ch <= "9" Then
tmp = tmp * 10 + Val(ch)
Else
k = k + 1
a(k) = tmp: dir(k) = 1
tmp = 0
End If
Next i
For i = 1 To t
For j = 1 To n
IfThen dir(j) = -dir(j)
Else
For c = 1 To n
IfThen dir(c) = (-1) * dir(c)
dir(j) = (-1) * dir(j)
End If
Next c
End If
Next j
Next i
For i = 1 To n
result = result + Str(a(i))
Next i
Label5.Caption = Str(t) + "秒后小球的位置为:" + result
End Sub
a(1) = 1
For i = 2 To 6
Randomize
a(i) = a(i - 1) + Int(Rnd * 5 + 1)
If a(i) Mod 2 = 1 Then
a(i) = a(i) \ 2 + 1
Else
a(i) = a(i) / 2
End If
Next i
执行程序后,a数组各元素可能是( )
str 1=“go it for!”
str 2=Mid(str 1, s, t-s+1)
len 1=Len(str 1) :len 2=Len(str 2)
c=c Mod len 2
For i=1To c
str 2=Mid(str 2, len 2, 1) +Mid(str 2, 1, len 2-1)
Next i
str 1=Mid(str 1,1,s-1) +str 2+Mid(str 1,t+1,len 1-t)
Private Sub Cmd1_Click()
Dim s As String, c As String
Dim flag As Boolean
Dim i As Integer,count As Integer
s=Text 1.Text
flag=True
For i=1 To Len(s) -1
c=Mid(s,i,2)
If c=“**”Then
①
Exit For
End If
Next i
s=“#”+s·“#”
count =0:i= 2
Do While flag And i<=Len(s) -1
If ② Then
s=Mid(s,1,i-1) +“*”+Mid(s, i+1, Len(s) -i)
③
End If
i=i+1
Loop
If Not flag Then
Label2.Cnption=“警告!“
Elself count = 0 Then
Label2.Caption=“该排人数己满”
Else
Label2.Caption=“该排至多还能有”+Str(count) +“个人入座”
End If
End Sub
① ② ③
•将地理上某点经纬度分别转换成二进制编码。例如,对于给定纬度lat(299924099),编码规则为:
•将区间[-90,90]二分为[-90,0),[0,90],称为左、右区间,1at属于右区间[0,90],标记为1;
•将区间[0,90]二分为[0,45),[45,90],lat属于左区间[0,45),标记为0;
•重复上述过程,不断划分区间,lat属于左区间则记录0,属于右区间则记录1。直到达到指定编码长度 length(一般为5的倍数)为止类似地,可对经度lng(120.58552218进行二进制编码。
·Base32编码合成为地理区域字符串。以编码长度 length=10为例,如前述计算得到,鲁迅故里的纬度编码为10101 01010,经度编码为11010 10110。地理区域字符串生成规则:
•生成新串:奇数位放经度,偶数位放纬度,将两串编码组合:110110 11001 10011 01100;
•分组转换:将11100 11001 10011 01100每5位一组转成1个十进制整数,分别对应为28,25,19,12;
•Base32编码:使用数字0~9、小写字母(去掉字母a,i,1,o)这32个字符进行Base32编码(见下表)。十进制整数28,25,19,12对应的编码组合就是“wtmd”,即为该位置的地理区域字符串。
Const m=48, length=20'纬度、经度二进制编码长度均为 length
Dim a(1 To 2*m)As Double
Dim b(1 To m) As string
′读取m个时刻台风中心的经纬度数据并存入数组a,代码略'a(1),a(2)为台风在时刻1的纬度、经度,a(3),a(4)为台风在时刻2的纬度和经度,......
′b(1)保存台风在时刻1的地理区域字符串,b(2)保存台风在时刻2的地理区域字符串,......
Private Sub Command1_Click()
′lat为纬度、1ng为经度,code为地理区域编码
Dim lat As double, Ing As Double, code As String
Dim strLat As String, strLng As String, s As String
Dim i As integer, j As Integer, n As Integer
Const base32="0123456789bcdefghjkmnpqrstuvwxyz"
For i=1 To m
lat=a(2*i-1)
Ing=a(2*i)
S=""
strLat= DoubleToBits (lat,—90,90) ′纬度转换为二进制编码
strLng=DoubleToBits(lng,—180,180) ′经度转换为二进制编码
For j=1 To length
s=① ′将两串二进制编码组合
Next j
n=0: code=""
For j=1 To Len(s)
②
If j Mod 5=0 Then
code= code+Mid(base32,n+1,1)
n=0
End If
Next j
b(i)=code
Next i
′输出地理区域编码,代码略
End sub
′函数 Doubletobits根据指定的区间[ lower,upper],计算 value的二进制编码
Function Double ToBits( value As Double,lower As Double,upper As Double) As String
Dim ret As String, i As Integer, middle As Double
ret="": i=1: middle=0
Do While i<= length
middle=(upper+lower)/2
If ③Then
lower=middle
ret=ret+"1"
Else
upper=middle
ret=ret+"0"
End If
i=i+1
Loop
DoubleToBits=ret
End function
Dim d(1 to 5)as integer,i as integer
Dim flag as Boolean,j as integer
‘给数组元素d(1)至d(5)赋初值为1,代码略
Randomize
For i=1 to 5
J = 1:flag = True
d(i) = int(Rnd*9)
Do while j< =i-1 and flag = True
d(i) = int(Rnd*5+1)
If d(i) = d(j) then i=i-2:flag = False
j = j+1
Loop
Next i
运行程序后,数组中的数据值可能是( )
Dim a(1 To 100) As Integer, n As Integer
Private Sub Form_Load()
'本过程从数据库中读取n个IP地址区间数据,并依次存入数组a(1)、…、a(2*n)中
'对能通过过滤的IP区间按区间起始端点升序排序
'代码略
End Sub
Private Sub Cmd1_Click()
Dim ip As Integer, L As Integer, R As Integer
Dim i As Integer, pos As Integer, f As Boolean
ip = Val(Text1.Text)
L = a(1): R = a(2): i = 3: pos = 1 ‘合并重叠区间
Do While i <= 2 * n - 1
If Then
If a(i + 1) > R Then R = a(i + 1)
Else
a(2 * pos - 1) = L:a(2 * pos) = R
pos = pos + 1
L = a(i)
R = a(i + 1)
End If
Loop
a(2 * pos - 1) = L: a(2 * pos) = R '依次输出排序合并后的区间数据,代码略
If Then '判断请求的 IP 地址
Label4.Caption = "IP 需过滤"
Else
i = 1: f = False
Do While i <= pos And Not f
If Then
i = i + 1
Else
Label4.Caption = "IP 不需过滤" f = True
End If
Loop
If f = False Then Label4.Caption = "IP 需过滤"
End If
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer
Dim min As Single, max As Single
Dim d As Single, v As Single, s As String
s = Text1.Text
d = 0: maxd = 0
j = 1: k = 1
For i = 1 To Len(s)
If Mid(s, i, 1) = "," Then
j = i + 1
If Then
max = v
Else
min = v
d = max - min
If d > maxd Then
End If
k = k + 1
End If
Next i
Label1.Caption = "本周温差最大值为" & Str(maxd)
End Sub
下列说法不正确的是( )
程序运行后,输入:8
运行结果是: