题意大概如下:
笔试:
1用ssh终端仿真软件远程运行linux程序,网络中断后,远程程序会退出。原因?解决方案
2写堆排序程序
3写全排列程序,输入[1,2,3],输出[1,2,3]、[1,3,2]、[2,1,3]、[2,3,1]、[3,1,2]、[3,2,1]
4写组合排列程序,输入[1,2,3],输出[[]]、[[1]]、[[1,2]]、[[1,3]]、[[2]]、[[2,3]]、[[3]]、[[1,2,3]]
5数字编码,数字N编码成M,M满足一下条件:(1)M各位数字之和与N的各位数字之和相等,(2)M和N的位数相等,(3)M是满足以上条件且比N大的最小数,(4)N的位数可能达到1000,N<10^500。如果不能转换,则输出-1。输出S(N)序列:S(1)=f(N)=M,S(2)=f(M),S(3)=f(f(M)),直到输出-1
6 Hash函数,A的任意区间均匀稳定分布到B区间,如A区间100%,粒度0.1,A区间的10%均匀分布到B区间,即B区间的每个10%都含1%A的10%区间?若A为第一层,B第二层,如何?
7设计题,URL存储,每一项有如下结构
Item1、count1、URL11、URL12…
Item2、count2、URL21、URL22…
Item2为序号,count1为后面URL的个数
设计以上结构的存储和访问方式,输入Item1返回后面的URL,且支持AND、OR、()操作,如(Item1)AND((Item2)OR(Item3))
面试:
1 写出strncpy的函数、与strcpy区别
2有一个数组,已知一个数出现的次数超过了一半,用O(n)时间复杂度、O(1)空间复杂度的算法找出这个数
3 m个人围成一圈,按1234..n(n<=m)次序循环报数,报到n的离开,最后一个离开的是原先的第几个人?
时间复杂度O(n)
4以下代码有什么问题
{
char* p = malloc(size);
…(内存操作)
}
5进程通信方式及区别
6 客户端和服务器间通信过程
还有项目、实习经验之类的