C面向?qū)ο缶幊塘?xí)題_第1頁
C面向?qū)ο缶幊塘?xí)題_第2頁
C面向?qū)ο缶幊塘?xí)題_第3頁
C面向?qū)ο缶幊塘?xí)題_第4頁
C面向?qū)ο缶幊塘?xí)題_第5頁
免費預(yù)覽已結(jié)束,剩余14頁可下載查看

下載本文檔

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

文檔簡介

1、C#0向?qū)ο缶幊?多態(tài)1 . c#中的方法重寫使用關(guān)鍵字()。a) overrideb) overloadc) staticd) inherit2 .以下的C#弋碼,試圖用來定義一個接口:public interface IFileint A;int delFile() A = 3;void disFile();關(guān)于以上的代碼,以下描述錯誤的是() 。 (選擇一項)a) 以上的代碼中存在的錯誤包括:不能在接口中定義變量,所以 int A 代碼行將出現(xiàn)錯誤b) 以上的代碼中存在的錯誤包括:接口方法delFile 是不允許實現(xiàn)的,所以不能編寫具體的實現(xiàn)函數(shù)c) 代碼void disFile();定

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

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

4、ne("A.F"); public virtual void G() Console.WriteLine("A.G"); class Son: Fathernew public void F() Console.WriteLine("B.F"); public override void G() Console.WriteLine("B.G"); class override_newstatic void Main() Son b = new Son();Father a = b;a.F();b.F();a.G()

5、;b.G();A. A.FB.FA.GB.GB. A.FB.FB.GB.GC. A.FA.FB.GB.GD. B.FB.FB.GB.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:A public override void Fun1(int i)base.Fun1(i+1);public static void Main()B b=new B();A a=new A();a.Fu

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

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

8、ic override void printStr(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();運行程序后將在控制臺窗口打印 ( ) 。 ( 選擇一項 )a. 打印 重寫的方法b. 打印 打印 重寫的方法c. 打印d. 程序有誤,

9、不能運行14 .在C#勺語法中,()關(guān)鍵字可以實現(xiàn)在派生類中對基類的虛函數(shù)進(jìn)行重載(選一項) a> overrideb> newc> staticd> virtual15對下面的 C # 程序 :using System;public interface IAccountvoid PosInterest();void DeductFees( int feeSchedule);class BusinessAccount : IAccountint A;public static void Main()BusinessAccount B = new BusinessAcco

10、unt();Console.WriteLine(B.A);Console.ReadLine();public void IAccount.PostInterest() A = A+1; public void IAccount.DeductFees( int feeSchedule) A = A + feeSchedule;以下的說法正確的是( )( 選擇一項 )A.a) 程序?qū)⒊霈F(xiàn)編譯錯誤, 指示不能在實現(xiàn)接口 BusinessAccount 的類中定義成員b) 程序?qū)⒊霈F(xiàn)編譯錯誤, 指示Public 關(guān)鍵字對接口項無效c) 程序編譯正常, 但是出現(xiàn)運行時錯誤, 指示變量 A 沒有初始化d)

11、 程序?qū)⒄_\行, 輸出為 016. 可以使用()關(guān)鍵字重寫方法。A. OverrideB. new17. ()可以看作類的模具。A. 抽象類B. 接口C. 虛方法18. 請問,此程序輸出結(jié)果是()abstract class BaseClasspublic virtual void MethodA()Console.WriteLine("BaseClass");public virtual void MethodB()class Class1: BaseClasspublic void MethodA()Console.WriteLine("Class1&quo

12、t;);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. Class1 BassClass19. 請問,此程序輸出結(jié)果是()public abstract class A public A() Console.WriteLine('

13、;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.Fun()B. A B B.Fun()C. B A A.Fun()D. B A B.F

14、un()20. 以下敘述正確的是() :A. 接口中可以有虛方法。B. 一個類可以實現(xiàn)多個接口。C. 接口不能被實例化。D. 接口中可以包含已實現(xiàn)的方法。21. 以下關(guān)于C#弋碼的說法正確的是()。(選擇一項) Public abstract AnimalPublic abstract void Eat();Public void Sleep()a. 該段代碼正確b. 代碼錯誤,因為類中存在非抽象方法c. 代碼錯誤,因為類中的方法沒有實現(xiàn)d. 通過代碼“ Animal an = new Animal(); ”可以創(chuàng)建一個Animal 對象22. 在c#中,關(guān)于繼承和接口,以下說法正確的是()(

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

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

17、bstract 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 類沒有實現(xiàn)抽象基類Animal 中的抽象方法d) 代碼錯誤 ,

