现在的位置: 首页 > 综合 > 正文

微软的面试题(第六组)

2013年05月04日 ⁄ 综合 ⁄ 共 1081字 ⁄ 字号 评论关闭

第六组    

  1.链表和数组的区别在哪里?

  2.编写实现链表排序的一种算法。说明为什么你会选择用这样的方法?

  3.编写实现数组排序的一种算法。说明为什么你会选择用这样的方法?

  4.请编写能直接实现char   *   strcpy(char   *   pstrDest,const   char   *   pstrSource)函数功能的代码。

  5.编写反转字符串的程序,要求优化速度、优化空间。

  6.在链表里如何发现循环链接?

  7.给出洗牌的一个算法,并将洗好的牌存储在一个整形数组里。

  8.写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码

  9.给出一个函数来输出一个字符串的所有排列。

  10.请编写实现void   *   malloc(int)内存分配函数功能一样的代码。

  11.给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。

  12.怎样编写一个程序,把一个有序整数数组放到二叉树中?

  13.怎样从顶部开始逐层打印二叉树结点数据?请编程。

  14.怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件并考虑空链表)?   --

  15.请编写能直接实现int   atoi(const   char   *   pstr)函数功能的代码 

//===============================================================================

 

  第六组部分题参考答案:    

  4.

char   *   strcpy(char   *   pstrDest,const   char   *   pstrSource)
{
  assert((pstrDest!=NULL)&&(pstrSource!=NULL));  
  char   *   pstr=pstrDest;
  while((*(pstrDest++)=*(pstrSource++))!= '/0 ');
                return   pstr;
}
 

  5.

char   *   strrev(char   *   pstr)
{
  assert(pstr!=NULL);
 
  char   *   p=pstr;
  char   *   pret=pstr;
  while(*(p++)!= '/0 ');
  p--;
  char   tmp;
  while(p> pstr)
  {
    tmp=*p;
    *(p--)=*(pstr);
    *(pstr++)=tmp;    
  }
  return   pret;
 

  选http://exam.itzero.com/2007/0123/15993_2.html 

抱歉!评论已关闭.