3. 23 模拟面试

C++ 父类析构函数为什么必需是虚函数

答:首先要知道的一个知识就是,调用子类构造函数会调用父类构造,调用子类析构会调用父类析构,然后在多态的场景如果一个父类指针指向一个子类造成上行转换,这个时候delete掉这个父类指针,只会调用父类析构而无法析构掉子类的部分,而如果是虚函数的话,那么调用的实际上子类的析构函数,然后会在里面调用父类的析构,就可以实现内存空间全部释放

用过ping吗, 是什么协议

答:ICMP协议,处于网络层

ICMP是一种配合IP的一种协议,报文经常在传输的时候会遇到各种问题,ICMP协议的话就可以告诉自己是什么错误

ICMP分为差错报告报文和ICMP询问报文

差错报告报文分为  :终点不可达   时间超过    参数问题    改变路由

询问报文 :回送请求或回答,时间戳请求或回答

知道syn泛洪攻击吗?有什么处理方案吗?

答:SYN flood:也就是DDos攻击里的一种,利用的是TCP/IP协议栈进行攻击,也就是利用大量SYN请求去申请连接,这个时候服务器如果回答ACK包的话,然后攻击方不再给予回复,然后让服务器一直处于这种半连接状态消耗服务器资源,虽然TCP的处理策略是等待一段时间如果没有回复就放弃这个连接,但是如果大量请求来的时候还是足以在这段时间把服务器资源给耗死

  应对策略:

    SYN cookie :利用发送方给的序列号端口之类的东西产生出一个cookie号给发送方,如果回复cookie+1,那么就连接,否则不连接,但是计算这个cookie也要消耗大量资源,所以不太给力

    SYN  proxy:就是利用防火墙,防火墙去代替服务器去承受这些连接,防火墙发送一个错误的序列号,如果回复RST异常位,那就标记可以进行连接,然后可以和服务器进行连接, 否则不行,但是这个其实也就是用防火墙的高性能代替承受,如果达到防火墙的峰值还是会出现一样的问题,好像还有个华为的   “首包丢弃+源地址识别”    第二个就和这个处理一样,首包丢弃也就是把第一个包扔了,等待发送端再发一次过来,没细看,不知道得不得行  

.https的连接过程,这个说的非常详细、非对称加密、对称加密、hash、证书、握手信息

答:

c++的拷贝方式 深浅拷贝

答:浅拷贝:也就是单纯的值传递,把自己的值赋给它,但是在类里面有指针的时候就会出现问题,会造成两个指针指向同一个内存区域,然后造成错误

  深拷贝:不再是单纯的值传递,首先自己先建一块儿内存,然后再把它的值给弄过来

C++、java的区别

1,内存:C++能够使用指针直接去操作内存,自己申请的内存都必须自己释放,java有垃圾回收机制

2,平台无关性: 首先所有文件代码最后都是编译转换成二进制文件的,计算机只能识别二进制,然后不同的二进制的命令是不一样的,所以在一个操作系统上编写的代码转换成二进制后,代码含义指令就可能和自己想象中的不一样,C++就是这样的,java的话它把编译分成了两部分,前端编译和后端编译,前端编译把文件变成.class文件,然后由不同的jvm来复杂把class文件转换成二进制文件,这样就能做到一个操作系统上编写的代码在多个操作系统上都能运行,java语法上也是,不同的操作系统类型字节数都一样的,C++就不一样,16位2  32位4..

进程间通信有哪几种方式

答:

1,管道:无名和有名管道

2,消息队列

3,信号量

4,信号

5,共享内存

6,socket

手写算法题,删除链表倒数第k个节点

答:

思路:先让第一个指针走到第k个节点,然后开头再来个指针,两个指针同时移动,然后等后一个指针到达末尾,前一个指针就是倒数第k个

struct node end_k (struct node h,int k){
      struct node *p=h,*q=h;
      for(int i=0;i<k;i++){
            q=q->next;
      }
     while(q){
          q=q->next;
          p=p->next;
    }
    return p;
}    

两个特别特别大的文件,里面存都是数字,找到在两个文件中都存在的数字。如何解决,给出尽量优的算法

答:

