C#面向对象编程习题Word文件下载.docx

上传人:b****3 文档编号:7233583 上传时间:2023-05-08 格式:DOCX 页数:25 大小:21.88KB
下载 相关 举报
C#面向对象编程习题Word文件下载.docx_第1页
第1页 / 共25页
C#面向对象编程习题Word文件下载.docx_第2页
第2页 / 共25页
C#面向对象编程习题Word文件下载.docx_第3页
第3页 / 共25页
C#面向对象编程习题Word文件下载.docx_第4页
第4页 / 共25页
C#面向对象编程习题Word文件下载.docx_第5页
第5页 / 共25页
C#面向对象编程习题Word文件下载.docx_第6页
第6页 / 共25页
C#面向对象编程习题Word文件下载.docx_第7页
第7页 / 共25页
C#面向对象编程习题Word文件下载.docx_第8页
第8页 / 共25页
C#面向对象编程习题Word文件下载.docx_第9页
第9页 / 共25页
C#面向对象编程习题Word文件下载.docx_第10页
第10页 / 共25页
C#面向对象编程习题Word文件下载.docx_第11页
第11页 / 共25页
C#面向对象编程习题Word文件下载.docx_第12页
第12页 / 共25页
C#面向对象编程习题Word文件下载.docx_第13页
第13页 / 共25页
C#面向对象编程习题Word文件下载.docx_第14页
第14页 / 共25页
C#面向对象编程习题Word文件下载.docx_第15页
第15页 / 共25页
C#面向对象编程习题Word文件下载.docx_第16页
第16页 / 共25页
C#面向对象编程习题Word文件下载.docx_第17页
第17页 / 共25页
C#面向对象编程习题Word文件下载.docx_第18页
第18页 / 共25页
C#面向对象编程习题Word文件下载.docx_第19页
第19页 / 共25页
C#面向对象编程习题Word文件下载.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C#面向对象编程习题Word文件下载.docx

《C#面向对象编程习题Word文件下载.docx》由会员分享,可在线阅读,更多相关《C#面向对象编程习题Word文件下载.docx(25页珍藏版)》请在冰点文库上搜索。

C#面向对象编程习题Word文件下载.docx

8.下列代码输出为():

