1.       数据库

基于某个条件选出一个订单列表,考的是最基本的数据库语言select * from * where *

解: 详见http://blog.csdn.net/zephyr_be_brave/article/details/9115081

2.       不能用于进程间通信的是

A.      Named event(命名事件)

B.      Named pipe(命名管道)

C.      Critical section( 临界区)

D.      Shared memory(共享内存)

解: C。详见http://blog.csdn.net/zephyr_be_brave/article/details/8895393

3.        下面哪一种操作不是stack的基本操作?

A.       入栈

B.       出栈

C.       检查是否为空

D.       排序栈中元素

解: D

4.        下面哪一种属于“creational”的设计模式?

A.       Façade

B.       Singleton

C.       Bridge

D.       Composite

E.       上面都不是

解: B。详见http://blog.csdn.net/zephyr_be_brave/article/details/9115267

5.        当建立连接时,下面哪一个数据包发送顺序是正确的TCP握手协议过程?

A.       SYN,SYN+ACK,SYN+ACK

B.       SYN+ACK,SYN+ACK,SYN

C.       SYN,SYN+ACK,RST

D.       SYN,SYN,ACK

E.       以上都不是

解: 应该是 SYN,ACK+SYN,ACK。详见http://blog.csdn.net/zephyr_be_brave/article/details/8907750

6.        函数式编程的性质有?(TheCharacteristicsof functional programming are?)

A.       Avoid of changing state and mutable data

B.       Referential transparency

C.       Lambda calculus

D.       Thread-safe

E.       All of Above

解: E。wiki上说,函数式编程是一种编程模型,他将计算机运算看做是数学中函数的计算,并且避免了状态以及变量的概念。在wiki中,avoids state and mutable data,Lambda calculus,Referential transparency ,Threadsafe都有。

7.        关于HTTP协议说明,哪些是正确的?

A.       在CS模式下,作为一种request-response协议

B.       无状态,对每一个请求看成独立的

C.       WWW和Email使用的协议

D.       HTTP响应包括数字状态码,404经常代表“PageNot Found”

E.       以上都不是

解:A,B,D

Email使用的是STMP协议

HTTP还有一个特性是“无连接”:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

9.        4个袋子,15个球,每个袋子至少放一个球,而且袋子中的球数量不能重复,有多少种方式?

A.       4

B.       5

C.       6

D.       7

解: C.

转化为问题 x1 + x2 + x3 + x4 = 15, x1, x2, x3, x4 >= 1,x4> x3 > x2 > x1。(x1, x2, x3, x4) 一共有多少解。

设x2 = x1 + y1,x3 = x1 + y2,x4 = x1 + y3 => x1 + x2 + x3 + x4 = 15  ,即有
                   4 * x1 = 15 - (y1 + y2 + y3)   (1)
                   y1, y2, y3 >= 1,                     (2)
                   y3 > y2 > y1.                         (3)
=>      x1可以取值:x1 = 1, x1 = 2, 此时
1) x1 = 1时,
y1 + y2 + y3 = 11 
y1, y2, y3 >= 1, 
y3 > y2 > y1.
2) x1 = 2时
y1 + y2 + y3 = 7
y1, y2, y3 >= 1, 
y3 > y2 > y1.
 此时把一个问题分解为两个递归的子问题了。
 如果记f(len, sum) 表示x[0] , x[1], ..., x[len - 1] 的和为sum且满足x[i] >= 1, x[i+ 1] > x[i]的解的个数
 则f(len, sum) = f(len - 1, sum - len) + f(len -1, sum - 2*len) + ...+f(len - k, sum - k * len), sum - k * len >= (1 +2 + 3 +...+(len-2)+ len - 1)

程序如下:

int foo(int len,int sum)
{if(len == 1) return 1;int remain = len*(len-1)/2;int ret = 0;while((sum -= len) >= remain)ret += foo(len-1,sum);    return ret;
}

11.     有两个32bit的数A、B,使用下面方式得到32bit的数C、D。哪一种可以使用C、D得到A、B的值

A.       C=(int32)(A+B),D=(int32)(A-B)

B.       C=(int32)(A+B),D=(int32)((A-B)>>1)

C.       C=(int32)(A+B),D=B

D.       C=(int32)(A+B),D=(int32)(A+2*B)

E.       C=(int32)(A*B),D=(int32)(A/B)

解:举例子用排除法就可以了,32bit和3bit一样道理。设A = 011(3),B = 010(2)。则

A.  C = A+B = 011 + 010 = 101   ;   D = A - B = 001;通过 A = (C+D)/2 = (101+001)/2 = 110/2 = -1,不能正确恢复

