腾讯2015校招笔试题选择题部分

来源:互联网 发布:unity3d vr材质 编辑:程序博客网 时间:2024/04/28 18:50

1、 如果MyClass为一个类,执行”MyClass a[5], *b[6]”语言会自动调用该类构造函数的次数是() B

A. 2         B.5          C. 4         D.9

解析MyClass a[5],会创建5个对象,所以会自动调用5次构造函数,但是MyClass *b[6],这不会自动调用构造函数,因为这是声明一个指向6个元素的数组的指针,指针声明的时候是不分配空间的,所以不会调用构造函数,没有指向一个有效的内存空间。

2、下面程序的运行结果是() C

#include

using namespace std;

class Base

 {

int x;

public:

Base(int b):x(b) {}

virtual voiddisplay()

{

cout<<x<<endl;

}

};

class Derived:public Base

{

int y;

public:

Derived(intd):Base(d),y(d) {}

void display()

{

cout<<y<<endl;

}

};

int main()

{

Base b(2);

Derived d(3);

b.display();

d.display();

Base *p=&d;

p->display();

system("pause");

return 0;

}

A. 2 2 3           B.3 2 2             C.2 3 3            D.2 3 2

解析:典型的多态。b.display()会调用基类的方法,d.display()会调用子类的方法。d是子类对象,因此p->display()会调用子类的方法。

3、在C++语言中,下面描述中,正确的是()B

A. 一个基类的声明中有纯虚函数,该基类派生类一定不再是抽象类

B. 函数类型不能作为重载函数的调用的依据

C. 静态数据成员不是所有对象所公有的

D. 内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方

解析:A.基类也可以还是抽象类;B正确,函数重载只能是改变函数参数的个数和类型;

C错误,静态数据成员是所有对象所公有的;D错误,内联函数是在编译时将该函数的目标代码插入每个调用该函数的地方。

4、有如下程序:执行后的输出结果应该是()D

#include <iostream>

using namespace std;

class Base

{

public:

~Base()

{

cout<<"BASE";

} ;

};

class DERIVED:public Base

{

public: ~DERIVED()

{

cout<<"DERIVED";

} ;

};

int main()

{

DERIVED x;

return 0;

}

A. BASE B. DERIVED C. BASEDERIVED D. DERIVEDBASE

解析:x是子类对象,子类在调用构造函数时,会先调用父类的构造函数,再调用子类的构造函数;在调用析构函数时,会先调用子类的析构函数,再调用父类的析构函数。

5、典型的路由选择方式有两种,静态路由和动态路由。以下描述正确的是()AD

A. 当动态路由与静态路由发生冲突时,以静态路由为准

B. 当动态路由与静态路由发生冲突时,以动态路由为准

C. 静态路由适用于网络规模大、网络拓扑复杂的网络

D. 动态路由适用于网络规模大、网络拓扑复杂的网络

解析:静态路由是在路由器中设置的固定的路由表静态路由的优点是简单、高效、可靠,一般用于网络规模不大、拓扑结构固定的网络中。动态路由是网络中的路由器之间相互通信,传递路由信息,利用收到的路由信息更新路由器表的过程。动态路由适用于网络规模大、网络拓扑复杂的网络。在所有的路由中,静态路由优先级最高,当动态路由与静态路由发生冲突时,以静态路由为准。

6、下列哪些属于分布式文件系统?()D

A. HBase

B. Spark

C. MapReduce

D.KFS

E. Hive

解析:HBase是一个分布式、面向列的数据库;Spark是一个大数据架构;MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算;KFS是一个专门为数据密集型应用(搜索引擎,数据挖掘等)而设计的存储系统,是一个分布式文件系统;hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表。

7、 下面程序的输出结果是()

#include <iostream>

using namespace std;

int i=0;

int fun(int n)

{

static int a=2;

a++;

return a*n;

}

int main()

{

int k=5;

{

int i=2;

k+=fun(i);

}

k+=fun(i);

cout<<k;

return 0;

}

A. 13       B. 14      C.15        D. 16

解析:答案应该是11。在函数内部定义的i是个局部变量,只在大括号代码段内有用,大括号内代码段执行完后k的值为11,第二次调用fun函数时,i的值变为全局变量的值0。因此最后的结果为11。

8、在Java中,以下那些数据结构可以以常量的时间复杂度0(1)添加元素()AD

A. HashMap            B.ArrayList             C. TreeMap             D. LinkedList

解析:HashMap可以做到常量时间添加元素;ArrayList内部实现是基于数组的,数组元素不能保证在O(1)时间内任意添加一个元素;TreeMap内部是基于红黑树的,插入和删除操作都涉及到树结构的调整;LikedList是基于链表的,链表插入操作的复杂度是O(1)。

9、若一棵二叉树的前序遍历为a, e, b, d, c,后序遍历为b, c, d, e, a,则根节点的孩子节点为()A

A. 只有e        B. 有e、b           C.有e、cD. 无法确定

解析:根据二叉树的前序和后序遍历,可以直接还原二叉树。

