1。注意位段用法和大头序和小头序" `6 q X$ _! o- `; a
4 Q) H- Q2 H: U* o2。字节对起问题# N( h' y+ v' l
/ s- j0 P5 X8 C9 S# D( R/ |) w+ k3.全局变量的描述3 S5 K0 Y) |6 j* D) X7 |5 R
& t5 u! `7 _' z$ F- e- t# M
; T% d& p4 {2 C6 _' a g( [1 W4 ?1.2叉树的遍历,前序,中序和后序。给一个2叉树你要能写出按上述遍历的序列。3 w+ x! Y: B, ~; c8 H z
2.指针的长度,sizeof(char*) = 1; sizeof(int*) = 4等;- y; X( Q9 d( N- t* V, a" x
比如会考int* a = 0x0000 0001; a+4 = ?( y2 a# p3 @' `- Y
3.2维数组a[1][2]用指针怎么表示?*(*(a+1)+2);4 j1 c( o) S1 R
4.指针问题,什么函数指针,返回指针类型的函数,常指针,指向常量的指针,数组指针,指向一维数组的指针。
+ Y( y. g/ g0 P4 L! n5.指针和数组的区别。 ]( m# c1 o1 ^' O- x2 g$ c' b) x) K
char a[] = "Hi, pig!";' {( T, T* G% {% X" V: z4 e7 K' M7 S$ C
char *p = "Hi, pig!";3 z* L! v7 n0 W2 Y3 \& m8 o
: H! l1 i9 {6 O! d1 [1 {改错题:9 d/ q/ J( `$ [' Q
1.strcpy注意字符串长度,不要产生内存越界问题。
0 D, h& V& G" }: G# H6 u8 f2.高质量c++上那些内存分配的改错题。8 l! P S& p3 u3 r; c
3.unsigned char a;- D3 K$ k( w3 \$ p
for(a = 0; a < 500; a++)
& M% c( m* c( H( _4 m; C1 };$ M) t+ V( A9 H- S/ v( }2 U- O
之类注意死循环的改错题;
9 e% X4 S2 k( t3 u, P j4.静态变量的可重入问题( J' ?( @. {6 O% u v6 t; Q
5.宏的问题。
" |. O- w3 y6 G7 q4 _. [比如要求a+1的平方:* R. u( E u- N+ I% W! R* N
#define A_1(m) ((m)*(m))
9 ]; @6 g5 T- E, ~8 Yint a = 6;+ t: W2 k2 b0 A$ E) j+ H8 r
int val = A_1(a++);
. d+ U3 W, D; `% j0 ]4 s5 J% r: [9 l+ p
3 ^8 q1 Y# K+ t& F4 l算法题:7 L% u6 z" p6 b+ j/ m$ y
1.设有n个人依围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所有的人全部出列为止。设n个人的编号分别为1,2,…,n,打印出出列的顺序。
$ l( e. Y1 Z/ q$ ~2.找出1000以内满足既是平方数,又有两个数相等的数。例如121, 121=11*11且有2个1。
# q( x6 H) Z. \0 K( S要求尽量优化算法。: \& L% n# x; g9 U) B
; c; `% }: i! a/ }
" v0 {1 b6 B2 u u8 @9 A
后面这些不是试卷上的。
. T! _4 ~; t. g( D0 ^其他稍微掌握一下:
' b1 V/ x4 p0 U; Y8 b1.经典递归 例如hanoi塔问题:经典的递归,原问题包含子问题。有些问题或者数据结构本来就是递归描述的,用递归做很自然。 4 \6 x8 c& M6 Z. {
2.递归与递推 利用递归的思想建立递推关系,如由兔子生崽而来的fibonacci数列。但递推由于没有返回段,因此更为简单,有时可以直接用循环实现。
5 q) x, K- p; L. Y) i, g5 E' n. D3.分治 不少分治方法是源于递归思想,或是递归分解+合并处理。 5 {) D, w) ~9 j( Q
4.回溯 规模较小的问题用回溯解决比较自然。注意递归前后要保证现场的保存和恢复,即正确的转化问题。
7 i0 u) Y* Y j2 B5.动态规划 动态规划的子问题重叠性质与递归有某种相似之处。递归+动态修改查表是一种不错的建立动态规划模型的方法。 0 @% m2 S( j% M. L6 o' l
6.其他 其他么,就是不好归类。例如表达式处理,排列组合等。附带说一下,用递归来处理打印方案的问题还是很方便的。求把一个整数n无序划分成k份互不相同的正整数之和的方法总数
! |* e! P& w7 ^% x1 R) E3 z4 L" Q, Y! G* G
, b/ `$ ?& e: ?2 u: e- D2 X
我认为必需掌握的算法:8 v/ S4 {4 K2 E3 X% X( Z: h
排序算法(尤其是快速排序和冒泡)
$ K) f4 j5 X; C/ u+ e字符串函数实现。. ]. q3 q& p5 {+ J
. D0 t4 I4 {. p6 J |- i% q! i其它杂7杂8的。
O; `- [9 I) O |9 w4 w比如:怎么判断一个单链表是不是循环链表。
: }( S3 M3 `; q怎么求出一个无符号数中1的个数。% h1 i7 `. H2 l
怎么不用其他变量,实现两变量交换。 |