1。注意位段用法和大头序和小头序8 d! t+ w( u3 R1 x3 P
+ u0 n& o+ v1 L; F
2。字节对起问题; H0 H9 R% {: p3 f! Y
$ I' g# x8 P8 ~- o3 |' R3.全局变量的描述' u' E6 y- m% s1 f
/ z# ^0 t% d+ ?1 U# v8 B5 H
- ]! w$ p T. @5 i) K1.2叉树的遍历,前序,中序和后序。给一个2叉树你要能写出按上述遍历的序列。
( D- z2 [/ p0 r* x8 d" R2.指针的长度,sizeof(char*) = 1; sizeof(int*) = 4等;# Y3 E* I( f4 \6 @# L' B9 E6 m
比如会考int* a = 0x0000 0001; a+4 = ?
& C! ~8 z. L0 L) O3.2维数组a[1][2]用指针怎么表示?*(*(a+1)+2);
; Q2 q: w& i: I: R, O8 L4.指针问题,什么函数指针,返回指针类型的函数,常指针,指向常量的指针,数组指针,指向一维数组的指针。& k/ l0 E3 v! ^0 T8 q6 e$ t
5.指针和数组的区别。8 n( V8 u9 {$ [! i
char a[] = "Hi, pig!";
1 Z7 }% d5 ` X0 w' P8 m& echar *p = "Hi, pig!";
1 D4 p8 Z. q) l0 K. `+ _0 R. j5 ]5 L. T# E- \3 V8 P$ X7 f! _
改错题:
, s' U, {* G! q1 t1.strcpy注意字符串长度,不要产生内存越界问题。9 r/ w1 R$ K. q
2.高质量c++上那些内存分配的改错题。7 M" i7 j# f1 I' E7 w1 V2 s
3.unsigned char a;
6 ?; r. H5 S* H; qfor(a = 0; a < 500; a++) V5 P( n* {5 D* L3 A3 |
;
* s: H2 r# s; [8 A" \" ~% h之类注意死循环的改错题;
& D$ }6 Q9 N- ^. Q; w7 N4.静态变量的可重入问题
: N9 @. [4 T" X* Z5.宏的问题。& r9 i% Z$ G7 \# O4 V/ O
比如要求a+1的平方:
! p; k& v. q# ~: z3 E3 P* W" F+ s#define A_1(m) ((m)*(m))5 N m4 h% i; n! t& y" }
int a = 6;( j# g. ~7 h0 L# ~- M0 m" v
int val = A_1(a++);- u! f- u; q9 Y" [
0 o, l! a1 @" e5 d7 A& F6 }" c! _5 l/ [: q9 G8 r% l% N
算法题:8 w5 K+ D4 x/ G {* x
1.设有n个人依围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所有的人全部出列为止。设n个人的编号分别为1,2,…,n,打印出出列的顺序。- u9 R( h! N4 M" `7 }1 a4 i
2.找出1000以内满足既是平方数,又有两个数相等的数。例如121, 121=11*11且有2个1。
" F9 f1 B; s. R, x: T. R要求尽量优化算法。( }0 X* c$ ]2 Y( g
! ^' n6 K8 n7 p" \
+ E3 v. b/ K; x 后面这些不是试卷上的。5 c' N! y5 c& k" g% ]) ^/ ?
其他稍微掌握一下:
$ o. f( V; ~; p1.经典递归 例如hanoi塔问题:经典的递归,原问题包含子问题。有些问题或者数据结构本来就是递归描述的,用递归做很自然。 & `) k, D5 j& {- k) ~
2.递归与递推 利用递归的思想建立递推关系,如由兔子生崽而来的fibonacci数列。但递推由于没有返回段,因此更为简单,有时可以直接用循环实现。
. B! h; N5 a( p, V! w3.分治 不少分治方法是源于递归思想,或是递归分解+合并处理。 ' {; u; ?6 J7 }& L) N1 W
4.回溯 规模较小的问题用回溯解决比较自然。注意递归前后要保证现场的保存和恢复,即正确的转化问题。 % h, _ E! ?5 T
5.动态规划 动态规划的子问题重叠性质与递归有某种相似之处。递归+动态修改查表是一种不错的建立动态规划模型的方法。 7 ~1 n1 b0 G8 ?& {, e
6.其他 其他么,就是不好归类。例如表达式处理,排列组合等。附带说一下,用递归来处理打印方案的问题还是很方便的。求把一个整数n无序划分成k份互不相同的正整数之和的方法总数9 w, S1 {5 E% _2 `7 Q6 {, P [
$ W" J# |9 W4 A5 H3 _% n8 Q
5 W& W# V5 j2 Y4 l& P4 d6 l我认为必需掌握的算法:' g# B9 @. E) I8 E: v0 f- M
排序算法(尤其是快速排序和冒泡)
# N3 m+ p. `4 k字符串函数实现。: L2 r; g4 w, o* e7 ~; C
4 y/ _* O, C3 x7 d7 X0 ~1 `其它杂7杂8的。
; [% O8 @6 _$ I- y; I比如:怎么判断一个单链表是不是循环链表。: n. U" q+ P7 Y8 ~. v
怎么求出一个无符号数中1的个数。
5 |8 m3 K. y/ V0 h! {5 ^! r1 Q5 V怎么不用其他变量,实现两变量交换。 |