.net面试(程序题目)

using System;

classProgram

{

    privatestring str ="Class1.str";

    privateint i = 0;

    staticvoid StringConvert(string str)

    {

       str ="A string being converted.";

    }

    staticvoid StringConvert(Program c)

    {

       c.str ="B string being converted.";

    }

    staticvoid Add(int i)

    {

       i++;

    }

    staticvoid AddWithRef(refint i)

    {

       i++;

    }

    staticvoid Main()

    {

       int i1 = 10;

       int i2 = 20;

       string str ="str";

       Program c =newProgram();

       Add(i1);

       AddWithRef(ref i2);

       Add(c.i);

       StringConvert(str);//string无法被改变           

       StringConvert(c);  //传递对象string可以被改变

 

       Console.WriteLine(i1);

       Console.WriteLine(i2);

       Console.WriteLine(c.i);

       Console.WriteLine(str);

       Console.WriteLine(c.str);

    }

}

运行结果:

10

21

0

str

B string being converted.

 

2.

using System;

publicabstractclass A

{

    public A()

    {

       Console.WriteLine('A');

    }

    publicvirtual void Fun()

    {

       Console.WriteLine("A.Fun()");

    }

}

publicclassB : A

{

    public B()

    {

       Console.WriteLine('B');

    }

    publicnew void Fun()

    {

       Console.WriteLine("B.Fun()");

    }

    publicstatic void Main()

    {

       A a =newB();

       a.Fun();

    }

}

 

运行结果:

A

B

A.Fun()

 

3.

using System;

publicclassA

{

    publicvirtual void Fun1(int i)

    {

       Console.WriteLine(i);

    }

    publicvoid Fun2(A a)

    {

       a.Fun1(1); //以传递进来的对象选择哪个Fun1

       Fun1(5);   //以调用此方法的对象选择哪个Fun1

    }

}

publicclassB : A

{

    publicoverride void Fun1(int i)

    {

       base.Fun1(i + 1);

    }

    publicstatic void Main()

    {

       B b =newB();

       A a =newA();

       a.Fun2(b);

       b.Fun2(a);

    }

}

输出结果:

2

5

1

6

 

4.冒泡排序

using System;

publicclassMainClass

{

   publicstaticvoid ArraySort()

   {

       int[] Arr = { 9, 8, 7, 6, 5, 4, 3, 2, 1 };

       int t = 0;

       //从小到大排序

       for (int i = 0; i < Arr.Length - 1; i++)           //总共需要N-1趟

       {

           for (int j = 0; j < Arr.Length - 1 - i; j++)   //每趟总共需要(N-1-趟数)次比较

           {

               if (Arr[j] > Arr[j + 1])

               {

                   t = Arr[j];

                   Arr[j] = Arr[j + 1];

                   Arr[j + 1] = t;

 

               }

           }

       }

       foreach (int iin Arr)

       {

           Console.Write(i +",");

       }

   }

   publicstaticvoid Main()

   {

       ArraySort();

   }

}

5.

using System;

classA

{

    publicstatic int X;

    static A()

    {

       X =B.Y + 1;

    }

}

classB

{

    publicstatic int Y = A.X + 1;

    static B() { }

    staticvoid Main()

    {

       Console.WriteLine("X={0},Y={1}",A.X,B.Y);

    }

}

输出结果:

X=1,Y=2

 

posted on 2014-03-17 17:22  riky1989  阅读(135)  评论(0)    收藏  举报

导航