第四周

第四周 单元测验

1、单选题:
‍在类作用域中能够通过直接使用该类的(   )成员名进行访问​
选项:
A: 私有
B: 公用
C: 保护
D: 任何
答案: 【 任何

2、单选题:
‍在类的成员中,用于存储类的属性值是(     )​
选项:
A: 属性
B: 方法
C: 事件
D: 成员变量
答案: 【 成员变量

3、单选题:
类 ClassA有一个名为M1 的方法,在程序中有如下一段代码,假设该段代码是可以执行的,则修饰 M1 方法时一定使用了(  )修饰符。 ‎ ClassA  obj=new Class A();‎ ClassA.M1();‎‍‎
选项:
A: public
B: static
C: private
D: virtual
答案: 【 static

4、单选题:
‏在类的定义中,类的(  )描述了该类的对象的行为特征。‍
选项:
A: 类名
B: 方法
C: 所属的名字空间
D: 私有域
答案: 【 方法

5、单选题:
分析下列 C#语句,注意类 MyClass 没有访问修饰符: ​namespace ClassLibrary1​{ ​class MyClass​ { ​public class subclass​{ ​int i; ​}​}​ } ​若必须为类 MyClass 添加访问修饰符,并使 MyClass 的可访问域保持不变,则应选择 ( )​‏​
选项:
A: private
B: protected
C: internal
D: public
答案: 【 public

6、单选题:
‎下列关于索引器说法不正确的有‌
选项:
A: 索引器不指向内存位置
B: 索引器可以有非整数下标
C: 索引器不指向get 和set访问器
D: 索引器可以重载
答案: 【 索引器不指向get 和set访问器

7、单选题:
‎在类的成员中,用于存储属性值的是(     )。‍
选项:
A: 属性
B: 方法
C: 事件
D: 成员变量
答案: 【 成员变量

8、单选题:
‎下列说法正确的有‌
选项:
A: 属性通过使用访问器来读写数据库中的数据,从而为保护数据库中字段提供了可能
B: 属性通过使用访问器来读写类中的数据,从而为保护数据库中字段提供了可能
C: 属性通过使用访问器来读写类中的字段,从而为保护类中字段提供了可能
D: 属性通过使用访问器来读写数据库中的数据,从而为保护类中字段提供了可能
答案: 【 属性通过使用访问器来读写类中的字段,从而为保护类中字段提供了可能

9、单选题:
‏类 MyClass 中,下列哪条语句定义了一个只读的属性 Count?​
选项:
A: private int Count;
B: private int count; public int Count{ get{return count;} }
C: public readonly int Count;
D: public readonly int Count { get{ return count;}    set{count = value;}  }
答案: 【 private int count; public int Count{ get{return count;} }

10、单选题:
类 MyClass 中有下列方法定义:    public void testParams(params int[] arr)  { ‌Console.Write ("使用 Params 参数!"); ‌}    public void testParams(int x,int y)   { ‌Console.Write ("使用两个整型参数!");‌ }  请问上述方法重载有无二义性?若没有,则下列语句的输出为( )。    MyClass x = new MyClass();   x.testParams(0);   x.testParams(0,1);   x.testParams(0,1,2);‌‍‌
选项:
A: 有语义二义性;
B: 使用 Params 参数!使用两个整型参数!使用 Params 参数! 
C: 使用 Params 参数!使用 Params 参数!使用 Params 参数!
D: 使用 Params 参数!使用两个整型参数!使用两个整型参数!
答案: 【 使用 Params 参数!使用两个整型参数!使用 Params 参数! 

11、单选题:
‌有两个具有相同名字的函数,当只满足下列选项的( )条件时,它们不能算作重载函数。‍
选项:
A: 返回值的类不同
B: 参数数目不同
C: 参数类型不同
D: 参数的顺序不同
答案: 【 参数的顺序不同

