|
篇一:2016腾讯笔试真题
2016腾讯笔试题
2016腾讯笔试题
试卷类型:软件开发A1
考试时长:12分钟
一 不定项选择题(共25题,每题4分,共1分,少选、错选、多选均不得分)
1 已知一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB,中序遍历是:CDFEGHAB,则后序遍历结果为:(D)
A.CFHGEBDA B.CDFEGHBA C.FGHCDEBA D.CFHGEDBA
2 下列哪两个数据结构,同时具有较高的查找和删除性能?(CD)
A.有序数组 B.有序链表 C.AVL树 D.Hash表
3 下列排序算法中,哪些时间复杂度不会超过nlogn?(BC)
A.快速排序 B.堆排序 C.归并排序 D.冒泡排序
4 初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:(A)
A.8 3 2 5 1 6 4 7
B.3 2 8 5 1 4 6 7
C.3 8 2 5 1 6 7 4
D.8 2 3 5 1 4 7 6
5 当n=5时,下列函数的返回值是:(A)
[cpp] view plaincopy
int foo(int n)
if(n<2)return n;
return foo(n-1)+foo(n-2);
A.5 B.7 C.8 D.1
6S市A,B共有两个区,人口比例为3:5,据历史统计A的犯罪率为.1%,B区为.15%,现有一起新案件发生在S市,那么案件发生在A区的可能性有多大?(C)
A.37.5% B.32.5% C.28.6% D.(面试题目:什么样的工作环境适合你)26.1%
7Unix系统中,哪些可以用于进程间的通信?(BCD)
A.Socket B.共享内存 C.消息队列 D.信号量
8 静态变量通常存储在进程哪个区?(C)
A.栈区 B.堆区 C.全局区 D.代码区
9 查询性能(B)
A. 在Name字段上添加主键
B. 在Name字段上添加索引
C. 在Age字段上添加主键
D. 在Age字段上添加索引
1IP地址131.153.12.71是一个(B)类IP地址。
A.A B.B C.C D.D
11 下推自动识别机的语言是:(C)
A. 型语言 B.1型语言 C.2型语言 D.3型语言
12 下列程序的输出是:(D)
[cpp] view plaincopy
#define add(a+b) a+b
int main()
printf("%d
",5*add(3+4));
return ;
A.23 B.35 C.16 D.19
13 浏览器访问某页面,HTTP协议返回状态码为43时表示:(B)
A 找不到该页面
B 禁止访问
C 内部服务器访问
D 服务器繁忙
14 如果某系统15*4=112成立,则系统采用的是(A)进制。
A.6 B.7 C.8 D.9
15 某段文本中各个字母出现的频率分别是{a:4,b:3,o:12,h:7,i:1},使用哈夫曼编码,则哪种是可能的编码:(A)
Aa()b(1)h(1)i(1)o(11)
Ba()b(1)h(1)o(1)i(1)
Ca()b(1)h(1)i(1)o()
Da()b(1)h(1)o()i(1)
16TCP和IP分别对应了OSI中的哪几层?(CD)
AApplication layer
BPresentation layer
CTransport layer
DNetwork layer
17 一个栈的入栈序列是A,B,C,D,E,则栈的不可能的输出序列是?(C)
A.EDCBA B.DECBA C.DCEAB D.ABCDE
18 同一进程下的线程可以共享以下?(BD)
A. stack B.data section C.register set D.file fd
19 对于派生类的构造函数,在定义对象时构造函数的执行顺序为?(D)
1:成员对象的构造函数
2:基类的构造函数
3:派生类本身的构造函数
A.123 B.231 C.321 D.213
2 如何减少换页错误?(BC)
A进程倾向于占用CPU
B访问局部性(locality of reference)满足进程要求
C进程倾向于占用I/O
D使用基于最短剩余时间(shortest remaining time)的调度机制
21 递归函数最终会结束,那么这个函数一定?(B)
A 使用了局部变量
B 有一个分支不调用自身
C 使用了全局变量或者使用了一个或多个参数
D 没有循环调用
22 编译过程中,语法分析器的任务是(B)
A分析单词是怎样构成的
B 分析单词串是如何构成语言和说明的
C 分析语句和说明是如何构成程序的
D 分析程序的结构
23 同步机制应该遵循哪些基本准则?(ABCD)
A.空闲让进 B.忙则等待 C.有限等待 D.让权等待
24 进程进入等待状态有哪几种方式?(D)
A CPU调度给优先级更高的线程
B 阻塞的线程获得资源或者信号
C 在时间片轮转的情况下,如果时间片到了
D 获得spinlock未果
25 设计模式中,属于结构型模式的有哪些?(BC)
A状态模式 B装饰模式 C 代理模式 D 观察者模式
二、填空题(共4题1个空,每空2分,共2 分)
1 设有字母序列{Q,D,F,X,A,P,N,B,Y,M,C,W},请写出按二路归并方法对该序列进行一趟扫描后的结果为DQFXAPBNMYCW。
2 关键码序列(Q,H,C,Y,Q,A,M,S,R,D,F,X),要按照关键码值递增的次序进行排序,若采用初始步长为4的Shell的排序法,则一趟扫描的结果是QACSQDFXRHMY;若采用以第一个元素为分界元素的快速排序法,则扫描一趟的结果是FHCDQAMQRSYX。
3 二进制地址为111111,大小为(4)1和(16)1块的伙伴地址分别为:_,_。
4 设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左、右两个儿子的结点个数N2;只有非空左儿子的个数NL;只有非空右儿子的结点个数NR和叶子结点个数N。N2,NL,NR、N都是全局量,且在调用count(t)之前都置为。
[cpp] view plaincopy
typedef struct node
int data;
struct node *lchild,*rchild;
}node;
int N2,NL,NR,N;
篇二:腾讯2016技术类实习生面试题
(一)不定项选择题(25*4)
1. 输入序列ABCABC经过栈操作变成ABCCBA,下面哪些是可能的栈操作( )
A. push pop push pop push pop pushpush push pop pop pop B. push push push push push push poppop pop pop pop pop C. push push push pop pop pop pushpush pop pop push pop D. push push push push pop pushpop push pop pop pop pop
2. 下列关键码序列哪些是一个堆( )A. 90 31 53 23 16 48 B 90 48 31 53 16 23C 16 53 23 90 3148D.1631 23 90 53 48
3. 稀疏矩阵压缩的存储方法是:()A 三元组 B 二维数组 C 散列 D 十字链表
4. 二叉树的后序排列DBEFCA,中序排列DBAECF,那么对其做先序线索化二叉树,节点E的线索化指向节点()A BC B AC C DFD CF
5. 线性结构的是()A 串 B 链式存储栈 C顺序存储栈 D 顺序存储二叉树
6. Linux命令是哪些()A lsB mkdir Cmagnify D man
7. Unix系统中,适合任意两个进程通信的是()A FIFO B PIPE C Message Queue D sharememory
8. Windows系统中,不适合进程通讯的是()A 临界区 B 互斥量 C 信号量 D 事件
9. 下面的内存管理模式中,会产生外零头的是()A 页式 B段式C 请求页式 D 请求段式
10. Linux执行ls,会引起哪些系统调用()A nmap B read C execve D fork
10. a 是二维数组,a[j]的指针访问方式为:()A *(a+i+j)B *(*(a+i)+j)C *(a+i)+j D *a+i+j
12 输出以下结果:
#define add(a,b) a+b;
Intmain()
{
Printf(“”,3*add(4,7));
}
A 33 B 19 C 25 D49
13 对于以下代码,char * p= newchar[100]
A p 和 new出来的内存都在栈上
B p 和 new出来的内存都在堆上
C p在栈上 new出来的在堆上
D p在堆上 new出来的在栈上
14 进程A读取B进程中的某个变量(非共享内存),可行的方式()
A 进程向消息队列写入一个包含变量内容的消息,B进程从队列中读出
B 通过本地环路通信
C 如果A、B 非亲属,那么A通过命名管道把这个变量的地址发给B进程
D 如果 B是A 进程,那么B直接读取变量内容即可
15 使用 send发送大量小的数据包,说法正确的是()
A 带宽利用率低 B 网卡吞吐很高 C 网卡中断频繁 D 进程上下文切换频繁
16 TCP的握手与分手 可能出现的情形是()
A 握手需要3次通信
B 分手需要进行4次通信
C Fin和ACK 在同一包里
D ACK 和SYN 在同一包里
17. 和16题 一样。。。。。。
19. 新窗口打开网页,以下哪个()
A _self B _blank C _top D _parent
20.二进制数01011011转化为十进制为()
A 103 B 91 C 171 D 71
21 版本控制软件是哪些()
A bugzilla B subversion C Git D loadrunner
22 Select A,B from Table1 where A between60 and 100 order by B,下面哪些优化sql性能()
A 字段A 建立hash索引,字段B btree索引
B 字段A 建立hash索引,字段B不建立索引
C字段A 建立btree索引,字段B不建立索引
D 字段A 不建立 索引,字段B建立btree索引
23 数据索引的正确是()
A 1个表只能有一个聚族索引,多个非聚族索引
B 字符串模糊查询不适合索引
C 哈希索引有利于查询字段用于大小范围的比较查询
D 多余的索引字段会降低性能
24 CPU与外设的传输数据的方式是()
A 程序方式 B中断 C DMA D 通道方式
25 式子7*15=133成立,则用的是几进制()
A 6B 7C 8D 9
(二)填空题
26. MySQL中表test选择10条到20条记录的语句是()
27. 若信号S为9,则S经过15次P和14次V,S为()
28. 页面走向:4 3 2 1 4 3 5 43 2 1 5 4,当分配的内存物理快数4(开始为装入),采用LRU淘汰算法,产生多少次缺页()
29. 评估算法优势,通常从()和()两个方面考察
31.20*20*20的魔法,8000个小正方体,如果剥取最外一层,还剩下多少个方块() 32.
(1)如果A投硬币是正面的,B给A 1美金
(2)如果A投的是反面,就再投,为正面,B给A 2美金
(3)如果还是反面,就再投,为为正面,B给A 4 美金
(4)假设A投的是反面,就投到正面为止,B就给A 的2的(n-1)次方
如果A、B玩这样的硬币游戏,A至少要给B多少钱B才不会亏钱()
33.左轮手枪,左轮手枪,有6个弹巢,两颗子弹放进相邻的弹巢,拨动转轮,然后拿着这把枪朝我自己扣动,但我还活着,现在轮到你了,你有两种选择
(1)在扣动一次转轮,把枪对准自己,扣动扳机
(2)不拨动转轮,直接对准自己,扣动扳机
假设你还不想死,你选择哪种()原因()
附加题:
34.描述mapreduce的执行过程,最好用画图的方式表示。
35.数据库A的ID从20120120300001到20120120399999,更新ID从00001到99999,递增加1,不重复,不间断(并保持高并发的性能)
篇三:2016年阿里巴巴校园实习生招聘笔试题及答案
2016年阿里巴巴校园实习生招聘c++研发工程师答案[最后一个程序设计题的实现]
#include<iostream>
#include<string>
#include<vector>
#include<set>
using namespace std;
//类C表示原料类
class C{
public:
string cname;
public:
C(string cname){
this->cname=cname;
}
friend ostream& operator<<(ostream&count,C*cptr){
cout<<cptr->cname<<endl;
return count;
}
};
//类B表示半成品类
class B{
public:
string bname;
vector<B*> bbr;
vector<C*> bcr;
set<B*>*sbptr;
set<C*>*scptr;
public:
B(string bname){
this->bname=bname;
sbptr=new set<B*>();
scptr=new set<C*>();
}
friend ostream& operator<<(ostream&count,B*bptr){
cout<<bptr->bname<<endl;
return count;
}
//输出所有的B依赖的半成品
void listBptr(set<B*>*sbptr){//假设该函数可以列出所有半成品
if(bbr.size()>0){
for(auto bptr:bbr){
sbptr->insert(bptr);
bptr->listBptr(sbptr);
}
}
}
//获取所有B的依赖的半成品
void getAllBptr(){
listBptr(sbptr);
}
void listAllBptr(){
getAllBptr();
cout<<bname<<"依赖的半成品有:"<<endl;
for(auto t:*sbptr){
cout<<t->bname<<endl;
}
}
//输出所有的B依赖的原料
void listCptr(set<C*>*cbptr){
if(bcr.size()>0){
for(auto t:bcr){
cbptr->insert(t);
//cout<<"原料名称:"<<t->cname<<endl;}
}
if(bbr.size()>0){
for(auto t:bbr){
t->listCptr(cbptr);
}
}
}
//获取所有B的原料
void getAllCptr(){
listCptr(scptr);
}
void listAllCptr(){
getAllCptr();
cout<<bname<<"依赖的所有原料有:"<<endl;
for(auto t:*scptr){
cout<<t->cname<<endl;
}
}
//插入一件依赖的半成品
void addBptr(B* bptr){
bbr.push_back(bptr);
}
//插入一件依赖的原料
void addCptr(C*cptr){
bcr.push_back(cptr);
}
//判断一件半成品是否在依赖中
bool isBptrIn(B*bptr){
for(auto t:*sbptr){
if(bptr==t){
return true;
}
}
return false;
}
//判断一件原料是否在依赖中
bool isCptrIn(C*cptr){
for(auto t:*scptr){
if(cptr==t){
return true;
}
}
return false;
}
};
//类A表示产品
class A{
public:
string aname;
vector<B*> abr;
vector<C*> acr;
set<B*>abptr;
set<C*>acptr;
public:
A(string aname){
this->aname=aname;
}
friend ostream& operator<<(ostream&count,A*aptr){ cout<<aptr->aname<<endl;
return count;
}
//输出所有的A依赖的半成品
void listBptr(){
cout<<"成品依赖的半成品有:"<<endl;
for(auto t:abr){
abptr.insert(t);
}
for(auto bptr:abr){
bptr->getAllBptr();//是否需要?
for(auto tt:*(bptr->sbptr)){
abptr.insert(tt);
}
}
for(auto t:abptr){
cout<<t->bname<<endl;
}
}
//输出所有的A依赖的原料
void listCptr(){
cout<<"成品依赖的原料有:"<<endl;
for(auto cptr:acr){
acptr.insert(cptr);
}
for(auto bptr:abr){
bptr->getAllCptr();//是否需要?
for(auto tt:*(bptr->scptr)){
acptr.insert(tt);
}
}
for(auto t:acptr){
cout<<t->cname<<endl;
}
}
//插入一件依赖的半成品
void addBptr(B* bptr){
abr.push_back(bptr);
}
//插入一件依赖的原料
void addCptr(C*cptr){
acr.push_back(cptr);
}
//判断一件半成品是否在依赖中
bool isBptrIn(B*bptr){
for(auto t:abr){
if(t->isBptrIn(bptr)){
return true;
}
}
return false;
}
//判断一件原料是否在依赖中
bool isCptrIn(C*cptr){
for(auto t:acr){
if(cptr==t){
return true;
}
}
for(auto t:abr){
if(t->isCptrIn(cptr)){
return true;
}
}
return false;
}
};
int main()
{
C a("原料a"),b("原料b"),c("原料c"),d("原料d"),e("原料e");
B f("半成品f"),g("半成品g"),i("半成品i");
A h("产品h");
f.addCptr(&a);f.addCptr(&b);f.addCptr(&c);
f.listAllCptr();
g.addCptr(&b);g.addCptr(&c);g.addCptr(&d);
g.listAllCptr();
i.addBptr(&f);
i.addBptr(&g);
//f.addBptr(&g);
//f.listAllBptr();
//需要避免产生回环递归
//g.addBptr(&f);
//g.listAllBptr();
《2016腾讯实习笔试题》出自:百味书屋
链接地址:http://www.850500.com/news/63999.html
转载请保留,谢谢! |
|