10、一面墙,单独工作时,A花18小时砌好,B花24小时,C花30小时,现A, B, C的顺序轮流砌,每人工作1小时换班,完工时,B总共干了多少小时?()B

A. 8小时        B.7小时44分      C.7小时         D. 6小时48分

解析:假设总工作量是360,则A每小时完成20,B每小时完成15,C每小时完成12。每个人工作7小时后,完成的工作量是329,还差31。A再工作1小时后,还剩11。则B需要再工作11/15*60=44分钟。所以B总共干了7小时44分钟。

11、32位机器上定义如下结构体:

struct xx {

        long long _x1;

char _x2;

int _x3;

char _x4[2];

static int _x5;

 };

int xx::_x5;

请问sizeof(xx)的大小是()D

A.19        B.20         C.15               D.24

解析:_x5位static变量,不占struct的内存空间。_x1对齐大小8个字节,_x2和_x4对齐大小为1个字节,_x3对齐大小为4个字节,所以xx的对齐大小为8字节。字节对齐图如下:

|----------longlong----------|

|char|--------|-------int-------|

char|char|--------------------|

所以xx总共会占24个字符。

12、储蓄盒中2分和5分的硬币的个数相等,恰好分成钱数也相等的两份,问:可能是多少元?()AC

A.2.1元          B.2.4元                   C.2.8元                   D. 3.0元

解析:个数相等,肯定是0.7的倍数,A和C都有可能。

13、入栈序列是:a1,a3,a5,a2,a4,a6出栈序列是:a5,a4,a2,a6,a3,a1,则栈的容量最小是多少()C

A. 2         B.3   C. 4        D. 5

解析:具体出入栈操作:a1入栈,a3入栈,a5入栈,a5出栈,a2入栈,a4入栈,此时栈内元素的大小为4,a4出栈,a2出栈,a6入栈,a6出栈,a3出栈,a1出栈。栈中元素最多的时候是4个,因此栈的容量最小是4。

14、TCP报文首部信息中与关闭连接有关的是()BD

A.URG      B.ACK  C. SYN      D.FIN

15、

int foo(int n)

{

if (n<=1)

return 1;

return n*foo(n-1);

}

上面算法时间复杂度是()B

A. 0(log2n) B. 0(n) C.0(nlog2n) D. 0(n2)

解析:要调用函数foo n次,foo每次执行都是线性时间,所以复杂度是O(n)。

16、turbo c环境下,下面程序运行的结果是()D

#include

int main()

{

printf("\n");

int a[5]= {1,2,3,4,5};

int *p,**k;

p=a; k=&p;

printf("%d",*(p++));

printf("%d",**k);

return 0;

}

A.11         B.21               C.22                 D. 12

解析:p指向的是数组a的首地址,k指向指针a的地址。*(p++)会先返回p指向的值,即1,再使p指向a[1]的地址。此时,**k的值是2。因此,程序执行的结果是12。

17、现有一个包含m个节点的三叉树,即每个节点都有三个指向孩子结点的指针,请问:在这3m个指针中有()个空指针。C

A. 2m       B.2m-1         C. 2m+1          D.3m

解析:最快的办法,可以直接用特例法。

18、在下面的描述中,哪些不属于数据库安全性的措施()AC

A. 普通ZIP压缩存

B. 关联加密存储

C. 数据分段

D. 授权限制

E. 数据多机备份

解析:A和C跟数据库安全无关。

19、以下哪些工具可以写实源机器与目标机器之间的路由数量,以及各路由之间的RTT()A

A. Traceroute         B.Ping             C. FTP              D. Telnet

20、流量劫持是网络安全中常见的安全威胁,下列哪些情况可能会造成流量劫持?()ABC

A. MAC地址欺骗

B. DNS劫持

C. 伪造的DHCP服务器

D. 使用https协议

21、以下哪些可以工作于数据链路层?()AC

A. tcpdump B. 集线器 C.交换机 D. 路由器

22、UDP报头中没有下面那些信息?()ABC

A.目的地址 B.窗口大小 C.序列号 D.检验和

解析:UDP报头中包括源端口号、目标端口号、长度和校验和。

23、以下方法那些可以让一个元素浮动起来()BC

A.mutable      B.absolute     C.fixed    D. static

解析:网上看到的答案,不懂。。。。

24、在竞选条件(race condition)的情况下,两线程执行如下代码段,其中count为共享变量,线程1执行代码段A,线程2指向代码段B,那么变量count的值可能为()ABC

int count =10;

代码段A: Thread_1()

{

//do something

count++;

}

代码段B: Thread_2()

{

//do something

count--;

}

A.9                   B.10                 C.11                 D.12

25、加入john看到摆钟的时间是17:32分,请问下这时,时针跟分针的最小夹角是多少度?()

A.25度           B.26度           C.28度           D. 32度

解析:时针转过的角度为5/12*360+32/60*30=166度,分针转过的角度为32/60*360=192度,时针跟分针的最小夹角是192-166=26度。

0 0
原创粉丝点击