.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);
}
}
输出结果:
5
1
6
4.冒泡排序
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
浙公网安备 33010602011771号