【C/C++笔试练习】IP地址、tcp套接字、路由地址、MAC地址、三次握手、ping、TCP、子网划分、Host文件、Rational Arithmetic、Pre And Post

C/C++笔试练习

选择部分

(1)IP地址

  下面关于IP地址的论述中哪个是不正确的()

  A.用户主机的IP地址可静态分配也可以动态分配
  B. IP地址有单播地址,也有多播地址
  C.一个用户主机只能有一个IP地址
  D.在以太局域网中使用ARP协议查找与一IP地址对应的MAC地址

  答案:C

  A. 用户主机的IP地址可静态分配也可以动态分配静态分配IP地址。

在这里插入图片描述

  动态分配:使用DHCP协议动态分配IP

  B. IP地址有单播地址,也有多播地址:不但有单播地址,还有广播,多播地址。

  C. 一个用户主机只能有一个IP地址: C选项:如果一个主机有多块网卡,可以拥有多个ip地址。

  D. 在以太局域网中使用ARP协议查找与一IP地址对应的MAC地址。

  

(2)tcp套接字

  tcp套接字中,不会阻塞的是哪一种操作()

  A. read
  B.write
  C.accept
  D.bind

  答案:D

  bind函数是不会阻塞执行流的。

  

(3)路由地址

  以下几条路由,10.1.193.0/24, 10.1.194.0/24, 10.1.196.0/24, 10.1.198.0/24,如果进行路由汇聚,则能覆盖这几条路由地址的是()

  A.10.1.192.0/22
  B. 10.1.200.0/22
  C.10.1.192.0/21
  D.10.1.224.0/20

  答案:C

  这四类IP地址的前两位都是一样的,第三位不一样,所以将第三位化为二进制:
  193—1100 0001
  194—1100 0010
  196—1100 0100
  198—1100 0110

  路由汇聚就是把相同的路由IP地址共同聚集成为一个总的IP地址相与得:11000000,可知前五位是相同的,所以网络号应为:8+8+5=21最后的路由地址为:10.1.192.0/21。

  

(4)MAC地址

  当一台PC从一个网络移到另一个网络时,以下说法正确的是()

  A.它的IP地址和MAC地址都会改变
  B.它的IP地址会改变,MAC地址不会改变
  C.它的MAC地址会改变,IP地址不会改变
  D.它的MAC地址、IP地址都不会改变

  答案:B

  ip地址有可能会变,但是MAC地址不会改变,因为MAC地址是绑定网卡的,全球唯一。

  

(5)三次握手

  在TCP/IP建立连接过程中,客户端或服务器的状态转移说法错误的是()

  A.经历SYN_RECV状态
  B.经历SYN_SEND状态
  C.经历ESTABLISHED状态
  D.经历TIME_WAIT状态

  答案:D

在这里插入图片描述

  

(6)ping

  ping命令是基于哪个协议()

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

  答案:A

  Ping是基于ICMP协议的。

  

(7)TCP

  下面关于TCP的描述,错误的是()

  A.TCP是一种面向连接的协议,给用户进程提供可靠的全双工的字节流
  B. TCP客户端和服务器之间建立连接需要经过3次握手
  C.只要有一方主动关闭连接后,这个TCP连接就结束了
  D.TCP在传输数据过程中必须保持着连接,这个连接会给通信过程增加开销

  答案:C

  A. TCP是一种面向连接的协议,给用户进程提供可靠的全双工的字节流: 这个没有问题,是TCP协议的特性。

  B. TCP客户端和服务器之间建立连接需要经过3次握手:三次握手也是正确的。

  C. 只要有一方主动关闭连接后,这个TCP连接就结束了: 还需要被动断开连接方也断开连接,这个是四次挥手的过程。

  D. TCP在传输数据过程中必须保持着连接,这个连接会给通信过程增加开销:因为需要维护连接,例如长时间没有应用层数据的收发,此时,tcp就需要用保活机制(心跳机制)来维护连接。也可以理解为维护连接的。

  

(8)子网划分

  如果将网络IP段40.15.128.0/17划分成2个子网,则第一个子网IP段为40.15.128.0/18,则第二个子网为()

  A.40.15.129.0/18
  B. 40.15.128.128/18
  C.40.15.192.0/17
  D.40.15.192.0/18

  答案:D

  40.15.128.0/17
  0010 1000.0000 1111.10000000.00000000,,原子网前17位为网络号

  40.15.128.0/18
  0010 1000.0000 1111.10000000.00000000,划分的一个子网前18位为网络号

  1.这里分成了两个子网,也就只需要用一位来表示,也就是第18位,用0和1来区分子网就可以了

  2.第一个地址的第十八位为0,第二个只能是1,这就可以得出答案40.15.192.0/18

  0010 1000.0000 1111.11000000.00000000,划分的另一个子网前18位为网络号

  

(9)Host文件

  下面对Host文件描述正确的是()

  A.这个文件是批处理文件,用来指定域名的访问IP
  B.一个DNS域名解析服务器文件,用于解析域名对应的IP地址
  C.作用是网址域名与其对应的IP地址建立一个关联
“数据库”
  D.当用户输入网址后,系统首先到DNS服务器中寻找对应的IP地址,如果不存在会到Host文件中确定最终访问地址

  答案:C

  host文件一个没有扩展名的系统文件,其作用就是用来存储一些常用的网络域名和与其对应的ip地址,当用户输入一个需要登录的网址时,系统就会先去host文件中查找,如果找到了就立即打开该网址,如果找不到就去DNS域名解析服务器中查找。

  

(10)IP地址

  下列选项中,属于" 10.174.20.176/28 "该网段的有效IP地址是()

  A.10.174.20.174
  B. 10.174.20.186
  C.10.174.20.191
  D.10.174.20.192

  答案:B

  由题Y0.174.20.176/28,“/28”指的是当前网络使用28为比特位作为网络号,将10.174.20.176 最后一位分解成为分解成为二进制则:10.176.20.10110000

  10.174.20.1011 0000~ 10.174.20.1011 1111

  则该网络的范围为:10.174.20.176~ 10.174.20.191

  其中10.174.20.176是网络号,10.154.20.191是广播号

  有效的ip地址范围为:10.174.20.177~10.174.20.190

            

编程题 day36

Rational Arithmetic

Rational Arithmetic

  解题思路:实现一个有理数类,将数据处理后重载一下加减乘除即可。处理数据的方法就是除一下mod一下的问题,加减乘除遵循基本的分数加减乘除原则,最后求一下最大公约数,做一下约分,再处理一下数据。

#pragma warning (disable:4996)
#include<iostream>
#include<algorithm>
#include<string>
#include<cstring>
using namespace std;

#define MAX 1000

long max_cmn_div(long nu, long de) /* 求最大公约数 */
{
   
    for (long i = de; i >= 1; --i) {
   
        if (nu % i == 0 && de % i == 0) {
   
            return i;
        }
    }
    return 1;
}

typedef struct frac_t {
   
    int sign;       /* 1 or -1 */
    long iport;
    long numer;
    long deno;
    char outform[MAX];
    
    frac_t(int si, long ip, long nu, long de) :sign(si), iport(ip), numer(nu), deno(de) {
   
        long cmn_div;
        if (de != 0) {
   
            iport = ip + nu / de;
            numer = nu % de;

            cmn_div = max_cmn_div(numer, deno);
            numer /= cmn_div;
            deno /= cmn_div;

            char tmp[MAX];
            (void)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鳄鱼麻薯球

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值