用户名: 密码: 企业 个人
当前位置:89学习网范文文章招聘应聘笔试2017校招c ++笔试题汇总» 正文

2017校招c ++笔试题汇总

[05-15 14:50:43]   来源:http://www.89xue.com  笔试   阅读:90
摘要:head->next = MergeRecursive(head1,head2->next);}return head ;}41. 分析一下这段程序的输出 (Autodesk)class B{public:B(){cout<<"default constructor"<}~B(){cout<<"destructed"<}B(int i):data(i) //B(int) works as a converter ( int -> instance of B){cout<<"constructed b。
2017校招c ++笔试题汇总,标签:笔试范文,http://www.89xue.com

  head->next = MergeRecursive(head1,head2->next);

  }

  return head ;

  }

  41. 分析一下这段程序的输出 (Autodesk)

  class B

  {

  public:

  B()

  {

  cout<<"default constructor"<

  }

  ~B()

  {

  cout<<"destructed"<

  }

  B(int i):data(i) //B(int) works as a converter ( int -> instance of B)

  {

  cout<<"constructed by parameter " << data <

  }

  private:

  int data;

  };

  B Play( B b)

  {

  return b ;

  }

  (1) results:

  int main(int argc, char* argv[]) constructed by parameter 5

  { destructed B(5)形参析构

  B t1 = Play(5); B t2 = Play(t1);   destructed t1形参析构

  return 0;               destructed t2 注意顺序!

  } destructed t1

  (2) results:

  int main(int argc, char* argv[]) constructed by parameter 5

  { destructed B(5)形参析构

  B t1 = Play(5); B t2 = Play(10);   constructed by parameter 10

  return 0;               destructed B(10)形参析构

  } destructed t2 注意顺序!

  destructed t1

  42. 写一个函数找出一个整数数组中,第二大的数 (microsoft)

  答案:

  const int MINNUMBER = -32767 ;

  int find_sec_max( int data[] , int count)

  {

  int maxnumber = data[0] ;

  int sec_max = MINNUMBER ;

  for ( int i = 1 ; i < count ; i++)

  {

  if ( data[i] > maxnumber )

  {

  sec_max = maxnumber ;

  maxnumber = data[i] ;

  }

  else

  {

  if ( data[i] > sec_max )

  sec_max = data[i] ;

  }

  }

  return sec_max ;

  }

  43. 写一个在一个字符串(n)中寻找一个子串(m)第一个位置的函数。

  KMP算法效率最好,时间复杂度是O(n+m)。

  44. 多重继承的内存分配问题:

  比如有class A : public class B, public class C {}

  那么A的内存结构大致是怎么样的?

  这个是compiler-dependent的, 不同的实现其细节可能不同。

  如果不考虑有虚函数、虚继承的话就相当简单;否则的话,相当复杂。

  可以参考《深入探索C++对象模型》,或者:

  http://blog.csdn.net/wfwd/archive/2006/05/30/763797.aspx

  45. 如何判断一个单链表是有环的?(注意不能用标志位,最多只能用两个额外指针)

  struct node { char val; node* next;}

  bool check(const node* head) {} //return false : 无环;true: 有环

  一种O(n)的办法就是(搞两个指针,一个每次递增一步,一个每次递增两步,如果有环的话两者必然重合,反之亦然):

  bool check(const node* head)

  {

  if(head==NULL) return false;

  node *low=head, *fast=head->next;

  while(fast!=NULL && fast->next!=NULL)

  {

  low=low->next;

  fast=fast->next->next;

  if(low==fast) return true;

  }

  return false;

  }

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] 


Tag:笔试笔试范文招聘应聘 - 笔试