【C/C++笔试练习】TCP、IP广播、ARP协议、IP路由器、MAC协议、三次握手、TCP/IP、子网划分年、会抽奖、抄送列表

本文主要是介绍【C/C++笔试练习】TCP、IP广播、ARP协议、IP路由器、MAC协议、三次握手、TCP/IP、子网划分年、会抽奖、抄送列表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • C/C++笔试练习
  • 选择部分
    • (1)TCP
    • (2)IP广播
    • (3)ARP协议
    • (4)IP路由器
    • (5)MAC协议
    • (6)三次握手
    • (7)TCP/IP
    • (8)TCP
    • (9)TCP/IP
    • (10)子网划分
  • 编程题 day35
    • 年会抽奖
    • 抄送列表

C/C++笔试练习

选择部分

(1)TCP

  主机甲和乙已建立了TCP连接,甲始终以MSS=1KB大小的段发送数据,并一直有数据发送;乙每收到一个数据段都会发出一个接收窗口为10KB的确认段。若甲在t时刻发生超时时拥塞窗口为8KB,则从t时刻起,不再发生超时的情况下,经过10个RTT后,甲的发送窗口是()

  A.10KB
  B. 12KB
  C.14KB
  D.15KB

  答案:A

  1.把慢开始的门限值设为当前窗口的一半,即ssthresh=1/2*8KB=4KB

  2.把拥塞窗口cwnd设置为1个最大报文段MSS大小

  3.再次从慢启动阶段开始。发生拥塞后

  开始慢启动 cwnd=1KB,之后呈指数增长。

  经过1个RTT cwnd=2^1=2KB
  经过2个RTT cwnd=2^2=4KB,此时到达门限值ssthresh,之后 进入拥塞避免 阶段经过3个RTT cwnd=4+1=5KB,由于题目说之后一直都没有发生超时,cwnd会一直线性增长到接收窗口大小
  经过8个RTT cwnd=10KB,因为发送端不能超过接收端10,此后拥塞窗口一直保持cwnd=10KB.

  发送窗口大小=min(接收窗口,拥塞窗口)=10KB。

在这里插入图片描述

  

(2)IP广播

  某主机的IP地址为180.80.77.55,子网掩码为 255.255.252.0。若该主机向其所在子网发送广播分组,则目的地址可以是()

  A.180.80.76.0
  B. 180.80.76.255
  C.180.80.77.255
  D.180.80.79.255

  答案:D

  180.80.77.55

  77 :0100 1101

  1.子网掩码255.255.252.0 (即11111111.11111111.11111100.00000000)网络号为连续的1,主机号为连续的0,也就是10位。

  2.然后题目要发送广播分组,所以求的是广播地址,广播地址的主机位也是全为1, 所以主机2180.80.77.55所在的广播地址就是180.80.010011(11.11111111),括号里面的是主机号,主机号全为1就是广播地址,即180.80.79.255。

  

(3)ARP协议

  ARP协议的功能是()

  A.根据IP地址查询MAC地址
  B.根据MAC地址查询IP地址
  C.根据域名查询IP地址
  D.根据IP地址查询域名

  答案:A

  当一台设备知道对方的IP地址,不知道对方的MAC 地址时,启动ARP,发送ARP Request请求广播包到其他主机,收到广播包的主机查看,只有该请求的设备才会单播回答ARP Reply响应包。

  所以ARP协议本质上是用ip地址查询MAC地址的协议。

  

(4)IP路由器

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

  Ⅰ.运行路由协议,设置路由表
  Ⅱ.监测到拥塞时,合理丢弃IP分组
  Ⅲ.对收到的IP分组头进行差错校验,确保传输的IP分组不丢失
  Ⅳ、根据收到的IP分组的目的IP地址,将其转发到合适的输出线路上

  A.仅Ⅲ、 Ⅳ
  B.仅Ⅰ、Ⅱ、 Ⅲ
  C.仅Ⅰ、Ⅱ、Ⅳ
  D.Ⅰ、 Ⅱ、Ⅲ、Ⅳ

  答案:C

  IP层为什么不对数据部分进行差错校验?

  因为网络层是“尽最大努力完整的传输数据包”,差错检测已由数据链路层实现,IP层没必要再进行一次校验。

  优点就是,因为不负责差错检测和纠错,所以可获得较高的传输性能。

  缺点就是,因为IP层不负责差错检测,那么错误检测只能在传输层或应用层被发现,使纠正错误的时间增加了。

  

