之前某公司的面試考題,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.
回覆刪除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