|
|
腾讯2012年校园招聘笔试
$ r+ f1 @$ Y* h( o9 A/ }! ]5 c. g1 N% {. A( T/ L
' Y* \" Y; Q+ R
1.笔试时间
6 _) q8 i4 h, T2011年10月各地区笔试
# j6 r# p+ A( j+ }! c合肥,重庆,大连,武汉 笔试时间为10月9日
* W3 c/ a& F0 d8 I8 y: D北京,深圳,南京,沈阳,长沙,上海,杭州 笔试时间为10月15日
! C( D2 y. _5 `! h% V( l天津,厦门,香港 笔试时间为10月22日
5 L" U/ E! G) j' l: K \$ ?
1 n- J) f( j; x5 G腾讯2012求职俱乐部:http://bbs.aftjob.com/group-47-1.html0 @0 V( O0 T6 U5 @
腾讯2012求职手册:http://bbs.aftjob.com/thread-608477-1-1.html
7 T4 Q) p. C$ j, T! [3 ]# Y2 }. A$ ?; E: t2 D8 b- U8 X0 V* B
2.宣讲会剩余时刻表* N2 q! _9 C( ~' P M, I
学校 宣讲时间 宣讲地点
- V0 u' }! `# D w重庆邮电大学 9月26日 19:00-21:00 第三国际会议厅
) Q- ?$ C3 ~* X! K4 Y: H" H重庆大学 9月27号 19:00-21:00 B区勤工楼2楼报告厅 & Y q& v! V2 W; c6 D4 ~
中国科学技术大学 9月27日 19:00-21:00 西区学生活动中心2楼学术报告厅
" l( r- {! [- X- ?% ^/ |复旦大学 10月13日 18:30-20:30 张江校区行政楼106号报告厅
$ s1 J4 y: A1 q2 k# w; s上海交通大学 10月14日 13:00-15:00 闵行校区光彪楼一楼多功能厅 ) Y6 V, e6 G1 f( s: X! K
浙江大学 10月11日 9:00-11:30 玉泉校区邵逸夫科学馆演讲厅
4 O* k6 f% L, S: d6 k5 n9 J北京大学 10月10日 15:00-17:00 英杰阳光大厅
0 L$ h$ f& C* M7 m" b. {北京航空航天大学 10月8日 19:00-21:00 学术交流厅
7 y% I: z+ P3 q2 w! K! g6 u6 p" t深圳大学 10月13日 19:00-21:00 科技楼一号报告厅 1 K8 P7 Y! k! ], D/ y& G( t" q
南京大学 10月13日 19:00-21:00 科技馆一楼报告厅 + C" V+ @- G6 t- y( G! E
东南大学 10月11日 14:00-16:00 逸夫科技馆报告厅 6 W# _; E: a+ {* ~4 r( h; }: d
- U, c) w# u$ h. z' N' e$ H3.2008年腾讯技术类校园招聘笔试试题(A8卷)
; N0 ?7 ^' R$ [2 bhttp://bbs.aftjob.com/thread-93654-1-1.html
2 _) k$ c* {! J0 s( h姓名:______________ 联系电话:_______________ 简历编号:____________0 _( |" q) S4 V S, X# G7 m. T
学校:______________ 专业:___________________ 学历:________________
7 }/ W. y( i0 z7 C一. 单选题(每题4分,15题,共60分)
4 O8 I, ]1 L0 {6 s1.考虑函数原型void hello(int a,int b=7,char* pszC="*"),下面的函数调用钟,属于不合法调用的是:
0 g/ p4 e* m5 UA hello(5) B.hello(5,8) C.hello(6,"#") D.hello(0,0,"#")) k9 w3 c" q# V J% r! _
2.下面有关重载函数的说法中正确的是:7 J, L9 \6 W, C! h \/ {
A.重载函数必须具有不同的返回值类型 B.重载函数形参个数必须不同- U- ~7 T% ^! w7 @$ ~
C.重载函数必须有不同的形参列表 D.重载函数名可以不同3 |: \ b% s; v; z( `
3.分析一下程序的运行结果:, S& ?# j# N9 o7 H5 u
#include<iostream.h>! N& K" e$ g$ Q( y( H0 o
class CBase
6 I: F' h- q& n/ p{
% s- c* J& H# Y% H8 Epublic:
W3 @2 V( d! h/ I- q/ g- A) sCBase(){cout<<”constructing CBase class”<<endl;}6 S% l- E8 N5 C
~CBase(){cout<<”destructing CBase class”<<endl;}
. ~! O% Q% ]" u* k( ?: y0 X3 Y4 ~}; `, R2 P* V! M, o
class CSub : public CBase
/ {. X. V7 s" E$ a' _9 p( ?{" q9 m' N- t0 p- l1 t
public:, I' W% }2 O: K1 v: s# k
CSub(){cout<<”constructing CSub class”<<endl;}- A! f e7 l+ ]- k6 n
~CSub(){cout<<”destructing CSub class”<<endl;}, O2 B& a& _5 n( Q! `0 q
};
, E/ p# U% A7 rvoid main()4 u+ x! x7 E0 y& Y8 m# C
{
: d3 p& v# q( L7 d' k CSub obj;
2 S- Z& V! r, |% `2 N0 c}
( c7 j+ T1 r8 G# z; d: nA. constructing CSub class B. constructing CBase class+ k' b' h& k0 D) \
constructing CBase class constructing CSub class, R: u% l% n" r
destructing CSub class destructing CBase class
% `* k, [' j% x destructing CBase class destructing CSub class8 K% r4 P) A' W6 y6 x! @4 Z
C. constructing CBase class
! q e4 G8 |' L' b4 s. c constructing CSub class
+ f* p7 h0 ]: z4 \& |, H, v destructing CSub class 2 v7 D) ?$ l9 J8 `( ^- P
destructing CBase class
4 y5 O: l7 B& M D. constructing CSub class
6 o( t* b) \5 M8 F( W2 B7 P constructing CBase class, W# M( Y0 S P
destructing CBase class0 }8 }; o5 F4 w' l& l( M: r
destructing CSub class
1 C/ Y! c# W1 Z4.在一个cpp文件里面,定义了一个static类型的全局变量,下面一个正确的描述是:
1 x C0 ?4 B. l/ sA.只能在该cpp所在的编译模块中使用该变量
( _+ d* K' k6 [, f6 q6 T% }" e9 KB.该变量的值是不可改变的
j3 w) Q# E. }2 Z" T% }) rC.该变量不能在类的成员函数中引用$ w$ a$ R \6 S7 ~- N( A
D.这种变量只能是基本类型(如int,char)不能是C++类型
9 n$ M: j( K$ p7 |- g% D3 j4 V% U5.观察下面一段代码:; }6 N" q* H) Y
class ClassA0 `" K6 f2 H( L
{
3 j. p, t7 z; S5 J' y0 r/ ~: spublic:
* A) `6 \: D( {8 o9 bvirtual ~ ClassA(){};4 u. G* R' y- ]2 m' c
virtual void FunctionA(){};
% K3 n0 B4 n# ~) z" L};, f z2 D% V( p6 G- L
class ClassB
+ R. Y7 V& L5 \; h6 m2 b{! j1 k8 k3 S9 Y- I4 z
public:6 H! O" @! Z+ V0 l; u: J$ w
virtual void FunctionB(){};
, Y+ ?* `+ a2 l9 d/ X};( V3 a [" m2 E2 E6 J
class ClassC : public ClassA,public ClassB$ T% }5 l' ^* S) j
{0 a8 _. N+ W2 @+ g) P1 b
public:" P# G0 F7 o5 H( o5 p% A6 x
};; w$ m! X) C" r5 U" ]; s7 q
/ g7 m8 |6 C, r) ?# u
ClassC aObject;
+ p2 n8 @) [; |2 b: ]8 @ClassA* pA=&aObject;
/ _% c/ ~* x, _5 Z M3 _ClassB* pB=&aObject;6 _- ~( Q; I& u. |3 r7 D6 Q/ s
ClassC* pC=&aObject;
5 l, O$ |% e5 h$ J2 o关于pA,pB,pC的取值,下面的描述中正确的是:
* s0 S4 D7 |2 D, }% kA.pA,pB,pC的取值相同. B.pC=pA+pB4 e9 _/ E" d% x: r1 b: e
C.pA和pB不相同 D.pC不等于pA也不等于pB
2 M- K: S) p; X& R1 P) O6.参照1.5的代码,假设定义了ClassA* pA2,下面正确的代码是:% c0 d# X+ c+ k7 w
A.pA2=static_cast<ClassA*>(pB);: [, D( l# U* B$ R
B.void* pVoid=static_cast<void*>(pB);
! @4 B! V# D7 S pA2=static_cast<ClassA*>(pVoid);
* j; G6 }, v, q4 E" A x* |C.pA2=pB;( ?1 f4 H* U/ q
D.pA2=static_cast<ClassA*>(static_cast<ClassC*>(pB));
8 s, R6 {, T! K$ H- `7.参照1.5的代码,下面那一个语句是不安全的:
& o; U' w" d* A' I% B& ~ A.delete pA B.delete pB C.delete pC
$ z6 t- j% B& g& Z% P, u: O; J8.下列程序的运行结果为:
2 q( z0 t% E- U0 W2 l: {8 G* x#include<iostream.h>" @, E; j5 `0 [6 e* u
void main()
[4 a1 D$ O4 R& h{8 ]0 I6 V; O# `% M/ H
int a=2;* F& f2 y6 X" J6 k/ f
int b=++a;
; T& Q" ?, V S6 C5 e/ ^% Ucout<<a/6<<endl;) t- u) a( O. q: @
}5 N+ c z9 U# z6 d* ^
A.0.5 B.0 C0.7 D.0.6666666-
1 m1 i P, B; h7 o9.有如下一段代码:" i. f1 N; X8 H/ H1 t0 ^3 n7 a" E- s
#define ADD(x,y) x+y2 I5 m) r) U( N4 b/ k/ q: r2 I
int m=3;# h0 x* T* a. q. w2 U G" S' `5 i
m+=m*ADD(m,m);$ b$ Y# v v& {6 T' H
则m的值为:
- y% V$ F! F6 J/ D A.15 B.12 C.18 D.58
. n* L1 V8 w! Z# I) `% m0 j/ l+ ?10.如下是一个带权的图,图中结点A到结点D的关键路径的长度是:. [4 h$ \8 i. @+ i1 E! S
A.13 B.15 C.28 D.58: `/ D- l7 d& S1 K/ I6 g2 }6 n
% j/ P4 [5 T- Y. Y
11.下面的模板声明中,正确的是:
3 z0 P; v" O' E4 D2 h5 F$ tA.template<typename T1,T2>
! v- i& ? W0 RB.template<class T1,T2>
6 ?1 I O9 b$ N1 r/ A1 PC.template<class T1,class T2>& E( T1 {. |. t
D.template<typename T1;typename T2>
y6 d4 _3 X+ g" K* ?8 f12.在Windows编程中下面的说法正确的是:
& V% q- C6 B5 A% c, uA.两个窗口,他们的窗口句柄可以是相同的 B.两个窗口,他们的处理函数可以是相同的+ g& E$ t& y' g3 b- G
C.两个窗口,他们的窗口句柄和窗口处理函数都不可以相同.
4 M7 d+ H) r/ s% @7 C13.下面哪种情况下,B不能隐式转换为A?( L7 Z# q3 |0 n" Q7 }7 n
A.class B:public A{} B.class A:public B{}' V0 c# J+ T4 }5 \+ k$ S* A3 U
C.class B{operator A();} D.class A{A(const B&);}
6 ?& n" H! p2 |, w& o4 V2 V3 x0 H14.某公司使用包过滤防火墙控制进出公司局域网的数据,在不考虑使用代理服务器的情况下,下面描述错误的是”该防火墙能够( )”.
2 V6 ~, _! o1 d( m8 B7 @A.使公司员工只能访问Internet上与其业务联系的公司的IP地址.
) H& v. `: d$ G4 e. iB.仅允许HTTP协议通过,不允许其他协议通过,例如TCP/UDP.5 d+ Z3 p* k/ b- }4 r- h3 o
C.使员工不能直接访问FTP服务器端口号为21的FTP地址.# M4 e, N7 z. U: I* U
D.仅允许公司中具有某些特定IP地址的计算机可以访问外部网络# A7 l4 X" y4 U( \. E- i
15.数字字符0的ASCII值为48,若有以下程序:% _; n v4 M* X; [
main()
6 ~4 }7 B5 O9 h. f, y7 ~( a% T! G{8 e1 p3 L& B3 a5 N! _
char a=’1’,b=’2’;$ p/ [8 s& K* |1 Y
printf(“%c,”,b++);
5 @: F! i4 a& h$ o# U3 E' Lprintf(“%d\n”,b-a);+ d! t/ c9 T( y# z8 b% q; v/ M
}- Y" ]4 P' Z+ D* G e6 d; \4 \
程序运行之后的输出结果是:+ l7 z9 R9 S7 W/ O/ \ y, t4 H: s" ^
A.3,2 B.50,2 C.2,2 D.2,505 e% w7 s+ {& ~
二. 填空题(共40分)
0 E1 x' q( c+ X" r7 f* w& ?2 Q本程序从正文文件text.in读入一篇英文短文,统计该短文中不同单词和它的出现次数,并按词典编辑顺序将单词及它的出现次数输出到正文文件word.out中.
1 Z2 O: A/ L& e2 Y; g% c程序用一棵有序二叉树存储这些单词及其出现的次数,一边读入一边建立.然后中序遍历该二叉树,将遍历经过的二叉树上的节点的内容输出.. L3 p' Y5 D% u5 ?% y
程序中的外部函数
' Z7 s, n! c: c6 G& Cint getword(FILE* pFile,char* pszWordBuffer,int nBufferLen);
; ^$ v- J& r# p% F3 a( e$ h从与pFile所对应的文件中读取单词置入pszWordBuffer,并返回1;若单词遇文件尾,已无单词可读时,则返回0.+ H1 ^) m* s7 E. \, K. Z' e
#include <stdio.h>' n. K; Q- C- Y. d. B8 l0 _3 P
#include <malloc.h>) e$ Y8 `; Z/ x$ q/ u1 B
#include <ctype.h>* e7 y5 E) G# _5 ?+ g8 i
#include <string.h>+ l& Z& A+ R6 o$ r W" g+ j
F6 P h H" C$ W#define SOURCE_FILE "text.in"" e; A/ |) W# W$ X6 @
#define OUTPUT_FILE "word.out" T: k' d1 {2 V, m7 b
#define MAX_WORD_LEN 128
, x+ g# i0 V( p5 q4 c. J! k # p0 y) i: t6 \3 k# b' K
typedef struct treenode
8 s8 N; { H) h6 r/ d4 {0 e{
2 Y& V6 x, d6 R q5 y8 G char szWord[MAX_WORD_LEN];
8 M' d2 i# r! i- ~0 E) H int nCount;( m4 F( K5 Y6 k6 ?
struct treenode* pLeft;: c0 ?5 Z6 U. ]; j* W, z* w
struct treenode* pRight;; ]( [ T& b9 C$ p) a, I. j, i. F2 {
}BNODE; F" W6 c9 o% q3 [' X
1 F" t3 K. ?! r' F* g
int getword(FILE* pFile,char* pasWordBuffer,int nBufferLen);
: i/ b* d! A6 l" X1 a) |
6 e/ v% o' h6 f: V* Pvoid binary_tree(BNODE** ppNode,char* pszWord)
; _- f/ e. j; O' I1 ^, _) f{2 }, x# L& ~0 B5 ^% [: e9 `% ]
if(ppNode != NULL && pszWord != NULL)
& n# ]! Q: ]+ D1 i' { {# ?0 G+ J- K& U9 V4 @- l
BNODE* pCurrentNode = NULL;
5 l4 k, n6 F5 T$ K BNODE* pMemoNode = NULL;+ o1 @" |+ _* v6 j
int nStrCmpRes=0;' _; ?0 F( ^0 z
+ S- i+ N. }4 m3 O/ S
____(1)_____;pCurrentNode=*ppNode
5 i# K( a7 e2 }6 d7 r4 ^$ l / H, y0 w9 l" a+ s0 {6 G
while(pCurrentNode)7 @; p: I O" ~
{
- U4 f* v! k2 u/ r /*寻找插入位置*/
' f' e) W ^# c' B5 X5 o1 x nStrCmpRes = strcmp(pszWord, ___(2)___ );pCurrentNode->nCount
' W7 d6 J& H) ]" Q $ z: U; h, `. @. Y
if(!nStrCmpRes)* a* l8 ?! L* w2 F- l
{
3 G) O$ u+ }# W/ r: d) M. ? ___(3)___; pCurrentNode->nCount++/ ]4 {- [" n* Y) ?/ d& ` [
6 k3 _2 O& G3 @" t9 \ return;. D/ V) q. d0 ~: ]8 O4 k3 P
}
" J* w# s$ I) B. z9 [8 {: h else
$ G1 }) V! {+ z. ]! S1 C {
: @# L O& E1 R: o ___(4)___; pMemoNode=pCurrentNode
3 @8 [; F: G. h' [ pCurrentNode = nStrCmpRes>0? pCurrentNode->pRight : pCurrentNode->pLeft;, B; t$ W; e3 O7 w6 S, b
}
7 Z7 @0 t8 i2 b8 h4 M2 S6 x }
; {: d. Q, d. H: ?# r' ?; R }8 r/ P; H9 R& x$ m+ q2 J) p8 D
_& Q( O7 U+ E: W4 }0 @
pCurrent=new BNODE;
6 @7 _- ?6 [# E: {* m$ w 2 ^1 l9 e" r2 G, V4 P" B
if(pCurrentNode != NULL)0 L6 w: P1 a) _6 o4 g x# J1 J
{ p2 \% a) t( q) H0 L/ X% z
memset(pCurrentNode,0,sizeof(BNODE));
6 }% ]6 p! _% W2 P& I7 Z a strncpy(pCurrentNode->szWord,pszWord,MAX_WORD_LEN-1);
9 t d/ |$ p. n! k9 b pCurrentNode->nCount=1;
" R: A% ~$ m( [4 f }0 B' E X6 U& ]+ x6 g" E
" o7 t1 V( L! B" F- r if(pMemoNode==NULL)
% W' B& Y0 H9 z6 {; t2 [ {. Y- P1 [* m, n+ Q
___(5)___; *ppNode= pCurrentNode
: V; k# t, o9 O9 U1 h# h3 G }
) U6 Z, x* W) }& V& R else if(nStrCmpRes>0)
& D) X5 q. l! a- E8 ~- e; v { f& @3 n. U1 g) ~ p5 u9 t j
pMemoNode->pRight=pCurrentNode;
( L4 t/ @* r1 h! z: `: F; q7 J }
7 c; E! [2 d; z, Y4 _ else
6 d2 t* F. ]+ ], P2 F, W {
. r; Y7 j8 A! z4 B: z! | pMemoNode->pLeft=pCurrentNode;- _( s( O5 i5 d2 o J: G( N
}) W7 L" S6 d/ d4 G5 x
}1 i. @% X: w# k9 a, s
- S/ F0 p M5 W# H; u* U
void midorder(FILE* pFile,BNODE* pNode)
* d$ J) A1 ]( M/ N* D{/ Z5 s% B/ {0 h2 w
if(___(6)___) return;!pNode||!pFile
# Z# u: @* Y, ]1 S5 H6 Z# d$ j % E* N! J2 X: L+ z: W
midorder(pFile,pNode->pLeft);& N M3 h4 Z) @' o% ~. @
fprintf(pFile,"%s %d\n",pNode->szWord,pNode->nCount);5 r5 }" ?4 t5 P- O7 ^1 ?' {
midorder(pFile,pNode->pRight);2 z" s4 n d0 ]# L4 L( D3 w; W2 n
}
5 i: v. u+ m+ d& p9 z; T. J% q: U
3 D, p" o3 }3 e4 T3 }void main()
$ Z5 ]0 Y& ^ l8 o' n' |# A" C{: K7 k4 j' i0 T: u3 q' O3 R
FILE* pFile=NULL;
7 F4 F( Z j) f. R BNODE* pRootNode=NULL;
E1 r/ C( I* O# B char szWord[MAX_WORD_LEN]={0};+ `$ L: W. k: m2 {
. }" w% T0 u; e |3 k pFile=fopen(SOURCE_FILE,"r");, ?( n l, @" h6 d, i
& V& h+ M& [. u
if(pFile==NULL)! N6 L# ^" o1 c6 Q6 D# [- s$ S
{4 l, a& e8 p6 k1 X. T2 e1 P
printf("Can't open file %s\n",SOURCE_FILE);; U# E) j' R' i' t- s/ ^ r
return;" |$ T! H6 h3 s+ S+ }
}9 k0 R1 S$ v6 y4 ~2 o
3 H. g% G0 p6 n! Z# R3 C while(getword(pFile,szWord,MAX_WORD_LEN)==1)8 I3 f- w; H3 O, a& E s
{- A: m! R3 Q" C, u' B
binary_tree(___(7)___);// pRootNode,szWord
4 R* H3 j0 J6 t. A3 | }
0 C( b6 Z: g/ c+ H2 b6 B & ^0 l6 _4 u5 d! W& `
fclose(pFile);: t& b7 \6 }/ e& g
3 ?2 V5 ~ e- S( P$ j: v pFile=fopen(OUTPUT_FILE,"w");4 p1 e5 J7 }7 J
midorder(pFile,pRootNode);
1 d" M$ w! ]% D4 A7 u& s4 Q fclose(pFile);* R; v* F- V( [' ~
}- Y/ f; c! ~# f1 r' s2 T3 S; [# p! |
三. 附加题(每题30分,2题,共60分)4 e% O- o+ G/ \) z& |7 b- M
1. 从程序健壮性进行分析,下面的FillUserInfo函数和Main函数分别存在什么问题?
+ X+ v) h: R9 P/ j5 u0 M#include <iostream>
, u% O/ u. w9 O; h! J1 Z#include <string>
* \9 Q" ]2 [8 G( q) r+ V# X D . z% V% x5 t: x; j& s S
#define MAX_NAME_LEN 20! Y' @, H2 ^, t# z) ~6 A; C
$ x. p( Z K1 c; x% S
struct USERINFO
# R+ q- [; A" T! p# Z# E; E& N{+ g5 B" o7 r' M7 }% p6 q
int nAge;
, h- ~8 m: C; i char szName[MAX_NAME_LEN];* E4 ^# X- ^5 {! O; U
};+ z% N4 ]9 Z0 F/ r
, O! b/ u; b7 K- d7 pvoid FillUserInfo(USERINFO* parUserInfo)5 G. J! p: Z% m
{* A, U3 u; x# a: D
stu::cout<<"请输入用户的个数:";
& K/ Z- r' f& p' _" C 4 ], h$ ?0 G9 L* E3 S, n
int nCount=0;$ k1 \* T0 x2 b
std::cin>>nCount;# ~# N8 R' K8 [! I
0 t' N; v* A1 j& I
for(int i=0;i<nCount;i++)
# j7 H6 u( ?% j% z3 B6 Q {/ |7 I4 D' p/ A2 @/ o
std::cout<<"请输入年龄:";
7 I: M0 s5 E; n1 z) P std::cin>>parUserInfo->nAge;
4 j* P" P# E0 \0 M
% z3 Q0 i9 b' n% ? std::string strName;
& W( }5 d9 Q# s std::cout<<"请输入姓名:";& b' I1 x$ t8 |* Y0 [
std::cin>>strName;( q, g5 S5 P8 u% C8 B
strcpy(parUserInfo.szName,strName.c_str());
& r7 S3 O4 ^$ z- p, w }. G |+ i0 U8 i2 E o0 A
}: G( z$ S8 y6 M9 t' S8 D P/ R; E
2 x9 H3 v9 i8 Z$ B$ ?$ Lint main(int argc,char* argv[])" B$ {- ~. w d# j+ B/ s, \$ x! U
{
' p$ T# g' I5 W USERINFO arUserInfos[100]={0};
7 Y6 Z5 |% G8 m, J, k6 a FillUserInfo(arUserInfos);
: W0 E6 L, O% \, u) v) D: k' R# D) P
9 F5 z e/ m9 c+ O printf("The first name is:");
3 R. }* e" s% Q1 Z# X1 n printf(arUserInfos[0].szName);0 @; e- g# u1 F$ e' E) Q/ Q
printf("\n");5 ]) V4 ~7 l( x- y
. @6 i2 ]: ^1 e
return 0;
. E: p p9 _1 T% f* a/ ]7 x: n}- ?# S$ d( P& {" o1 A+ V; O5 q# S
2. 假设你在编写一个使用多线程技术的程序,当程序中止运行时,需要怎样一个机制来安全有效的中止所有的线程?请描述其具体流程.
+ y. H2 v& n ]$ Z) c) }6 Z. A/ ?) [. j# R
4 a2 _# Q( X4 x" M% D$ E! Z) Z查看名企2012校园招聘最新进度,请关注阿凡提求职公共日历:http://www.aftjob.com/home.php?mod=space&do=calendar% k' V+ c# J2 H2 Y$ D# r5 Q- @
百度历年校园招聘笔试题:http://bbs.aftjob.com/thread-417000-1-1.html
8 F4 ]* U F- u百度历年校园招聘笔试题:http://bbs.aftjob.com/thread-417000-1-1.html) W. r4 `) x9 P3 P
2012腾讯求职手册:http://bbs.aftjob.com/thread-608477-1-1.html, e6 q2 _& a8 @& n
2012百度求职手册:http://bbs.aftjob.com/thread-608484-1-1.html. s+ y; n" }8 h2 \ F" y
2012阿凡提求职手册——IT行业篇 :http://bbs.aftjob.com/thread-607158-1-1.html |
|