C#面向?qū)ο缶幊塘?xí)題_第1頁
C#面向?qū)ο缶幊塘?xí)題_第2頁
C#面向?qū)ο缶幊塘?xí)題_第3頁
C#面向?qū)ο缶幊塘?xí)題_第4頁
C#面向?qū)ο缶幊塘?xí)題_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上C#面向?qū)ο缶幊?多態(tài)1C#中的方法重寫使用關(guān)鍵字()。a) overrideb) overloadc) staticd) inherit2以下的C#代碼,試圖用來定義一個(gè)接口:public interface IFileint A;int delFile()A = 3;void disFile();關(guān)于以上的代碼,以下描述錯(cuò)誤的是()。(選擇一項(xiàng))a) 以上的代碼中存在的錯(cuò)誤包括:不能在接口中定義變量,所以int A代碼行將出現(xiàn)錯(cuò)誤b) 以上的代碼中存在的錯(cuò)誤包括:接口方法delFile是不允許實(shí)現(xiàn)的,所以不能編寫具體的實(shí)現(xiàn)函數(shù)c) 代碼void disFile()

2、;定義無錯(cuò)誤,接口可以沒有返回值d) 代碼void disFile();應(yīng)該編寫為void disFile();3在C#中,接口與抽象基類的區(qū)別在于()。a) 抽象基類可以包含非抽象方法,而接口只能包含抽象方法b) 抽象基類可以被實(shí)例化,而接口不能被實(shí)例化c) 抽象基類不能被實(shí)例化,而接口可以被實(shí)例化d) 抽象基類就是接口,它們之間無差別4在開發(fā)某圖書館的圖書信息管理系統(tǒng)的過程中,開始為教材類圖書建立一個(gè)TextBook類;現(xiàn)在又增加了雜志類圖書,于是需要改變?cè)O(shè)計(jì),則下面最好的設(shè)計(jì)應(yīng)該是()。a) 建立一個(gè)新的雜志類Journal。b) 建立一個(gè)新的雜志類Journal,并繼承TextBooo

3、k類。c) 建立一個(gè)基類Book和一個(gè)新的雜志類Journal,并讓Journal類和TextBoook類都繼承于Book類。d) 不建立任何類,把雜志圖書的某些特殊屬性加到TextBoook類中。5可以使用()關(guān)鍵字重寫方法。a) Overrideb) New6()可以看作類的模具。A. 抽象類B. 接口C. 虛方法7以下敘述正確的是:() A接口中可以有虛方法。 B.一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。 C接口不能被實(shí)例化。 D.接口中可以包含已實(shí)現(xiàn)的方法。8.下列代碼輸出為( ):class Father public void F() Console.WriteLine("A.F&quo

4、t;); public virtual void 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

5、. A.F B.F A.G B.GB. A.F B.F B.G B.GC. A.F A.F B.G B.GD. B.F B.F B.G B.G9寫出程序的輸出結(jié)果: 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();

6、a.Fun2(b);b.Fun2(a);10在C中,允許多接口繼承,從多個(gè)接口時(shí),使用“:”后跟繼承的接口的名字,多個(gè)接口名稱之間使用()符號(hào)進(jìn)行分割。(選擇一項(xiàng)) a)”.b)”->”c)”,”d)”:”11在.NET中,關(guān)于組件多態(tài)性的陳述,下面除了( )都是正確的。(選擇一項(xiàng))a可以通過接口實(shí)現(xiàn)多態(tài)性b可以通過抽象類實(shí)現(xiàn)多態(tài)性c多態(tài)性不只是重載或重寫,而是智能重寫d在多態(tài)性中,需要調(diào)用哪個(gè)方法的決定是在設(shè)計(jì)時(shí)做出的12多態(tài)性允許對(duì)類的某個(gè)方法進(jìn)行調(diào)用而無需考慮該方法所提供的特定實(shí)現(xiàn),例如,可能有名為了Road的類,它調(diào)用另一個(gè)類的Drive方法,另一個(gè)類可能是SportsCar 或

