笔试强训(四十一)

一、选择题

(1)某主机的IP地址为180.80.77.55,子网掩码为255.255.252.0.若该主机向其所在子网发送广播分组,则目的地址可以是(D)
A.180.80.76.0
B.180.80.76.255
C.180.80.77.255
D.180.80.79.255

广播地址的主机号全为1,根据子网掩码得到前22位为网络号,后10位为主机号,因此将180.80.77.55的后10位全部改为1则得到广播地址

(2)下列关于路由器功能的描述中,正确的是(C)

  1. 运行路由协议,设置路由表
  2. 监测到拥塞时,合理丢弃IP分组
  3. 对收到的IP分组头进行差错控制,确保传输的IP分组不丢失
  4. 根据收到的IP分组的目的IP地址,将其转发到合适的输出路线上
    A.3.4
    B.1.2.3
    C.1.2.4
    D.1.2.3.4

差错检测已经由数据链路层实现,IP层没必要再进行一次校验

(3)主机甲和主机乙之间建立一个TCP连接,TCP最大报文段的长度是1000字节,当主机甲的当前拥塞窗口为4000字节,在主机甲和主机乙连续发送两个最大的报文段后,成功接收到主机乙发送的第一个段的确认段,确认段中通告的接收窗口的大小为2000字节,则此时主机甲还可以向主机乙发送的最大字节数是(A)
A.1000
B.2000
C.3000
D.4000

发送窗口=min{拥塞窗口,接收窗口},也就是min{4000,2000},为2000B,由于还未收到第二个最大段的确认,也就是主机乙还要为第二个报文段预留1000B的空间,所以此时主机甲还可以主机乙发送的最大字节数为2000-1000=1000

(5)某网络的IP地址空间为192.168.5.0,采用定长子网划分,子网掩码为255.255.255.248,则该网络的最大子网数、每个子网内的最大可分配地址个数为(B)
A.32,8
B.32,6
C.8,32
D.8,30

IP地址由网络号+子网号+主机号
由192.168.5.0可知为C类地址,由255.255.255.248可知将C类地址的主机号的前5位作为了子网号,所以子网的个数为32,每个子网内最大可分配地址个数为8-2=6

二、编程题

2.1 Emacs计算器

2.1.1 题目

在这里插入图片描述

2.1.1 题解

思路:借助栈辅助计算

  1. 遍历所给的字符串,遇到数字字符串,将该数字转成整数后入栈
  2. 遇到操作符时,从栈顶取两个数字,进行该操作符所对应的运算,将运算后的结果入栈
  3. 最后栈顶元素即为表达式结果

代码:

import java.util.*;
public class Main{
  public static void main(String[] args){
    Scanner scanner=new Scanner(System.in);
    while(scanner.hasNextInt()){
      int n=scanner.nextInt();
      Stack<Integer> stack=new Stack<>();
       for(int i=0;i<n;i++){
         String str=scanner.next();
         if(!(str.equals("+") ||str.equals("-") ||str.equals("*") ||str.equals("/") )){
            stack.push(Integer.parseInt(str)); 
         }else {
            int right=stack.pop();
            int left=stack.pop();
             switch(str.charAt(0)){
               case '+':
                   stack.push(left+right);
                 break;
               case '-':
                  stack.push(left-right);
                 break;
               case '*':
                 stack.push(left*right);
                 break;
               case '/':
                 stack.push(left/right);
                 break;
             }
         }
       }
      System.out.println(stack.peek());
    }
  }
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值