腾讯科技(北京)有限公司
——c++面试题
请各位面试者,标明题号,直接把答案写在答题纸上面,写在其他地方均无效。
答题时间60分钟
总体涉及到的知识点包括:运算符优先级、汇编、内存分配、进程控制、排列组合、SQL语句、贪心算法、队列堆栈、回文、完全二叉树、排序算法、遍历图、TCP协议、操作系统端口服务、递归算法、动态规划。等等
题目:
1、STL的几个库是怎么实现的?STL里面的vector是否线程安全?
2、设计一个服务器的存储模式
3、哈希表的遍历时间复杂度?
4、什么是微软的小尾模式?
5、c语言的函数用汇编怎么实现?
6、 写一个类似printf的带有不定参数的函数7、 给出程序的输出结果 ,题目如下:
struct A
{
A(){std::cout<<”A”;}
};
struct B:public A
{
B(){std::cout<<”B”;}
};
struct C
{
C(){std::cout<<”C”;}
B b;
A a;
};
void main()
{
C c;
}
8、 字节对齐的问题,原题如下:
#pragma pack(8)
typedef struct _A
{
char c;
int i;
}A;
typedef struct _B
{
A a;
double d;
}B;
typedef struct _C
{
A a;
char c;
}C;
9、求sizeof(A),sizeof(B),sizeof(C)的大小。
10、 比较static_cast、dynamic_cast、reinterpret_cast、和const_cast的区别。
11、volatile的作用,
12、给定数据a[N],要构建数组b[N],其中b[j] = a[0] * a[1] * ….. a[N-1] / a[j],要求构造过程中不能用除法,空间复杂度O(1)时间复杂度 O(N),不得使用除遍历计数器外的临时变量。
13、 template机制。
14、TCP里长连接和短连接的区别。
15、海量数据最短可达问题。
腾讯科技(北京)有限公司
地址:北京市海淀区海淀大街38号银科大厦16层