如果数字范围不大:可以使用位图(bit_map),用一个二进制位来代表这个整数是否出现过,如C++中的bitset,复杂度O(n)

如果数字范围很大低容错:可以采用布隆过滤器,是位图的进化版,解决了位图受数字大小的限制,先hash到一个桶里,桶里面每个位置也是一个二进制位。O(n)

如果数字范围大不容错:可以采用hash分治,分为对每个文件hash分割成多个小文件,然后再对两个相同的hash的小文件进行查找判断,可以对两个文件都排序一下,然后再O(n)处理,或者可以用map记录

总的复杂度 O(m*nlogn)   m是文件数,n是每个文件里面的数字量,取得合适也就比O(n)差点

new和malloc有什么区别?

答:如果调用失败的话会首先访问用户实现的 set_new_handle函数,一般该函数是去释放些无用的内存,然后再去尝试申请,然后反复调用该函数直到申请成功,主要还是看用户实现的函数怎么样

然后退出的话会抛出bad_alloc异常,异常会直接让程序崩溃,可以选择在 new (nothrow) 这样就不会抛出异常了,或者使用 try catch捕获异常

假设有一个技能是扇形攻击,如何找到所有攻击内的敌人?

答:不知道,先给篇博客,明天再学习整一下

https://www.cnblogs.com/miloyip/archive/2013/04/19/3029852.html

100个硬币,又一个假币,用两次判断假币重还是真币重 然后就结束了

答:因为我只有两次,我第一次分大概只能知道假币在一边,另一边是作为参照,我先分成两堆50,然后对轻的那堆分成两堆25,如果两堆一样重,说明假币肯定在另一堆50的里面也就是假币重,如果两堆不一样重也就是说假币在这堆,假币轻

有两个栈实现队列

答:将一个栈实现出一个实现进,然后如果出的那个队列当前为空的话,那么将进队列的所有数都放入出队列中,然后进行操作,复杂度O(n)

TCP流量控制、滑动窗口;

答:流量控制是针对于两端主机的情况而调整的发送量,首先三次握手的时候会交流滑动窗口的大小是多少,然后会有几个指针,分为发送端接收端分别有,待发送包窗口,已发送待确认,待接收等,有快重传等机制,滑动窗口是在移动,然后窗口内的包是可以发送的

快速排序是稳定的吗?为什么不稳定?

答:不稳定-

