腾讯 百度 2014校园招聘笔试试题 + 其他2014校招解决题

试卷类型:软件开发A1

考试时长:120分钟

一 不定项选择题(共25题,每题4分,共100分,少选、错选、多选均不得分)

已知一棵二叉树,如果先序遍历的节点顺序是:ADCEFGHB,中序遍历是:CDFEGHAB,则后序遍历结果为:(D

A.CFHGEBDA   BCDFEGHBA   CFGHCDEBA   DCFHGEDBA

下列哪两个数据结构,同时具有较高的查找和删除性能?(CD

A.有序数组     B.有序链表      CAVL树        DHash

下列排序算法中,哪些时间复杂度不会超过nlogn?(BC

A.快速排序     B.堆排序        C.归并排序      D.冒泡排序

初始序列为1 8 6 2 5 4 7 3一组数采用堆排序,当建堆(小根堆)完毕时,堆所对应的二叉树中序遍历序列为:(A

A8 3 2 5 1 6 4 7

B3 2 8 5 1 4 6 7

C3 8 2 5 1 6 7 4

D8 2 3 5 1 4 7 6

n=5时,下列函数的返回值是:(A

[cpp] view plain copy
  1. int foo(int n)  
  2. {  
  3.     if(n<2)return n;  
  4.     return foo(n-1)+foo(n-2);  
  5. }  

A5           B7               C8             D10

6  SAB共有两个区,人口比例为35,据历史统计A的犯罪率为0.01%B区为0.015%,现有一起新案件发生在S市,那么案件发生在A区的可能性有多大?(C

A37.5%       B32.5%          C28.6%          D26.1%

7  Unix系统中,哪些可以用于进程间的通信?(BCD

A.Socket       B.共享内存       C.消息队列       D.信号量

静态变量通常存储在进程哪个区?(C

A.栈区        B.堆区           C.全局区         D.代码区

查询性能(B

A. 在Name字段上添加主键

B. 在Name字段上添加索引

C. 在Age字段上添加主键

D. 在Age字段上添加索引

10  IP地址131.153.12.71是一个(B)类IP地址。

AA           BB             CC               DD

11 下推自动识别机的语言是:(C

A. 0型语言    B1型语言       C2型语言         D3型语言

12 下列程序的输出是:(D

[cpp] view plain copy
  1. #define add(a+b) a+b  
  2. int main()  
  3. {  
  4.     printf(“%d\n”,5*add(3+4));  
  5.     return 0;  
  6. }  

A23           B35            C16              D19

13 浏览器访问某页面,HTTP协议返回状态码为403时表示:(B

找不到该页面

禁止访问

内部服务器访问

服务器繁忙

14 如果某系统15*4=112成立,则系统采用的是(A)进制。

A6            B7             C8               D9

15 某段文本中各个字母出现的频率分别是{a:4b:3o:12h:7i:10},使用哈夫曼编码,则哪种是可能的编码:(A

A  a(000)  b(001)  h(01)  i(10)  o(11)

B  a(0000)  b(0001)  h(001)  o(01)  i(1)

C  a(000)  b(001)  h(01)  i(10)  o(00)

D  a(0000)  b(0001)  h(001)  o(000)  i(1)

16  TCPIP分别对应了OSI中的哪几层?(CD

A  Application layer

B  Presentation layer

C  Transport layer

D  Network layer

17 一个栈的入栈序列是A,B,C,D,E,则栈的不可能的输出序列是?(C

AEDCBA          BDECBA          CDCEAB       DABCDE

18 同一进程下的线程可以共享以下?(BD

A. stack           Bdata section        Cregister set     Dfile fd

19 对于派生类的构造函数,在定义对象时构造函数的执行顺序为?(D

1:成员对象的构造函数

2:基类的构造函数

3:派生类本身的构造函数

A123             B231               C321           D213

20 如何减少换页错误?(BC

A  进程倾向于占用CPU

B  访问局部性(locality of reference)满足进程要求

C  进程倾向于占用I/O

D  使用基于最短剩余时间(shortest remaining time)的调度机制

21 递归函数最终会结束,那么这个函数一定?(B

使用了局部变量

有一个分支不调用自身

使用了全局变量或者使用了一个或多个参数

没有循环调用

22 编译过程中,语法分析器的任务是(B

A分析单词是怎样构成的

分析单词串是如何构成语言和说明的

分析语句和说明是如何构成程序的

分析程序的结构

23 同步机制应该遵循哪些基本准则?(ABCD

A.空闲让进        B.忙则等待        C.有限等待        D.让权等待

24 进程进入等待状态有哪几种方式?(D

A CPU调度给优先级更高的线程

阻塞的线程获得资源或者信号

在时间片轮转的情况下,如果时间片到了

获得spinlock未果

25 设计模式中,属于结构型模式的有哪些?(BC

A  状态模式        B  装饰模式        代理模式       观察者模式

二、填空题(共410个空,每空2分,共20 分)

设有字母序列{Q,D,F,X,A,P,N,B,Y,M,C,W},请写出按二路归并方法对该序列进行一趟扫描后的结果为DQFXAPBNMYCW

关键码序列(Q,H,C,Y,Q,A,M,S,R,D,F,X),要按照关键码值递增的次序进行排序,若采用初始步长为4Shell的排序法,则一趟扫描的结果是QACSQDFXRHMY;若采用以第一个元素为分界元素的快速排序法,则扫描一趟的结果是FHCDQAMQRSYX

二进制地址为011011110000,大小为(410和(1610块的伙伴地址分别为:__________________

t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左、右两个儿子的结点个数N2;只有非空左儿子的个数NL;只有非空右儿子的结点个数NR和叶子结点个数N0N2NL,NRN0都是全局量,且在调用count(t)之前都置为0

[cpp] view plain copy
  1. typedef struct node  
  2. {  
  3.     int data;  
  4.     struct node *lchild,*rchild;  
  5. }node;  
  6. int N2,NL,NR,N0;  
  7. void count(node *t)  
  8. {  
  9.     if (t->lchild!=NULL)  
  10.         if (t->rchild!=NULL) N2++;  
  11.         else NL++;  
  12.     else if (t->rchild!=NULL) NR++;  
  13.     else N0++;  
  14.     if(t->lchild!=NULL) count(t->lchild);  
  15.     if(t->rchild!=NULL) count(t->rchild);  
  16. }/* call form :if(t!=NULL) count(t);*/  

三、Web前端方向简单题(略)

四、其他方向简答题(共2题,每题20分),选作题,不计入总分)

请设计一个排队系统,能够让每个进入队伍的用户都能看到自己在队列中所处的位置和变化,队伍可能随时有人加入和退出;当有人退出影响到用户的位置排名时需要及时反馈到用户。

2 AB两个整数集合,设计一个算法求他们的交集,尽可能的高效。

原帖URL:

http://blog.csdn.net/hustcqb/article/details/12220549

百度2014校园招聘笔试题(深圳-软件研发岗)


一 简答题(10分*3)

1 静态链接库与动态链接库的优缺点。

2 轮询任务调度与抢占式任务调度的区别。

3 请列出数据库中常用的锁及应用场景。

二 算法与程序设计(15分*3)

1 给定一个正整数n,求比n大的第一个“不重复数”。”不重复数“的定义:如果一个数,任何相邻两个数位上的数字都不相同,则称为不重复数。例如1234是不重复数,而1101不是。

2 求长度极大字符串的最长回文子串。

3 数轴上有一系列点a[0],a[1],a[2]......a[n-1],给定一根长度为L的绳子,求绳子最多能覆盖的点的个数。

三 系统设计题(25分)

1. 在现代系统的设计过程中,为了减轻请求的压力,通常采用缓存技术,为了进一步提升缓存的命中率,同常采用分布是缓存方案。调度模块针对不同内容的用户请求分配给不同的缓存服务器向用户提供服务。请给出一个分布式缓存方案,满足如下要求:

1) 单台缓存服务器故障,整个分布式缓存集群,可以继续提供服务。

2)通过一定得分配策略,可以保证充分利用每个缓存服务的存储空间,及负载均衡。当部分服务器故障或系统扩容时,改分配策略可以保证较小的缓存文件重分配开销。

3)当不同缓存服务器的存储空间存在差异时,分配策略可以满足比例分配。


求绳子最多能覆盖的点


数轴上有一系列点a[0],a[1],a[2]......a[n-1],给定一根长度为L的绳子,求绳子最多能覆盖的点的个数。

算法思路:用两个指针,初始值设为i=0,j=1;求出以i为起点最多能覆盖的点数maxNum,然后i和j都往后移动一步,如果a[j]-a[i]<=L,说明绳子可以覆盖更多的点,把i固定,求出新的maxNum,后面的操作重复前面的循环,直至j碰到最后一个点为止。算法复杂度真正为O(n),因为外层和里层while循环都控制着变量j++。网上关于这道题的解法不一,但自认为这是最好的解法。

[cpp] view plain copy
  1. #include <stdio.h>  
  2. int overrideMaxNum(int *points,int pointsNum,int L)  
  3. {  
  4.     int maxNum=1,i=0,j=1;  
  5.     if(L<=0||points==NULL||pointsNum<=0)return 0;  
  6.     while(j<pointsNum)  
  7.     {  
  8.         while(j<pointsNum&&points[j]-points[i]<=L)  
  9.         {  
  10.             maxNum++;  
  11.             j++;  
  12.         }  
  13.         i++;  
  14.         j++;  
  15.     }  
  16.     return maxNum;  
  17. }  
  18. int main()  
  19. {  
  20.     int points[10]={1,2,3,4,10,15,17,18,19,20};  
  21.     printf("%d\n",overrideMaxNum(points,10,3));  
  22.     return 0;  
  23. }

只遍历一遍数组,求方差

依据的数学公式:D(X)=E(X^2)-[E(X)]^2(当时只想到那个最原始的公式…………)

 

[cpp] view plain copy
  1. #include <stdio.h>  
  2. double fangcha(int *arr,int n)  
  3. {  
  4.     int i;  
  5.     double sum1=0,sum2=0;  
  6.     for(i=0;i<n;i++)  
  7.     {  
  8.         sum1+=arr[i]*arr[i];  
  9.         sum2+=arr[i];  
  10.     }  
  11.     return sum1/n-(sum2/n)*(sum2/n);  
  12. }  
  13. int main()  
  14. {  
  15.     int arr[3]={1,2,3};  
  16.     printf("%f\n",fangcha(arr,3));  
  17.     return 0;  

求最长回文子串(曼彻斯特算法)

这两天在研究求最长回文子串的曼彻斯特算法,终于看懂了,下面给的链接讲的很清楚,不过还是要仔细揣摩才能看明白。另外一个体会,就是自己要有甄别能力,网上博客文章不一而足,比比皆是,有些人没有完全弄懂,也写出来误人子弟,提醒大家在看的时候注意思考鉴别。

推荐链接:

http://bbs.dlut.edu.cn/bbstcon.php?board=Competition&gid=23474

http://www.felix021.com/blog/read.php?2040

下面这个链接的解法是有问题,大家注意

http://www.ahathinking.com/archives/132.html

代码整理如下:(sorry,没有注释)

[cpp] view plain copy
  1. #include <stdio.h>  
  2. #include <string.h>  
  3. #define MAX 10000  
  4. int min(int a,int b)  
  5. {  
  6.     return a>b?b:a;  
  7. }  
  8. void rebuild(char *s,char *src)  
  9. {  
  10.     int i;  
  11.     s[0]='$',s[1]='#';  
  12.     for(i=0; i<strlen(src); ++i)  
  13.     {  
  14.         s[2*i+2]=src[i];  
  15.         s[2*i+3]='#';  
  16.     }  
  17.     s[2*i+2]='0';  
  18. }  
  19. int longestSubStrNum(char *s)  
  20. {  
  21.     int p[2*MAX+2]= {1,1},id=1,mx=2,i,maxlen=0;  
  22.     for (i = 2; s[i] != '\0'; i++)  
  23.     {  
  24.         p[i] = mx > i ? min(p[2*id-i], mx-i) : 1;  
  25.         while (s[i + p[i]] == s[i - p[i]]) p[i]++;  
  26.         if (i + p[i] > mx)  
  27.         {  
  28.             mx = i + p[i];  
  29.             id = i;  
  30.         }  
  31.         if(maxlen<p[i]-1)maxlen=p[i]-1;  
  32.     }  
  33.     return maxlen;  
  34. }  
  35. int main()  
  36. {  
  37.   
  38.     char src[MAX],s[2*MAX+2];  
  39.     scanf("%s",&src);  
  40.     rebuild(s,src);  
  41.     printf("最长回文串的长度为:%d\n",longestSubStrNum(s));  
  42.     return 0;  

静态链接库与动态链接库

静态链接库lib,在生成可执行文件时,被全部嵌入到exe中,其显式调用:#pragma comment(lib,"XXX.lib")

目标工程编译链接之前需要将lib文件和头文件拷贝到工程目录中。运行时不需要lib文件。

动态链接库是在程序运行过程中,动态加载dll文件中的函数来执行。因此dll文件需要与exe文件同时发布,exe才能运行。

dll模块实例源码:

头文件 add.h

[cpp] view plain copy
  1. extern "C" _declspec(dllexport)int add(int,int);  


源文件add.cpp

[cpp] view plain copy
  1. #include "add.h"  
  2. int add(int x,int y)  
  3. {  
  4.     return x+y;  
  5. }  


调用dl模块实例源码:

[cpp] view plain copy
  1. #include <iostream>  
  2. #include <Windows.h>  
  3. typedef int(*pFun)(int,int);  
  4. using namespace std;  
  5. int main()  
  6. {  
  7.     HINSTANCE hDll;  
  8.     hDll = LoadLibrary("dll_test.dll");  
  9.     pFun p=(pFun)GetProcAddress(hDll,"add");  
  10.     cout<<p(1,2)<<endl;  
  11.     system("pause");  
  12.     return 0;  


你可能感兴趣的:(腾讯,百度,校园招聘,2014,缓存服务器)