《C#面向对象练习题.docx》由会员分享,可在线阅读,更多相关《C#面向对象练习题.docx(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C#面向对象练习题1、关于文件的常用操作方法,说法错误的是() Exists()方法用来检测指定文件是否存在 Move()方法用来复制文件(正确答案) Delete()方法用来删除指定文件 以上方法不完全对2、对于方法重载的特点,描述错误的是() 方法名称必须相同 方法的参数必须不相同 返回值类型必须相同(正确答案) 可以减轻命名负担3、泛型所在的命名空间是() System.Collections.Generic(正确答案) System.Collections System.Generic 以上都不对4、属性与字段的对应关系是() 多个字段对应一个属性 1个字段对应一个属性(正确答案) 多
2、个属性对应一个字段 以上都不对5、C#中的多态不能通过()实现。 方法重载 抽象类 虚方法 密封类(正确答案)6、对于构造函数,描述错误的是() 构造函数必须与类同名 构造函数没有返回值类型 构造函数可以没有参数 一个类只能有一个构造函数(正确答案)7、Hashtable集合删除数据的方法有()。 Remove(object key)(正确答案) Detelte(int index) RemoveAt(object key) Clear()8、使用StreamReader读取文件时,以下()不属于其 读取方法 Read() ReadLine() ReadALL()(正确答案) ReadToEn
3、d()9、在C#中,下述代码的运行结果是( )。 Using System; Class Test Public void F() Console.Write(A); Class B:Test public new void F() Console.Write(B); public static void Main() Test objA=new B(); objA.F(); A(正确答案)B AB BA10、通过类的()特性,可以重复使用已有代码和数据 抽象 封装(正确答案) 继承 多态11、在C#中, ( )关键字用于子类的构造函数明确调用的父类构造函数 new this base(正确答
4、案) is12、在C#中,类默认的访问修饰符是( ) public private protected internal(正确答案)13、在C#中,下列关于接口的说法,错误的是() 接口是一组规范的标准 接口可以约束类的行为 接口只能含有未实现的方法 接口中的方法可以包含具体实现(正确答案)14、下列关于虚方法和抽象方法的描述,错误的是()。 虚方法必须有方法体,可以被子类重写 抽象方法不允许有方法体,且必须被子类重写 抽象方法必须在抽象类中,而虚方法可以在所有类中(正确答案) 在子类中重写抽象方法或虚方法,都需要用override关键字15、C#中,下面关于静态方法和实例方法描述错误的是:(
5、 ) 静态方法只能使用类名调用,实例方法只能使用类的实例来调用 静态方法可以直接调用实例方法(正确答案) 实例方法可以直接调用静态方法 静态方法调用前初始化,实例方法实例化对象时初始化16、FileStream fs=new FileStream(D:a.txt,_,FileAccess.Write); 创建文件时,如果文件已存在则覆盖原有文件,下列代码为()。 FileMode.CreateNew FileMode.Create(正确答案) FileMode.OpenOrCreate FileMode.Open17、如果想限制打开文件对话框中选择的文件的类型,应该使用哪个()属性 Filte
6、r(正确答案) Type FileName FileNames18、在C#中,下列代码的运行结果是()。 Hashtable ht=new Hashtable(); ht.Add(3,三星); ht.Add(2,小米); ht.Add(1,苹果)Console.WriteLine(ht3); 三星 小米 苹果 程序运行错误(正确答案)19、如果只想对某个文件家做大量操作,则应该使用哪个类() FileInfo File DirectoryInfo(正确答案) Directory20、下列关于继承和接口的说法,正确的是() C#不允许实现多个接口,但可以有多个父类 C#允许实现多个接口,但不能有
7、多个父类(正确答案) C#不允许实现多个接口,也不允许有多个父类 C#允许实现多个接口,也允许有多个父类21、如果只想对某个文件做少量操作,则应该使用哪个类() FileInfo File(正确答案) DirectoryInfo Directory22、关于多态相关概念,以下说法错误的是()。 多态的使用可以代码的灵活性 多态主要通过方法重写来完成 子类引用可以指向父类对象(正确答案) 父类引用可以指向子类对象23、在C#中,ArrayList中的( )属性用于指定可包含元素数。 Capacity(正确答案) Value Total Count24、关于List的属性和方法,描述错误的是()
8、Clear()方法用来清除所有元素 Remove()方法用来移除指定索引处的元素(正确答案) Add()方法用来将元素添加到集合末尾 Reverse()方法用来反转元素的顺序25、以下不属于面向的对象的三大特征的是( ) 继承 封装 抽象(正确答案) 多态26、在C# 程序中,一个类( ) 可以继承多个类 可以实现多个接口(正确答案) 只能被一个子类继承 只能实现一个接口27、关于对象的使用,下列说法正确的是() 定义后就可以使用 定义并且使用new关键字创建对象后才能使用(正确答案) 定义并且使用new关键字创建对象,再给所有字段赋值后才能使用 定义后可以调用方法,使用new关键字创建对象后
9、才能调用字段28、在C#中,关于ArrayList和Hashtable的说法,正确的是:( ) ArrayList和Hashtable都可以使用索引访问 获取元素时,ArrayList需要类型转换,Hashtable不需要 ArrayList和Hashtable都可以循环遍历整个元素对象(正确答案) ArrayList和Hashtable都可以直接删除对象29、在C#中,下述代码的运行结果是( )。 Using System; Class Test Public virtual void F() Console.Write(A); Class B:T public override void
10、F() Console.Write(B); public static void Main() Test objA=new B(); objA.F(); AB(正确答案) AB BA30、在C#中设计时,如何将一个可读写的公有属性Name修改为只读属性?( ) 为Name添加修饰符 12345将Name的set块置空 将Name的set块删除(正确答案) 在Name的set块前加修饰符pravite31、关于方法重写,以下说法错误的是()。 方法重写也称为“方法覆盖” 方法重写可以提高代码的运行效率(正确答案) 表示子类重新实现了父类的同原型方法 不同的子类可以有不同的方法重写32、关于泛型的
11、特点,描述正确的是() 泛型会提升程序的代码量 泛型会提升类型安全性(正确答案) 不能定义泛型方法 不能定义泛型类33、关于Dictionary,描述错误的是() 可以通过下标获取值(正确答案) 可以通过键获取值 描述的是键值对 Keys属性表示键集合34、类的行为使用()来描述 字段 属性 方法(正确答案) 事件35、A类被B类继承,B类被C类继承,那么C类具有了A类的特征,这表现了类的() 封装性 传递性(正确答案) 单根性 规律性36、关于泛型的特点,描述错误的是() 泛型是C#2.0新增加的功能 不会强行对值类型装箱和拆箱 数据类型默认为Object(正确答案) 提高运行的性能37、关
12、于序列化和反序列化,下列描述错误的是() 序列化是将对象的状态存储到特定存储介质中的过程 使用Serialize()方法实现序列化过程(正确答案) 标识一个类可以序列化要在类前加上Serializable特性 如果一个类可序列化,则其子类和包含的各成员对象也必须可序列化38、在C#中,ArrayList对象位于()命名空间内。 System.IO System.Array System.Collection(正确答案) System.RunTime39、关于List,描述错误的是() 是ArrayList的泛型版 可以通过键获取值(正确答案) 可以通过下标获取值 可以调用Insert方法将元素
13、添加到指定位置40、在C#中,ArrayList中的( )属性用于指定实际包含元素的个数 Capacity Value Total Count(正确答案)41、对于方法重载的作用描述错误的是() 可以减轻命名负担 方便自适应调用 代码更灵活 提高了运行效率(正确答案)42、在C#中,以下使用键值对存储数据的是( ) ArrayList Array 字符型数组 Hashtable(正确答案)43、关于文件对话框,以下说法错误的是()。 OpenFileDialog是打开文件对话框 打开文件对话框只能是单选模式(正确答案) SaveFileDialog是保存文件对话框 SaveFileDialog
14、可以设置多选模式44、在C#编程中,访问修饰符控制程序对类中成员访问,如果不写访问修饰符,类成员的默认访问类型是()。 public private(正确答案) internal protected45、在C#中,使用()关键字修饰的方法称为虚方法 this new base virtual(正确答案)46、在C#中 ,检查某个文件是否存在使用的方法是 Exists(正确答案) Move Delete Copy47、分析下述C#代码,其中错误代码的行号是( ) class User public string name; public int age=18; /行1 class Program
15、 public static void Main(string args) User user=new User(); /行2 User.age=23; /行3 Console.WriteLine(user.name); /行4 行1 行2 行3(正确答案) 行448、下列泛型集合创建正确的是() List list=new List; List list=new List(); List list=new List; List list=new List();(正确答案)49、下列描述错误的是() 类不可以多重继承而接口可以 抽象类自身可以定义成员而接口不可以 抽象类和接口都不能被实例化 一
16、个类可以有多个基类和多个基接口(正确答案)50、定义泛型集合对象user,代码如下,Dictionary=new Dictionary();下列代码争取的是 Users u=usersJimmy(正确答案) users.Add(Jimmy); users.Remove(4) foreach(User item in users.Keys)51、A类被B类继承,B类被C类继承,那么C类具有了A类的特征,这表现了类的( ) 封装性 传递性(正确答案) 单根性 规律性52、在C#中,ArrayList对象位于( )命名空间下 System.Array System.IO System.Collect
17、ions(正确答案) System.RunTime53、下列表示打开文件夹对话框的控件是 OpenFileDialog SaveFileDialog OpenFoldDialog FoldBrowserDialog(正确答案)54、下列说法正确的是( ) 子类对象可以强制转换为父类对象(正确答案) 在任何情况下,父类对象都不能转换为子类对象 接口不可以实例化,也不能实例化为实现了该接口的类的对象 可以通过父类对象访问子类成员55、下列关于接口的使用,错误的是( ) 接口可以直接实例化(正确答案) 接口可以作为方法的参数使用 接口可以作为方法的返回值使用 C#程序可以通过接口来实现多继承56、在
18、C#中,可以通过()来实现方法重载。 方法名相同,不同的参数个数(正确答案) 方法名相同,不同的参数名称 不同的方法名称,相同的参数个数 相同的方法名,相同的参数个数,不同的返回值57、在C#中,关于List和DictionaryK,V)的税法正确的有( ) List和DictionaryK,V)都有Count方法 List和DictionaryK,V)都有RemoveAt方法 List和DictionaryK,V)都有Count属性(正确答案) List和DictionaryK,V)都可以通过索引来访问58、下列关于集合的说法,正确的是 Count属性可以获取集合中实际存储的元素个数(正确答
19、案) Capacity属性可以获取集合中实际存储的元素个数 Hashtable存储的元素是按添加的先后顺序排列的 ArrayList可以通过键来访问对应的值59、下列关于属性中的访问器的说法,正确的是()。 属性中可以不包含任何访问器 属性中可以只有get访问器,也可以只有set访问器(正确答案) 属性中只能有get访问器或set访问器,不能同时包含 属性中必须包含get访问器和set访问器60、下列关于继承和接口的说法,正确的是( ) c#不允许实现多个接口,但可以有多个父类 c#允许实现多个接口,但不能有多个父类(正确答案) c#不允许实现多个接口,也不允许有多个父类 c#允许实现多个接口
20、,也允许有多个父类61、在类的成员中,可以用于存储数据的是( ) 字段(正确答案) 属性 方法 事件62、下列属于方法重写的是 子类和父类方法的返回值类型,方法名和参数必须完全相同,访问修饰符不能低于父类(正确答案) 子类和父类方法的方法名必须相同,参数可以不同 子类和父类方法的方法名和参数必须相同,访问修饰符可以低于父类 子类和父类方法的方法名不能相同,访问修饰符,返回值类型和参数必须完全相同63、泛型集合类List中的T表示什么 数据类型 类型通配符(正确答案) 泛型 通配符64、C#中的属性主要体现了面向对象编程的()特性。 封装(正确答案) 继承 多态 抽象65、关于泛型集合List
21、list=new List()的操作正确的是( )。 list.Remove(C#高级编程); list.Remove(2) string goods=list1(正确答案) string goods=listC#高级编程66、通过类的( )特性,可以重复使用已有代码和数据 抽象 封装 继承(正确答案) 多态67、关于构造函数,下列说法错误的是()。 每个类都会默认的无参构造函数 构造函数也可以重载 构造函数是在使用new关键字创建对象时系统自动调用的 在类中添加了一个有参的构造函数后,依然还可以使用无参的构造函数创建对象(正确答案)68、接口是一种引用类型,在接口中可以声明(),但不可以声明
22、公有的域或私有的成员变量 方法、属性、索引器和事件(正确答案) 方法、属性信息、属性 索引器和字段 事件和字段69、下列描述错误的是() 类不可以多重继承而接口可以 抽象类自身可以定义成员而接口不可以 抽象类和接口都不能被实例化 一个类可以有多个基类和多个基接口(正确答案)70、下列关于虚方法的说法,错误的有 使用virtual关键字修饰虚方法 父类中的虚方法可以被其子类重写 虚方法必须有自己的方法体 虚方法一般定义在sealed修饰的类中(正确答案)71、关于对象的使用,下列说法正确的是( ) 定义后就可以使用 定义并且使用new关键字创建对象后才能使用(正确答案) 定义并且使用new关键字
23、创建对象,再给所有字段赋值后才能使用 定义后可以调用方法,使用new关键字创建对象后才能调用字段72、下列关于继承的说法,错误的是( ) 在C#中,object类是所有类的基类 子类不能直接访问父类的私有成员 在创建子类对象时会自动调用父类的构造函数 调用类中成员时使用base关键字,调用父类成员时使用this关键字(正确答案)73、在C#中,可以通过()来实现方法重载。 方法名相同,不同的参数个数(正确答案) 方法名相同,不同的参数名称 不同的方法名称,相同的参数个数 相同的方法名,相同的参数个数,不同的返回值74、C#中的属性主要体现了面向对象编程的()特性。 封装(正确答案) 继承 多态
24、 抽象75、下列关于属性中的访问器的说法,正确的是()。 属性中可以不包含任何访问器 属性中可以只有get访问器,也可以只有set访问器(正确答案) 属性中只能有get访问器或set访问器,不能同时包含 属性中必须包含get访问器和set访问器76、在C#中,下述代码的运行结果是() Hashtable ht=new HashTable(); ht.Add(3,三星); ht.Add(2,小米); ht.Add(1,苹果);Console.WriteLine(ht3); 程序运行错误 小米 苹果 三星(正确答案)77、下列关于sealed关键字的说法正确的是 sealed修饰的类中可以有虚方法
25、 sealed修饰的方法可以被重写 sealed修饰方法时只能与override结合使用(正确答案) sealed修饰的类可以被继承78、关于构造函数,下列说法错误的是()。 每个类都会默认的无参构造函数 构造函数也可以重载 构造函数是在使用new关键字创建对象时系统自动调用的 在类中添加了一个有参的构造函数后,依然还可以使用无参的构造函数创建对象(正确答案)79、使用()关键字修饰的类不允许被继承 sealed(正确答案) override delegate private80、类的行为使用( )来描述。 字段 属性 方法(正确答案) 事件81、“访问范围限定于此程序或那些由它所属的类派生的
26、类型”是对以下哪个成员可访问性含义的正确描述? public protected(正确答案) internal protected internal82、“访问范围限定于此程序或那些由它所属的类派生的类型”是对以下哪个成员可访问性含义的正确描述? public protected(正确答案) internal protected internal83、下列关于泛型集合List的说法错误的是() List在存储数据时,必须对数据进行类型转换(正确答案) List可以通过索引来访问集合中的元素 List集合可以通过Sort()d对元素进行排序 List可以通过索引来删除元素84、在A类中定义pro
27、tected的属性Name,下列说法正确的( ) 定义B类继承A类,则B类也具有Name属性(正确答案) 在B类中创建A类对象,可以通过“对象.成员访问Name 无论B类是否继承A类,Name只能在A类中使用 Name可以在任何地方使用85、关于序列化和反序列化,下列描述错误的是 序列化是将对象的状态存储到特定存储介质中的过程 使用Serialize()方法实现序列化过程 标识一个类可以序列化要在类前加上Serializable特性 如果一个类可序列化,则其子类和包含的各个成员对象也必须可序列化(正确答案)86、弹出“打开文件对话框”,使用以下哪个方法 Show() ShowDialog()(
28、正确答案) Open() OpenDialog()87、在C#中 ,创建新文件使用的方法是 Copy Create(正确答案) CreateNew Move88、泛型是从C#( )版开始添加的新功能 1.1 2.0(正确答案) 2.5 3.089、接口是一种引用类型,在接口中可以声明(),但不可以声明公有的域或私有的成员变量 方法、属性、索引器和事件(正确答案) 方法、属性信息、属性 索引器和字段 事件和字段90、下面关于继承,说法正确的是 :( )【选两项】 在C#中,静态类不能够被继承(正确答案)密封类可以是抽象类的 密封类可以实例化,而静态类不能实例化(正确答案)Objcet类是所有类的
29、直接父类91、在A类中定义protected的属性Name,下列说法正确的是() 定义B类继承A类,则B类也具有Name属性(正确答案) 在B类中创建A类对象,可以通过“对象.成员”访问Name(正确答案)无论B类是否继承A类,Name只能在A类中使用Name可以再任何地方使用92、下列关于抽象方法的说法,正确的有() 抽象方法必须有方法体 抽象方法没有方法体(正确答案)使用virtual关键字声明抽象方法 使用abstract关键字声明抽象方法(正确答案)93、FileMode中的()要求文件必须存在,否则会引发异常 Create Open(正确答案) Truncate(正确答案)Creat
30、eNew94、下面关于抽象类的说法正确的是 :( )(选择二项) 抽象类可以被实例化 含有抽象方法的类一定是抽象类(正确答案)抽象类可以是静态类和密封类 抽象类中的抽象方法可以在其它类中重写(正确答案)95、关于base关键字,下列使用方法错误的有() 在子类中不能使用base关键字访问父类的private字段 在子类中不能使用base关键字调用父类的protected方法(正确答案) 在子类中不能使用base关键字访问父类的public属性(正确答案) 在子类中不能使用base关键字调用父类的构造函数(正确答案)96、关于base关键字,下列使用方法错误的有( ) 在子类中不能使用base关
31、键字访问父类的private字段 在子类中不能使用base关键字调用父类的protected方法(正确答案) 在子类中不能使用base关键字访问父类的public属性(正确答案) 在子类中不能使用base关键字调用父类的构造函数(正确答案)97、在C#中,关于构造函数,下列说法正确的是()。 构造函数只能返回void类型 构造函数的名称必须与类名相同(正确答案) C#的类中默认包含一个无参的构造函数(正确答案)一个类只能有一个构造函数98、关于泛型集合下列说法正确的是 泛型集合可以约束存储对象有的类型,在访问集合中的元素时无须进行类型转换。(正确答案) List与ArrayList的使用方式完
32、全一样,唯一的区别在于定义时必须指定集合中存储数据的类型,增强了类型的安全性(正确答案) 泛型集合Dictionary与Hashtable的使用方式完全一样,唯一的区别在于定义时必须指定Key和Value的数据类型(正确答案) 需要引入命名空间System.Collections.Generic(正确答案)99、关于List的说法正确的是( ) Capacity()用于获取或设置List可包含的元素个数 Count属性获取List实际包含的元素个数(正确答案) Capacity属性用于获取或设置List可包含的元素个数(正确答案) Insert()可以将元素添加到List的指定索引处(正确答案
33、)100、下列关于抽象方法的说法,正确的有() 抽象方法必须有方法体 抽象方法没有方法体(正确答案)使用virtual关键字声明抽象方法 使用abstract关键字声明抽象方法(正确答案)101、Hashtable集合删除数据的方法有 Remove(object key)(正确答案)Delete(int index)RemoveAt(object key) Clear()(正确答案)102、在开发C#程序过程中,会大量地使用类和对象,其中使用方法正确的有( ) 先创建类再创建对象(正确答案)先创建对象再创建类通过类调用字段和方法(字段和方法都是非静态的) 通过对象调用字段和方法(字段和方法都是
34、非静态的)(正确答案)103、使用泛型类型的优势包括哪些 极大限度重用代码(正确答案) 保护类型的安全(正确答案) 提高程序性能(正确答案) 降低了代码运行时的风险(正确答案)104、以下叙述正确的是() 接口中可以有虚方法 一个类可以实现多个接口(正确答案) 接口不能被实例化(正确答案)接口中可以包含已实现的方法105、在C#程序中,关于ArrayList和Hashtable的说法错误的有 从ArrayList和Hashtable获取集合中某个元素时,都需要类型转换 ArrayList和Hashtable都可以通过Sort()方法进行排序(正确答案) ArrayList和Hashtable都
35、可以通过索引来访问集合元素(正确答案)通过索引或对象可以删除ArrayList集合中的元素,通过键可以删除Hashtable集合中的元素106、下列关于抽象方法的说法,正确的有() 抽象方法必须有方法体 抽象方法没有方法体(正确答案)使用virtual关键字声明抽象方法 使用abstract关键字声明抽象方法(正确答案)107、在c#中,下列关于接口的说法,正确的有( ) 接口是一组规范和标准(正确答案) 接口可以约束类的行为(正确答案)接口只能含有未实现的方法接口中的方法可以包含具体的实现108、在C#中,关于构造函数,下列说法正确的是()。 构造函数只能返回void类型 构造函数的名称必须与类名相同(正确答案) C#的类中默认包含一个无参的构造函数(正确答案)一个类只能有一个构造函数109、下列关于抽象方法的说法,正确的有() 抽象方法必须有方法体 抽象方法没有方法体(正确答案)使用virtual关键字声明抽象方法 使用abstract关键字声明抽象方法(正确答案)