收藏 分销(赏)

C面向对象编程习题.doc

上传人:二*** 文档编号:4479748 上传时间:2024-09-24 格式:DOC 页数:17 大小:74KB
下载 相关 举报
C面向对象编程习题.doc_第1页
第1页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、C#面向对象编程-多态1C#中的方法重写使用关键字()。a) overrideb) overloadc) staticd) inherit2以下的C#代码,试图用来定义一个接口:public interface IFileint A;int delFile()A = 3;void disFile();关于以上的代码,以下描述错误的是()。(选择一项)a) 以上的代码中存在的错误包括:不能在接口中定义变量,所以int A代码行将出现错误b) 以上的代码中存在的错误包括:接口方法delFile是不允许实现的,所以不能编写具体的实现函数c) 代码void disFile();定义无错误,接口可以没有

2、返回值d) 代码void disFile();应该编写为void disFile();3在C#中,接口与抽象基类的区别在于()。a) 抽象基类可以包含非抽象方法,而接口只能包含抽象方法b) 抽象基类可以被实例化,而接口不能被实例化c) 抽象基类不能被实例化,而接口可以被实例化d) 抽象基类就是接口,它们之间无差别4在开发某图书馆的图书信息管理系统的过程中,开始为教材类图书建立一个TextBook类;现在又增加了杂志类图书,于是需要改变设计,则下面最好的设计应该是()。a) 建立一个新的杂志类Journal。b) 建立一个新的杂志类Journal,并继承TextBoook类。c) 建立一个基类B

3、ook和一个新的杂志类Journal,并让Journal类和TextBoook类都继承于Book类。d) 不建立任何类,把杂志图书的某些特殊属性加到TextBoook类中。5可以使用()关键字重写方法。a) Overrideb) New6()可以看作类的模具。A. 抽象类B. 接口C. 虚方法7以下叙述正确的是:() A接口中可以有虚方法。 B.一个类可以实现多个接口。 C接口不能被实例化。 D.接口中可以包含已实现的方法。8.下列代码输出为( ):class Father public void F() Console.WriteLine(A.F); public virtual void

4、G() Console.WriteLine(A.G); class Son: Father new public void F() Console.WriteLine(B.F); public override void G() Console.WriteLine(B.G); class override_new static void Main() Son b = new Son(); Father a = b; a.F(); b.F(); a.G(); b.G(); A. A.FB.F A.GB.GB. A.FB.FB.GB.GC. A.F A.FB.GB.GD. B.FB.FB.GB.G

5、9写出程序的输出结果:public class Apublic virtual void Fun1(int i)Console.WriteLine(i);public void Fun2(A a)a.Fun1(1);Fun1(5);public class B:Apublic override void Fun1(int i)base.Fun1(i+1);public static void Main()B b=new B();A a=new A();a.Fun2(b);b.Fun2(a);10在C中,允许多接口继承,从多个接口时,使用“:”后跟继承的接口的名字,多个接口名称之间使用()符号进

6、行分割。(选择一项) a)”.b)”-”c)”,”d)”:”11在.NET中,关于组件多态性的陈述,下面除了( )都是正确的。(选择一项)a可以通过接口实现多态性b可以通过抽象类实现多态性c多态性不只是重载或重写,而是智能重写d在多态性中,需要调用哪个方法的决定是在设计时做出的12多态性允许对类的某个方法进行调用而无需考虑该方法所提供的特定实现,例如,可能有名为了Road的类,它调用另一个类的Drive方法,另一个类可能是SportsCar 或SmallCar,但二者都提供Drive方法,虽然Drive 方法的实现因类的不同而异,但Road 类仍可以调用它,并且它提供的结果可由Road 类使用

7、和解释。在 .NET 中,可以由以下的方式来实现组件中多态性,除了()。(选择一项)a) 通过接口实现多态性b) 通过多个不同的子类从单个基类继承实现多态c) 通过抽象类实现多态性d) 通过受保护的成员函数来实现多态性13阅读以下的C#代码:class Apublic abstract void printStr(string str)Console.WriteLine(str);class B:Apublic override void printStr(string str)str=str+(重写的方法);Console.WriteLine(str);class DefaultInitia

8、lizerApppublic static void Main()B b=new B();A a=b;a.printStr(打印);b.printStr(打印);Console.ReadLine();运行程序后将在控制台窗口打印( )。(选择一项)a. 打印 重写的方法b. 打印 打印 重写的方法c. 打印d. 程序有误,不能运行14在C#的语法中,()关键字可以实现在派生类中对基类的虚函数进行重载(选一项)a overrideb newc staticd virtual15对下面的C # 程序:using System;publicinterface IAccountvoid PosInte