(5)MAC协议

  以太网的MAC协议提供的是()

  A.无连接不可靠服务
  B.无连接可靠服务
  C.有连接不可靠服务
  D.有连接可靠服务

  答案:A

  1.ICMP(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。

  2.ICMP协议的底层协议使用IP协议

  

(6)三次握手

  主机甲向主机乙发送一个(SYN=1,seq=11220)的TCP 段,期望与主机乙建立TCP连接,若主机乙接受该连接请求,则主机乙向主机甲发送的正确的TCP段可能是()

  A.(SYN=0,ACK=0,seq=11221,ack=11221)
  B.(SYN=1,ACK=1,seq=11220,ack=11220)
  C.(SYN=1,ACK=1,seq=11221,ack=11221)
  D.(SYN=0,ACK=0,seq=11220,ack=11220)

  答案:C

在这里插入图片描述

  1.主机乙给主机甲应该回复 SYN+ACK数据包,排除A,D。

  2.由于主机甲在SYN数据报当中的序号为(seq=11220),所以主机乙给主机甲回复的确认序号是ack=11221,排除B。

  3.主机乙发送的SYN+ACK数据包的序号seq可以从任意位置开始,所以,C是正确选项。

  

(7)TCP/IP

  TCP/IP参考模型的网络层提供的是()

  A.无连接不可靠的数据报服务
  B.无连接可靠的数据报服务
  C.有连接不可靠的虚电路服务
  D.有连接可靠的虚电路服务

  答案:A

  

(8)TCP

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

  A.1000
  B. 2000
  C.3000
  D.4000

  答案:A

  网络层提供无连接不可靠的数据报服务,例如协议。

  

(9)TCP/IP

  在TCP/IP体系结构中,直接为ICMP提供服务的协议是()

  A.PPP
  B. IP
  C.UDP
  D.TCP

  答案:B

  1.发送方的发送窗口的上限值取接收方窗口和拥塞窗口中的最小值,即min(4000,2000)=2000B,由于还未收到第二个最大段的确认,所以此时主机甲还可以向主机乙发送的最大字节数为2000-1000=1000B。

  

(10)子网划分

  某网络的IP地址空间为192.168.5.0/24,采用定长子网划分,子网掩码为255.255.255.248,则该网络的最大子网个数、每个子网内的最大可分配地址个数()

  A.32,8
  B. 32,6
  C.8,32
  D.8,30

  答案:B

  一个IP的组成部分为:网络号+子网号+主机号:

  对于这样的IP 192.168.5.0/24 由/24可以知道其子网掩码默认为255.255.255.0

  按照子网掩码255.255.255.248进行划分

  二进制位: (11111111.11111111.11111111)(24表示网络号).11111(子网掩码)000,子网掩码中全1表示的网络号和子网号部分,0部分表示主机号部分。

  (11111)2二进制转换为十进制为2^5 =32 所以可以划分为32个子网,而后面有3个0,所以000-111表示的范围2^3-2(全0和全1不可用)=6。

            

编程题 day35

年会抽奖

年会抽奖

  解题思路:错排的递推公式是:D(n) = (n - 1) [D(n - 2) + D(n - 1)],也就是n - 1倍的前两项和。公式推导可以参考百度百科。通过这个递推公式可以得到在总数为n的时候,错排的可能性一共有多少种。那么要求错排的概率,我们还需要另一个数值,就是当总数为n的时候,所有的排列组合一共有多少种,那么根据排列组合,肯定是使用Ann的公式来求,也就是n的阶乘。所以结果很简单,就是用公式求出第n项的错排种类,和n的阶乘,然后两者一除,就是概率了。

#include <iostream>
#include <vector>
using namespace std;int main() 
{int n;while (cin >> n) {vector<double> arr(n);arr[0] = 0, arr[1] = 1;for (int i = 2; i < n; i++) {arr[i] = i * (arr[i - 1] + arr[i - 2]);}double base = 1;for (int i = 1; i <= n; i++)base *= i;printf("%.2lf%%\n", arr[n - 1] / base * 100);}return 0;
}

  

抄送列表

抄送列表

  解题思路:1. 通过getiine(cin, names)方法获取第一行中的所有名字 2. 解析出第一行中的所有名字保存在unordered_set中 3. 获取第二行中的名字,检测该名字是否存在,并按照题目的要求进行输出。

#include<iostream>
#include<string>
using namespace std;int main()
{string s, res;while (getline(cin, s)){getline(cin, res);bool sta = false;for (int i = 0; i < s.length(); i++){string t;if (s[i] == '"'){i++;while (i<s.length()&&s[i] != '"'){t += s[i];i++;}if (t == res){sta = true;break;}}else if (s[i] != ','){while (i<s.length()&&s[i] != ','){t += s[i];i++;}if (t == res){sta = true;break;}}}if (sta == true)cout << "Ignore" << endl;elsecout << "Important!" << endl;}return 0;
}

            

这篇关于【C/C++笔试练习】TCP、IP广播、ARP协议、IP路由器、MAC协议、三次握手、TCP/IP、子网划分年、会抽奖、抄送列表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/996735

相关文章

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

Python进阶之列表推导式的10个核心技巧

《Python进阶之列表推导式的10个核心技巧》在Python编程中,列表推导式(ListComprehension)是提升代码效率的瑞士军刀,本文将通过真实场景案例,揭示列表推导式的进阶用法,希望对... 目录一、基础语法重构:理解推导式的底层逻辑二、嵌套循环:破解多维数据处理难题三、条件表达式:实现分支

C++ STL-string类底层实现过程

《C++STL-string类底层实现过程》本文实现了一个简易的string类,涵盖动态数组存储、深拷贝机制、迭代器支持、容量调整、字符串修改、运算符重载等功能,模拟标准string核心特性,重点强... 目录实现框架一、默认成员函数1.默认构造函数2.构造函数3.拷贝构造函数(重点)4.赋值运算符重载函数

C++ vector越界问题的完整解决方案

《C++vector越界问题的完整解决方案》在C++开发中,std::vector作为最常用的动态数组容器,其便捷性与性能优势使其成为处理可变长度数据的首选,然而,数组越界访问始终是威胁程序稳定性的... 目录引言一、vector越界的底层原理与危害1.1 越界访问的本质原因1.2 越界访问的实际危害二、基

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

一文带你迅速搞懂路由器/交换机/光猫三者概念区别

《一文带你迅速搞懂路由器/交换机/光猫三者概念区别》讨论网络设备时,常提及路由器、交换机及光猫等词汇,日常生活、工作中,这些设备至关重要,居家上网、企业内部沟通乃至互联网冲浪皆无法脱离其影响力,本文将... 当谈论网络设备时,我们常常会听到路由器、交换机和光猫这几个名词。它们是构建现代网络基础设施的关键组成

99%的人都选错了! 路由器WiFi双频合一还是分开好的专业解析与适用场景探讨

《99%的人都选错了!路由器WiFi双频合一还是分开好的专业解析与适用场景探讨》关于双频路由器的“双频合一”与“分开使用”两种模式,用户往往存在诸多疑问,本文将从多个维度深入探讨这两种模式的优缺点,... 在如今“没有WiFi就等于与世隔绝”的时代,越来越多家庭、办公室都开始配置双频无线路由器。但你有没有注

Java对接MQTT协议的完整实现示例代码

《Java对接MQTT协议的完整实现示例代码》MQTT是一个基于客户端-服务器的消息发布/订阅传输协议,MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,:本文主要介绍Ja... 目录前言前置依赖1. MQTT配置类代码解析1.1 MQTT客户端工厂1.2 MQTT消息订阅适配器1.

c++日志库log4cplus快速入门小结

《c++日志库log4cplus快速入门小结》文章浏览阅读1.1w次,点赞9次,收藏44次。本文介绍Log4cplus,一种适用于C++的线程安全日志记录API,提供灵活的日志管理和配置控制。文章涵盖... 目录简介日志等级配置文件使用关于初始化使用示例总结参考资料简介log4j 用于Java,log4c