1。注意位段用法和大头序和小头序, `! m& j- L2 E) L& {: }' d: S
' i. f( {- p- m
2。字节对起问题
, X5 D3 E' n2 O# @! @! l
3 w3 r3 S m; T; B3.全局变量的描述
2 \( q; K) }: _9 N* E" O8 x9 \9 Y4 x
" V. N+ I+ d: @4 y7 J, a c1.2叉树的遍历,前序,中序和后序。给一个2叉树你要能写出按上述遍历的序列。6 H! B+ C. ?: l; t. R
2.指针的长度,sizeof(char*) = 1; sizeof(int*) = 4等;
s8 W/ ?* x8 X w% l比如会考int* a = 0x0000 0001; a+4 = ?& Z" I$ W; k2 E
3.2维数组a[1][2]用指针怎么表示?*(*(a+1)+2);8 B0 M; K/ L9 Q5 d2 {7 U- |5 N* E. z
4.指针问题,什么函数指针,返回指针类型的函数,常指针,指向常量的指针,数组指针,指向一维数组的指针。* u* a. h1 V" k
5.指针和数组的区别。2 u" C' ]4 T" `% q) W0 R! B: a* S
char a[] = "Hi, pig!";7 \; A6 T6 s' P5 Y$ H- N% X
char *p = "Hi, pig!";: y: j2 Y3 [4 K* h# V. v+ a* t8 n
# }8 _! q, Z/ q0 [7 v- H改错题:
3 ^6 X5 d& D( [1.strcpy注意字符串长度,不要产生内存越界问题。: M/ v' l1 `* z: E4 ^
2.高质量c++上那些内存分配的改错题。
, ~5 I8 V$ h# u2 l! X$ Z7 N H3.unsigned char a;3 X2 y& i N Q( \' ^; l
for(a = 0; a < 500; a++)" P6 R: I M/ D: @
;
8 \& A8 U2 y9 I7 E+ }+ O之类注意死循环的改错题;# v; N* Y" ~9 m; z1 D
4.静态变量的可重入问题
6 R( P+ w. o1 w' }5.宏的问题。
/ K9 S" j. k# H比如要求a+1的平方:7 ^% O' c6 Z7 g# E1 Z9 P
#define A_1(m) ((m)*(m)) b1 \4 J1 p+ }3 E' j2 r1 ^# z& z0 i# `
int a = 6;
# A2 W6 |# `9 V5 Z2 ?$ vint val = A_1(a++);- o& r2 Q M* C# U3 G1 o( \
* f; P. J3 [' C( \* `+ r, }
0 Y/ T0 p! n: A$ i- W x3 N算法题:
# K" d% U5 G& h- f/ ?0 k( T1.设有n个人依围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所有的人全部出列为止。设n个人的编号分别为1,2,…,n,打印出出列的顺序。
' k( f% n- K+ C9 ^6 ~" `6 I2.找出1000以内满足既是平方数,又有两个数相等的数。例如121, 121=11*11且有2个1。! d7 }5 \0 W, `1 m' L' [- [
要求尽量优化算法。
7 X' T8 b* z/ V% H: l% ^9 W, l7 K2 f, m/ m# o) s# f
% S! \" g% m3 `. H1 a1 ]9 }
后面这些不是试卷上的。
# f# a+ O7 Q0 s其他稍微掌握一下:
: c9 H- T& i' ]5 j' a1.经典递归 例如hanoi塔问题:经典的递归,原问题包含子问题。有些问题或者数据结构本来就是递归描述的,用递归做很自然。
3 O) X1 Z/ T9 }# l$ I! F) t2.递归与递推 利用递归的思想建立递推关系,如由兔子生崽而来的fibonacci数列。但递推由于没有返回段,因此更为简单,有时可以直接用循环实现。 ( p9 k) P4 K7 | [; Y3 z6 u
3.分治 不少分治方法是源于递归思想,或是递归分解+合并处理。
" e4 j2 |2 x% n; S7 m! F. v4.回溯 规模较小的问题用回溯解决比较自然。注意递归前后要保证现场的保存和恢复,即正确的转化问题。 ' {0 M/ d7 Y4 |* H
5.动态规划 动态规划的子问题重叠性质与递归有某种相似之处。递归+动态修改查表是一种不错的建立动态规划模型的方法。 , g% F& z2 w7 T% R5 m/ L( [
6.其他 其他么,就是不好归类。例如表达式处理,排列组合等。附带说一下,用递归来处理打印方案的问题还是很方便的。求把一个整数n无序划分成k份互不相同的正整数之和的方法总数' _' e' G. T2 J- W
' g+ [0 v& W& W# r
( K0 R/ u @' [4 X+ E+ F6 ?5 O* i5 d我认为必需掌握的算法:8 A& e/ ~/ t2 Q' D
排序算法(尤其是快速排序和冒泡)
1 s/ l$ m3 C$ n字符串函数实现。
: P9 X" W% J6 w# ^7 o# U3 [( W$ O0 ?% U+ j# H
其它杂7杂8的。
* I& `1 Z, b# m比如:怎么判断一个单链表是不是循环链表。0 {* `5 X5 t6 ^* t: p
怎么求出一个无符号数中1的个数。
) M, R2 @% M p- y- Y" y怎么不用其他变量,实现两变量交换。 |