48天笔试训练错题——day42

news2024/12/24 9:50:35

目录

选择题

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

编程题

1. 走迷宫


选择题

1.

动态分配:使用 DHCP 协议动态分配 IP。

IP 地址不但有单播地址,多播地址,还有广播地址。

如果一个主机有块个网卡,那么每块网卡都可以拥有 IP 地址。

ARP 协议就是根据 IP 地址来获取 MAC 地址的。

2.

bind 函数是不会阻塞执行流的。

3.

10.1.193.0:10100000.00000001.11000001.00000000

10.1.194.0:10100000.00000001.11000010.00000000

10.1.196.0:10100000.00000001.11000100.00000000

10.1.198.0:10100000.00000001.11000110.00000000

如上,前 21 位都是相同的,则路由汇聚之后,可以将前 21 位作为网络号,剩下 11 位(全部设置为 0)作为主机号,则 IP 地址为 10.1.192.0/21。/21 表示网络号有 21 位(在子网掩码中前 21 位是 1)

4.

IP 地址有可能会变,但是 MAC 地址不会改变,因为 MAC 地址绑定了网卡,全球唯一。

5.

服务器在收到 SYN 包时将加入半连接队列,这个对应到三次握手过程中,TCP 连接处于半连接状态。

服务器收到客户端的 ACK 包后将从半连接队列删除:当连接建立之后,TCP 连接则从半连接队列移动到已完成连接队列,这个时候,程序员就可以调用 accept 函数从已完成连接队列当中将连接取到。

6.

ping 是基于 ICMP 协议的。

7.

还需要被动连接方也断开连接,这个就是四次挥手的过程。

因为需要维护连接,例如长时间没有应用层数据的收发,此时,TCP 就需要用保活机制(心跳机制)来维护连接,所以会增加开销。

8.

40.15.128.0/17:00101000.11110000.10000000.00000000       前 17 位为网络号

划分了 2 个子网,则说明多了 1 位网络号(2^1 = 2),所以子网的网络号应该是 18 位。

40.15.128.0/18:00101000.11110000.10000000.00000000       前 18 位为网络号

比原来多了 1 位,增加了 2 ^ 1 个子网,因为其中一个子网的第 18 位是 0,那么另一个子网的第 18 位可以是 1,可以用 0 和 1 来区分子网。

则第二个子网是 00101000.11110000.11000000.00000000  前 18 位为网络号,也就是 40.15.192.0/18

9.

host 文件是一个没有扩展名的系统文件,其作用就是用来存储一些常用的网络域名与其对应的 IP 地址,当用户输入一个需要登录的网址时,系统就会先去浏览器缓存中查找,然后再去 host 文件中查找,如果找到了就立即打开该网址,如果找不到就去 DNS 域名解析服务器中查找。

10.

32 - 28 = 4 位主机号,则有 2^4 = 16 个主机,范围如下:

10.174.20.1011 0000(176) ~ 10.174.20.1011 1111(191),除去全 0 和 全 1,可用的有 14 个。

编程题

1. 走迷宫

这种找所有迷宫路线最短的题目可以使用广度优先遍历来做。

广度优先遍历就跟二叉树的层序遍历差不多,也是用队列来实现,如果队列不为空,则从队列中弹出一个节点,然后标记该节点表示这个节点已经遍历过了,此时该节点可能就是出口,所以我们还需要判断该节点是否是出口,如果是,则返回当前最短路径的步数。如果不是,就再遍历该节点的四个方向(下 右 左 上) ,如果当前遍历的节点是合法的节点(数组没越界),并且是没有遍历过的节点,而且该节点还是通路(.),那么就将该节点入队,重复上述过程直到队列为空,如果队列为空还没到达过出口,则说明这个迷宫到达不了出口,返回 -1 即可。

可以自己定义个对象来存放坐标,再新定义一个成员变量来表示从入口到该坐标的步数。

广度优先遍历最先达到出口的一条路径就是最短路径。

代码实现:

import java.util.*;

class Position {
    public int x;
    public int y;
    public int count;// 表示从入口走到 (x, y) 所需要的步数

    public Position(int x, int y, int count) {
        this.x = x;
        this.y = y;
        this.count = count;
    }
}


// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            int n = 10;
            char[][] arr = new char[n][n];
            // 标记遍历过的数组
            boolean[][] flg = new boolean[n][n];
            for (int i = 0; i < n; i++) {
                arr[i] = in.next().toCharArray();
            }

            System.out.println(bfs(arr, flg, n));
        }
    }

    public static int bfs(char[][] arr, boolean[][] flg, int n) {
        // 方向数组:下 右 左 上
        int[][] dir = {{1, 0}, {0, 1}, {0, -1}, {-1, 0}};
        // 用队列来实现,将起点 (0,1) 入队
        Queue<Position> queue = new LinkedList<>();
        queue.offer(new Position(0, 1, 0));

        // 广度优先遍历
        while (!queue.isEmpty()) {
            // 弹出坐标,然后标记坐标
            // 并将与该坐标连接的其他坐标(下右左上)也添加进队列中
            Position position = queue.poll();


            // 标记该坐标
            flg[position.x][position.y] = true;

            if (position.x == 9 && position.y == 8) {
                // 此时就说明找到了最短路径
                return position.count;
            }
            // 添加下,右,左,上 四个下标
            for (int i = 0; i < 4; i++) {
                Position next = new Position(position.x + dir[i][0], position.y + dir[i][1], position.count + 1);

                // 如果 next 坐标合法,并且没有遍历过,并且是通路,那么就将下标入队
                if (next.x >= 0 && next.x < n && next.y >= 0 && next.y < n &&
                        !flg[next.x][next.y] && arr[next.x][next.y] == '.')
                    queue.offer(next);
            }
        }
        return 0;
    }
}

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

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

相关文章

人工智能时代,程序员如何保持核心竞争力,不会一觉醒来,被自己写的代码淘汰了 ≧ ﹏ ≦

随着AIGC&#xff08;人工智能生成内容&#xff09;技术的飞速发展&#xff0c;尤其是像ChatGPT、Midjourney、Claude等大语言模型的崛起&#xff0c;人工智能正以前所未有的速度渗透到编程领域&#xff0c;彻底改变了程序员的工作方式。这一变革既带来了挑战&#xff0c;也孕育…

2024/08 近期关于AI的阅读和理解[笔记]

#Cohere 就像商业能力很强的云数仓公司 Snowflake 一样&#xff0c;Cohere 也采用了按需付费模式而不是按月或按年付费&#xff0c;而且它的付费模式很精细。Cohere 按照模型的不同能力&#xff0c;包括文本生成&#xff0c;文本总结&#xff0c;重新排名&#xff0c;文本分类…

pikachu文件下载

一&#xff1a;简介 在许多 web 系统中都有文件下载功能&#xff0c;点击下载链接会向后台发送含文件名的下载请求&#xff0c;后台收到后执行下载代码将对应文件返回给浏览器完成下载。若后台收到文件名后直接拼进下载路径而不做安全判断&#xff0c;可能引发不安全的文件下载…

【楚怡杯】职业院校技能大赛 “Python程序开发”赛项样题四

一、竞赛任务概述 本赛项包括“网络爬虫”、“数据清洗”、“数据分析与可视化”、“机器学习”4个竞赛任务&#xff0c;各任务分值分别为15分、30分、35分、20分&#xff0c;本赛项满分为100分。 二、注意事项 1.请根据大赛所提供的竞赛环境&#xff0c;检查所列的硬件设备…

2024最新版Python基础入门学习路线

Python基础入门学习路线可以概括为以下几个阶段&#xff0c;每个阶段都包含了关键的学习内容和目标&#xff1a; 一、Python语言基础 1. 初识Python语言 Python语言概述&#xff1a;了解Python的起源、特点、应用领域以及发展趋势。环境安装&#xff1a;学习如何在不同的操作系…

Web API 渗透测试指南

概述 API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&#xff09;是一个允许不同软件应用程序之间进行通信和数据交换的接口。API定义了一组规则和协议&#xff0c;软件开发者可以使用这些规则和协议来访问操作系统、库、服务或其他应用程序的…

【HarmonyOS NEXT星河版开发学习】小型测试案例02-华为登录

个人主页→VON 收录专栏→鸿蒙开发小型案例总结​​​​​ 基础语法部分会发布于github 和 gitee上面&#xff08;还未发布&#xff09; 前言 通过此案例&#xff0c;不得不感叹鸿蒙的强大了&#xff0c;仅仅使用了26行代码就构建出来了这个界面&#xff0c;确实特别方便&#…

k8s-service暴露pod

service暴露pod----nginx 1.编写nginx-deployment.yaml文件 [rootk8s-master deployment]# vim nginx-deployment.yaml [rootk8s-master deployment]# cat nginx-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: deployment namespace: default s…

二进制部署Mysql8.0.31

一、软件包下载 企业版&#xff1a;Enterprise , 互联网行业一般不选择.社区版本&#xff1a;选择源码包 编译安装&#xff1a; source code .tar.gz 通用二进制 公司用什么版本数据库? 具体什么小版本号? 5.6.20 5.6.34 5.6.36 5.6.38 5.6.40 5.7.18 5.7.20 5…

【初阶数据结构】详解顺序表(上)

