Java面向对象编程(42)

简介: Java面向对象编程(42)

下面关于IP地址的论述中哪个是不正确的()

A.用户主机的IP地址可静态分配也可以动态分配

B.IP地址有单播地址,也有多播地址

C.一个用户主机只能有一个IP地址

D.在以太局域网中使用ARP协议查找与一IP地址对应的MAC地址

答案:C

tcp套接字中,不会阻塞的是哪一种操作()

A.read

B.write

C.accept

D.bind

答案:D

以下几条路由,10.1.193.0/24,10.1.194.0/24,10.1.196.0/24,10.1.198.0/24,如果进行路由汇聚,则能覆盖这几条路由地址的是()

A.10.1.192.0/22

B.10.1.200.0/22

C.10.1.192.0/21

D.10.1.224.0/20

答案:C

当一台 PC从一个网络移到另一个网络时,以下说法正确的是()

A.它的 IP 地址和 MAC 地址都会改变

B.它的 IP 地址会改变,MAC 地址不会改变

C.它的 MAC 地址会改变,IP 地址不会改变

D.它的 MAC 地址、IP 地址都不会改变

答案:B

在TCP/IP建立连接过程中,客户端或服务器的状态转移说法错误的是()

A.经历SYN_RECV状态

B.经历SYN_SEND状态

C.经历ESTABLISHED状态

D.经历TIME_WAIT状态

答案:D

ping命令是基于哪个协议()

A.ICMP

B.TCP

C.IP

D.UDP

答案:A

下面关于TCP的描述,错误的是()

A.TCP是一种面向连接的协议,给用户进程提供可靠的全双工的字节流

B.TCP客户端和服务器之间建立连接需要经过3次握手

C.只要有一方主动关闭连接后,这个TCP连接就结束了

D.TCP在传输数据过程中必须保持着连接,这个连接会给通信过程增加开销

答案:C

如果将网络IP段40.15.128.0/17划分成2个子网,则第一个子网IP段为40.15.128.0/18,则第二个子网为()

A.40.15.129.0/18

B.40.15.128.128/18

C.40.15.192.0/17

D.40.15.192.0/18

答案:D

下面对Host文件描述正确的是()

A.这个文件是批处理文件,用来指定域名的访问IP

B.一个DNS域名解析服务器文件,用于解析域名对应的IP地址

C.作用是网址域名与其对应的IP地址建立一个关联"数据库"

D.当用户输入网址后,系统首先到DNS服务器中寻找对应的IP地址,如果不存在会到Host文件中确定最终访问地址

答案:C

下列选项中,属于"10.174.20.176/28"该网段的有效IP地址是()

A.10.174.20.174

B.10.174.20.186

C.10.174.20.191

D.10.174.20.192

答案:B

解读密码

题目描述: nowcder要和朋友交流一些敏感的信息,例如他的电话号码等。因此他要对这些敏感信息进行混淆,比如在数字中间掺入一些额外的符号,让它看起来像一堆乱码。

现在请你帮忙开发一款程序,解析从nowcoder那儿接收到的信息,读取出中间有用的信息。

输入描述:输入有多行。

每一行有一段经过加密的信息(其中可能包含空格),并且原始信息长度不确定。

输出描述:输出每段信息中数字信息。

 

public class Main68 {
    //解读密码
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        while (scanner.hasNext()){
            String strCode=scanner.nextLine();
            StringBuilder str=new StringBuilder();
            for (int i = 0; i < strCode.length(); ++i) {
                char ch=strCode.charAt(i);
                if (ch>='0' && ch<='9'){
                    str.append(ch);
                }
            }
            System.out.println(str);
        }
    }
}

解读密码


题目描述:

nowcoder要和朋友交流一些敏感的信息,例如他的电话号码等。因此他要对这些敏感信息进行混淆,比如在数字中间掺入一些额外的符号,让它看起来像一堆乱码。

现在请你帮忙开发一款程序,解析从nowcoder那儿接收到的信息,读取出中间有用的信息。

输入描述:

输入有多行。


每一行有一段经过加密的信息(其中可能包含空格),并且原始信息长度不确定。

输出描述:

输出每段信息中数字信息。

输入:

$Ts!47&*s456  a23* +B9k

输出:

47456239

import java.util.Scanner;
import java.util.Stack;
public class Main {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        while (scanner.hasNextLine()){
            String str=scanner.nextLine();
            Stack<Character> stack=new Stack<>();
            for (int i = 0; i < str.length(); i++) {
                //入栈
                stack.push(str.charAt(i));
            }
            StringBuilder stringBuilder=new StringBuilder();
            for (int i = 0; i < str.length(); i++) {
                if (findIndex(str.charAt(i))){
                    stringBuilder.append(str.charAt(i));
                }
            }
            System.out.println(stringBuilder.toString());
        }
    }
    public static boolean findIndex(char ch){
        if (ch>='0' && ch<='9'){
            return true;
        }
        return false;
    }
}
//$Ts!47&*s456  a23* +B9k
//47456239

