C#OOP测试题
共50题,每题2分,总分100分
1.C#中的属性体现了面向对象编程的( ) 特性
A.封装
B.继承
C.多态
D.抽象
2.在c#中,可以通过( )实现方法重载
A.方法名相同,不同的参数个数
B.方法名相同,不同的参数名称
C.不同的方法名称,相同的参数个数
D.相同的方法名称和参数个数,不同的返回值
3.在C#中,ArrayList对象位于( )命名空间
A.System.Array
B.System.IO
C.System.Collection
D.System.Runtime
4.在C#中,下述代码运行的结果是()
Hashtable ht =new Hashtable()
ht.Add(3,”三星”);
ht.Add(2,”小米”);
ht.Add(1,”苹果”);
Console.WriteLine(ht[3]);
A, 三星B, 小米C,苹果D,程序运行错误
5.在C#中程序中,关于ArrayList和Hashtable说法错误的有( ) (选择两项)
A.从ArrayList和Hashtable获取集合中某个元素时,都需要进行类型转换
B.ArrayList和Hashtable都可以通过学习Sort方法进行排序
C.ArrayList和Hashtable都可以通过学习索引来访问集合元素
D.通过索引或对象可以删除ArrayList集合中的元素,通过键可以删除Hashtable集合中
的元素
6.下列泛型集合的创建正确是( )
A.List<int > list =new List<int>;
B.List<int> list =new List();
C.List list =new List<int>;
D.List<int> list =new List<int>();
7.定义泛型集合对象users ,代码如下:
Dictionary<string, User> users =new Dictionary<string,User>();
下列集合操作的代码片段正确的是( )
A.User u =users[“Jimmy”];
B.users.Add(“Jimmy”);
C.users.Remove(4);
D.Foreach(User item in users.Keys){}
8.在A类中定义protected的属性Name,下列说法正确的是( )
A.B类继承A类,则B类也具有Name属性
B.在B类中创建A类对象,可以通过”对象.成员”访问Name
C.无论B类是否继承A类,Name只能在A类中使用
D.Name可以在任何地方使用
9.下列关于继承的说法,错误的是( )
A.在C#中,object类是所有类的基类
B.子类不能直接访问父类的私有成员
C.在创建子类对象时会自动调用父类的构造方法
D.调用类中成员时使用base关键字,调用父类成员时使用this关键字
10.在C#中,使用()关键字修饰的方法称为虚方法
A . abstruct    B. new    C. base    D. virtual
11.下列代码运行的结果是( )
class One{ public virtual void Show() { Console.Write(“One”) ; } }
class Two: One{ public override Show() { Console.Write(“Two”) ; } } One obj = new Two();
obj.Show();
A.One
B. One Two
C. Two
D. Two One
12.下列关于抽象方法的说法,正确的有()[选择两项]
A.抽象方法必须有方法体
B.抽象方法没有方法体
C.使用virtual关键字声明抽象方法
D.使用abstract关键字声明抽象方法
13.下列关于序列化和反序列化的描述,错误的是()。
A. 序列化是将对象的状态存储到特定存储介质中的过程
B. Serialize()和Deserialize()方法可以分别用来实现序列化和反序列化过程
C. 如果一个类可序列化,则它的子类和包含的各成员对象也一定可序列化
D. 标识一个类可以序列化要使用[Serializable]
14.在C#语言开发的程序中,下列关于文件处理描述错误的是()。
A. StreamReader 读取器读取文件流中一行数据的方法为ReadLine()
B. StreamWriter 写入器可以使用方法WriteToEnd()写入数据
C. StreamWriter 写入器创建方法为new StreamWriter(FileStream myfs)
D. StreamReader读取器创建方法为new StreamReader ((FileStream myfs)
15.在C#编程中,访问修饰符控制程序对类访问,如果不写访问修饰符,类的默认访问类型
是()。
A. public
B. private
C. internal
D. Protected
16.下列关于C#中的虚方法visual,说法正确的是()。
A. 使用static修饰
B. 可以没有方法体
C. 可以被子类重写
D. 使用abstract修饰
17.下列关于构造函数的说法,错误的是()。
A. 构造函数的函数名和类名相同
B. 构造函数可以重载
C. 构造函数可以带有参数
D. 可以指定构造函数的返回值
18.使用()关键字修饰类,可避免类被继承。
A. delegate
B. abstract
C. sealed
D. enum
19.在C#中,下列关于抽象类和接口的说法,正确的是()。
A. 在抽象类中,所有的方法都是抽象方法
B. 继承自抽象类的非抽象子类必须实现其父类(抽象类)中的所有抽象方法
C. 在接口中,可以有方法实现,抽象类中不能有方法实现
D. 一个类可以从多个接口继承,也可以从多个抽象类继承
20.下列关于虚方法和抽象方法的描述,错误的是()。
A. 虚方法必须有方法体,可以被子类重写
B. 抽象方法不允许有方法体,且必须被非抽象子类重写
C. 抽象方法必须在抽象类中,而虚方法可以在所有类中
D. 在子类中重写抽象方法或虚方法,都需要用override关键字
21.在C#中,()关键字用于子类调用父类的构造函数。
A. new
B. this
C. base
D. Is
22.C#中的多态不能通过()实现。
A. 接口
B. 抽象类
C. 虚方法
D. 密封类
23.C#中的方法重载主要包括参数不同类型的重载和参数数量不同的重载,下列选项中的两个方法不属于重载方法的是()。
A. public int Hello(int int1){//省略方法体}
public int Hello(String str1){//省略方法体}
B. public int Hello(){//省略方法体}
public String Hello(){//省略方法体}
C. public int Hello(){//省略方法体}
public int Hello (String str1){//省略方法体}
D. public String Hello(String str1, String str2){//省略方法体}
public String Hello(String str){//省略方法体}
24.在C#编程中,访问修饰符控制程序对类中成员访问,如果不写访问修饰符,类成员的默认访问类型是()。
A. public
B. private
C. internal
D. protected
25.在使用C#开发的程序中,一个类可以继承____类,实现____接口,横线处应填()。
A. 1个,1个
B. 多个,多个
C. 1个,多个
D. 多个,1个
26.在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. A
B. B
C. BA
D. AB
27.在C#代码中,复制文件使用File类的()方法。
writeline方法属于类
A. Exists()
B. Move()
C. Delete()
D. Copy()
28.在C#中,下列使用键/值方式对存储数据的是()。
A. ArrayList
B. Array
C. 字符型数组
D. HashTable
29.分析下述C#片段中的属性,该属性是()属性。
private string name;
public string Name
{
get{return name;}
}
A. 可读可写
B. 只写
C. 只读
D. 静态
30.在C#中,已知存在一个接口ICust,关于该接口的实现,下述代码正确的是()。
interface ICust
{
int AddCust();
void ModiyCust();
}
A. class CustService:ICust
{
public int AddCust()
{
//……
}
}
B. class CustService:ICust
{
public int AddCust ( )
{
//……..
}
public void ModiyCust ()
{
//…….
}
}
C. class CustService:ICust
{
public override int AddCust ( )
{
//……
}
public override void ModiyCust()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。