2016腾讯一面

今天去面试,面试官很nice,但好像感冒了,我答题过程中很不停的咳嗽,一开始自己没在状态,一上来,面试官没让我做自我介绍,感觉之前的准备白费了,以上来给了我一个试卷,3道题:

第一个结构体对齐,但不单单是结构体对齐,里面包括虚函数,大概是这样子:

class A
{
    int a;
    char b;
    int c;
    virtual void test(){};
    virtual void test2(){};
    virtual void test3(){};
};

答案是:16,我答了个12,都想把自己抽一个!

第二题:给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数,空间复杂度O(1),时间复杂度为On

答的还算可以,就是在纸上写代码,写的太烂。

分析:从数组两端向中间靠近,推出条件为左右相撞,

  1.左端为偶数,右端为奇数时,两数交换,

  2.左边为奇数,向右推进一个单位

  3.右边为偶数,向左推进一个单位

 1 void sortEO(int array[],int len)
 2 {
 3     int i = 0;
 4     int j = len-1;
 5     int tmp;
 6     while(i < j)
 7     {
 8         if((array[i]%2==0) && (array[j]%2!=0))
 9         {
10             tmp = array[i];
11             array[i] = array[j];
12             array[j] = tmp;
13         }
14         if(array[i]%2 != 0)
15         {
16             i++;
17         }
18         if(array[j]%2 == 0)
19         {
20             j--;
21         }
22     }
23 
24 }
25 int main()
26 {
27     int arr[] = {1,2,3,4,5,6,7,8,9,10};
28     sortEO(arr,10);
29     int m = 0;
30     for(m = 0;m < 10;m++)
31     {
32         printf("%d	",arr[m]);
33     }
34     return 0;
35 }
View Code

第三题,大数相乘,自行脑补各种大数

下面开始各种交流,

1.fopen和open的区别?

2.在socket编程中,当读的信息超过设置大buffer值的时候,会出现什么错误?

3.C++中四种类型转换的cast

4.在Shell编程中,如何通过命令查看TCP连接数

5.TCP的三次握手和四次挥手(为什么要进行四次挥手?)

以上就是今天(2015年9月14日,上午10点30分)腾讯面试的全部干货,希望对有的人有帮助!

原文地址:https://www.cnblogs.com/sxmcACM/p/4806879.html