B. C = 101 ;D = 000;由于移出的最右一位不知道0还是1,不能正确恢复

C.C = 101,D = 010; A = 101 - 010 = 101 +(-2)补 = 101 + 110 = 011,正确

D. C = 101; D = 011 + 100 = 111 ;通过B = D - C = 111 - 101 = 111 + 011 = 010;  A = C - B = 111 - 010 = 111+110 = 011,为何不正确 ?????

E. 无法确定符号

12.     如果一个二叉树的前序遍历结果是abcdefg,下面哪一个是可能的中序遍历结果?

A.       abcdefg

B.       gfedcba

C.       bcdefga

D.       bceadfg

E.       bcdaefg

解:画一画就出来了ABCE

13.     T(n)=1(n<=1),T(n)=25+T(n/5)+n^2,T(n)复杂度是多少?B

A.       O(nlogn)

B.       O(n^2logn)

C.       O(n^2)

D.       O(n^3)

E.       O(n^3logn)

解:主定理,查一下再做!!!!!!!!!!!!

主要记住nlogba和f(n)的关系,即可,大于为情况1,等于为情况2,小于为情况3.

T(n)=aT(n/b)+f(n)

1) e>0, F(n)=O(nlogba-e),复杂度为T(n)=theta(nlogba):例如T(n)=9T(n/3)+ n, theta(n2)

2) f(n)=theta(nlogba),复杂度为T(n)=theta(nlogba*lgn)。例如:T(n)=25T(n/5)+O(n2),theta(n2lgn)

14.     两个线程运行在双核机器上,每个线程主程序如下,线程1:x=1;r1=y;线程2:y=1;r2=x。x和y是两个全局变量,初始为0。以下哪一个是r1和r2的可能值?ABC

A.       r1=1,r2=1

B.       r1=1,r2=0

C.       r1=0,r2=1

D.       r1=0,r2=0

解: ABC,详见http://blog.csdn.net/zephyr_be_brave/article/details/9132497

15.     有n个元素的完全二叉树的深度是:

A.       D(n)=log2(n)

B.       D(n)=1+log2(n)

C.       D(n)=n+log2(n)

D.       D(n)=1+n*log2(n)

解:B.普遍来说,认为根结点深度为1,所以深度=1+ log2(n)

16.     在1,2,3,…999,1000这些数中,一共出现了多少个0?

A.       189

B.       191

C.       193

D.       195

解:1~9,0个0;10~99,9个0,1000有3个0。求一下100~999有多少个0即可。

100~999中有两个0的数字有9个;有1个0的数字有:9*9*2。所以共有81*2 + 3 + 9*2 +9= 192个.

17.     2月28日出生和2月29日出生的人的比例是多少?2012年2月28日和2012年2月29日出生的人的比例是多少?

A.       1:1和1:1

B.       4:1和1:1

C.       1:1和4:1

D.       4:1和4:1

解:B

18.     下面哪些使用的是贪心算法   ABC

A.       单源最短路径中的Dijkstra算法

B.       最小生成树的Prim算法

C.       最小生成树的Kruskal算法

D.       计算每对顶点最短路径的Floyd-Warshall算法   //动态规划

E.       字符串匹配中的KMP算法

解: ABC

19.     给了4个函数,可以看出其中第一个为选择排序,第二个为冒泡排序第三个感觉代码本身就有些问题第四个为快速排序

问哪一个排序能将数组a[5]={{3,4},{6,5},{2,7},{3,1},{1,2}}变为{{1,2},{2,7},{3,1},{3,4},{6,5}}

只比较第一个元素。

比较函数为

 int cmp(A x, A y) {return x.key1-y.key1;)
class A{
public:int k1;int k2;
};

A.       f1(a,5,cmp)

B.       f2(a,5,cmp)

C.       f3(a,5,cmp)

D.       f4(a,5,cmp)

E.       以上都不对

//复习各种排序

答案:A,D

这道题出的很有意思,乍一看,题干这么大,可能会被唬住,其实冷静下来看一下,很简单,就是一个排序的稳定性非稳定性的分析。所谓稳定性,即:保证排序前2个相等的数其在序列的前后位置顺序和排序后它们两个的前后位置顺序相同,如果排序的结点仅仅是一个数,则稳定性意义不大,但是如果有多个键值,就需要考虑稳定性的分析。例如,对于本题,如果排序算法是稳定的,那么因为原数组{3,4}排在{3,1}前,根据稳定性的定义,排序的结果就一定不会出现{3,1}排在{3,4}前的情况。而如果算法是不稳定的,那么只能说,{3,1}有排在{3,4}前面的可能,需要根据具体的排序过程判断是否相等的值会变换位置。关于八种算法稳定性的分析,可以查看http://hi.baidu.com/shismbwb/item/404c94898cfd2855850fab24。选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,而冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。

