一起谈.NET技术,中软面试题-最新

      中软的面试比较经典,也比较严格,一般有四轮,类似于微软的面试。中软面过以后,根据项目组,会推到美国微软那边运用live meeting & con-call 再面一次。以下是我的面试题及个人的小分析,拿出来和大家share一下。希望更多的人能过这个坎。如有什么问题,可以一起交流。直接进入主题:

 1. English communication. (sale yourself, project information, your interesting,and how to deal with problem    you encounter etc.)

 2.  the using of key words "new".

     Regarding this problem, you can refer to my other blog with this path: new. or you can get more information from internet.

3.Write a method which can remove the same unit from a Array which has been sorted.

//在排序好的数组中移除相同的元素

public int [] RemoveCommon(int [] a)
{
       if (a.Length==0)
    {
        return a;
    }            
    List <int> Result = new List<int>();
    int i , j;
    i = j = 0;
    int temp = a[0];

    while (i < a.Length)
    {
        if (a[i] != temp)
        {   
            j++;     
            temp = a[i];
            Result.Add(temp);    
        }
        i++;
    } 
    // convert List to Array
    //......
    return Result;            
}

4. Judge Triangle and write test case for your code.

判断一个三角形,如果是等边的返回1,等腰返回2,其他的返回3,不能构成三角形的返回 4。 再编写test case 测试

判断一个三角形,如果是等边的返回1,等腰返回2,其他的返回3,不能构成三角形的返回 4。 再编写test case 测试
public int Triangle(int a, int b, int c)
{           
    if (a <= 0 || b <= 0 || c <= 0)
    {
        return 4;
    }
    int [] arry = new int [3] { a, b, c };
    Array.Sort(arry);
    int min, mid, max;
    min = arry[0];
    mid = arry[1];
    max = arry[2];
    if (max-mid<min)  // 注意:用这个去判断是否能构成三角形
    {
        return 4;  //不能构成三角形
    }
    if (min == max)
    {
        return 1;  //等边
    }
    else if ( mid==min || mid == max)
    {
        return 2; // 等腰
    }
    else
        return 3;   // 其他         
}

在这里,我最想提的就是这一题了,因为,我们知道,判断三角形,我们常用 两边之和大于第三边。但是,在这里,就不能用了。例如: a= int.MaxValue, b=int.MaxValue, c=int.MaxValue, 这时候三边肯定能构成三角形,但是,a+b 的和已经超过了int 型的最大值。造成内存溢出。 有人说,内存溢出 就是 0 或者负数,用这个不就可以判断吗?这个还真不行。你可以多写几个test case 试试。

Test case:

其他的普通的case,我就不写了,在这里就强调一下,边界值的问题(也就是常说的 临界值)。int.maxvalue, 0 etc.

5.Reverse string.

字符串反转,例如: string str="I love china", 反转后就是 str="china love I".

private char [] Convent(char [] str,int start, int end)
{
    char temp;
    int len = end - start;          
    int i=0;
      while(i<len/2)
      {
           temp = str[start+i];
           str[start +i] = str[end -i - 1];
           str[end-i-1] = temp;
           i++;
        }
    return str;
}
public string Reverse(string str)
{
    if (String.IsNullOrEmpty(str))
    {
        return null;
    }
     char [] objstr = str.ToCharArray(); ;
     int length=objstr.Length;
     objstr = Convent(objstr,0,length);
     int i = 0;
     int start=0,end=0;
    while (i < length)
    {                 
        if (objstr[i] == ' '||i==length-1)
        {
            if (i == length - 1)
            {
                end = i + 1;
            }
            else
            {
                end = i;
            }
            objstr = Convent(objstr, start, end);
            start = end+1; 
         }
         i++;
    }
     return new string(objstr);
}

6. Find the most width level in a tree and return the count of level, if there are many one, just return the nearest level. (it can be found in the internet)

寻找树的最宽层,并返回那层的层数(如有多个最宽层,返回离根节点最近的层数)

