1。注意位段用法和大头序和小头序- ^: N4 }" {& Q
2 R, e5 L1 y* |, g, ?$ o6 v2。字节对起问题
2 E* S X& X5 |2 G$ z- L. U
3 u. F0 f; ^; Q) I/ N/ U3.全局变量的描述! A( c; \8 m. o) @
* B; u' z# i0 v7 P8 A! b% r9 H
3 I+ |/ C) w! U) Q9 x7 @3 x
1.2叉树的遍历,前序,中序和后序。给一个2叉树你要能写出按上述遍历的序列。# I4 I% m; e( ^) L$ }2 |1 E& M
2.指针的长度,sizeof(char*) = 1; sizeof(int*) = 4等;
, d E+ Q) Y" v比如会考int* a = 0x0000 0001; a+4 = ?5 u, I; P2 ?- V# D. ~
3.2维数组a[1][2]用指针怎么表示?*(*(a+1)+2);! G, A$ O" ]0 M' `" ^' p5 U
4.指针问题,什么函数指针,返回指针类型的函数,常指针,指向常量的指针,数组指针,指向一维数组的指针。
. ]3 d X% z9 w- V( E. j, F5.指针和数组的区别。! `; ~! p' y5 x" C" F0 s
char a[] = \"Hi, pig!\";
8 X0 ?4 q* L J# ]0 U4 Q0 |' Qchar *p = \"Hi, pig!\"; k$ F |# N1 L0 m) o5 b
l8 N/ w' q6 E+ g
改错题:2 w( I0 t2 w9 i2 m
1.strcpy注意字符串长度,不要产生内存越界问题。9 U' Z2 g- f9 w3 B
2.高质量c++上那些内存分配的改错题。
3 R2 d! l" Z9 ~" W3.unsigned char a;
1 k8 z" P C2 R6 wfor(a = 0; a < 500; a++)1 t c! u! ~0 d; j" j' u6 z4 ~
;5 I( c; B6 h8 v
之类注意死循环的改错题;
% j; f) j+ q; {4 S4.静态变量的可重入问题* }; ^3 j/ W5 P4 }
5.宏的问题。
0 C5 y* b% R8 B/ V2 ~0 l1 x4 r比如要求a+1的平方:; U5 U0 m9 R3 _4 @4 m, Q4 U0 x4 G
#define A_1(m) ((m)*(m))
4 I" B' [3 H, K4 g0 vint a = 6;
( P, `; l @3 K1 m+ Gint val = A_1(a++);* `' |7 ]) r0 }
3 R! Y& S0 n* S- a# J- E
8 J, [+ T) G2 C算法题:- ~0 {6 w0 r! l' Z/ O2 ~, M
1.设有n个人依围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所有的人全部出列为止。设n个人的编号分别为1,2,…,n,打印出出列的顺序。% f f! u- O& P' O. ?
2.找出1000以内满足既是平方数,又有两个数相等的数。例如121, 121=11*11且有2个1。; x$ T2 N/ {2 t' Z/ z
要求尽量优化算法。
8 [0 u* f0 Y* |
8 U3 t( \& I, c# [, X* }1 P- u6 {4 m& U7 |& X( w
后面这些不是试卷上的。6 ?& n# a/ f5 p/ x+ A
其他稍微掌握一下:, b! K# `5 J; z" \3 F4 N7 w( t
1.经典递归 例如hanoi塔问题:经典的递归,原问题包含子问题。有些问题或者数据结构本来就是递归描述的,用递归做很自然。 " b1 M' O7 ? |' r
2.递归与递推 利用递归的思想建立递推关系,如由兔子生崽而来的fibonacci数列。但递推由于没有返回段,因此更为简单,有时可以直接用循环实现。
/ u: h8 u) `7 G* f: p3 k3.分治 不少分治方法是源于递归思想,或是递归分解+合并处理。 - f9 q* b9 n+ ^" E# d7 v( E- X; z
4.回溯 规模较小的问题用回溯解决比较自然。注意递归前后要保证现场的保存和恢复,即正确的转化问题。 ' t4 r! P0 H9 J$ F: H; w6 `
5.动态规划 动态规划的子问题重叠性质与递归有某种相似之处。递归+动态修改查表是一种不错的建立动态规划模型的方法。
, g1 u, j+ Z6 [/ g) y2 p6.其他 其他么,就是不好归类。例如表达式处理,排列组合等。附带说一下,用递归来处理打印方案的问题还是很方便的。求把一个整数n无序划分成k份互不相同的正整数之和的方法总数
+ z5 s B) B" \9 e5 w$ S" }
7 L1 Z, m( d) {2 G$ ?& x. l4 B( w) @' f. i, g- Y6 S) @2 ~
我认为必需掌握的算法:- G2 E2 b- ^% U, d& y* J" g
排序算法(尤其是快速排序和冒泡) N% v& E c( z9 }% j2 K$ U
字符串函数实现。
7 ]6 G I+ K( N; p8 G/ _& C
: g) J' d; y! W/ f. S2 M其它杂7杂8的。/ w7 B% B0 M2 Q1 A1 u" @/ ~$ H& ^0 x0 T
比如:怎么判断一个单链表是不是循环链表。
0 u! T! W8 c# u怎么求出一个无符号数中1的个数。8 _: Y7 T( P+ j' I
怎么不用其他变量,实现两变量交换。 |