Net軟件工程師面試題_第1頁
Net軟件工程師面試題_第2頁
Net軟件工程師面試題_第3頁
Net軟件工程師面試題_第4頁
Net軟件工程師面試題_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、一. 填空題(每空 1 分,共 12 分)1 面向?qū)ο蟮恼Z言具有 封裝_ 性、繼承_性、多態(tài)_ 性。2 能用 foreach 遍歷訪問的對(duì)象需要實(shí)現(xiàn)_ Ienumerable_ 接口或聲明_GetE nu merator_方法的類型。3 當(dāng)類 T 只聲明了私有實(shí)例構(gòu)造函數(shù)時(shí),則在T 的程序文本外部, _不可以 (可以 or 不可以)從 T 派生出新的類,在 T 的內(nèi)部可以(可以 or 不可以) 直接創(chuàng)建 T 的任何實(shí)例,在 T 的外部不可以_ (可以 or 不可以)直接創(chuàng)建 T 的 任何實(shí)例。4.委托聲明的關(guān)鍵字是 Delegate_?5.override 與重載的區(qū)別:override 覆蓋

2、是基類中函數(shù)的重寫。重載:方法或函 數(shù)的名稱相同,參數(shù)或許參數(shù)類型不同,進(jìn)行多次重載實(shí)現(xiàn)功能。二. 不定項(xiàng)選擇(每題 2 分,共 18)Question 1以下敘述正確的是:A.接口中可以有虛方法。B. 個(gè)類可以實(shí)現(xiàn)多個(gè)接口。C.接口不能被實(shí)例化。D.接口中可以包含已實(shí)現(xiàn)的方法。Questi on 2以下描述錯(cuò)誤的是()1. 在 C+中支持抽象類而在 C#中不支持抽象類。2. C+中可在頭文件中聲明類的成員而在CPP 文件中定義類的成員,在 C#中沒有頭文件并且在同一處聲明和定義類的成員。3. 在 C#中可使用 new 修飾符顯式隱藏從基類繼承的成員。4. 在 C#中要在派生類中重新定義基類的

3、虛函數(shù)必須在前面加Questi on 3聲明一個(gè)委托 public delegate int myCallBack(int x);回調(diào)方法的原型應(yīng)該是1. void myCallBack(i nt x)2. int receive(i nt num)3. stri ng receive(i nt x)4. 不確定的Questi on 4下列描述錯(cuò)誤的是()?a) 類不可以多重繼承而接口可以;?b) 抽象類自身可以定義成員而接口不可以;?c) 抽象類和接口都不能被實(shí)例化;?d) 一個(gè)類可以有多個(gè)基類和多個(gè)基接口;Questi on 5下列關(guān)于構(gòu)造函數(shù)的描述正確的是()?a) 構(gòu)造函數(shù)可以聲明返回

4、類型。?b) 構(gòu)造函數(shù)不可以用 private 修飾?c) 構(gòu)造函數(shù)必須與類名相同?Override 。則用該委托產(chǎn)生的d) 構(gòu)造函數(shù)不能帶參數(shù)Questi on 6接口是一種引用類型,在接口中可以聲明(),但不可以聲明公有的域或私有的成員變量。?a) 方法、屬性、索引器和事件;?b) 方法、屬性信息、屬性;?c) 索引器和字段;?d) 事件和字段;Questi on 7以下的 C#代碼,試圖用來定義一個(gè)接口:?public in terface IFile?int A; ?int delFile() ?A = 3; ? ?void disFile(); ? ?關(guān)于以上的代碼,以下描述錯(cuò)誤的是

5、()a)以上的代碼中存在的錯(cuò)誤包括:不能在接口中定義變量,所以int A 代碼行將出現(xiàn)錯(cuò)誤;?b) 以上的代碼中存在的錯(cuò)誤包括:接口方法 delFile 是不允許實(shí)現(xiàn)的,所以不能編寫具體的實(shí)現(xiàn)函數(shù);?c) 代碼 void disFile();聲明無錯(cuò)誤,接口可以沒有返回值;?d) 代碼 void disFile(); 應(yīng)該編寫為 void disFile() ;Questi on 8.class Classipublic static int Count = 0;static Class1()Coun t+;public Class1()Coun t+;Classi o1 = new Clas

