C 實驗解答(5)

2021-08-09 10:07:48 字數 3123 閱讀 1584

1、簡要回答下列問題。

(1)舉例說明

new關鍵字可用於哪些方面?

(2)sealed

關鍵字的作用是什麼?什麼情況下需要使用

sealed

關鍵字?

(3)哪些關鍵字可以用於版本控制?

【解答】

1)在c#中,

new關鍵字可用作運算子或修飾符。

作為運算子

用於在堆上建立物件和呼叫建構函式。

作為修飾符

用於隱藏基類成員的繼承成員。

2) 在類宣告中

使用sealed修飾符可防止

其它類繼承此類。

在方法宣告中

使用sealed修飾符可防止

擴充類重寫此方法

。sealed

修飾符主要用於防止非有意的派生,但是它還能促使某些執行時優化。具體說來,由於密封類永遠不會有任何派生類,所以對密封類的例項的虛函式成員的呼叫可以轉換為非虛擬呼叫來處理。

3) override關鍵字和

new關鍵字均可用於版本控制。

在c#中,預設情況下方法不是虛擬的。若要使方法成為虛擬方法,必須在基類的方法宣告中使用

virtual

修飾符。然後,派生類可以使用

override

關鍵字重寫基

類中的虛擬方法,或使用new關鍵字隱藏基類中的虛擬方法。如果

override

關鍵字和

new關鍵字均未指定,編譯器將發出警告,並且派生類中的方法將隱藏基類中的方法。

2、簡要回答抽象類和介面的主要區別。

【解答】

抽象類和介面的乙個主要差別是:類可以實現

多個介面,但僅能從乙個抽象

類或任何

其它型別

的類繼承。

3、編寫乙個控制台應用程式,完成下列功能,並回答提出的問題

。(1)

建立乙個

類a,在建構函式中輸出「

a」,再建立乙個

類b,在建構函式中輸出「b」

。(2)

從a繼承乙個名為

c的新類,並在

c內建立乙個成員

b。不要為c建立

建構函式

。(3)在

main

方法中建立類c的乙個物件

,寫出執行程式後輸出的結果。

(4)如果在

c中也建立乙個建構函式輸出「

c」,整個程式執行的結果又是什麼?

【解答】

using system;

public class a

} public class b

} public class c : a

class mainclass

} 輸出結果:b

a 如果在c中也建立乙個建構函式輸出「

c」,即新增:

public c()

則整個程式執行的結果為:b

a c

4、編寫乙個控制台應用程式,完成下列功能,並寫出執行程式後輸出的結果

。(1)建立乙個類a,在

a中編寫乙個可以被重寫的帶

int型別引數的方法

mymethod

,並在該方法中輸出傳遞的整型值加

10後的結果。

(2)再建立乙個類

b,使其繼承自類

a,然後重寫a中的

mymethod

方法,將

a中接收的整型值加

50,並輸出結果。

(3)在

main

方法中分別建立類a和類

b的物件,並分別呼叫

mymethod

方法。【解答】

using system;

public class a

} public class b : a

} class mainclass

} 輸出結果:12

52 5、假設

node類

的每乙個節點

包括有兩個字段:m_data(引用節點的資料)和

m_next

(引用鏈結列表中的下一項)。這兩個欄位都是由建構函式方法設定的。

該類有兩個功能,第乙個功能是通過名為data和

next

的唯讀屬性訪問

m_data

和m_next

字段。第二個功能是對

system.object

的tostring

虛擬方法進行重寫。

試分別用類和泛型兩種方法編寫程式實現上述功能。

【解答】

using system;

class node

// 訪問結點資料

public object data

} // 訪問下乙個結點

public node next

} // 獲取結點資料描述

public override string tostring()

} // 鍊錶結點類的泛型定義

class node

// 訪問結點資料

public t data

set }

// 訪問下乙個結點

public nodenext

set }

// 獲取結點資料描述

public override string tostring()

} // 使用結點型別或泛型結點型別

class linkedlist

輸出結果

"sum of nodes = ", sum);

// 用泛型建立整數鍊錶

nodehead = new node(5, null);

head = new node(10, head);

head = new node(15, head);

// 遍歷求和

int32 sum = 0;

for (nodecurrent = head; current != null;

current = current.next)

// 輸出

console.writeline("sum of nodes = ", sum.tostring()); }

}

c 實驗解答(8)

1 使用保持連線方式編寫程式,計算各年級平均成績,並顯示結果。解答 using system using system.collections.generic using system.componentmodel using system.data using system.drawing usi...

c 程式設計 實驗5

1 乙隻猴子摘了n個桃子第一天吃了一半又多吃了乙個,第二天又吃了餘下的一半又多吃了乙個,到第十天的時候發現還有乙個。include using namespace std int main cout 起初總共有 cnt endl cout endl endl cnt 1 如果要迴圈,一定要再次初始化...

c 實驗5 求和

1.問題及 檔名稱 shen.cpp 作 者 沈聰 完成日期 2016 年 05月 09 日 版 本 號 v1.0 對任務及求解方法的描述部分 從鍵盤中輸入10個數放入陣列a,求陣列a中正數和負數的和。運用陣列知識求解 輸入描述 輸入10個數 問題描述 陣列怎麼用 程式輸出 輸出10個數中正數和負數...