Private Sub Command1_Click()
Dim i As Integer, x As String, t As String
Dim n As Integer, m As Integer
x = Text1.Text
For i = 1 To
t =
If Asc(t) <= 127 And Asc(t) >= 0 Then
n = n + 1
Else
m = m + 1
End If
Next i
Label2.Caption = "共有ASCII字符" & n & "个,GB2312字符" & m & "个"
End Sub
Const n = 6
Dim a (1 To n) As Integer
Dim i As Integer, j As Integer, t As Integer
Randomize For i = 1 To n
a (i) = Int (Rnd * 20 + 11)
Next i
Do While True
For i = 1 To n-1
If a(i) > a(i +1) Then Exit For
Next i
If i < n Then
For i = 1 To n
j = Int(Rnd * 6) + 1
t = a(3): a(3)=a(i): a(i) = t
Next i
Else
Exit Do
End if
Loop
上述程序段执行后,a(1)到a(6)的值可能是( )
程序功能如下:在文本框Text1中输入一个二进制数据,单击“消除”按钮 Command1,将二进制数据中相邻重复的数据大于或等于2的消除掉,并将结果在标签 Label1中显示。程序运行界面如图所示。
实现上述功能的VB程序如下,但加框处代码有错,请改正。
Private Sub Command1_Click ( )
Dim a (100) As String, b (100) As String
Dim n As Integer
Dim pa As Integer
Dim pb As Integer
s = Text1, Text
n = Len (Text1. Text)
For i= 1 To n
a(i) = Mid(s, i, 1)
Next i
pa =1 : pb = 1
Do While pa < = n-1
If
Then ‘①
b(pb) = a(pa)
pa= pa + 1: pb = pb + 1
Else
j = pa+1
Do While j < = n
If
Then ‘②
j=j+1
Else
Exit Do
End if
Loop
pa = j
End if
Loop
If pa =n Then b (pb) = a(pa): pb = pb + 1
ans = “”
For i= 1 To pb-1
‘③
Next i
Label1. Caption = "消除后的结果为:" + ans
End Sub
① ② ③
i = 1: j = 9: flag = False
Key = Val(Text1.Text)
Do While i < j
m = (i + j + 1) \ 2
If a(m) > Key Then j = m - 1 Else i = m + 1
If a(m) = Key Or a(m + 1) = Key Then flag = True: Exit Do
Loop
If flag Then
If a(m) = Key Then Text2.Text = Str(m) Else Text2.Text = Str(m + 1)
Else
Text2.Text = "找不到"
End If
程序运行时,数组元素a(1)到a(9)中的数据为12,24,27,34,39,46,68,73,84,在文本框Text1中输入“68”,执行该程序段,则下列表达式正确的是( )
i = 1: j = 8: s = ""
key =Text1.Text
Do While i <= j
m =(i + j) \ 2
If key = a(m) Then
s = s + "M"
Exit Do
ElseIf key > a(m) Then
j = m - 1: s = s + "L"
Else
i = m + 1: s = s + "R"
End If
Loop
Text1.Text = s
数组元素a(1)到a(8)的值依次为“4,22,27,32,35,44,56,59”,该程序段执行后,文本框Text1中显示的内容不可能是( )
For i = 1 To 3
k = ""
For j = 1 To 2 * i - 1
k = k + " * "
Next j
List1.AddItem k
Next i
该程序段运行后,在列表框List1中显示的是( )
D .
s = "Hello World"
s1 = ""
n = Len(s)
For i = 1 To n \ 2
If Mid(s, i, 1) > Mid(s, n - i + 1, 1) Then
s1 = s1 + Mid(s, i, 1)
Else
s1 = Mid(s, n - i + 1, 1) + s1
End If
Next i
Text1.Text = s1
执行该程序段后,在文本框Text1中显示的是( )
s=Text1.Text
n=Len(s)
For i=1 To n
y(i)=1
Next i
For i=1 To
For j=
To n
If
Then
y(j)=y(j)+1
Else
y(i)=y(i)+1
End If
Next j
Next i
上述程序段多个加框处的表达式分别为( )
Dim a(I To 10)As Integer
Dim s(1 To 10)As Integer
Private Sub Form_Load()
a(1)=3:a(2)=6:a(3)=8:a(4)=4:a(5)= 9
a(6)=5:a(7)=3:a(8)=3:a(9)=8:a(10)= 6
End Sub
Private Sub Command1_Click()
Dim max As Integer,i As Integer,j As Integer, k As Integer
max=0
For i=1 To 10
k=0
For j=10 Toi Step -1
If a(j)=a(i)Then k=j:Exit For
Next j
If k > 0 And k- i > max Then max=k-i
Next i
Text1.Text=Str(max)
End Sub
程序运行后,文本框Text1显示的内容是 ( )
执行该流程图,输出变量 s 的值是( )
按上述要求,编写一个VB程序,功能如下:在列表框List1中显示整理前的所有物资相关数据,单击“库存合并统计”按钮Command1,在列表框List2中显示整理结果,程序运行界面如图所示。

