题库 高中信息

题干

下列程序在调试时提示错误“块IF没有End If”,要使程序正常运行,则应该在 (填①或②)处添加语句     
Private Sub Image3_Click(Index As Integer)
Timer1.Enabled = False
Image1.Picture = Image3(Index).Picture
If x =" Index" Then
Label1.Caption = "平手"
Command1.Visible = True
      
Else
If x =" 1" And Index =" 2" Or x =" 2" And Index =" 3" Or x =" 3" And Index =" 1" Then
Label1.Caption = "您输"
Command1.Visible = True[:Zxxk.Com]
Else
Label1.Caption = "您赢"
Command1.Visible = True
End If
         
End Sub
上一题 下一题 0.99难度 填空题 更新时间:2016-01-21 06:12:30

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

同类题1

求最长升序子序列的长度。一个数的序列bi,当b1<b2<…<bS的时候,我们称这个序列是升序的。对于给定的一个序列(al,a2,…,aN),我们可以得到一些升序的子序列(ail,ai2,…,aiK),这里1<=il<i2<……<iK<=N。比如,对于序列(1,7,3,5,9,4,8),有它的一些升序子序列,如(1,7),(3,4,8)等等。这些子序列中最长的长度是4,比如子序列(1,3,5,8),小王设计VB程序用于求最长升序子序列的长度,在文本框Text1中输入n个各不相同的数据(各数据之间以逗号隔开),单击“求解”按钮Command1后在标签Labell中输出最长升序子序列的长度,运行界面如图所示。

具体算法描述如下:
①将文本框Text1中的n个数据依次读取到数组a中;
②构造一个数组b(j),j表示升序子序列的长度,b(j)的值表示所有j长度升序序列中最小的末尾元素值。例:序列(2,6,4,5),长度为2的子序列有(2,6),(2,4),(2,5),(4,5),则b(2)=4;
③从第1个元素开始,依次处理到第i(1≤i≤n)个元素为止,b数组所能达到的最大下标值maxlen,处理过程分两种情况:
a)a(i)>b(maxlen),则最长升序子序列的长度增加;
b)a(i)<b(maxlen),则在数组b中逆序查找到第一个b(j)>a(i)(maxlen-1≤j<1),更新数组b中升序子序列长度为j+1时所存储的元素值。
以图中数据为例:

④数组b的最大下标值即为最长升序子序列的长度。
实现上述过程的VB程序如下,请回答下列问题:
(1)若在文本框Text1中输入的序列为(4,7,9,8,6),则数组元素b(2)的值为_____________。
(2)请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim a(1 To 100)As Integer存储原序列
Dim b(1 To 100)As Integer存储各长度序列的最小末尾元素
Dim s As String
Dim n As Integer,i As Integer,j As Integer,maxlen As Integer
S=Text1.Text
n=1:j=1
For i=1 To Len(s)

c=Mid(s,i,1)

If c=,Then

a(n)=Mid(s,j,i-j)
n=n+1
j=i+1
End If
Next i
______
maxlen=1:b(1)=a(1)
For i=2 To n
If a(i)>b(maxlen) Then
maxlen=maxlen+1
b(maxlen) =a(i)
Else
j=maxlen-1:flag=True
Do While j>=1 And flag
If a(i)>b(i)Then
______
flag = False
End If
j=j-1
Loop
If______Then b(1)=a(i)
End If
Next i
Label1.Caption="最长升序子序列的长度为:"+Str(maxlen)
End Sub

同类题5

IPv6 是英文“Internet Protocol Version 6”(互联网协议第 6 版)的缩写。IPv6 地址总共有 128 位,为了便于人工阅读和输入,IPv6 地址使用 16 进制数表示,划分成 8 个块,每块 4 位,块与块之间用“:”隔开,如:ABCD:EF01:0000:0000:ABCD:EF01:0000:6789
同时,对于多个地址块为 0 的情况时,可以使用”::”号,进行化简。
化简原则:
①全 0 块“0000”,可以化简为“0”
②连续多个全 0 块,可以化简为“::”
③一个 IPv6 地址中只能出现一个“::”,出现多个全 0 块时,“::”要化简最长的一段,没有最长的就将最左侧的一段化简为“::”
④“::”可以出现在地址开头或结尾具体示例如下:
程序界面如图所示:

实现上述功能的 VB 程序如下,请回答下列问题:
(1)请在划线处填入合适的代码。
Private Sub Text1_Change()
Dim a(1 To 8) As String, ipstr As String, ips As String
Dim lenth As Integer, max_lenth As Integer, start As Integer ipstr = Text1.Text
For i = 1 To 8
a(i) =_________'将 IPv6 分段存入数组 a Next i
'对数组进行处理,如果字母或非零数字开头,则不用处理;如果全是数字0,则压缩成    0,如果前导为 0,则去掉,处理完毕存回数组。
'///------ 处理过程略----- /////
'如果只有一串0,则将该串“0”用“::”代替,如果不止一串0,则将最长的一串“0”简化为“::”,如果有连续  0,则将左边的一串零简化,右侧保留。
max_lenth = 0
For i = 1 To 7
If_________Then lenth = lenth + 1
Else
If   lenth > max_lenth    Then
max_lenth = lenth: start = i - lenth: lenth = 0 End If
End If Next i
If lenth > max_lenth Then   max_lenth = lenth: start = i - lenth  '根据连续 0 串的位置确定输出简化后的结果
ips = ""
If    start = 1 And max_lenth    =   7 Then '开头是 0 且全 0 ips = "::"
ElseIf   start = 1 Then    '开头是 0 但不全为 0 ips = "::"
For   i = start + max_lenth + 1   To   7 ips = ips + a(i) + ":"
Next i
ips = ips + a(i)
ElseIf   start > 1 And    start + max_lenth = 8   Then   '开头不是 0 但 0 到最后 For i = 1 To start - 1
ips = ips + a(i) + ":"
Next i
ips = ips + ":"
ElseIf start > 1 Then '开头不是 0 且 0 不到最后 For i = 1 To start - 1
ips = ips + a(i) + ":"
Next i
ips = ips + ":"
For i =_________To 7  ips = ips + a(i) + ":"
Next i
ips = ips + a(i)
Else '无连续 0 出现
For i = 1 To 7
ips = ips + a(i) + ":"
Next i
ips = ips + a(i) End If
Text2.Text = ips End Sub
(2)IPv6  地址:3BCD:0000:0000:ABCD:0000:0000:0000:6789,则化简后为_______。