首页 > 笔经面经 > 美团点评2018秋招笔试题

美团点评2018秋招笔试题

头像
为铜
发布于 2018-05-02 23:37:30
回复0 | 赞 0 | 浏览6648

 很感谢牛客这个平台让我见识了许多题目,现在我也要来分享一下自己做过的美团点评笔试题啦~~

21、下列程序的运行结果是A::A()&B::()&A::~A()&,请为横线处选择合适的程序(

#include<iostream>

#include<string>

using namespace std;

Class A

{

  Int *a;

  public:

  A(int i)

{

  a = new int(i);

  cout<<”A::A()”<<”&”;;

}

~A()

{

delete a;

cout<<”A::~A()”<<”&”;

}

};

class B:public A

{

public:

B(int i,string s):A(i)

{

b =          ;

cout<<”B::B()”<<”&”;

}

~B()

{

delete[]b;

cout<<”B::~B()”<<”&”;

}

private:

string *b;

};

void fun(A *a)

{

delete a;

}

int main()

{

A *a=new B(0,”China”);

fun(a);

}

A.  new char(s)

B.  new string(s)

C.  new string[s]

D.  new char[s]

22、下列不属于虚拟机转移类指令的是( D  

A.  call

B.  goto

C.  ifrelop

D.  break

23、除了1和它本身之外,不能被其他数整除的整数称为素数。以下程序将50~100的所有素数存放到数组b中,并依次输出他们。下列横线处应填写的内容是(

int main()

{int b[50],n, i, j=0;

for(n=50;n<=100;n++)

 {

   for(i=2;i<n;i++)

   if(     [1]       )break;

   if(     [2]       )b[j++]=n;

}

 

count<<”这些素数是:”<<endl;

for(i=0;i<     [3]       ;i++)cout<<b[i];

return 0;

}

A.  [1]n%i==0

[2]i<n

[3]j-1

B.  [1]n%i>0

[2]i<n

[3]j

C.  [1]n%i>0

[2]i>=n

[3]j-1

D.  [1]n%i==0

[2]i>=n

[3]j

 

24、如果想要完全封装隔离具体实现,让外部只能通过接口来操作封装体,应该选择何种设计模式:(

A.  策略模式

B.  简单工厂

C.  装饰模式

D.  访问者模式

25、数据流图和程序流程图的区别是(

A.  数据流图适合描述系统中某个加工的执行细节,而程序流程图适合宏观地分析一个组织的业务概况

B.  数据流图中的箭头是数据流,程序流程图中的箭头是控制流

C.  数据流图就是传统意义上的程序流程图

D.  一般在数据流图中和程序流程图中,都能看出加工的执行次序

26、以下有关测试(testing)与排错(或称调试,debugging)的说法,正确的是( B )(这题好像都不对)

A.  测试时必须了解对象细节,而排错时刻忽略对象细节

B.  测试和排错的结果都不可预测

C.  先进行排错,后进行测试

D.  测试与排错都是相同的活动

 

27、TCP通道中,假设窗口为65535字节,往返时间RTT0.1秒,那么最大吞吐量为(B  

A.  13.107

B.  5.2428Mbps

C.  10.4856Mbps

D.  6.5535Mbps

28、Java中,以下声明哪些是合法的(  C  

A.  string c = ni

B.  char a = ‘ni’

C.  char b = ‘

D.  float d = 1.1

29、以下程序的运行结果是( A  

int a = 10;

System.out.println(“a=”+((a<10)?9.9:10));

A.  a= 10.0

B.  编译出错

C.  a=9.9

D.  a=10

30、  

  <c:set var=”Test”  scope = “Session” > ${1+1}</c:set>

  <c:out value = ${Test}/>

以上代码在浏览器中的输出是(

A.  2

B.  1+1

C.  null

D.  $(1+1)

31

  class Employee{

  private double salary;

 

  public double getSalary(){

}

}

  class Manager extends Employee

{

 private double bonus;

 

public void setBonus(double b){

bonus = b;

}

public double getSalary()

{

        

}

}

如有上未完成程序,试问如何设计Mannager类的getSalary方法来实现Mannager的薪水为薪水和奖金的总和:( A

A.  double baseSalary = super.getSalary();

return baseSalary + bonus

B.  double baseSalary =getSalary();

return baseSalary + bonus

C.  return getSalary() + bonus

D.  return salary + bonus

32、对关键字{30,25,28,40,15,10,38,35,20,26}序列进行希尔排序,依次取增量d=3时,希尔排序的结果是(

A.  26,15,10,30,25,20,38,35,28,40

B.  30,25,10,38,15,20,40,35,28,26

C.  30,15,10,38,25,20,40,35,28,26

D.  26,25,10,30,15,20,38,35,28,40

33、以下说法不正确的是(

A.  Sherwood算法是减少或消除好的和坏的之间的差别

B.  Monte carlo算法总能求的问题的一个解,但该解未必正确

C.  数值概率算法一般是求数值计算问题的近似解

D.  Las vegas算法一定能求的问题的正确解

34、一个石头堆里有27个石子,小明一次可以拿走3个、6个或者10个石子,问小明最少多少次可以将石头取完(

A.  9

B.  7

C.  8

D.  5

35

  #include<bits/stdc++.h>

  using namespace std;

  int solve(int x){

if(x == 0){

 return 0;

  }

  if(x%2) ==0){

  return 2 + solve(x -1);

}

else{

  return 1 + solve(x - 1);

}

}

int main(){

 int n = 10;

 int ans = solve(n);

 cout<<ans<<endl;

 return 0;

}

上述程序的输出为( C

A.  10

B.  5

C.  15

D.  20

36、以下程序运行时会出现错误,请根据行号找出错误的位置(

#include<iostream>

#include<fstream>

#include<string>

using namespace std;

struct list

{

 string no;

 string name;

};

int mian()

{

 sruct list s;

 string num;

 fstream infile(“test.txt”,ios::out);  //1

 cin>>s.no>>s.name;  //2

 infile<<s.no<<” “<<s.name<<end; //3

 long posend = infile.tellp(); //4

 infile.seekg(0,ios::beg); //5

 cin >>num;

 do

}

 infile.read((char *)&s,sizeof(list)); //6

}while(s.no! = num&&infile.tellg()!=posend);  //7

 if(s.no == num)  //8

cout<<s.no<<” “<<s.name<<endl;

else

cout<<”error”<<endl;

infile.close();

return 0;

}

A.  6

B.  8

C.  4.5

D.  7

37、F={AB->D,A->B,D->BC,C->B},则F的最小覆盖Fmin为( C

A.  Fmin={A->D,C->B,A->B,D->C}

B.  Fmin={A->D,A->B,D->B,C->B,D->C}

C.  Fmin={A->D,C->B,D->C}

D.  Fmin={AB->D,A->B,D->BC,C->B}

38、一棵树有63个节点,那么它有(  )条边,最多有(  )个叶子节点  B

A.  62  62

B.  62  32

C.  63  32

D.  63  62

39、在一个请求分页系统中,采用LRU页面置换算法时,假如有一个作业的页面走向为1,2,1,5,4,1,3,4,2,4。当分配给该作业的物理块数为3时,访问过程中发生的缺页次数为(

A.  3

B.  5

C.  4

D.  6

40、设字母表,下列哪个文法G[Z],使其生成的语言为L = {anbncm|n1,m0}  C 

A.  Z->AB

A->aAb|ab

B->cB|Ԑ

B.   Z->AB

A->Ab|ab

B->cB|Ԑ

C.  Z->AB

A->aAb|a

B->cB|Ԑ

D.  Z->AB

A->aAbc|ab

B->cB|Ԑ

41、设某二叉树的前序遍历序列为ABDEFCGHIJ,中序遍历序列为EFDBAGCIHJ,则该二叉树的后序遍历序列为(

A.  ABDFECGIJH

B.  DEFBIJHCGA

C.  ACHJIGBDEF

D.  FEDBGIJHCA

42

 #include<bits/stdc++.h>

 using namespace std;

 struct point{

  int val;

point(int x = 0):val(x){}

bool operator < (const point &x) const{

return x.val<val;

}

bool operator + (const point &x) const{

return val-x.val;

}

}a[10];

int main(){

  int n = 5;

  for(int i = 1;i<=n;++i){

  a[i] = point(i);

}

sort(a+1,a+1+n);

cout<<(a[1]+a[2]<<endl;

return 0;

}

上述程序的输出为( D   

A.  3

B.  9

C.  -1

D.  1

43、以下程序运行的运行结果是(A

#include<iostream>

using namespace std;

class B0

{

public:

B0(int n)

{

n1=n;

}

int n1;

void fun()

{

cout<<”B0”<<endl;

}

};

class B1:virtual public B0

{

public:

B1(int a)B0(a){}

int n2;

};

class B2:virtual protected B0

{

public

B2(int a):B0(a){}

int n3;

};

class D1:private B1,private B2

{

public:

D1(int a)B0(a),B1(a),B2(a){}

int n4;

void fun()

{

cout<<”D1”<<endl;

}

};

int main()

{

 D1 d1(0);

 d1.n4=3;

 d1.fun();

}

A.  D1

B.  无输出结果

C.  B0

D.  程序有错误,不能产生输出结果

 

 

多选题

1、用例在UML建模中是最重要的一个元素,一个完整的用例应该有哪几个部分组成( ABCD 

A.  场景

B.  后置条件

C.  前置条件

D.  参与者

2、下列说法正确的是(ABCD  

A.  正整数n>1,则n是一个素数当且仅当(n-1)!-1(mod n)

B.  如果p是一个素数,且0<x<p,则方程x^21(mod p)的解x=1 , p-1

C.  如果p是一个素数,且0<a<p,则a^(p-1)(mod p)

D.  T[1:n]是一个含有n个元素的数组。当|{i|T[i]=x}|>n/2时,称元素x是数组T的主元素

5、下面有关线索二叉树的说法正确的是( AD

A.  含有N个结点的线索二叉树中含有N+1个空指针域

B.  在线索二叉树中,p所指结点没有左子树的充要条件是p->left=NULL

C.  含有N个结点的线索二叉树中含有N个空指针域

D.  在线索二叉树中,p所指结点没有左子树的充要条件是p->ltag=1

6、下列说法正确的是( A D

A.  在物理层可以用中继器实现连接功能

B.  Windows中,用pconfig可以获取本地MAC地址

C.  其他选项全错

D.  域名在服务器上存放有internet主机的域名和IP地址

7、在互斥模型中,下列说法正确的是( BC 

A.  对同一信号的PV操作在同一进程

B.  对同一信号的PV操作在不同进程

C.  信号量S初始为1

D.  信号量S初始为0

 

 

编程题:

 

被 7 整除

时间限制:C/C++语言 2000MS;其他语言 4000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB

题目描述:

小萌非常喜欢能被 7 整除的数字,比如 7,21,121996,等等。有一天他得到了 n 个正整数,她想用这些数制造出更多的能够被 7 整除的数。于是她从这 n 个数中选出两个数,然后将一个数写在另一个数的前面,以此得到一个新的数。按这种方法她一共可以得到个数,她想知道在这些数中,有多少个是能被 7 整除的。

输入

第一行包含一个整数n。2 ≤n≤ 105

第二行包含n个正整数ai。1 ≤ai≤109

输出

输出对应的答案。

 

样例输入

3

127 1996 12

样例输出

4

 

Hint

一共有 4 种组合方式,其中:把 12 写在 1996 前面得到 121996;把 127 写在 12 前面得到12712;把 1996 写在 12 前面得到 199612;把 1996 写在 127 前面得到 1996127;都是可以被 7 整除的,其余的组合方式不能被 7 整除。

 

 

 

关灯游戏

时间限制:C/C++语言 2000MS;其他语言 4000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB

题目描述:

在 Alice 生日的那天,Bob 送给了她 n 个灯泡。他们决定用这些灯泡玩一个游戏:他们把这些灯泡从左往右排成一行,在初始时,有些灯泡是点亮的,有些灯泡是熄灭的。接下来,他们轮流进行操作,Alice 首先操作。在每一次操作中,轮到操作的人需要选择一个点亮的灯泡,然后把它以及它右边的所有灯泡的状态进行一次改变,即把点亮的灯泡熄灭,把熄灭的灯泡点亮。如果在某一个人操作完之后,所有的灯泡都变成了熄灭状态,那么那个人就赢得了游戏。Alice 和 Bob 都想赢得游戏,在他们都足够聪明的情况下,最后谁会赢呢?

输入

第一行包含一个整数n,表示灯泡的个数。1≤n≤105 

第二行包含n个 0 或 1,表示初始时灯泡的状态,0 表示熄灭,1 表示点亮。

输出

如果最后 Alice 能赢,输出 Alice,或则输出 Bob。

 

样例输入

3

0 1 1

样例输出

Alice

 

Hint

Input Sample 2

5

1 1 1 0 0

 

Output Sample 2

Bob

 

 

0条回帖

回帖
加载中...

本文相关内容

近期热帖

热门推荐

扫一扫,把题目装进口袋

牛客网,程序员必备求职神器

扫描二维码,进入QQ群

扫描二维码,关注牛客网公众号

  • 公司地址:北京市朝阳区大屯路东金泉时代3-2708北京牛客科技有限公司
  • 联系方式:010-60728802(电话) admin@nowcoder.com
  • 牛客科技©2018 All rights reserved
  • 京ICP备14055008号-4
  • 京公网安备 11010502036488号