static int  M 10 //假设二叉树最多的层数
int Width(BinTree T)
 { 
  int static n[M];//向量存放各层结点数
  int static i=1;
  int static max=0;//最大宽度
  if(T)
   {
    if(i==1) //若是访问根结点
     { 
      n[i]++; //第1层加1
      i++; //到第2层
      if(T->lchild)//若有左孩子则该层加1
       n[i]++;
      if(T->rchild)//若有右孩子则该层加1
       n[i]++;
     }
    else
     { //访问子树结点
      i++; //下一层结点数
      if(T->lchild)
       n[i]++;
      if(T->rchild) 
       n[i]++;
     }
    if(max<n[i])max=n[i];//取出最大值
     Width(T->lchild);//遍历左子树
    i--; //往上退一层
    Width(T->rchild);//遍历右子树
   }
  return max;
 }//算法结束

7. Implement the function: Int ConvertToInt(string num)

实现 Int ConvertToInt(string num)

public  int ConvertToInt(string num)
{          
    int result=0;
    int temp=0;
    if (!string.IsNullOrEmpty(num))
    {
        if (IsInteger(num))
        {
            for (int i = 0; i < num.Length; i++)
            {
                temp = result;
                result = result * 10 + ((int)num[i] - 48); //0 的Asscall码 是48
                if (temp == result)
                    continue;
            }
            if (temp != result)
            {
                throw new Exception("overflow");
            }
        }
       
    }         
    return result;    
}
// 判断字符串是否是整数。
public bool IsInteger(string strIn)
{
    bool bolResult = true;
    if (strIn == "")
    {
        bolResult = false;
    }
    else
    {
        foreach (char Char in strIn)
        {
            if (char.IsNumber(Char))
                continue;
            else
            {
                bolResult = false;
                break;
            }
        }
    }
    return bolResult;
}

  关于上面的判断字符串里转换后是否是整数,还有其他的方法:

判断是否是数字

public bool isnumeric(string str)
{
    char[] ch = new char[str.Length];
    ch = str.ToCharArray();
    for (int i = 0; i < ch.Length; i++)
    {
        if (ch[i] < 48 || ch[i] > 57)
            return false;
    }
    return true;
}

8. Quick sort. (you can get it from internet)

快速排序

static public void Quicksort(int[] array, int begin, int end)
{
    if (begin < 0 || end < 0 || begin > end)
        return;
    int left = begin, right = end, temp;
    temp = array[left];
    while (right != left)
    {
        while (temp < array[right] && right > left)
            right--;
        if (right > left)
        {
            array[left] = array[right];
            left++;
        }
        while (temp > array[left] && right > left)
            left++;
        if (right > left)
        {
            array[right] = array[left];
            right--;
        }
    }
    array[right] = temp;
    Quicksort(array, right + 1, end);
    Quicksort(array, begin, right - 1);
}

Ok, that is all.

那次面试比较久,接近四个小时。后面被推到微软那边面试,面试题,详见后面解析。 

时间: 2024-09-12 16:57:01

一起谈.NET技术,中软面试题-最新的相关文章

中软面试题-最新

