i = 1: j = 10: k = 6
Do While i < = j
m = Int ((i +1)/2)
If k= a(m) Then
Exit Do
ElseIf k < a(m) Then
j = m-1
Else
i=m+1
End if
Loop
数组元素a(1)到a(10)的值依次为3,5,7,10,12,15,17,18,21,25,该段程序运行后,在查找数值6的过程中,i,j,m的值分别是( )
arr[M]和待查找数据key比较:
①arr[M]= key,返回M的值;
②若M位置的右侧有序,当待查找数据在右侧时则下次在右侧查找,否则在M左侧查找;
③若M位置的左侧有序,当待查找数据在左侧时,下次在左侧查找,否则在M右侧查找。
Function Search (key As Integer, L As Integer, R As Integer) As Integer
① ‘填写合适的代码
Do While L < R And Search =-1
M=(L+R)\2
If arr(M) = key Then
Search = M
Else
If ② Then ‘填写合适的代码
If arr(L) < = key And key arr(M)Then
R=M-1
Else
L=M+1
End If
Else
If ③ Then ‘填写合适的代码
L=M+1
Else
R = M-1
End if
End if
End If
Loop
End Function
① ② ③
⑴以字节为单位进行加密处理;
⑵将1个字节的8位二进制数分割成前4位与后4位两个二进制数;
⑶分别将上述两个4位二进制数转换为十进制数;
⑷将每个十进制数转换为1个加密字符,对应的“密码表”如下:
|
值(十进制) |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
|
加密字符 |
I |
l |
i |
k |
e |
C |
H |
N |
p |
o |
s |
t |
c |
a |
r |
d |
小明按照上述方法,设计了一个字符串(仅包含ASCⅡ字符)加密的VB程序,功能如下:单击“加密”按钮Command1,程序依次将文本框Text1中每个字符的ASCⅡ码值作为1个字节转换为两个加密字符,连接这些加密字符,最后在文本框Text2中输出加密结果。下表展示了字符串中一个字符的加密过程:
实现上述功能的VB程序如下:
程序运行效果如图所示。
Private Sub Command1_Click ( )
Dim n As Integer, s As String, i As Integer, ss As String
Dim a As Integer ‘存储加密前字符的 ASCII码
Dim b1 As Integer, b2 As Integer ‘分别存储分割、转换后的两个十进制数
s = Text1. Text
n = Len (s)
For i = 1 To n
a = ①
b1 = a\16
b2 =a Mod 16
ss= ss + Code2 Char(b1) + Code2 Char(b2)
Text2. Text=ss
Next i
End Sub
‘十进制值转换为加密字符的函数
Function Code 2 Char(c As Integer) As string
Dim s As String
s = “IlikeCHNpostcard”
Code2Char = ②
End Function
① ②
Private Sub Commandl_Click()
Dim a As Integer, b As Integer,cAs Integer
a=Val(Text1.Text):b=Val(Text2.Text):c=Val(Text3.Text)
Label2.Caption=Str(fx(a,b,c))
End Sub
Function fx(x As Integer,y As Integer,z As Integer)As Integer
If x<y Then fx=z
If x>y Then fx=y Else fx=x
End Function
i = 1: j = 8
Key = Val(Text1.Text)
Do While i < j
m = (i + j) \ 2
If a(m) >= Key Then
i = m + 1
Else
j = m
End If
Loop
数组a(1)~a(8)分别是18、16、14、13、12、10、9、7,程序运行后,下列说法正确的是( )
b=0
For a= 1 To 10
b=a+b
a=a+3
Next a
c=a+b
执行该程序段后,变量c的值为( )
|
班级 |
1班 |
2班 |
3班 |
4班 |
5班 |
6班 |
7班 |
8班 |
9班 |
10班 |
|
人数 |
50 |
45 |
50 |
51 |
49 |
55 |
50 |
48 |
52 |
50 |
Const n = 500 '总学生数
Const m = 10 '总班级数Dim score(1 To n) As Integer
Dim stu_name(1 To n) As Integer Dim class(1 To n) As Integer Dim temp1(1 To n) As Integer Dim temp2(1 To n) As Integer Dim temp3(1 To n) As Integer Function adj(s As String)
'本函数在字符串s 前添加若干空格,实现右对齐,代码略
End Function
Private Sub Form_Load()
'本过程读取学生姓名、班级和成绩数据分别存储在数组stu_name,class 和score 中,
'并在 List1 中显示,代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer, t1 As Integer, t2 As String
Dim c(0 To m + 1) As Integer
For i = 0 To m
c(i) = 0
Next i
For i = 1 To n
c(k) = c(k) + 1
Next i
For i = 1 To m
c(i) = c(i) + c(i - 1)
Next i
For i = n To 1 Step -1
k = class(i)
temp1(c(k)) = score(i)
temp2(c(k)) = stu_name(i)
temp3(c(k)) = class(i)
Next i '处理完毕 c(i+1)表示第 i 个班级的最后一个学生的存储位置
c(m + 1) = n
For k = 1 To m '对每一个班级学生成绩进行排序For i = c(k) + 1 To c(k + 1) - 1
For j = c(k + 1) To i + 1 Step -1
If Then
t1 = temp1(j): temp1(j) = temp1(j - 1): temp1(j - 1) = t1
t2 = temp2(j): temp2(j) = temp2(j - 1): temp2(j - 1) = t2
t1 = temp3(j): temp3(j) = temp3(j - 1): temp3(j - 1) = t1
End If
Next j
Next i
Next k
For i = 1 To n
score(i) = temp1(i): stu_name(i) = temp2(i): class(i) = temp3(i)
List2.AddItem adj(Str(stu_name(i))) & adj(Str(class(i))) & adj(Str(score(i)))
Next i
End Sub
Dim a(1 To 5) As Integer
a(1) = 1
For i = 2 To 5
a(i) = Int(Rnd * 5) + 1
If a(i) Mod 2 = 0 Then
a(i) = a(i) + i
Else
a(i) = a(i) + a(i - 1)
End If
Next i
a(1)~a(5)的值不可能的是:( )
temp = Val(Text1.Text)
If temp <= a(n) Then
a(n + 1)= temp
Else
left= 1: right= n
Do While left <= right
mid = (left + right) \2
If ① Then right= mid- 1 Else left= mid+ 1
Loop
For j= n To left Step-1
②
Next j
③
End If
则横线①②③上的语句分别是( )
Private Sub Command1_Click()
Const n = 10
Dim i As Integer, j As Integer
Dim d(0 To 100) As Integer
For i = 1 To n
For j = 1 To n
If i = 1 Then
d(j) = j ^ 2
Else
If j = 1 Then
①
Else If j < i
d((i - 1) * n + j) = d((i - 2) * n + j) - 1
Else
②
End If
End If
Next j
Next i
‘在列表框List1中按每行10个输出数组d的所有元素,代码略
End Sub
①处代码为,②处代码为。
应改为
Dim s As String, ch As String
Dim ansAs String, i As Integer
s = Text1.Text
For i = 1 To Len(s)
ch = Mid(s, i, 1)
If ch >= "A" And ch <= "Z" Then
ch = Chr(asc(ch) + 3)
ElseIf ch >= "a" And ch <= "z" Then
ch = Chr(asc(ch) - 3)
End If
ans = ans + ch
Next i
Text2.Text = ans
运行时文本框Text1中输入“Tu5Mp4”,则文本框Text2中输出的内容是( )

k1 = 1:k2= 10
For i=2 To 10
If a(i) < a(k1) Then
ElseIf a(i) < a(k2) Then
End If
Next i
Text1.Text = Str(a(k1)) + "," + Str(a(k2))
上述程序中方框处可选语句为:
①k1=i
②k2= i
③k2= k1
则⑴⑵⑶处语句依次是( )

PrivateSubCommand1_Click()
Dim x AsInteger,y As Integer,t AsInteger
Dim I AsInteger,n As Integer,count AsInteger
x=Val(Text1.Text)
y=Val(Text2.Text)
![]()
count=0
For i=x To y
List1.AddItem Str(i)
n=i
Do While n>0
If n Mod 10=1 Then
count=count+1
End If
Loop
Next i
Label3.Caption="X到Y之间1的个数有"++"个"
End Sub
a=6
a=b=c=8
print(b, c)