所以,首先明确四个函数都采用了什么样的排序算法:

f1:选择排序;f2:直接插入排序;f3:冒泡,f4:快排

f2和f3是稳定的,直接pass掉。然后非稳定的再看是否变换了位置。A和D如果走一遍程序的话,会发现{3,4}和{3,1}这两个元素是变了顺序的。

对于A答案,a[5]={{3,4},{6,5},{2,7},{3,1},{1,2}}

第一遍排序:{{1,2},{6,5},{2,7},{3,1},{3,4}}

第二遍排序:{{1,2},{2,7},{6,5},{3,1},{3,4}}

第三遍排序:{{1,2},{2,7},{3,1},{6,5},{3,4}}

第四遍排序:{{1,2},{2,7},{3,1},{3,4},{6,5}}

所以正确

对于D答案,a[5]={{3,4},{6,5},{2,7},{3,1},{1,2}}

第一遍排序的运行过程是这样的。

初始:low=0,high=4,i=0,t={3,4}

For循环:

J=1, c({6,5},t)>0,i=0,没有交换(a[i],a[j]),{{3,4},{6,5},{2,7},{3,1},{1,2}}

J=2,c({2,7},t)<0,i=1,交换({6,5},{2,7}),{{3,4},{2,7},{6,5},{3,1},{1,2}}

J=3, c({3,1},t)=0,i=2,交换({6,5},{3,1}),{{3,4},{2,7},{3,1},{6,5},{1,2}}

J=4, c({1,2},t)<0,i=3,交换({6,5},{1,2}),{{3,4},{2,7},{3,1},{1,2},{6,5}}

最后,执行exchange(a,low,i), 交换({3,4},{1,2}),{{1,2},{2,7},{3,1},{3,4},{6,5}}

得到第一遍排序结果:{{1,2},{2,7},{3,1},{3,4},{6,5}},找到了{3,1}的位置,已经在{3,4}的前面,所以最后的结果一定与预期结果相同。这里需要非常注意的是在_f41函数中,if(c(a[j],t)<=0),如果写成c(a[j],t)<0的话,则该答案也不会选择。所以最终的答案是A和D

选择排序, 此题代码是选择的最小出列。选出最小的与前面的交换,其条件是cmp<0, 显然第一趟(3,4)与(1,2)交换后到了(3,1)的后面然后是(6,5)与(2,7)交换,其条件是cmp<0,所以(6,5)与(3,1 )交换,最后的输出结果满足题目要求

冒泡排序 其条件是cmp<0,显然(3,4)不可能会与(3,1)交换,因此不符合题目要求

快速排序时不稳定排序,不能保证谁在谁前面,快排的条件是cmp<=0且其哨兵都是选择序列中的第一个作为哨兵,结合本题所给的数组a,结果是与题目相符

20.

<word>:: <letter>|<letter><pairlet>|<letter><pairdig>

<pairlet>:: <letter><letter>|<pairlet><letter><letter>

<pairdig>::<digit><digit>|<pairdig><digit><digit>

<letter>::a|b|c|…|y|z

<digit>::0|1|2|…|9

下面哪一个词可以从<word>的规则中产生?

I. abcd    II. bcdef III. d22

A.       都不是

B.       只有I和II

C.       只有I和III

D.       只有II和III

E.       I和II和III都是

答案:D

算是一道考察形式自动机的题。关键是分析清楚每种模式本质上代表什么。<letter>表示单个字母;<digit>表示单个数字;<pairdig>是两个<digit>,或者递归<pairdig>和两个<digit>,其实表示的是偶数个<digit>,即偶数个数字;同理,<pairlet>是偶数个字母。所以<word>的可能是:1个字母,奇数个字母,或者一个字母和偶数个数字。所以第二个和第三个是正确的。

21.下面程序的输出结果

#include <iostream>
using namespace std;class Base
{
public:char Value() { return 'A';}virtual char VirtualValue() { return 'X';}
};class Derived:public Base
{
public:char Value(){return'U';}
};class VirtualDerived:virtual public Base
{
public:char Value() { return 'Z';}char VirtualValue() { return 'V';}
};void main()
{Base *p1=new Derived();Base *p2=new VirtualDerived();cout<<p1->Value()<<" "<<p1->VirtualValue()<<" "<<p2->Value()<<" "<<p2->VirtualValue()<<endl;
}