18、 因為抽象基類Animal 的 Eat 方法沒有實現(xiàn)26) 在 c# 中 某程序員定義了一個IDataBase 接口,以及實現(xiàn)該接口的類 CDataBase , 下列關(guān)于該段代碼說法正確的是()(選擇一項)public interface IDataBase void OpenTable( string tableName);void UpDataTable( string tableName); public class CDataBase:IDataBase public void OpenTable( string tableName) Console.WriteLine("

19、打開數(shù)據(jù)表");public void UpdataTable( string tableName) Console.WriteLine(" 更新數(shù)據(jù)表");static void Main() CDataBase db = new CDataBase(); db.OpenTable("Customers"); a) 該段代碼錯誤,因為在定義接口時,接口中的方法沒有提供實現(xiàn)b)該段代碼錯誤,因為接口中聲明的方法不是公有的,應(yīng)此在CDataBase類中不能訪問接口中的方法c) 該段代碼正確, 同時由于客戶沒有調(diào)用 UpdataTable 方法,

20、可以把 CDataTable 類中的 UpdataTable 去掉, 代碼仍然正確d) 該段代碼正確,但是如果在IDataBase 接口中聲明一個方法void Execute(string sql); 則必須在CDataBase 中實現(xiàn)該方法27.C# 中 下列代碼運行結(jié)果是()(選擇一項)public class Studentpublic virtual void Exam() Console.WriteLine(" 學(xué)生都要考試 ");public class Undergraduate:Studentpublic new void Exam()base.Exam()

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

22、me) this .age=age;this .name=name;public class Teststatic void Mian()Student 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)鍵

23、字用于重寫基類的虛擬方法。(選擇一項)a)overrideb)newc)based)virtual委托和事件C的向?qū)ο缶幊?委托和事件 1.閱讀以下C#(弋碼Namespace tevent public class delegate void notify5(); eventTestpublic void Raise5(int I)Got5();if(I%3=1)publicclassevent notify5Handlerspublic static voidConsole.WriteLine("class class10Got5;Method1()時間處理完成");s

24、tatic void Main(String args)eventTest eObj=new eventTest();eObj.Got5+=new notify5(Handlers.Method1);for(int cnt=0;cnt<5;cnt+)int y=cnt*2+1;eObj.Raise5(y);Console.WriteLine();代碼允許的結(jié)果為()A)控制臺窗口不能出任何信息。B)在控制臺窗口輸出C)在控制臺窗口輸出D)在控制臺窗口輸出2. 聲明一個委托public方法的原型應(yīng)該是()A. void myCallBack(int“時間處理完成“時間處理完成“時間處理完成

25、delegateint1次2次5次myCallBack(int x);則用該委托產(chǎn)生的回調(diào)x)B. int receive(int num)C. string receive(int x)D. 不確定的3 .C# 中,關(guān)于事件的定義正確的是()。a)private event OnClick();b)private event OnClick;c)publicdelegatevoidClick();publiceventClickvoid OnClick();d)publicdelegatevoidClick();publiceventClickOnClick4 .在C抻,下列代碼的運行結(jié)果是

26、().Public delegate void BuyTicketDelegate(string num); Public class StudentPublic event BuyTicketDelegate btEvent;Public Student(string num) btEvent+= new BuyTicketDelegate(this.BuyTicket); Public void ShowNum(string num) btEvent(num);Private void BuyTicket(string num) Console.WriteLine("我要買&qu

27、ot;+num+'次車票”); Static void Main() Console.WriteLine( “創(chuàng)建學(xué)生對象” ); Student stu = new Student( “ TI ” ); Console.WriteLine( “創(chuàng)建完畢” ); Stu.ShowNum( “TI ” ); a)創(chuàng)建學(xué)生對象創(chuàng)建完畢b) 創(chuàng)建學(xué)生對象我要買TI 次車票創(chuàng)建完畢c) 創(chuàng)建學(xué)生對象創(chuàng)建完畢我要買 TI 次車票d) 我要買 TI 次車票創(chuàng)建學(xué)生對象創(chuàng)建完畢C#0向?qū)ο缶幊?封裝1. c黜言使用()來引入名稱空間。a) Importb) Usingc) Included) Lib

28、2在.NET 中, 以下關(guān)于命名空間的描述 , 正確的是 ().( 選擇一項 )a) 命名空間不可以進(jìn)行嵌套b) 在一個 .cs 文件中 , 只能存在一個命名空間c) 使用 private 修飾的命名空間 , 其內(nèi)部的類也不允許訪問d) 命名空間使得代碼更加有條理、結(jié)構(gòu)更清晰3 .在C腔中()選一項a) 允許有多個相同名稱的構(gòu)造函數(shù)b) 允許有多個不同名稱的構(gòu)造函數(shù)c) 至少要有一個構(gòu)造函數(shù)d) 只能有一個構(gòu)造函數(shù)4 .在C#中,可以直接在名稱空間內(nèi)聲明如下類型,除了()A)數(shù)組B)接口C)結(jié)構(gòu) D)委托5 . C蝌序中的類 myClass中的成員變量 van如下: public class

