题型:综合题 题类:模拟题 难易度:困难
浙江省普通高校招生信息技术选考模拟卷(一)
Dim a(1 To 100) As String '依次存放100 个随机字符串
Dim b(1 To 100) As Integer '依次存放每个字符串的权值
Private Sub Command1_Click() '产生100 个随机字符串
Dim i As Integer, k As Integer, t As Integer, x As Integer
Randomize
For i = 1 To 100
k = Int(Rnd * 10 + 1) : t = 0 'k 表示第i 个字符串的长度
Do While t < k '通过循环依次产生第i 个字符串a(i)的k 个字符
If Int(Rnd * 2 + 1) = 1 Then '产生一个小写字母的ASCII 码值
x = Asc("a") + Int(Rnd * 26)
Else
x = Asc("A") + Int(Rnd * 26) '产生一个大写字母的ASCII 码值
End If
'①
If b(i) < x Then b(i) = x
t = t + 1
Loop
List1.AddItem a(i)
Next i
End Sub
Private Sub Command2_Click() '对100 个字符串按字符串权值降序排序
Dim i As Integer, j As Integer, y As Integer
Dim s As String
For i = 1 To 99
k = i
For j = i + 1 To 100
'②
Next j
If k <> i Then
s = a(k): a(k) = a(i): a(i) = s
y = b(k): b(k) = b(i): b(i) = y
End If
Next i
For i = 1 To 100
List2.AddItem a(i)
Next i
End Sub
① ②
排序前 |
86 |
71 |
5 |
41 |
81 |
79 |
37 |
89 |
排序后 |
5 |
37 |
41 |
71 |
79 |
89 |
86 |
81 |
实现上述功能的VB代码如下,但加框处有错,请改正。
Const n=8
Dim a(1 To n)As Integer
Private Sub Commandl_Click()
Dim i As Integer,j As Integer,k As Integer,t As Integer
Dim flag As Boolean
'读取一组正整数,存储在数组a中,代码略
For i= 1 To n-1
'(1)
If IsPrime(a(k))Then flag = True Else flag = False
For j = i + 1 To n
If IsPrime(a(j)) Then
If Then '(2)
k=j
flag = True
End If
End If
Next j
If k <> i Then
t=a(k):a(k)= a(i):a(i)= t
End If
If Not flag Then Exit For 'Exit For表示退出循环
Next i
'依次输出排序后的数据。代码略
End Sub
Function IsPrime(m As Integer)As Boolean
'本函数判断m是不是素数:是素数返回值为True,不是素数返回值为False
'代码略
End Function
⑴{#blank#}1{#/blank#} ⑵{#blank#}2{#/blank#}
试题篮