key=Val(Text1. Text):i=1:j=10
Do While i <=J
m=Int(i+j)/2+0.5)
If key Mod 2+ a(m) Mod 2= 1 Then m=m-1
If a(m)= key Then
List 1. AddIton"找到了!": Exit Do
ElseIf a(m)> key Then
j=m-2
Else
i=m+2
End If
Loop
If i>j Then List1. AddItem "未找到此数"
如果数组元素a(1)到a(10)的数据依次是“1,4,5,6,11,10,23,16,25,20”,key的值为1,则执行上述程序段,变量m依次被赋值为( )
i=1: j=10
Do While i<=j
m=(i+j)\2
If key <= a(m)Then
①
Else
②
End If
Loop
For k=10 To i Step-1
③
Next k
a(i)=key
要使程序实现上述功能,则划线处①②③中的语句分别是( )
For i=2 To n
k=a(i):j=j-1
Do While k<a(i)
a(j+1)=a(j)
j=j-1
If j=0 Then Exit Do
Loop
Next i
要实现上述排序算法,方框内VB语句应为( )
请回答下列问题:
Private Sub Command 1_ Click()
Dim n As Long, sum As Long, ans As Long
n= Val(Text1. Text)
sum=1
Do While sum <n
Loop
If n =sum Then
ans=sum
ElseIf Then
ans=sum/2
Else
ans =sum
End If
Label 1. Caption = Str(ans)
End Sub
1)如果“-”号右边的字符按照ASCI码的顺序大于左边字符,输出时,用连续递增的字母或数字串替代其中的“-”号,例如:“c-g”输出为“cdefg”,“3-7”输出为“34567”。
2)如果“-”号右边的字符按照ASCII码的顺序小于或等于左边字符,输出时,保留中间的“-”号,例如:“a-a”输出为“a-a”,“4-1”输出为“4-1”。
3)如果“-”号右边的字符恰好是左边字符的后继,则删除中间的“-”号,例如“d-e”应输出为“de”,“3-4”应输出为“34”。
某同学按照上述算法,编写了VB程序,功能如下:在文本框Text 1中输入简写字符串,单击“展开”按钮Command 1,程序进行字符串展开处理并显示在文本框Text 2中。程序运行界面如图所示。
Private Sub Command1_Click()
Dim st1 As String, st2 As String, i As Integer
st1=Text1. Text
n=Len(st1)
st2=""
For i=1 To n
If pos(st1, i)Then<> "-" Then
st2=st2+pos(st1, i)
Else
If pos(st1, i-1)<pos(st1, i+1) Then
For j=Asc(pos(st1, i-1))+1 To Asc(pos(st1, i+1))-1
Next j
Else
st2=st2+"-"
End If
End If
Next i
Text2. Text=st2
End Sub
Function pos(s As String, x As Integer) As String '返回字符串s中x位置的字符
End Function