1。注意位段用法和大头序和小头序
& C2 J+ f, r- A& a; i* z& B+ J, L1 f0 V( r) q* _ j+ }
2。字节对起问题# g! q4 }/ [# B1 L" e8 C3 J2 h$ X
/ m: J. q& g4 Q' Y a
3.全局变量的描述# z( a! D* k* o0 o
( R. R. M* Z$ e8 v" A
2 m4 f/ Q/ w/ z! n3 n/ Y1.2叉树的遍历,前序,中序和后序。给一个2叉树你要能写出按上述遍历的序列。
. q* t. S7 E C8 l. c2.指针的长度,sizeof(char*) = 1; sizeof(int*) = 4等;
; K* H& F1 d) s% t M/ P比如会考int* a = 0x0000 0001; a+4 = ?
+ o6 x L1 X7 M, v3.2维数组a[1][2]用指针怎么表示?*(*(a+1)+2);
) }) \* |# T" Q: |& T4.指针问题,什么函数指针,返回指针类型的函数,常指针,指向常量的指针,数组指针,指向一维数组的指针。
5 A8 N* F6 T J ?5.指针和数组的区别。0 E8 h, ]( Y7 y0 M* a, n6 w. J
char a[] = "Hi, pig!";) O: x5 y* ^( r
char *p = "Hi, pig!";
, V: \& p& Q# f& W
( K% J( Q( ^0 y( v& |- n) x改错题:
: v n- ]. o. Q: O5 e: M1.strcpy注意字符串长度,不要产生内存越界问题。8 Z& A- \) q. o8 j8 w
2.高质量c++上那些内存分配的改错题。
# j+ r# |% Z/ f: q7 v3.unsigned char a;
. b3 ?5 N1 A+ }& d% k* {! Bfor(a = 0; a < 500; a++); x: _1 L: z j
;
( B7 U6 P8 g" u5 p; [6 O3 ?之类注意死循环的改错题;
( g. I1 h! Z/ ]4.静态变量的可重入问题
& Y) e. E; k; k( g( _( Y+ D% G) B5.宏的问题。9 U& [3 M! j- A# i4 D- M
比如要求a+1的平方:8 R9 m4 w0 h1 s+ J c) w9 j3 v3 p) N
#define A_1(m) ((m)*(m))+ c% v0 r% F6 K$ h5 A4 A% c5 F
int a = 6;
: d5 ~& m+ @ B3 x" p- Oint val = A_1(a++);& `/ Y8 A$ h5 F$ D
8 p7 F( N0 ^5 x& g/ f; ^
h w* F; s2 U1 ?! t
算法题:* e* z7 v2 R+ M, l+ o( S2 G
1.设有n个人依围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所有的人全部出列为止。设n个人的编号分别为1,2,…,n,打印出出列的顺序。
5 v9 n7 x1 D8 D6 u' M8 X+ ~; J+ y- }2.找出1000以内满足既是平方数,又有两个数相等的数。例如121, 121=11*11且有2个1。
8 [/ z* `& P1 n& D要求尽量优化算法。& L$ A, I7 _: D1 b' F- ~
: Z; d; m! @# I+ C1 r
, x+ w3 j3 b% H, S' o6 i
后面这些不是试卷上的。4 a8 Z. Q a/ m! g$ f% R. F- t; ]
其他稍微掌握一下:
\8 X" a, v, J$ i3 {1.经典递归 例如hanoi塔问题:经典的递归,原问题包含子问题。有些问题或者数据结构本来就是递归描述的,用递归做很自然。
% k: W. R: }! K9 {$ w: e2.递归与递推 利用递归的思想建立递推关系,如由兔子生崽而来的fibonacci数列。但递推由于没有返回段,因此更为简单,有时可以直接用循环实现。
6 w4 h% R. T: w2 \+ g, I: G4 N3.分治 不少分治方法是源于递归思想,或是递归分解+合并处理。 + H8 N( `. @0 {) S# i5 F
4.回溯 规模较小的问题用回溯解决比较自然。注意递归前后要保证现场的保存和恢复,即正确的转化问题。 + A% M" Q+ n1 Q- f8 j, E, ^
5.动态规划 动态规划的子问题重叠性质与递归有某种相似之处。递归+动态修改查表是一种不错的建立动态规划模型的方法。 - D8 b* W/ v. f- H
6.其他 其他么,就是不好归类。例如表达式处理,排列组合等。附带说一下,用递归来处理打印方案的问题还是很方便的。求把一个整数n无序划分成k份互不相同的正整数之和的方法总数6 t: h& s, u W- t; o
6 D4 H+ p" k4 Z8 o
0 Y1 ~3 i: G: ?% o" |/ [
我认为必需掌握的算法:
c6 U. m6 B& U! H% g排序算法(尤其是快速排序和冒泡)' T' {! X5 @/ g5 ]% i
字符串函数实现。) \' V7 g! h1 h% S: f e/ ^9 K
* K& ?" H3 ?1 j: A9 l: U/ D3 }其它杂7杂8的。: o5 h' w6 y" l4 R) Z5 k4 f* w
比如:怎么判断一个单链表是不是循环链表。
- z" M' |8 B: u6 v J怎么求出一个无符号数中1的个数。7 X( w; _% @) n0 b, x! H) [% d7 a
怎么不用其他变量,实现两变量交换。 |