
实现上述功能的VB程序如下,请回答下列问题:
Dim ach(1 To 500) As String '存储各学生选课编码
Dim bno(1 To 10) As Integer '存储各科目编号
Dim bname(1 To 10) As String '存储各科目名称
Dim bnum(1 To 10) As Integer '存储各科目被选次数
Dim bmc(1 To 10) As Integer '存储各科目被选的名次
Dim n As Integer, num As Integer
Private Sub Command1_Click()
Dim i As Integer, km As String
km = "物理化学生物政治历史地理技术"
Dim cn As New ADODB.Connection, rs As New ADODB.Recordset, sql As String
cn.Open "provider=Microsoft.Jet.oledb.4.0;Data Source=" + App.Path + "\students.mdb"
rs.Open "select * from choose", cn
Do While Not rs.EOF
n = n + 1 : ach(n) = rs.Fields("subject") : rs.MoveNext
Loop
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
For i = 1 To 7
bno(i) = i
bname(i) = Mid(km, (i - 1) * 2 + 1, 2)
List2.AddItem Str(bno(i)) + "---" + bname(i)
Next i
End Sub
Private Sub Command2_Click()
Dim i As Integer, j As Integer, k As Integer
Dim c As String, per As Integer
For i = 1 To n
If check(ach(i)) = True Then
For j = 1 To 3
c = Mid(ach(i), j, 1)
bnum(Val(c)) =
Next j
num = num + 1
End If
Next i
i = 1
Do While i <= 7'该循环得到各学科被选人数的名次
bmc(i) = 1
For j = 1 To 7
If bnum(j) >bnum(i) Then
Next j
i = i + 1
Loop
For i = 1 To 7
For j = 1 To 7
If Then
per = Int(bnum(j) * 100 / num * 100) / 100
List3.AddItem Str(bno(j)) + "---" + bname(j) + "---" + Str(per) + "%"
End If
Next j
Next i
End Sub
Function check(s As String) As Boolean
'代码略! 若学生选科代码有效,函数返回True,否则返回False
End Function
s = 1/2 + 2/3 : t = 1: b = 2
For i= 3 To 10
Next i
Label1.Caption = "前10项的和是:" + Str(s)
方框中的代码由以下四部分组成:
①b = r ②t = b ③r = t + b ④s = s + r/(r + b)
代码顺序正确的选项是( )
PRIVATE SUB FORM__CLICK( )
S=0
FOR A = 1 TO 5
FOR B= 1 TO 3
S=S+1
NEXT B
NEXT A
PRINT S
END SUB
Dim i As Integer, max As Integer
Dim a (1 to 10) As Integer
‘代码略,随机产生10个不重复的数存于数组a的10个元素a⑴~a⑽中max=1
For i=2 To 10
If a (i) > a(max) Then max=i
Next i
实现上述功能的VB代码如下,在划线处填入合适的代码。
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, j As Integer,x As Integer
For i=1 To 100
k=Int (Rnd*7+3) ‘k表示第i个字符串的长度
For j = 1 To k ‘通过循环产生第i个字符串并存储在a(i)中
If Int(Rnd*2+1) = 1 Then ‘ 产生一个小写字母的 ASCⅡ码值
x = Asc("a")+ Int (Rnd*26)
Else
x = Asc("A") + Int(Rnd*26) ‘ 产生一个大写字母的ASCⅡ码值
①
a(i) = a(i)+Chr (x)
Next j
List1 AddItem a(i)
Next i
End Sub
Private sub command2_Click( )’ 对100个字符串按字符串权值降序排序
Dim i As Integer, j As Integer, y As Integer, s As string
For i =1 To 99
k =1
For = i + 1 To 100
③
Next j
If k <> Then
s = a(k) : a(k) = a(1) : a(1) = s
y = b(k) : b(k) = b(1):b(i) = y
End If
Next i
For i=1 To 100
List2 AddItem a(i)
Next i
End sub
① ② ③
i=1:j=10
Key=Val(Text 1.Text)
If Key Mod 2=1 Then t=1 Else t=-1
Do While i<=j
m=(i+j)\2
c=c+1
If t= 1 And a(m) Mod 2= 0 Then
j=m-1
ElseIf t=- 1 And a(m) Mod 2= 1 Then
i=m+1
ElseIf Key*t<a(m) *t Then
j=m-1
Else
i=m+1
End If
Loop
若数组a(1)到a(10)的值依次为1,3,5,7,9,18,18,16,4,0,若Text 1中输入2,执行该程序段后,下列说法正确的是( )
请在下面划线处填入合适的代码。
Private Sub Command1_Click()
Dim i,n,s,t,k As Integer 's为A类数的个数,t为二进制数中“1”的个数,k为“0”的
个数
s = 0
For i = 1To 1000
n = i:t = 0:k= 0
Do While n > 0
If ① Then t=t+1Else k=k+1
②
Loop
If t>k Then
List1.Addltem Str(i)
s = s+1
End If
Next i
Text1.Text=Str(s)
End Sub
①②
Private Sub Command1_Click()
Dim a As Integer, s As String
Dim n As Integer, t As Integer, v As Integer
n = Val(Text1.Text)
t = 0
s = ""
Do While n > 0
a = n Mod 2
n = n \ 2
t=①
s = "Str(a)" + s
Loop
v = t Mod 2
Text2.Text = s
Label3.Caption = "校验位值:" +②
End Sub
⑴上靠:若退的房间号为3,则原来登记的记录变为1_3,6_3,10_1;
⑵下靠:若退的房间号为5,则原来登记的记录变为1_2,5_4,10_1;
⑶上下靠:若退的房间号为9,则原来登记的记录变为1_2,6_5;
⑷上下都不靠:若退的房间号为4,则原来登记的记录变为1_2,4_1,6_3,10_1
根据上述规则,小明编写了相应的VB程序,程序启动时读入空房间数据,并在列表框List1中显示,在文本框Text1中输入退房号,单击“退房”按钮后更新列表框List1中的数据。
程序界面如下图所示,请回答下列问题:
Const n=1000
Dim a(0 To n)As Integer ‘a(i)保存第i条记录的开始房间号
Dim b(0 To n)As Integer ‘b(i)保存第i条记录的房间数
Dim c As Integer, k As Integer, sp As Integer ‘k为原始记录数
Private Sub Form_Load()
‘程序启动时从数据库中读取原始k条记录,依次存入a(1),b(1),a(2),b(2),…,a(k),b(k),代码略
‘为了程序处理方便,虚设下面两条记录
A(0)=0: b(0)=0: sp=k+1: a(sp )=1000: b(sp)=0
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer
c=Val(Text1.Text)
i=1
Do While a(i)<c
i=i+1
Loop
i=i-1
‘以下处理退房登记问题
If a(i)+b(i)=c Then
If a(i+1)=c+1Then ‘处理第3种情况
①
For j=i+1 To sp-1
a(j)=a(j+1):b(j)=b(j+1)
Next j
sp = sp-1
Else ‘处理第1种情况
b(i)=b(i)+1
End If
ElseIf c+1=a(i+1)Then ‘处理第2种情况
a(i+1)=c: b(i+1)=b(i+1)+1
Else ‘处理第4种情况
For j= ②
a(j)=a(j-1): b(j)=b(j-1)
Next j
a(i+1)=c: b(i+1)=1: ③
End If
List1.Clear
For i=1 To sp-1
List1.Addltem"第" & CStr(i) & "条记录" & CStr(a(i)) & "_" & CStr(b(i))
‘CStr函数的作用是将数字转成字符串
Next i
End Sub
① ② ③
先打顺子牌(顺子指连续的5个及以牌型,如45678,顺子最大到A),若有多个顺子,先长后短长度和同按先小后大的顺序打出然后按4张、3张、2张、1张的顺序出牌,同一个牌型从小到大。
小刘依据上述算法设计了VB程序,其中牌型“10”用数字“0”代替表示,如图所示,请回答下列问题。
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim a (1 To 13) As Integer, max As Integer, t As Integer, last As Integer
Dim sa As String, stem As String, flag As Boolean
Const s="34567890JQKA2" '用0代替牌10
'发牌和洗牌代码略,在标签Label1显示初始牌型,洗牌后数组a各元素分别存储牌型3~2的数量
t=17 '刚开始牌有17张
Do While t>0 '打牌
flag=True
Do While flag '寻找牌中有没有顺子牌
max =0: k =1: flag=False
For i=1 To 13
If ① Then
k=k+1
If k > Max Then
Max = k
Last = i+1 '记录连续牌的最后一张
End If
Else
k=1
End If
Next i
If Max >= 5 Then '有顺子牌,把最长的这把顺子打出来
flag=True: sa= ""
For j = ② To last
Stem=Mid(s, j, 1)
sa=sa +stem+ ""
a(j)=a(j)-1
Next j
List1.AddItem sa '顺子在列表框显示
t=t-max
End If
Loop
For i= 1 To 13 '出4个一样的牌
If a(i)=4 Then
stem=Mid(s, j, 1)
List1.AddItem stem+stem+stem+stem
a(i)=0
③
End If
Next i
'3张、2张、单张出牌,具体代码略
Loop
End Sub
① ② ③
B .
C .
D .
依据该算法思想,设计一个VB程序,实现该功能的代码如下,请回答下列问题。
Const m = 6
Const n = 5
Dim a(1 To (m + 1) ∗ n) As Integer
Private Sub Form_Load()
'数组初始化,生成 m×n 个两位数的随机整数并赋值给数组a
Randomize
For i = 1 To m ∗ n
a(i)= ①
Next i
End Sub
Private Sub Cod1_Click()
Dim i As Integer, j As Integer
For i = 1 To n
②
Next i
'将计算后数据,按 m + 1 行,n 列输出到列表框中,代码略
End Sub
Function sum(y As Integer) As Integer '函数功能是计算每列数据和
sum = 0
For i = ③
sum = sum + a(i)
Next i
End Function
① ② ③
i=6
Do While i>= 1
t= Int(Rnd * 10)+ 1
If t Mod 2=i Mod 2 Then a(i)=t: i=i-1
Loop
For i=1 To 2
k=-1
For j=1 To 5-i
If a(j) * k>a(j+2) *k Then
temp= a(i): a(j)=a(j+2): a(j+2)= temp
End If
k=-k
Next j
Next i
执行该程序段后,数组元素a(1)到a(6)值可能是( )
Dim a(1 To 6)As integer
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
执行程序后,数组各元素不可能是( )
t = "abcd123456"
x = Sqr(Len(t))
y = 0
If x >0 Then
y = 2
ElseIf x >1 Then
y = 3
ElseIf x >2 Then
y = 4
Else
y = 5
End If
明文:HelloWorld
密钥:abcabcabca
密文:HfnlpYosnd
|
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
|
|
A |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
|
B |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
|
C |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
|
D |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
|
E |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
|
F |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
|
G |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
|
H |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
|
I |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
|
J |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
|
K |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
|
L |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
|
M |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
|
N |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
|
O |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
|
P |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
|
Q |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
|
R |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
|
S |
S |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
|
T |
T |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
|
U |
U |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
|
V |
V |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
|
W |
W |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
|
X |
X |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
|
Y |
Y |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
|
Z |
Z |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
依据上述算法描述设计了如下VB程序。请回答下列问题:
Const MIN_ASC = 65 ′字母“A”的ASCII值
Function X2D(x As String) As String ′字符串小写转成大写
Dim s As String, zf As String, i As Integer
s = “”
For i = 1 To Len(x)
zf = Mid(x, i, 1)
If zf >= “a” And zf <= “z” Then
s = s +
Else
s = s + zf
End If
Next i
X2D = s
End Function
Private Sub Command1_Click()
Dim M As String, K As String, C As String, flag As Boolean
Dim i As Integer, t As Integer, ch As Integer, pos As Integer, j As Integer
M = Text1.Text ′明文
K = Text2.Text ′密钥
t = Len(K)
K = X2D(K) ′将密钥全部转成大写
C = “ ” ′加密后的结果
For i = 1 To Len(M)
ch = Asc(Mid(M, i, 1))
flag = False
If ch >= 97 And ch <= 122 Then ch = ch - 32: flag = True
pos = ′密钥的字符位置值
If pos = 0 Then pos = t
j = Asc(Mid(K, pos, 1)) ′密钥字符的ASCII值
ch = ch - MIN_ASC
j = j - MIN_ASC
ch =
ch = ch + MIN_ASC
If flag Then ch = ch + 32 ′设置字母的大小写形式
C = C & Chr(ch)
Next i
Text3.Text = C
End Sub
left = 1: right = n: i = 1
Do While i <= right
If a(i) = 0 Then
tmp = a(left): a(left) = a(i): a(i) = tmp
left = left + 1
i = i + 1
ElseIf a(i) = 1 Then
i = i + 1
Else
End If
Loop
要实现上述排序算法思想,则横线处代码应该是( )