7、SmallCar,但二者都提供Drive方法,雖然Drive 方法的實(shí)現(xiàn)因類的不同而異,但Road 類仍可以調(diào)用它,并且它提供的結(jié)果可由Road 類使用和解釋。在 .NET 中,可以由以下的方式來實(shí)現(xiàn)組件中多態(tài)性,除了()。(選擇一項(xiàng))a) 通過接口實(shí)現(xiàn)多態(tài)性b) 通過多個(gè)不同的子類從單個(gè)基類繼承實(shí)現(xiàn)多態(tài)c) 通過抽象類實(shí)現(xiàn)多態(tài)性d) 通過受保護(hù)的成員函數(shù)來實(shí)現(xiàn)多態(tài)性13閱讀以下的C#代碼:class Apublic abstract void printStr(string str)Console.WriteLine(str);class B:Apublic override void pr

8、intStr(string str)str=str+"(重寫的方法)"Console.WriteLine(str);class DefaultInitializerApppublic static void Main()B b=new B();A a=b;a.printStr("打印");b.printStr("打印");Console.ReadLine();運(yùn)行程序后將在控制臺(tái)窗口打印( )。(選擇一項(xiàng))a. 打印 重寫的方法b. 打印 打印 重寫的方法c. 打印d. 程序有誤,不能運(yùn)行14在C#的語法中,()關(guān)鍵字可以實(shí)現(xiàn)在派生類

9、中對(duì)基類的虛函數(shù)進(jìn)行重載(選一項(xiàng))a> overrideb> newc> staticd> virtual15對(duì)下面的C # 程序:using System;public interface IAccountvoid PosInterest();void DeductFees(int feeSchedule); class BusinessAccount : IAccountint A;public static void Main()BusinessAccount B = new BusinessAccount();Console.WriteLine(B.A);Con

10、sole.ReadLine();public void IAccount.PostInterest()A = A+1;public void IAccount.DeductFees(int feeSchedule)A = A + feeSchedule;以下的說法正確的是 ( )(選擇一項(xiàng))a)程序?qū)⒊霈F(xiàn)編譯錯(cuò)誤,指示不能在實(shí)現(xiàn)接口BusinessAccount的類中定義成員 A.b)程序?qū)⒊霈F(xiàn)編譯錯(cuò)誤,指示Public關(guān)鍵字對(duì)接口項(xiàng)無效c) 程序編譯正常,但是出現(xiàn)運(yùn)行時(shí)錯(cuò)誤,指示變量A沒有初始化d)程序?qū)⒄_\(yùn)行,輸出為016.可以使用()關(guān)鍵字重寫方法。A. OverrideB. new1

11、7.()可以看作類的模具。A. 抽象類B. 接口C. 虛方法18.請(qǐng)問,此程序輸出結(jié)果是()abstract class BaseClasspublic virtual void MethodA()Console.WriteLine("BaseClass");public virtual void MethodB()class Class1: BaseClasspublic void MethodA()Console.WriteLine("Class1");public override void MethodB()class Class2: Class

