48天笔试训练错题——day44

news2025/2/25 5:43:08

目录

选择题

1. 

2.

3.

4.

5.

6.

7.

8.

9.

10.

编程题

1. 单词倒排


选择题

1. 

A 类 IP 地址:0.0.0.0 ~ 127.255.255.255                 1 字节网络号,3 字节主机号

B 类 IP 地址:128.0.0.0 ~ 191.255.255.255             2 字节网络号,2 字节主机号

C 类 IP 地址:192.0.0.0 ~ 223.255.255.255             3 字节网络号,1 字节主机号

0 ~ 127 共有 128 个网络号,但是有两个比较特殊:0 作为本地宿主机,127 作为内部回送,并不算在内。

127.0.0.0 ~ 127.255.255.255 是保留地址,用做循环测试用的。0.0.0.0 ~ 0.255.255.255 也是保留地址,用做表示所有的 IP 地址。其中还有一个比较特殊的是 10 网段,用于分配给组建私网。

2.

3.

Socket 描述了地址信息,是网络通信的句柄,因为通过 socket 才知道谁与谁在进行通信。

UDP 通信不需要建立连接。

客户端通常不建议绑定端口,而是让系统自动进行分配合适的端口以此避免端口冲突的发生。

服务端的地址信息通常不能随意更改,否则客户端就无法找到服务器。

4.

ARP 协议:介于链路层和网络层之间的协议,在相邻设备之间广播 ARP 请求,通过 IP 地址来获取指定设备的物理硬件 MAC 地址,收到响应之后将指定的 IP-MAC 映射信息添加到 ARP 表中。

5.

Cookie 是用于维护 HTTP 通信状态的,HTTP 是一个无状态协议,服务端将一些需要客户端下次请求时携带的一些数据通过 Cookie 交给客户端,保存起来,客户端在下次请求服务器时将 Cookie 读取出来,在请求服务器的时候顺带一起发送,服务器根据 Cookie 中的信息就能知道客户端是谁、处于什么状态。

简单来说,Cookie 就是浏览器存储数据的结构。

Cookie 里面存储的全是键值对。

6.

ARP 欺骗攻击是局域网欺骗攻击,通过大量广播发送 ARP 响应伪装自己是网关是目标主机。

重放攻击的基本原理是把以前窃听到的数据原封不动地重新发送给接收方。

暴力攻击是一种密码攻击方法,可以输入和解密所有理论上可能的模式。

DNS 欺骗就是攻击者冒充域名服务器的一种欺骗行为。

synflood 是 syn 泛洪攻击。有一个恶意主机,伪造大量的 IP 地址,然后给服务器发送 SYN 请求,但是不进行第三次握手的回复,这样就会消耗服务器大量资源,使服务器连接等待队列爆满,无法处理合理的客户端请求。

DDos 攻击:分布式拒绝服务攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动 DDos 攻击,从而成倍的提高拒绝服务攻击的威力。

MAC 地址欺骗:利用 mac 欺骗阻止局域网内任意电脑使用网络。

伪造 DHCP 服务器:本质上是 DHCP 欺骗攻击,将真的 DHCP 服务器的 ip 资源耗尽,然后部署假的 DHCP 服务器,让主机向假的 DHCP 服务器请求。

Dos 攻击被称之为拒绝服务攻击,其目的是使计算机或网络无法提供正常的服务。最常见的 Dos 攻击有计算机网络宽带攻击和连通性攻击。

Dos 攻击中并不包括侵入目标服务器或目标网络设备。

Dos 是指故意的攻击网络协议实现的缺陷或直接通过野蛮手段残忍的耗尽被攻击对象的资源。

7.

A 类 IP 地址有 1 字节网络号,3 字节主机号。

B 类 IP 地址有 2 字节网络号,2 字节主机号。

C 类 IP 地址有 3 字节网络号,1 字节主机号。

8.

RARP 协议是通过 MAC 地址获取 IP 地址。

ARP 协议就是根据 IP 地址找到 MAC 地址的。

IP 协议是用于网络层通信的。

IMCP 其实就是 ICMP网际控制协议,用于网络探测的(ping)。

9.

应用层:文件传输协议(FTP),远程登录协议(Telnet),电子邮件协议(SMTP),网络文件服务协议(NFS),网络管理协议(SNMP),域名解析协议(DNS)。

