C# OOP 内部测试笔试题和答案.docx

上传人:b****5 文档编号:5979300 上传时间:2023-01-02 格式:DOCX 页数:13 大小:19.48KB
下载 相关 举报
C# OOP 内部测试笔试题和答案.docx_第1页
第1页 / 共13页
C# OOP 内部测试笔试题和答案.docx_第2页
第2页 / 共13页
C# OOP 内部测试笔试题和答案.docx_第3页
第3页 / 共13页
C# OOP 内部测试笔试题和答案.docx_第4页
第4页 / 共13页
C# OOP 内部测试笔试题和答案.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

C# OOP 内部测试笔试题和答案.docx

《C# OOP 内部测试笔试题和答案.docx》由会员分享,可在线阅读,更多相关《C# OOP 内部测试笔试题和答案.docx(13页珍藏版)》请在冰豆网上搜索。

C# OOP 内部测试笔试题和答案.docx

C#OOP内部测试笔试题和答案

《深入.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#代码,其最终的运行结果是()。

publicabstractclassClass1

{

publicvoidF()

{

Console.Write("1");

}

abstractpublicvoidABS();

}

publicclassClass2:

Class1

{

publicoverridevoidABS()

{

Console.Write("3");

}

publicClass2()

{

Console.Write("2");

}

staticvoidMain()

{

Class2objB=newClass2();

objB.ABS();

}

}

a)12

b)21

c)13

d)23

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

classTest

{

publicvoidF()

{

Console.Write("A");

}

}

classB:

Test

{

newpublicvoidF()

{

Console.Write("B");

}

staticvoidMain()

{

TestobjA=newB();

objA.F();

}

}

a)A

b)B

c)BA

d)AB

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

a)使用static修饰

b)可以没有方法体

c)可以被子类重写

d)使用abstract修饰

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

abstractclassAnimal

{

public__________voidEat();

}

classDog:

Animal

{

public__________voidEat()

{

Console.WriteLine("DogEating......");

}

staticvoidMain(string[]args)

{

Animalanimal=newDog();

animal.Eat();

}

}

a)abstract,不填

b)abstract,override

c)virtual,不填

d)virtual,override

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

a)将类实例化为对象

b)将对象实例化为类

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

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

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

classTeacher

{

publicTeacher(stringname)

{

this.Name=name;//1

}

privatestringname;

publicstringName

{

set{name=value;}//2

}

staticvoidMain(string[]args)

{

Teacherteacher=newTeacher("Jason");//3

Console.WriteLine(teacher.Name);//4

}

}

a)1

b)2

c)3

d)4

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

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

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

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

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

12)下面关于泛型集合Dictionarydict=newDictionary()的操作代码正确的是()。

a)dict.Remove(dict[0])

b)dict.RemoveAt(0)

c)foreach(Personperindict.Values){}

d)foreach(Personperindict.Keys){}

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

一汽大众<价格>10万

日本丰田<价格>20万

现有如下C#代码片段:

XmlDocumentmyXml=newXmlDocument();

myXml.Load("Company.xml");

XmlNodecompany=myXml.DocumentElement;

foreach(XmlNodenodeincompany.ChildNodes)

{

switch(node.Name)

{

case"一汽大众":

Console.WriteLine("车名:

{0}",node.InnerText);

break;

case"价格":

Console.WriteLine("价格为:

{0}",node.InnerText);

break;

}

}

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

a)车名:

一汽大众

价格为:

10万

b)车名:

一汽大众

价格为:

20万

c)车名:

一汽大众

车名为:

日本丰田

d)价格为:

10万

价格为:

20万

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

Animal,Tiger:

Animal,

已知Animal中成员color的访问修饰符为protected,Cat中成员height的访问修饰符为private,Tiger中成员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#代码片断,运行后输出的结果是()。

ArrayListlist=newArrayList();

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添加、读取元素时不需要拆箱和装箱,这一点和ArrayList相同

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

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

publicstructSize

{

publicintx;

publicinty;

publicSize(intx,inty)

{

this.x=x;

this.y=y;

}

}

classTest

{

staticvoidMain()

{

Sizesize1=newSize(8,10);

Sizesize2=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)internalprotected

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

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

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

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

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

24)关于如下C#的代码,说法正确的是();

publicclassA

{

stringS1;

protectedstringS2;

protectedvoidM1()

{}

}

publicclassB:

A

{

protectedstringS3;

}

a)在A中可以访问S3

b)在B中可以访问S1

c)在B中可以访问S2

d)在M1()中可以访问S3

25)关于如下C#代码的说法中,正确的是()。

publicclassTest//⑴

{

privatestaticintMax=100;//⑵

publicTest(intmax)

{

Max=max;//⑶

}

publicintGetMax()

{

returnMax;//⑷

}

}

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

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

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

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

26)在C#中,下面是方法的重载的是()。

a)publicstringTest(intx,inty){…}和publicstringTest(inta,intb){…}

b)publicstringTest1(intx,inty){…}和publicstringTest2(intx,inty){…}

c)publicstringTest(intx,inty){…}和publicstringTest(inta){…}

d)publicstringTest(intx,inty){…}和publicintTest(intx,inty){…}

27)下面C#代码执行的结果是()。

publicclassA{}

publicclassB:

A

{

staticvoidMain()

{

Aa=newA();

Bb=aasB;

if(b==null)

Console.WriteLine("null");

else

Console.WriteLine(bisA);

}

}

a)null

b)True

c)False

d)出现异常

28)如下C#代码的执行结果是()。

publicclassTest

{

publicinti=1;

publicTest(inti)

{

this.i+=i;

}

staticvoidMain()

{

Testt=newTest

(2);

Console.WriteLine(t.i);

}

}

a)1

b)2

c)3

d)4

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

publicclassA{}

publicclassB:

A{}

Aa=newA();

Bb=newB();

a)表达式aisB的值为true

b)表达式bisA的值为true

c)表达式aasB的值为null

d)表达式basA的值为null

30)在C#中,下面类型中是引用类型的是()。

a)DialogResult枚举

b)System.Int64

c)string

d)StringBuilder

二简答题:

1.请简述泛型集合List中“T”的含义和作用。

并说明List与ArrayList的异同。

2.面向对象的三大特性是什么?

并简述每个原则的基本功能。

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

答案

一、选择题

1、c2、a3、c4、b5、d

6、a7、c8、b9、bc10、d

11、d12、c13、d14、d15、c

16、d17、c18、c19、b20、c

21、a22、d23、c24、c25、d

26、c27、a28、c29、bc30、cd

二简答题

1、要点:

⏹List中的T可以对集合中的元素类型进行约束;

⏹T表明集合中管理的元素类型;

⏹ArrayList与List都使用索引访问元素;

⏹ArrayList与List可以通过索引删除、也可以直接删除对象;

⏹ArrayList与List遍历时直接遍历元素对象;

⏹ArrayList获取元素时需要类型转换,List不需要类型转换;

⏹同一个ArrayList可以保存不同类型的元素,List只能保存T允许的类型。

2、要点:

⏹封装:

保证对象自身数据的完整性、安全性;

⏹继承:

建立类之间的关系,实现代码复用,方便系统的扩展;

⏹多态:

相同的方法调用可实现不同的实现方式。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1