12、1new public void MethodB()class MainClasspublic static void Main(string args)Class2 o = new Class2();o.MethodA(); A. BaseClassB. BassClass Class1C. Class1D. Class1 BassClass19.請(qǐng)問,此程序輸出結(jié)果是()public abstract class A public A() Console.WriteLine('A'); public virtual void Fun() Console.WriteLine(

13、"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.Fun() B. A B B.Fun()C. B A A.Fun()D. B A B.Fun()20.以下敘述正確的是(): A. 接口中可以有虛方法。   B.

14、一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。 C. 接口不能被實(shí)例化。       D. 接口中可以包含已實(shí)現(xiàn)的方法。21以下關(guān)于C#代碼的說法正確的是()。(選擇一項(xiàng))Public abstract AnimalPublic abstract void Eat();Public void Sleep()a. 該段代碼正確b. 代碼錯(cuò)誤,因?yàn)轭愔写嬖诜浅橄蠓椒╟. 代碼錯(cuò)誤,因?yàn)轭愔械姆椒]有實(shí)現(xiàn)d. 通過代碼“Animal an = new Animal();”可以創(chuàng)建一個(gè)Animal對(duì)象22.在c#中,關(guān)于繼承和接口,以下說法正確的是() (單選)a

15、. c#允許許多接口實(shí)現(xiàn),也允許多重繼承b.c#允許多接口實(shí)現(xiàn),但不允許多重繼承c.c#不允許多接口實(shí)現(xiàn),但允許多重繼承d.c#不允許多重接口實(shí)現(xiàn),也不允許多重繼承23) 在C#中,已知下列代碼的運(yùn)行結(jié)果是“老虎吃動(dòng)物”,請(qǐng)問在空白處1和空白處2分別應(yīng)該填寫的代碼是()Public class AnimalPublic 空白處1 void Eat()Consone.WriteLine(“我要吃”);Public class Tiger:AnimalPublic 空白處2 void Eat()Consone.WriteLine(“老虎吃動(dòng)物”);Public calssTestStatic vo

16、id Main()Animal an = new Tiger();an.Eat;a) Virtual , newb) override , virtualc) virtual , overrided) new , virtual24) 在C#中,下列關(guān)于抽象類和接口的說法,正確的是)()(選擇一項(xiàng))a) 在抽象類中,所以的方法都是抽象方法b) 繼承自抽象類的子類必須實(shí)現(xiàn)起父類(抽象類)中的所以抽象方法c) 在接口中,可以有方法實(shí)現(xiàn),在抽象類中不能有方法實(shí)現(xiàn)d) 一個(gè)類可以從多個(gè)接口繼承,也可以從多個(gè)抽象類繼承25) 關(guān)于以下C#代碼的說法正確的是()Public abstract class

17、AnimalPublic abstract void Eat();Public class Tiger:AnimalPublic override void Eat()Console.WriteLine(“老虎吃動(dòng)物”);Public class Tigress:TigerStatic void main()Tigress tiger=new Tigress();Tiger.Eat();a) 代碼正確,但沒有輸出b) 代碼正確,并且輸出為”老虎吃動(dòng)物”;c) 代碼錯(cuò)誤,因?yàn)門igress類沒有實(shí)現(xiàn)抽象基類Animal中的抽象方法d) 代碼錯(cuò)誤,因?yàn)槌橄蠡怉nimal的Eat方法沒有實(shí)現(xiàn)26)

18、 在c#中 某程序員定義了一個(gè)IDataBase接口,以及實(shí)現(xiàn)該接口的類CDataBase ,下列關(guān)于該段代碼說法正確的是()(選擇一項(xiàng))public interface IDataBasevoid OpenTable(string tableName);void UpDataTable(string tableName);public class CDataBase:IDataBasepublic void OpenTable(string tableName)Console.WriteLine("打開數(shù)據(jù)表");public void UpdataTable(strin

19、g tableName)Console.WriteLine("更新數(shù)據(jù)表");static void Main()CDataBase db = new CDataBase();db.OpenTable("Customers");a)該段代碼錯(cuò)誤,因?yàn)樵诙x接口時(shí),接口中的方法沒有提供實(shí)現(xiàn)b)該段代碼錯(cuò)誤,因?yàn)榻涌谥新暶鞯姆椒ú皇枪械?,?yīng)此在CDataBase類中不能訪問接口中的方法c)該段代碼正確,同時(shí)由于客戶沒有調(diào)用UpdataTable方法,可以把CDataTable類中的UpdataTable去掉,代碼仍然正確d)該段代碼正確,但是如果在IDat

20、aBase 接口中聲明一個(gè)方法void Execute(string sql); 則必須在CDataBase中實(shí)現(xiàn)該方法27.C#中 下列代碼運(yùn)行結(jié)果是()(選擇一項(xiàng))public class Studentpublic virtual void Exam()Console.WriteLine("學(xué)生都要考試");public class Undergraduate:Studentpublic new void Exam()base.Exam();Console.WriteLine("大學(xué)生有選擇考試科目的權(quán)利");public class Testst