Const n= 2000 ‘物资总项数
Const nc = 26 ‘物资种别数,最多不会超过26
Dim items(1 To n) As String, supplies(1 To n) As String, totals(1 To n) As Long
Dim g(1 To2 * nc) As Long ‘存储各种物资3天、7天的需求数量
Dim b(1 To nc) As Long ‘存储各种物资的库存量
Dim c(1 To nc) As Long
Dim q(1 To nc) As Integer
Private Sub Form_Load()
‘本过程读取编号、品名、收支、需求的数据分别存储在数组items、supplies、totals、g数组中,并在List1中显示有关数据:g数组中g(1)、g(2)存储物资A的3天、7天的需求数量;g(3)、g(4)存储物资B的3天、7天的需求数……代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer, top As Integer, bottom As Integer
Dim r As Long, s As String, t As Integer, m As Integer
For i=1 To nc.
b(i)=0:c(i)=0
Next i
For i=1 To n ‘统计每种物资的库存量
k = Asc(Mid(items(i), 2, 1))- Asc("A")+1
①
c(k)=i
Next i
j=0
For i=1 To nc
If c(i)<>0 Then j=j+1: q(j)=i
Next i
top = 0: bottom=j+ 1
j=1: k=bottom-1
Do While j<bottom ‘按各种物资的需求量进行等级分类
m=q(j)
②
If r<g(2*m-1) Then
top=top+1
If top<>j Then t= q(top): q(top)=q(j): q(j)=t
j=j+1
ElseIf r>= g(2*m) Then
bottom=bottom-1
t= q(j): q(j)=q(bottom): q(bottom)=t
Else
j=j+1
End If
Loop
List2.AddItem "编号 品名 库存"
List2. AddItem "------------------------------"
For i= 1 To k
s= fp(i, top, bottom)
List2.AddItem" " & s & " " & supplies(c(q(i))) & " " & b(q(i))
Next i
End Sub
Function fp(pos As Integer, head As Integer, tail As Integer) As String
If ③ Then
fp= "A"
ElseIf pos < tail Then
fp= "B"
Else
fp="C"
End If
fp = fp & Mid(items(c(q(pos))), 2, 1)
End Function
① ② ③
For i=1 To 4
k=i
For j=5 To i+1 Step-1
If a(j)<a(k) Then k=j
Next j
If k<> i Then
tmp=a(k) : a(k)=a(i) : a(i)=tmp
f(i)=True
End If
Next i
当数组元素a(1)到a(5)的值依次为“8,2,1,21,3”数组f的初值均为 False,执行该程序段,f数组中元素值为True的个数有( )
实现上述功能的VB程序如下,但加框处代码有错误,请改正。
Const n=10
Dim d(1 To n)As Integer
Private Sub Form Load()
′随机产生n整数并存储在数组d中,并把数组d按升序排序
′在列表框中显示排序后的数据,代码略
End Sub
Private Sub Command1_Click()
Dim key As Integer, p As Integer
key =Val(Text1.Text)
‘①
If p<>0 Then
Label2. Caption="该数据在第"+Str(p)+"个位置"
Else
Label2. Caption="没有找到! "
End If
End Sub
Function search(key As Integer) As Integer
i=1: j=n
Do While i<= j
m=(i+j)\2
If d(m)=key Then
search =m
Exit Function
ElseIf key<d(m)Then
j=m-1
Else
i=m+1
End If
Loop
‘②
End Function
①将该字符的ASCII码转换为8位二进制数;
②将后4位二进制数逐位取反(1变0,0变1)
③将操作②生成的4位二进制数均右移一-位, 原第4位变成新的第1位;
④将原来的前4位二进制数连接新的后4位二进制数成为最终加密后字符的内码。
例如字符“A”经过上述加密运算,可得到字符“M”。
|
ASCII码 |
转二进制数 |
后4位取反 |
后4位右移 |
拼合 |
转十进制 |
转字符 |
|
65D |
0100 0001B |
1110 |
0111 |
0100 0111B |
71D |
G |