12、单选题:
‏下面代码表示成员重载的是(  )。‏
选项:
A: class Myclass{      public void  fun()   {       Console.WriteLine(“无参数”);   }   public void fun(int a)   {      Console.WriteLine(“有一个整型的参数”);   } }
B: class Myclass{   public int a;  public void fun()   {     Console.WriteLine(“无参数”);    }  }  class Myclass1 {     public void  fun(int a)   {       Console.WriteLine(“有一个整型的参数”);    } }
C: class Myclass{      public int a;    public void fun()    {       Console.WriteLine(“无参数”);    }    public void  Fun(int a)     {      Console.WriteLine(“有一个整型的参数”);     } }
D: 以上都不是
答案: 【 class Myclass{      public void  fun()   {       Console.WriteLine(“无参数”);   }   public void fun(int a)   {      Console.WriteLine(“有一个整型的参数”);   } }

13、单选题:
‏关于 C#语言的方法,下列叙述中正确的是()‌
选项:
A: 方法的定义不能嵌套,但方法调用可以嵌套
B: 方法的定义可以嵌套,但方法调用不能嵌套
C: 方法的定义和调用都不能嵌套
D: 方法的定义和调用都可以嵌套
答案: 【 方法的定义不能嵌套,但方法调用可以嵌套

14、单选题:
‏以下所列的个方法头部中,正确的是()‎
选项:
A: void play(var a:Integer,var b:integer) 
B: void play(int a,b)
C: void play(int a,int b)
D: Sub play(a as integer,b as integer)
答案: 【 void play(int a,int b)

15、单选题:
‏下列的()不是构造函数的特征。‎
选项:
A: 构造函数的函数名和类名相同
B: 构造函数可以重载
C: 构造函数可以带有参数
D: 可以指定构造函数的返回值
答案: 【 可以指定构造函数的返回值

16、判断题:
​C#中被static关键字修饰的变量,不能被重新赋值。   (    )​
选项:
A: 正确
B: 错误
答案: 【 错误

17、判断题:
​C#中,void表示该方法无返回值。‏
选项:
A: 正确
B: 错误
答案: 【 正确

18、判断题:
‌C#中的方法签名包含返回类型。‏
选项:
A: 正确
B: 错误
答案: 【 错误

19、判断题:
‍在C#中,一个类中的所有方法都必须有一个唯一的方法签名。‏
选项:
A: 正确
B: 错误
答案: 【 正确

20、判断题:
​C#中的每个类都至少有一个构造函数,一个类如果没有定义构造函数,系统会自动为该类创建一个默认的构造函数。‌
选项:
A: 正确
B: 错误
答案: 【 正确

21、判断题:
‌对象的this引用是对该对象本身的引用。​
选项:
A: 正确
B: 错误
答案: 【 正确

22、判断题:
‎C#中,子类不能继承父类中用private修饰的成员变量和成员方法‎
选项:
A: 正确
B: 错误
答案: 【 正确

23、判断题:
​所有的对象都通过引用传递参数。‍
选项:
A: 正确
B: 错误
答案: 【 正确

24、判断题:
​构造函数可以返回值。‍
选项:
A: 正确
B: 错误
答案: 【 错误

25、判断题:
​属性必须定义get和set存取程序。 ‍
选项:
A: 正确
B: 错误
答案: 【 错误

26、判断题:
‍static成员即使该类型没有对象存在也可以引用。​
选项:
A: 正确
B: 错误
答案: 【 正确

27、判断题:
‏类的static成员可以通过该类的实例来引用。‏
选项:
A: 正确
B: 错误
答案: 【 错误

28、判断题:
​不同的命名空间中不能有名称相同的类或方法。‏
选项:
A: 正确
B: 错误
答案: 【 错误

29、判断题:
‎在C#中,可以为类的字段指定默认值。‍
选项:
A: 正确
B: 错误
答案: 【 正确

30、判断题:
​在C#中,类的静态成员方法不能对非静态的数据成员进行操作。​
选项:
A: 正确
B: 错误
答案: 【 正确

31、填空题:
‍类中声明的属性往往具有get()和(      ) 两个访问器‏
答案: 【 set()

32、填空题:
一般将类的构造方法声明为(   )访问权限。如果声明为private,就不能创建该类的对象‎‍‎
答案: 【 public或公有