classFather{

publicvoidF(){("

"

);

publicvirtualvoidG(){("

}

classSon:

Father{

newpublicvoidF(){("

publicoverridevoidG(){("

classoverride_new{

staticvoidMain(){

Sonb=newSon();

Fathera=b;

();

A.

B.

C.

D.

9.写出程序的输出结果:

publicclassA

{

publicvirtualvoidFun1(inti)

{

(i);

}

publicvoidFun2(Aa)

(1);

Fun1(5);

publicclassB:

A{

publicoverridevoidFun1(inti)

(i+1);

publicstaticvoidMain(){

Bb=newB();

Aa=newA();

(b);

(a);

10.在C#中,允许多接口继承,从多个接口时,使用“:

”后跟继承的接口的名字,多个接口名称之间使用()符号进行分割。

a)”.’

b)”->

c)”,”

d)”:

:

11.在.NET中,关于组件多态性的陈述,下面除了()都是正确的。

a可以通过接口实现多态性

b可以通过抽象类实现多态性

c多态性不只是重载或重写,而是智能重写

d在多态性中,需要调用哪个方法的决定是在设计时做出的

12.多态性允许对类的某个方法进行调用而无需考虑该方法所提供的特定实现,例如,可能有名为了Road的类,它调用另一个类的Drive方法,另一个类可能是SportsCar或SmallCar,

但二者都提供Drive方法,虽然Drive方法的实现因类的不同而异,但Road类仍可以调用它,并且它提供的结果可由Road类使用和解释。

在.NET中,可以由以下的方式来实现组件中多态性,除了()。

a)通过接口实现多态性

b)通过多个不同的子类从单个基类继承实现多态

c)通过抽象类实现多态性

d)通过受保护的成员函数来实现多态性

13.阅读以下的C#代码:

classA

publicabstractvoidprintStr(stringstr)

(str);

classB:

A

publicoverridevoidprintStr(stringstr)

str=str+"

(重写的方法)"

;

classDefaultInitializerApp

publicstaticvoidMain()

Aa=b;

("

打印"

();

运行程序后将在控制台窗口打印()。

a.打印重写的方法

b.打印打印重写的方法

c.打印

d.程序有误,不能运行

14.在C#的语法中,()关键字可以实现在派生类中对基类的虚函数进行重载(选一项)

a>

override

b>

new

c>

static

d>

virtual

15.对下面的C#程序:

usingSystem;

publicinterfaceIAccount

{

voidPosInterest();

voidDeductFees(intfeeSchedule);

classBusinessAccount:

IAccount

publicstaticvoidMain()

BusinessAccountB=newBusinessAccount();

;

();

publicvoid()

{

A=A+1;

publicvoid(intfeeSchedule)

A=A+feeSchedule;

以下的说法正确的是()(选择一项)

a)程序将出现编译错误,指示不能在实现接口BusinessAccount的类中定义成员A.

b)程序将出现编译错误,指示Public关键字对接口项无效

c)程序编译正常,但是出现运行时错误,指示变量A没有初始化

d)程序将正常运行,输出为0

16.可以使用()关键字重写方法。

A.Override

B.new

17.()可以看作类的模具。

18.请问,此程序输出结果是()

abstractclassBaseClass{

publicvirtualvoidMethodA(){("

BaseClass"

publicvirtualvoidMethodB(){}

classClass1:

BaseClass{

publicvoidMethodA(){("

Class1"

publicoverridevoidMethodB(){}

classClass2:

Class1{

newpublicvoidMethodB(){}

classMainClass{

publicstaticvoidMain(string[]args){Class2o=newClass2();

();

A.BaseClass

B.BassClassClass1

C.Class1

D.Class1BassClass

19.请问,此程序输出结果是()

publicabstractclassA{publicA(){('

A'

}

publicvirtualvoidFun(){("

()"

}}

publicclassB:

A{publicB(){('

B'

publicnewvoidFun(){("

publicstaticvoidMain(){Aa=newB();

A.AB()

   B.AB()

   C.BA()

   D.BA()

20.以下叙述正确的是():

A.接口中可以有虚方法。

 

B.一个类可以实现多个接口。

C.接口不能被实例化。

D.接口中可以包含已实现的方法。

21.以下关于C#代码的说法正确的是()。

PublicabstractAnimal

{

PublicabstractvoidEat();

PublicvoidSleep()

a.该段代码正确

b.代码错误,因为类中存在非抽象方法

c.代码错误,因为类中的方法没有实现

d.通过代码“Animalan=newAnimal();

”可以创建一个Animal对象

22.在c#中,关于继承和接口,以下说法正确的是()(单选)

a.c#允许许多接口实现,也允许多重继承

#允许多接口实现,但不允许多重继承

#不允许多接口实现,但允许多重继承

#不允许多重接口实现,也不允许多重继承

23)在C#中,已知下列代码的运行结果是“老虎吃动物”,请问在空白处1和空白处2

分别应该填写的代码是()

PublicclassAnimal

Public空白处1voidEat()

(“我要吃”);

PublicclassTiger:

Animal

Public空白处2voidEat()

(“老虎吃动物”);

PubliccalssTest

StaticvoidMain()

Animalan=newTiger();

a)Virtual,new

b)override,virtual

c)virtual,override

d)new,virtual

24)在C#中,下列关于抽象类和接口的说法,正确的是)()(选择一项)

a)在抽象类中,所以的方法都是抽象方法

b)继承自抽象类的子类必须实现起父类(抽象类)中的所以抽象方法

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

d)一个类可以从多个接口继承,也可以从多个抽象类继承

25)关于以下C#代码的说法正确的是()

PublicabstractclassAnimal{

Animal{

PublicoverridevoidEat(){

(“老虎吃动物”);

PublicclassTigress:

Tiger{

Staticvoidmain(){

Tigresstiger=newTigress();

a)代码正确,但没有输出

b)代码正确,并且输出为”老虎吃动物”;

c)代码错误,因为Tigress类没有实现抽象基类Animal中的抽象方法

d)代码错误,因为抽象基类Animal的Eat方法没有实现

26)在c#中某程序员定义了一个IDataBase接口,以及实现该接口的类CDataBase,下列关于该段代码说法正确的是()(选择一项)

publicinterfaceIDataBase

voidOpenTable(stringtableName);

voidUpDataTable(stringtableName);

publicclassCDataBase:

IDataBase

publicvoidOpenTable(stringtableName)

打开数据表"

publicvoidUpdataTable(stringtableName)

更新数据表"

staticvoidMain()

CDataBasedb=newCDataBase();

Customers"

a)该段代码错误,因为在定义接口时,接口中的方法没有提供实现

b)该段代码错误,因为接口中声明的方法不是公有的,应此在CDataBase类中不能访问接口中的方法

c)该段代码正确,同时由于客户没有调用UpdataTable方法,可以把CDataTable类中的UpdataTable去掉,代码仍然正确

d)该段代码正确,但是如果在IDataBase接口中声明一个方法voidExecute(stringsql);

则必须在CDataBase中实现该方法

#中下列代码运行结果是()(选择一项)

publicclassStudent{

publicvirtualvoidExam(){

学生都要考试"

publicclassUndergraduate:

Student{

publicnewvoidExam(){

大学生有选择考试科目的权利"

publicclassTest{

staticvoidMain(){

Studentstu=newUndergraduate();

a)学生都要考试

b)大学生有选择考试科目的权利

c)大学生都要考试

大学生有选择考试科目的权利

d)学生都要考试

学生都要考试

28)c#中下列代码的运行结果是()(选择一项)

structStudent{

publicintage;

publicstringname;

publicStudent(intage,stringname){

=age;

=name;

staticvoidMian(){

Studentstu1=newStudent(18,"

小方"

Studentstu2=newStudent(24,"

小刚"

stu2=stu1;

=30;

="

小燕"

a)18小方

b)18小燕

c)30小燕

d)30小方

29)在C#中,下列()关键字用于重写基类的虚拟方法。

b)new

c)base

d)virtual

委托和事件

C#面向对象编程-委托和事件 

1.阅读以下C#代码

Namespace 

tevent

public 

delegate 

void 

notify5();

class 

eventTest 

public 

Raise5(int 

I) 

 

if(I%3==1) 

Got5();

event 

notify5 

Got5;

Handlers 

static 

Method1() 

("

时间处理完成"

class10 

static 

Main(String[] 

args) 

eObj=new 

eventTest();

+=new 

notify5;

for(int 

cnt=0;

cnt<

5;

cnt++) 

int 

y=cnt*2+1;

(y);

代码允许的结果为()。

A)控制台窗口不能出任何信息。

B)在控制台窗口输出“时间处理完成”1次 

C)在控制台窗口输出“时间处理完成”2次 

D)在控制台窗口输出“时间处理完成”5次

2.声明一个委托public 

myCallBack(int 

x);

则用该委托产生的回调方法的原型应该是() 

A. 

x) 

B. 

receive(int 

num)

C. 

string 

D.不确定的

#中,关于事件的定义正确的是()。

a)private 

OnClick();

b)private 