Private Sub Command1_ Click()
Dim s As String, s1 As String, s2 As String, n As Integer
Dim x As Integer, i As Integer, j As Integer, C As Integer
Dim a(15) As String
a(0) = "000": a(1) = "0001": a(2) = "0010": a(3) =“011": a(4) = "0100":a(5) = "0101": a(6) ="0110": a(7) = "111": a(8) = "1000" a(9) ="1001":a(10) = "1010": a(11) ="1011": a(12) = "1100"a(13) = "1101": a(14)= "1110":a(15) ="1111"
s2 = "": s = Text1. Text
For i=1 To Len(s)
n = Asc(Mid(s, i, 1))
c=n Mod 16
s1 =
x = Va1(Mid(s1, 1,1))
For j=2 To 4
x=x+
Next j
x=(n/16)*16
s2 = s2 + Chr(x)
Next i
Text2. Text = s2
End Sub
i = 1: flag = True
Do While i < = 4 And flag = True
flag=False
For j = 6 To i + 1 Step -1
If a(j) > a(j - 1) Then
t = a(j): a(j)=a(j-1): a(j-1) = t
flag = True
End If
Next j
i = i + 1
Loop
数组元素a(1)到a(6)的值依次为48,36,24,97,77,23,经过该程序段加工后,变量i的值是( )

程序代码如下,为实现以上功能,请在横线处填写合适的代码:
Dim jf(800) As Integer, hyh(800) As String, n As Integer
Dim n As Integer ′表示会员的总人数
Private Sub Form_Load()
′从数据库中读取会员编号和积分,并按积分值从小到大排序,显示在列表框List1中
For i=1 To n
List1.AddItem hyh(i)+“ ”+Str(jf(i))
Next i
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, m As Integer, k1 As Integer, k2 As Integer
k1=Val(Text1.Text): k2=Val(Text2.Text)
If k1 > k2 Then t=k1: k1=k2: k2=t
If k1 > jf(n) Or k2 < jf(1) Then
List2.AddItem “没有找到该范围的数据!”
Text3.Text=“0”: Exit Sub
End If
i=1
j=n
Do While i <= j
m=Int((i+j) / 2)
If jf(m) > k1 Then
j=m - 1
ElseIf jf(m) < k1 Then
i=m+1
Else
If Then
j=m - 1
Else
p=m
Exit Do
End If
End If
Loop
If i > j Then p =
k=0
Do While And p <= n
List2.AddItem hyh(p)+ “ ”+Str(jf(p))
p=p+1
Loop
Text3.Text=Str(k)0
End Sub