"

                  ✅彩票网址平台✅品牌实力,资金雄厚,彩票网址平台,诚信为本,原生态App体验千百款游戏,彩票网址平台,7x24服务,欢迎您来体验!

                                  "
                                      
                                      

                                  百度 2021 开发工程师(深圳)面试题

                                  小编:管理员 216阅读 2021.06.17

                                  第1题:


                                  C++有哪些数据类型?为什么long和int都是4字节?



                                  char、int、byte、short、long、long long、double、float

                                  struct

                                  对象类型

                                  long、int占多少字节,得看计算机cpu是多少位的。16位机器上,int2字节,long4字节,32位机器上二者都是4字节,64位机器上,int4字节,long8字节

                                  int是最基本的类型,一般要和cpu的自宽保持一致,保证效率。



                                  第2题:


                                  JAVA和C++的区别是什么?分别用在什么情景比较好?



                                  Java 和 C++ 都是面向对象的语言,但他们也存在着一些区别

                                  1、Java 不支持多继承

                                  2、Java 没有指针和引用

                                  3、c++ 需要程序员手动管理堆内存,Java有自动垃圾回收机制

                                  Java运行在java虚拟机上,速度相对较慢,在实时性要求高的场合应该用c++

                                  java通常在手机上应用的比较多。



                                  第3题:


                                  编程题:给定一个文件每一行是字符串,找出所有的逆序对,比如abc和cba是逆序的对。



                                  #include"iostream"

                                  #include"string"

                                  #define MAX 100

                                  using namespace std;

                                  bool check(string str1,string str2)

                                  {

                                      bool flag = true;

                                      for(int i=0; i<str1.length(); i++)

                                      {

                                          if(str1[i]!=str2[str1.length()-1-i])

                                          {

                                              flag = false;

                                              return flag;

                                          }

                                      }

                                      return flag;

                                  }

                                  int main(int argc, char* argv[])

                                  {

                                      string str[MAX];

                                      int n,a[MAX];

                                      bool flag[MAX];

                                      cin>>n;

                                      for(int i=0; i<n; i++)

                                      {

                                          cin>>str[i];

                                          a[i] = str[i].length();

                                          flag[i] = true;

                                      }

                                      int num = 0;

                                      for(int i=0; i<n; i++)

                                      {

                                          int len = a[i];

                                          if(flag[i]==true)

                                          {

                                              for(int j=0;j<n;j++)

                                              {

                                                  if(flag[j]==true&&len==a[j])

                                                  {

                                                      if(check(str[i],str[j]))

                                                      {

                                                          num++;

                                                          flag[i] = false;

                                                          flag[j] = false;

                                                          break;

                                                      }

                                                  }

                                              }

                                          }

                                      }

                                      for(int i=0; i<n; i++)

                                          cout<<str[i]<<'\t';

                                      cout<<endl;

                                      cout<<"The Number of Matched String Is: "<<num<<endl;

                                      getchar();

                                      getchar();

                                      return 0;

                                  }



                                  第4题:


                                  给定一个奇数n,比如n=3,生成1到n平方的数,如1到9,填入九宫格,使得横竖斜的和都相等。



                                  先来个3*3

                                  8    1    6    

                                  3    5    7    

                                  4    9    2    


                                  n奇数幻方口诀:

                                  1. 数字1放在第一行中间

                                  2. 依次放在上一个数的右上角

                                  2.1如果右边出去了就回到左边(3,4)

                                  2.2 如果上面出去了就放下面(1,2)

                                  2.3 如果右上角有了就放在这个数的下面(参考5,6)

                                  5*5

                                  17    24   1     8    15    

                                  23    5    7     14   16    

                                  4     6    13    20   22    

                                  10    12   19    21   3    

                                  11    18   25    2    9

                                     



                                  第5题:


                                  C和C++有什么区别,能用C实现C++所有功能吗?C能实现多态吗?


                                  第6题:


                                  逻辑题:25匹马,5条赛道,一匹马一个赛道,比赛只能得到5匹马之间的快慢程度,而不是速度,求决胜1,2,3名至少多少场。



                                  比赛7场就可以。

                                  (1)先进行5场比赛定出每组最快的马。

                                  (2)每组最快的马进行一场比赛,这样就可以找到第一名。顺便把这5匹马中最后两名淘汰,因为他们永远不可能进入前3。

                                  (3)分别用第一名所属组的第2,3名马和第2名所属组的第1,2名马和第3名组的第1名马进行1场比赛,定出2,3名马

                                  至此比赛完毕



                                  第7题:


                                  请用c++ 实现stl中的string类,实现构造,拷贝构造,析构,赋值,比较,字符串相加,获取长度及子串等功能。



                                  #include <utility>

                                  #include <string.h>

                                  classString

                                  {

                                  public:

                                      String():data_(newchar[1])

                                      {

                                          *data_ = '\0';

                                      }

                                      String(const char * str):data_(newchar[strlen(str) + 1])

                                      {

                                          strcpy(data_, str);

                                      }

                                      String(const String & rhs)

                                          : data_(newchar[rhs.size() + 1])

                                      {

                                          strcpy(data_, rhs.c_str());

                                      }

                                      /* Delegate constructor in C++11

                                      String(const String& rhs):String(rhs.data_)

                                      {

                                      }

                                      */

                                      ~String()

                                      {

                                          delete[] data_;

                                      }

                                      /* Traditional:

                                      String& operator=(const String& rhs)

                                      {

                                          String tmp(rhs);

                                          swap(tmp);

                                          return *this;

                                      }

                                      */

                                      String &operator=(String rhs)// yes, pass-by-value

                                      {

                                          swap(rhs);

                                          return*this;

                                      }

                                      // C++ 11

                                      String(String &&rhs): data_(rhs.data_)

                                      {

                                          rhs.data_ = nullptr;

                                      }

                                      String &operator=(String && rhs)

                                      {

                                          swap(rhs);

                                          return*this;

                                      }

                                      // Accessors

                                      size_t size() const

                                      {

                                          return strlen(data_);

                                      }

                                      const char * c_str() const

                                      {

                                          return data_;

                                      }

                                      void swap(String & rhs)

                                      {

                                          std::swap(data_, rhs.data_);

                                      }

                                  private:

                                      char *data_;

                                  };


                                  第8题:

                                  1.进程和线程的区别

                                  2.存储过程,及优点

                                  3.static关键字,static全局变量与普通全局变量的区别,static局部变量与普通变量的区别,static函数与普通函数的区别

                                   


                                  第9题:

                                  1、实现memcpy函数

                                  2、剑指offer面试题3(剑指offer面试题3:二维数组中的查找)

                                  3、剑指offer面试题21(剑指offer面试题21:包含min函数的栈)

                                   

                                  第10题:

                                  系统设计题

                                  微博中的url往往很长,发送前要转化为tinyurl

                                  1、url如何转为tinyurl编码

                                  2、如果用户输入一个已经转换过的URL,如何快速定位到已经生成了的tinyurl

                                  3、如果数据为10亿条,需要10个tinyurl服务器,怎么设计?


                                     



                                  关联标签:
                                  彩票网址平台