题库 高中信息

题干

某对分查找算法的 VB 程序段如下:
i= 1 : j= 8 : t= 0 key=Int(Rnd()*7)+14
Do While i<=j
m=Int((i+j)/2)
t=t+1
if a(m)=key Then Exit Do
else
If a(m)>key Then  j=m-1
Else 

i=m+1 End if

End if
Loop
数组元素 a(1)到 a(8)的值依次为“2,11,14,15,18,19,20,22”,该程序段运行结束后,变量 t 的最大值可能是()
A.1B.2C.3D.4
上一题 下一题 0.99难度 选择题 更新时间:2019-12-05 01:38:12

答案(点此获取答案解析)

同类题3

某班师生玩一个游戏,n(n 不超过 1000)个同学站成一圈,逆时针编号为 l - n,有两个老师 A 和 B,A 老师从 1 开始逆时针数 k 个同学,B 老师从 n 开始顺时针数 m 个同学(注意 A,B 老师可能数到同一个学生),被老师选中的 1 个或 2 个学生离开圈子,剩下的学生继续。
程序开始时在 Text1 中输入同学数 n,在 Text2 中输入 k 的值,在 Text3 中输入 m 的值,点击“开始” 按钮,在 label5 中显示依次出圈的学生编号。程序运行如图所示:

VB 程序如下,请将按要求答题:
Dim stu(1 To 1000) As Integer
Dim n As Integer
Private Sub Command1_Click()

Dim left, k, m As Integer

Dim stup1, stup2 As Integer

n = Val(Text1.Text)

k = Val(Text2.Text)

m = Val(Text3.Text)

        
stup1 = n: stup2 = 1
For i = 1 To n
stu(i) = i Next i
Do While left > 0
stup1 = teachount(stup1, 1, k)
stup2 =
Label5.Caption = Label5.Caption & " " & Str(stup1)
left = left - 1
If        Then
Label5.Caption = Label5.Caption & " " & Str(stup2)
left = left - 1
End If stu(stup1) = 0

stu(stup2) = 0

Loop

End Sub
'f=1 表示逆时针数 c 个,f=-1 表示顺时针数 c 个
Function teachount(ByVal p As Integer, ByVal f As Integer, ByVal c As Integer) As Integer
Do While c > 0
        
Do While stu(p) = 0

p = (p + f + n - 1) Mod n + 1

Loop

c = c - 1

Loop teachount = p
End Function
(1)加框处的语句有错误,请改正:______________________________________________ 
(2)请将①处的语句补充完整:______________________________________________
(3)请将②处的语句补充完整:______________________________________________
(4)请将③处的语句补充完整:______________________________________________

同类题5

编写矩阵乘法的VB程序。矩阵是由m×n个元素数排列而成,例如m*n矩阵是由m行n列数据排列而成。若A矩阵是m×s个元素,B矩阵是s×n个元素,将A矩阵乘以B矩阵得到C矩阵,C矩阵是m×n个元素。

计算方法:矩阵A的第i行s个元素(i,1),(i,2),…,(i,s)和矩阵B的第j列s个元素(1,j),(2,j),…,(s,j)对应相乘后相加,就得到乘积矩阵C的第i行第j列元素,即(i,j)值=(i,1)的值×(1,j)的值+(i,2)的值×(2,j)的值+…+(i,s)的值×(s,j)的值。

例如:A矩阵3×5个元素,B矩阵5×2个元素相乘后得到3×2的C矩阵,如图1所示。其中c(5)=a(11)×b(1)+a(12)×b(3)+a(13)×b(5)+a(14)×b(7)+a(15)×b(9)。

3×5矩阵A

(由数组a存储)

a(1) a(2)   a(3)   a(4)   a(5)

a(6)   a(7) a(8)   a(9)   a(10)

a(11)  a(12)  a(13) a(14) a(15)

×

5×2矩阵B

(由数组b存储)

b(1) b(2)

b(3) b(4)

b(5) b(6)

b(7) b(8)

b(9) b(10)

=

乘积矩阵C

(由数组c存储)

c(1) c(2)

c(3)    c(4)

c(5)    c(6)

图1

 

 

 

 

(1)如下图所示,矩阵A×矩阵B的乘积矩阵C的第2行第3列的值为_________。
矩阵A
矩阵B
 

1   0

2   1

4   0

 

 

2  4  1

5  1  3

 

 
(2)根据上述矩阵乘法规则,小明设计了一个求矩阵A、B的乘积矩阵C的程序,代码如下,请在划线处填入合适的代码。
Private Sub Command1_Click()
Const max = 10
Dim a(1 To max * max) As Integer ’ 存储m×s矩阵A的各元素
Dim b(1 To max * max) As Integer ’ 存储s×n矩阵B的各元素
Dim c(1 To max * max) As Integer ’ 存储乘积矩阵C的各元素
Dim m As Integer, s As Integer, n As Integer, i As Integer, strline As String
m=3:    n=2:   s=5
’从左向右、由上往下依次将矩阵A和矩阵B的各元素存储于数组a和数组b中,代码略
For i = 1 To_________
strline = “”
For j = 1 To n
c ((i - 1) * n + j) = 0
For k = 1 To _________
c((i - 1) * n + j)=c ((i - 1) * n + j)+a((i - 1) * s + k) * b__________)
Next k
strline = strline + Str(c((i - 1) * n + j))
Next j
List3. AddItem strline

Next i

End Sub