|
2010年实习生招聘笔试题RD-2
' T9 ~- j4 i, r3 X9 j: }7 U4 {9 `' v, O0 c+ }
4 n, e$ X0 `+ S3 G, C
& [& d9 q" `% \ i+ R( P# I4 K# p8 J7 g7 ?4 R9 A2 Z
6 `9 O1 ]. A8 C. I
第一题 简答题+ J9 u% Z6 ^+ K- Z1 g
1. 多线程和多进程模式有什么区别?在用两种模型开发服务程序时,分别有什么优缺点?采用长连接和短连 接模式有什么区别?分别有什么优缺点?采用同步和异步模式有什么区别?分别有什么优缺点。
, X8 U1 C4 {9 |9 N
' c/ B5 _' x8 g6 @: L2. 请写出以下程序的运行结果,并解释导致这样运行结果的关键性原因。
/ V9 g# p' S1 X; T9 X #include <iostream># g8 J9 b1 u3 z9 q. A f
using std::cout;
7 D p0 _( j. ]4 ?) \4 s/ V/ U9 Wclass P
8 j5 x, s- d( r3 {$ @{
; Q3 i" Y1 H6 z( Dpublic:9 x5 L+ j) i+ G+ X1 M. O6 D$ p- r
virtual void print()$ { |& d y* }* r$ E8 I5 s. e& |
{7 v9 Q* d& s9 |/ t1 ?- J5 t8 y& N
cout << "P";
0 _/ d7 T3 Z" J# g# o}8 W- Y& l, z% b% E+ d
};) x" V: Q% R# R: F0 d
class Q: public P
$ f: C. x$ A# m& K, }2 X! P1 v( ~{; q: Z! w2 k m% S. M- L9 Y
public:
: e9 O. _( S$ r' n0 K. ^( qvirtual void print()
# \5 s" M# u( U& P" w{
' }& f! A, {% k6 o5 g1 d0 ]! Ucout << "Q";
5 Q" `+ Z/ m! u! x2 a! q}
& N) S# C3 ~0 g& Q0 c, \};
4 k( f0 h7 A) E2 Fint main()* V d! N- F, f, D2 X% f/ D4 Q
{
+ Y. c9 c. s( N$ a& wP * p = new P;5 X3 K" I" q$ [- _' m4 j" o) w
Q * q = static_cast <Q *> (p);
* g- Q m3 I2 @8 J% f( i0 l3 `3 t c+ [ ' W8 i6 @' e' {
q->print();( O3 e1 u, A5 `7 q! R$ @5 J9 H7 f" F
delete p;
. d9 R3 U# n$ j4 M& p( M |cout << endl;
) W7 u, D. X( a$ W9 d
' v* V [% m" q q = new Q;5 m+ q% g) j+ {1 \7 S
p = q;" ]& T' x" I5 @: A; Z! ?, A9 x
q->print();' \! E( X2 D9 i+ F: E
p->print();
) \8 \! G# s9 L9 T4 z cout << endl;+ Z- o' E# P5 |( g
+ B m3 \' m+ t4 X$ `
p = new (q) P;( H) ^; V6 Q* ^/ l. t' \
q->print();
( c0 ~7 E% o: }: s p->print(); f% @; i# g6 r$ `3 P2 K7 k$ ]
cout << endl;
2 ~# `% M. R& |. N ; }8 f3 t) Z0 B4 h
p->~P();7 [! o; Z# R: P/ f' e% q
delete q;
8 \# N! m) t7 o6 G; P return 0;) e$ n3 x" `$ B& d5 J
}: Q. E! a! F. [/ n( r4 d4 n+ @
4 [1 e# W6 o. _. q
# a* E2 Q: i$ H. n9 P
第二题 算法与程序设计题% I5 x9 i0 k6 ^: u! D
1.给定如 下的n*n的数字矩阵,每行从左到右是严格递增, 每列的数据也是严格递增+ J3 q0 Q l- u" i* ?1 T
1 2 3* _1 J# W* _1 n8 {+ r, S. T
3 5 6
1 ]+ m- z0 q( y, t: {9 M4 8 94 R% g2 o" M" }2 p: z: C3 |# P
现在要求设计一个算法, 给定一个数k判断出k是否在这个矩阵中。 描述算法并且给出时间复杂度(不考虑载入矩阵的消耗)
, f. E! z7 W B, R; Y- Y7 [0 L
- Y4 [* r* J. O. X+ `2.设 一个64位整型n,各个bit位是1的个数为a个.比如7, 2进制就是 111, 所以a为3。
+ e% Q2 E1 _: y6 S现在给出m个数,求各个a的值。要求代码实现。
9 f7 L+ D4 M3 ~4 o* E 0 u U7 T! n+ s" x3 O# U
- U, q! |% Q- }3 P+ d5 S
第三题 系统设计题
4 i; o l5 F# c实现一个简化 的搜索提示系统。给定一个包含了用户query的日志文件,对于输入的任意一个字符串s,输出以s为前缀的在日志中出现频率最高的前10条query。
: e# Y0 _* W% ~提示:9 }% [5 ^0 |8 |, M. S1 T
1、可以预处理日志
9 N6 M0 M- X, `1 \0 B' ~2、假设query不超过10亿条,每个query不超过50字节。
5 s% _/ z$ t" L+ b- _# X3、考虑在大查询量的情况下如何实现分布式服务$ X: z I" [. g4 x# _" |3 y! Y
7 O; k8 u/ }; E- x, S, G6 l6 ]- T原文链接" W$ | e# e, H! J K+ K
百度2010实习生笔试2套:http://bbs.aftjob.com/thread-610484-1-1.html* k# z9 ^5 t' V) X5 e
百度2011实习招聘专题:http://www.aftjob.com/portal.php?mod=topic&topicid=22
2 V) A5 U. ]. J/ L/ V! {百度求职俱乐部:http://bbs.aftjob.com/group-4-1.html |
|