解:AXAV。用Base的指针调用,所以只有虚函数会调用子类本身的。

22.shallow copying (浅拷贝)的特征

解:详见
http://blog.csdn.net/zephyr_be_brave/article/details/9149129

微软2013校园招聘笔试题相关推荐

  1. 360 2013校园招聘笔试题(含参考答案)

    360 2013校园招聘笔试题(含参考答案) 参考答案: 1.D  5*5*5=125 2.C  排除法 3.A  仅个人意见 4.A 5.D   ABC三语句一定保留,D不确定,EF一定删除 6.不 ...

  2. 网易2013校园招聘笔试题集锦

    第一部分(必做):计算机基础类 (所有的选择题都是多项选择) 1.假设进栈次序是e1, e2, e3, e4,那可能的出栈次序是() A.e2, e4, e3, e1 B.e2, e3, e4, e1 ...

  3. 奇虎360 2013校园招聘笔试题

    转载自 http://blog.csdn.net/wanglongfei_hust/article/details/10041337 我的答案与解析: 1. D  2. C  3. B  4. A   ...

  4. IGT 2013校园招聘 笔试题

    (1)RGB排序,一个字符串,里面只有三种字符R G B,所有的R都在G的前面,所有的G都在B的前面.将给定字符串按照此规律排序.要求不允许用辅助空间,复杂度控制在O(N).遍历一遍就排好序. 这道题 ...

  5. 微软2014校园招聘笔试题

  6. 腾讯2013校园招聘笔试题

    1.生产者消费者问题,信号量 2.深度优先遍历二叉树 4.Belady 5.进程调度 6.数组最长子序列和 7.数组最长递增子序列 8.fork();函数 9.n个数进栈,出栈方式有多少种(卡特兰数) ...

  7. 小米2013校园招聘笔试题

    题目:一个数组里,除了三个数是唯一出现的,其余的都出现偶数个,找出这三个数中的任一个.比如数组元素为[1, 2,4,5,6,4,2],只有1,5,6这三个数字是唯一出现的,我们只需要输出1,5,6中的 ...

  8. 小米2013校园招聘笔试题的第一道程序设计题

    1.数组乘积(15分) 输入:一个长度为n的整数数组input 输出:一个长度为n的整数数组result,满足result[i] = input数组中除了input[i]之外所有数的乘积(假设不会溢出 ...

  9. 微软2013校园招聘笔试试题及详细解答

    版权所有,转载请注明出处,谢谢! http://blog.csdn.net/walkinginthewind/article/details/8770201 (不定项选择题) 1. Which of ...

最新文章

  1. php 复选框 单选 全选,复选框全选/不全选,选择结果提交
  2. 网曝抖音电商变相降薪!总包不变,base降低,分摊到年终奖!
  3. 一本书学会可视化设计 pdf_「读书」数据之美-一本书学会可视化设计
  4. yii框架学习笔记三
  5. 内卷之下,前端工程师如何自救
  6. 【qduoj】C语言_凯撒密码
  7. 密码学哈希函数_哈希函数在密码学中的应用
  8. 查询当天交易总额最大的用户信息_场内场外交易
  9. Mysql 忘记密码怎么办(win10)
  10. 190413每日一句
  11. Java:关于负数的向上转型
  12. soapUI接口测试工具
  13. 计算机word和excel的基础知识,计算机Word、Excel及部分基础知识
  14. Matlab200以内所有质数,用matlab编写一个程序:求出200以内的质数,求!!!!急!!!!!...
  15. latex normal是几号字_LaTeX 中英文字体字号设置
  16. mariadb审计插件
  17. ipv6 over ipv4
  18. 数据库 SQL :数据库三大泛式简谈
  19. php图片生成加密pdf文件,php生成PDF格式文件并且加密
  20. 幸存者偏差(survivorship bias)

热门文章

  1. 如何制作一寸、二寸、六寸照片。以后不用再去照相馆了!
  2. springboot和springcloud的区别是什么?
  3. php日历备忘记事本,一个比较不错的PHP日历类分享
  4. csgo跑图文件_CSGO:萌新入坑如何快速优化游戏设置?这个跑图指令也是十分实用...
  5. ThinkPHP导入Excel文件到数据库的简单实现
  6. 5.5 图层样式的复制和粘贴 [原创Ps教程]
  7. java eden区_请说明一下eden区和survial区的含义以及工作原理?
  8. 不要相信深度学习报告的TOPS指标
  9. 数学归纳法+递归问题之汉诺塔问题
  10. 自己写的wow菜鸟指南