深刻.NET内测题

一 选择题

1)      以下关于系列化和反类别化的叙述失实的是( C)。        

 

         a)      种类化是将指标的图景存储到一定期存款款和储蓄介质中的进度

         b)     
二进制格式化器的Serialize()和Deserialize()方法能够分别用来贯彻系列化和反种类

化过程

         c)     
借使多少个类可系列化,则它的子类和带有的各成员对象也决然可体系化

  
    解析:难题出在了子类,如若子类压根不能够拓展类别化操作,则会抛出相当

         d)      标识1个类能够种类化要利用[Serializable]

 

2)      在C#中,下列关于不难工厂设计形式的布道不科学的是(
A )。
       

a)      简单工厂产生的对象都以静态对象

    对象没有静态和动态之分

b)      创立产品的点子再次来到类型都以父类

c)      使用该情势消除了代码中山大学量用到new 的难点

d)      简单工厂的后天不足是对修改不封闭,新扩张产品就供给修改工厂

 

3)      下列关于虚方法和抽象方法的叙述中错误的是( C)。   

 

         a)      虚方法必须有方法体,能够被子类重写

         b)      抽象方法不一致意有方法体,且必须被子类重写

         c)      抽象方法必须在抽象类中,而虚方法能够在富有类中

                     密封类和静态类中不能够书写

         d)      在子类中重写抽象方法或虚方法,都亟需用override关键字

  

4)   在UML类图中应用(B )符号表示私有成员。   

 

         a)      +  公共成员

         b)      –

         c)      *    ~:package

         d)      #   受爱惜品种

 

5) 剖析以下使用抽象类的C#代码,其最后的运作结果是(D )。

public abstract class Class1

{

    public void F()

    {

        Console.Write(“1”);

    }

    abstract public void ABS();

}

public class Class2 : Class1

{

    public override void ABS()

    {

        Console.Write(“3”);

    }

    public Class2()

    {

        Console.Write(“2”);

    }

    static void Main()

    {

        Class2 objB = new Class2();

        objB.ABS();

    }

}

//先调用构造,然后带哦用自家的ABS方法()

         a)      12

         b)      21

         c)      13

         d)      23

 

6)      下列代码的运营结果是( A)。

class Test

{

    Public  void F()

    {

        Console.Write(“A”);

    }

}

class B : Test

{

    Public  new  void F()

    {

        Console.Write(“B”);

    }

 

    static void Main()

    {

        Test objA = new B();

        objA.F();

    }

}

留神:那里不是多态,所以用父类变量保存子类对象,取的是父类的措施。哪怕父类方法应用Virtual关键字,子类没有Override就不会促成多态。

         a)      A

         b)      B

         c)      BA

         d)      AB

 

7)   关于C#中的虚方法,以下说法科学的是(C )。 

 

         a)      使用static修饰

         b)      能够没有方法体

         c)      能够被子类重写

         d)      使用abstract修饰

 

8)   解析如下C#代码,倘使出口结果是“Dog
Eating……”,下划线必要填写的代码是(B ) 
       

    abstract class Animal

    {

        public __________ void Eat();

    }

    class Dog:Animal

    {

 

        public __________ void Eat()

        {

            Console.WriteLine(“Dog Eating……”);

        }

        static void Main(string[] args)

        {

            Animal animal = new Dog();

            animal.Eat();

        }

 

    }

         a)      abstract,不填

 

         b)      abstract,override

         c)      virtual,不填

         d)      virtual,override

 

9)   在开发C#先后进度中,会多量地使用类和对象,其应用办法不包涵(
BC)。
    

 

         a)      将类实例化为指标

         b)      将对象实例化为类

         c)      通过类访问非静态属性或艺术

         d)      通过对象访问非静态属性或格局

 

10) 运作下边C#代码将会冒出编写翻译错误,出现谬误的地点是( D)。   

class Teacher

    {

        public Teacher(string name)

        {

            this.Name = name;                          //1

        }

        private string name;

        public string Name

        {

            set { name = value; }                         //2

        }

 

        static void Main(string[] args)

        {

            Teacher teacher = new Teacher(“Jason”);       //3

            Console.WriteLine(teacher.Name);             //4

        }

}

 

         a)      1

         b)      2

         c)      3

         d)      4

  唯有set访问器,注明只可以赋值,无法获取值

11) 现有类“c1”,它所在的命名空间为“a.b”,则下列说法中错误的是(D )。     

         a)      分歧命名空间下仍可存在名称为c1的类

         b)      不相同命名空间下接纳c1时,可以由此“using a.b”引入命名空间

         c)      同一命名空间下的类,使用c1时不须要引入c1的命名空间

         d)     
