腾讯一面
1,请说下volatile的作用
2,请说下虚函数的实现,虚函数表存放的位置?
3,说下new 跟malloc的区别
4,Linux常用的查看网络状态的命令
5,established 之后,说下time_wait的状态怎么产生的
6,说下tcp超时重传的策略
7,了解超线程技术吗?
8,编程题
//将整数倒序,输入12345,输出54321;输入-300,输出-3;
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
while (cin)
{
cin >> str;
int len = str.length();
for (int i = 0; i < len; i++)
{
if (str[0] == '-')
{
if (i ==0)
cout << str[0];
if (i == len - 1)continue;
if (str[i] == '0')
cout << str[len - i - 1];
else
continue;
}
else
{
cout << str[len - i - 1];
}
}
}
return 0;
}
9,智力题:
有个N石子,有两个人去拿,每个人只能拿1个或者两个,最终没石子拿的人输,怎么才能赢?
答案:
有10个石头,每人每次可以拿1-2个,轮流拿,最后一个拿的人算输,有什么必赢的方案。
分析:
两人一组,可控一次拿3个石头。10整除3,取余1,因此去掉余数1个,剩余数量是3的整数倍。
对方先拿、保证两个人每一轮回拿满3个(对方拿一个,我拿两个、对方拿两个,我拿一个)。
注:本题是上一个题的逆向,即先保证拿完整数倍,剩余1个(余数是别的就不行了),对面只能拿,因此会输。