题库 高中信息

题干

   问题描述:山顶上共有10个洞,一只兔子和一只狐狸相遇了,狐狸要吃兔子。兔子对狐狸说:“你可以吃掉我,但必须先找到我。我就藏在这10个洞的其中一个洞中(注:第1~10个洞的编号分别为:1、2、3、4、5、6、7、8、9、0)。你先到1号洞找我,若没找到,则第二次隔一个洞找我,即3号洞;第三次隔两个洞找我,即6号洞;以后以此类推,找到就可以吃掉我。”狐狸答应了,但是狐狸进进出出100次后,也没找到兔子,请问兔子躲藏在哪个洞?


根据规则,前面5次进洞的情况如下表所示。

第i次进洞

洞的实际编号

1

1

2

3

3

6

4

0

5

5

……

……

 

解决此问题的VB程序界面如右图所示,单击“运行”按钮,在列表框List1中显示兔子可能躲藏的山洞编号。

模拟上述过程的VB程序代码如下。
Private Sub  Run_Click()
Dim i As Integer , k As Integer
Dim hole(0 To 9) As Boolean    'hole(0)表示第10号洞
For i = 0 To 9
hole(i) = True
Next i
k=
For i = 1 To 100
k = k + i
hole(k Mod 10) = False
Next i
For i = 0 To 9
If   Then List1.AddItem Str(i)    '输出兔子可能躲藏的洞(编号)
Next i
End Sub
(1)结合程序设计界面和代码,可知“运行”按钮的对象名为____________________。
(2)程序中划线①处应填入___________________,②处应填入___________________。上面加框程序主要用到的是____________________(填:解析/枚举)算法。
(3)狐狸第10次所进洞的编号是____________________。
上一题 下一题 0.99难度 填空题 更新时间:2019-05-07 09:41:17

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

同类题1

小明编写了一个 VB 程序对成绩数据进行排序。为保证相同分数的同学相对位置(指原数据中的前后关系)不发生改变,他试着采用一种新的排序算法来解决。为便于描述算法的实现过程,假定有如下数组 a:
下标
1
2
3
4
5

5
3
3
2
4
 
第一步:统计数组 a 中每个值 a(i)出现的次数,存入 b(a(i)),统计完成后数组 b 的情况如下:
下标
1
2
3
4
5

0
1
2
1
1
 
第二步:从前向后,依次使数组 b 中的每个值等于其与前一项之和,这样数组 b(a(i))就代表了数组 a 中小于或等于 a(i)的元素个数,完成第二步后数组 b 如下:
下标
1
2
3
4
5

0
1
3
4
5
 
第三步:从后往前,依次将数组 a 中元素填入数组 c 中,将数组元素 a(i)放在数组 c 的第 b(a(i))项,如元素 a(1)=5,应该放在数组 c 的 b(5)位(即 c(5) )。每放一个元素就将 b(a(i))递减;完成第三步后,数组 c 如下所示,已经完成升序排序,且相对位置不变,即原来 a (2)的值 3 仍然在 a(3)的值 3 前面。
下标
1
2
3
4
5

2
3
3
4
5
 
程序运行界面如右图所示:

实现上述功能的 VB 程序如下,回答以下问题:
(1) 从代码中可以得知,用于连接数据库的对象名是:________
(2) 请在划线处填上相应代码。
Dim a(1 To 50) As Integer '存放学生的成绩
Dim sname(1 To 50) As String '存放学生姓名
Dim n As Integer
Private Sub Command1_Click
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
App.Path + "\stu.accdb"
conn.Open
strSQL = "SELECT * From stucj"
Set rs.ActiveConnection = conn
rs.Open strSQL
n = 0
List1.AddItem "姓 名" & " " & "成绩"
Do While Not rs.EOF
n = n + 1
a(n) = rs.Fields("cj")
sname(n) = rs.Fields("xm")
List1.AddItem sname(n) & " " & Str(a(n))
①_________
Loop
rs.Close
conn.Close
End Sub
Private Sub Command2_Click
Dim i As Integer, k As Integer
Dim b(0 To 100) As Integer
Dim c(1 To 50) As Integer, c1(1 To 50) As String 'c 和 c1 作为临时数组
For i = 1 To n
b(a(i)) = b(a(i)) + 1
Next
For i = 1 To 100
b(i) = ②__________
Next
For i = n To 1 Step -1
c(b(a(i))) = a(i)
c1(b(a(i))) = sname(i)
③_________________
Next
For i = 1 To n '把临时数组 c 和 c1 中的数据放入 a 和 sname 数组
a(i) = c(i)
sname(i) = c1(i)
Next
List2.AddItem "姓 名" & " " & "成绩"
For i = 1 To n
List2.AddItem sname(i) & " " & Str(a(i))

Next

End Sub