试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:困难

浙江省慈溪市2020届高三上学期信息技术12月适应性考试试卷

IPv6是英文“Internet Protocol Version 6"(互联网协议第6版)的缩写。IPv6的地址长度为128位,采用十六进制表示。为了便于人工阅读和输入,IPv6地址可划分成8个块,每块4位,块与块之间用“:”隔开,如:ABCD:EF01:0000:0000:ABCD:EF01:0000:67890。同时,对于多个地址块为0的情况时,可以使用”::”号,进行化简。化简原则如下:

①全0块“0000”,可以化简为“0”

②连续多个全0块,可以化简为“::”

③一个IPv6地址中只能出现一个“::”,出现多个全0块时,“::”要化简最长的一段,没有最长的就将最左侧的一段化简为“::”

④“::”可以出现在地址开头或结尾

具体示例如下:

程序界面如图所示:

实现上述功能的VB程序如下,请回答下列问题:

(1)、IPv6地fit::3BCD:0000:0000:ABCD:0000:0000:0000:6789,则化简后为
(2)、请在划线处填入合适的代码,并且加框处代码有错,请改正。

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

      ①      ‘将IPv6分段存储

Next i

'对数组进行处理,如果字母或非零数字开头,则不用处理;如果全是数字,则压缩成0,

如果前导为0,则去掉,处理完毕存回数组。///-----处理过程略-----/////

'如果只有一串,则将该串"0"用“::”代替,如果不止一串,则将最长的一串"0"简化为“::”,如果有连续0,则将左边的一串零简化,右侧保留。

max_lenth=0

For i=1 To 7

   If a(i)<> "0" 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串的位置确定输出简化后的结果

 ② ③ 

举一反三
有一种压缩算法,基本原理是:特殊字符+重复次数+字符。
比如有文本字符串:A A A A A B C C C C B C C C,编码后得到:B B 5 A B B 4 C B B 3 C。编码串的最开始说明特殊字符B,以后B后面跟着的数字就表示出重复的次数。编程实现将从Text1输入的一个字符串,点压缩按钮后用上述方法压缩,压缩后的编码在Text2中输出,text3中输入特殊字符。压缩算法:
a)       给压缩串添加开关的特殊字符
b)      逐个判断输入字符串的字符(当前的字符与后一个比较),如果两个字符不同,则连到了压缩串中,如果有连续的重复字符则计数n+1
c)       最后一组重复字符或单个字符再连到压缩串中。
u  连入压缩串方法:单个的直接连入,有重复的连入特殊字符开头+数字+重复的字符

图1
程序如下:
Private Sub Command1_Click()
Dim src As String, t As String   ‘src保存输入的字符串
Dim desc As String         ‘desc保存压缩后的字符串
Dim c As String  ‘c保存特殊字符
Dim n As Integer  ‘n用来记连续重复字符个数
src = Text1.Text
c = Text3.Text
n = 0
desc =   ①  
For i = 1 To       ②  
    n = n + 1
    t = Mid(src, i, 1)
    If t <>     ③     Then
         desc = desc & zipstring(n, c, t)
         n = 0
    End If
Next i
Text2.Text = desc & zipstring(n, c,     ④   )
End Sub
Private Function zipstring(n As Integer, c As String, sr As String) As String
         If n <= 1 Then
            zipstring = sr
         Else
            zipstring = c & Trim(Str(n)) & sr
         End If
End Function
① {#blank#}1{#/blank#}
② {#blank#}2{#/blank#}
③ {#blank#}3{#/blank#}
④ {#blank#}4{#/blank#}
返回首页

试题篮