Private Sub Command1_Click( )
Dim i As Integer, s As String, flag As Boolean
①
flag True: i=2
Do While i <= Len (s) And flag
②
i=i+1
③
If flag Then
Label2. Caption=s+ “是降序数!”
Else
Label2.Caption=s+ “不是降序数!”
End If
End Sub
① ② ③
n = Val(Text1. Text)
sum=n
k=4
Do While n \ k>0
Sum = sum + n \ k
n=n \ k+n Mod k
Loop
Text2. Text = Str(sum)
在文本框Text1中输入10,执行该程序段后,文本框Text2中显示的值是( )

Const n1 = 6 ‘ 第1段已排序数据长度为n1
Const r2 = 5 ‘ 第2段已排序数据长度为n2
Dim c (1 To n1 + n2) As Integer ‘ 数组c长度为n1+n2,依次存储第1、2段数据
Private sub Command1_Click ( )
‘ 数组c依次存储两段已按从小到大排序的数据,并在列表框List1中显示’
‘ 代码略
List2. Clear
‘ A位置
For i = n1+1 To n1 + n2
![]()
‘B位置
Do While j > 1 and Flag
If ① Then
t = c(j): c(j) = c(j-1): c(j-1) = t
‘ C位置
Else
Flag = False
End If
②
Loop
Next i
For i = 1 To n1 + n2
List2. AddItem c(i)
Next i
End sub
① ②
Key=Int(Rnd*10)+1
If Key>5 Then Key=Key+5
i=1:j=10:n=0
Do While i<=j
m=(i+j)\2
If Key<=d(m) Then
j=m-1:n=n-1
Else
i=m+1:n=n+1
End If
Loop
Label 1.Caption=Str(n)
若数组元素d(1)到d(10)的值依次为“1,3,4,5,7,8,11,13,15,18”,执行该程序段后,则在标签Label 1中显示的结果不可能为( )
Private Sub Commandl_Click()
Dim s As String,c As String,d As String
Dim n As Integer,bl AsInteger,b2 As Integer, v As
Integer, i As Integer
s = Text1.Text:n = Len(s):i= l
Do While i <=n
c = Mid(s,i,2)
If c = "00" Then
d = "东"
ElseIf c= "01" Then
d = "南"
ElseIf c= "10" Then
d= "西"
Else
d = "北"
End If
bl = Val(Mid(s,i +2,1))
b2 = Val(Mid(s,i+3,1))
v= ①
List1.Addltem d + " "+ Str(v)
②
Loop
End Sub
①②
|
学生编号 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
|
买菜时间 |
3 |
2 |
5 |
5 |
6 |
7 |
1 |
8 |
1 |
3 |
|
最终是否参与排队 |
是 |
是 |
是 |
是 |
否 |
是 |
是 |
否 |
是 |
是 |
Const n = 10
Dim a(1 To n)As Integer
Private Sub Command1_Click()
Dim i As Integer,s As Integer,ans As Integer,t As Integer
'读取每个学生的买菜时间,依次存储在数组a中,代码略
For i = 1 To n-1
k = i
For j = n To i + 1 Step - 1
If Then k = j
Next j
If a(i)<>a(k)Then t=a(i):a(i)= a(k):a(k)=t
Next i
s = 0:ans = 0
For i = 1 To n
If
Then s=s + a(i):ans = ans + 1
Next i
Label1.Caption ="共有"+ Str( ans)+"个人是愉快的,且参与排队买菜。"
密码强度判断条件如下:密码长度小于6,则强度为“弱”。在密码长度大于等于6的情况下,若只出现一种字符,则密码强度为“弱”;若出现两种不同字符,则密码强度为“中”,出现3种以上不同字符,则密码强度为“强”。
Private Sub Cmd1_Click()
Dim n As Integer,i As Integer,m As Integer,s As String,c
As String
①
If n<6 Then
Label3.Caption ="弱"
Else
s= "0000"
For i = 1 To n
c=Mid(Text1.Text,i,1)
If c > = "0"And c<= "9" Then
Mid(s,4,1)= "1"'将字符串s第4位上的字符替换为"1"
Elself c > ="A" And c<="Z" Then
Mid(s,3,1)= "1"
Elself c>="a" And c<="z" Then
②
Else
Mid(s,1,1)= "1"
End If
Next i
m = 0
For i = 1 To 4
If Mid(s,i,1)= "1" Then ③
Next i
If m< 2 Then
Label3.Caption="弱"
Elself m = 2 Then
Label3.Caption="中"
Else
Label3.Caption="强"
End If
End If
End Sub
①②③
i = 1:j = 12:k = 0:s = " "
key = Val(Text1.Text):c = "N":flag = False
Do While i< = j And flag = False
m = (i+j+1)\2:k = k+1
If key = a(m)Then c = "Y":flag = True
If key>a(m)Then j = m-1 Else i = m+1
s = s & Str(a(m))
Loop
Text2.Text = s:Text3.Text = c
数组a(1)到a(12)的值依次为“99,91,85,76,68,61,53,42,34,27,20,13”,执行该程序段后,下列说法正确的是( )
a(1) | a(2) | a(3) | a(4) | a(5) | a(6) |
6 | 17 | 25 | 36 | 44 | 58 |
在数字44处分成两段,交换位置后为:
a(1) | a(2) | a(3) | a(4) | a(5) | a(6) |
44 | 58 | 6 | 17 | 25 | 36 |
依据对分查找思想,设计一个在数组a中查找最小值,并输出在Text1中的程序,实现该功能的 VB程序如下,但加框处代码有错,请改正。
Private Sub Commandl_Click()
Const n = 6
Dim a(1 To n)As Integer
Dim i As Integer,j As Integer,m As Integer
'读取数据,按上述规则存入数组a中,代码略
i = 1:j = n
If
Then Text1.Text = Str(a(i)) ‘⑴
Do While i< = j
m =(i+j)\2
If a(m)<a(j)Then
‘⑵
Else
i = m + 1
End If
Loop
Text1.Text = a(j)
End Sub
⑴ ⑵
转换方法:先从右往左将二进制数分割成 4 位一组,若最左边的一组不足4位,则用 0 将高位补足,然后将每 4 位二进制数转换为 1 位十六进制数。
Private Sub Convert_Click()
Dim a(1 To 100) As Integer, temp As Integer
Dim s As String, res As String, n As Integer, r As Integer
res = ""
s=TextB.text
n = Len(s)
For i = 1 To n
a(i) = Val(Mid(s, i, 1))
Next i
t = n \ 4
r = ①
temp = 0
For i = 1 To r ‘将最高的r位转换为十六进制
②
Next i
If temp > 9 Then
res = Chr(temp + 55)
ElseIf temp > 0 Then
res = CStr(temp) ‘Cstr()函数用于将数值转换为字符串,同时删除前导空格
End If
For i = 1 To t ‘将t组4位二进制转换为十六进制
Temp=0
For j=1 to 4
temp = temp+a(j+r+4*(i-1))*2^(4-j)
Next j
If temp > 9 Then
res = res + Chr(temp + 55)
Else
res = res + CStr(temp)
End If
Next i
TextH.Text = res
End Sub
第①处代码为
第②处代码为
For i=1 To 6
a(i)=Int(Rnd*10)+1
Next 1
For i=2 To 6
If i Mod 2=0 And a(i)>a(i-1) Then
t=a(i): a(i)=a(i-1): a(i-1)=t
Else
a(i)=a(i)-1
End If
Next i
执行程序后,数组元素a(1)到a(6)的值可能是( )。
Function delStr(S As String, m As Integer)As String Dim n As Integer
n= Len(s)
If m<1 Or m>n Then
delStr="输入位置有误!"
ElseIf m=1 Then
delStr=Mid(S, 2, n-1)
ElseIf m<n Then
①
ElseIf m=n Then
delStr=Mid(S, 1, n-1)
End If
End Function
则划线①处代码填写正确的是( )。
编写一个VB程序,实现如下功能:程序启动时产生n个1~20之间的随机整数,在文本框Text2中输入整数k(k≤n),单击“查找”按钮Command1后,在标签Label1上显示第k大的数及位置。程序运行界面如图所示。
Const n = 10
Dim a(1 To n) As Integer
Private Sub Form_Load()
'本过程产生n个1~20之间的随机整数存数组a中,并在文本框Text1中显示,代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, sum As Integer, key As Integer,c As Integer,k As Integer
Dim b(1 To 20) As Integer
①
For i = 1 To n
b(a(i)) = b(a(i)) + 1
Next i
i = 20
sum = 0
Do While i >= 1 And sum < k
②
i = i – 1
Loop
③
Label3.Caption = "第" + Str(k) + "大的数是" + Str(key)
c = 0
For i = 1 To n
If a(i) = key Then c = c + 1
If c =
Then Exit For
Next i
Label3.Caption = Label3.Caption + ",在第" + Str(i) + "位置"
End Sub
① ② ③
x=0
for i=1 to 5
x=x+i-1
next i
Dim x as Integer
Dim y as Integer
y = Val (InputBox(“y =”))
For i = 1 To 3
x = Val (InputBox(“x =”))
If x < y Then
y = x
End If
Next i
Print y
程序运行后,依次输入:45 96 11 37
运行输出结果是:
for i in range (1,6):
print(‘*’)