【面试题】BD
一面:
自我介绍,简单介绍项目;
/***********发现项目没什么可问的,然后开始各种基础知识o(╯□╰)o************/
内存结构,低地址,高地址;
STL底层实现,set是否有序;
多态在什么情况下触发----(基类调用虚函数);
C++类型转换(4种);
链表的转置;
二叉树的按层输出,输出某指定层;
Malloc与new区别;
特征 |
new/delete |
malloc/free |
分配内存的位置 |
自由存储区 |
堆 |
内存分配成功的返回值 |
完整类型指针 |
void* |
内存分配失败的返回值 |
默认抛出异常 |
返回NULL |
分配内存的大小 |
由编译器根据类型计算得出 |
必须显式指定字节数 |
处理数组 |
有处理数组的new版本new[] |
需要用户计算数组的大小后进行内存分配 |
已分配内存的扩充 |
无法直观地处理 |
使用realloc简单完成 |
是否相互调用 |
可以,看具体的operator new/delete实现 |
不可调用new |
分配内存时内存不足 |
客户能够指定处理函数或重新制定分配器 |
无法通过用户代码进行处理 |
函数重载 |
允许 |
不允许 |
构造函数与析构函数 |
调用 |
不调用 |
Struct与class的区别;
进程间的通信有哪几种;
管道(Pipe)及有名管道(named pipe)
信号(Signal)
消息队列
共享内存
信号量(semaphore)
套接口(Socket)
sockect服务器,客户端到服务器的过程;
排序有哪些,堆排序怎么实现,快排怎么实现,哪些排序稳定;
空结构体的大小;
除项目之外,自己动手写的一些东西,自己在学习的东西;
二面:
简单的自我介绍;
10的n次方个数属于(1,10);只遍历一次,确定逆序对的个数;---基数排序
五子棋的状态(五子棋游戏);