前言
大家好,我是熊哥。一位朋友最近面试腾讯的腾讯云通信IM后台开发工程师,熊哥从他那获取到该岗位一面的笔试题。
今天将这次笔试的题目分享给大家,看看大家能正确做出多少道?是否能通过该岗位的一面?或者说离通过一面还有多远?
注:以下题目均在32位linux环境下,小端字节序
代码语言:javascript复制1、以下语句分别输出什么?(5分)
char str1[] = "abc";
char str2[] = "abc";
const char* str5 = "abc";
const char* str6 = "abc";
cout << boolalpha << ( str1==str2 ) << endl;
// 输出:
cout << boolalpha << ( str5==str6 ) << endl;
// 输出:
2、对于“int i;”,“(!!i)”等价于:____ (5分)
A. (i != 0) B. (i == 0)
C. (i) D. 非法语句
3、以下程序的运行结果是什么?屏幕上面显示什么?(运行环境为UNIX类系统)(10分)
int main(void)
{
printf("ABCn123");
printf("xyz");
*(int *) 0 = 0;
return 0;
}
4、如下代码输出什么?(5分)
#define SQR(x) (x * x)
int main()
{
int a, b = 3;
a = SQR(b 2);
printf("a = %dn", a);
return 0;
}
5、求下面结构体大小(5分)
struct B {int b; char c;};
typedef struct
{
int a;
char b;
short c;
char d;
B e;
} S;
求sizeof(S)=?
6、下面这个代码能否编译通过,不行是什么原因,如果可以,执行结果是什么?(5分)
class Base
{
public:
Base(){VFun();}
virtual void VFun(){printf("Base ....n");}
};
class DBase:public Base
{
public:
DBase(){}
virtual void VFun(){printf("DBase ....n");}
};
int main(int argc, char *argv[])
{
DBase*pDBase = new DBase();
return 0;
}
7、这段代码输出什么?或这段代码有没问题?(5分)
int main()
{
string str1,str2;
str1.resize(5);
str2.reserve(5);
memcpy(str1.data(),"abc",3);
cerr << str1.c_str() << endl;
memcpy(str2.data(),"abc",3);
cerr << str2.c_str() <<endl;
return 0;
}
8、UDP通信,如果client端sendto一段1024字节的buf,server端循环调用
recvfrom(fd,buf,64,0),能否收完?能的话需要调用几次?不能收完原因是什么?(5分)
9、tcp通信,client端循环调用send(fd,buf,1) 1024次发给server,
从server端捉包,客户端总共发了几个包过来?(5分)
10、有个文件,内容如下:(5分)
1111|33333|44444|6666
4adf|33333|fafdfd|adfdfa
33333|22222|dadffd|adfdfasf
如果想把第二列为33333的行全部输出来,请问用shell脚本,该怎么写?
11、10亿个随机数中,取出最大10出来,说下实现原理:(10分)