试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:普通

浙江省浙南名校联盟2020届高三上学期信息技术第一次(10月)联考试卷

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块时,“::”要化简最长的一段,没有最长的就将最左侧的一段化简为“::”

④“::”可以出现在地址开头或结尾具体示例如下:

化简前

化简后

ABCD:0000:2345:0000:ABCD:0000:2345:0000

ABCD:0:2345:0:ABCD:0:2345:0

FBCD:EF01:0000:0000:0000:0000:0000:6789

FBCD:EF01::6789

BBCD:0000:0000:0000:ABCD:0000:0000:6789

BBCD::ABCD:0:0:6789

0000:0000:0000:0000:0000:0000:0000:0001

::1

2001:0000:0000:0000:0000:0000:0000:0000

2001::

程序界面如图所示:

实现上述功能的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,则将左边的一串零简化,右侧保留。

 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,则化简后为。  
举一反三
【加试题】某加密程序,对输入的原始字符串进行加密处理,输入加密后得到的字符串。数据加密方法为对原始字符串中的每个字符进行如下处理:

  ①将该字符的ASCII码值转化为8位二进制数;

  ②将后4位二进制数进行按位取反(1变0,0变1);

  ③将操作②生成的4位二进制数均左移1位(原第1位变为新的第4位);

  ④原高4位二进制数连接到新的后4位二进制数成为最终加密后字符的内码。

  例如:字符“a”经过上述加密运算,可得到字符“m”。

ASCII码值

转二进制

后四位取反

后四位左移

拼合

转十进制

转字符

97D

01100001B

1110

1101

01101101B

109D

“m”

程序运行界面如图所示,请改正加框处有误的代码:

Private Sub Command1_Click()

    Dim s As String:Dim sl As String:Dim jg As String

    Dim n As Integer:Dim x As Integer:Dim i As Integer:Dim j As Integer

    Dim a(15)As String

    a(0)=“0000”:a(1)=“0001”:a(2)=“0010”:a(3)=“0011”

    a(4)=“0100”:a(5)=“0101”:a(6)=“0110”:a(7)=“0111¨

    a(8)=“1000”:a(9)=“1001”:a(10)=“1010”:a(11)=“1011¨

    a(12)=“1100”:a(13)=“1101”:a(14)“1110”:a(15)=“1111”

    jg=“ ”

    s=Text1.Text

    For i=1 To Len(s)

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

        low=n Mod 16

        low=15-low          ‘执行步骤②

        s1=Mid(a(low),2,3)&Mid(a(low),1,1)  ‘执行步骤③

        For i=l To 4

            x=x+Val(Mid(s1,j,1))*         ‘⑴{#blank#}1{#/blank#}

        Next j

        x= *16+x                        ‘⑵{#blank#}2{#/blank#}

jg=jg&Chr(x)

    Next i

    Text2.Text=jg

End Sub

返回首页

试题篮