走迷宫

题目描述:NowCoder最喜欢游乐场的迷宫游戏,他和小伙伴们比赛谁先走出迷宫。

现在把迷宫的地图给你,你能帮他算出最快走出迷宫需要多少步吗?

输入描述:输入包含多组数据。

每组数据包含一个10*10,由“#"和"∵"组成的迷宫。其中“#"代表墙;“."代表通路。

入口在第一行第二列;出口在最后一行第九列。

从任意一个“."点都能一步走到上下左右四个方向的“."点。

输出描述:对应每组数据,输出从入口到出口最短需要几步。


class Position {
    int x;
    int y;
    int level; //表示从入口到(x,y)所走的步数
    public Position(int x, int y, int level) {
        this.x = x;
        this.y = y;
        this.level = level;
    }
}
public class Main69 {
    //走迷宫
    public static int bfs(String[] map, int m, int n) {
        //方向数组  下 右 右 上
        int[][] direct = {{1, 0}, {0, 1}, {0, -1}, {-1, 0}};
        //迷宫的入口和出口
        Position enter = new Position(0, 1, 0);
        Position out = new Position(9, 8, 0);
        //给出走过路径的标记数组
        boolean[][] flag = new boolean[m][n];
        //采用广度优先遍历方式来走迷宫
        Queue<Position> q = new LinkedList<>();
        q.offer(enter);
        while ( !q.isEmpty()) {
            Position cur = q.poll();
            //遍历该位置----实际就是将该位置进行标记
            flag[cur.x][cur.y] = true;
            //如果cur在出口的位置,说明最短路径找到了
            if (cur.x == out.x && cur.y == out.y) {
                return cur.level;
            }
            //向cur的四个方向进行遍历
            for (int i = 0; i < 4; ++i) {
                Position next = new Position(cur.x + direct[i][0],
cur.y + direct[i][1],cur.level + 1);
                //检测next放下是否可以移动
                //检测next坐标是否合法
                //如果next位置是通路
                //该位置是否走过
                if (next.x >= 0 && next.x < m && next.y >= 0 && 
next.y< n &&map[next.x].charAt(next.y) == '.'
&& !flag[next.x][next.y]) {
                    q.offer(next);
                }
            }
        }
        return 0;
    }
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            //接收迷宫地图数据
            String[] map = new String[10];
            for (int i = 0; i < 10; ++i) {
                map[i] = scanner.nextLine();
            }
            //使用广度右下遍历走迷宫找到最短的路径
            System.out.println(bfs(map, 10, 10));
        }
    }
}
相关文章
|
25天前
|
安全 Java 数据安全/隐私保护
|
2月前
|
Java 数据库连接 API
Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API
Java 是一种广泛使用的、面向对象的编程语言,始于1995年,以其跨平台性、安全性和可靠性著称,应用于从移动设备到数据中心的各种场景。基础概念包括变量(如局部、实例和静态变量)、数据类型(原始和非原始)、条件语句(if、else、switch等)、函数、循环、异常处理、数据结构(如数组、链表)和面向对象编程(类、接口、继承等)。深入学习还包括包、内存管理、集合框架、序列化、网络套接字、泛型、流、JVM、垃圾回收和线程。构建工具如Gradle、Maven和Ant简化了开发流程,Web框架如Spring和Spring Boot支持Web应用开发。ORM工具如JPA、Hibernate处理对象与数
94 3
|
2月前
|
Java
Java面向对象编程
Java面向对象编程
|
2月前
|
存储 Java
JAVA面向对象编程
JAVA面向对象编程
|
2月前
|
Java
Java中的面向对象编程特性(封装、继承、多态)
Java中的面向对象编程特性(封装、继承、多态)
|
3月前
|
设计模式 Java 程序员
Java中面向对象编程的实现
Java中面向对象编程的实现
|
3月前
|
存储 Java
深入解析 Java 面向对象编程与类属性应用
面向对象编程 (OOP) 是一种编程范式,它将程序组织成对象。对象包含数据和操作数据的方法。 OOP 的优势: 更快、更易于执行 提供清晰的结构 代码更易于维护、修改和调试 提高代码重用性 减少开发时间
65 0
|
4月前
|
Java 编译器
【Java不看后悔系列】|面向对象编程|[继承、封装、多态全覆盖]
【Java不看后悔系列】|面向对象编程|[继承、封装、多态全覆盖]
18 0
|
4月前
|
Java 编译器
【JAVA面向对象编程】--- 探索子类如何继承父类
【JAVA面向对象编程】--- 探索子类如何继承父类
19 0
|
4月前
|
Java 编译器
【JAVA杂货铺】一文带你走进面向对象编程|继承|重载|重写|期末复习系列 | (中4)
【JAVA杂货铺】一文带你走进面向对象编程|继承|重载|重写|期末复习系列 | (中4)
22 0