不一样命名空间下选拔c1时,不得以一贯通过“a.b.c1”的法门使用

  

 

12) 上面关于泛型集合Dictionary<String, Person> dict = new
Dictionary<String,Person>()的操作代码不易的是(C )。
 

 

         a)     
dict.Remove(dict[0])   //dict[0]难堪,dict只好透过key访问,不可通过下标访问。

         b)      dict.RemoveAt(0)  //没有RemoveAt方法

         c)      foreach(Person per in dict.Values){} 

         d)      foreach(Person per in dict.Keys){}

 

13)   已知Company.xml文件节点代码如下:

<Company>

       <Name>中国一汽股份两合公司Ford</Name><价格>10万</价格>

       <Name>东瀛丰田</Name>
<价格>20万</价格>        

</Company>

现有如下C#代码片段:

XmlDocument myXml = new XmlDocument();

myXml.Load(“Company.xml”);

XmlNode company = myXml.DocumentElement;

foreach(XmlNode node in company.ChildNodes )

{

      switch (node.Name)

      {

          case “上海小车公司股份股份两合公司PEUGEOT”:   不是标签名

          Console.WriteLine(“车名:{0}”, node.InnerText);

          break;                  

          case “价格”:

          Console.WriteLine(“价格为:{0}”, node.InnerText);

          break;

     }

}

则不利的出口结果为(D)。

         a)      车名:北汽KIA

价格为:10万

         b)      车名:北京汽车工业公司总公司三菱(MITSUBISHI)

价格为:20万

         c)      车名:北汽本田(Honda)

车名为:东瀛丰田

         d)      价格为:10万

价格为:20万

 

 

14)   已知Animal、Cat、泰格八个类,其继续关系为Cat: Animal,泰格:
Animal,

已知Animal中成员color的访问修饰符为protected,Cat中成员height的拜访修饰符为private,泰格中成员weight的拜会修饰符为public,则上边描述中张冠李戴的是(
D)。
       

         a)      Cat可以访问Animal中的成员color

         b)      Cat能够访问Tiger中的成员weight

         c)      Tiger能够访问Animal中的成员color

         d)      Tiger能够访问Cat中的成员height

 

15) 在C#中,(
C)关键字用于子类的构造函数分明指明调用的父类的构造函数。
 

 

         a)      new  创造对象时选择

         b)      this   代表当前类的实例

         c)      base  展现调用父类的构造方法和父类属性和正常情势

         d)      is

 

16) C#中的多态不可能透过(D )达成。 

 

         a)      方法重载

            方法重载多态的反映!

         b)      抽象类

         c)      虚方法

         d)     
密封类 密封类都无法儿被持续,何来多态呢?因为大家知道多态的前提是三番五次。

 

17)   解析如下C#代码片断,运转后输出的结果是( C)。

ArrayList list = new ArrayList();

list.Add(“Sina”);

list.Add(“Yahoo”);

list.Add(“Google”);

list.RemoveAt(1);

Console.WriteLine(list[1]);      

 

         a)      Yahoo

         b)      Sina

         c)      Google

         d)      代码出现运营错误

 List集合会自动调整(维护)索引。

 

18) 在C#语言中,以下关于集合的说教漏洞非常多的是(A,C)。C语言,        

 

         a)      ArrayList只可以由此索引来访问和删除值    
也足以直接删除有些对象

         b)      Hashtable可以间接通过键名来赢得值 table[key]

         c)     
使用List<T>添加、读取成分时不供给拆箱和装箱,那或多或少和ArrayList相同

         d)     
使用Dictionary<K,V>能够经过Key获取Value,那点和Hashtable相同

 

19)     分析如下C#先后,运维输出的结果是( B)。

   注意是结构体

public struct Size

    {

        public int x;

        public int y;

        public Size(int x, int y)

        {

            this.x = x;

            this.y = y;

        }

    }

 

    class Test

    {

        static void Main()

        {

            Size size1 = new Size(8,10);

            Size size2 = size1;

            size1.y = 200;

            Console.WriteLine(“{0} | {1}”,size1.y,size2.y);

        }

    }

 

         a)      200 | 200

         b)      200 | 10

         c)      10 | 10

         d)      10 | 200

 

20) 倘使要使用C#规划三个日记系统,须要程序运维时,检查
system.log 文件是或不是留存,倘若已经存在则直接打开,若是不设有则制造3个,为了贯彻那几个指标,应该以FileMode的(C)格局开创文件流。

 

         a)      CreateNew

         b)      Open

         c)      OpenOrCreate

         d)      Create

 

