问题四,关于概念的实际应用(代码题)。公司面试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);
}
}
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);
}
}
相关文章推荐
- 一次面试留下的实际应用问题。关于HttpModule,IIS集成模式。
- 7个关于网络方面的面试问题和答案
- 关于 Linux 核心的10个面试问题与答案
- 世界500强公司的面试问题与答案提示
- 关于Linux的10个核心面试问题与答案
- 关于 Linux 核心的10个面试问题与答案
- 知乎上一个关于Android面试的问题答案
- 读完这21个机器学习面试问题和答案,入职率提升99%
- 用实际问题说明委托的概念及应用
- 关于JS那些引用类型 实际应用的问题
- 关于 Linux 核心的10个面试问题与答案
- 今天去面试某公司的.net笔试题(答案自己做的,大家多指教)
- 应用消息队列设计可以解决哪些实际问题?
- 关于精选微软等公司数据结构+算法面试100题的文章
- 关于使用Android installer安装应用,安装好之后点击“打开”按钮进入应用之后的界面显示问题
- JAVA答案整理---->微软等公司数据结构、算法面试笔试题(v_JULY_v博主发布)
- iTextSharp应用中关于“Cannot access a closed Stream”问题的解决办法(附带提供如何在页面中显示PDF的流)
- 最难面试的IT公司之ThoughtWorks代码挑战——FizzBuzzWhizz游戏
- Java面试中关于String的问题总结
- 浅谈PHP 闭包特性在实际应用中的问题