微软的面试题目。有兴趣的进来答答一起讨论
Q1:请你分别划划OSI的七层网络结构图,和TCP/IP的五层结构图?
Q2:请你详细的解释一下IP协议的定义,在哪个层上面,主要有什么作用? TCP与UDP
Q3:请问交换机和路由器分别的实现原理是什么?分别在哪个层次上面实现
Q4:请问C++的类和C里面的struct有什么区别?
Q5:请讲一讲析构函数和虚函数的用法和作用?
Q6:全局变量和局部变量有什么区别?实怎么实现的?操作系统和编译器是怎么知道的?
Q7:一些寄存器的题目,主要是寻址和内存管理等一些知识。
Q8:8086是多少尉的系统?在数据总线上是怎么实现的?
1.链表和数组的区别在哪里?
2.编写实现链表排序的一种算法。说明为什么你会选择用这样的方法?
3.编写实现数组排序的一种算法。说明为什么你会选择用这样的方法?
4.请编写能直接实现strstr()函数功能的代码。
5.编写反转字符串的程序,要求优化速度、优化空间。
6.在链表里如何发现循环链接?
7.给出洗牌的一个算法,并将洗好的牌存储在一个整形数组里。
8.写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?)
9.给出一个函数来输出一个字符串的所有排列。
10.请编写实现malloc()内存分配函数功能一样的代码。
11.给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。
12.怎样编写一个程序,把一个有序整数数组放到二叉树中?
13.怎样从顶部开始逐层打印二叉树结点数据?请编程。
14.怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件并考虑空链表)?
1、临界变量critical section的概念(还有semaphore,thread类似的这些)。
2、存储器cache写穿透和写返回的概念(复习一下高体的cache)。 3、数据库技术里的几种隔离级别,一般是可重复的读、读稳定性等。可重复的读最
高。 4、Java的内存管理机制,包括沙箱和garbage collector。 5、C++的内存管理机制,注意和上面的区别,new操作和delete操作的作用方式,以
及和alloc与free的区别,内存不足时怎么办。 6、计算机网络IP地址和子网掩码的知识,怎样判断两个ip地址和对应子网掩码是否
能通信。 7、C++里虚函数的概念,非常重要。另外,const的用法,虚继承和内联函数各自的
好处和不好,等等这些基础的知识要掌握。 8、一个对象在内存里是怎样存储的,注意虚继承和有虚函数的情况。 9、对字符串的操作,应该注意哪些问题,包括拷贝,访问,等等。 10、基本的数据结构,如堆(注意最大值堆和最小值堆的操作和建堆的过程)、栈、连表、队列、二叉树(注意二叉检索树的相关操作)、图,这些知识和相关的算