21) 上面关于单例形式说法张冠李戴的是(A)。

 

         a)      在单例情势中,允许通过new 构造实例

         b)     
单例形式确定保证某些类只有二个实例,而且自行实例化并向全体种类提供那一个实例

         c)      在C# 中,static 是完成单例形式的最主要关键字

         d)      单例方式能够保障全数目的都访问唯一的实例

 

22) 上面不是C#中类的走访修饰符的是(AD)。

         a)      protected

         b)      internal

         c)      public

         d)      internal protected

 

在概念内部类的时候能够使用A和D作为类的拜会修饰符

 

23) 在C#中,上面关于协会的传教中,正确的是(C)。   

 

a)      结构和类都以援引类型

b)      定义结构的变量必须用new

c)      不能够在概念结构时给组织的分子设置伊始值

d)      结构中的整型成员被自动开始化为1    自动开端化为0

 

24) 有关如下C#的代码,说法科学的是(C);

public class A

{

    string S1;

    protected string S2;

    protected void M1()

    {}

 

}

public class B : A

{

    protected string S3;

}

 

 

a)      在A中能够访问S3  解析(父类中不得以访问子类受保证成员)

b)      在B中得以访问S1  解析(
若是类中变量没哟访问修饰符修饰,私下认可访问修饰符是private)

c)      在B中得以访问S2   解析(能够:因为其访问修饰符是protected类型)

d)      在M1( ) 中得以访问S3   解析(不能在父类方法中做客子类字段)

 

25) 有关如下C#代码的传道中,正确的是(D)。

public class Test    //⑴

{

    private static int Max = 100;    //⑵ 成员变量:

    public Test(int max)

    {

     

        Max = max;    //⑶

    }

    public int GetMax()

    {

        return Max;    //⑷

    }

}        

 

a)         在⑴行中必须将Test类定义为静态类

         静态变量能够不出现在静态类中

b)      在⑵中不能够将静态成员马克斯定义为private的

c)      在⑶中无法给静态成员马克斯赋值

d)      在⑷中得以动用静态成员马克斯

 

 

26) 在C#中,上面是格局的重载的是(C)。

 

a)      public string Test(int x, int y){ …}和public string Test(int a,
int b){ …}

b)      public string Test1(int x, int y){ …}和public string Test2(int
x, int y){ …}

c)      public string Test(int x, int y){ …}和public string Test(int a){
…}

d)      public string Test(int x, int y){ …}和public int Test(int x, int
y){ …}

 

27) 下面C#代码执行的结果是(A)。

public class A{ }

public class B : A

{

    static void Main()

    {

        A a = new A();

        B b = a as B;

        if (b == null)

            Console.WriteLine(“null”);

        else

            Console.WriteLine(b is A);

    }

}        

 

a)      null

b)      True

c)      False

d)      出现十分

28) 如下C#代码的实行结果是(C)。

public class Test

{

    public int i = 1;

    public Test(int i)

    {

        this.i += i;

    }

    static void Main()

    {

        Test t = new Test(2);

        Console.WriteLine(t.i);

    }

}

 

a)      1

b)      2

c)      3

d)      4

 

29)有如下C# 代码,则上边选项中说法科学的是(BC)。

public class A { }

public class B : A { }

A a = new A();

B b = new B();

 

a)      表达式a is B的值为true

b)      表达式b is A的值为true

c)      表达式a as B的值为null

d)      表达式b as A的值为null

 

30)     在C#中,下边类型中是援引类型的是(CD)。

a)      DialogResult枚举

b)      System.Int64

c)      string

d)      StringBuilder

 

二 简答题:

1.请简述泛型集合List<T>中“T”的意思和效能。并表达List<T>与ArrayList的异议。

 List<T>中的T可以对聚集中的成分类型举行约束;

  T注解集合中管理的因素类型;

  ArrayList与List<T>都使用索引访问成分;

  ArrayList与List<T>可以因此索引删除、也得以直接删除对象;

  ArrayList与List<T>遍历时直接遍历成分对象;

  ArrayList得到成分时供给类型转换,List<T>不须要类型转换;

 
同二个ArrayList能够保存不一致类别的成分,List<T>只可以保存T允许的品种。

2.面向对象的三大特征是如何?并简述每种原则的基本成效。

  封装:保障对象自作者数据的完整性、安全性;

  继承:建立类之间的关联,实现代码复用,方便系统的恢弘;

  多态:相同的点子调用可完结分歧的落实情势。