亚洲一级电影在线观看,九九精品无码专区免费,亚洲AV无码资源在线观看 ,欧美国产高清

名企招聘c++程序員筆試題

時間:2024-10-18 09:27:46 面試筆試 我要投稿
  • 相關推薦

名企招聘c++程序員筆試題

(一) 

  單向鏈表的反轉是一個經常被問到的一個面試題,也是一個非常基礎的問題。比如一個鏈表是這樣的: 1->2->3->4->5 通過反轉后成為5->4->3->2->1。

名企招聘c++程序員筆試題

  最容易想到的方法遍歷一遍鏈表,利用一個輔助指針,存儲遍歷過程中當前指針指向的下一個元素,然后將當前節點元素的指針反轉后,利用已經存儲的指針往后面繼續遍歷。源代碼如下:

  struct linka {

  int data;

  linka* next;

  };

  void reverse(linka*& head) {

  if(head null)

  return;

  linka *pre, *cur, *ne;

  pre=head;

  cur=head->next;

  while(cur)

  {

  ne = cur->next;

  cur->next = pre;

  pre = cur;

  cur = ne;

  }

  head->next = null;

  head = pre;

  }

  還有一種利用遞歸的方法。這種方法的基本思想是在反轉當前節點之前先調用遞歸函數反轉后續節點。源代碼如下。不過這個方法有一個缺點,就是在反轉后的最后一個結點會形成一個環,所以必須將函數的返回的節點的next域置為null。因為要改變head指針,所以我用了引用。算法的源代碼如下:

  linka* reverse(linka* p,linka*& head)

  {

  if(p null || p->next null)

  {

  head=p;

  return p;

  }

  else

  {

  linka* tmp = reverse(p->next,head);

  tmp->next = p;

  return p;

  }

  }

  ②已知string類定義如下:

  class string

  {

  public:

  string(const char *str = null); // 通用構造函數

  string(const string &another); // 拷貝構造函數

  ~ string(); // 析構函數

  string & operater =(const string &rhs); // 賦值函數

  private:

  char *m_data; // 用于保存字符串

  };

  嘗試寫出類的成員函數實現。

  答案:

  string::string(const char *str)

  {

  if ( str null ) //strlen在參數為null時會拋異常才會有這步判斷

  {

  m_data = new char[1] ;

  m_data[0] = '''' ;

  }

  else

  {

  m_data = new char[strlen(str) + 1];

  strcpy(m_data,str);

  }

  }

  string::string(const string &another)

  {

  m_data = new char[strlen(another.m_data) + 1];

  strcpy(m_data,other.m_data);

  }

  string& string::operator =(const string &rhs)

  {

  if ( this &rhs)

  return *this ;

  delete []m_data; //刪除原來的數據,新開一塊內存

  m_data = new char[strlen(rhs.m_data) + 1];

  strcpy(m_data,rhs.m_data);

  return *this ;

  }

  string::~string()

  {

  delete []m_data ;

  }

  1.求下面函數的返回值(微軟)

  int func(x)

  {

  int countx = 0;

  while(x)

  {

  countx ++;

  x = x&(x-1);

  }

  return countx;

  }

  假定x = 9999。 答案:8

  思路:將x轉化為2進制,看含有的1的個數。

  2. 什么是“引用”?申明和使用“引用”要注意哪些問題?

  答:引用就是某個目標變量的“別名”(alias),對應用的操作與對變量直接操作效果完全相同。申明一個引用的時候,切記要對其進行初始化。引用聲明完畢后,相當于目標變量名有兩個名稱,即該目標原名稱和引用名,不能再把該引用名作為其他變量名的別名。聲明一個引用,不是新定義了一個變量,它只表示該引用名是目標變量名的一個別名,它本身不是一種數據類型,因此引用本身不占存儲單元,系統也不給引用分配存儲單元。不能建立數組的引用。

  3. 將“引用”作為函數參數有哪些特點?

  (1)傳遞引用給函數與傳遞指針的效果是一樣的。這時,被調函數的形參就成為原來主調函數中的實參變量或對象的一個別名來使用,所以在被調函數中對形參變量的操作就是對其相應的目標對象(在主調函數中)的操作。

  (2)使用引用傳遞函數的參數,在內存中并沒有產生實參的副本,它是直接對實參操作;而使用一般變量傳遞函數的參數,當發生函數調用時,需要給形參分配存儲單元,形參變量是實參變量的副本;如果傳遞的是對象,還將調用拷貝構造函數。因此,當參數傳遞的數據較大時,用引用比用一般變量傳遞參數的效率和所占空間都好。

【名企招聘c++程序員筆試題】相關文章:

名企招聘有新招02-18

了解名企的招聘渠道02-28

名企面試題02-18

名企面試試題——戴爾02-18

名企刁鉆面試題02-19

名企招聘者評點面試問題02-18

武漢:20家名企取消在高校招聘02-28

名企面試試題 面試題目 Google02-24

不可不知的中外名企招聘標準02-27

普天C++筆試題02-18

主站蜘蛛池模板: 亚洲人成在线观看| 午夜亚洲乱码伦小说区69堂| 亚洲综合色吧| 当阳市| 久久久毛片免费全部播放| 国自产拍偷拍精品啪啪一区二区| 亚洲aⅴ无码成人网站国产app| 曰本无码人妻丰满熟妇5g影院 | 午夜精品久久久久久久爽| 无码avav无码中文字幕| 亚洲の无码国产の无码步美| 综合在线 亚洲 成人 欧美| 亚洲精品不卡av在线播放| 人妻出轨av中文字幕| 好了av第四综合无码久久| 中文字幕无码免费久久99| 日本少妇被黑人xxxxx| 国产高清亚洲精品视bt天堂频 | 人摸人人人澡人人超碰手机版 | 亚洲欧洲日产国码综合在线| 国产成人精品一区二区视频| 图片区小说区视频区综合| 99国产欧美精品久久久蜜芽| 亚洲精品国产电影午夜在线观看| 中文字幕无码免费久久99| 鄂伦春自治旗| 无码人妻AⅤ一区二区三区水密桃 久久久久无码精品国产h动漫 | 欧美人与动牲交xxxxbbbb| 国产av无码专区亚洲版综合| 亚洲国产精品久久久天堂麻豆宅男| 欧美激情性xxxxx高清真| 亚洲第一区无码专区| 国产大陆亚洲精品国产| 高清无码爆乳潮喷在线观看| 平安县| 稷山县| 乱人伦99久久| 婷婷伊人久久大香线蕉av| 午夜精品无人区乱码1区2区| 东京热加勒比无码少妇| 色欲av久久一区二区三区久|