比如一个例子 2 3(1) 3(2) 3(3) 1(1) 1(2) 1(3)(感谢cch友情赞助的例子

第一轮后就变成了   1(3) 1(2) 1(1) 2 3(3) 3(2) 3(1)

原文地址:https://www.cnblogs.com/Lis-/p/12555770.html

时间: 2024-10-25 00:16:36

3. 23 模拟面试的相关文章

java模拟面试 试题

java 四类八种基本数据类型 第一类:整型 byte short int long 第二类:浮点型 float double 第三类:逻辑型 Boolean(取值为 true false) 第四类:字符型 char & 与 运算符. | 或 是java中的位运算符,对二进制进行计算,两位都是1返回1,否则返回0. ^ 异或 是java中的位运算符,对二进制进行计算,两位不同返回1,否则返回0. == 可以用来比较引用类型(比较的是虚地址),也可以用来比较基本数据类型(比较的是二进制). 值得注

记模拟面试

今天万策组织了一次模拟面试,由黄工担任技术官,南希姐和范洁姐担任HR.总结一下,今天的模拟面试真的是一塌糊涂. 首先,一开始是自我介绍,因为没有准备好稿子,直接导致我说完名字,来自哪里,什么学校之后不知道说什么,匆匆说了一些自己会的技术加上自己自学的python之后就不知道说什么了,毫无亮点可言.这下就知道了提前准备的好处,这还没有什么,至少自我介绍我还可以从容的说出来,自我介绍后面的技术面试才是糟糕透顶.首先问了关于集合的理解,自己只是回答了collection这个父类,然后将collecti

2.23模拟赛

浪了一发普及模拟赛 题面见此 [样例输入] 4 1 1 2 1 1 1 [样例输出] 20 [数据规模和范围] 对于 30%的数据,n≤1000. 对于另外 30%的数据,bi=1. 对于 100%的数据,n≤1 000 000,bi≤1000. sol:单边记贡献,(x,y)边的贡献就是 Size[y]*(n-Size[y])*Dis[x][y],因为父亲都小于当前点,直接倒着跑一遍记Size就可以了,如果无序的话可以用拓扑 #include <bits/stdc++.h> using na

方方前端模拟面试

1.学习前端看了那些书 怎么学习的 2.ES6 简单的语法let和const 怎么用 -块级作用域 3.提到闭包-闭包是什么 闭包的作用  如果不return函数 是不是个闭包 闭包-不会被垃圾回收? 什么东西会被垃圾回收 - 标记清除算法 除了这个还有啥 一般前端不问垃圾回收,提到了就问一嘴 4.React 和Vue的区别 JSX 模板语法 使用的原理有什么不一样 - Vue的核心是什么 React最重要的API是什么 Vue 数据响应式 5.反应快 怎么显得反应快 ① 电话面试立即回应 嗯

2018.7.23模拟考试

今天我居然A了一道题???怕不是把明年的运气都用光了 T1 题意简述:给出两个n*n的矩阵,m次询问它们的积中给定子矩阵的数值和. n<=2000,m<=50000 解题思路:这道题其实最主要的是这个...每个测试点时限6秒 这告诉我们...暴力就能过... 当然也不能随便暴力.二维前缀和即可.复杂度O(nm). #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib

3.2 模拟面试

1,用new分配对象失败后有什么后果 答:如果调用失败的话会首先访问用户实现的 set_new_handle函数,一般该函数是去释放些无用的内存,然后再去尝试申请,然后反复调用该函数直到申请成功,主要还是看用户实现的函数怎么样 然后退出的话会抛出bad_alloc异常,异常会直接让程序崩溃,可以选择在 new (nothrow) 这样就不会抛出异常了,或者使用 try catch捕获异常 2访问一个私有成员函数 有什么方法 答:使用友元,友元类和友元函数都可以去访问类的私有属性,友元不可以被继承

3.5 模拟面试

1.如何判断链表为环 答:有两种方法 1,快慢指针:一个一步走,一个两步走,如果快指针遇到NULL代表无环,快慢相遇代表有环 2,哈希:用哈希记录之前的节点,然后判断当前节点是否在之前出现过 2.蓄水池抽样原理 答:不会,明天补上>_< 3..C中static的作用? 答:1,隐藏:如果全局变量定义的话,作用域是所有源文件,但是如果static修饰后,作用域就是在当前源文件中使用  2,局部持久化:如果在函数里面定义使用的话,能保持之前的值 4.满二叉树是什么,如何在二叉排序树中找到第三大节点

一次java面试经历分享

首先呢,肯定是要感谢IT面试网提供的这次模拟面试的机会,也很荣幸能够参加这次模拟面试,真的是机会难得呀!对于我这种Java的小菜菜来说,这无疑是一次很好的经历吧,也为自己在即将来临的毕业之际(现在大三)指明了道路吧,至少通过这次我知道了,在出去找工作的时候我需要准备哪些东西,我要具备什么样的专业知识吧! 言归正传吧!还是说说自己的这次模拟面试的感受吧!我面的是Java 技术方向的,之前和IT面试团队的人预约好了时间,早上10:30左右,所以呢,一大早就去找了个空教室准备视频面试来着,本来以为周天

一篇面经(BAT面试)(转)

0. 写在之前 首先呢我的面试经历和一些面霸和收割机的大神相比绝不算丰富,但我这三个月应该能代表很大一部分人的心路历程:从无忧无虑也无知的状态,然后遭遇挫败,跌入低谷,连续数天的黑暗,慢慢调整,逼着自己不能松懈,看到改变,收获肯定,分享经历. 先大概说下自己的面试经历吧(详细的面试过程和面试题解析在最后): 相关的公司有四类: 笔试就挂了的:网易.头条.(对于笔试这个东西我到现在都没太多经验) 网易是第一家参加笔试的,面试会报销费用去总部,所以还是有难度,这个公司呢,内推不内推都要参加笔试.所以