9、rest();void DeductFees(int feeSchedule); class BusinessAccount : IAccountint A;publicstaticvoidMain()BusinessAccount B = new BusinessAccount();Console.WriteLine(B.A);Console.ReadLine();publicvoid IAccount.PostInterest()A = A+1;publicvoid IAccount.DeductFees(int feeSchedule)A = A + feeSchedule;以下的说法正

10、确的是 ( )(选择一项)a)程序将出现编译错误,指示不能在实现接口BusinessAccount的类中定义成员 A.b)程序将出现编译错误,指示Public关键字对接口项无效c) 程序编译正常,但是出现运行时错误,指示变量A没有初始化d)程序将正常运行,输出为016.可以使用()关键字重写方法。A. OverrideB. new17.()可以看作类的模具。A. 抽象类B. 接口C. 虚方法18.请问,此程序输出结果是()abstract class BaseClasspublic virtual void MethodA()Console.WriteLine(BaseClass);publi

11、c virtual void MethodB()class Class1: BaseClasspublic void MethodA()Console.WriteLine(Class1);public override void MethodB()class Class2: Class1new public void MethodB()class MainClasspublic static void Main(string args)Class2 o = new Class2();o.MethodA(); A. BaseClassB. BassClass Class1C. Class1D.

12、Class1 BassClass19.请问,此程序输出结果是()public abstract class A public A() Console.WriteLine(A); public virtual void Fun() Console.WriteLine(A.Fun(); public class B: A public B() Console.WriteLine(B); public new void Fun() Console.WriteLine(B.Fun(); public static void Main() A a = new B();a.Fun(); A. A B A.

13、Fun() B. A B B.Fun()C. B A A.Fun()D. B A B.Fun()20.以下叙述正确的是():A. 接口中可以有虚方法。B. 一个类可以实现多个接口。C. 接口不能被实例化。D. 接口中可以包含已实现的方法。21以下关于C#代码的说法正确的是()。(选择一项)Public abstract AnimalPublic abstract void Eat();Public void Sleep()a. 该段代码正确b. 代码错误,因为类中存在非抽象方法c. 代码错误,因为类中的方法没有实现d. 通过代码“Animal an = new Animal();”可以创建一个

14、Animal对象22.在c#中,关于继承和接口,以下说法正确的是() (单选)a. c#允许许多接口实现,也允许多重继承b.c#允许多接口实现,但不允许多重继承c.c#不允许多接口实现,但允许多重继承d.c#不允许多重接口实现,也不允许多重继承23) 在C#中,已知下列代码的运行结果是“老虎吃动物”,请问在空白处1和空白处2分别应该填写的代码是()Public class AnimalPublic 空白处1 void Eat()Consone.WriteLine(“我要吃”);Public class Tiger:AnimalPublic 空白处2 void Eat()Consone.Writ

15、eLine(“老虎吃动物”);Public calssTestStatic void Main()Animal an = new Tiger();an.Eat;a) Virtual , newb) override , virtualc) virtual , overrided) new , virtual24) 在C#中,下列关于抽象类和接口的说法,正确的是)()(选择一项)a) 在抽象类中,所以的方法都是抽象方法b) 继承自抽象类的子类必须实现起父类(抽象类)中的所以抽象方法c) 在接口中,可以有方法实现,在抽象类中不能有方法实现d) 一个类可以从多个接口继承,也可以从多个抽象类继承25)

16、 关于以下C#代码的说法正确的是()Public abstract class AnimalPublic abstract void Eat();Public class Tiger:AnimalPublic override void Eat()Console.WriteLine(“老虎吃动物”);Public class Tigress:TigerStatic void main()Tigress tiger=new Tigress();Tiger.Eat();a) 代码正确,但没有输出b) 代码正确,并且输出为”老虎吃动物”;c) 代码错误,因为Tigress类没有实现抽象基类Anima

17、l中的抽象方法d) 代码错误,因为抽象基类Animal的Eat方法没有实现26) 在c#中 某程序员定义了一个IDataBase接口,以与实现该接口的类CDataBase ,下列关于该段代码说法正确的是()(选择一项)publicinterface IDataBasevoid OpenTable(string tableName);void UpDataTable(string tableName);publicclass CDataBase:IDataBasepublicvoid OpenTable(string tableName)Console.WriteLine(打开数据表);publ

