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

面试1

2012年04月18日 ⁄ 综合 ⁄ 共 3960字 ⁄ 字号 评论关闭
答案

姓名:                      日期:

1.      填空: (1)面向对象的语言有____Inheritance_性、Encapsulation_性、_Polymorphsim 性。

        (2)能用foreach遍历访问的对象需要实现  IEnumerator__接口或声明__GetEnumerator___方法的类型。

        (3)列举ADO.net中的五个主要对

象_______________、_____________、_______________、_______________、_________________。

Response,Request,Server,Session,Application,Cookie,Cache
2. 不定项选择:

(1) 以下叙述正确的是: BC

      A. 接口中可以有虚方法。     B. 一个类可以实现多个接口。
      C. 接口不能被实例化。       D. 接口中可以包含已实现的方法。

   (2) 从数据库读取记录,你可能用到的方法有:BCD

      A. ExecuteNonQuery            B. ExecuteScalar

      C. Fill                        D. ExecuteReader

3. 简述 private、 protected、 public、 internal 修饰符的访问权限。

4. 写出一条Sql语句: 取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键,  注意:ID可能不是连

续的。)

CREATE DATABASE Interview
GO
USE Interview
GO
CREATE TABLE Test(id int)
GO
Insert Test SELECT 1
UNION ALL   SELECT 3
UNION ALL   SELECT 5
UNION ALL   SELECT 7
UNION ALL   SELECT 9
GO

select * from tEST
GO
--METHOD1
SELECT IDENTITY(int,1,1) as idClone,* INTO #T FROM TEST
SELECT ID
from #t
where idClone between  3 and 4
DROP TABLE #T
GO
--METHOD2
SELECT TOP 2 * FROM TEST  B
WHERE B.ID >
(SELECT MAX(ID) FROM (SELECT TOP 2 ID FROM TEST) A)
--METHOD3
SELECT TOP 2 * FROM TEST  B
WHERE  B.id not in
(SELECT TOP 2 ID FROM TEST)
5 .列举ASP.NET 页面之间传递值的几种方式。
<1>Request.QueryString<2>Session<3>Application<4>Cookie<5>Cache<6>Server.Transfer

6. 写出程序的输出结果

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);
       }  
    }

Display:
10
21
0
str
string being converted.

7.写出程序的输出结果

public abstract class A  
{
        public A()  
       {
            Console.WriteLine('A');
        }
        public virtual void Fun()  
       {
            Console.WriteLine("A.Fun()");
        }
}

public class B: A  
{
        public B()
       {
            Console.WriteLine('B');
        }

        public new void Fun()  
       {
            Console.WriteLine("B.Fun()");
        }

        public static void Main()  
       {
           A a = new B();
           a.Fun();
        }
}

8.      写出程序的输出结果:
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

9. 一列数的规则如下: 1、1、2、3、5、8、13、21、34......

   求第30位数是多少, 用递归算法实现。(C#语言)
using System;
public class MainClass
{
    public static void Main()
    {
        Console.WriteLine(Foo(30));
        Console.Read();
    }
    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);
    }
}

10.  程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。(C#语言)

要求:  1.要有联动性,老鼠和主人的行为是被动的。

2.考虑可扩展性,猫的叫声可能引起其他联动效应。

using System.Collections;
using System.Collections.Generic;
using System;

public abstract class  ISubject
{
     List<IObserver> _list = new List<IObserver>();
    public void AddObserver(IObserver observer)
    {
        _list.Add(observer);
    }
    public void RemoveObserver(IObserver observer)
    {
        _list.Remove(observer);
    }
    public virtual void OutCry()
    {
        if(_list!=null)
        {
            foreach(IObserver obs in _list)
            {
                obs.BeFrighted();
            }
        }
    }
    public void Appear()
    {
        OutCry();
    }

}
public class Cat:ISubject
{}

public interface IObserver
{
     void BeFrighted();
}
public class HouseMaster:IObserver
{
     private string _name;
     public HouseMaster(string name)
     {
           _name=name;
     }
     public void BeFrighted()
     {
           Console.WriteLine(_name+" is be frighted");
     }
}
public class Mouse:IObserver
{
     private string  _name;
     public Mouse(string name)
     {
           _name=name;
     }
     public void BeFrighted()
     {
           Console.WriteLine(_name+" is be frighted");
     }
}

抱歉!评论已关闭.