迅雷笔试真题(2)

招聘笔试题2018-11-22王新老师

相关知识点:什么函数不能声明为虚函数?

  一个类中将所有的成员函数都尽可能地设置为虚函数总是有益的。

  设置虚函数须注意:

  1:只有类的成员函数才能说明为虚函数;

  2:静态成员函数不能是虚函数;

  3:内联函数不能为虚函数;

  4:构造函数不能是虚函数;

  5:析构函数可以是虚函数,而且通常声明为虚函数。

  10、下列对函数double add(int a , int b)进行重载,正确的是()

  A、int add(int a ,int b ,int c)

  B、int add(double a , double b)

  C、double add(double a , double b)

  D、int add(int a , int b)

  三、填空题(15空,每空2分)

  1、以下代码是用来计算100以内的素数的个数,请把相应的空填上。

  [cpp] view plaincopystruct prime_number_node

  {

  int prime_number;

  prime_number_node* next;

  };

  int calc_prime_number()

  {

  prime_number_node* list_head = new prime_number_node();

  list_head->next = NULL;

  list_head->prime_number = 2;

  prime_number_node* list_tail = list_head;

  for(int number = 3 ; number < 100 ; number++)

  {

  int remainder;

  prime_number_node* cur_node_ptr = list_head;

  while(cur_node_ptr != NULL)

  {

  remainder = number%cur_node_ptr->prime_number;

  if(remainder == 0)

  {

  //1

  }

  else

  {

  //2

  }

  }

  if(remainder != 0)

  {

  prime_number_node* new_node_ptr = new prime_number_node();

  new_node_ptr->prime_number = number;

  new_node_ptr->next = NULL;

  list_tail->next = new_node_ptr;

  //3

  }

  }

  int result = 0;

  while(list_head != NULL)

  {

  result++;

  prime_number_node* temp_ptr = list_head;

  list_head = list_head->next;

  //4

  }

  return result;

  }

  1、2、3、4四行代码依次为:break;

  cur_node_ptr = cur_node_ptr->next;

  list_tail = list_tail->next;

  delete temp_ptr;

  2、已知集合A和B的元素分别用不含头结点的单链表存储,函数difference()用于求解集合A与B的差集,并将结果保存在集合A的单链表中。例如,若集合A={5,10,20,15,25,30},集合B={5,15,35,25},完成计算后A={10,20,30}。

  链表结点的结构类型定义如下:

  [cpp] view plaincopystruct node

  {

  int elem;

  node* next;

  };

  void difference(node** LA , node* LB)

  {

  node *pa , *pb , *pre , *q;

  pre = NULL;

  //1

  while(pa)

  {

  pb = LB;

  while( ) //2

  pb = pb->next;

  if( ) //3

  {

  if(!pre)

  *LA = ; //4

  else

  = pa->next; //5

  q = pa;

  pa = pa->next;

  free(q);

  }

  else

  {

  ; //6

  pa = pa->next;

  }

  }

  }

  1、2、3、4、5、6六行代码依次为

  pa = *LA;

  pb && pa->elem != pb->elem

  pb

  pa->next

  pre->next

  pre = pa;

  代码中的指针pa用于指向集合A的元素;pb指向集合B的元素;临时指针q指向需要被删除的元素;pre用于实现删除时结点的链接,与pa保持所指结点的前后继关系。 更多知名名企笔试题目推荐参考:
金光纸业笔试题目
扬智科技笔试题目
完美时空笔试试题
雅虎软件测试笔试真题

相关推荐

猜你喜欢

大家正在看

换一换