文章目录 1. 数据结构2. 顺序表2.1 顺序表的概念及结构2.1.1 线性表2.1.2 顺序表与数组的差别 2.2 顺序表的分类2.2.1 静态顺序表2.2.2 动态顺序表 2.3 静态顺序表和动态顺序表的区别 在学完C语言的知识后&#xff0c;我们也该跨入到学习数据结构的领域中来。毕竟学习语法是为解…

带风扇工业电脑行业分析:预计2030年全球市场规模将达到45.8亿美元

工业电脑是用于工业用途&#xff08;生产产品和服务&#xff09;的计算机&#xff0c;其外形尺寸介于上网本和服务器机架之间。工业电脑的可靠性和精度标准更高&#xff0c;价格通常比消费电子产品更昂贵。它们通常使用复杂的指令集&#xff0c;例如 x86&#xff0c;而其他指令…

用的到linux-tomcat端口占用排查-Day5

前言&#xff1a; 最近使用tomcat搭建了一套测试环境的应用&#xff0c;整个搭建过程也很简单&#xff0c;就是将部署包上传至服务器☞解压☞启动tomcat服务器&#xff0c;当然服务器也是成功启动了&#xff0c;但是发现前端应用报404&#xff0c;具体如下图所示。 一、现象及思…

新手买智能猫砂盆怎样不踩雷?三大热门款测评推荐!

上班族养猫最害怕的就是&#xff0c;辛苦一天回到家&#xff0c;发现家里弥漫着猫便便的味道和满盆的猫屎&#xff0c;满地的猫砂&#xff0c;就感觉整个人都绝望了&#xff0c;你们现在是不是这样&#xff1f;以前的我真是为了解决这个问题想破了脑袋&#xff0c;后面才了解到…

电话营销机器人革新电销行业

第一&#xff0c;减少企业各方面的支出 企业需要各方面的支出。例如&#xff0c;招聘成本和管理成本、员工薪资和社保都是非常大的支出。但AI智能电销机器人&#xff0c;只要购买费用和电话费的一小部分&#xff0c;就没有更多的费用。经计算&#xff0c;该机器人的成本仅相当于…

java之静态内部类

1.什么是静态内部类 答:静态内部类是一种特殊的成员内部类 2.直接创建静态内部类对象的方式? Outer.Inner oinew Outer.Inner(); public class Outer {int a10;static int b20;static class Inner{public void show1(){System.out.println("非静态里的方法被调用了&qu…

【Qt】探索Qt网络编程:构建高效通信应用

文章目录 前言&#xff1a;1. Qt 网络编程介绍1.1 什么是网络编程&#xff1f;1.2 Qt的模块 2. UDP Socket2.1 核心 API 概述2.2 写一个带有界面的 Udp 回显服务器2.3 写一个带有界面的 Udp 客户端 3. TCP Socket3.1 核心 API 概述3.2 代码&#xff1a; 4. HTTP Client4.1 核心…

基于InP的通用光子集成技术(五)

Meint Smit et al 2014 Semicond. Sci. Technol. 29 083001 9.通用测试 9.1. 晶圆验证 在通用工艺中&#xff0c;必须对每批次晶片的工艺性能进行验证&#xff1b;客户将期待这样的验证。在MPW中&#xff0c;验证用户ASPIC工艺性能是不实际的&#xff1b;每个ASPIC都需要不同的…

Shopee巴西站点凭直播带货超越亚马逊,shopee巴西站热销类目有哪些?

巴西电商市场加速增长&#xff0c;被誉为跨境最后一个蓝海市场&#xff0c;吸引了众多卖家和电商平台的关注。在这一片潜力无限的热土上&#xff0c;有人隔岸观火等待时机&#xff1b;有人却果断迈步积极探索。东南亚及台湾地区的领航电商平台Shopee平台&#xff0c;在巴西强势…

【Python机器学习】利用AdaBoost元算法提高分类性能——在数据集上应用AdaBoost

在之前用过的马疝病数据集上应用AdaBoost。 在一个难数据集上的AdaBoost应用步骤&#xff1a; 1、收集数据&#xff1a;提供的文本文件 2、准备数据&#xff1a;确保类别标签是1河-1而不是1和0 3、分析数据&#xff1a;手工检查数据 4、训练算法&#xff1a;在数据上&#xff…

java-面向对象综合练习

1、文字格斗回合制游戏 需求: 格斗游戏&#xff0c;每个游戏角色的姓名&#xff0c;血量&#xff0c;都不相同&#xff0c;在选定人物的时候&#xff08;new对象的时候&#xff09;&#xff0c;这些信息就应该被确定下来。 举例&#xff1a; 程序运行之后结果为&#xff1a…