在计算机网络中,TCP和UDP协议的相似之处是()
A.面向非连接的协议
B.面向连接的协议
C.其余选项都不对
D.传输层协议
答案:D
在 OSI 参考模型中能实现路由选择,拥塞控制与互联功能的层是()
A.物理层
B.网络层
C.数据链路层
D.应用层
答案:B
在TCP/IP中,ICMP属于哪一层协议?
A.IP
B.PPP
C.UDP
D.TCP
答案:A
在发送TCP接收到确认ACK之前,由其设置的重传计时器到时,这时发送TCP会()
A.重传重要的数据段
B.放弃该连接
C.调整传送窗口尺寸
D.向另一个目标端口重传数据
答案:A
下列哪项最恰当地描述了建立TCP连接时“第一次握手”所做的工作()
A.“连接发起方”向“接收方”发送一个SYN-ACK段
B.“接收方”向“连接发起方”发送一个SYN-ACK段
C.“连接发起方”向目标主机的TCP进程发送一个SYN段
D.“接收方”向源主机得到TCP进程发送一个SYN段作为应答
答案:C
关于以下 URL 的描述错误的是()
A.http表明使用TCP协议
B.又名统一资源定位符,方便确定一个资源,并表示它在哪里
C.URL中隐藏了端口号,默认是80端口
D.访问URL可使用大写字母
答案:A
不属于交换机攻击的是()
A.目录遍历攻击
B.MAC泛洪攻击
C.VLAN攻击
D.DHCP欺骗攻击
答案:A
在下面给出的协议中,()是TCP/IP的应用层协议
A.ARP和FTP
B.DNS和SMTP
C.RARP和DNS
D.ICMP和IGMP
答案:B
IP地址块为211.168.15.192/26、211.168.15.160/27和211.168.15.128/27三个地址块经聚合后可用地址数为()
A.126
B.62
C.128
D.68
答案:A
以下不是合法HTTP请求方法的是()
A.GET
B.SET
C.HEAD
D.PUT
答案:B
红与黑
链接:红与黑__牛客网
来源:牛客网
有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的(上下左右四个方向)黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。
输入描述:
输入包含多组数据。
每组数据第一行是两个整数 m 和 n(1≤m, n≤20)。紧接着 m 行,每行包括 n 个字符。每个字符表示一块瓷砖的颜色,规则如下:
1. “.”:黑色的瓷砖;
2. “#”:白色的瓷砖;
3. “@”:黑色的瓷砖,并且你站在这块瓷砖上。该字符在每个数据集合中唯一出现一次。
输出描述:
对应每组数据,输出总共能够到达多少块黑色的瓷砖。
示例1
输入
9 6
....#.
.....#
......
......
......
......
......
#@...#
.#..#.
输出
45
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int m = sc.nextInt(); int n = sc.nextInt(); sc.nextLine(); Character[][] map = new Character[m][n]; Node start = null; for (int i = 0; i < m; i ++ ) { String s = sc.nextLine(); for (int j = 0; j < n; j ++ ) { map[i][j] = s.charAt(j); if(s.charAt(j) == '@') start = new Node(i, j); } } int[][] direction = {{0, 1}, {0, - 1}, {1, 0}, { - 1, 0}}; bfs(map, direction, start); } } public static void bfs(Character[][] map, int[][] direction, Node start) { Queue<Node> queue = new LinkedList<Node>(); boolean[][] visited = new boolean[map.length][map[0].length]; queue.add(start); visited[start.x][start.y] = true; int count = 1; while ( ! queue.isEmpty()) { Node cur = queue.poll(); for (int i = 0; i < 4; i ++ ) { Node next = new Node(cur.x + direction[i][0], cur.y + direction[i][1]); if(next.x >= 0 && next.x < map.length && next.y >= 0 && next.y < map[0].length && map[next.x][next.y] != '#' && ! visited[next.x][next.y]) { count ++ ; queue.add(next); visited[next.x][next.y] = true; } } } System.out.println(count); } static class Node { int x; int y; public Node(int x, int y) { this.x = x; this.y = y; } } }
蘑菇阵
题目描述:现在有两个好友A和B,住在一片长有蘑菇的由n*m个方格组成的草地,A在(1,1),B在(n,m)。现在A想要拜访B,由于她只想去B的家,所以每次她只会走(i,j+1)或(i+1,j)这样的路线,在草地上有k个蘑菇种在格子里(多个蘑菇可能在同一方格),问:A如果每一步随机选择的话(若她在边界上,则只有一种选择),那么她不碰到蘑菇走到B的家的概率是多少?
输入描述:第一行N,M,K(1 ≤ N,M ≤ 20, k ≤ 100),N,M为草地大小,接下来K行,每行两个整数x,y,代表(x,y)处有一个蘑菇。
输出描述:输出一行,代表所求概率(保留到2位小数)
public class Main61 { public static double sover(int[][] map,int n,int m){ double[][] dp=new double[n+1][m+1]; dp[1][1]=1.0; for (int i = 1; i <= n; ++i) { for (int j = 1; j <= m; ++j) { if ( !(i==1 && j==1)){ dp[i][j]=dp[i-1][j]*(j==m ? 1.0:0.5)+dp[i][j-1]*(i==n? 1.0:0.5); } //(i,j)位置可能是蘑菇 if (map[i][j]==1){ dp[i][j]=0.0; } } } //返回到B家不遇到蘑菇的概率 return dp[n][m]; } public static void main(String[] args) { Scanner scanner=new Scanner(System.in); while (scanner.hasNext()){ //构造地图 int n=scanner.nextInt(); int m=scanner.nextInt(); int[][] map=new int[n+1][m+1]; //放置蘑菇 int k=scanner.nextInt(); while ( 0 !=k){ int x=scanner.nextInt(); int y=scanner.nextInt(); map[x][y]=1; k--; } //计算从A家到B家不遇到蘑菇的概率 System.out.printf("%.2f\n",sover(map,n,m)); } } }