笔试强训(四十五)

一、选择题

(1)IP数据报分片的重组通常发生在(D)
A.源主机和数据经过的路由器上
B.源主机上
C.数据报经过的路由器上
D.目的主机上

数据分片是网络层发现上层给的数据过大,大于链路层的MTU,因此在网络层进行的数据分片,将大报文分割成小报文封装ip报头发送,在目的主机的网络层进行分片重组

(2)IP地址10.1.8.0/24和10.1.9.0/24,下列哪个是正确的汇总网段(C)
A.10.0.0.0/8
B.10.1.0.0/16
C.10.1.8.0/23
D.10.1.10.0/24

10.1.8.0/24 -> 10.1.0000 1000.0
10.1.9.0/24 -> 10.1.0000 1001.0
两个地址的前23位相同,所以汇总网段为 10.1.0000 1000.0/23

(3)下列TCP连接建立过程描述正确的是(C)
A.服务端收到客户端的SYN包后等待2ml时间后就会进入SYN_SENT状态
B.服务端收到客户端的SYN包后进入SYN_RECV状态
C.当客户端处于ESTABLISHED状态时,服务器端可能处于SYN_RECV状态
D.服务端未收到客户端确认包,等待2ml时间后会直接关闭连接

在这里插入图片描述
D选项,服务端第三次握手失败,也就是超时没有等到ACK,服务端就会发送RST报文给客户端,然后关闭连接

(4)TCP建立连接的过程采用三次握手,已知第三次握手报文的发送序列号为1000,确认序列号为2000,请问第二次握手报文的发送序列号和确认号分别为(B)
A.1999,999
B.1999,1000
C.999,2000
D.999,1999

确认序号是对方发送请求的起始序号+1

(5)HTTP协议中,如果要告知所请求的网页已经永久跳转到了另一个地址,应该返回哪个状态码(A)
A.301
B.302
C.404
D.503

301 -> 永久重定向;302 -> 临时重定向 ; 404 -> 资源不存在;503 -> 服务器资源超载或维护暂时无法处理请求

二、编程题

2.1 查找兄弟单词

2.1.1 题目

在这里插入图片描述

2.1.2 题解

思路:对给出的字典中的单词进行排序,然后依次比较x和字典中的单词是否是兄弟单词,如果是count++,直到count=k,就说明在字典中找到了第k个与x互为兄弟的单词

代码:

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
         while(scanner.hasNextLine()){
           
           int n=scanner.nextInt();
           String[] ss=new String[n];
            for(int i=0;i<n;i++){
              ss[i]=scanner.next();
            }
           String x=scanner.next();
           int k=scanner.nextInt();
           scanner.nextLine();
           Arrays.sort(ss);
           int count=0;
           String kStr="";
           for(String e: ss){
              if(isBrother(e.toCharArray(),x.toCharArray())){
                count++;
                if(count==k){
                  kStr=e;
                }
              }
           }
           System.out.println(count);
           if(count>=k) System.out.println(kStr);
         }

    }
    private static boolean isBrother(char[] s1, char[] s2){
         if(s1.length != s2.length ) return false;
         String strA=new String(s1);
         String strB=new String(s2);
        if(strA.equals(strB)){
            return false;
        }
       Arrays.sort(s1);
       Arrays.sort(s2);
       strA = new String(s1);
       strB = new String(s2);
      return strA.equals(strB);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值