6、s1();Classi o2 = new Classi();請(qǐng)問,的值是多少()1. 12. 23. 34. 4Questi on 9 abstract class BaseClasspublic virtual void MethodA()(BaseClass);public virtual void MethodB()class Class1: BaseClasspublic void MethodA()(Class1);public override void MethodB() class Class2: Classinew public void MethodB()class Mai

7、 nClasspublic static void Main( stri ng args) Class2 o = new Class2();();請(qǐng)問,此程序輸出結(jié)果是:1. BaseClass2. BassClass Classi3. Classi4. Classi BassClass(解析,三重繼承問題,孫類只是繼承父類,而不是直接繼承祖父類)三問答題(每題 3 分,共 15 分)1. 簡述 private、protected、public、internal修飾符的訪問權(quán)限。private:私有訪問,它只能在聲明自身的類中進(jìn)行訪問。protected:表示受保護(hù)的訪問,該類內(nèi)部和繼承類中可

8、以訪問.public :表示公共訪問,在代碼任何位置都可對(duì)其進(jìn)行訪問in ternal 表示內(nèi)部成員,在同一命名空間內(nèi)可以訪問。2. C#中的委托是什么事件是不是一種委托委托是指具有相同屬性(也稱具有相同的函數(shù)簽名: 返回類型相同,參數(shù)類型、 參數(shù)順序及參數(shù)個(gè)數(shù)相同)的函數(shù)或方法的抽象,關(guān)鍵字為delegate。主要用途是三個(gè):1)函數(shù)回調(diào);2)傳遞方法;3)事件機(jī)制事件就是一個(gè)狹義的委托,也就是事件是一個(gè)用于事件驅(qū)動(dòng)模型的專用委托, 對(duì)事件的聲明,實(shí)際是聲明一個(gè)私有的委托變量,對(duì)委托變量進(jìn)行封裝,即委托 變量加上 event 關(guān)鍵字后,不管其前面的訪問修飾符是public 還是 privat

9、e ,編譯器都會(huì)將其編譯為 private。委托是一個(gè)類,它定義了方法的類型,使得可以將方法當(dāng)作另一個(gè)方法的參數(shù)來進(jìn)行傳遞,這種將方法動(dòng)態(tài)地賦給參數(shù)的做法,可以避免在程序中大量使用 If-Else(Switch)語句,同時(shí)使得程序具有更好的可擴(kuò)展性。以委托為參數(shù)的函數(shù)具有一定的通用性。使用委托可以將多個(gè)方法綁定到同一個(gè)委托變量,當(dāng)調(diào)用此變量時(shí)(這里用“調(diào)用”這個(gè)詞,是因?yàn)榇俗兞看硪粋€(gè)方法),可以依次調(diào)用所有綁定的方法。3. abstract 可以和 virtual一起使用嗎可以和 override 起使用嗎不可以一起使用,但是可以和override 一起使用4. 請(qǐng)敘述屬性與索引器的區(qū)別。屬

10、性:它是存取類的字段,索引器:Indexer 它是特殊的屬性,用它可以使用戶像 訪問數(shù)組一樣訪問類的成員。5. 請(qǐng)?jiān)斒鲈?dot net 中類(class)與結(jié)構(gòu)(struct)的異同。類 class 可以進(jìn)行實(shí)例化,它是引用類型,內(nèi)存分配在棧中,效率高,它有默認(rèn)的構(gòu)造函數(shù),有析構(gòu)函數(shù)可以使用 abstract 和 sealed,protected 修飾符。要用 new 進(jìn)行初始化,結(jié)構(gòu)它是屬于值類型,內(nèi)存分配在堆中,效率低,它沒有默認(rèn)的構(gòu)造函數(shù),但是可以添加構(gòu)造函數(shù),沒有析構(gòu)函數(shù)沒有abstract 和 sealed(因?yàn)椴荒芾^承)不能有 protected 修飾符可以不使用 new 初始化

