您的位置:首页 > 职场人生

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

2009-05-12 13:13 671 查看
如果你是做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);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: