Java面向对象编程

下面关于synflood攻击的说法,错误的是()

A. 服务端由于连接队列被占满而不能对外服务

B. 不但能攻击TCP服务,还可以攻击UDP服务

C. 大量连接处于SYN_RECV状态

D. 使用硬件防火墙可以一定程度上抵御攻击

答案:B

A,B两台机器都正常工作,B机器未监听任何端口.如果A机器向B机器80端口发送SYN包,会收到何种类型的回包()

A. ACK包

B. FIN包

C. 不会收到回包

D. RST包

答案:D

下列哪个IP地址可以分配给一台计算机()

A. 256.1.3.4

B. 197.3.11.0

C. 199.5.89

D. 11.15.33.235

答案:D

以下哪个ip不和10.11.12.91/28处于同一个子网()

A. 10.11.12.85/28

B. 10.11.12.88/28

C. 10.11.12.94/28

D. 10.11.12.97/28

答案:D

假设在x86平台上,有一个int型变量,在内存中的内部由低到高分别是:0x12,0x34,0x56,0x78当通过网络发送该数据时,正确的发送顺序是()

A. 0x12,0x34,0x56,0x78

B. 0x78,0x56,0x34,0x12

C. 0x34,0x12,0x78,0x56

D. 0x56,0x78,0x12,0x34

答案:B

某学校获取到一个B类地址段,要给大家分开子网使用,鉴于现在上网设备急剧增多,管理员给每个网段进行划分的子网掩码设置为255.255.254.0,考虑每个网段需要有网关设备 占用一个地址的情况下,每个网段还有多少可用的主机地址()

A. 509

B. 511

C. 512

D. 510

答案:A

下列哪个地址不可能是子网掩码()

A. 255.224.0.0

B. 255.255.240.0

C. 255.255.255.248

D. 255.255.255.250

答案:D

当我们在局域网内使用ping www.nowcoder.com时,哪种协议没有被使用()

A. ICMP

B. ARP

C. DNS

D. TCP

答案:D

从浏览器打开 http://www.sohu.com ,TCP/IP协议族中不会被使用到的协议是()

A. SMTP

B. HTTP

C. TCP

D. IP

答案:A

某公司申请到一个C类IP地址,但要连接6个的子公司,最大的一个子公司有26台计算机,每个子公司在一个网段中,则子网掩码应设为()

A. 255.255.255.192

B. 255.255.255.128

C. 255.255.255.0

D. 255.255.255.224

答案:D

求和
题目描述:输入两个整数 n 和 m,从数列1,2,3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来 
输入描述:每个测试输入包含2个整数,n和m 
输出描述:按每个组合的字典序排列输出,每行输出一种组合
 
   
public class Main70 {

    //求和

    public static void main(String[] args) {

        Scanner scanner=new Scanner(System.in);

        int n,m;

        while (scanner.hasNextInt()){

            n=scanner.nextInt();

            m=scanner.nextInt();

            ArrayList<Integer> arr=new ArrayList<>();

            int curSum=0;

            getSum(arr,1,curSum,n,m);

        }

    }



    public static void getSum(ArrayList<Integer> arr,int pos,int cutSum,int n,int dest){

        //判断当前和是否大于等于dest

        if (cutSum>=dest){

            //判断当前和是否正好等于dest

            if (cutSum == dest){

                for (int i = 0; i < arr.size()-1; ++i) {

                    System.out.println(arr.get(i)+" ");

                }

                System.out.println(arr.get(arr.size()-1));

            }

            return;

        }

        //继续累加:从小到大累加

        for (int i = pos; i <= n; ++i) {

            //保存当前数据

            arr.add(i);

            getSum(arr,i+1,cutSum+i,n,dest);

            //尝试累加其他数据,删除当前数据

            arr.remove(arr.size()-1);

        }

    }

}
电话号码
 
   
题目描述: 上图是一个电话的九宫格,如你所见一个数字对应一些字母,因此在国外企业喜欢把电话号码设计成与自己公司名字相对应。例如公司的Help Desk号码是 4357,因为4对应H、3对应E、5对应L、7对应P,因此4357就是HELP。同理,TUT-GLOP就代表888-4567、310-GINO代表310-4466。 NowCoder刚进入外企,并不习惯这样的命名方式,现在给你一串电话号码列表,请你帮他转换成数字形式的号码,并去除重复的部分。 
输入描述:输入包含多组数据。 
每组数据第一行包含一个正整数n(1≤n≤1024)。 
紧接着n行,每行包含一个电话号码,电话号码仅由连字符“-”、数字和大写字母组成。 
没有连续出现的连字符,并且排除连字符后长度始终为7(美国电话号码只有7位)。 
输出描述:对应每一组输入,按照字典顺序输出不重复的标准数字形式电话号码,即“xxx-xxxx”形式。 
每个电话号码占一行,每组数据之后输出一个空行作为间隔符。
 
   
public class Main71 {

    //电话号码

    public static void main(String[] args)throws Exception {

        //建立映射

        HashMap<Character,Character> mp=new HashMap<>();

        String alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ";

        String num="22233344455566677778889999";

        char[] alphaArr=alpha.toCharArray();

        char[] numArr=num.toCharArray();



        for (int i = 0; i < alphaArr.length; ++i) {

            mp.put(alphaArr[i],numArr[i]);

        }

        //set保存结果,去重

        TreeSet<String> set=new TreeSet<>();

        String line;

        BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));

        while ((line=reader.readLine()) !=null){

            set.clear();

            int n=Integer.parseInt(line);

            //处理n 个字符串

            for (int i = 0; i < n; ++i) {

                line=reader.readLine();

                //保存转换之后的字符串

                StringBuilder sb=new StringBuilder();

                char[] arr=line.toCharArray();

                //处理每一个字符

                for (char ch: arr) {

                    if (isDigit(ch)){

                        sb.append(ch);

                    }else if (isUpper(ch)){

                        sb.append(mp.get(ch));

                    }

                }

                //调整格式:xxx-xxxx

                line=sb.substring(0,3)+"-"+sb.substring(3);

                //保存结果

                set.add(line);

            }

            //打印转换之后的结果

            for (String str:set) {

                System.out.println(str);

            }

            //每组数据用空格隔开

            System.out.println();

        }

    }



    public static boolean isDigit(char ch){

        return '0' <=ch && ch <= '9';

    }



    public static boolean isUpper(char ch){

        return 'A'<=ch && ch<='Z';

    }

}

你可能感兴趣的:(java要笑着学,操作系统哪些事?,linux,运维,服务器,网络,java)