自身
& J2 D7 Z+ `$ a4 R” A4 c3. 使用了全局变量或者使用了一个或多个参数, O- l+ f3 i8 v* a$ m
, S0 d, ~’ B, \, {* L
3、以下函数的结果?2 ^* s; z/ O$ a$ z” R+ ]
8 w4 F( A* h+ a& e’ {! @) M7 s& ^int cal(int x) 1 r9 P4 L& 3 k( M8 P+ f$ q
{
& y1 n” m9 R4 _5 g, vif(x==0) . s$ z0 I P! T1 O’ W! @
return 0;* z: T8 }7 d+ R9 p
else
; |1 P; ^: y* o6 c( I1 Yreturn x+cal(x-1);
L6 k- X, g4 h+ K- ” _/ N}
9 m+ p7 C/ M9 , j) M8 G H( }$ I( a: R- d3 [; }# W
4、 以下程序的结果?
8 f7 N$ z/ g& c+ {- V2 X* ]8 evoid foo(int*a, int* b) “( \4 ^. o# p, o7 c2 y9 M6 c0 S
{
+ \( t4 e5 W. Q+ [2 \*a = *a+*b;
& g4 _, o0 W; [. h% p" m3 f*b = *a-*b;
$ _8 D' b. e# M) m& R d" G*a = *a-*b;3 s/ J: i9 L0 Y: y
} 6 {6 d/ }# D3 f" g2 v8 c) v
" L4 L: ]; ]) _# wvoid main()
( Y: ^* [+ d( D0 U9 R# {{ & t& ~* ]& i1 a! a5 K
int a=1, b=2, c=3;7 o- U- h1 o5 i, E
foo(&a,&b);
* `: r8 I2 [- f ~0 D, A0 ofoo(&b,&c);
0 k4 I& l1 h5 wfoo(&c,&a);
( k# s7 X- |' e) i6 P* b" O# `printf("%d, %d, %d", a,b,c);
9 `0 f9 \5 w, j M9 N}
' Y. [8 g; n* w; u2 p' o5、下面哪项不是链表优于数组的特点?
% S1 U) _1 g5 T, d$ R# W- K7 L/ p1. 方便删除 2. 方便插入 3. 长度可变 4. 存储空间小
4 K$ J$ l+ r# a2 W+ F8 \) Q6、T(n) = 25T(n/5)+n^2的时间复杂度?
9 y r& x: h8 d$ A, 8 I4 M7、n个顶点,m条边的全连通图,至少去掉几条边才能构成一棵树?
. q( |7 g/ i* G# ~4 K- o8、正则表达式(01|10|1001|0110)*与下列哪个表达式一样?4 V3 A3 w6 |- H. q
; G% q3 E" a5 D, j" {5 D/ K
9、如何减少换页错误?3 C- I: g/ r6 ^
1. 进程倾向于占用CPU 2. 访问局部性(locality of reference)满足进程要求 )
3 @4 M" 0 z9 X$ Y0 x0 m3. 进程倾向于占用I/O 4.使用基于最短剩余时间(shortest remaining time)的调度机制
' E- a! F. C& i5. 减少页大小
, Q- V7 V9 {2 C8 s: s6 T2 {/ J! B$ a5 }! @9 V. C9 y
10、实现两个N*N矩阵的乘法,矩阵由一维数组表示8 [7 M$ ^ {+ v/ a3 ^
6 }# Y7 q/ D, \$ I' C1 z
11、找到单向链表中间那个元素,如果有两个则取前面一个2 t1 v4 U, h0 b3 D. d
% u# c! M8 p: A12、长度为n的整数数组,找出其中任意(n-1)个乘积最大的那一组,只能用乘法,不可以用除法。要求对算法的时间复杂度和空间复杂度作出分析,不要求写程序。
google浙大招聘笔试题(转)
一、单选
0 g. i6 _, L: L% [8 @1、80x86中,十进制数-3用16位二进制数表示为?0 d- Y. h' L4 R* j; k0
2、假定符号-、*、$分别代表减法、乘法和指数运算,且 }( `2
1)三个运算符优先级顺序是:-最高,*其次,$最低;& }7 Y5 l- J5 e8 S1 ^: c# K4 S
2)运算符运算时为左结合。请计算3-2*4$1*2$3的值:
/ G$ B* I) G7 }(A)4096,(B)-61,(C)64,(D)-80,(E)512' O* x6 ~+ l8 ; a
6 N* w) L5 g/ U7 L) o* H3、下列伪代码中,参数是引用传递,结果是?) C, u+ p6 |4 o
calc(double p, double q, double r)
: N- X2 c) I' L3 _+ Y{q=q-1.0;r=r+p}
" d/ J, h0 ], u$ l” V N6 nmain(){
: ^) Q2 T$ K$ l- p4 Vdouble a = 2.5, b = 9.0;
8 @) @2 {” ~- o h, j$ ]# Vcalc(b-a, a, a);/
print(a);
+ A% G; Y% h2 x1 ^}8 r7 `/ B1 i4 L/ @4 {) J
(A)1.5 (B)2.5 (C)10.5 (D)8 (E)6.56 f, e! t# ^6 P, i$
4、求输出结果:
( b m2 H2 C$ u E5 Hint foo(int x, int y){ I2 ]- l l! j( B5 i1 R7 a
if(x <=0 || y <= 0) return 1;; ], \0 ], M- N” |, Q
return 3 * foo(x – 1, y / 2);
1 s! C; m8 e) r* k- S% a7 e- P}
/ {9 x1 A/ {* P” cprintf(“%d\n”, foo(3, 5));5 y5 J” n( _. ^1 n’ _, B4 A# ^, p
(A)81 (B)27 (C)9 (D)3 (E)1/ e” F# S0 V% r$ B
* Q8 Q0 n% M’ e7 S) z
5、下列哪个数据结构在优先队列中被最广泛使用?5 V5 c+ F. k) h0 l9 Z
(A)堆 (B)数组 (C)双向链表 (D)图 (E)向量
; `3 a$ H1 u; n# I1 i8 s, d$ a! B9 V, x’ T* t: m5 d
6、以下算法描述了一个在n国元素的双向链表中找到第k个元素的
5 F: % W) i6 x0 H* [* `方法(k >= 1且k <= n):/ d1 L; d0 k n# - F( t
如果k <= n - k,从链表开始往前进k-1个元素。
1 H' k$ c& C* b- ^; I9 i9 ^否则,从终点出发,往回走n - k个元素。
+ H1 j. `# M1 E8 r' U3 i这个算法的时间代价是?6 f, [) U" q+ D* `2 y" T
(A)θ(nlogn) (B)θ(max{k, n - k}) (C)θ(k + (n - k))
+ o+ v+ Z3 t) z(D)θ(max{k, k - n}) (E)θ(min{k, n - k})4 v+ ]3 L% p$ p0 z& t” Q% v0 T4 |4 X
. \2 r# z2 V/ j0 b
7、有一个由10个顶点组成的图,每个顶点有6个度,那么这个图有几条边? ‘ Z3 ~2 f& K0 ^1 i8 m
(A)60 (B)30 (C)20 (D)80 (E)90
5 o/ Z4 O3 f& y( O’ p& L. D: _2 O
8、正则表达式L = x*(x|yx+)。下列哪个字符串不符号L3 Z3 1 k7 y” N$ \’ a N8 F7 P( O
(A)x (B)xyxyx (C)xyx (D)yxx (E)yx8 u, p; W, a’ U9 f- ~
, J; f$ h9 ^1 [5 d/ f" M- C6 ^9、为读取一块数据而准备磁盘驱动器的总时间包括% y( x+ p0 \8 s& N. g& e
(A)等待时间 (B)寻道时间 (C)传输时间 (D)等待时间加寻道时间
: s9 K4 H0 o, w* M(E)等待时间加寻道时间加传输时间
1 J0 E9 \, f0 C5 ~4 s2 n, `8 S! l: t0 i4 m
二、算法 ; O* U6 B9 P
1、打印出一个二叉树的内容。
7 k0 z2 {( k5 f! {: A! h0 }2、在一个字符串中找到第一个只出现一次的字符。如abaccdeff,输出b。2 y X- y8 d9 P: v8 \7 x/ @
3、给定一个长度为N的整数数组(元素有正有负),求所有元素之和
" f% L/ G, m# s最大的一个子数组。分析算法时空复杂度。不必写代码。
附上算法题第3题的动态规划做法的参考答案:
最大子序列
问题:
给定一整数序列A1, A2,... An (可能有负数),求A1~An的一个子序列Ai~Aj,使得Ai到Aj的和最大
例如: 整数序列-2, 11, -4, 13, -