C#面試考題



之前某公司的面試考題,PO上來讓各位做看看,各位可以先想想看答案是什麼,之後我會在PO出答案~





一、問答題(30題)


1.C#型別系統(C# typing system)包含哪幾種?(不是在問資料類型,如:int、string...)
差異為何?
各舉一項資料類型。


2.可使用什麼方式取得變數的型別名稱?


3.String與string的差異?


4.宣告一個變數 int x,x佔記憶體大小為何?可指定值的範圍為何? x的值為何? 若x值等於Int32.MaxValue,則x+1值為何?


5.以關鍵字var宣告的變數特性? 可以在什麼地方宣告?什麼時候決定變數值的實際型別?


6.浮點數的型別有哪幾種?佔記憶體大小為何?


7.何為可Null型別?舉例宣告方式。



8.常見的變數型別轉換有哪幾種方式?試舉例程式碼。



9.C#存取範圍修飾詞有哪幾種?意義為何?


10.如何宣告類別及方法為靜態方式?



11.以下執行結果y值為?

int x=0;

int y=1;

do

{

     y+=++x;

} while(x<3);



while(x<=5)

{

     y+=x++;

}




12.何謂Boxing、Unboxing?



13.如何處理程式執行例外狀況?




14.如何明確啟用整數類資料型別算術運算和轉換的溢位檢查?


15.在多執行緒的情況下,如何限制某區段程式碼同一時間只能由一個執行緒執行?


16.參數修飾詞 ref 與 out 用途及差別為何?



17.使用什麼關鍵字可以在發生例外時自動釋放開啟的資源?




18.如何判斷變數myobject是否為MyClass類別?





19.在類別中使用base與this的差異?





20宣告變數decimal x; x值為null?





21.如何指定類別屬性(Property)為唯獨?



22.何謂類別?何為物件?



23.試宣告一列舉型別Colors,共Red、Green、Blue三個列舉項目,並指定Blue列舉值為200。




24.如何訂閱及取消訂閱事件處理?




25.如何拋出一個DataNotFoundException?




26.在一個例外處理範圍中如何同時捕捉DataNotFoundException及IOException?




27.三個變數值如下:

string custName=”Mary”;
DateTime saleDate=DateTime.Now;
int saleAmt=32500;

如何使用String.Format格式化字串為以下第2列結果?

|16字元-------------|20字元--------------|15字元---------|
|Mary              |2016/11/29  00:00   |      32,500.00|





28.命名空間的用途?如何用宣告命名空間?如何引用命名空間?






29.類別中宣告方法為abstract、virtual及sealed的差異?






30.介面(interface)用途為何?如何實作明確的介面?




二、實作題


1.試實作一結構(struct)模擬可為Null(Nullable)的DateTime型別,名稱為NullableDateTime,包含以下屬性跟行為。


建構子:NullableDateTime()


NullableDateTime(DateTime dt)指定日期值


屬性: DateTime Now 取得目前日期時間


bool HasValue 是否已設定日期值


DateTime Value 取得設定日期值,若沒有設定日期值,則拋出InvalidOperationException。


















2.Rick保險一年一期,保險期間27年,每年初繳付1000元,每年底保單單價值為(期初價值+當年繳納金額)X110%,實作計算每年累計繳付金額及年底保單價值,使用Console.WriteLine列出第一年、每五年、及最後一年的年數及上述兩項金額。


















3.設計一堆疊(Stack)類別,採後進先出法,內部使用固定陣列10個空間放置資料,實作以下屬性行為。


公開方法(Method):


Push: 將資料放入堆疊頂端,若無空間則拋出OutOfMemoryException。


Pop: 取出堆疊頂端的資料,若無資料則回傳Null。


公開屬性:


Size: 取得目前堆疊中放置的資料數。














4.設計一加密類別,使用XOR(互斥 ^)座位元運算,實作以下屬性及行為。


公開方法(Method):Encrypt:將傳入的位元組陣列資料做XOR運算回傳,Mask值自訂。

留言

  1. 1.
    byte 1Byte 範圍
    shoat 2Byte 範圍
    int 4Byte 範圍

    2.
    變數名稱.GetType()

    3.
    別名

    4.
    記憶體 4Byte
    範圍 負2^32 / 2 ~ 2^32 / 2 -1
    初始值 0
    溢位 負2^32 / 2

    5.
    型別由初始值決定,不得更改
    方法內
    初始值

    6.
    float 4Byte
    double 8Byte

    7.
    基本資料型態
    int? x = null;

    8.
    隱性轉型、強制轉型

    int x = 1;
    double y = 2;
    y = x;
    x = (int)y;

    9.
    public 全局都可用
    不寫 同一package可用
    protected 繼承者可用
    private 都不可用

    10.
    class A{
    public static int getNum(){
    return 1;
    }
    }

    11.
    19

    12.
    boxing 型別轉為 object
    unboxing object轉為型別

    13.
    try catch

    14.
    checked

    15.
    lock

    回覆刪除

張貼留言