
图1


Private Sub Command1_Click()
Dim i, j, c As Integer
Dim n As Long
c = 0
For i = 0 To 99
n = 110800 + i
If Then
List1.AddItem Str(n) + " " + "5"
c = c + 1
End If
Next i
Label2.Caption = "满足条件的数有:" + Str(c) + "组"
End Sub
单击文本框、双击文本框、
文本框改变、单击命令按钮、
双击命令按钮、窗体装载
实现该功能的程序代码如下:
Private Sub Command1_Click()
Dim i As Integer,ch As String,s As String
Dim my(0 To 127)As Boolean ‘0~127表示128个ASCII字符的ASCII值
s=Text1.Text
For i=0 To 127
my(i)=False
Next i
If ① then
Text2.Text=”密钥长度不足26个字符!”
Else
For i=1 To 26
ch=Mid(s,i,1)
t= ②
If my(t)=False Then
my(t)=True
Else
Text2.Text=“密钥中有重复字符!”
Exit Sub
EndIf
Next i
Text2.Text=“密钥正确!”
EndIf
End Sub
① ②

图a
|
|
|
|
图b |
图c |
Private Sub Command1_Click()
Dim s As String, ch As String
Dim fh As Integer, p As Integer, sum As Integer
s = Text1.Text: fh = 1: p = 0: sum = 0
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ① Then '判断取出的字符是否为数字
p = p * 10 + Val(ch)
Else
sum = sum + p * fh
p = 0
If ch = "-" Then
②
ElseIf ch = "+" Then
fh = 1
End If
End If
Next i
Label3.Caption = Str(sum)
List1.AddItem ③
End Sub
① ② ③
Private Sub Command1_Click()
Dim i As Integer, x As Integer, c As Integer
c = 0
For i = 1000 To 9999
x =
If And x = 7 Then
'将符合条件的四位数显示在列表框中
num = num + 1
End If
Next i
Label2.Caption = "共有:"+ +"个"
End Sub
实现上述功能的VB程序如下,请回答下列问题:
Private Sub Command1_Click()
Dim a(20) As Long
Dim i As Integer, j As Integer, s As String List1.Clear
n = Val(Text1.Text)
a(1) = 1
List1.AddItem Str(a(1)) For i = 2 To n
s = ""
For j =
Step -1
a(j) = ①
s = s + Str(a(j))
Next j
② Next i
① ②

Private Sub Command1_Click( )
Dim t1 As Integer, t2 As Integer
Dim i As Integer, t As Integer
Dim f As Single ‘f存储华氏温度值
List1.Clear
t1=Val(Text1.Text)
t2=Val(Text2.Text)
If ① Then ‘(选填字母,从下列A、B、C、D四个选项中选取一项)
t=t1:t1=t2:t2=t
End If
i=t1
Do While ② ‘(选填字母,从下列A、B、C、D四个选项中选取一项)
f=i*9/5+32 ‘摄氏温度转换为华氏温度
List1.AddItem Str(i)+“ ”+Str(f)
i= ③ ‘(填程序代码)
Loop
End Sub
划线处应填① ② ③
A.i<=t2 B.f<=t2 C.t1>t2 D.i<f
|
1 |
2 |
3 |
4 |
5 |
6 |
…… |
2n-1 |
2n |
|
性别 |
身高 |
性别 |
身高 |
性别 |
身高 |
…… |
性别 |
身高 |
该 n位学生站成一排合影:男生全部在一侧,从低到高排序;女生全部在另一侧,从高到低排(所有人的身高h为整数,且100≤h≤200),排序前显示于List1,排序后显示于List2,如图所示。

实现上述功能的VB程序如下,请回答下列问题。
Const n = 10
Dim a(1 To 2 * n) As String Private Sub Form_Load()
'读取身高和性别数据,存储在数组a中,并显示于列表框List1中,代码略
End Sub
Private Sub Comd1_Click()
Dim count As Integer, i As Integer, j As Integer count=0
For i = 1 To n-1
‘改错①
For j = n To i+ 1 Step -1
If a(2 * j - 1) = "男" Then If
Then
‘改错②
t = a(2 * j - 2): a(2 * j - 2) = a(2 * j): a(2 * j) = t
t = a(2 * j - 3): a(2 * j - 3) = a(2 * j - 1): a(2 * j - 1) = t start = j
End If
ElseIf a(2 * j - 3) = "女" Then
If Then '填空
t = a(2 * j - 2): a(2 * j - 2) = a(2 * j): a(2 * j) = t
t = a(2 * j - 3): a(2 * j - 3) = a(2 * j - 1): a(2 * j - 1) = t start = j
End If
End If
Next j i=start-1
count=count+1 Next i
For i = 1 To n
List2.AddItem a(2 * i - 1) + a(2 * i) Next i
End Sub
① ②
Private Sub Commandl_Click ()
Dim x As String,ch As String
Dim flag As Boolean,i As Integer,result As Long
x = ①
i = l
result = 0
flag = True
ch = Mid(x,1,1)
Do While i <=Len(x)And flag =True
If ch>="0"And ch<="9" Then
result = result * 16 + Val(ch)
Elself ch>="A"And ch <="Z" Then
result =result * 16 +(Asc(ch)- Asc("A")+10)
ElseIf ch >="a" And ch <= "z" Then
result = result * 16 +(Ase(ch)- Ase("a")+ 10)
Else
flag = False
End If
i = i + l
ch = ②
Loop
If flag = True Then
Label 3.Caption =Su(result)
Else
Label3.Caption ="输入错误"
End If
End Sub
①②
Private Sub Command1_Click()
Dim n As Integer, i As Integer, s As String
Dim mid As Integer
n = Val(Text1.Text)
If ① Then
Text2.Text = "输入错误,请输入偶数!"
Else
mid = n \ 2 + 1
s = ""
For i = 2 To n
If i = n Then
s = s + "2"
Else
s = s + ② + ","
End If
Next i
③
End If
End Sub
① ② ③
Private Sub Text1_Change()
Dim a As Integer, i As Integer
a = Val(Text1.Text)
For i = 1 To 7 Step 3
If a <= 1000 Then a = a + i
Next i
Text1.Text = Str(a)
End Sub
执行该程序段,在文本框Text1中分别输入“1”、“2”、“3”、“4”,Text1中的结果( )
程序运行时,在文本框Text1和文本框Text2分别输入两个二进制数,单击按钮 Command11后在文本框Text3上输出两个二进制相加后的结果。
程序运行如图所示。

