昨天参加了这次实习生笔试题,感觉考的不算难,但是有点广,数据结构、计算机操作系统、计算机网络等都有涉及。却没有实际编码题目,看样子是面试的时候考察吧。其实基础扎实的话,应该不难。
答案都是自己解答和小伙伴探讨以及网上查的资料进行分析的,如有错误请留言拍砖!
(一)不定项选择题(25*4)
1. 使用深度优先算法遍历下图,遍历的顺序为()
A ABCDEFG B ABDCFEG
C ABDECFG D ABCDFEG
2. 输入序列ABCABC经过栈操作变成ABCCBA,下面哪些是可能的栈操作( )
A. push pop push pop push pop pushpush push pop pop pop //ABCCBA
B. push push push push push push poppop pop pop pop pop //CBACBA
C. push push push pop pop pop pushpush pop pop push pop //CBABAC
D. push push push push pop pushpop push pop pop pop pop //ABCCBA
3. 下列关键码序列哪些是一个堆( )
A. 90 31 53 23 16 48 B . 90 48 31 53 16 23
C. 16 53 23 90 314 D.1631 23 90 53 48
//48的左子节点为53,而该堆为大堆,违反其父节点都必须大于或等于其对应的子节点性质
//对于答案C:53右子节点为31,而该堆为小堆,违反其父节点都必须小于或等于其对应的子节点性质
//堆的性质,符合最大堆或者最小堆都行,如果大堆的话所有父节点都必须大于或等于其对应的子节点,
如果小堆的话,所有父节点都必须小于或等于其对应的子节点。
堆是一棵完全二叉树,从上到下画好,进行对比就可以得到答案。
4. 稀疏矩阵压缩的存储方法是:()
5. 二叉树的后序排列DBEFCA,中序排列DBAECF,那么对其做先序线索化二叉树,节点E的线索化指向节点()
A BC B AC C DF D CF
建立线索二叉树,或者说对二叉树线索化,实质上就是遍历一颗二叉树。(网搜)
//刚开始不明白什么是线索二叉树,凭感觉应该就是遍历二叉树,在遍历过程中,访问结点的操作是检查当前的左,右指针域是否为空,将它们改为指向前驱结点或后续结点的线索。E的前驱是C,后继是F。
6. 线性结构的是()
A 串 B 链式存储栈 C顺序存储栈 D 顺序存储二叉树7. Linux命令是哪些()
A ls B mkdir Cmagnify D man
//做错咯,对linux的magnify(放大镜实用程序)不敢肯定。但是敲击进去却不可用,不知道是不是老版本可用,新版本不可用,真不知道是不是命令。
8. Unix系统中,适合任意两个进程通信的是()
A FIFO B PIPE C Message Queue D sharememory
//可以进行进程通信的有:管道、信号、信号量、消息队列、共享内存、套接字(套接字上次的腾讯面试中有提,但是别人答案未选,存在争议,待解答:))
PS:网友改正,答应应该为ACD,PIPE就是匿名管道的意思,而命名管道的另一种说法就是FIFO。匿名管道只能在父子进程中进行通信。
园中讲解:进程间通信程序设计1
9. Windows系统中,不适合进程通讯的是()
A 临界区 B 互斥量 C 信号量 D 事件10. 下面的内存管理模式中,会产生外零头的是()
A 页式 B段式C 请求页式 D 请求段式11. Linux执行ls,会引起哪些系统调用()
A nmap B read C execve D fork12. a 是二维数组,a[i][j]的指针访问方式为:()
A *(a+i+j) B *(*(a+i)+j) C *(a+i)+j D *a+i+j
13 输出以下结果:
#define add(a,b) a+b;
Intmain()
{
Printf(“”,3*add(4,7));
}
A 33 B 19 C 25 D 49 //腾讯笔试好像是去年的原题吧 3*4+7=19
14 对于以下代码,char * p= newchar[100]
A p 和 new出来的内存都在栈上
B p 和 new出来的内存都在堆上
C p在栈上 new出来的在堆上
D p在堆上 new出来的在栈上
15 进程A读取B进程中的某个变量(非共享内存),可行的方式()
A 进程向消息队列写入一个包含变量内容的消息,B进程从队列中读出
B 通过本地环路通信
C 如果A、B 非亲属,那么A通过命名管道把这个变量的地址发给B进程
D 如果 B是A 进程,那么B直接读取变量内容即可
//不太确定,待解释
16 使用 send发送大量小的数据包,说法正确的是()
A 带宽利用率低 B 网卡吞吐很高 C 网卡中断频繁 D 进程上下文切换频繁
//自己选的ABCD,也不知道对不对,求解释
17 TCP的握手与分手 可能出现的情形是()
A 握手需要3次通信
B 分手需要进行4次通信
C Fin和ACK 在同一包里
D ACK 和SYN 在同一包里
18. 和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
Loadrunner: 压力测试工具
A 字段A 建立hash索引,字段B btree索引
B 字段A 建立hash索引,字段B不建立索引
C字段A 建立btree索引,字段B不建立索引
D 字段A 不建立 索引,字段B建立btree索引
//数据库内部采用的是B-Tree结构方便查询一个区间段的值,适合进行区间索引(自认)
A 1个表只能有一个聚族索引,多个非聚族索引
B 字符串模糊查询不适合索引 //自认为B是对的,但是不确定,待解答
C 哈希索引有利于查询字段用于大小范围的比较查询
D 多余的索引字段会降低性能
24 CPU与外设的传输数据的方式是()
A 程序方式 B中断 C DMA D 通道方式
25 式子7*15=133成立,则用的是几进制()
A 6 B 7 C 8 D 9 //7*15(转十进制为13)=133(转十进制64+24+3=91)
(二)填空题
26. MySQL中表test选择10条到20条记录的语句是()
limit是mysql的语法
select * from table limit m,n
其中m是指记录开始的index,从0开始,表示第一条记录
n是指从第m+1条开始,取n条。
select * from tablename limit 2,4
即取出第3条至第6条,4条记录
27. 若信号S为9,则S经过15次P和14次V,S为()
8 每P一次减一,没V一次加一。相当于一个容器(S),进去一个(P)容量就少一个,出来一个(V)容量就多一个。
28. 页面走向:4 3 2 1 4 3 5 4 3 2 1 5 4,当分配的内存物理快数4(开始为装入),采用LRU淘汰算法,产生多少次缺页()
LRU:最近最少使用淘汰算法:
30. G是一个邻接表,以V1为起点,深度优先遍历序列V1V2V3V6V5V4,从V1开始的广度优先遍历序列是()
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才不会亏钱()
此题还真不会做,有待大家解答。只明了不管是哪一次停止,按概率算的话,给出的钱都是1/2: 第n次结束的概率为1/2的n方,而给的钱为2的n-1方
33.左轮枪,左轮枪,有6个弹巢,两颗子弹放进相邻的弹巢,拨动转轮,然后拿着这把枪朝我自己扣动,但我还活着,现在轮到你了,你有两种选择
(1)在扣动一次转轮,把枪对准自己,扣动扳机
(2)不拨动转轮,直接对准自己,扣动扳机
假设你还不想死,你选择哪种()原因()
提交的时候遇到这个问题,是不是有点坑爹啊,呵呵,看来网络环境还是要大家来维系。
附加题:
34.描述mapreduce的执行过程,最好用画图的方式表示。
参考解答:http://liouwei20051000285.blog.163.com/blog/static/252367420116125223809/
35.数据库A的ID从20120120300001到20120120399999,更新ID从00001到99999,递增加1,不重复,不间断(并保持高并发的性能)