33、填空题:
‌阅读下面代码,写出输出结果:‌public class A‌{‌    private int length = 5;‌    private string[] names = new string[5];‌    public int Length‌    {‌        get { return this.length; }‌    }‌    public string this[int index]‌    {‌        get { return names[index]; }‌        set { names[index] = value; }‌    }‌};‌public class Test‌{‌    static void Main()‌    {‌        A a = new A();‌        for (int i = 0; i < a.Length; i++)‌            a[i] = i.ToString();‌        Console.WriteLine(a[3]);‌    }‌}‌‌‌
答案: 【 3

第五周

第五周 单元测验

1、单选题:
‍在C#中,定义派生类时,指定其基类应使用的语句是(     )。‎‍‎
选项:
A: Inherits
B:  :
C: Class
D: Overrides 
答案: 【  :

2、单选题:
​继承具有(    ),即当基类本身也是某一类的派生类时,派生类会自动继承间接基类的成员。‌​‌
选项:
A: 规律性
B: 传递性
C: 重复性
D: 多样性
答案: 【 传递性

3、单选题:
‎在.NET中,关于组件多态性的陈述,错误的是。‏‎‏
选项:
A: 可以通过接口实现多态性
B: 可以通过抽象类实现多态性
C: 多态性不只是重载或重写,而是智能重写
D: 在多态性中,需要调用哪个方法的决定是在设计时做出的
答案: 【 在多态性中,需要调用哪个方法的决定是在设计时做出的

4、单选题:
​以下关于继承的说法错误的是(    )。‎​‎
选项:
A: .NET框架类库中,object类是所有类的基类
B: 派生类不能直接访问基类的私有成员
C: protected修饰符既有公有成员的特点,又有私有成员的特点
D: 基类对象不能引用派生类对象
答案: 【 基类对象不能引用派生类对象

5、单选题:
对下面的代码说法正确的是(  )‌class Baseclass    {        protected Baseclass(string a, string b)        {            Console.WriteLine("基类中构造函数");        }    }    class Derivcedlcass : Baseclass    {        public Derivcedlcass(string a, string b)            : base(a, b)        {            Console.WriteLine("派生类中的构造函数");        }    }‌‏‌
选项:
A: 代码无错误,派生类可以实例化,基类只有通过派生类实例化
B: 代码有错误,派生类的 base 关键字中不应带有参数
C: 代码无错误,基类可以实例化
D: 代码有错误,base关键字中的参数应改为"base(c,d)"
答案: 【 代码无错误,派生类可以实例化,基类只有通过派生类实例化

6、单选题:
‌关于虚方法实现多态,下列说法错误的是(    )。‏‌‏
选项:
A: 定义虚方法使用关键字virtual
B: 关键字virtual可以与override一起使用
C: 虚方法是实现多态的一种应用形式
D: 派生类是实现多态的一种应用形式
答案: 【 关键字virtual可以与override一起使用

7、单选题:
‍在C#的语法中,()关键字可以实现在派生类中对基类的虚函数进行重载‍‍‍
选项:
A: Override
B: new
C: static
D: virtual
答案: 【 Override

8、单选题:
下面程序运行结果是​abstract class BaseClass     {        public virtual void MethodA() {            Console.WriteLine("BaseClass");        }        public virtual void MethodB() { }     }     class Class1 : BaseClass     {       new  public void MethodA() {            Console.WriteLine("Class1");        }         public override void MethodB()         { }     }    class Class2 : Class1    {        new public void MethodB()         { }​ static void Main(string[] args)​  {​        Class2 A = new Class2();​        A.MethodA();​        A.MethodB();​    }​ }​‍​
选项:
A: BaseClass
B: Class1
C: BaseClass    Class1
D: Class1BaseClass
答案: 【 Class1

9、单选题:
‌下列关于抽象类的说法错误的是(    )。‌‌‌
选项:
A: 抽象类可以实例化
B: 抽象类可以包含抽象方法
C: 抽象类可以包含抽象属性
D: 抽象类可以引用派生类的实例
答案: 【 抽象类可以实例化

