2014-5-11阅读663 评论0
题目回忆的不是很全,和以往的校招、实习题目相似,大家可以自己找到答案:
1、动态内存分配问题:
void getmemory(char * p){
p = (char *)malloc(100);
}
void test(){
char *str = NULL;
getmemory(str);
strcpy(str,"hello, world!");
printf("%s\n",str);
}
程序会不会出现问题?
2、malloc / free 和 new / delete的区别?
3、静态链接和动态链接的区别是什么?动态链接的两种方式是什么?
4、画出TCP三次握手的流程图。
可以参考这个解法:
http://www.cnblogs.com/hnrainll/archive/2011/10/14/2212415.html
5、windows下句柄的概念;
windows编程MD(d),MT(d)编译选项的区别
参考:http://blog.csdn.net/nodeathphoenix/article/details/7550546
6、100瓶可乐,其中一瓶变质,喝了2小时后会拉肚子,设计最小代价的在2小时内找出变质可乐的方法。
正统方法:找7个人用位编码方式。
(题外话,“最小代价”就不能用人,要用小白鼠,而且用100只,那么最后就只有1只小白鼠会拉肚子,而不是很多只,^_^)。
7、1001条电线,楼底1001个线头,楼顶1001个线头,你有一筒电池、一个灯泡、许多短线段,设计最小上下楼次数的方法,找出每条线两端的线头
11次的方法参考:http://blog.csdn.net/zzp_szu/article/details/12135235
1次的暴力美学方法:http://blog.csdn.net/longjunjiafubiao/article/details/12387503
8、N!末尾0的个数(这题都出烂了,详见《编程之美》)
9、反转链表、合并两条有序链表的递归和非递归方法。