Java面向对象编程

下面是一个http请求:
GET /baidu/blog/item/6605d1b4eb6433738ad4b26d.html HTTP/1.1
Host: hi.baidu.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://hi.baidu.com/baidu
Cookie: BAIDUID=AFB70E986AC48B336ABAB7505CDD1C76;
下面关于 Host、User-Agent、Accept-Charset、Connection、Referer、Cookie描述错误的是()

A. Host: HTTP服务器的IP地址或者域名

B. User-Agent: 告诉HTTP服务器, 客户端使用的操作系统和浏览器的名称和版本.

C. Accept-Charset:浏览器申明自己接收的字符集,这就是本文前面介绍的各种字符集和字符编码,如gb2312,utf-8

D. Cookie: 它记录了服务器的相关的一些信息

E. Referer: 提供了Request的上下文信息的服务器,告诉服务器我是从哪个链接过来的

答案:D

常见的http错误描述原因错误的是()

A. 404-Not found(没有找到)

B. 302-临时重定向

C. 500-内部服务器错误

D. 403- IP address rejected

答案:D

Linux 中,要使用 tcpdump 监听网卡 eth0,对方主机 IP 为 10.1.1.180,TCP 端口为 80,则正确的命令为()

A. tcpdump -h eth0 -nn 'tcp and host 10.1.1.180:80'

B. tcpdump -i eth0 -nn 'tcp and host 10.1.1.180:80'

C. tcpdump -h eth0 -nn 'tcp and port 80 and host 10.1.1.180'

D. tcpdump -i eth0 -nn 'tcp and port 80 and host 10.1.1.180'

答案:D

网络地址172.16.22.38/28 请写出此地址的子网ID以及广播地址,此地址所处子网可用主机数()

A. 172.16.22.32 172.16.22.255 12

B. 172.16.22.32 172.16.22.47 16

C. 172.16.22.32 172.16.22.255 15

D. 172.16.22.32 172.16.22.47 14

答案:D

tcp三次握手的过程,accept发生在三次握手哪个阶段()

A. 第一次握手

B. 第二次握手

C. 第三次握手

D. 三次握手后

答案:D

Linux中,一个端口能够接受tcp链接数量的理论上限是()

A. 1024

B. 65535

C. 65535 * 65535

D. 无上限

答案:D

TCP报文首部信息中与关闭连接有关的是()

A. URG

B. ACK

C. SYN

D. FIN

答案:D

10.1.0.1/17的广播地址是( )

A. 10.1.128.255

B. 10.1.63.255

C. 10.1.127.255

D. 10.1.126.255

答案:C

随着IP网络的发展,为了节省可分配的注册IP地址,有一些地址被拿出来用于私有IP地址,以下不属于私有IP地址范围的是()

A. 10.6.207.84

B. 172.23.30.28

C. 172.32.50.80

D. 192.168.1.100

答案:C

int listen(SOCKET s, int backlog);该函数中第二个参数的含义是?

A. 是否打开log信息

B. 是否打开后台log信息

C. 后台等待连接队列的最大限制值

D. 后台等待连接队列的最小限制值

E. 无意义

答案:C

左右最值最大差
题目描述:给定一个长度为N(N>1)的整型数组A,可以将A划分成左右两个部分,左部分A[0..K],右部分A[K+1..N-1],K可以取值的范围是[0,N-2]。求这么多划分方案 中,左部分中的最大值减去右部分最大值的绝对值,最大是多少? 
给定整数数组A和数组的大小n,请返回题目所求的答案。
 
   
public class MaxGap {

    //左右最值最大差

    public int findMaxGap(int[] A,int n){

        int mx=A[0];

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

            mx=Math.max(mx,A[i]);

        }

        return mx-Math.min(A[0],A[n-1]);

    }

}
顺时针打印矩阵
题目描述:对于一个矩阵,请设计一个算法从左上角(mat[0][0])开始,顺时针打印矩阵元素。 
给定int矩阵mat,以及它的维数nxm,请返回一个数组,数组中的元素为矩阵元素的顺时针输出。
 
   
public class Printer {

    //顺时针打印矩阵

    public int[] clockwisePrint(int[][] mat, int n, int m) {

        //左上角坐标

        int x1 = 0;

        int y1 = 0;

        //左下角坐标

        int x2 = n - 1;

        int y2 = m - 1;

        int[] arr = new int[n * m];

        int idx = 0;

        while (x1 <= x2 && y1 <= y2) {

            //第一行:x1,y1~y2

            for (int i = y1; i <= y2; ++i) {

                arr[idx++] = mat[x1][i];

            }

            //最后一列:x1+1~x2,y2

            for (int i = x1 + 1; i <= x2; ++i) {

                arr[idx++] = mat[i][y2];

            }

            //最后一行:x2,y2-1,y1---->x1 < x2

            if (x1 < x2) {

                for (int i = y2 - 1; i >= y1; --i) {

                    arr[idx++] = mat[x2][i];

                }

            }

            //第一列:x2-1~x1+1,y1---->y1if (y1 < y2) {

                for (int i = x2 - 1; i > x1; --i) {

                    arr[idx++] = mat[i][y1];

                }

            }

            x1++;

            y1++;

            x2--;

            y2--;

        }

        return arr;

    }

}
Fibonacci数列
题目描述:Fibonacci数列是这样定义的:
F[0]=0
F[1]=1
for each i ≥ 2:F[]=F[ i-1]+F[i-2]
因此,Fibonacci数列就形如:0,1,1,2,3,5,8,13...,在Fibonacc数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数。
输入描述:输入为一个正整数N(1≤N≤1,000,000)
输出描述:输出一个最小的步数变为Fibonacci数"
 
   
public class Main79 {

    //Fibonacci数列

    public static void main(String[] args) {

        Scanner scanner=new Scanner(System.in);

        int n=scanner.nextInt();

        int f1=0;

        int f2=1;

        while (f2<n){

            int f3=f1+f2;

            f1=f2;

            f2=f3;

        }

        //循环结束f1int min=Math.min(n-f1,f2-n);

        System.out.println(min);

    }

}
 
  

你可能感兴趣的:(操作系统哪些事?,java要笑着学,java,开发语言)