21、atic void Main()Student stu = new Undergraduate();stu.Exam();a)學(xué)生都要考試b)大學(xué)生有選擇考試科目的權(quán)利c)大學(xué)生都要考試 大學(xué)生有選擇考試科目的權(quán)利d)學(xué)生都要考試學(xué)生都要考試28)c#中 下列代碼的運(yùn)行結(jié)果是()(選擇一項(xiàng))struct Studentpublic int age;public string name;public Student(int age,string name)this.age=age;=name;public class Teststatic void Mian()Student

22、stu1= new Student(18,"小方");Student stu2= new Student(24,"小剛");stu2=stu1;stu1.age=30;="小燕"Console.WriteLine(stu2.age);Console.WriteLine();a)18 小方b)18 小燕c)30 小燕d)30 小方29)在C#中,下列()關(guān)鍵字用于重寫基類的虛擬方法。(選擇一項(xiàng))a)overrideb)newc)based)virtual委托和事件C#面向?qū)ο缶幊?委托和事件 

23、 1閱讀以下C#代碼 Namespace tevent  public delegate void notify5();  class eventTest       public void Raise5(int I)          if(I%3=1)    

24、60;    Got5(); public event notify5 Got5; class Handlers         public static void Method1()           Console.WriteLine("時(shí)間處理完成");  &

25、#160;    class class10         static void Main(String args)           eventTest eObj=new eventTest();      eObj.Got5+=new notify5

26、(Handlers.Method1);      for(int cnt=0;cnt<5;cnt+)             int y=cnt*2+1;       eObj.Raise5(y);         Console.WriteL

27、ine();      代碼允許的結(jié)果為()。 A)控制臺(tái)窗口不能出任何信息。 B)在控制臺(tái)窗口輸出“時(shí)間處理完成”1次 C)在控制臺(tái)窗口輸出“時(shí)間處理完成”2次 D)在控制臺(tái)窗口輸出“時(shí)間處理完成”5次2.聲明一個(gè)委托public delegate int myCallBack(int x); 則用該委托產(chǎn)生的回調(diào)方法的原型應(yīng)該是() A. void myCallBack(int x) B.&#

28、160;int receive(int num) C. string receive(int x) D. 不確定的3.C#中,關(guān)于事件的定義正確的是()。 a)private event OnClick();   b)private event OnClick; c)public delegate void Click();public event Click void

29、0;OnClick();   d)public delegate void Click();public event Click OnClick4. 在C#中,下列代碼的運(yùn)行結(jié)果是(). Public delegate void BuyTicketDelegate(string num); Public class Student  Public event BuyTicket

30、Delegate btEvent; Public Student(string num)  btEvent+= new BuyTicketDelegate(this.BuyTicket); Public void ShowNum(string num)  btEvent(num);  Private void BuyTicket(string num)  Console.WriteLin

31、e(“我要買”+num+”次車票”); Static void Main()  Console.WriteLine(“創(chuàng)建學(xué)生對(duì)象”); Student stu = new Student(“TI”); Console.WriteLine(“創(chuàng)建完畢”); Stu.ShowNum(“TI”); a) 創(chuàng)建學(xué)生對(duì)象   創(chuàng)建完畢 b) 創(chuàng)建學(xué)生對(duì)象   我要買TI次車票 

32、; 創(chuàng)建完畢 c) 創(chuàng)建學(xué)生對(duì)象   創(chuàng)建完畢     我要買TI次車票 d) 我要買TI次車票     創(chuàng)建學(xué)生對(duì)象     創(chuàng)建完畢C#面向?qū)ο缶幊?封裝1C#語言使用()來引入名稱空間。a) Importb) Usingc) Included) Lib2在.NET中,以下關(guān)于命名空間的描述,正確的是().(選擇一項(xiàng))a) 命名空間不可以進(jìn)行嵌套b) 在一個(gè).cs

33、文件中,只能存在一個(gè)命名空間c) 使用private修飾的命名空間,其內(nèi)部的類也不允許訪問d) 命名空間使得代碼更加有條理、結(jié)構(gòu)更清晰3在C#類中( ) 選一項(xiàng)a) 允許有多個(gè)相同名稱的構(gòu)造函數(shù)b) 允許有多個(gè)不同名稱的構(gòu)造函數(shù)c) 至少要有一個(gè)構(gòu)造函數(shù)d) 只能有一個(gè)構(gòu)造函數(shù)4在C#中,可以直接在名稱空間內(nèi)聲明如下類型,除了()A)數(shù)組B)接口C)結(jié)構(gòu)D)委托5C#程序中的類myClass中的成員變量var1如下:public class myClass private int var1;則可以訪問var1的有()。(選擇一項(xiàng))a) myClass中包含的類b) myClass的繼承類c)