11、,但是可以在結(jié)構(gòu)中初始化實(shí)例字段。四分析程序(每題 5 分,共 25 分)(此題不能調(diào)試,若發(fā)現(xiàn)調(diào)試,扣除分?jǐn)?shù))1.寫出程序的輸出結(jié)果class Class1private string str =;private int i = 0;static void Stri ngCon vert(str ing str)str = str ing being con verted.;static void Stri ngCo nvert(Class1 c)=stri ng being con verted.;static void Add(i nt i)i+;static void AddWithR

12、ef(ref int i)i+;static void Mai n()int i1 = 10;int i2 = 20;stri ng str = str;Class1 c = new Class1();Add(i1);AddWithRef(ref i2);Add;Stri ngCon vert(str);Stri ngCon vert(c);(i1);(i2);(str);J10210strstri ng being con verted2.寫出程序的輸出結(jié)果public abstract class Apublic A()(A);public virtual void Fun()(); pu

13、blic class B: A public B()(B);public override void Fun()();public static void Mai n()A a = new B();();解析:主函數(shù) A a = new B();首先聲明了一個(gè) A 的對(duì)象 a,但被賦給不同于 A 的 對(duì)象 B,在此期間分別調(diào)用了A 類的構(gòu)造函數(shù)和 B 類的構(gòu)造函數(shù),然后調(diào)用a 的fun()函數(shù),因?yàn)?a 的 fun ()函數(shù)是虛函數(shù),被b 的 fun()的函數(shù)覆蓋,所以實(shí)際執(zhí)行的是 b 的 fun().答案:()3.寫出程序的輸出結(jié)果:public class Apublic virtual

14、void Fun 1(i nt i)(i);public void Fun2(A a)(1);Fun 1(5);public class B : Apublic override void Fun 1(i nt i)(i + 1);public static void Mai n() B b = new B();A a = new A();;(b);輸出結(jié)果為:2516(一個(gè)函數(shù)的執(zhí)行必須在一個(gè)具體的對(duì)象中實(shí)現(xiàn),如果函數(shù)明確告訴是哪個(gè)對(duì)象,則在改該對(duì)象下執(zhí)行;如果沒有,則在默認(rèn)的對(duì)象下執(zhí)行)4.在下面的例子里using System;class Apublic A()Pri ntFields(

15、);public virtual void Pri ntFields()class B:Aint x=4;int y;public B()y=-i;public override void Pri ntFields()x += 1;(x=0,y=1,x,y);y += 1;當(dāng)使用 B b = new B()創(chuàng)建的實(shí)例時(shí),產(chǎn)生什么輸出 結(jié)果是什么X=5,y=0b. PrintFields 結(jié)果是 x=6;y=15.下面的例子中b. PrintFields();using System;class Apublic static int X;static A()X=+1;class Bpublic

16、static int Y=+1;static B() static void Mai n()(X=0, Y=1,;產(chǎn)生的輸出結(jié)果是什么?X=2, Y=1五.程序設(shè)計(jì)(每題 7 分,共 28 分)1.請(qǐng)編程實(shí)現(xiàn)一個(gè)冒泡排序算法編程程序?qū)崿F(xiàn)委托,事件。using System;usi ngusing ;n amespacedelegateDemoclass Programstaticvoid Main( string args)Catcat = n ewCat ();Mousemouse二n ewMous&);Master master = newMaster ();+= newEvent

17、Handler ;+= newEventHandler ;();publicsealedclass Cat.);publicsealedclass Master.);3.寫一個(gè)程序,語言不限,打印出 100 的階乘(即 1*2*3*100)的精確數(shù)值結(jié)果(不能是浮點(diǎn)數(shù))。如 5 的階乘是 1*2*3*4*5=120。using System;usi ngusing ;寫一個(gè)程序,語言不限,能將人民幣金額從阿拉伯?dāng)?shù)字轉(zhuǎn)換為大寫漢字表示。例如,把轉(zhuǎn)換為壹仟貳佰叁拾肆圓零伍角陸分。using System;usi ngusing ;n amespaceC on soleApplicatio n1class Programstaticvoid Main( string args)(請(qǐng)輸入數(shù)字:);string s =();(轉(zhuǎn)換后Y:);

溫馨提示

  • 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)論