OnClick;

c)public 

Click();

Click 

d)public 

OnClick

4. 

在C#中,下列代码的运行结果是(). 

Public 

BuyTicketDelegate(string 

num);

Student 

BuyTicketDelegate 

btEvent;

Student(string 

num) 

btEvent+= 

new 

BuyTicketDelegate;

ShowNum(string 

btEvent(num);

Private 

BuyTicket(string 

(“我要买”+num+”次车票”);

Static 

Main() 

(“创建学生对象”);

stu 

Student(“TI”);

(“创建完毕”);

(“TI”);

a) 

创建学生对象 

创建完毕 

b) 

我要买TI次车票 

创建完毕

c) 

d) 

C#面向对象编程-封装

1.C#语言使用()来引入名称空间。

a)Import

b)Using

c)Include

d)Lib

2.在.NET中,以下关于命名空间的描述,正确的是().(选择一项)

a)命名空间不可以进行嵌套

b)在一个.cs文件中,只能存在一个命名空间

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

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

3.在C#类中()选一项

a)允许有多个相同名称的构造函数

b)允许有多个不同名称的构造函数

c)至少要有一个构造函数

d)只能有一个构造函数

4.在C#中,可以直接在名称空间内声明如下类型,除了()

A)数组

B)接口

C)结构

D)委托

5.C#程序中的类myClass中的成员变量var1如下:

publicclassmyClass{…privateintvar1;

则可以访问var1的有()。

a)myClass中包含的类

b)myClass的继承类

c)myClass的父类

d)和myClass在同一命名空间下的类

6.下列关于类方法的声明,正确的是()(选择两项)

a)方法定义类所许可的行动

b)从一个类创建的所有对象可以使用同一组属性和方法

c)每个方法应该有一个参数

d)如果在不同类中定义了类似的操作,刚他们的行为不应该是类似的

7.析构函数的语法是()

semester(){

B.错

8.C#类中的构造函数的特点是()选一项

a)一个类中,只能有一个构造函数

b)构造函数的名称与类名一样

c)构造函数在对象销毁时自动执行

d)要求构造函数至少有两个参数

9.针对以下C#代码

UsingSystem;

PublicclassTeacher

PublicstringteacherName;

PublicstringteacherSubject;

PublicTeacher(Stringname){

=name;

PublicTeacher(Stringsubject){

=subject;

PublicTeacher(Stringname,Stringsubject){

以下说法正确的是()(选择一项)

A)上述代码编译无错误,类中存在三个构造函数

B)上述代码编译有错误,因为类中只能有一个构造函数

C)上述代码编译有错误,因为类中有两个具有相同参数类型的构造函数

D)上述代码编译有错误,以为类中没有不带参数的构造函数

10.阅读以下的C#代码:

Namespacet3_6{

NamespaceFord{

PublicclassMustang{

PublicvoidprintMust(){

(“InnamespaceFord”);

}

classClass1{

staticvoidMain(string[]args){

Mustangmust1=newMustang();

代码运行结果为(D)。

a.什么都不显示

b.在控制台打印”InnamespaceFord”,用户输入任何数据退出

c.在控制台打印”InnamespaceFord”,立即退出

d.提示代码有错误,不能执行

11.以下的C#代码段,使用了using别名指令:

UsingT

(1)Main关键字是类型和类型成员的访问修饰符。

(D)内部成员只有在同一程序集中的文件内才是可访问的。

A.public

14.下列哪些说法是错误的()

A.抽象类可以实例化。

B.不可以改变常量的值.

C.可以使用this引用静态方法或属性访问器.

D

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2