1。注意位段用法和大头序和小头序 l* y6 n0 {8 b- Y
8 \; z+ C: l3 ^3 O, d: m2。字节对起问题/ v% ?. c$ S3 n& K1 q4 }; W6 I
- l+ t9 s2 M1 \+ R3.全局变量的描述2 f. q2 M" ?5 r5 U
* |. ~0 g( L2 L8 e2 l
4 e5 y" A# x! X3 C1.2叉树的遍历,前序,中序和后序。给一个2叉树你要能写出按上述遍历的序列。9 a2 i1 a, P+ R3 _; d G+ e
2.指针的长度,sizeof(char*) = 1; sizeof(int*) = 4等;
# Y% F1 a o0 X- Y9 C& o6 J. H: i比如会考int* a = 0x0000 0001; a+4 = ?; m: ? j7 h' T9 Q
3.2维数组a[1][2]用指针怎么表示?*(*(a+1)+2);
2 w" U/ Y B. Z8 y3 X4.指针问题,什么函数指针,返回指针类型的函数,常指针,指向常量的指针,数组指针,指向一维数组的指针。
) T1 G6 q" [1 j7 J' h: C5.指针和数组的区别。/ J! r& x8 B2 I4 n: O, x9 M
char a[] = \"Hi, pig!\";
5 |& j9 L4 X" b: u, A' m. Mchar *p = \"Hi, pig!\";4 M/ W; S" Z0 O( s& b$ P& B
/ H- p6 E' a- h% o改错题:/ |3 ~* d9 ?( D! p
1.strcpy注意字符串长度,不要产生内存越界问题。
, N# g H7 H. f/ p2 k2.高质量c++上那些内存分配的改错题。" U: n( \' X6 T$ @% r
3.unsigned char a;1 g/ a m; ?) u, |1 Z& V+ T, \' b
for(a = 0; a < 500; a++)
4 h5 ~) W$ j1 e;, ^, Z0 E2 l W6 ^) s
之类注意死循环的改错题;
4 R# |3 i0 I& v% \' _2 _# g4.静态变量的可重入问题
2 t+ W: e6 m" ?- g) O5.宏的问题。2 _$ o" q' [/ c9 Z. v
比如要求a+1的平方:2 d( h9 x) ^( b
#define A_1(m) ((m)*(m))# C8 A% ~4 [+ W
int a = 6;5 ~2 e! u; n. n( R Z3 ?
int val = A_1(a++);
. Q: }3 A0 E: z Z7 f$ J& C9 u' h' r n& }& \- _& }
6 L) V' \( \; l+ s算法题:
( z! Q) U- H2 Y1.设有n个人依围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所有的人全部出列为止。设n个人的编号分别为1,2,…,n,打印出出列的顺序。
' x/ W1 Q8 J4 E% ^; G8 X' {- W2.找出1000以内满足既是平方数,又有两个数相等的数。例如121, 121=11*11且有2个1。
' u7 s4 d5 y1 O/ B要求尽量优化算法。3 f I& \/ b q
" \3 Z4 F9 T, o( T# I: I
. r# O, i5 k: D0 }* ^% F" d
后面这些不是试卷上的。7 @5 m9 C# l/ h1 O; f
其他稍微掌握一下:3 P# Q8 \( E: y
1.经典递归 例如hanoi塔问题:经典的递归,原问题包含子问题。有些问题或者数据结构本来就是递归描述的,用递归做很自然。 / k. c5 O& q3 x( C" O# [
2.递归与递推 利用递归的思想建立递推关系,如由兔子生崽而来的fibonacci数列。但递推由于没有返回段,因此更为简单,有时可以直接用循环实现。
3 I6 M+ }, s, o3 e% H3.分治 不少分治方法是源于递归思想,或是递归分解+合并处理。
) c. Z6 x$ Y- p7 r4.回溯 规模较小的问题用回溯解决比较自然。注意递归前后要保证现场的保存和恢复,即正确的转化问题。 0 ?/ t% U; n/ \0 U E( e. X2 H9 \
5.动态规划 动态规划的子问题重叠性质与递归有某种相似之处。递归+动态修改查表是一种不错的建立动态规划模型的方法。 2 o/ H; t c( H$ h K
6.其他 其他么,就是不好归类。例如表达式处理,排列组合等。附带说一下,用递归来处理打印方案的问题还是很方便的。求把一个整数n无序划分成k份互不相同的正整数之和的方法总数
* a7 n3 U' c8 B8 J8 t2 }3 U; p ?, Y& t; n& P
' ^4 c5 Z6 ~1 o. M
我认为必需掌握的算法:8 a* d. e! m0 ^( I' v: D
排序算法(尤其是快速排序和冒泡)
6 S0 \4 H& L* u- N, g) w字符串函数实现。6 j$ N2 K, ?: h C. h+ I
; U! y4 n0 Z9 z' A4 H
其它杂7杂8的。
0 i: @; l, a2 ^# B! _# H. b7 h' H( |比如:怎么判断一个单链表是不是循环链表。
. c8 |) Q, I7 S5 |. |怎么求出一个无符号数中1的个数。
& y" f4 R; t7 T. v3 V7 h怎么不用其他变量,实现两变量交换。 |