中软的面试比较经典,也比较严格,一般有四轮,类似于微软的面试.中软面过以后,根据项目组,会推到美国微软那边运用live meeting & con-call 再面一次.以下是我的面试题及个人的小分析,拿出来和大家share一下.希望更多的人能过这个坎.如有什么问题,可以一起交流.直接进入主题: 1. English communication. (sale yourself, project information, your interesting,and how to deal with p

浅谈Ajax技术中的先进性与局限性

先进性: 1.表单驱动的交互 传统的表单提交,在文本框输入内容后,点击按钮,后台处理完毕后,页面刷新,再回头检查是否刷新结果正确.使用Ajax,在点击sunmit按钮后,立刻进行异步处理,并在页面上快速显示了更新后的结果,这里没有整个页面刷新的问题. 2.深层次的树的导航 深层次的级联菜单(树)的遍历是一项非常复杂的任务,使用JavaScript来控制显示逻辑,使用Ajax延迟加载更深层次的数据可以有效的减轻服务器的负担. 3.快速的用户与用户间的交流响应 在众多人参与的交流讨论的场景下,最不爽

一起谈.NET技术,.Net语言中关于AOP 的实现详解

文章主要和大家讲解开发应用系统时在.Net语言中关于AOP 的实现.LogAspect完成的功能主要是将Advice与业务对象的方法建立映射,并将其添加到Advice集合中.由于我们在AOP实现中,利用了xml配置文件来配置PointCut,因此对于所有Aspect而言,这些操作都是相同的,只要定义了正确的配置文件,将其读入即可.对于Aspect的SyncProcessMessage(),由于拦截和织入的方法是一样的,不同的只是Advice的逻辑而已,因此在所有Aspect的公共基类中已经提供了

Java 编程技术中汉字问题的分析及解决(转)

编程|汉字|解决|问题 Java 编程技术中汉字问题的分析及解决 段明辉自由撰稿人2000 年 11月 8日内容: 汉字编码的常识 Java 中文问题的初步认识 Java 中文问题的表层分析及处理 Java 中文问题的根源分析及解决 Java Servlet 中文问题的根源 修改 Servlet.jar 中文乱码的处理函数 参考资料 作者简介在基于 Java 语言的编程中,我们经常碰到汉字的处理及显示的问题.一大堆看不懂的乱码肯定不是我们愿意看到的显示效果,怎样才能够让那些汉字正确显示呢?Jav

Java 编程技术中汉字问题的分析及解决(转自IBM)

编程|汉字|解决|问题 Java 编程技术中汉字问题的分析及解决 段明辉自由撰稿人2000 年 11月 8日 在基于 Java 语言的编程中,我们经常碰到汉字的处理及显示的问题.一大堆看不懂的乱码肯定不是我们愿意看到的显示效果,怎样才能够让那些汉字正确显示呢?Java 语言默认的编码方式是UNICODE ,而我们中国人通常使用的文件和数据库都是基于 GB2312 或者 BIG5 等方式编码的,怎样才能够恰当地选择汉字编码方式并正确地处理汉字的编码呢?本文将从汉字编码的常识入手,结合 Java 编

浅谈云计算发展中亟待解决的问题

发展云计算不能"跟风攀比""乱云飞渡"--浅谈云计算发展中亟待解决好的几个问题 到目前为止,中国已经掀起了一场云计算发展的热潮.从媒体的热炒,到资本的造势,再到大量学术活动裹挟着的商务宣传,已经拼命地为云计算概念加温.加上Google.IBM.微软等IT巨头们以前所未有的速度和规模进行云计算的推广和炒作,更是把云计算推上了峰巅.云规划,云纲要,云项目.云基地似乎已经成为各级政府新的发展规划中一道最亮丽的风景线. 随着各地云计算热情的空前高涨,一时间多地政府纷纷出台优

卡巴斯基发现网页技术中的危险漏洞

卡巴斯基实验室在Silverlight(一种用于显示多媒体内容的网页技术)中发现一种零日漏洞.这种漏洞允许攻击者完全访问受感染的计算机,并且可以执行恶意代码,窃取用户机密信息,还能够执行其它非法操作. 2015年夏,一篇关于Hacking Team公司(一家知名的"合法间谍软件"开发商)遭遇黑客攻击的报道登上各个媒体.其中一篇发表在Ars Technica上的文章提到了Hacking Team代表和VitaliyToropov(一名独立漏洞程序编写者)之间的通信被泄露.除此之外,这篇文

能够从大数据与分析技术中获得显著收益的十个行业

本期给大家推荐的是哪些行业能够从大数据与分析技术中获得显著收益.IT管理者必须了解的七大开发团队秘密.如何着眼于未来发展需求选择最佳移动应用开发平台和思科聚焦iOS 10中的那些最佳企业功能等. 一.能够从大数据与分析技术中获得显著收益的十个行业 大数据是技术界乃至整个星球的下一波革命性浪潮.事实上,对这一突破性技术如何加以赞誉似乎都不为过.但从另一个角度讲,大数据给各个行业带来的实际收益其实各不相同.那么,哪些行业能够从中获得最为显著的回报? 1. 旅游业 2. 能源业 3. 保险业 4. 金

《创业家》牛文文:少谈点模式多谈点技术

"模式"如同当年的"主义",流行于各种创业大赛.创业励志节目.论坛的"街头"式秀场 文/创业家 牛文文 "美国某某公司你知道吧?就是刚被戴尔.惠普.思科十几亿美元抢购的那家.我们的模式和它的一样,现在还没赢利,可将来起码有十几亿人民币的市值." "我开了小煤矿,但煤运不出去,上商学院之后受到启发,想搞模式创新,具体讲就是想在铁路边上搞个煤炭物流开发区,建一个大的物流和信息流平台,把分散的煤炭集中在我这个园区,这样和铁