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

问题四,关于概念的实际应用(代码题)。公司面试99%要考的,有答案!

2013年01月11日 ⁄ 综合 ⁄ 共 1666字 ⁄ 字号 评论关闭

如果你是做WEB开发,即使你不懂得类,接口,抽象类,内存分配等的内涵,也没有什么大不了的,照样可以开发复杂的项目。不过,要想自己更进一步的发展,比如要想做架构。那你必须要懂的这些东西。这次摘了一些代码,一般面试是经常出的,主要考你对概念的理解。如果要做框架的话,这些更应该懂了。最后自己亲手写一遍,你会记得更牢。
1,
class Class1 {
    private string str = "Class1.str";
    private int i = 0;
    static void StringConvert(string str) {
      str = "string being converted.";
    }
    static void StringConvert(Class1 c) {
      c.str = "string being converted.";
    }
    static void Add(int i) {
      i++;
    }
    static void AddWithRef(ref int i) {
      i++;
    }
    static void Main() {
      int i1 = 10;
      int i2 = 20;
      string str = "str";
      Class1 c = new Class1();
      Add(i1);
      AddWithRef(ref i2);
      Add(c.i);
      StringConvert(str);     
      StringConvert(c);
      Console.WriteLine(i1);
      Console.WriteLine(i2);
      Console.WriteLine(c.i);
      Console.WriteLine(str);
      Console.WriteLine(c.str);
    }
  }

(考查值引用和对象引用)
10
21
0
str
string being converted

 

2,

public abstract class A
{
    public A()
    {
      Console.WriteLine(#39;A');
    }
    public virtual void Fun()
    {
      Console.WriteLine("A.Fun()");
    }
}
public class B: A
{
    public B()
    {
      Console.WriteLine(#39;B');
    }
    public new void Fun()
    {
      Console.WriteLine("B.Fun()");
    }
    public static void Main()
    {
      A a = new B();
      a.Fun();
    }
}

A
B
A.Fun()

3,

public class A
{
    public virtual void Fun1(int i)
    {
      Console.WriteLine(i);
    }
    public void Fun2(A a)  
    {
      a.Fun1(1);
      Fun1(5);
    }
}

public class B : A
{
    public override void Fun1(int i)  
    {
      base.Fun1 (i + 1);
    }
    public static void Main()  
    {
      B b = new B();
      A a = new A();
      a.Fun2(b);
      b.Fun2(a);     
    }
}

 

2
5
1
6

 

4,

一列数的规则如下: 1、1、2、3、5、8、13、21、34......
  求第30位数是多少, 用递归算法实现。(C#语言)

 

public class MainClass

{
public static void Main()

{
Console.WriteLine(Foo(30));
}

public static int Foo(int i)

{

if (i <= 0)

return 0;

else if(i > 0 && i <= 2)

return 1;

else

return Foo(i -1) + Foo(i - 2);

}

}

抱歉!评论已关闭.