腾讯云通信IM后台开发最新笔试题

2021-11-30 09:19:12 浏览数 (2)

前言

大家好,我是熊哥。一位朋友最近面试腾讯腾讯云通信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分)

0 人点赞