题库 高中信息

题干

星期天,小杰来到动物园游玩,园内共有 N 个景点,每个景点都有一个标号,标号为 1 至 N。现在只知道每个景点均有一条路连接下一个景点。小杰想知道,根据这些道路信息,从其中一个景点出发,最后再回到出发景点,最多能游玩多少个景点。
例如,共有 N=5 个景点,每个景点连接的下一个景点分别是2,4,5,5,2,
景点号
1
2
3
4
5
下一景点号
2
4
5
5
2
 
则他可以从 2 号景点出发,最多可以游玩 2号、4号、5号三个景点。

程序代码如下:
Private Sub Command1_Click()
Dim a(1 To 100) As Integer , d(1 To 100) As Integer '数组 a 存放下一景点号
Dim jd As String, m As String,c As Integer,I As Integer
Dim s As Integer, p As Integer,k As Integer,ans As Integer
jd=Text1. Text+","
s=0 : c=0
For i=1 To Len(jd)
m=Mid(jd,i,1)
If m<>"," Then
s=s∗10+Val(m)
Else
c=c+1 :a(c)=s : s=0    '含义
End If
Next i
ans=0:k=0
For i=1 To c    '枚举游览起点
For k=1 To c
d(k)=0
Next k
If d(i)=0 Then
p=i
Do While p<=c
If d(p)=0 Then
k=k+1 :d(p)=k
Else
y=    ①  '填空
If y>ans Then ans=y
k=0
Exit Do
End If
'改错
Loop
End If
Next i
Text2. Text=Str(ans)
End Sub
(1)若要实现显示“景点连接情况:”的 Text1 在程序运行时默认为空,则需要将 Text1 的_________________属性设置为空。
(2)若有 7 个景点,且每个景点的连接情况为 6,3,7,2,7,5,4,那么小杰最多可以游玩的景点数是_________________。
(3)程序代码中,有下划线的语句“a(c)= s”代表的含义为___________________________。
(4)程序代码中,在①处填空:y=_____________________。
(5)程序代码中,加框处代码有错,请改正:__________________________________。
上一题 下一题 0.99难度 None 更新时间:2020-03-28 10:23:37

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

同类题4

某数据加密方法描述如下:
先将字符转化为二进制的位数据并显示在文本框text2中,数据位数显示在标签Label1中
以16个数据为一段,将k个待加密数据依次分割成若干个数据段,剩余数据(个数小于16)为独立数据段。
数据加密规则:
数据个数等于16的数据段,在段内进行位置变换,得到加密数据段。
数据个数小于16的数据段,直接得到加密数据段。
依次合并加密数据段,即为最后的加密数据。
位置变换的规制,方法如下:

具体界面如下图所示:

(1)已知k=38,则数组元素b(26)对应值是数组a中的______________________。
(2)实现该功能的VB程序如下:

Private Sub Command1_Click()

Dim a(1 To 1000) As Integer, b(1 To 1000) As Integer

Dim n As Integer, m As Integer

Dim s As String, s1 As String, c As Integer, ch As String

s = Text1.Text: Text2.Text = ""

n = Len(s)

k = 1

For i = 1 To n '获取字符的二进制数据存放在数组a()中

  n = Asc(Mid(s, i, 1))

  Do While n <> 0

   a(k) = n Mod 2

   n = n \ 2

   Text2.Text = Text2.Text + Str(a(k))

   k = k + 1

  Loop

Next i

     ①  

List1.Clear

 

For m = 1 To (k - 1) \ 16    '对字符二进制按规则进行位变换,变换后的数据存放在数组b()中并输出

  For i = 1 To 4

    b(16 * (m - 1) + 4 * (i - 1) + 1) = a((m - 1) * 16 + i)

    ②

  Next i

  For i = 1 To 3

    b(16 * (m - 1) + 4 * (i - 1) + 3) = a((m - 1) * 16 + 10 + i)

    b(16 * (m - 1) + 4 * (i - 1) + 2) = a((m - 1) * 16 + 17 - i)

  Next i

  For i = 1 To 2

    b(16 * (m - 1) + 13 + i) = a((m - 1) * 16 + 4 + i)

  Next i

 

 For i = 1 To 4

  s1 = ""

  For j = 1 To 4

  s1 = s1 + Str(b(16 * (m - 1) + (i - 1) * 4 + j))

  Next j

  List1.AddItem s1

  Next i

List1.AddItem ""

Next m

 

s1 = ""

For i = ((k - 1) \ 16) * 16 + 1 To k - 1

   b(i) = a(i)

    If ③  Then

    s1 = s1 + Str(a(i))

    List1.AddItem s1

    s1 = ""

    Else

    s1 = s1 + Str(a(i))

    End If

Next i

List1.AddItem s1

 

Text3.Text = ""

For i = 1 To k - 1

Text3.Text = Text3.Text + Str(b(i))

Next i

End Sub

实现上述功能,请在划线处填入适当的代码:
程序中①处填入的是________________________________________。
程序中②处填入的是________________________________________。
程序中③处填入的是________________________________________。