1。注意位段用法和大头序和小头序' Y/ [* d |7 R4 u. h! F8 K8 w3 w
; h- ]3 \& w% L2。字节对起问题1 t# E" ?8 X1 p) ?1 ^: E/ @; _
* ?; Y5 v: ]4 o" R
3.全局变量的描述. X+ q3 h& D% \" Z; X% B. g
. a3 s% F9 p4 } H+ K/ V! X( |6 Y. O6 i z" _! k s
1.2叉树的遍历,前序,中序和后序。给一个2叉树你要能写出按上述遍历的序列。
0 Q7 ^1 v2 {& d+ I7 H2.指针的长度,sizeof(char*) = 1; sizeof(int*) = 4等;6 Q# E5 ^2 J( w8 y+ I
比如会考int* a = 0x0000 0001; a+4 = ?
1 k/ c% ], m+ O7 R# i3.2维数组a[1][2]用指针怎么表示?*(*(a+1)+2);, r5 \. J0 ]! G
4.指针问题,什么函数指针,返回指针类型的函数,常指针,指向常量的指针,数组指针,指向一维数组的指针。
% n" ?% z `+ {: ?2 C; Z, q" Y5.指针和数组的区别。/ ]6 U6 F; ?* ?/ s
char a[] = \"Hi, pig!\";
, G ?; q& {' O; Nchar *p = \"Hi, pig!\";( S+ ^4 d6 E; W& T9 a# f8 s9 m- ?
" n% [, I3 W6 h! T5 G' d# i改错题:" M3 O! s) j5 p( o5 W# D3 o
1.strcpy注意字符串长度,不要产生内存越界问题。
3 E$ p6 W3 {# O; y: y. b7 X' G2.高质量c++上那些内存分配的改错题。8 M$ @) U3 |$ k" p# e: e* g
3.unsigned char a;9 e% e: z% J$ B! q" H6 Y! |! m$ T
for(a = 0; a < 500; a++)/ S; S- p+ |* z# G1 u) i9 s' z
;7 [( t) Z# x1 r1 K9 K& `4 f+ M2 M1 q
之类注意死循环的改错题;
7 l2 w3 e' ^& i) {* ^4.静态变量的可重入问题8 D/ I6 [' ]8 B) t, e) }
5.宏的问题。
/ t" q! e# B* y( k比如要求a+1的平方:2 w5 @3 e! y$ m4 P6 g9 H/ c
#define A_1(m) ((m)*(m))
R" U; k; `- Rint a = 6;8 G& \ [2 d( f- a5 E0 k% c
int val = A_1(a++);
6 A' I6 Q8 ~2 u+ P9 T( m& w: B$ l/ G z$ h: H& N& S
; U0 N" a+ Q# ~! W1 L
算法题:
3 A4 `0 O4 S) Y# J9 l1.设有n个人依围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所有的人全部出列为止。设n个人的编号分别为1,2,…,n,打印出出列的顺序。
$ p( l7 {/ t: N2.找出1000以内满足既是平方数,又有两个数相等的数。例如121, 121=11*11且有2个1。4 ?( x1 Q* H4 f* m7 J
要求尽量优化算法。
2 Q D! U* A0 {, @$ D0 [
d, l1 C, i0 M: Z" C y7 S l7 H8 u- j U# c
后面这些不是试卷上的。
9 u0 t! _3 I5 |9 ?1 o其他稍微掌握一下:) p- K1 U3 ]8 s8 \
1.经典递归 例如hanoi塔问题:经典的递归,原问题包含子问题。有些问题或者数据结构本来就是递归描述的,用递归做很自然。
3 U+ t' e( {' j% _: T) ~& |& g2.递归与递推 利用递归的思想建立递推关系,如由兔子生崽而来的fibonacci数列。但递推由于没有返回段,因此更为简单,有时可以直接用循环实现。 & Y( p% I6 C2 x4 w7 Y8 U1 e( R* M# N
3.分治 不少分治方法是源于递归思想,或是递归分解+合并处理。 , r4 ?2 j) O% w
4.回溯 规模较小的问题用回溯解决比较自然。注意递归前后要保证现场的保存和恢复,即正确的转化问题。 ) g" K" F; j- x& u* E; ^
5.动态规划 动态规划的子问题重叠性质与递归有某种相似之处。递归+动态修改查表是一种不错的建立动态规划模型的方法。 : j3 z$ ~( q7 T/ W \2 S9 K
6.其他 其他么,就是不好归类。例如表达式处理,排列组合等。附带说一下,用递归来处理打印方案的问题还是很方便的。求把一个整数n无序划分成k份互不相同的正整数之和的方法总数) u, B# {1 L5 t7 _
5 ]- z- n+ R& v$ L0 w6 t U& z
+ C u. @& H* ?我认为必需掌握的算法:
" g. w( \) P* k排序算法(尤其是快速排序和冒泡)
* n* I/ a. z. {+ z8 K字符串函数实现。
9 I$ s3 Z/ [& o. D" w4 J; k3 a- V; z R2 r0 j5 u: N! ]. |7 G# o
其它杂7杂8的。 n: P* H: I" @' ]3 b8 M
比如:怎么判断一个单链表是不是循环链表。
0 ^6 [# \* N5 A; f' `怎么求出一个无符号数中1的个数。& A# K1 M$ a- S/ ~" J
怎么不用其他变量,实现两变量交换。 |