传输层:TCP,UDP 协议。

网络层:IP,ICMP,ARP,RARP。

10.

A:客户端发送请求后,收到响应的时间,系统响应时间是系统对用户请求作出反应的时间。

B:RTT 往返延时,从数据被发出到收到接收端的确认经历的时间,是网络层的计算。

C:TTL,报文最大生存周期,或者说所经过路由器的跳数。

D:这里说的网络延迟和我们打游戏的延时是不一样的,指的是数据在传输介质中通过网络协议在传输介质中传输所用的时间。

编程题

1. 单词倒排

有逃课写法,可以直接利用库函数完成。首先把每个间隔符都替换成空格,然后利用字符串自带的 split 方法来切割空格,最后从数组后面往前输出每个元素即可。

还有另一种双指针写法,总体思路就是先将整个字符串逆序一遍,然后再将每个单词都逆序,最后再进行输出。

用两个双指针 start 和 end 来分别记录单词的首字母和该单词的末尾字母的下一个间隔符,先让 start 找到字母,然后再让 end 指向 start。

如果 end 遇到的是字母,就一直往后走,直到遇到间隔符才停下来,如果 end 越界了,就先逆序 start 到 end - 1 范围的字符,然后再退出循环。

如果 end 没越界,说明此时 end - 1 就一定是该单词的最后一个字母,逆序 start 到 end - 1 范围的字符,然后再让 end 跳过后面一连串的间隔符,直到遇到字母才停下来,如果此时 end 越界了,就说明从该单词往后已经没有单词了,全是间隔符,所以直接跳出循环。如果没越界,则说明此时 end 就一定是下个单词的首字母,让 start 指向 end 。

重复上述过程,如果 start 越界了,则说明单词已经逆序完成,最后按照题目要求输出即可。

代码实现:

// split 方法:
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String str = in.nextLine();
            StringBuilder s = new StringBuilder();
            // 把所有的间隔符替换成空格
            for (int i = 0; i < str.length(); i++) {
                char c = str.charAt(i);
                if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) {
                    s.append(c);
                } else {
                    s.append(' ');
                }
            }
            // 然后利用 split 切割函数来根据空格切割,
            // 最后从后往前输出单词即可
            String[] arr = s.toString().split(" ");
            for (int i = arr.length - 1; i >= 0; i--) {
                if (i > 0) {
                    System.out.print(arr[i] + " ");
                } else {
                    System.out.println(arr[i]);
                }
            }
        }
    }
}