10、单选题:
​下面对抽象类描述不正确的是______。‌​‌
选项:
A: 抽象类只能作为基类使用
B: 抽象类不能定义对象
C: 抽象类可以实例对象
D: 可以实现多态
答案: 【 抽象类可以实例对象

11、单选题:
‏判断下列类 MyClass 的定义中哪些是合法的抽象类? ‌‏‌
选项:
A: abstract class MyClass{ public abstract int getCount(); }
B: abstract class MyClass    { abstract int getCount(); }
C: private abstract class MyClass{ abstract int getCount(); }
D:  sealed abstract class MyClass { abstract int getCount(); }
答案: 【 abstract class MyClass{ public abstract int getCount(); }

12、单选题:
‌下面对抽象类描述不正确的是(  )。‎‌‎
选项:
A: 抽象类只能作为基类使用
B: 抽象类不能定义对象
C: 抽象类可以实例对象
D: 可以实现多态
答案: 【 抽象类可以实例对象

13、单选题:
以下关于C#代码的说法正确的是()。   public abstract class person    {        public abstract void work();        public void Sleep()        {            Console.WriteLine("Sleep");        }    }‎​‎
选项:
A: 该段代码正确
B: 代码错误,因为类中存在非抽象方法
C: 代码错误,因为类中的方法没有实现
D: 通过代码“person  p= new person();”可以创建一个person对象
答案: 【 该段代码正确

14、单选题:
关于以下C#代码的说法正确的是‌public abstract class Animal     {        public abstract void Eat();     }     public class Tiger : Animal     {        public override void Eat()        {            Console.WriteLine("老虎吃...");        }    }    public class Tigress : Tiger    {        static void Main()        {            Tigress tiger = new Tigress();            tiger.Eat();        }    }‌‎‌
选项:
A: 代码正确,但没有输出
B: 代码正确,并且输出为"老虎吃...”
C: 代码错误,因为Tigress类没有实现抽象基类Animal中的抽象方法
D: 代码错误,因为抽象基类Animal的Eat方法没有实现
答案: 【 代码正确,并且输出为"老虎吃...”

15、单选题:
下面成运行的结果是​    abstract class A        {           public abstract void printStr(string str);         }        class B : A      {         public override void printStr(string str)          {              str = str + "override";             Console.WriteLine(str);          }​ ​    static void Main(string[] args)           {                   A a = new B();               a.printStr("print ");           }​       }​‎​
选项:
A: print
B: override
C: print override
D: 编译出错
答案: 【 print override

16、单选题:
下面程序运行的结果是‏   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()");           }      }‏ static void Main(string[] args)‏ {‏    B b = new B();‏    b.Fun();‏  }‏‍‏
选项:
A: A.Fun()
B: B.Fun() 
C: AB    A.Fun()
D: ABB.Fun()
答案: 【 ABB.Fun()

17、单选题:
‎以下叙述正确的是:‏‎‏
选项:
A: 接口中可以有虚方法。
B: 一个类不能实现多个接口。
C: 接口不能被实例化。
D: 接口中可以包含已实现的方法。
答案: 【 接口不能被实例化。

18、单选题:
接口 Animal 定义如下:‍public interface Animal‍ { void Move(); } ‍则下列抽象类的定义中,哪些是不合法的? ()‍‎‍
选项:
A: abstract class Cat: Animal   {          abstract public void Move();    } 
B: abstract class Cat:Animal  {      virtual public void Move()    {             Console.Write(Console.Write("Move!");       }  } 
C: abstract class Cat: Animal   {     public void Move()    {      Console.Write(Console.Write("Move!");    } } 
D: abstract class Cat: Animal   {    public void Eat()   {       Console.Write(Console.Write("Eat!");   }  } 
答案: 【 abstract class Cat: Animal   {    public void Eat()   {       Console.Write(Console.Write("Eat!");   }  } 

19、单选题:
已知接口 IHello 和类 Base、MyClass 的定义如下: ​interface IHello​{ ​  void Hello(); ​} ​class Base : IHello​{ ​   public void Hello() ​   {​     Console.WriteLine("Hello in Base!&quot

剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注