|
|
腾讯2012年校园招聘笔试% a6 \; d T: O
. U# U; `* ^+ Q
8 N; X6 a9 A0 [, ~0 a w! L6 L4 E% h( g1.笔试时间
' {/ S* T$ ^9 T6 k8 e! Y2011年10月各地区笔试
# J4 E) G0 N' j' K$ L8 ?合肥,重庆,大连,武汉 笔试时间为10月9日
, D% s, A/ j6 f$ P& X北京,深圳,南京,沈阳,长沙,上海,杭州 笔试时间为10月15日 ) _$ B) t4 I6 b/ W% T8 q
天津,厦门,香港 笔试时间为10月22日
) v7 s, i5 s# y# ~9 M$ Z; V" u" X+ }; Q6 D0 b' d/ z& U5 e( F* B
腾讯2012求职俱乐部:http://bbs.aftjob.com/group-47-1.html
[2 p1 c! m8 c: h7 C3 {3 N: x腾讯2012求职手册:http://bbs.aftjob.com/thread-608477-1-1.html
9 T- W. g( C4 A* W/ O5 W' Y! g& G" Q: i
2.宣讲会剩余时刻表7 ?0 u& n( g F, V
学校 宣讲时间 宣讲地点 " r0 o* G {2 }, ~+ c- a7 ]
重庆邮电大学 9月26日 19:00-21:00 第三国际会议厅
" M& r+ @' @/ n重庆大学 9月27号 19:00-21:00 B区勤工楼2楼报告厅 . k. D' \! d0 A: P) q) H, A( |5 o
中国科学技术大学 9月27日 19:00-21:00 西区学生活动中心2楼学术报告厅 " v$ l7 J" g) f% b+ ]) N
复旦大学 10月13日 18:30-20:30 张江校区行政楼106号报告厅
% |3 j+ A( z1 m1 s" U上海交通大学 10月14日 13:00-15:00 闵行校区光彪楼一楼多功能厅
9 J6 @# `6 W" T( D6 H+ A" n6 \( d: b0 v浙江大学 10月11日 9:00-11:30 玉泉校区邵逸夫科学馆演讲厅 / A8 ]1 {5 O: s- F" B) J# V& T% t
北京大学 10月10日 15:00-17:00 英杰阳光大厅 6 ^: k* f. _. l( H) i6 `5 R
北京航空航天大学 10月8日 19:00-21:00 学术交流厅 4 K2 I* F/ I) B8 D
深圳大学 10月13日 19:00-21:00 科技楼一号报告厅 " K R* M7 X+ P& ]4 C4 R
南京大学 10月13日 19:00-21:00 科技馆一楼报告厅
: d8 W. G1 @) a东南大学 10月11日 14:00-16:00 逸夫科技馆报告厅 $ X; }4 A( N/ D. o- @8 G+ l( V
+ \- w3 T p& K/ K* g' L' F4 s
3.2008年腾讯技术类校园招聘笔试试题(A8卷)' y% W% n3 k( k' Q( M# _" h
http://bbs.aftjob.com/thread-93654-1-1.html$ Z! n/ j0 L5 U" O" p* }
姓名:______________ 联系电话:_______________ 简历编号:____________ L% _/ b1 F) i8 M) }: y& T
学校:______________ 专业:___________________ 学历:________________
% D: ]+ X! i( |一. 单选题(每题4分,15题,共60分)
2 S! p+ g- z# t+ _1.考虑函数原型void hello(int a,int b=7,char* pszC="*"),下面的函数调用钟,属于不合法调用的是:* w( R" c" F; c5 {" Z Q
A hello(5) B.hello(5,8) C.hello(6,"#") D.hello(0,0,"#")) I. s- v1 i* L8 c
2.下面有关重载函数的说法中正确的是:% K- }' B- B. N$ a2 \5 p4 k
A.重载函数必须具有不同的返回值类型 B.重载函数形参个数必须不同
4 y5 D8 J* k @9 P2 @' C& Z C.重载函数必须有不同的形参列表 D.重载函数名可以不同
3 U. L3 L x0 w/ r8 y; Q, z3.分析一下程序的运行结果:
3 e3 M+ `4 H# |9 a; ~; V- U#include<iostream.h>
: h# Y, n9 {# {8 ^, Y/ @+ S% Q5 ]class CBase1 n- |3 @0 w5 F n" X9 F, {
{
% I9 L% O2 b$ U; k$ M) S4 C1 r4 h( _public:) p1 G& w% u/ e4 k2 w
CBase(){cout<<”constructing CBase class”<<endl;}
5 S9 Y% c) U3 |1 L2 I+ z0 O~CBase(){cout<<”destructing CBase class”<<endl;}
8 L* ~0 e" H! t& m! [/ Q};
5 f, O9 v+ N& N6 i9 T& G3 Eclass CSub : public CBase
5 i) n' z9 C5 S/ A3 u0 U& M{1 H. k7 ]( O" F" X5 C
public:
+ @: d) U+ L9 R1 p9 v; z: ACSub(){cout<<”constructing CSub class”<<endl;}
3 u# x( J' r3 }: f. g- n~CSub(){cout<<”destructing CSub class”<<endl;}2 B- g# Z/ [8 t; ~) J7 ~* Y& g, X1 ^6 f
};
8 r6 |; m( N+ ?5 J0 P8 Ivoid main()& u" k' S1 P& N: H4 Q' k% }4 h2 R
{
5 H. t, H+ f' u! N; k* _6 } CSub obj;( A/ B8 s# T" k; F9 m7 g
}
4 r' g" r7 X: ~: [, c" fA. constructing CSub class B. constructing CBase class4 K$ Z5 ~- ^1 r/ u4 t
constructing CBase class constructing CSub class b! \, I3 e* U
destructing CSub class destructing CBase class2 r' F8 s }( l2 f" I
destructing CBase class destructing CSub class
: E/ @4 X8 a7 y; n* X% A, UC. constructing CBase class
: s3 L1 [+ G# o( J' j constructing CSub class
. I4 l- Z8 d0 m& l7 q2 T1 }5 Q destructing CSub class 4 v( ?) E H- w* x: t
destructing CBase class 2 U' p9 H6 Y4 U) a* ?
D. constructing CSub class
# c! e! G7 K" _4 b1 C0 \/ ^ constructing CBase class
+ s- `, S! B |" k6 B$ }" a3 ] destructing CBase class
% M- m! Z( D; P destructing CSub class, \6 m) |8 u2 j) k" d4 c+ d- v
4.在一个cpp文件里面,定义了一个static类型的全局变量,下面一个正确的描述是:( r" V# n. |8 y' V# t+ B
A.只能在该cpp所在的编译模块中使用该变量
5 k/ {2 b5 u" b2 @" J" t2 u0 |B.该变量的值是不可改变的
" R( B* Q. U7 m- Q4 c( O+ QC.该变量不能在类的成员函数中引用+ I$ b4 w9 R- Q; K. ^
D.这种变量只能是基本类型(如int,char)不能是C++类型
1 b6 j/ n/ P5 v7 c8 O9 B, g5.观察下面一段代码:
% I8 X) T. l6 ?% _$ T0 J( F" \8 Eclass ClassA) m" v- n! q! L7 Q4 S
{) p9 O ?9 D1 [
public:
- X3 i9 K8 V, u- ^* t% @virtual ~ ClassA(){};
. m% A8 j* X8 xvirtual void FunctionA(){};
0 V8 x4 q' Q# I4 W& d! G( `7 O};) h0 `2 k8 T: g5 Y1 i6 O
class ClassB; O9 N1 O1 p* _" W' m+ x! e, _
{6 n# J J* U7 t3 g4 i2 j6 I
public:9 v7 P' @' a' b! C/ L4 D& a6 g
virtual void FunctionB(){};
% l+ q5 U6 P W/ ?0 Y0 [' B5 X};
7 O6 y+ m) Z1 C5 T5 R$ T8 K# Sclass ClassC : public ClassA,public ClassB
5 X: K0 {5 K7 y* p" [{
* X1 B: z4 z* P: z) f2 N4 Vpublic:/ `/ I* _$ h& g
};
2 }2 K$ C5 `& |) r1 {) c " Q. L# q" Y& q
ClassC aObject;
* {7 e$ i4 F+ M# ]/ @ClassA* pA=&aObject;/ v; p& C8 Q5 O& n
ClassB* pB=&aObject;" I: }0 R0 j" i6 j" ^ \3 Z g
ClassC* pC=&aObject;
0 X5 C, d5 _& z/ m+ M4 l关于pA,pB,pC的取值,下面的描述中正确的是:9 H3 s) W* R8 U; Q, ~
A.pA,pB,pC的取值相同. B.pC=pA+pB/ Q5 a/ _. A6 E+ L8 @
C.pA和pB不相同 D.pC不等于pA也不等于pB
3 m$ w9 h/ A T- I4 Y3 M/ F1 e t2 y6.参照1.5的代码,假设定义了ClassA* pA2,下面正确的代码是:, p3 {; G) Y( g( `3 X# O" w. J
A.pA2=static_cast<ClassA*>(pB);
8 Y! Z) @4 G8 [) o6 VB.void* pVoid=static_cast<void*>(pB);; U; Q- O% A: a% O' l' D" H
pA2=static_cast<ClassA*>(pVoid);
6 X9 C; S8 U6 } }% G0 w9 x& Q" _C.pA2=pB;! z( \3 Y2 c8 v* H1 j+ t
D.pA2=static_cast<ClassA*>(static_cast<ClassC*>(pB));
) Y9 e s# z* o3 t, ?1 w! _7.参照1.5的代码,下面那一个语句是不安全的:' c5 J, v% n; U* i2 d6 n) Y. f K
A.delete pA B.delete pB C.delete pC8 V7 A! |# ]' m; c
8.下列程序的运行结果为:
/ a9 z; x% S& t" `' M8 @- H9 [#include<iostream.h>
# [( M5 J7 M* g" ?' Cvoid main()1 _# ]4 V: ]0 T: X) q0 Y1 {
{
( \7 {: \# z u: T dint a=2;
" r, H* ^( v4 [2 M2 I( Hint b=++a;: H0 b3 K" T# E d5 }
cout<<a/6<<endl;
( i0 a$ H* K& f}
5 M' t* O [# A: t A.0.5 B.0 C0.7 D.0.6666666-1 R, `% R" n. t8 v: M ]! @
9.有如下一段代码:& q( i8 ~9 L: o! N" S, n
#define ADD(x,y) x+y- y: f4 B9 l# ?& a. u" F
int m=3;4 D- A7 J* F5 D
m+=m*ADD(m,m);; k. H+ F( v& @% r
则m的值为:! _0 Q) R7 U# E/ E
A.15 B.12 C.18 D.58( f. E0 L, |- }0 N
10.如下是一个带权的图,图中结点A到结点D的关键路径的长度是:
9 |# j: U7 Z6 |/ h- P( \& D2 b+ k9 n- FA.13 B.15 C.28 D.58" s7 n. g; }# g ^
9 M( V2 H4 k* k* D! n, W7 ~% s
11.下面的模板声明中,正确的是:0 F; d4 n& k- R8 Y" v2 x
A.template<typename T1,T2>4 s* [& h% Z, }/ N( E( x! d
B.template<class T1,T2>
/ k: e9 V8 k2 {( SC.template<class T1,class T2>
. K" O8 t' L) @7 y6 b4 S9 yD.template<typename T1;typename T2>8 d5 E7 m% q$ c6 D. E0 ~+ z
12.在Windows编程中下面的说法正确的是:
& C$ t( ~2 X! Z7 G" m7 X' lA.两个窗口,他们的窗口句柄可以是相同的 B.两个窗口,他们的处理函数可以是相同的5 P# A" |& {6 C
C.两个窗口,他们的窗口句柄和窗口处理函数都不可以相同.
1 m+ E' `! u" f! e9 u13.下面哪种情况下,B不能隐式转换为A?% |4 s( P8 }7 y0 ^1 v7 f
A.class B:public A{} B.class A:public B{}
, z0 G! v# `4 t" N1 o7 p+ qC.class B{operator A();} D.class A{A(const B&);}
4 H. ]7 }# m! Z% S14.某公司使用包过滤防火墙控制进出公司局域网的数据,在不考虑使用代理服务器的情况下,下面描述错误的是”该防火墙能够( )”.
5 g7 S+ |2 j$ W8 O* y7 P& Z xA.使公司员工只能访问Internet上与其业务联系的公司的IP地址.) @/ n+ D' [( u8 O- M% F. R) C
B.仅允许HTTP协议通过,不允许其他协议通过,例如TCP/UDP.
' I0 |2 w1 \ PC.使员工不能直接访问FTP服务器端口号为21的FTP地址.
7 }7 ?( o- K, CD.仅允许公司中具有某些特定IP地址的计算机可以访问外部网络3 L; u3 T4 a8 V/ O; m
15.数字字符0的ASCII值为48,若有以下程序:
$ e" s$ S: ]7 t+ Q$ Mmain()
7 \% m/ \% m/ T4 D9 ~* v{
) ]$ l+ c+ H+ R- N( Q/ {( ? char a=’1’,b=’2’;7 T0 `$ L- W+ y% n# d7 x* S
printf(“%c,”,b++);' V# O: U% \+ a! s! F: e3 ^) }3 X3 @
printf(“%d\n”,b-a);
8 K3 A5 t3 i/ y: Z}! b) e1 M, H$ H) f# I$ i
程序运行之后的输出结果是:% i" F$ z! ~! ~ y0 Z
A.3,2 B.50,2 C.2,2 D.2,50* K1 ~& u* q) o6 y2 F( P7 O
二. 填空题(共40分)7 k" T2 p+ D$ U( q8 b
本程序从正文文件text.in读入一篇英文短文,统计该短文中不同单词和它的出现次数,并按词典编辑顺序将单词及它的出现次数输出到正文文件word.out中.& g O6 Q& _$ {( ]
程序用一棵有序二叉树存储这些单词及其出现的次数,一边读入一边建立.然后中序遍历该二叉树,将遍历经过的二叉树上的节点的内容输出.$ o; U0 B' e' Q) g& ^* [ S
程序中的外部函数
) p" ?) F; v1 }6 |5 D0 T; qint getword(FILE* pFile,char* pszWordBuffer,int nBufferLen);
1 ]( ]: ]; A5 m* c9 y. b从与pFile所对应的文件中读取单词置入pszWordBuffer,并返回1;若单词遇文件尾,已无单词可读时,则返回0. L0 J/ F% a# V4 K( E8 n9 l
#include <stdio.h>$ A* d# z9 D' m0 O# [
#include <malloc.h>
% Q% d! j$ z+ t/ x1 D# E( t4 S( ~$ Y9 _#include <ctype.h>
% B' g: B3 z" [#include <string.h>
) R* a8 V: M" \- J X
) S; x5 q ]$ M* P#define SOURCE_FILE "text.in". P, g: ^8 O3 |/ \4 ]; M
#define OUTPUT_FILE "word.out", o; J8 }; O1 v% [- S; ?
#define MAX_WORD_LEN 128. r: M* O" h/ l
0 c8 H+ ]& r' k4 B$ otypedef struct treenode0 Q9 |- H9 H* l: g) A' e5 R
{
9 r6 U' V6 A; `% t. u char szWord[MAX_WORD_LEN];
, _$ M- b* [8 b% y1 e& T int nCount;
9 F! s: o7 ]8 u4 F struct treenode* pLeft;
4 } ^9 ]/ M8 g; y struct treenode* pRight;
2 h4 {+ K0 x: ~7 \' }* e# q0 h}BNODE;
. E; J0 b5 L- V X9 h& {( m1 Q4 Q# @: I
( A% f% ~! _8 M5 \: Zint getword(FILE* pFile,char* pasWordBuffer,int nBufferLen);2 Q/ Y0 j" q& r9 p9 H3 W/ F, j
5 }1 a" P; n/ L G* [+ u
void binary_tree(BNODE** ppNode,char* pszWord)
% e- w, Y R+ Y. e! `6 n. |{5 S4 D7 a: k2 ]! J# Q
if(ppNode != NULL && pszWord != NULL)8 u& O" Z/ o& X2 }
{% ?- s' a% c0 \1 F
BNODE* pCurrentNode = NULL;
) W: [/ ~. [, a7 j5 l; J7 v BNODE* pMemoNode = NULL;
& B$ Z' S [2 o9 o int nStrCmpRes=0;) A7 F& \+ M# }. A- ?* ]" F% n
1 q* Z8 B/ U" K& ~5 ~* N3 |2 H9 n ____(1)_____;pCurrentNode=*ppNode5 D9 x P: u% W
[4 K; t' B8 n! T while(pCurrentNode). m r; s0 B1 _) Q) m; [
{+ ^2 i( V# z4 E, T! n# m! ^
/*寻找插入位置*/* O; s3 Y6 I( N7 D0 i8 Z" i
nStrCmpRes = strcmp(pszWord, ___(2)___ );pCurrentNode->nCount1 \& K! S$ V. B8 |. `3 S
9 b# j* |4 K: {. r
if(!nStrCmpRes)9 O3 G% z' e9 B9 J
{
( q7 P6 N* J5 E' e) S3 l ___(3)___; pCurrentNode->nCount++
" k4 C5 X d+ q) s0 u' O
& F' @8 M: m; U5 g return;
# Z7 R! ^; ^6 e) w5 f8 v9 N# Y! I ?' ? }
$ I0 ]/ ]: a" j% k3 }6 l& x* o else
& \6 F) M- Q; X! c0 b. L {
1 A# m0 g$ | z ___(4)___; pMemoNode=pCurrentNode! [# c- l: `( o9 g a
pCurrentNode = nStrCmpRes>0? pCurrentNode->pRight : pCurrentNode->pLeft;
9 O6 Q/ Y ^+ `/ f( a+ N. N }
. \1 h/ m0 T; s0 A/ ^ |3 E }
# v* A+ r. j" P6 Q7 O$ J) n) P }
9 s/ G: r6 R# }) X o# F9 b7 | M7 N
0 y4 m' K; M. G! G9 A, ]& a pCurrent=new BNODE;, q- s9 S% M6 p- ?# J6 T& v7 Y1 U
- G: c# ]/ v) v
if(pCurrentNode != NULL)" G7 Y% Z3 i( Y8 U* v% @% F7 }. ]
{
- A. K, r6 c; m, T" [3 W memset(pCurrentNode,0,sizeof(BNODE));
* Q" }2 y I( W/ t# M2 d strncpy(pCurrentNode->szWord,pszWord,MAX_WORD_LEN-1);
v$ s2 c/ x! j& q5 Q pCurrentNode->nCount=1;
& M+ b, x( i' T }
, A7 H1 a: e4 h0 j: \% ~
: n3 x# q/ i! `- k2 [) b if(pMemoNode==NULL)
6 \, ]7 [2 Q. Z% E9 c4 l {' ~4 |9 W) F" J: S, t! B/ ^1 B
___(5)___; *ppNode= pCurrentNode
' a, {+ Z( A7 a6 ^" ~ }' @# V& A# {2 o) G0 f# e, C
else if(nStrCmpRes>0)
# Z4 K6 v: A2 z Z+ { {
2 a0 b/ C) k c2 t0 v k* A pMemoNode->pRight=pCurrentNode;/ D7 g# ]2 B. N ]: C% u: d% W
}& y. Z4 `3 W3 n4 P' g$ h
else
9 W2 K3 n! M9 s) o {
5 }# p- I, E r2 M$ T( j- d pMemoNode->pLeft=pCurrentNode;
# D( o0 |8 s6 b }; i; W/ Q+ Q, w# K: i" x
}
# s3 V) Z& W+ W! m; J I 0 M' _+ O0 l# z* n; G% M2 ?
void midorder(FILE* pFile,BNODE* pNode)
3 o% ~2 d( h1 m2 ?) c3 H& ~& }8 }{
w' A/ _" p/ b. { if(___(6)___) return;!pNode||!pFile
1 Y n2 r! g5 S0 @/ l , {# Z C# Q" V- }" b. ~8 `3 q
midorder(pFile,pNode->pLeft);
! u& g+ a# J$ s# e C- ^ fprintf(pFile,"%s %d\n",pNode->szWord,pNode->nCount);
7 m5 h. q4 N8 g+ z- r% b3 T5 J3 E midorder(pFile,pNode->pRight);& T' d0 a' L" D
}
" _5 Z! |0 e( p& z( `5 p3 ?3 N1 _+ J
2 s1 R& }+ D5 O' A3 z% }9 i! i: xvoid main()
( W% N7 U; R f q2 g" y{, C+ a. i% N+ Z2 j: t8 ~
FILE* pFile=NULL;
5 \& q! ?# ?4 g' S \ BNODE* pRootNode=NULL;
* b, m" `/ T8 h2 I4 p char szWord[MAX_WORD_LEN]={0};
) K3 _' m# m1 J& ^) A' s 5 P4 V7 z8 V0 @) c, Z
pFile=fopen(SOURCE_FILE,"r");) w! P( m3 P" D. E
. A- m/ S! S0 `, {9 }& a
if(pFile==NULL)6 U% W0 Y% X8 q$ u
{. S- e: Y% U: f& k
printf("Can't open file %s\n",SOURCE_FILE);
# }/ r" y1 w/ i3 b return;/ D9 W0 t& K7 \7 P) d$ B7 A4 R. d0 o
}' d: L* o7 ?" O# `" L. x( n n: J" e& ?
) ]+ A( C- G8 h2 ^ while(getword(pFile,szWord,MAX_WORD_LEN)==1)
" Q |4 R7 M3 ]% X" E8 n8 E {
. Q- b" K R0 ?. z binary_tree(___(7)___);// pRootNode,szWord5 g. w6 t9 D( {. {
}& f! y: X1 ^$ e* V% F
# t, c5 H9 e# L2 z6 P# f fclose(pFile);! ~6 W0 L% j. k4 g/ n
5 {6 J" I4 u; U! g/ F8 Z% e0 B pFile=fopen(OUTPUT_FILE,"w");' V) [- F, l4 o
midorder(pFile,pRootNode);1 M7 u: Z* u" _
fclose(pFile);
/ v8 g; r/ I# K; P' R3 b- L3 ?# `}2 T$ W; ?" H8 V. u
三. 附加题(每题30分,2题,共60分)
/ G8 G! C" Y* R( |- z# M7 v: d1. 从程序健壮性进行分析,下面的FillUserInfo函数和Main函数分别存在什么问题?3 X9 ?& Y2 H7 p* N: I8 b
#include <iostream>
c% g5 f! V+ R! u: z( K8 P1 T#include <string> v, h5 P# |! t3 ]' {; |
; @8 r7 P( i3 v' s8 h# |- C#define MAX_NAME_LEN 20
D, a F; w- Q' X( a: S' H 8 ?2 X2 g4 o! l
struct USERINFO) M$ z# R6 E# I V4 ]0 j2 k
{
2 U7 a! |: ^' M) c1 h2 ^7 N int nAge;4 k0 k: J1 A! u) y* u
char szName[MAX_NAME_LEN];2 J" W# Q% @4 y" l) r) Z/ T. `& I+ u% h
};+ Y$ ]% k2 b: ?8 v
8 ^; i- U" h! o& svoid FillUserInfo(USERINFO* parUserInfo) c0 p! r. G K$ S( M& S
{5 P6 v1 z, e# @2 k1 U& p7 n
stu::cout<<"请输入用户的个数:";
+ X9 v* @$ ^* q! p) v* a - ~" ]% Y7 g, T9 ] `) {# k
int nCount=0;: b& q/ l3 n/ x+ d
std::cin>>nCount;
% ~ \, i; C4 q( q
- ~# J; L+ f: B for(int i=0;i<nCount;i++)+ c5 @# j3 F9 o# J1 Q) z, j
{- n6 l1 S0 Y. E# Y* k# E" z
std::cout<<"请输入年龄:";
+ ^) \3 ]7 {4 I/ A std::cin>>parUserInfo->nAge;
7 a/ P' [% B+ I) S3 a# x
2 T. E" J7 T9 e2 x std::string strName;
1 H4 U3 _% m B* b! J/ i& Y' X std::cout<<"请输入姓名:";
( W( ? L* A. y5 D std::cin>>strName;6 k1 a1 H, ~: ~7 ^1 O! g* G) o
strcpy(parUserInfo.szName,strName.c_str());* {% C; y& B! _
}
. i/ a) z: q- y; o+ B( ^% o}
: K. }3 K& @$ o0 ~ 3 H2 @$ e8 {% R; _
int main(int argc,char* argv[])
9 U/ _7 a, ]' Z/ x1 L: X{: `6 E# O z$ X, N7 D8 F
USERINFO arUserInfos[100]={0};
. d7 X" \# ^9 ?6 ` K1 Y FillUserInfo(arUserInfos);
8 W, i! H/ t- A8 B4 b4 ~8 u
" ]- j+ y/ R. F9 f" B% y3 J printf("The first name is:");
4 W, J& c* R% K5 \: {- S printf(arUserInfos[0].szName);
- Y) M f' b' c8 a9 k7 V printf("\n");# ~7 c/ Z& @6 `2 [' M9 D
+ X/ b6 }6 ?1 y return 0;. N) I3 D2 _ R* M7 t
}
( \7 g9 ~, n% ?* `7 T* G( {2. 假设你在编写一个使用多线程技术的程序,当程序中止运行时,需要怎样一个机制来安全有效的中止所有的线程?请描述其具体流程.
M, z( [; z( P, |2 s. F' x" ?3 o8 E8 f: z
" D2 p' _; S5 b3 N) S, E
查看名企2012校园招聘最新进度,请关注阿凡提求职公共日历:http://www.aftjob.com/home.php?mod=space&do=calendar
7 [$ X7 N. K( b' @- \1 f4 R百度历年校园招聘笔试题:http://bbs.aftjob.com/thread-417000-1-1.html/ {1 @9 z; q' u9 d* K3 `% ^. W
百度历年校园招聘笔试题:http://bbs.aftjob.com/thread-417000-1-1.html* q# i1 a8 r0 U" j- t5 Y* a' p
2012腾讯求职手册:http://bbs.aftjob.com/thread-608477-1-1.html
( I8 } z2 B# v$ x+ O2012百度求职手册:http://bbs.aftjob.com/thread-608484-1-1.html
7 d6 s H' S- k! v2012阿凡提求职手册——IT行业篇 :http://bbs.aftjob.com/thread-607158-1-1.html |
|