29、myClass private int varl ; 則可以訪問 var1 的有() 。 (選擇一項)a) myClass 中包含的類b) myClass 的繼承類c) myClass 的父類d) 和 myClass 在同一命名空間下的類6 下列關(guān)于類方法的聲明,正確的是()(選擇兩項)a) 方法定義類所許可的行動b) 從一個類創(chuàng)建的所有對象可以使用同一組屬性和方法c) 每個方法應(yīng)該有一個參數(shù)d) 如果在不同類中定義了類似的操作,剛他們的行為不應(yīng)該是類似的7析構(gòu)函數(shù)的語法是()semester() / 析構(gòu)函數(shù)的實現(xiàn)A. 對B. 錯8. C聯(lián)中的構(gòu)造函數(shù)的特點是()選一項a) 一個類中,只能有

30、一個構(gòu)造函數(shù)b) 構(gòu)造函數(shù)的名稱與類名一樣c) 構(gòu)造函數(shù)在對象銷毀時自動執(zhí)行d) 要求構(gòu)造函數(shù)至少有兩個參數(shù)9. 針對以下C#(弋碼Using System;Public class TeacherPublic string teacherName;Public string teacherSubject;Public Teacher(String name)This.teacherName=name;Public Teacher(String subject) This.teacherSubject = subject;Public Teacher(String name, String s

31、ubject)This.teacherName=name;This.teacherSubject = subject;以下說法正確的是() (選擇一項)A)上述代碼編譯無錯誤,類中存在三個構(gòu)造函數(shù)B)上述代碼編譯有錯誤,因為類中只能有一個構(gòu)造函數(shù)C)上述代碼編譯有錯誤,因為類中有兩個具有相同參數(shù)類型的構(gòu)造函數(shù) D)上述代碼編譯有錯誤,以為類中沒有不帶參數(shù)的構(gòu)造函數(shù)10. 閱讀以下的C#弋碼:Namespace t3_6Namespace Ford Public class MustangIn namespace Ford ” );Public void printMust()Console.W

32、ritleLine(class Class1static void Main(string args) Mustang must1=new Mustang();must1.printMust();Console.ReadLine();代碼運行結(jié)果為 (D) 。 ( 選擇一項 )a. 什么都不顯示b. 在控制臺打印”In namespace Ford ”,用戶輸入任何數(shù)據(jù)退出c. 在控制臺打印”In namespace Ford ”,立即退出d. 提示代碼有錯誤,不能執(zhí)行11. 以下的C#弋碼段,使用了 using別名指令:Using T(1) A.B.C; /A.B.C 為某類的完全限定名Cl

33、ass MyClassStatic void Main() T M=new T();則代碼段中( 1)處應(yīng)填寫的操作符或者關(guān)鍵字() (選一項)a> Asb> =c> =d> Instead12. C黜言使用()來引入名稱空間。a) Importb) Usingc) Included) Lib13. () 關(guān)鍵字是類型和類型成員的訪問修飾符。 (D) 內(nèi)部成員只有在同一程序集中的文件內(nèi)才是可訪問的。A. public B.private C.protected D.internal E.sealed14. 下列哪些說法是錯誤的 ()A. 抽象類可以實例化。B. 不可以改變常量的值.C. 可以使用 this 引用靜態(tài)方法或?qū)傩栽L問器.D. readonly 變量只能在構(gòu)造函數(shù)中賦值.E. 一個父類的 private 成員可以在子類中直接調(diào)用 .15. 請問, Class1.Count 的值是多少? ()class Class1public static int Count = 0;static Class1()Count+;public Class1()Count+;public static void Main()Class1 o1 = new Class1();/1Class1 o2 = new

溫馨提示

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

評論

0/150

提交評論