1。注意位段用法和大头序和小头序
3 P5 _: w: h7 g7 g) W2 N
4 _+ L9 j; Y, i& \% I+ q2。字节对起问题
# r4 C8 F: {) R' f+ a9 C( G0 {9 a1 X% Y7 W9 T) l
3.全局变量的描述
7 d, Q( M- i9 }9 X# I5 H
- I- S6 O1 ^ r9 Z
+ E' f' D7 h) P% \0 Y4 `1.2叉树的遍历,前序,中序和后序。给一个2叉树你要能写出按上述遍历的序列。3 T+ r& B. q3 j5 r2 @2 g! U
2.指针的长度,sizeof(char*) = 1; sizeof(int*) = 4等;$ f9 Q* _$ l& \& r
比如会考int* a = 0x0000 0001; a+4 = ?9 O- }/ M, Z6 i$ \$ l/ t& M8 X6 p
3.2维数组a[1][2]用指针怎么表示?*(*(a+1)+2);" J# S0 R/ |% [
4.指针问题,什么函数指针,返回指针类型的函数,常指针,指向常量的指针,数组指针,指向一维数组的指针。
, t7 a0 Q$ h# Y, n2 x5.指针和数组的区别。3 G/ ?9 X# j' q- H8 p- P
char a[] = \"Hi, pig!\";2 l3 B8 h" Y5 A$ G& X' d& A
char *p = \"Hi, pig!\";
: s( B" Q' M/ w8 k8 ]! i) V& h: Z) I- c: V9 N9 r+ i# J
改错题:0 `# g/ J. n% e, h h- C! J
1.strcpy注意字符串长度,不要产生内存越界问题。
- ~. ]. ?: }1 f7 w" K2.高质量c++上那些内存分配的改错题。/ {8 f! N' U- d: i2 e7 n2 }. [, }
3.unsigned char a;
( K: y+ N- z# Bfor(a = 0; a < 500; a++)
: @2 F& q+ w1 D+ V! L/ ~;
- y) G1 H) S/ A, Q; L6 h之类注意死循环的改错题;+ G* x+ v5 z5 e) ?( @
4.静态变量的可重入问题 M8 k9 k' ]$ s2 n$ e* v `8 O
5.宏的问题。
5 q$ j$ E% \/ X" u' g/ {比如要求a+1的平方:9 c- q( R7 l2 Z- Q% L
#define A_1(m) ((m)*(m))& n9 k1 `, U* A Y+ r
int a = 6;' d6 v8 @% s" b2 j
int val = A_1(a++); B$ q9 U. l* u
% e! c3 J$ Y' a- b. \
' ]/ j3 w: F. S( m7 v5 J
算法题:# D* V( ~5 B. w) V( y" m5 G3 }
1.设有n个人依围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所有的人全部出列为止。设n个人的编号分别为1,2,…,n,打印出出列的顺序。) q. g, t( u: Z% Q$ b
2.找出1000以内满足既是平方数,又有两个数相等的数。例如121, 121=11*11且有2个1。
2 V( M6 ^, v1 j3 Y, f6 E ?8 ]% w要求尽量优化算法。
n- g; Z+ L- L- l$ R5 t
" r' }& {$ i0 v3 H- @
# \3 \+ Q- ~6 o$ ~$ D) w 后面这些不是试卷上的。! w$ y7 z6 Y* \ f- H7 O
其他稍微掌握一下:
% Y4 t) D. f* [/ b4 i3 I# H ?1.经典递归 例如hanoi塔问题:经典的递归,原问题包含子问题。有些问题或者数据结构本来就是递归描述的,用递归做很自然。 - r; r6 o1 c8 d4 z" P
2.递归与递推 利用递归的思想建立递推关系,如由兔子生崽而来的fibonacci数列。但递推由于没有返回段,因此更为简单,有时可以直接用循环实现。 R5 t! j% Z/ U$ y8 ?! H
3.分治 不少分治方法是源于递归思想,或是递归分解+合并处理。
o6 Y# Z& F( \" F% d& q4.回溯 规模较小的问题用回溯解决比较自然。注意递归前后要保证现场的保存和恢复,即正确的转化问题。 ; T, Z; ~, R/ m% s8 K
5.动态规划 动态规划的子问题重叠性质与递归有某种相似之处。递归+动态修改查表是一种不错的建立动态规划模型的方法。 ( H5 R7 G. |3 W& X+ O: W
6.其他 其他么,就是不好归类。例如表达式处理,排列组合等。附带说一下,用递归来处理打印方案的问题还是很方便的。求把一个整数n无序划分成k份互不相同的正整数之和的方法总数
% _5 |& X4 _( Q6 W: |1 Z* J" u5 T3 s4 Z& l
+ [9 v" i: z- Y0 w; q$ d1 F我认为必需掌握的算法:
8 o& }/ r6 [" ?; T8 c. o# T# ^$ n排序算法(尤其是快速排序和冒泡)) w- c( d4 c, }+ S! I
字符串函数实现。4 G1 C" X1 d G- i( ?- v$ l+ D t
6 \- a1 e( `+ i6 T* ?( M- _其它杂7杂8的。/ D3 o1 `: L& Y1 k, d! Q% Z
比如:怎么判断一个单链表是不是循环链表。9 }2 q# P% H& U$ ~5 P
怎么求出一个无符号数中1的个数。' A0 i# a$ v/ |. ~' W* K5 J
怎么不用其他变量,实现两变量交换。 |