4.2来之即战

1.在TCP协议的三次握手中,应答方在收到发起方发送的“SYN=1,序号=1”数据报时,对其应答的描述是( )

  • A、 SYN=2 序号=y ack=y+1
  • B、 SYN=1 序号=2 ack=2
  • C、 SYN=1 序号=y ack=2
  • D、 SYN=2 序号=y ack=2

2.应用程序ping收到的是( )

  • A、 TCP应答
  • B、 ICMP请求
  • C、 ICMP应答
  • D、 TCP差错报告

Ping 命令是通过向计算机发送 ICMP 回应报文并且监听回应报文的返回,以校验与远程计算机或本地计算机的连接。

3.采用多路复用I/O监听3个套接字的数据时,如果套接字描述符分别是:5,17,19,则select(int maxfd,struct fd_set* rdset,NULL,NULL)中的maxfd应取为( )

  • A、 4
  • B、 20
  • C、 5
  • D、 9

Maxfd是三个套接字描述符中最大数字加上1。

4.文件操作的唯一依据是?

  • A、 文件名
  • B、 文件句柄
  • C、 物理地址

文件句柄fd是唯一标识,相当于id。

5.给定如下代码: int x[4]={0}; int y[4]={1}; 数组x和y的值为()

  • A、 A: {0,0,0,0},{1,1,1,1}
  • B、 B: {0,0,0,0},{1,0,0,0}
  • C、 C: {0,不确定},{1,不确定}
  • D、 D: 与编译器相关

如果初始化时指定的的元素个数比数组大小少, 剩下的元素都回被初始化为0。

6.Linux中包括两种链接:硬链接(Hard Link)和软连接(Soft Link),下列说法正确的是( )

  • A、 软连接可以跨文件系统进行连接,硬链接不可以
  • B、 当删除原文件的时候软连接文件仍然存在,且指向的内容不变
  • C、 硬链接被删除,磁盘上的数据文件会同时被删除
  • D、 硬链接会重新建立一个inode,软链接不会

 硬连接不会建立inode的,他只是在文件原来的inode link count域再增加1而已,也因此硬链接是不可以跨越文件系统的。软连接重新建立一个inode,当然inode的结构跟其他的不一样,他只是一个指明源文件的字符串信息。

一旦删除源文件,那么软连接将变得毫无意义。硬链接删除的时候,系统调用会检查inode link count的数值,如果他大于等于1,那么inode不会被回收。因此文件的内容不会被删除

硬链接实际上是为文件建一个别名,链接文件和原文件实际上是同一个文件。可以通过ls -i来查看一下,这两个文件的inode号是同一个,说明它们是同一个文件;而软链接建立的是一个快捷方式指向,即链接文件内的内容是指向原文件的指针,它们是两个文件。

软链接可以跨文件系统,硬链接不可以。

软链接可以对一个不存在的文件名(filename)进行链接(当然此时如果你vi这个软链接文件,linux会自动新建一个文件名为filename的文件),硬链接不可以(其文件必须存在,inode必须存在)。

软链接可以对目录进行连接,硬链接不可以。

两种链接都可以通过命令 ln 来创建。ln 默认创建的是硬链接。使用 -s 开关可以创建软链接。

7.观察下面一段代码:

class ClassA { 
public: 
    virtual ~ClassA(){
    }; 
    
    virtual void FunctionA(){
    }; 
}; 
class ClassB { 
public: 
    virtual void FunctionB(){
    }; 
}; 
class ClassC : public ClassA, public ClassB { 
public: 
};

int main() { 
    ClassC aObject; 
    ClassA *pA = &aObject; 
    ClassB *pB = &aObject; 
    ClassC *pC = &aObject; 
    
    return 0; 
} 

关于pA,pB,pC的取值,下面的描述中正确的是: 

  • A、 pA,pB,pC的取值相同
  • B、 pA,pB,pC的取值都不相同
  • C、 pC不等于pA也不等于pB
  • D、 pC和pA相同

ClassC虚表指针有两个,分别在在对象首地址偏移0和4字节,pA指向的是基类ClassA基类虚表指针,pB指向的是基类ClassB虚表指针,然后pC指向按继承顺序第一个继承的类虚表指针也就是pA,所以pC=pA,pB与他们不相等

8.设某颗二叉树中有360个结点,则该二叉树的最小高度是?(包括根节点)

  • A、 10
  • B、 9
  • C、 8
  • D、 7

深度为h的二叉树最多有2^h-1个节点,因此h最小取9

9.不能声明为虚函数的是( )

  • A、 析构函数
  • B、 构造函数
  • C、 类的成员函数
  • D、 以上都不对

构造函数不能声明为虚函数的原因是:

1.创建对象时,需要确定对象的类型,而虚函数是在运行时动态确定其类型的。在构造一个对象时,由于对象还未创建成功,编译器无法知道对象的实际类型;

2.虚函数的调用需要通过vptr虚函数表指针,而该指针是存放在对象的内存空间中的,若构造函数声明为虚函数,那么由于对象尚未创建,还没有内存空间,也就没有对应虚函数表来调用虚构造函数了;

3.虚函数的作用在于通过父类的指针或者引用,在调用它的时候能够通过动态链编调用子类重写的虚成员函数。而构造函数是在创建对象时是系统自动调用的,不可能通过父类或者引用去调用,因此就规定构造函数不能是虚函数。

(虚函数不懂)

10.http2.0在1.1的基础上有和优化?

1.头部压缩:建立索引表,增大实时性,并发性

2.分流:信息分割为更小的消息和帧

3.多路复用:单个TCP链接,解决多次http请求

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值