// 双指针法:
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextLine()) { // 注意 while 处理多个 case
            String str = in.nextLine();
            print(str);
        }
    }

    public static void print(String str) {
        char[] arr = str.toCharArray();
        // 先整句进行逆序,然后再每个单词都进行逆序
        reverse(arr, 0, arr.length - 1);
        int start = 0;
        int len = arr.length;
        while (start < len) {
            // 先找到单词的首字母
            while (start < len && !isAlpha(arr[start])) {
                start++;
            }
            // 此时 start 一定是单词首字母
            int end = start;
            // 再找到该单词的最后一个字母
            while (end < len && isAlpha(arr[end])) {
                end++;
            }
            if (end >= len) {
                // 越界了,先逆序再退出循环
                reverse(arr, start, end - 1);
                break;
            }
            // 如果代码来到这里说明 end - 1 一定是该单词的最后一个字母
            // 逆序
            reverse(arr, start, end - 1);
            // 跳过这一串连续的间隔符
            while (end < len && !isAlpha(arr[end])) {
                end++;
            }
            if (end >= len) {
                // 越界了,因为这里前面已经找到并逆序过单词了,
                // 现在是跳过一连串的间隔符,如果直接就跳到了字符串末尾
                // 说明从单词往后就全是间隔符,没有单词了(示例2)
                // 所以不用再逆序,直接跳出循环即可
                break;
            }
            // 来到这里说明 end 一定是下一个单词的首字母
            start = end;
        }

        // 最后按题目要求输出即可
        for (int i = 0; i < len; ) {
            if (isAlpha(arr[i])) {
                System.out.print(arr[i]);
                i++;
            } else {
                System.out.print(' ');
                // 然后跳过后面连续的间隔符
                while (i < len && !isAlpha(arr[i])) {
                    i++;
                }
            }
        }
        System.out.println();

    }

    public static boolean isAlpha(char c) {
        if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) {
            return true;
        }
        return false;
    }

    public static void reverse(char[] arr, int left, int right) {
        while (left < right) {
            char tmp = arr[left];
            arr[left] = arr[right];
            arr[right] = tmp;
            left++;
            right--;
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1993091.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

服务器网络磁盘挂载

一、Ping测试 先测试磁盘网络的连通性 例如&#xff1a;这里申请的网络磁盘是&#xff1a; 127.0.0.1:/shareData ping 127.0.0.1二、挂载 确认连通后&#xff0c;确定需要挂载的目录&#xff0c;这里服务器的挂载目录为&#xff1a;/data/share &#xff08;自主选择创建目录…

【食物链】

题目 代码 #include<bits/stdc.h> using namespace std; const int N 5e410; int n, k; int p[N], d[N]; int find(int x) {if(p[x] ! x){int root find(p[x]);d[x] d[p[x]];p[x] root;}return p[x]; } int main() {ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)…

RaiDrive / Cyberduck 的安装破解

安装完成后&#xff0c;使用方法可以去这里看&#xff1a; Synology DS920 【外网访问】 这篇文章主要是为了解决 RaiDrive 的登录付费和 Cyberduck 的语言 所以可以尽管下载&#xff0c;盘中 RaiDrive 的免登录免费和 Cyberduck 的中文语言是没有问题的 硬盘映射程序 提…

专题 | IAM业界热度不减,2024市场持续井喷(一)

面对无边界、无规则、无差别&#xff08;企业规模&#xff09;的攻防时代&#xff0c;身份安全在网络安全的重要性日益增强。 身份安全是Gartner最近几年来频繁提及的重要未来趋势之一。RSAC 2023上RSA CEO Rohit Ghai 甚至发表了主题为《迫在眉睫的身份危机&#xff09;》的开…

DAMA学习笔记(十二)-数据质量

1.引言 数据管理能力包括为各类应用设计数据模型、安全存储和访问数据、适当地共享数据、从数据中获得知识&#xff0c;以及保障满足业务需求的能力等。但实现数据价值的前提是数据本身是可靠和可信的&#xff0c;换句话说&#xff0c;数据应是高质量的。 导致低质量数据产生的…

聚焦光热型太阳光模拟器助力多晶硅均匀加热

晶圆均匀加热技术综述 晶圆均匀加热是半导体制造过程中的关键技术之一&#xff0c;直接影响着晶圆上各种加工工艺的质量和稳定性。晶圆加热的目的在于化学气相沉积、退火、氧化等工艺中&#xff0c;通过对晶圆进行必要的热处理&#xff0c;以促进或优化后续工艺步骤。不均匀的…

嵌入式软件--C语言项目 客户信息管理系统

考虑到目前C语言的学习是以为嵌入式做基础而进行的&#xff0c;项目所使用到的语法和结构都是嵌入式常用到的&#xff0c;这是较为特殊和针对性的项目&#xff0c;不与其他同名项目作比较。若有参考着谨慎借鉴。 实现一个客户信息管理系统&#xff0c;功能包括添加客户、修改客…

CTFHUB-web-RCE-远程包含

开启题目 点击下面的 phpinfo 跳转之后发现查看到了 PHP版本&#xff0c;根据源码可以感觉到这里有文件包含&#xff0c;查看之后发现 allow 的配置都开着 抓包之后把 GET 换成 POST&#xff0c;构造 payload 发包&#xff0c;发现根目录有一个 flag 文件 <?php system(ls…

关于FOC学习资料的整理

【自制FOC驱动器】深入浅出讲解FOC控制与SVPWM技术 (qq.com)https://mp.weixin.qq.com/s?__bizMzk0NDQxMTY5OA&mid2247493780&idx1&sn53eacd4fd7e452489fc612bcb2b46a75&source41#wechat_redirect 稚晖君写的文章&#xff0c;涉及面很全&#xff0c;很通俗易…

【机器学习】ImageNet的基本概念以及如何使用ImageNet数据集

引言 ImageNet是一个大型的图像数据库&#xff0c;它根据WordNet的层级结构&#xff08;目前仅限于名词&#xff09;组织&#xff0c;其中每个层级节点都由成百上千张图像来描绘。这个项目对计算机视觉和深度学习研究的发展起到了重要作用 文章目录 引言一、ImageNet的基本概念…

ppt转pdf需要怎么转?6个软件教你快速进行文件格式转换

ppt转pdf需要怎么转&#xff1f;6个软件教你快速进行文件格式转换 将PPT转换为PDF格式是许多办公人员和学生常见的需求&#xff0c;尤其是在分享和发布文档时。以下是六款方便且高效的PPT转PDF软件&#xff0c;帮助你快速进行文件格式转换。 迅捷PDF转换器 这是专业的PDF编辑…

Gartner发布CNAPP云原生应用保护平台市场指南:CNAPP应该具有的4项强制功能和14项通用功能

CNAPP 满足了云原生应用程序和基础设施从开发到生产的全生命周期保护需求。负责云安全策略的安全和风险管理领导者应利用这项研究来分析和评估新兴的 CNAPP 产品。 主要发现 云原生应用和基础设施的攻击面不断扩大&#xff0c;攻击者将攻击重点放在运行时环境&#xff0c;包括网…

Java面试题--JVM大厂篇之全面掌握Parallel GC参数配置:实战指南

目录 引言&#xff1a; 正文&#xff1a; 一、Parallel GC概述 二、Java工程师的痛点 三、Parallel GC参数配置详解 1. 基本参数 2. 新生代参数 3. 老年代参数 4. 调优参数 四、实战案例 案例一&#xff1a;电商网站高并发场景 案例二&#xff1a;金融系统低延迟要…

python 文件打开、读、关闭练习

一、题目要求 二、代码实现 f open("D:\\workspace\\word.txt" , "r", encoding "UTF-8")# 方案一 # content f.read() # count content.count("itheima") # print(f"itmeiha在文件中出现了&#xff1a;{count}次")# 方案…

AI智能助手商业系统软件源码(IMYAI智能助手) AI换脸/智能体GPTs应用/AI视频生成/AI绘画/文档分析/GPT-4o模型支持

人工智能技术的发展日新月异&#xff0c;从深度学习到自然语言处理&#xff0c;再到计算机视觉等领域&#xff0c;不断推动着各行各业的变革。在应用层面&#xff0c;人工智能已深入到内容创作领域&#xff0c;为创作者提供了前所未有的便利和可能性。这些技术的发展潜力巨大&a…

iFC 原理与使用 VoNR 中的 T-ADS

目录 1. iFC 原理与使用 1.01 主要内容 1.02 什么是iFC 1.03 S-CSCF 怎么得到iFC&#xff1f;iFC在哪里定义&#xff1f; 1.04 Cx-User-Data AVP 举例(含iFC) ​编辑 1.05 iFC 具体构成 1.06 iFC 的重要参数&#xff1a;SessionCase 1.07 iFC 实战讲解1&#xff1a;VoN…

【Material-UI】Button 组件中的颜色设置(Color)详解

文章目录 一、基础颜色选项1. Secondary 颜色2. Success 颜色3. Error 颜色 二、定制颜色1. 添加自定义颜色2. 禁用默认颜色 三、高级用法和最佳实践1. 确保对比度2. 语义化颜色3. 考虑用户体验 四、总结 在用户界面设计中&#xff0c;颜色不仅仅是美学的一部分&#xff0c;更是…

【C++ Primer Plus】学习笔记 4

文章目录 前言一、结构类型1.在程序中使用结构2.C11结构初始化3. 结构可以将 string 类作为成员吗4.其他特性5.结构数组 二、共用体三、枚举1.设置枚举量的值2. 枚举的取值范围 前言 该笔记内容为书第四章——复合类型&#xff0c;加油加油 一、结构类型 结构是用户定义的类型…

8.2 生成器函数与表达式:Python 的秘密武器

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; 工&#x1f497;重&#x1f497;hao&#x1f497;&#xff1a;野老杂谈 ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题.…

使用jlink高版本调试和烧录立创·地文星CW32F030C8T6开发板

使用jlink高版本调试和烧录立创地文星CW32F030C8T6开发板 CW32F030固件包下载 下载地址&#xff1a;https://www.whxy.com/uploads/files/20240514/CW32F030_StandardPeripheralLib_V2.1.zip 官网资料地址&#xff1a;固件库-武汉芯源半导体官网|专注32位MCU芯片设计 (whxy.…