|
|
腾讯2012年校园招聘笔试
& q" N Q1 j: F- @1 ?
( l( p( I, p6 }3 {
& l4 }, f" w+ p4 n; `7 c0 u1.笔试时间
: N+ P% ]4 L$ u2011年10月各地区笔试 . c! ^! [0 W6 V0 [: ]$ q# `
合肥,重庆,大连,武汉 笔试时间为10月9日
) d- F& [, e1 P8 w; B# M北京,深圳,南京,沈阳,长沙,上海,杭州 笔试时间为10月15日 . F3 b( z) m- { g
天津,厦门,香港 笔试时间为10月22日 % [3 F4 X+ ?, x
& G& s; n+ F2 p腾讯2012求职俱乐部:http://bbs.aftjob.com/group-47-1.html
/ Y+ b8 V( e. x; c0 x5 w+ z4 {腾讯2012求职手册:http://bbs.aftjob.com/thread-608477-1-1.html2 ]- q& A+ p ]+ S
5 Q7 g- K( i9 J. K$ m% _2.宣讲会剩余时刻表/ }3 L( k9 E8 ~* d
学校 宣讲时间 宣讲地点 7 y+ Z8 h" v u* a
重庆邮电大学 9月26日 19:00-21:00 第三国际会议厅
1 c( B- _& ]2 y2 A重庆大学 9月27号 19:00-21:00 B区勤工楼2楼报告厅 / {& A& ~1 M/ }. J
中国科学技术大学 9月27日 19:00-21:00 西区学生活动中心2楼学术报告厅
: y0 E8 Q! |! d% @( S* a复旦大学 10月13日 18:30-20:30 张江校区行政楼106号报告厅
& ~% P0 A, ?( ?/ X上海交通大学 10月14日 13:00-15:00 闵行校区光彪楼一楼多功能厅
5 Q' j: y- \6 X) D) Z# n4 [) a浙江大学 10月11日 9:00-11:30 玉泉校区邵逸夫科学馆演讲厅 . n8 |/ f5 B2 h0 `+ o# |7 N
北京大学 10月10日 15:00-17:00 英杰阳光大厅 2 H0 w, ?- ~2 h' k! a' s
北京航空航天大学 10月8日 19:00-21:00 学术交流厅 6 ~0 w, Q3 p% y4 `
深圳大学 10月13日 19:00-21:00 科技楼一号报告厅 5 i4 s. I. { N5 ?( b+ W
南京大学 10月13日 19:00-21:00 科技馆一楼报告厅 ' T" z a- O" I8 q' f
东南大学 10月11日 14:00-16:00 逸夫科技馆报告厅
7 T" E* K) o& I- X: h0 a6 L8 d) S' M; E* ~7 Z( `
3.2008年腾讯技术类校园招聘笔试试题(A8卷)( b/ n& r' | ?% y! v |
http://bbs.aftjob.com/thread-93654-1-1.html' M6 w5 M: F: j' G$ K: z! O
姓名:______________ 联系电话:_______________ 简历编号:____________
/ H3 |" u! M! |/ v3 u' F3 J- Y学校:______________ 专业:___________________ 学历:________________
7 n" O% m0 ?. v$ ~. c# A一. 单选题(每题4分,15题,共60分)$ I# a/ T; Q3 U# C0 q
1.考虑函数原型void hello(int a,int b=7,char* pszC="*"),下面的函数调用钟,属于不合法调用的是:
. P$ z1 F" S6 U0 [' `A hello(5) B.hello(5,8) C.hello(6,"#") D.hello(0,0,"#"). B* w: y' V# f% Z7 A
2.下面有关重载函数的说法中正确的是:
: _# D. L: y, _0 R7 v A.重载函数必须具有不同的返回值类型 B.重载函数形参个数必须不同
1 \4 d% B) y6 Q" g8 r# u. H! u C.重载函数必须有不同的形参列表 D.重载函数名可以不同
6 _: x; O8 B* F: ~" k# m3.分析一下程序的运行结果:
) w! u2 e0 W& ]$ V, x& ?. h#include<iostream.h>! J: L) w: A4 M
class CBase( B( z% ?3 L1 V$ ^" \/ Q' K/ Z
{8 ^& t6 f4 Q& G0 B4 S& @) `
public:
; k# j9 U3 @6 f/ H" Y. m+ p" M# tCBase(){cout<<”constructing CBase class”<<endl;}
- m! {+ \& P! C& |6 S~CBase(){cout<<”destructing CBase class”<<endl;}
0 A; d% d8 E" O; \};: Q( M7 z4 O+ `1 U
class CSub : public CBase
. H) f! y9 H) t. B& x{' x7 q; m3 I0 B1 m5 H
public:
1 ^8 L; G6 L2 L bCSub(){cout<<”constructing CSub class”<<endl;}
+ p, V3 H* ~3 T1 _% C7 a) f~CSub(){cout<<”destructing CSub class”<<endl;}$ x& E; C. h U" h% h: @0 S' ]6 v
};
8 ]. Z" f. G9 o- evoid main()
2 T& o: Z e" M0 q1 z{
) ~; i0 P0 w* H$ e, H0 L& k7 w; y CSub obj;) H# V7 d; [9 \6 t& C% k) s
}
# A0 ^& x1 U( l: a; B+ QA. constructing CSub class B. constructing CBase class
( Z6 X k* i, \1 z constructing CBase class constructing CSub class
8 T1 _& N7 Q4 h# v. i8 M+ g destructing CSub class destructing CBase class6 p, ~: {2 ?9 D8 Y) O
destructing CBase class destructing CSub class
6 U6 k% u h' G7 ~C. constructing CBase class 0 t5 X% q, }' B1 `& Q! x- b5 n
constructing CSub class 1 y7 ?) ~2 r, I+ W
destructing CSub class
* C: N/ @) G: _ destructing CBase class
( L% M5 `" `2 V1 G7 b [ D. constructing CSub class
( j7 X- C: N& u# T- }) q( \ constructing CBase class
6 `5 M; z: T, C0 j7 e destructing CBase class
|& u% ]( j8 O( Z" u2 |, K, m destructing CSub class
2 C3 E7 Z* K" C4.在一个cpp文件里面,定义了一个static类型的全局变量,下面一个正确的描述是:
2 K0 E1 W% ]* c5 Y6 b# zA.只能在该cpp所在的编译模块中使用该变量* Y; C5 T% x6 e' Y9 X. {6 P- r
B.该变量的值是不可改变的7 a0 K# M' A$ A+ ?! \
C.该变量不能在类的成员函数中引用
; {! s) H. f8 oD.这种变量只能是基本类型(如int,char)不能是C++类型
7 d, I. x! Q( j% V/ I5.观察下面一段代码:9 F7 r/ u6 t; \; e% g( ?
class ClassA' n9 E4 Q. v7 `9 q3 F! O
{/ Y. r1 o* e+ I3 ^/ B/ v
public:
8 M/ j( Y$ o- {( mvirtual ~ ClassA(){};
: y) r$ D. v8 ]4 Vvirtual void FunctionA(){};% S2 L* ]" T ^; F- {
};2 ] j5 E* T: ]& a% Q& E2 \3 b4 c
class ClassB
; `4 ^' K! A& M' I" e{
7 A) r( o: \0 F4 W2 wpublic:- W7 C6 d8 l0 i# g* t
virtual void FunctionB(){}; L. k+ e% U, T) O. A5 b2 o' W
};
! @" W1 e5 o3 c' s6 K Xclass ClassC : public ClassA,public ClassB; c2 {$ y( g+ P' a
{
/ F5 _% l! d6 m+ y9 z ppublic:
2 z9 Q; }6 O3 R; {};
) q( r8 H+ ]' b0 |# Q + e# I- b2 J7 y, {) H _0 b
ClassC aObject;
' d/ H5 n1 H! M+ ~ClassA* pA=&aObject;
/ x4 b$ {5 U* J; IClassB* pB=&aObject;
# \: ~) j5 M6 t2 t0 V7 i5 QClassC* pC=&aObject;& d2 x2 G1 s+ h
关于pA,pB,pC的取值,下面的描述中正确的是:0 ~# ~* O1 T7 m, k& Y A
A.pA,pB,pC的取值相同. B.pC=pA+pB3 V- w( M6 [" N6 j p+ s
C.pA和pB不相同 D.pC不等于pA也不等于pB0 P7 A* q* q3 o* f0 ~$ G
6.参照1.5的代码,假设定义了ClassA* pA2,下面正确的代码是:
$ Z& F0 j- ]) N) vA.pA2=static_cast<ClassA*>(pB);$ F6 x8 V6 v* {( L, T' y1 C' [3 y
B.void* pVoid=static_cast<void*>(pB);6 r5 D& O2 [5 J. _' J. Q$ T
pA2=static_cast<ClassA*>(pVoid);* A1 n; Y9 D5 [5 ~( } a- M
C.pA2=pB;
7 F. @! s4 Y1 Y0 yD.pA2=static_cast<ClassA*>(static_cast<ClassC*>(pB));
" U! A+ G& U Y' J- R7 a0 ?# r7.参照1.5的代码,下面那一个语句是不安全的:
) \% f: q p: x. P2 A7 F0 V% U A.delete pA B.delete pB C.delete pC
2 f/ y5 W! N3 N% u3 z8.下列程序的运行结果为:
' i) G. g9 n* S#include<iostream.h>
/ Z5 _7 g2 O0 \: A1 Lvoid main()
\! X" t& d/ f- f/ l{* h& l' A; t$ E9 X4 G: U, N
int a=2;
6 H+ k9 a* o% Y Gint b=++a;( X) u/ h# f0 O$ h4 Z
cout<<a/6<<endl;
" L$ v) q3 K! g1 X( @. ^+ H0 B8 N}% R$ m( U* t6 r) H8 E
A.0.5 B.0 C0.7 D.0.6666666-
+ ~( w; \0 @& b1 t9.有如下一段代码:/ P" o* z* C) b% O- q0 \
#define ADD(x,y) x+y
& Z; k; x; u& a" fint m=3;2 X5 A! v& f2 f8 E' y% _
m+=m*ADD(m,m);
: @4 B3 N6 r- R0 ]0 I' g q则m的值为:' |7 `! P$ |0 w( Z4 f
A.15 B.12 C.18 D.58
9 C. e$ C- n; ^$ ?10.如下是一个带权的图,图中结点A到结点D的关键路径的长度是:
8 C; ]. _8 x: [+ B/ yA.13 B.15 C.28 D.583 x" v! e" K8 l5 V, h# L
& B1 Z) s: W. f% i. s1 m
11.下面的模板声明中,正确的是:
9 [2 q5 ^9 j" z; h6 Z4 UA.template<typename T1,T2>
" p* `$ M& m: `! F7 Q; k4 IB.template<class T1,T2>
! h# n, Q" c2 I8 \$ W" iC.template<class T1,class T2>
) I. C+ q' Z! z3 Z/ u4 CD.template<typename T1;typename T2>' |4 }& W: k) U( U2 I- H
12.在Windows编程中下面的说法正确的是:
8 s: P' T- W+ ]2 B$ r& i( kA.两个窗口,他们的窗口句柄可以是相同的 B.两个窗口,他们的处理函数可以是相同的4 @, ? ?5 m4 Q6 N) j! r$ m
C.两个窗口,他们的窗口句柄和窗口处理函数都不可以相同.
/ H. P: u3 {5 c6 g! e13.下面哪种情况下,B不能隐式转换为A?
! S: O" A6 ]! `2 M" `7 a. mA.class B:public A{} B.class A:public B{}2 V4 H: W. N. e0 P# T. y) Y
C.class B{operator A();} D.class A{A(const B&);}6 T8 X7 \2 S8 `) {8 }. y
14.某公司使用包过滤防火墙控制进出公司局域网的数据,在不考虑使用代理服务器的情况下,下面描述错误的是”该防火墙能够( )”.# h3 _9 H; I, z$ `
A.使公司员工只能访问Internet上与其业务联系的公司的IP地址.; S$ Q* R/ |# k4 j0 U, x) l1 ^
B.仅允许HTTP协议通过,不允许其他协议通过,例如TCP/UDP.3 I: v ]1 h8 E" v. N; ^$ T+ j* D
C.使员工不能直接访问FTP服务器端口号为21的FTP地址.
) g: l: s7 \$ A# E& r+ MD.仅允许公司中具有某些特定IP地址的计算机可以访问外部网络9 r( S) S8 m* A& d
15.数字字符0的ASCII值为48,若有以下程序:2 I5 }- `- m- y& O
main()( _: q& m% K) q
{2 D& {& s7 M: ]2 K8 l5 _
char a=’1’,b=’2’;
$ t/ F* z6 g# lprintf(“%c,”,b++);6 k( N7 d2 g: o5 B8 G8 [) J; `
printf(“%d\n”,b-a);
1 x# ?/ `+ I0 V}
$ `' p$ k8 d8 K$ Q# M程序运行之后的输出结果是:0 C$ g: ~% b( p5 j: C
A.3,2 B.50,2 C.2,2 D.2,50
: I6 E$ N8 I( ` G5 e7 s4 u, x# x1 h二. 填空题(共40分)) b. K& ]- c# z' b
本程序从正文文件text.in读入一篇英文短文,统计该短文中不同单词和它的出现次数,并按词典编辑顺序将单词及它的出现次数输出到正文文件word.out中.
/ G! c% C* c- H- M4 G程序用一棵有序二叉树存储这些单词及其出现的次数,一边读入一边建立.然后中序遍历该二叉树,将遍历经过的二叉树上的节点的内容输出.1 b; h$ D3 u' A$ h4 P
程序中的外部函数
p0 a6 U$ E& A1 Q* U" J% M* ~( \int getword(FILE* pFile,char* pszWordBuffer,int nBufferLen);& c A" b) f! L4 z
从与pFile所对应的文件中读取单词置入pszWordBuffer,并返回1;若单词遇文件尾,已无单词可读时,则返回0.6 X, Y7 I# j- Q& b* b- X
#include <stdio.h>
: L, u f8 r/ ~+ `6 [0 Z#include <malloc.h>$ l- w4 q9 ?3 O8 ]4 k
#include <ctype.h>
5 `4 a7 w3 i7 E1 r8 t#include <string.h>
; L. c! j. `" e$ ]! d1 c) v
2 Y4 B8 U+ B- u$ e- j) H8 O% ~% z#define SOURCE_FILE "text.in"9 v% y2 L( }: Q4 C6 u7 C+ C3 w
#define OUTPUT_FILE "word.out". S ]* g* ]0 a* g; U f
#define MAX_WORD_LEN 128
$ j$ P5 `0 A( y+ s9 }; Y0 H! w 8 f6 t; q z* |2 g9 r# _( P' K/ [+ l; k
typedef struct treenode9 Y, W5 ], W: A3 Y( q7 n# L
{% J. S% W) [4 q! O+ e
char szWord[MAX_WORD_LEN];. r |8 X1 D2 g1 |3 Q" F7 e4 ~0 b
int nCount;% Y- W" T+ E6 h9 M6 a% I. B
struct treenode* pLeft;) L4 y2 C6 n5 m; h0 {' A
struct treenode* pRight;
, x9 _5 i5 h4 W0 `}BNODE;6 W3 _$ D6 z+ l) S! b7 i) Z
( S/ i0 N; q3 |9 f4 I
int getword(FILE* pFile,char* pasWordBuffer,int nBufferLen);
3 |4 V' m4 b3 v6 c1 I; ? , V" R1 l; Q. A( ?
void binary_tree(BNODE** ppNode,char* pszWord)0 Q [9 Y. [5 c# U
{
0 `; u! M. ~4 L3 w# ^9 Z if(ppNode != NULL && pszWord != NULL); j8 O* o# m% s
{" K1 K$ R6 |) L0 p, s# I
BNODE* pCurrentNode = NULL;3 R6 ^& W. B8 w* |! D. i' N
BNODE* pMemoNode = NULL;- e" h h+ v4 L! k; c
int nStrCmpRes=0;
8 s+ u+ Y% Z5 A5 m& N ( C1 Z# a( t4 I1 w
____(1)_____;pCurrentNode=*ppNode2 F/ K# ^# x& V" ^5 W
4 ?, b/ t/ L4 T+ e! q5 y7 A6 y
while(pCurrentNode)9 H9 o E, X5 i2 N
{
' d" S; ]) |3 ~3 U4 x1 X; l /*寻找插入位置*/5 w- a0 J! d. x r& Q
nStrCmpRes = strcmp(pszWord, ___(2)___ );pCurrentNode->nCount5 y! }: A! V; v, M+ o* d7 p3 B7 e6 W0 ~
: Z Y# l/ Y/ `: V, j- m if(!nStrCmpRes)
& O+ V- t; ]9 I4 q {
8 A8 v: A) Y: R' z9 {3 Z ___(3)___; pCurrentNode->nCount++
$ V* y# ?/ d. A$ K1 o2 `* f8 s" W
8 G# Y. g o- i$ R return;( F7 D' ?! u- B. x! Y# p" y5 F
}& t* M( B1 Q7 t7 f' h0 {
else
5 x( t: c/ ]0 O) s+ Y; J) C3 V1 d {
3 e4 p4 F: |7 I# |. O% ? ___(4)___; pMemoNode=pCurrentNode
3 U& q+ ^# z5 m pCurrentNode = nStrCmpRes>0? pCurrentNode->pRight : pCurrentNode->pLeft;6 i* d0 b4 K. J! K! x1 x
}& c8 Y6 L) T7 D' G! u! E4 x% ?
}
' I% Z& I0 |. M; C }/ g4 [9 M* p! \) p) ?# d7 F) _
+ K/ S* I5 _8 e pCurrent=new BNODE;% u8 `; D. Y. T* {( b
9 ^& N- x$ d8 Z( h4 p7 G: ` if(pCurrentNode != NULL)/ G1 t- e( I# J1 x/ A
{
7 U3 Z0 d( R) O5 o+ [1 ^ memset(pCurrentNode,0,sizeof(BNODE));' m- w2 u7 u* ^! ]
strncpy(pCurrentNode->szWord,pszWord,MAX_WORD_LEN-1);3 H) \7 Q5 u* |/ B
pCurrentNode->nCount=1;
& s. A6 Z7 u4 A i$ C } N* J6 p+ A) ^' S |
( Y2 n7 P+ h1 \7 F D$ m
if(pMemoNode==NULL)/ D" R0 ?8 O3 E1 O& v' @
{
6 z4 B! R a2 g ___(5)___; *ppNode= pCurrentNode; Z& a0 k6 F/ W- x
}
( p/ Z( G u0 O; {* u1 R else if(nStrCmpRes>0)' D% P& c, D. f2 l8 g
{
r1 T3 d& \, T8 l% B pMemoNode->pRight=pCurrentNode;9 o9 h' X$ @- p4 Q4 l7 V( j
}; l X' _8 c& Y; \0 i/ g
else+ D# \ }4 @3 t# O
{% P( P' @: u; r4 L( B
pMemoNode->pLeft=pCurrentNode;
; p8 L1 e" I4 F8 t, L+ Z8 a L }
% z: Z [! d; T1 v}
3 D6 a7 ]7 A7 Y. _* i
; r& i0 Z% G$ ]2 w: rvoid midorder(FILE* pFile,BNODE* pNode)
! y# F$ K0 T# F% T* @( d: E: T4 ^5 _{ c# W: n- X1 x" S. O1 E$ a H
if(___(6)___) return;!pNode||!pFile
: H1 H7 x- _3 p6 Y ( ?8 z8 d! S$ _$ G9 Y; w
midorder(pFile,pNode->pLeft); l; j( ~& h2 c4 w; [
fprintf(pFile,"%s %d\n",pNode->szWord,pNode->nCount);
) s) H6 \5 T, h( [3 |0 H midorder(pFile,pNode->pRight);
% c! j9 ]1 ^- R, A- D/ y, _3 p- Z# f}
! s0 u8 u& t. `# X1 k5 K
& x0 C* `. E3 @$ F% `- J3 ?8 W4 svoid main()
/ _! C% X! g4 ^$ K. f" K$ A{; \) S/ K0 u) O, b% v2 z
FILE* pFile=NULL;
6 K9 p8 @3 `, ^1 E2 z- ~ BNODE* pRootNode=NULL;- @9 Q: z2 C. G" a- Z/ ^" q" ~; r3 {
char szWord[MAX_WORD_LEN]={0};4 q$ Y% p m Y8 z. l/ B
. z3 V' s" Y* @. D3 k: j
pFile=fopen(SOURCE_FILE,"r");' N, _' s& ]& B8 ?/ N& j `* H
* \- Z8 q1 M \" J if(pFile==NULL)1 P1 x9 B) T, r5 ~' o9 M
{
) a( i; v# q4 S7 E printf("Can't open file %s\n",SOURCE_FILE);
# I& \4 |7 I# Q8 }& ]' s; H return;
$ p1 W1 ^% `/ Y! E- h }! o' K9 k1 D7 U: y. h" M
& E7 L( ~ |) j+ `# [; v while(getword(pFile,szWord,MAX_WORD_LEN)==1)
6 f: x, |; u+ V- E1 P1 G' r7 M {' `6 N7 v2 Q& \. T3 Y
binary_tree(___(7)___);// pRootNode,szWord
) h; I( g3 m5 D) d1 |0 S% {6 q }
+ K7 [3 L0 `( t9 k
# h- M. E9 I5 d! C fclose(pFile);
( l f- X' i1 f5 C' x2 ]+ q# w ; Z D: ^1 N5 s. U
pFile=fopen(OUTPUT_FILE,"w");6 H4 H+ a: w& W ]# h# P! b6 \2 k, J
midorder(pFile,pRootNode);5 o( `6 r8 C. c. t
fclose(pFile);+ i1 q. E. I7 W* w. T+ m
}
; W8 F; J5 S# f5 u三. 附加题(每题30分,2题,共60分)' w a# s1 y+ W6 J0 q9 b4 k& v8 @
1. 从程序健壮性进行分析,下面的FillUserInfo函数和Main函数分别存在什么问题?
, I' L! A' ]3 h& F8 c* f. h#include <iostream>/ c' j- b; i$ T n7 g3 o5 F
#include <string># @0 T4 J1 _6 |( t* [5 Q
1 d- s0 f, N: q$ r( G2 O* t' N
#define MAX_NAME_LEN 20# P$ M n# h9 T- j
* J7 h$ l3 R& R L# K/ _3 ?6 astruct USERINFO
+ s+ _' c7 [! k- \" E8 D! z{. B% e. ]& m, ?/ A7 Q6 s% |
int nAge;
b! y' h/ i4 ]4 r% W. |- l char szName[MAX_NAME_LEN];
8 }( E6 s+ a6 J- j( T};% }3 z, _" L$ A5 S
& O( @/ b, n) s5 }. @. f
void FillUserInfo(USERINFO* parUserInfo)' B7 o# K8 h$ u$ L7 B
{
" Q" R1 R) J% a stu::cout<<"请输入用户的个数:";
* ^/ o" h+ {5 B8 a7 z& \2 P 8 P$ J! E( z2 ?& V- f
int nCount=0;/ N1 r e0 D$ K% n1 t
std::cin>>nCount;
* K3 Y+ X/ l2 {3 n
3 ^' E+ }/ |/ \ for(int i=0;i<nCount;i++)
+ h6 \. J) Z; g! M5 D6 @ {
2 R& W% J _9 O% O% {' [+ x std::cout<<"请输入年龄:";
% Q0 T8 R3 z. P4 r std::cin>>parUserInfo->nAge;( t/ Q+ O0 { u, `5 E. Y
/ C# s) d( p8 M: R6 `3 r" P! z std::string strName;
k# w6 N2 ]% y: n std::cout<<"请输入姓名:";9 s* Q+ c( t5 h8 s9 k7 h/ M8 {$ I
std::cin>>strName;- L! \5 f/ T4 C2 d9 `9 b3 B
strcpy(parUserInfo.szName,strName.c_str());# i l- e" o& c. l f# s6 X, S, s
}- t; {5 N" [" Z8 F& U* H% X
}
* G' V1 F9 _ \- r5 N( B1 m# `/ k/ n - T1 E" H1 X: }( Z+ n' e
int main(int argc,char* argv[])
4 x- b: I: V+ j. o; {+ _9 V" t! f{
- v$ d3 S4 y& ?' E! H2 L USERINFO arUserInfos[100]={0};
3 g( H* b1 Y- Z6 D( h! y FillUserInfo(arUserInfos);
; ]/ p- K& I# u& O# J$ ]
/ D4 v$ Y7 h7 B* r: ?) X; ^ printf("The first name is:");: y) \0 c9 S; I L
printf(arUserInfos[0].szName);$ }% k+ z6 K5 Q% O# d5 X- X
printf("\n");3 c; Q3 m0 o# o0 }! n; O/ P
+ e& S+ |7 l- h! k4 U return 0;
R4 N, ]9 C$ D4 h m: o T8 ~+ N; B3 b}6 T; e, [: {3 T; u7 G
2. 假设你在编写一个使用多线程技术的程序,当程序中止运行时,需要怎样一个机制来安全有效的中止所有的线程?请描述其具体流程.
0 q' D( B0 Y6 o. K4 k- c) _0 U2 ^, y9 V
$ v3 Z+ p. e5 f2 A# f查看名企2012校园招聘最新进度,请关注阿凡提求职公共日历:http://www.aftjob.com/home.php?mod=space&do=calendar2 h. R1 }$ f: Y# E
百度历年校园招聘笔试题:http://bbs.aftjob.com/thread-417000-1-1.html g) u4 \. T6 |4 q% B$ U; y6 Y. V
百度历年校园招聘笔试题:http://bbs.aftjob.com/thread-417000-1-1.html3 ]" x" L5 o/ p f# R& V' I) X9 q
2012腾讯求职手册:http://bbs.aftjob.com/thread-608477-1-1.html% h' C T: N6 w8 c, P8 C
2012百度求职手册:http://bbs.aftjob.com/thread-608484-1-1.html: q1 }5 B# M- O% F9 Z1 z7 u
2012阿凡提求职手册——IT行业篇 :http://bbs.aftjob.com/thread-607158-1-1.html |
|