1。注意位段用法和大头序和小头序
6 G! t7 |) B4 J" ^4 g! i) f; K3 s! l0 e9 O) Q) O
2。字节对起问题- F" Q6 {" O% y, t& r8 J
! C6 j+ t9 @8 x3.全局变量的描述% J4 O9 @; @/ r" }2 F
4 e" m- W, H7 i6 y1 ~
; ~/ C2 s! z! X' k9 I1.2叉树的遍历,前序,中序和后序。给一个2叉树你要能写出按上述遍历的序列。
* s6 e/ |% e0 f& c2.指针的长度,sizeof(char*) = 1; sizeof(int*) = 4等;8 J/ v9 K( Q4 @2 p {) G; m
比如会考int* a = 0x0000 0001; a+4 = ?
$ j; X% [. d7 U* J3.2维数组a[1][2]用指针怎么表示?*(*(a+1)+2);
" p# V2 z+ X K U4 z/ f& G$ J4.指针问题,什么函数指针,返回指针类型的函数,常指针,指向常量的指针,数组指针,指向一维数组的指针。
2 l$ E: _* V2 G0 s0 L! `, u5.指针和数组的区别。
% ]6 C. Q/ a& l; Y: ichar a[] = "Hi, pig!";
7 \% o4 Q9 j- O) Jchar *p = "Hi, pig!";/ t' w- Z) i+ D# a& t
1 d" O$ l7 b/ W4 x- Y改错题:/ d6 ^3 P, p' ?% n$ b' i
1.strcpy注意字符串长度,不要产生内存越界问题。+ k# ?" o& \+ j' P: E2 @+ p
2.高质量c++上那些内存分配的改错题。9 e0 Q7 z( e5 }9 B5 L4 t, _/ o$ T
3.unsigned char a;( J5 }0 L- l7 j+ P+ {
for(a = 0; a < 500; a++)' Y% A- A9 E+ [( B$ Z7 Z6 {
;
. r4 I/ }. y; w! }3 z2 `3 T' z之类注意死循环的改错题;
2 ?6 }4 S3 X' [8 X' j( c' V4.静态变量的可重入问题
8 l! D3 S( N$ v* q5.宏的问题。
% \9 M/ S) G: u( v+ n2 q! [比如要求a+1的平方:2 B, w5 |* Z6 r+ V" J ]
#define A_1(m) ((m)*(m))
% y$ `3 g7 ?: s4 R- A( Q. ^int a = 6;: \3 {& }6 p, ~: b/ ^
int val = A_1(a++);
1 c @6 d9 T; N* b2 n! y8 n# Z5 w. m- O* B. K* @' F3 K2 D* v( ?
6 ~, m6 w8 L* h. G, [" u% z. K2 g$ d6 _
算法题:
9 i$ p$ O L' d) a" O# Q. e/ \1.设有n个人依围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所有的人全部出列为止。设n个人的编号分别为1,2,…,n,打印出出列的顺序。
- z( `+ T8 B' z" m/ S2.找出1000以内满足既是平方数,又有两个数相等的数。例如121, 121=11*11且有2个1。5 ~+ V# D" e0 a
要求尽量优化算法。$ K& T9 p- S4 Y6 A( n% h
0 V' W: U1 d- T- {# H' t
$ B/ `9 ^7 s" R {% u 后面这些不是试卷上的。
r3 e2 G( m7 z' R6 Y0 Z3 I( {3 r其他稍微掌握一下:1 @. p- j5 i& L9 K8 D
1.经典递归 例如hanoi塔问题:经典的递归,原问题包含子问题。有些问题或者数据结构本来就是递归描述的,用递归做很自然。
1 Q1 k5 W: h _- H; a, Q# X" V) \/ k2.递归与递推 利用递归的思想建立递推关系,如由兔子生崽而来的fibonacci数列。但递推由于没有返回段,因此更为简单,有时可以直接用循环实现。 2 M# H+ j/ X; ?) t- l
3.分治 不少分治方法是源于递归思想,或是递归分解+合并处理。
|/ ]; C7 K5 j6 {# i) C0 D$ e) V4.回溯 规模较小的问题用回溯解决比较自然。注意递归前后要保证现场的保存和恢复,即正确的转化问题。 % R0 V0 ` O/ S' Z
5.动态规划 动态规划的子问题重叠性质与递归有某种相似之处。递归+动态修改查表是一种不错的建立动态规划模型的方法。
4 B8 G1 D9 c* b+ }& v0 F8 j) l6.其他 其他么,就是不好归类。例如表达式处理,排列组合等。附带说一下,用递归来处理打印方案的问题还是很方便的。求把一个整数n无序划分成k份互不相同的正整数之和的方法总数8 Y% K8 @) ^& ]1 c
) S+ S+ g5 ^7 z( e
: n, [+ U. \, W5 [# h p% V: H我认为必需掌握的算法:
" n/ I, ^) g8 o) ]# ~* d2 c' g排序算法(尤其是快速排序和冒泡): W: w$ t5 ~! p- S, p: r0 V- @
字符串函数实现。
" m0 S: N% q! l W; O6 \1 l$ p- z8 q- d3 U+ j3 @" P( i+ Y1 p( }+ K" u
其它杂7杂8的。 v% X/ @( W: @1 L9 {( ?8 w
比如:怎么判断一个单链表是不是循环链表。
9 K0 T" X t0 O" i( h怎么求出一个无符号数中1的个数。
F& P q; }/ J. T3 b G2 _怎么不用其他变量,实现两变量交换。 |