34、myClass的父類d) 和myClass在同一命名空間下的類6下列關(guān)于類方法的聲明,正確的是()(選擇兩項(xiàng))a) 方法定義類所許可的行動(dòng)b) 從一個(gè)類創(chuàng)建的所有對(duì)象可以使用同一組屬性和方法c) 每個(gè)方法應(yīng)該有一個(gè)參數(shù)d) 如果在不同類中定義了類似的操作,剛他們的行為不應(yīng)該是類似的7析構(gòu)函數(shù)的語法是()semester()/析構(gòu)函數(shù)的實(shí)現(xiàn)A.對(duì)B.錯(cuò)8C#類中的構(gòu)造函數(shù)的特點(diǎn)是( )選一項(xiàng)a) 一個(gè)類中,只能有一個(gè)構(gòu)造函數(shù)b) 構(gòu)造函數(shù)的名稱與類名一樣c) 構(gòu)造函數(shù)在對(duì)象銷毀時(shí)自動(dòng)執(zhí)行d) 要求構(gòu)造函數(shù)至少有兩個(gè)參數(shù)9針對(duì)以下C#代碼 Using System; Public class Te

35、acher Public string teacherName; Public string teacherSubject; Public Teacher(String name) This.teacherName=name; Public Teacher(String subject) This.teacherSubject = subject; Public Teacher(String name, String subject) This.teacherName=name; This.teacherSubject = subject; 以下說法正確的是()(選擇一項(xiàng))A)上述代碼編譯無錯(cuò)

36、誤,類中存在三個(gè)構(gòu)造函數(shù)B)上述代碼編譯有錯(cuò)誤,因?yàn)轭愔兄荒苡幸粋€(gè)構(gòu)造函數(shù)C)上述代碼編譯有錯(cuò)誤,因?yàn)轭愔杏袃蓚€(gè)具有相同參數(shù)類型的構(gòu)造函數(shù)D)上述代碼編譯有錯(cuò)誤,以為類中沒有不帶參數(shù)的構(gòu)造函數(shù)10閱讀以下的C#代碼:Namespace t3_6Namespace FordPublic class MustangPublic void printMust()Console.WritleLine(“In namespace Ford”);class Class1static void Main(string args)Mustang must1=new Mustang();must1.printM

37、ust();Console.ReadLine();代碼運(yùn)行結(jié)果為(D)。(選擇一項(xiàng))a. 什么都不顯示b. 在控制臺(tái)打印”In namespace Ford”,用戶輸入任何數(shù)據(jù)退出c. 在控制臺(tái)打印”In namespace Ford”,立即退出d. 提示代碼有錯(cuò)誤,不能執(zhí)行11以下的C#代碼段,使用了using別名指令:Using T(1) A.B.C; /A.B.C為某類的完全限定名Class MyClass Static void Main() T M=new T(); 則代碼段中(1)處應(yīng)填寫的操作符或者關(guān)鍵字()(選一項(xiàng))a> Asb> =c> =d> Ins

38、tead12C#語言使用()來引入名稱空間。a)Importb)Usingc)Include d) Lib13.()關(guān)鍵字是類型和類型成員的訪問修飾符。(D)內(nèi)部成員只有在同一程序集中的文件內(nèi)才是可訪問的。A. public B.private C.protected D.internal E.sealed14.下列哪些說法是錯(cuò)誤的()A. 抽象類可以實(shí)例化。B. 不可以改變常量的值.C. 可以使用 this 引用靜態(tài)方法或?qū)傩栽L問器.D. readonly 變量只能在構(gòu)造函數(shù)中賦值.E. 一個(gè)父類的private 成員可以在子類中直接調(diào)用.15.請(qǐng)問,Class1.Count的值是多少?()class Class1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論