• 基于.net的应用开发技术-作业三


    1. (单选题)在C#中,属性从读/写特性上进行分类,可以划分为3种,除了_____________。

    A. 只读属性

    B. 只写属性

    C. 读/写属性

    D. 不可读不可写的属性

    2. (单选题)在C#中,以下关于属性的描述正确的是____________。

    A. 属性是以public关键字修饰的字段,以public关键字修饰的字段也可称为属性

    B. 属性是访问字段值的一种灵活机制,属性更好地实现了数据的封装和隐藏

    C. 要定义只读属性,只需在属性名前加上readonly关键字即可

    D. 在C#的类中不能自定义属性

    3. (单选题)以下类MyClass的属性count属于______________属性。

    class MyClass

    {

        int i;

        int count

        {  get{  return;   }   }

    }

    A. 只写

    B. 只读

    C. 可读/写

    D. 不可读不可写

    4. (单选题)以下关于C#中方法重载的说法正确的是_________________。

    A. 如果两个方法名称不同,而参数的个数不同,那么它们可以构成方法重载

    B. 如果两个方法名称相同,而返回值的数据类型不同,那么它们可以构成方法重载

    C. 如果两个方法名称相同,而参数的数据类型不同,那么它们可以构成方法重载

    D. 如果两个方法名称相同,而参数的个数相同,那么它们一定不能构成方法重载

    5. (单选题)以下_____________不是构造函数的特征。

    A. 构造函数的函数名和类名相同

    B. 构造函数可以重载

    C. 构造函数可以带有参数

    D. 可以指定构造函数的返回值

    6. (单选题)在C#中,以下有关索引器的参数个数的说法正确的是_______________。

    A. 索引可以没有参数

    B. 索引器只能有一个参数

    C. 索引器可以有多个参数

    D. 索引器至少要有两个参数

    7. (单选题)在类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);

    Console.WriteLine();

    A. 使用Params参数!使用两个整型参数!使用Params参数!

    B. 使用Params参数!使用Params参数!使用Params参数!

    C. 使用Params参数!使用两个整型参数!使用两个整型参数!

    D. 有语义二义性

    8. (单选题)以下程序的输出结果是____________。

    using System;

    namespace aaa

    {

         class Example1

         {

             static long sub(int x,int y)

             {

                  return x*x+y*y;

             }

             public static void Main()

             {

                 int a=30;

                 sub(5,2);

                 Console.WriteLine("{0}",a);

             }

         }

    }

    A. 0

    B. 29

    C. 30

    D. 无定值

    9. (单选题)C#中的MyClass是一个自定义类,其方法定义为public void Hello(){  ...   }。然后创建该类的对象,并使用变量obj引用该对象,语句为“MyClass obj=new MyClass();”,那么可访问类MyClass的Hello方法的语句是___________。

    A. obj.Hello();

    B. obj::Hello();

    C. MyClass::Hello();

    D. MyClass.Hello();

    10. (单选题)分析以下C#语句,注意类MyClass没有显示地指定访问修饰符:

    namespace aaa

    {

         class MyClass

         {

             public class subclass

             {    int i;       }

         }

    }

    类MyClass的默认访问修饰符是_____________。

    A. public

    B. protected

    C. private

    D. internal

    11. (单选题)分析下列程序:

    public class MyClass

    {

         private string _sData="";

         public string sData

         {

               set{    _sData=value;   }

         }

    }

    在Main函数中成功创建该类的对象obj后,以下___________语句是合法的。

    A. obj.sData="It is funny!";

    B. Console.WriteLine(obj.sData);

    C. obj._sData=100;

    D. obj.set(obj.sData)

    12. (单选题)以下_________________关键词用于委托类型。

    A. event

    B. this

    C. delegate

    D. value

    13. (单选题)以下关于委托和委托类型的叙述正确的是__________________。

    A. 委托不是一种类的成员

    B. 委托必须在类中定义

    C. 定义委托需要使用delegate关键词

    D. 委托类型是一种数据类型

    14. (单选题)分析下列语句:

    namespace NS

    {

         public delegate void Hello(string target);

    }

    该语句的作用是_______________。

    A. 在NS命名空间中定义了一个名为Hello的全局方法

    B. 在NS命名空间中函数Hello的原型

    C. 在NS命名空间中定义了一个名为Hello的函数指针

    D. 在NS命名空间中定义了一个名为Hello的委托类型

    15. (单选题)在C#中,以下关于命名空间的叙述正确的是___________。

    A. 在一个.cs文件中只能存在一个命名空间

    B. 命名空间不可以嵌套

    C. 使用private修饰的命名空间,其内部的类不允许访问

    D. 命名空间使得代码更加有条理、结构更清晰

    16. (单选题)以下_____________关键字用于定义事件。

    A. delegate

    B. event

    C. this

    D. value

    17. (单选题)将发生的事件通知其他对象(订阅者)的对象称为事件的_____________。

    A. 广播者

    B. 通知者

    C. 发行者

    D. 订阅者

    18. (单选题)在C#中,一个类____________。

    A. 可以继承多个类

    B. 可以实现多个接口

    C. 在一个程序中只能有一个子类

    D. 只能实现一个接口

    19. (单选题)以下关于继承机制的叙述正确的是____________。

    A. 在C#中任何类都可以被继承

    B. 一个子类可以继承多个父类

    C. object类是所有类的基类

    D. 继承有传递性,如果A类继承B类,B类又继承C类,那么A类也继承C类

    20. (单选题)____________关键字用于在C#中从派生类中访问基类的成员。

    A. new

    B. super

    C. this

    D. base

    21. (单选题)在C#中,在派生类中对基类的虚函数进行重写,要求在派生类的声明中使用__________。

    A. override

    B. new

    C. static

    D. virtual

    22. (单选题)

    有以下程序:

    using System;

    namespace aaa

    {

         class A

         {

             public A()

             {

                  Console.Write("A");

             }

         }

         class B:A

         {

             public B():base()

             {

                   Console.WriteLine("B");

             }

         }

         class Program

         {

              public static void Main()

              {

                   B b=new B();

              }

         }

    }

    上述代码运行后将在控制台窗口输出__________。

    A. A

    B. B

    C. A B

    D. B A

    23. (单选题)以下关于抽象类的叙述中,错误的是____________。

    A. 抽象类中可以包含非抽象方法

    B. 含有抽象方法的类一定是抽象类

    C. 抽象类不能被实例化

    D. 抽象类可以是密封类

    24. (单选题)在C#中,接口与抽象基类的区别在于____________。

    A. 抽象类中可以包含非抽象方法,而接口不包含任何方法的实现

    B. 抽象类可以被实例化,而接口不能被实例化

    C. 抽象类不能被实例化,而接口可以被实例化

    D. 抽象类能够被继承,而接口不能被继承

    25. (单选题)以下关于抽象类和接口的叙述中,正确的是_____________。

    A. 在抽象类中所有的方法都是抽象方法

    B. 继承自抽象类的子类必须实现其父类(抽象类)中的所有抽象方法

    C. 在接口中可以有方法实现,在抽象类中不能有方法实现

    D. 一个类可以从多个接口继承,也可以从多个抽象类继承

    26. (单选题)多态是指两个或多个不同对象对于同一个消息做出不同响应的方式。C#中的多态不能通过___________实现。

    A. 接口

    B. 抽象类

    C. 虚方法

    D. 密封类

    27. (单选题)分析下列程序中类MyClass的定义:

    class BaseClass

        {

            public int i;

        }

        class MyClass:BaseClass

        {

            public new int i;

        }

    则下列语句在Console上的输出为_______________。

    MyClass y = new MyClass();

    BaseClass x = new BaseClass();

     x.i = 100;

     Console.WriteLine("x.i={0},y.i={1}",x.i,y.i);

    A. 0,0

    B. 100,100

    C. 0,100

    D. 100,0

    28. (单选题)在接口和类的区别中,正确的是________________。

    A. 类可以继承,而接口不可以

    B. 类不可以继承,而接口可以

    C. 类可以多继承,而接口不可以

    D. 类不可以多继承,而接口可以

    29. (单选题)在C#中定义以下IPlay接口,实现此接口的代码正确的是___________。

    interface IPlay

    {

        void Play();

        void Show();

    }

    A.

    class Teacher:IPlay

    {

        void Play(){   //省略部分代码    }

        void Show(){  //省略部分代码    }

    }

    B.

    class Teacher:IPlay

    {

        public string Play(){   //省略部分代码    }

        void Show(){  //省略部分代码    }

    }

    C.

    class Teacher:IPlay

    {

        void Play();

        void Show(){  //省略部分代码    }

    }

    D.

    class Teacher:IPlay

    {

        public void Play(){   //省略部分代码    }

        public void Show(){  //省略部分代码    }

    }

    30. (单选题)以下程序的输出结果是____________。

    using System;

    namespace aaa

    {

        public class Vehicle

        {

             private int speed=10;

             public int Speed

             {

                  get{  return speed;    }

                  set

                  {

                       speed=value;

                       Console.WriteLine("禁止驶入");

                  }

             }

        }

        public class NewVehicle:Vehicle

        {    public NewVehicle()

             {

                    if(this.Speed>=20)     Console.Write("机动车!");

                    else  Console.Write("非机动车!");

              }

        }

        public class Program

        {

            public static void Main()

            {

                 NewVehicle tong=new NewVehicle();

                 tong.Speed=30;

            }

        }

    }

    A. 禁止驶入非机动车!

    B. 非机动车!禁止驶入

    C. 禁止驶入机动车!

    D. 机动车!禁止驶入

    31. (单选题)以下程序的输出结果是____________。

    using System;

    namespace aaa

    {

        public class Person

        {

            private int age=0;

            public int Age

            {

                 get{    return age;   }

                 set

                 {     if(value>=18)    Console.WriteLine("成年人");

                       else    Console.WriteLine("非成年人");

                       age=value;

                 }

            }

        }

        public class People:Person

        {

             public People()

             {

                  Console.Write("不得入内");

             }

        }

        public class Program

        {

             public static void Main()

             {

                  People wang=new People();

                  wang.Age=25;

             }

        }

    }

    A. 非成年人不得入内

    B. 成年人不得入内

    C. 不得入内非成年人

    D. 不得入内成年人

    32. (单选题)以下关于静态方法的说法,不正确的是______________。

    A. 静态方法不对特定实例进行操作

    B. 静态方法只能直接访问静态成员

    C. 在静态方法在引用this会导致编译时错误

    D. 静态方法通过类的实例来访问

    33. (单选题)以下关于实例方法的说法,不正确的是__________________。

    A. 实例方法通过类来访问

    B. 实例方法对类的某个给定的实例进行操作

    C. 实例方法能够访问静态成员和实例成员

    D. 在调用实例方法的实例上,可以通过this显式地访问该实例

    34. (单选题)静态方法不能访问___________________。

    A. 同类的静态字段

    B. 同类的实例字段

    C. 另一个类中的静态字段

    D. 另一个类中的实例字段,但必须先创建一个该类的对象,再通过对象名调用

    35. (单选题)以下关于构造函数的说法,不正确的是________________。

    A. 构造函数的名称与类名相同

    B. 构造函数不能声明返回类型(也不能使用void),也不能返回值

    C. 构造函数只能声明为public类型

    D. 创建对象时不能显式地调用构造函数

    36. (单选题)以下关于静态构造函数的说法,不正确的是___________。

    A. 静态构造函数用于实现初始化实例或对象所需的操作

    B. 静态构造函数用于初始化任何静态数据,或用于执行仅需执行一次的特定操作

    C. 类的静态构造函数在给定程序中至多执行一次

    D. 静态构造函数既没有访问修饰符,也没有参数

    37. (单选题)以下关于析构函数的说法,正确的是________________。

    A. 析构函数没有修饰符,没有返回值类型,但是可以有参数

    B. 无法继承析构函数,但是可以重载析构函数

    C. 一个类只能有一个析构函数

    D. 必须显式调用析构函数来销毁类的实例

    38. (单选题)以下关于静态成员的说法,不正确的是________________。

    A. 静态成员属于类,被这个类的所有实例所共享

    B. 静态成员必须通过类名来引用

    C. 静态函数代码体内既可以直接引用实例成员,也可以直接引用类的静态成员

    D. 创建了一个类的多个实例时,其静态字段在内存中占用同一存储区域,即永远只有一个副本

    39. (单选题)调用方法结束后,_____________不再存在。

    A. 值传递的形式参数及其值

    B. 引用传递的实际参数及其值

    C. 用ref修饰的参数及其值

    D. 用out修饰的参数及其值

    40. (单选题)在静态方法中不能直接使用________________。

    A. 静态字段

    B. 实例字段

    C. 值传递参数

    D. 引用传递的参数

    41. (单选题)调用方法传递参数时,形式参数和实际参数的_____________必须匹配。

    A. 类型

    B. 名称

    C. 地址

    D. 访问修饰符

    42. (单选题)以下关于params参数的说法,不正确的是_____________。

    A. 形参数组必须位于该列表的最后

    B. 形参数组必须是一维数组类型

    C. params修饰符可以用out修饰

    D. params一定是引用传递的参数

    43. (单选题)已知类MyOwnClass,下面_____________是合法的构造函数的函数头。

    A. public static MyOwnClass(){  }

    B. public void MyOwnClass(){  }

    C. public int MyOwnClass(){  }

    D. public  MyOwnClass(){  }

    44. (单选题)当没有定义访问修饰符时,类的成员的默认访问修饰符为_________________。

    A. private

    B. public

    C. protected

    D. internal

    45. (单选题)访问修饰符protected internal的可访问性是___________。

    A. 访问不受限制

    B. 程序集的派生类

    C. 程序集和所有本类的派生类

    D. 仅限于本类

    46. (单选题)以下关于继承的说法,正确的是_____________。

    A. 继承可以避免代码复制和相关的代码维护等问题

    B. C#语言一个子类可以继承多个基类(多重继承)

    C. C#语言不允许实现多个接口

    D. 子类可以继承父类的方法,但不能重新改写父类的方法

    47. (单选题)以下关于密封类的说法,正确的是________________。

    A. 密封类可以用作基类

    B. 密封类可以是抽象类

    C. 密封类永远不会有任何派生类

    D. 密封类或密封方法可以重写或继承

    48. (单选题)以下关于this 关键字和base关键字的说法,不正确的是____________。

    A. this 关键字用于引用类的当前实例

    B. base关键字用于从派生类中访问基类的成员

    C. 静态成员函数中不能使用this关键字

    D. 静态成员函数中可以使用base关键字

    49. (单选题)以下关于接口的说法,不正确的是__________________。

    A. 接口不能实例化

    B. 接口中声明的所有成员隐式地为public和abstract

    C. 接口默认的访问修饰符是private

    D. 继承接口的任何非抽象类型都必须实现接口的所有成员

    50. (单选题)以下关于接口的说法,正确的是____________。

    A. 接口成员可以包含常量、字段、运算符、实例构造函数、析构函数或类型

    B. 接口成员允许包含运算符重载

    C. 接口成员可以包含静态成员

    D. 接口成员声明中不允许包含abstract、public、protected、internal、private、virtual、override或static等修饰符

    51. (单选题)派生类要访问基类的成员,可以使用关键字____________。

    A. base

    B. this

    C. out

    D. external

    52. (单选题)virtual关键字不可以修饰__________________。

    A. 静态字段

    B. 属性

    C. 索引器

    D. 事件

    53. (单选题)虚方法可以使用如下________________修饰符。

    A. public virtual

    B. public abstract virtual

    C. virtual abstract

    D. virtual override

    54. (单选题)以下_____________可以成为接口成员。

    A. 索引器

    B. 常量

    C. 字段

    D. 析构函数

    55. (单选题)下列关于事件的说法中,不正确的是________________。

    A. 事件是发送(生产)者的类中的成员

    B. 事件是接收(消费)者的类中的成员

    C. 事件可以是实例的,也可以是静态的

    D. 事件是一种类的对象,可以包含多个成员

    56. (单选题)下列关于事件的说法中,正确的是______________。

    A. 在静态事件的访问器中不可以用this来访问

    B. 在实例事件的访问器中可以用this来访问

    C. 在静态事件和实例事件的访问器中都可以用this来访问

    D. 在静态事件和实例事件的访问器中都不可以用this来访问

  • 相关阅读:
    【LeetCode】【剑指offer】【最长不含重复字符的子字符串】
    5-VMware Horizon 2203 虚拟桌面-Connect注册服务器(五)
    通过vue ui方式构建vue+electron项目
    信息收集工具集合
    国密SSL证书与国际SSL证书的区别
    GaussDB拿下的安全认证CC EAL4+究竟有多难?
    Linux中ROS话题通信基本操作(Python实现)
    每日论文阅读 2022-11-11
    MySQL下载安装 & 完美卸载
    索引的设计原则
  • 原文地址:https://blog.csdn.net/qq_61727355/article/details/126315243