zoukankan      html  css  js  c++  java
  • 【皇甫】☀别进来 千万别进来

    都说了别进来别进来 进来干嘛 

    既然你都进来了 我也不厉色 随便看看吧

    《深入.NET平台和C#编程》内部测试题-笔试试卷

    一 选择题

    1) 以下关于序列化和反序列化的描述错误的是( )。

    a) 序列化是将对象的状态存储到特定存储介质中的过程

    b) 二进制格式化器的Serialize()Deserialize()方法可以分别用来实现序列化和反序列

    化过程

    c) 如果一个类可序列化,则它的子类和包含的各成员对象也一定可序列化

    d) 标识一个类可以序列化要使用[Serializable]

    2) 在C#中,下列关于简单工厂设计模式的说法不正确的是(  )。

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

    b) 创建产品的方法返回类型都是父类

    c) 使用该模式解决了代码中大量使用new 的问题

    d) 简单工厂的缺点是对修改不封闭,新增加产品就需要修改工厂

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

    a) 虚方法必须有方法体,可以被子类重写

    b) 抽象方法不允许有方法体,且必须被子类重写

    c) 抽象方法必须在抽象类中,而虚方法可以在所有类中

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

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

    a) +

    b) -

    c) *

    d) #

    5) 分析以下使用抽象类的C#代码,其最终的运行结果是( )。

    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();
    
        }
    
    }
    代码

    a) 12

    b) 21

    c) 13

    d) 23

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

    class Test
    
    {
    
        public void F()
    
        {
    
            Console.Write("A");
    
        }
    
    }
    
    class B : Test
    
    {
    
        new public void F()
    
        {
    
            Console.Write("B");
    
        }
    
        static void Main()
    
        {
    
            Test objA = new B();
    
            objA.F();
    
        }
    
    }
    代码

    a) A

    b) B

    c) BA

    d) AB

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

    a) 使用static修饰

    b) 可以没有方法体

    c) 可以被子类重写

    d) 使用abstract修饰

    8) 分析如下C#代码,如果输出结果是“Dog Eating......”,下划线需要填写的代码是( ) 

        

    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();
    
            }
    
        }
    View Code

    a) abstract,不填

    b) abstractoverride

    c) virtual,不填

    d) virtualoverride

    9) 在开发C#程序过程中,会大量地使用类和对象,其使用方法不包括( )。

    a) 将类实例化为对象

    b) 将对象实例化为类

    c) 通过类访问非静态属性或方法

    d) 通过对象访问非静态属性或方法

    10) 运行下面C#代码将会出现编译错误,出现错误的位置是( )。

    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
    
            }
    
    }
    
     
    View Code

    a) 1

    b) 2

    c) 3

    d) 4

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

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

    b) 不同命名空间下使用c1时,可以通过“using a.b”引入命名空间

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

    d) 不同命名空间下使用c1时,不可以直接通过“a.b.c1”的方式使用

    12) 下面关于泛型集合Dictionary<String, Person> dict = new Dictionary<String,Person>()的操作代码正确的是( )。

    a) dict.Remove(dict[0])

    b) dict.RemoveAt(0)

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

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

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

    <Company>
    
    <Name>一汽大众</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 "一汽大众":
    
              Console.WriteLine("车名:{0}", node.InnerText);
    
              break;                   
    
              case "价格":
    
              Console.WriteLine("价格为:{0}", node.InnerText);
    
              break;
    
         }
    
    }
    View Code

    则正确的输出结果为()。

    a) 车名:一汽大众

    价格为:10

    b) 车名:一汽大众

    价格为:20

    c) 车名:一汽大众

    车名为:日本丰田

    d) 价格为:10

    价格为:20

    14) 已知AnimalCatTiger三个类,其继承关系为Cat: AnimalTiger: Animal

    已知Animal中成员color的访问修饰符为protectedCat中成员height的访问修饰符为privateTiger中成员weight的访问修饰符为public,则下面描述中错误的是( )。

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

    b) Cat可以访问Tiger中的成员weight

    c) Tiger可以访问Animal中的成员color

    d) Tiger可以访问Cat中的成员height

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

    a) new

    b) this

    c) base

    d) is

    16) C#中的多态不能通过( )实现。

    a) 方法重载

    b) 抽象类

    c) 虚方法

    d) 密封类

    17) 分析如下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) 代码出现运行错误

    18) 在C#语言中,以下关于集合的说法错误的是()。

    a) ArrayList只能通过索引来访问和删除值

    b) Hashtable可以直接通过键名来获取值

    c) 使用List<T>添加、读取元素时不需要拆箱和装箱,这一点和ArrayList相同

    d) 使用Dictionary<K,V>可以通过Key获取Value,这一点和Hashtable相同

    19) 分析如下C#程序,运行输出的结果是( )。

    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 文件是否存在,如果已经存在则直接打开,如果不存在则创建一个,为了实现这个目的,应该以FileMode的( )方式创建文件流。

    a) CreateNew

    b) Open

    c) OpenOrCreate

    d) Create

    21) 下面关于单例模式说法错误的是()。

    a) 在单例模式中,允许通过new 构造实例

    b) 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例

    c) 在C# 中,static 是实现单例模式的重要关键字

    d) 单例模式可以确保所有对象都访问唯一的实例

    22) 下面不是C#中类的访问修饰符的是()。

    a) protected

    b) internal

    c) public

    d) internal protected

    23) 在C#中,下面关于结构的说法中,正确的是()。

    a) 结构和类都是引用类型

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

    c) 不能在定义结构时给结构的成员设置初始值

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

    24) 关于如下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
    
    c) 在B中可以访问S2
    
    d) 在M1( ) 中可以访问S3
    
     
    
    25) 关于如下C#代码的说法中,正确的是()。
    
    public class Test    //
    
    {
    
        private static int Max = 100;    //
    
        public Test(int max)
    
        {
    
            Max = max;    //
    
        }
    
     
    
        public int GetMax()
    
        {
    
            return Max;    //
    
        }
    
    }
    View Code

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

    b) 在⑵中不能将静态成员Max定义为private

    c) 在⑶中不能给静态成员Max赋值

    d) 在⑷中可以使用静态成员Max

    26) 在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#代码执行的结果是()。

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

    a) null

    b) True

    c) False

    d) 出现异常

    28) 如下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);
    
        }
    
    }
    View Code

    a) 1

    b) 2

    c) 3

    d) 4

    29)有如下C# 代码,则下面选项中说法正确的是()。

    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#中,下面类型中是引用类型的是()。

    a) DialogResult枚举

    b) System.Int64

    c) string

    d) StringBuilder

    答案:记得最后在看哦,考验一下自己

    C A C B D A C B BC D D C D D C D C AC B C A AD C C D C A C BC CD

  • 相关阅读:
    wrap,wrapall,wrapinner的区别:
    jqueryappend和appendTo的区别
    《Nagios系统监控实践》一书出版
    基于Python的密码生成程序的优化
    Puppet学习:pp文件权限问题
    依然看不清
    免费编程中文书籍索引
    Linux批量修改指定目录下的文件或文件夹权限
    puppet学习:文件夹权限的问题
    Zabbix探索:Zabbix API使用时的错误1
  • 原文地址:https://www.cnblogs.com/wangxiangxiang/p/5300119.html
Copyright © 2011-2022 走看看