Private Sub Command1_Click()
Dim b1 As String, b2 As String, ans As String, t As String
Dim dist As Integer, jw As Integer
b1=Text1.Text: b2 Text2.Text: ans=""
If dist <0 Then
t=b1: b1=b2: b2=t: dist=-dist
End If
For i=1 To dist
b2="0"+b2
Next i
jw=0
For i= Len(b1)To 1 Step-1
x= Val(Mid(b1, i, 1))+ Val(Mid(b2, i, 1))+jw
ans Str(x Mod 2)+ans
Next i
IfThen ans ="1"+ ans
Text3.Text=ans
End Sub
解决此问题的方法是:将5瓶药编号为1~5号,从中分别取出1、2、4、8、16粒药丸进行称重。在不受潮时应是(1+2+4+8+16)×10=310(克)。假如称出的重量是315克,那么超出的重量是5克,说明有5粒超重,(5)10=(00101)2 , 因此受潮的是第1瓶和第3瓶。编写程序模拟此过程,程序运行时,单击“模拟”按钮Command1,在文本框Text1中输出超重克数,在列表框List1中输出药瓶编号,运行界面如图所示。
Private Sub Command1_Click()
Dim s As Integer, cz As Integer 'cz存储超重克数Dim k As Integer
'依次从1~5号瓶中取出1、2、4、8、16粒药,并计算总重量,存储在变量s中,代码略
cz = s - 310
Text1.Text =
k = 0
Do While cz <> 0
k = k + 1
If Then
List1.AddItem "第" + Str(k) + "瓶"
End If
cz = cz \ 2
Loop
End Sub
①密码是六位数字,前面两位为59;
②最后两位数字相同;
③能被12和38整除。
程序界面如图所示,单击“找回密码”按钮(Command1)后,可能的密码显示在列表框List1中。
Private Sub Command1_Click( )
Dim x As Integer, s As Long, y As Integer, i As Integer
For i=0 To 9999
s=590000+i
If ① Then
x=s mod 10
y=(s Mod 100)\10
If ② Then
List1.AddItem ③
End If
End If
Next i
End Sub
①,②,③
A.x=y B.Str(s) C.Str(i) D.s Mod 12=0 and s Mod 38=0

算法分析:要使得到的5位数字最小,首先需保证能取到5个数字,且首位应尽量小,那么取首位数的范围应保证余下有4个数字,即在前4位中选最小非0的数字。
程序运行时,在文本框Text1中输入一个数字字符串,在文本框Text2中输入要移除的数字个数,单击“运行”按钮CmdRun后,在标签Label1显示得到的最小新数,程序运行界面如图b所示。

Private Sub CmdRun_Click( )
Dim Num As String,New_num As String ' Num为输入的数字字符串
Dim i As Integer, j As Integer, m As Integer,
Dim As Integer, s As Integer, k As Integer
Dim a(30) As String, b(30) As Integer
Num = Text1. Text: s = Len(Num)
k = Val (Text2. Text) 'k为删除数字个数
For i=1 To s
a(i) = Mid(Num,i,1)
Next
j =1
m=1
n=
For i=m+1 To n '取第一个非零最小数字
If
Then m=I '加框处程序代码有误,请改正
Next i
b(j)= m
Do While '取其他最小数字
m=m+1
n=n+1
For i=m+1 To n
If a(i) < a(m) Then m= i
Next i
j =j+1:b(j)=m
Loop
For i= m+1 To s '最后直接取的数字
j =j+1:b(j)=i
Next i
For j=1 To s- k '输出最小数
New_num =
Next j
Label1.Caption = New_num
End Sub
Dim m As Integer
Dim n As Integer
Dim a(1 To 100) As Integer
Function sum(y As Integer) As Integer '函数功能是计算每列数据的和
sum=0
For i= ①
sum= sum+a(i)
Next i
End Function
Private Sub Cmd1_Click( )
Dim i As Integer, j As Integer, flag As Boolean, s As String
Randomize
m= Va1(Text1. Text) : n= Va1(Text2. Text)
For i=1 To (m-1) * n
For j=1 To i-1
If a(i) = a(j) Then ② :
Exit For
Next j
Next i
For i=1 To (m-1) * n
s=s+Str(a(i))
If ③ Then
List1. AddItem s
s=" "
End If
Next i
For i=1 To n
a(i+(m-1)*n)=sum(i)
Next i
'对数组元素进行升序排序并显示在List1,代码略
End Sub
① ② ③