1。注意位段用法和大头序和小头序! I- f; @# u `' p0 x& t+ p5 O
4 r! l2 o, c# d% t! I
2。字节对起问题
7 P- x& V8 O$ G4 W& {
3 q* p3 x1 q! U$ x6 j. f+ q9 O0 S5 e3.全局变量的描述
T( Q2 Q. Q" D# J$ L% V* S; K& R S2 h- p
? w- \& S9 W* o" x0 v1.2叉树的遍历,前序,中序和后序。给一个2叉树你要能写出按上述遍历的序列。0 C8 R! W2 R% T- b f+ Z
2.指针的长度,sizeof(char*) = 1; sizeof(int*) = 4等;
; I+ E) I! R3 C1 i8 ?, F8 g4 z比如会考int* a = 0x0000 0001; a+4 = ?. b/ G8 W c9 c
3.2维数组a[1][2]用指针怎么表示?*(*(a+1)+2);0 O8 y5 u& X- Y' A. I, ^1 K, W O
4.指针问题,什么函数指针,返回指针类型的函数,常指针,指向常量的指针,数组指针,指向一维数组的指针。 D' d1 N3 f3 Y3 X: l
5.指针和数组的区别。7 e9 o t+ C8 A, w' j
char a[] = \"Hi, pig!\";
- E% b. d/ t' }8 L6 c Q9 hchar *p = \"Hi, pig!\";
) ~3 J4 \7 a+ g9 z8 m% x3 z
2 S& I( y: K! D% m( Q4 O改错题:8 O8 Q/ \& S5 W$ h9 b8 i0 i p
1.strcpy注意字符串长度,不要产生内存越界问题。
" Q u1 X. R! N2.高质量c++上那些内存分配的改错题。
( y$ F+ U! t2 ~. A `& Q/ w1 x3.unsigned char a;0 o; v$ X7 _1 {9 a
for(a = 0; a < 500; a++)" ?# }. K: K+ J
;
0 {4 w6 h, ^ S1 F# X$ D之类注意死循环的改错题;
/ e2 D. a" O2 B: g6 l! Q9 d4.静态变量的可重入问题
& X% O( j, k3 R% R$ Z5.宏的问题。7 z3 ^' A; o' D5 s0 q
比如要求a+1的平方:
" Y) J& _. O; P, Y" w#define A_1(m) ((m)*(m))
+ }" R: A9 B; a. n" m; \int a = 6;" Y \4 Y* B7 ]( ^: B. [1 `
int val = A_1(a++);+ q Q" Y4 v- n7 V! X5 j
6 h3 G$ H5 D" w
r' X2 ?7 U5 j. a/ I! Z算法题:) p, y2 c/ O( f1 I, w
1.设有n个人依围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所有的人全部出列为止。设n个人的编号分别为1,2,…,n,打印出出列的顺序。6 x/ w% i& ~' k& T' ~% i+ s' h
2.找出1000以内满足既是平方数,又有两个数相等的数。例如121, 121=11*11且有2个1。
4 O/ S! e7 ~( }4 D2 R% s要求尽量优化算法。
1 b% L! F0 V) Z8 J* ` n) e$ x( a3 `* m. J- }' w; q
. T/ I: M" N. T& a: d$ w" W. A 后面这些不是试卷上的。
6 p8 m( f% H' i, o9 J" Z+ v其他稍微掌握一下:, ]9 G* H$ }3 b7 n+ y; `/ r! p
1.经典递归 例如hanoi塔问题:经典的递归,原问题包含子问题。有些问题或者数据结构本来就是递归描述的,用递归做很自然。 / T4 @' V* a7 R+ e3 V
2.递归与递推 利用递归的思想建立递推关系,如由兔子生崽而来的fibonacci数列。但递推由于没有返回段,因此更为简单,有时可以直接用循环实现。 5 ~( g% w& @& W4 P7 c
3.分治 不少分治方法是源于递归思想,或是递归分解+合并处理。 8 e/ c. E9 D5 r- H# {% a
4.回溯 规模较小的问题用回溯解决比较自然。注意递归前后要保证现场的保存和恢复,即正确的转化问题。
1 w3 w5 c: Y6 P6 p9 X6 d4 t m8 j5.动态规划 动态规划的子问题重叠性质与递归有某种相似之处。递归+动态修改查表是一种不错的建立动态规划模型的方法。 ) X c- o! A4 s K n) s5 I+ y
6.其他 其他么,就是不好归类。例如表达式处理,排列组合等。附带说一下,用递归来处理打印方案的问题还是很方便的。求把一个整数n无序划分成k份互不相同的正整数之和的方法总数* G1 \6 {1 J; E# t
" [/ Q$ E: B9 ?# @5 C1 t* ~9 m
, ~1 Y$ Z# s& v, V9 {我认为必需掌握的算法:
4 S) P1 { E6 V排序算法(尤其是快速排序和冒泡)
" \+ C' M5 f" [0 I9 O0 x字符串函数实现。2 P) q8 h/ V- h4 V
% s/ w0 q* V! w* r# L3 B- u
其它杂7杂8的。
7 Z; `. s. r2 M9 i; m& f比如:怎么判断一个单链表是不是循环链表。
- R3 j- Q- J4 `怎么求出一个无符号数中1的个数。4 }+ j' l" R1 F- E$ M
怎么不用其他变量,实现两变量交换。 |