美团点评2018秋招笔试题

单选题

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

#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中,并依次输出他们。下列横线处应填写的内容是( D  )

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、如果想要完全封装隔离具体实现,让外部只能通过接口来操作封装体,应该选择何种设计模式:( B  )

A.  策略模式

B.  简单工厂

C.  装饰模式

D.  访问者模式

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

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

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

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

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

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

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

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

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

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

27、TCP通道中,假设窗口为65535字节,往返时间RTT为0.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}/>

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

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  )

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、以下说法不正确的是( D  )

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

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

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

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

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

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、以下程序运行时会出现错误,请根据行号找出错误的位置( D  )

#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时,访问过程中发生的缺页次数为( D  )

A.  3

B.  5

C.  4

D.  6

40、设字母表,下列哪个文法G[Z],使其生成的语言为L = {anbncm|n≥1,m≥0}(  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,则该二叉树的后序遍历序列为( D  )

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

编程题

1、被 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 整除。


2、关灯游戏

时间限制: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

个人资料
crazybean
等级:8
文章:61篇
访问:15.7w
排名: 5
上一篇: 2018秋招笔试科大讯飞java笔试试题
下一篇:腾讯2018秋招前端模拟题
猜你感兴趣的圈子:
美团笔试面试圈
标签: 灯泡、b0、infile、d1、getsalary、面试题
隐藏