18、icvoid UpdataTable(string tableName)Console.WriteLine(更新数据表);staticvoidMain()CDataBase db = new CDataBase();db.OpenTable(Customers);a)该段代码错误,因为在定义接口时,接口中的方法没有提供实现b)该段代码错误,因为接口中声明的方法不是公有的,应此在CDataBase类中不能访问接口中的方法c)该段代码正确,同时由于客户没有调用UpdataTable方法,可以把CDataTable类中的UpdataTable去掉,代码仍然正确d)该段代码正确,但是如果在IDataB

19、ase 接口中声明一个方法void Execute(string sql); 则必须在CDataBase中实现该方法27.C#中 下列代码运行结果是()(选择一项)publicclass Studentpublicvirtualvoid Exam()Console.WriteLine(学生都要考试);publicclass Undergraduate:Studentpublicnewvoid Exam()base.Exam();Console.WriteLine(大学生有选择考试科目的权利);publicclass TeststaticvoidMain()Student stu = new U

20、ndergraduate();stu.Exam();a)学生都要考试b)大学生有选择考试科目的权利c)大学生都要考试 大学生有选择考试科目的权利d)学生都要考试学生都要考试28)c#中 下列代码的运行结果是()(选择一项)struct Studentpublicint age;publicstring name;public Student(int age,string name)this.age=age;this.name=name;publicclass Teststaticvoid Mian()Student stu1= new Student(18,小方);Student stu2=

21、new Student(24,小刚);stu2=stu1;stu1.age=30;stu1.name=小燕;Console.WriteLine(stu2.age);Console.WriteLine(st2.name);a)18 小方b)18 小燕c)30 小燕d)30 小方29)在C#中,下列()关键字用于重写基类的虚拟方法。(选择一项)a)overrideb)newc)based)virtual委托和事件C#面向对象编程-委托和事件1阅读以下C#代码Namespaceteventpublicdelegatevoidnotify5();classeventTestpublicvoidRais

22、e5(intI)if(I%3=1)Got5(); publiceventnotify5Got5;classHandlerspublicstaticvoidMethod1() Console.WriteLine(时间处理完成);classclass10staticvoidMain(Stringargs)eventTesteObj=neweventTest();eObj.Got5+=newnotify5(Handlers.Method1);for(intt=0;t Asb =c =d Instead12C#语言使用()来引入名称空间。a)Importb)Usingc)Included)Lib13.

23、()关键字是类型和类型成员的访问修饰符。(D)内部成员只有在同一程序集中的文件内才是可访问的。A. publicB.privateC.protectedD.internalE.sealed14.下列哪些说法是错误的()A. 抽象类可以实例化。B. 不可以改变常量的值.C. 可以使用 this 引用静态方法或属性访问器.D. readonly 变量只能在构造函数中赋值.E. 一个父类的private 成员可以在子类中直接调用.15.请问,Class1.Count的值是多少?()class Class1public static int Count = 0;static Class1()Count

24、+;public Class1()Count+;public static void Main()Class1 o1 = new Class1();/1Class1 o2 = new Class1();/5Console.WriteLine(Class1.Count);A. 1B. 2C. 3D. 416.下面的代码实现了设计模式中的()模式public class A private A instance;private A() public static A Instance getif ( A = null )A = new A();return instance;A. FactoryB

25、. Abstract FactoryC. SingletonD. Builder17.下面的代码实现了设计模式中的()模式public sealed class SampleSingleton1private int m_Counter = 0;private SampleSingleton1()Console.WriteLine(初始化SampleSingleton1。);public static readonly SampleSingleton1 Singleton = new SampleSingleton1();public void Counter()m_Counter +; A.

26、 原型B. 抽象工厂C. 单例D. 生成器18)在c中,()访问修饰符修饰的变量只能由当前程序集访问。(选择一项)A)publicB)protectedC)indernalD)private19)在C#中,关于以下C#代码的说法正确的是()Namespace MicrosoftClass Student string type=”北大青鸟学员”;Internal string name =”李明”;Public class TestStatic void Main() Student stu=new Student()/1 Console.WriteLine(stu.type);/2 Console.WriteLine(stu.name);/3 a) 代码1错误b) 代码2错误c) 代码3错误d) 代码都正确20)在C#中,下列关于构造函数的特点的说话,正确的是()(选择一项)a) 一个类中,只能有一个构造函数b) 构造函数的名称与类名称一样,并且没有返回类型c) 构造函数在对象销毁时自动执行d) 一个类中至少要有一个构造函数21) 在C#中,关于构造函数的说法正确的是()(选择一项)a) 在一个类中允许有多个构造函数,构造函数在创建对象是调用b) 在一个类中允许有多个不同名称的构造函数c) 一个类至少声明有一个构造函数d) 一个类中只能有一个构造函数17 / 17

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服