C#程序設(shè)計(jì)大學(xué)教材課后答案_第1頁
C#程序設(shè)計(jì)大學(xué)教材課后答案_第2頁
C#程序設(shè)計(jì)大學(xué)教材課后答案_第3頁
C#程序設(shè)計(jì)大學(xué)教材課后答案_第4頁
C#程序設(shè)計(jì)大學(xué)教材課后答案_第5頁
已閱讀5頁,還剩99頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

引言

復(fù)習(xí)題

1.什么是程序設(shè)計(jì)?

答:

計(jì)算機(jī)程序設(shè)計(jì)又稱為編程(programming),是一門設(shè)計(jì)和編寫計(jì)算機(jī)程序的科學(xué)和藝術(shù)。

程序是程序設(shè)計(jì)中最基本的概念,也是軟件中最基本的概念。程序是計(jì)算任務(wù)的處理對(duì)象

和處理規(guī)則的描述。所謂計(jì)算任務(wù)是指所有通過計(jì)算來解決實(shí)際問題的任務(wù)。處理對(duì)象是數(shù)據(jù),

如數(shù)字、文字和圖像等。處理規(guī)則一般指處理動(dòng)作和步驟。在低級(jí)語言中,程序是一組指令和

相關(guān)的數(shù)據(jù)。在高級(jí)語言中,程序一般是一組說明和語句,它包括了算法和數(shù)據(jù)結(jié)構(gòu)。程序設(shè)

計(jì)就是為計(jì)算機(jī)設(shè)計(jì)和編寫程序,使其按照人所規(guī)定的算法對(duì)數(shù)據(jù)進(jìn)行處理。通常程序設(shè)計(jì)包

括了問題建模、算法設(shè)計(jì)、編寫代碼和編譯調(diào)試等過程。

2.當(dāng)今的計(jì)算機(jī)是基于什么模型?

答:

現(xiàn)代計(jì)算機(jī)都是基于馮?諾伊曼模型的。此模型著眼于計(jì)算機(jī)的內(nèi)部結(jié)構(gòu),定義了處理機(jī)的

運(yùn)行過程。該模型把計(jì)算機(jī)分為四個(gè)子系統(tǒng):存儲(chǔ)器、算術(shù)/邏輯單元、控制單元和輸入/輸出單

兀。

3.為什么不稱計(jì)算機(jī)為數(shù)據(jù)處理器?

答:

數(shù)據(jù)處理器??梢哉J(rèn)為是一個(gè)接受輸入數(shù)據(jù),處理數(shù)據(jù),產(chǎn)生輸出數(shù)據(jù)的黑盒。盡管這個(gè)

模型能夠體現(xiàn)現(xiàn)代計(jì)算機(jī)的功能,但是它的定義還是太狹窄。這個(gè)模型并沒有說明它處理的類

型以及是否可以處理一種以上的類型。換句話說,它并沒有清楚的說明一個(gè)基于這個(gè)模型的機(jī)

器能夠完成操作的類型和數(shù)量。它是專用機(jī)器還是通用機(jī)器呢?這種模型可以表示為一種設(shè)計(jì)

用來完成特定任務(wù)的專用計(jì)算機(jī)(或者處理器),比如用來控制建筑物溫度或汽車油料使用。但

計(jì)算機(jī)作為一個(gè)當(dāng)今使用的術(shù)語,是一種通用的機(jī)器。它可以完成各種不同的工作。

4.你所知道的程序設(shè)計(jì)語言有哪些?你知道它們有什么不同特點(diǎn)嗎?

(答案略)

5.位模式是如何表示一個(gè)構(gòu)成文本的語言符號(hào)的?

所謂位(bit,binarydigit的縮寫)是存儲(chǔ)在計(jì)算機(jī)中的最小單位;它是()或1。位代表設(shè)

備的某一狀態(tài),這些設(shè)備只能處于兩種狀態(tài)中的某一種狀態(tài)。計(jì)算機(jī)存儲(chǔ)器并不知道所存儲(chǔ)的

位模式是表示哪種類型的數(shù)據(jù)。實(shí)際上計(jì)算機(jī)存儲(chǔ)器僅僅將數(shù)據(jù)以位模式存儲(chǔ)。至于解釋位模

式是數(shù)字類型、文本類型、或其它的數(shù)據(jù)類型,則是由輸入/輸出設(shè)備或程序的完成。換句話說,

當(dāng)數(shù)據(jù)輸入計(jì)算機(jī)時(shí),它們被編碼,當(dāng)呈現(xiàn)給用戶時(shí),它們被解碼。

位模式可以表示任何一個(gè)構(gòu)成文本的語言符號(hào)。在一種語言中,位模式到底需要多少位來

表示一個(gè)文本符號(hào)主要取決于該語言集中到底有多少不同的文本符號(hào)。例如,如果要?jiǎng)?chuàng)建的某

個(gè)虛構(gòu)的語言僅僅使用大寫的英文字母,則只需要26個(gè)符號(hào)。相應(yīng)的這種語言的位模式則至少

需要表示26個(gè)符號(hào)。對(duì)另一種語言,如中文,可能需要更多的符號(hào)。在一種語言中,表示某一

符號(hào)的位模式的長度取決于該語言中所使用的符號(hào)的數(shù)量。更多的符號(hào)意味著更長的位模式。

6.計(jì)算機(jī)程序設(shè)計(jì)語言是如何分類的?

答:

程序設(shè)計(jì)語言可劃分為低級(jí)語言、中級(jí)語言和高級(jí)語言。低級(jí)語言或稱機(jī)器語言,是程序

設(shè)計(jì)語言中最基礎(chǔ)的類型,能被計(jì)算機(jī)直接理解。機(jī)器語言的區(qū)別取決于制造商和計(jì)算機(jī)的型

號(hào)。高級(jí)語言是在計(jì)算機(jī)能夠理解和處理之前必須首先翻譯成機(jī)器語言的程序設(shè)計(jì)語言。C、

C++、Pascal和FORTRAN都是高級(jí)語言的例子。匯編語言是中級(jí)語言,非常接近于機(jī)器語言,

沒有其他高級(jí)語言所表現(xiàn)出的語言復(fù)雜程度,運(yùn)行時(shí)仍然得先翻譯成機(jī)器語言。

7.C#是什么?

答:

C#(發(fā)音為:Csharp)是Microsoft公司開發(fā)的一種新的語言,也是.NET公用語言運(yùn)行環(huán)

境的內(nèi)置語言。它完美的結(jié)合了C/C++的強(qiáng)大功能、Java的面向?qū)ο筇卣骱蚔isualBasic的易用

性,從而構(gòu)成一種類型安全的、簡(jiǎn)單的面向?qū)ο蟮木幊陶Z言。

8.C#的集成開發(fā)環(huán)境包括那些組成部分?

答:

C#的集成開發(fā)環(huán)境主要由這幾部分組成:通用語言運(yùn)行時(shí)CLR(CommonLanguage

Runtime),它是整個(gè)開發(fā)框架的基礎(chǔ);由CLR所提供的一組基礎(chǔ)類庫;在開發(fā)技術(shù)方面,C#

的集成開發(fā)環(huán)境提供了全新的數(shù)據(jù)庫訪問技術(shù)ADO.NET,以及網(wǎng)絡(luò)應(yīng)用開發(fā)技術(shù)ASP.NET和

Windows編程技術(shù)WinFormso

9.簡(jiǎn)述程序設(shè)計(jì)的過程。

答:

程序的設(shè)計(jì)過程包括:?jiǎn)栴}建模、算法設(shè)計(jì)、編寫代碼、編譯調(diào)試。

程序?qū)⒁詳?shù)據(jù)處理的方式解決客觀世界中的問題,因此在程序設(shè)計(jì)之初,首先應(yīng)該將實(shí)際

問題抽象成一個(gè)求解模型,然后為該模型設(shè)計(jì)和制定算法。通過問題建模,可以清楚地描述各

種概念、已知條件、所求結(jié)果,以及已知條件與所求結(jié)果之間的聯(lián)系等各方面的信息。模型和

算法的結(jié)合將給出問題的解決方案。

具體的解決方案確定后,需要對(duì)所采用的算法進(jìn)行描述,算法的初步描述可以采用自然語

言方式,然后逐步將其轉(zhuǎn)化為程序流程圖或其他直觀方式。這些描述方式比較簡(jiǎn)單明確,能夠

比較明顯地展示程序設(shè)計(jì)思想,是進(jìn)行程序調(diào)試的重要參考。

使用計(jì)算機(jī)系統(tǒng)提供的某種程序設(shè)計(jì)語言,根據(jù)上述算法描述,將已設(shè)計(jì)好的算法表達(dá)出

來,使得非形式化的算法轉(zhuǎn)變?yōu)樾问交挠沙绦蛟O(shè)計(jì)語言表達(dá)的算法,這個(gè)過程稱為程序編碼。

程序設(shè)計(jì)者可以通過常用的開發(fā)工具(如Java、VisualBasic等)依據(jù)程序設(shè)計(jì)語言的語法

規(guī)則編寫程序,并將源代碼編譯成可執(zhí)行程序。由于很少能保證程序第一次就能夠正確運(yùn)行,

所以程序設(shè)計(jì)時(shí)經(jīng)常需要使用調(diào)試程序來幫助查找程序錯(cuò)誤,解決程序運(yùn)行中存在的問題。調(diào)

試程序能夠在運(yùn)行的程序中檢測(cè)到一個(gè)事件,并向程序員指出該事件在程序由哪條代碼的觸發(fā)。

只有編譯調(diào)試成功了,才完成了程序的設(shè)計(jì)過程。

測(cè)試題

10.以下關(guān)于計(jì)算機(jī)程序的描述不正確的是—。

A、計(jì)算機(jī)程序是指按照時(shí)間順序依次安排的計(jì)算機(jī)工作步驟。

B、簡(jiǎn)單地講,計(jì)算機(jī)程序也可以表示成:算法+數(shù)據(jù)結(jié)構(gòu)。

C、計(jì)算機(jī)程序是對(duì)計(jì)算步驟的編排和優(yōu)化。

D、計(jì)算機(jī)程序是計(jì)算任務(wù)的處理對(duì)象和處理規(guī)則的描述。

答案:C

(提示:計(jì)算機(jī)程序是對(duì)計(jì)算步驟的編排,但不一定優(yōu)化)

11.現(xiàn)代的內(nèi)部存儲(chǔ)計(jì)算機(jī)程序的概念是由提出來的。

A、美籍匈牙利數(shù)學(xué)家約翰?馮?諾伊曼

B、英國數(shù)學(xué)家奧古斯塔?埃達(dá)?拜倫

C、法國發(fā)明家約瑟夫

D、英國數(shù)學(xué)家和發(fā)明家查爾斯?巴比

答案:A

12.以下程序設(shè)計(jì)語言在歷史上出現(xiàn)的正確順序是一。

A、FORTRAN>BASIC、C#、JAVA

B、FORTRAN>C、JAVA、C#

C、LISP、BASIC、C#、C++

D、COBOL.C#、Pascal.JAVA

答案:B

13.以下的應(yīng)用程序中,不能將源代碼翻譯成目標(biāo)代碼是

A、編譯器

B、解釋器

C、匯編程序

D、虛擬機(jī)

答案:D

14.計(jì)算機(jī)內(nèi)存中存儲(chǔ)體的基本單位是一。

A、字節(jié)

B、字

C、位

D、字符

答案:C

15.—可用于表示來自世界上不同語言的符號(hào)。

A、ASCH碼

B、擴(kuò)展ASCII碼

C、擴(kuò)展ASCII碼和Unicode碼

D、Unicode碼

答案:D

16.以下有關(guān)計(jì)算機(jī)數(shù)據(jù)表示的說法不正確的是.

A、計(jì)算機(jī)中并沒有采用文本的編碼來表示數(shù)字。

B、計(jì)算機(jī)存儲(chǔ)器僅僅將數(shù)據(jù)以位模式存儲(chǔ),它并不知道其存儲(chǔ)的數(shù)據(jù)是哪種類型。

C、在一種語言中,位模式到底需要多少位來表示一個(gè)符號(hào)這主要取決于內(nèi)存的大小。

D、一個(gè)字中包含多個(gè)位,字可以是8位、16位、32位,甚至是64位。

答案:C

17.程序設(shè)計(jì)語言通常分為一.

A、面向過程的、函數(shù)式的、面向?qū)ο蟮幕蜻壿嫷恼Z言

B、機(jī)器語言、匯編語言、高級(jí)語言

C、數(shù)據(jù)庫語言、通用語言、嵌入式語言

D、可視化語言、非可視化語言

答案:B

18.C#從___版本開始推出了C#for.NET集成開發(fā)環(huán)境。

A、C#7

B、C#5

C、C#8

D、C#2005

答案:D

19.C#是一出品的-一種優(yōu)秀的集成開發(fā)工具。

A、SUN公司

B、Borland公司

C、IBM公司

D、Microsoft公司

答案:D

練習(xí)題

20.設(shè)計(jì)一個(gè)窗體,從組件面板中選擇一些常見控件放置在其上。運(yùn)行該程序,觀察運(yùn)行

結(jié)果,并察看C#自動(dòng)生成了那些代碼。

(答案略)

21.查閱資料,找出最近10年來新出現(xiàn)的程序設(shè)計(jì)語言,了解為什么人們要推出這些新的

語言,并討論程序設(shè)計(jì)與語言的關(guān)系。

(答案略)

22.一種計(jì)算機(jī)程序設(shè)計(jì)語言有10種不同的指令。如果指令不重復(fù),在這種語言能編出多

少5條指令的程序?又能編出多少7條指令的程序?

答:

5條指令的程序:10x9x8x7x6(種)

7條指令的程序:10x9x8x7x6x5x4(種)

討論:今天對(duì)一個(gè)最終用戶來說,硬件、軟件和數(shù)據(jù)哪一個(gè)更有價(jià)值?

程序設(shè)計(jì)基礎(chǔ)

復(fù)習(xí)題

1.簡(jiǎn)述C#程序的基本框架結(jié)構(gòu)。

答:

C#程序由一個(gè)或多個(gè)獨(dú)立的類組成,每個(gè)類歸屬于某個(gè)命名空間。C#的類可以由一個(gè)或多

個(gè)方法組成,其中類中的靜態(tài)Main方法可用作程序運(yùn)行的入口。

2.代碼質(zhì)量評(píng)審的原則是什么?撰寫代碼時(shí)如何使程序結(jié)構(gòu)清晰,易于閱讀?

答:

通過編程經(jīng)驗(yàn)的總結(jié)和軟件工程的研究,歸納出如下代碼質(zhì)量評(píng)審原則:

正確性指程序代碼要實(shí)現(xiàn)軟件設(shè)計(jì)所要求的功能;

可靠性指代碼最后編譯的程序要能夠穩(wěn)定、可靠、安全的運(yùn)行;

規(guī)范化指代碼書寫的風(fēng)格、命名規(guī)則等要符合規(guī)范;

可讀性指代碼要便于查看和理解;

在程序代碼中適當(dāng)使用空格、空行、縮進(jìn)以及必要的注釋和規(guī)范的命名,可以使程序結(jié)構(gòu)

清晰,易于閱讀。

3.什么是數(shù)據(jù)類型?以變量為例,闡述數(shù)據(jù)類型的意義。

答:

某種數(shù)據(jù)類型就好比是一套“用來解釋存儲(chǔ)于某內(nèi)存位置上的值(好比變量的值)”的規(guī)則。

舉個(gè)例子,如果變量是個(gè)整數(shù),存儲(chǔ)于其中的位(bits)就被解釋為一個(gè)整數(shù);如果變量的數(shù)據(jù)

類型是字符串,存儲(chǔ)于其中的位(bits)就被解釋為一組字符。當(dāng)然,對(duì)編譯器來說,數(shù)據(jù)類型

的含義遠(yuǎn)不止于此。編譯器還必須能夠理解以下規(guī)則:”定義每一種數(shù)據(jù)類型能夠接受的值”以

及”對(duì)這些值來說哪些操作合法“。通過這些知識(shí),編譯器便能夠決定一個(gè)特定數(shù)據(jù)類型的值是

否被正確地使用。

4.C#數(shù)據(jù)類型可分為幾大類?C#值類型包括哪些?

答:

C#中的數(shù)據(jù)類型可以分為值類型和引用類型兩大類。其中值類型包括:簡(jiǎn)單類型、枚舉

類型和結(jié)構(gòu)類型;引用類型包括:數(shù)組類型、類類型、接口類型和代理類型。

測(cè)試題

5.以下聲明常量的語句正確的是.

A、doublePI=3.14159;

B、constdoublePI=3.14159;

C>staticdoublePI=3.14159;

D^staticconstdoublePI=3.14159;

答案:B

6.C#中簡(jiǎn)單數(shù)據(jù)類型包括—。

A、整數(shù)類型,字符類型,枚舉類型和結(jié)構(gòu)類型

B、整數(shù)類型,字符類型,布爾類型和實(shí)數(shù)類型

C、整數(shù)類型,字符類型,結(jié)構(gòu)類型和類類型

D、整數(shù)類型,字符類型,布爾類型,結(jié)構(gòu)類型和類類型

答案:B

7.以下類型在內(nèi)存中所占大小從小到大排序,正確的是

A、byteshortlong

B、bytelongshort

C、charbytefloat

D、doublefloatlong

答案:A

8.每個(gè)C#語句以__結(jié)束。

A、右大括號(hào)“}”

B、回車

C、點(diǎn)號(hào)

D、分號(hào)"

答案:D

9.下面可作為變量名的是.

A、try

B、continue

C、$500

D、24Hour

答案:c

10.在c#中,以下程序注釋正確的是

A、

(注釋行1

注釋行2

注釋行3}

B、

//注釋行1

注釋行2

注釋行3〃

C、

(*注釋行1

注釋行2

注釋行3*)

D、

/*注釋行1

注釋行2

注釋行3*/

答案:D

11.關(guān)于以下兩行代碼,不正確的說法是—。

floatf=3.2;

inti=f;

A、代碼無法編譯通過。

B、代碼可以編譯通過,i的值為3。

C、第2行應(yīng)改為inti=(int)f;

D、第1行應(yīng)改為floatf=3.2F;

答案:B

12.以下代碼無法編譯通過,是因?yàn)椤猳

classTest

{

staticintmyArg=1;

publicstaticvoidMain(String[]args)

(

intmyArg;

Console.WriteLine(myArg);

)

)

A、Main方法中的變量myArg沒有初始化。

B、Main方法中的變量myArg與Test類的myArg字段同名。

C、Test類的myArg字段不能在定義時(shí)就同時(shí)賦值。

D、Console.WriteLine(myArg)語句不能使用整數(shù)類型的myArg,而應(yīng)使用字符串類型的

myArgo

答案:A

13.以下的Main方法定義中,可用作公有類中程序運(yùn)行入口的是.

publicstaticvoidMain()

B>publicstaticvoidMain(string[]string)

C^publicstaticvoidMain(stringargs)

D、staticpublicintMain(string[]args)

答案:B

14.已知a、b、c、d都是血類型的變量,而且已有互不相同的值,順序執(zhí)行下列語句后,

條件等式為true的是____o

b=a;

a=c;

d=a;

d=b;

A>a==c

B、a==d

C^c==d

D、b==a

答案:A

15.下列實(shí)數(shù)表示方法中不正確的是—o

A、8.625e+5

B、5e-3F

C、2345.34

D、1000

答案:D

16.以下語句中屬于合法類型轉(zhuǎn)換的是—o

A、(int)"A"

B、(char)uAn

C、(bool)(2-2)

D、(char)(651/12)

答案:D

17.下列字符比較的結(jié)果為真(true)的是,

A、'a'c'A'

B、'c'v='A'

C、‘a(chǎn)'=='A'

Ds'a'>'A'

答案:D

練習(xí)題

18.指出下面表達(dá)式的類型:

a.4567b."true11c.Cd.67.0

e.56Ff."T"g.8h.true

答:

b.stringc.chard.double

e.floatf.stringg.charh.bool

19.定義一個(gè)表示學(xué)生性別的枚舉類型。

答:

enumTSex{male,female,unknown}

20.定義一個(gè)表示圖書信息的結(jié)構(gòu)類型。要求包含:書名、作者、出版社、定價(jià)、頁數(shù)、

書號(hào)等字段。試編寫一個(gè)簡(jiǎn)單的控制臺(tái)程序,使用ReadLine語句為一個(gè)圖書信息的各個(gè)字

段賦值,并用WriteLine語句在屏幕上顯示這些值。

參考程序:

usingSystem;

structTBook

publicstringName;〃書名

publicstringAuthor;〃作者

publicstringPub;〃出版社

publicdoublePrice;〃定價(jià)

publicintPages;〃頁數(shù)

publicstringISBN;〃書號(hào)

)

classClassi

(

publicstaticvoidMain(string[]args)

{

TBooktb=newTBook();

Console.WriteLine(”請(qǐng)輸入書名:”);

tb.Name=Console.ReadLine();

Console.WriteLine("請(qǐng)輸入作者:

tb.Author=Console.ReadLine();

Console.WriteLine("請(qǐng)輸入出版社:”);

tb.Pub=Console.ReadLine();

Console.WriteLine("請(qǐng)輸入定價(jià):”);

tb.Price=double.Parse(Console.ReadLine());

Console.WriteLine("請(qǐng)輸入頁數(shù):”);

tb.Pages=int.Parse(Console.ReadLine());

Console.WriteLine("請(qǐng)輸入書號(hào):");

tb.ISBN=Console.ReadLine();

ConsoIe.WriteLine("");

Console.WriteLine("《"+tb.Name+”》作者:"+tb.Author+","+tb.Pub+”出版

Console.WriteLine("定價(jià):"+tb.Price.ToStringO+"元,共計(jì)"+tb.Pages.ToStringO+”頁,書

號(hào):"+tb.ISBN);

)

)

界面如下:

圓命令提示符

:D1

請(qǐng)

\>書

De第

hi者

1入

人峪

1社

.

機(jī)

業(yè)

價(jià)

人定

請(qǐng)-

fes

58W。

11

《Delphi模式編程》作者:劉藝,機(jī)械工業(yè)出版社出版

定價(jià):65元,共計(jì)58。頁,書號(hào):7-111-14949-1

21.閱讀以下程序,分析運(yùn)行結(jié)果。

publicstaticvoidMain(string[]args)

(

boolb1=true;

boolb2=false;

boolb3=(1>2);

b3=b2;

b3=(b2==bl);

System.Console.WriteLine(Hb3is{0}",b3);

答:b3isfalse

程序設(shè)計(jì)進(jìn)階

復(fù)習(xí)題

1.什么是表達(dá)式?C#程序中復(fù)雜的表達(dá)式是如何建立的?

答:

一個(gè)表達(dá)式就是一個(gè)能夠返回值的簡(jiǎn)單結(jié)構(gòu)。最簡(jiǎn)單的表達(dá)式是變量和常量。在C#中也可

以通過使用運(yùn)算符、方法調(diào)用以及類型轉(zhuǎn)換等,建立復(fù)雜的表達(dá)式。

2.C#語言中主要有哪些運(yùn)算符?它們的優(yōu)先級(jí)是怎樣的?

C#語言中包括有賦值運(yùn)算符、增減運(yùn)算符、算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位

運(yùn)算符等。C#語言中主要運(yùn)算符及其優(yōu)先級(jí)如下:

優(yōu)先級(jí)運(yùn)算符類型運(yùn)算符

[].()(方法調(diào)用)

優(yōu)先級(jí)最高一元運(yùn)算符!~++--4—new

0(強(qiáng)制類型轉(zhuǎn)換)

算術(shù)運(yùn)算符*/%+-

優(yōu)先級(jí)較高

位移運(yùn)算符??

關(guān)系運(yùn)算符<<=>>==!=

&Al

優(yōu)先級(jí)較低位移運(yùn)算符

&&II

邏輯運(yùn)算符?:(三元判斷運(yùn)算符,例如:A>B?X:Y)

=

優(yōu)先級(jí)最低賦值運(yùn)算符

+=-=*=/=%=

3.在程序設(shè)計(jì)的流程控制中,有哪些基本結(jié)構(gòu)?這些結(jié)構(gòu)在C#語言中是如何實(shí)現(xiàn)的?

答:

在程序設(shè)計(jì)的流程控制中,有如下三種基本控制結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。

在C#語言中順序結(jié)構(gòu)由順序執(zhí)行的各條語句實(shí)現(xiàn);選擇結(jié)構(gòu)由if語句、switch語句實(shí)現(xiàn);

循環(huán)結(jié)構(gòu)由while語句、do-while語句、for語句實(shí)現(xiàn)。

4.在什么情況下循環(huán)過程會(huì)出現(xiàn)死循環(huán)?在C#語言中使用哪條語句可以跳出循環(huán)體?

答:

當(dāng)循環(huán)條件永遠(yuǎn)為真時(shí),也就是說永遠(yuǎn)無法達(dá)到循環(huán)的邊界時(shí)會(huì)出現(xiàn)死循環(huán)。使用break

關(guān)鍵字可以強(qiáng)行跳出循環(huán)體。

5.case語句有哪幾種變形?他們又如何使用?

答:

case語句的幾種變形有:簡(jiǎn)單的case語句、帶缺省語句的case語句、帶有多值分支的case

語句、帶有范圍值分支的case語句。

(使用方法略)

6.什么是算法?算法有哪些特征?

答:

算法是為了求解某一問題在有限步驟內(nèi)、定義了具體操作序列的規(guī)則集合。通俗點(diǎn)說,算

法就是針對(duì)一類特定問題,使用計(jì)算機(jī)解題的過程。一個(gè)算法應(yīng)該具有以下五個(gè)重要的特征:

?確切性(Noambiguity)算法的每一步驟必須有確切的定義。而不應(yīng)該有二義性,例

如,在算法中不能出現(xiàn)諸如“賦值為100或1000”。

?輸入(Input)有()個(gè)或多個(gè)輸入,用于初始化運(yùn)算對(duì)象。所謂()個(gè)輸入是指無需輸

入條件,而算法本身定出了初始條件。

?輸出(Output)沒有輸出的算法是毫無意義的。一個(gè)算法應(yīng)該有一個(gè)或多個(gè)輸出,

以反映對(duì)輸入數(shù)據(jù)加工后的結(jié)果。

?可行性(Feasibility)算法原則上能夠精確地運(yùn)行,而且對(duì)于算法中的每種運(yùn)算,在

原理上人們應(yīng)該能用筆和紙做有限次運(yùn)算后完成。

?有窮性(Finite)算法必須保證執(zhí)行有限步之后結(jié)束。只具有前面四個(gè)特征的規(guī)則集

合,稱不上算法。例如,盡管操作系統(tǒng)能完成很多任務(wù),但是它的計(jì)算過程并不終止,而是無

窮無盡的執(zhí)行、等待執(zhí)行,所以操作系統(tǒng)不是算法。

7.什么是排序算法?排序算法有哪些?

答:

為了更有效地使用數(shù)組,通過對(duì)數(shù)組中的元素進(jìn)行排序,使其按一定的順序排列的算法都

稱為排序算法。

排序算法有很多,如:冒泡排序、選擇排序、插入排序、快速排序、合并排序、希爾(Shell)

排序、堆排序等

8.什么是查找算法?查找算法有哪些?

答:

查找就是從列表(list)或者數(shù)組中找出需要的數(shù)據(jù)項(xiàng),確定目標(biāo)所在位置的算法,也叫檢

索。

查找的算法很多,有順序查找、折半查找、散列值查找、轉(zhuǎn)移表查找等。

測(cè)試題

9.以下運(yùn)算符按運(yùn)算優(yōu)先級(jí)從高到低排列順序正確的是

A、!、*、V、=

B、!、=、*、>=

C、!、*、&&、>=

D、!=、*>&&、>=

答案:A

10.以下循環(huán)語句的執(zhí)行次數(shù)是—O

intx=37;

inty=3;

while(y<=x)

(

y*=y;

)

A、0

B、1

C、2

D、3

答案:C

11.下列字符串比較的結(jié)果為真(True)的是

A、’aVA'

B、'c'v='A'

C、‘a(chǎn)'=='A'

D、’a,A'

答案:D

12.設(shè)有以下聲明,則合法的賦值語句是.

intil,i2,i3;

boolbl,b2,b3;

A、i3=il/i2;

B、bl=il&&i2;

C、b2=il<i2;

D、il=i2/b2;

答案:D

13.以下關(guān)于算法不正確論述的是—o

A、算法必須是一組定義完好且排列有序的指令集合。

B、一個(gè)算法可以產(chǎn)生一個(gè)結(jié)果也可以沒有結(jié)果。

C、一個(gè)算法必須能夠終結(jié)。

D、算法的每一步都必須有清晰明白的定義。

答案:B

14.算法的基本結(jié)構(gòu)組成不包括—o

A、順序結(jié)構(gòu)

B、選擇結(jié)構(gòu)

C、遞歸結(jié)構(gòu)

D、循環(huán)結(jié)構(gòu)

答案:C

15.下列循環(huán)結(jié)構(gòu)中至少執(zhí)行一次循環(huán)體的是

A、while...do

B、do...while

C、for...

D、for...do

答案:B

16.下面幾個(gè)關(guān)于取模運(yùn)算的說法正確的是

A.-28%3等于-1

B、-28%3等于2

C、28%-3等于-2

D、-3%28等于1

答案:A

17.下面程序運(yùn)行后,m的值是_

intm=14;

intn=63;

while(m!=n)

{

while(m>n)

(

m=m-n;

)

while(n>m)

(

n=n-m;

}

)

System.Console.WriteLine(m);

A、4

B、5

C、6

D、7

答案:D

18.下面程序執(zhí)行后move的值是—

intmove=0;

inty=68/8;

if(y>8)

(

move=y/2+5;

)

else

(

inta=y;

intb=6;

move=a%b;

)

System.Console.WriteLine(move);

A、1

B、2

C、3

D、4

答案:B

19.表達(dá)式25/3%3*2的值是—

A、4

B、4.0

C、6

D、8

答案:A

20.在for循環(huán)語句中漏環(huán)控制變量的取值是如何變化的?.

A、自動(dòng)增1

B、自動(dòng)減1

C、根據(jù)for語句的不同形式來確定

D、必須在循環(huán)體中給循環(huán)控制變量賦值

答案:C

21.在While循環(huán)語句中執(zhí)行的流程為.

A、先判斷后執(zhí)行

B、先執(zhí)行后判斷

C、由循環(huán)條件決定

D、可以先判斷,也可以先執(zhí)行

答案:A

22.指出下面程序的輸出結(jié)果是什么?—

publicstaticvoidMain(slring[]args)

{

constintA=4;

inta=2;

switch(a*2)

(

caseA:System.Console.WriteLine(a);

default:System.Console.WriteLine(a*2);

A、2

B、4

C、2和4

D、程序出錯(cuò)

答案:C

23.關(guān)于下面程序段的正確說法是。

charmychar='c';

switch(mychar)

{

default:

case'a':System.Console.WriteLine("a");break;

caseb:System.Console.WriteLine(Mb");break;

)

A、程序出錯(cuò),default位置不對(duì)。

B、程序出錯(cuò),case表達(dá)式必須是int類型,不能使用char類型。

C、程序正確,屏幕顯出輸出字符a。

D、程序正確,屏幕無顯出輸出。

答案:D

24.以下方式中,不方便表示算法的是一。

A、偽代碼

B、流程圖

C、Pascal語言

D、PAD圖

答案:C

25.累加求和是__o

A、基本算法

B、排序算法

C、查找算法

D、迭代和遞歸算法

答案:A

26.一是用于編寫解決問題的算法的兩種途徑。

A、求最大值和最小值

B、函數(shù)和過程

C、查找和排序

D、迭代和遞歸

答案:D

27.對(duì)一組數(shù)據(jù)(84,47,25,15,21)排序,數(shù)據(jù)的排列次序在排序的過程中變化如為:

(1)8447251521

(2)1547258421

(3)1521258447

(4)1521254784

則采用的排序方法是.

A、選擇排序

B、冒泡排序

C、快速排序

D、插入排序

答案:B

練習(xí)題

28.閱讀以下程序,分析運(yùn)行結(jié)果。

publicclassTotal

publicstaticvoidMain(string[]args)

inty,x=l,total=0;

while(x<=10)

y=x*x;

System.Console.WriteLine(y);

total+=y;

++x;

}

System.Console.WriteLine("totalisM+total);

答:1~10的整數(shù)平方的和。

29.指出以下程序段的錯(cuò)誤:

intsex=2%3;

if(sex=1)

{

System.Console.WriteLine("Man");

)

else

(

System.Console.WriteLine("Woman");

)

答:語法錯(cuò)誤,應(yīng)該改為sex==l。

30.指出以下程序段的錯(cuò)誤:

publicstaticvoidMain(slring[]args)

{

stringsay="Ilovemyteacher.M;

stringstr=say.Substring(7,10);

if(str=="myteacher")

System.Console.WriteLine("right!");

else

(

System.Console.WriteLine("wrong!");

)

}

答:

比較字符串是否相等應(yīng)該使用equals方法,而不能使用關(guān)系運(yùn)算符==。

t=="myteacher"

應(yīng)該改為

t.equals("myteacher")

31.指出以下程序段的錯(cuò)誤:

publicstaticvoidMain(string[largs)

(

inta=4;

inib=2;

switch(b*2)

(

casea:System.Console.WriteLine(a-b);

break;

caseb:System.Console.WriteLine(a+b);

)

)

答:switch語句的case分支的值必須是常量。

32.指出以下程序段的錯(cuò)誤:

publicstaticvoidMain(string[largs)

inta=3;

intb=6;

for(inti=a;i<=b;i++)

(

a=1;

b=5;

System.Console.WriteLine(i);

if(i>=(b-a))i-;

)

)

答:本題中沒有語法錯(cuò)誤,但在for語句的循環(huán)體內(nèi),對(duì)循環(huán)變量進(jìn)行操作,造成死循環(huán)。

33.指出以下程序段的錯(cuò)誤:

publicstaticvoidMain(slring[]args)

{

for(floaty=0;y!=1.2;y+=0.1)

(

System.Console.WriteLine(y);

if(y>1.5)break;

)

)

答:因?yàn)楦↑c(diǎn)數(shù)的值不精確,y只會(huì)等于1.20(X)002,而永遠(yuǎn)不會(huì)等于1.2,造成死循環(huán)。

34.試編寫一個(gè)程序,將卜500間能同時(shí)被2,5,7整除的數(shù)打印出來。

參考程序1一整除法:

classProgrami

(

publicstaticvoidMain(string[]args)

(

for(inti=l;i<=500;i++)

if((i%2==0)&&(i%5==0)&&(i%7==0))

System.Console.WriteLine(i);

參考程序2——公約數(shù)法:

classProgram2

publicstaticvoidMain(string[]args)

intk=0;

inti=l;

while(k<=500)

k=2*5*7*i;

if(k>=500)break;

System.Console.WriteLine(k);

i=i+l;

35.試編寫一個(gè)程序,顯示如圖所示的一個(gè)數(shù)字金字塔。

1

121

12321

1234321

123454321

12345654321

1234567654321

123456787654321

12345678987654321

參考程序:

publicclassNewClass

publicstaticvoidMain(string[]args)

inti=9;

for(introw=1;row<=i;row++)

(

for(intcolumn=l;column<=(i-row);column++)

(

System.ConsoIe.Write(',);

}

for(intcolumn=1;column<=row;column++)

(

System.Console.Write(column);

}

for(intcolumn=row-1;column>0;column")

(

System.Console.Write(column);}

System.Console.WriteLine();

)

)

)

)

36.如果我國的經(jīng)濟(jì)增長以每年7.5%的速度保持穩(wěn)定不變,試編寫一個(gè)程序,計(jì)算過

多少年可以實(shí)現(xiàn)總量翻兩番?

參考程序:

publicclassDoubleTimes

(

publicstaticvoidMain(string[]args)

{

intn=0;

doubleinc=0.075,sum=l;〃增長率inc為7.5%,當(dāng)前總量sum為1

while(sum<=4)

sum=(l+inc)*sum;〃計(jì)算總量

n++;〃計(jì)算年數(shù);

System.Console.WriteLine("第“+n+”年達(dá)至!!"+sum);

)

System.Console.WriteLine("—共"+n+"年實(shí)現(xiàn)翻兩番?!?;

37.將下列程序改寫為非遞歸形式。

intexam(intx)

(

intresult;

if(x==0)

result=1;

else

result=x*exam(x-1);

returnresult;

)

答:上面的函數(shù)可改寫如下:

intexam(intx)

(

inti,result,j=1;

if(x==0)

result=j;

if(x>0)

for(i=1;i<x;i++)

j=j*i;

result=j;

returnresult;

面向?qū)ο笈c對(duì)象模型

復(fù)習(xí)題

1.面向?qū)ο蟮闹饕攸c(diǎn)概括起來有哪些?

答:

面向?qū)ο蟮奶攸c(diǎn)主要概括為抽象性、繼承性、封裝性和多態(tài)性。

抽象性一指對(duì)現(xiàn)實(shí)世界中某一類實(shí)體或事件進(jìn)行抽象,從中提取共同信息,找出共同規(guī)律,

反過來又把它們集中在一個(gè)集合中,定義為所設(shè)計(jì)目標(biāo)系統(tǒng)中的對(duì)象。

繼承性一新的對(duì)象類由繼承原有對(duì)象類的某些特性或全部特性而產(chǎn)生出來,原有對(duì)象類稱

為基類(或稱超類),新的對(duì)象類稱為派生類(或子類),派生類可以直接繼承基類的共性,又

允許派生類發(fā)展自己的個(gè)性。繼承性簡(jiǎn)化了對(duì)新的對(duì)象類的設(shè)計(jì)。

封裝性一是指對(duì)象的使用者通過預(yù)先定義的接口關(guān)聯(lián)到某一對(duì)象的服務(wù)和數(shù)據(jù)時(shí),無需知

道這些服務(wù)是如何實(shí)現(xiàn)的。即用戶使用對(duì)象時(shí)無需知道對(duì)象內(nèi)部的運(yùn)行細(xì)節(jié)。這樣,以前所開

發(fā)的系統(tǒng)中已使用的對(duì)象能夠在新系統(tǒng)中重新采用,減少了新系統(tǒng)中分析、設(shè)計(jì)和編程的工作

量。

多態(tài)性一是指不同類型的對(duì)象可以對(duì)相同的激勵(lì)做出適當(dāng)?shù)牟煌憫?yīng)的能力。多態(tài)性豐富

了對(duì)象的內(nèi)容,擴(kuò)大了對(duì)象的適應(yīng)性,改變了對(duì)象單一繼承的關(guān)系。

2.什么是建模語言?什么是UML?

答'

建模語言是一種圖形化的文檔描述性語言,利用它所期望解決的核心問題是溝通障礙的問

題。而建模工具則是建模的輔助手段,利用它所期望解決的核心問題是生產(chǎn)力的問題。

UML是統(tǒng)一建模語言(TheUnifiedModelingLanguage)的英文縮寫,UML是一^通用的

可視化建模語言,用于對(duì)軟件進(jìn)行描述、可視化處理、構(gòu)造和建立軟件系統(tǒng)制品的文檔。它可

以把人們對(duì)所需要構(gòu)建系統(tǒng)的想法和理解記錄下來,以便用于對(duì)系統(tǒng)的分析、設(shè)計(jì)、研究、配

置和維護(hù)。UML適用于各種軟件開發(fā)方法、軟件生命周期的各個(gè)階段、各種應(yīng)用領(lǐng)域以及各種

開發(fā)工具,是一種總結(jié)了以往建模技術(shù)的經(jīng)驗(yàn)并吸收當(dāng)今優(yōu)秀成果的標(biāo)準(zhǔn)建模方法。

3.如何理解面向?qū)ο蟪绦蛟O(shè)計(jì)中的對(duì)象?

答:

我們可以從以下幾個(gè)方面來理解面向?qū)ο蟪绦蛟O(shè)計(jì)中的對(duì)象:

對(duì)象可以視為一組相關(guān)的操作代碼和數(shù)據(jù)的組合對(duì)象封裝了方法和數(shù)據(jù),并提供外部調(diào)用

的接口。這使得對(duì)象可以作為一個(gè)獨(dú)立的整體單元安全使用,維護(hù)了自身的完整性和可操作性。

在面向?qū)ο蟪绦蛟O(shè)計(jì)中,過程和函數(shù)被稱作方法,數(shù)據(jù)被稱作屬性。在對(duì)象模型中,可以用屬

性來表示對(duì)象的內(nèi)容或狀態(tài),用方法來表示對(duì)象的操作。理論上,可以把所有要解決的問題分

解成程序中的各個(gè)對(duì)象,由他們自己解決各自的問題。當(dāng)然,對(duì)象的粒度劃分仍然是面向?qū)ο?/p>

編程中的難題。

對(duì)象是類的實(shí)例對(duì)象可以視為神奇的變量,它相當(dāng)于“類”類型的變量。

對(duì)象可以互相協(xié)作,共同完成任務(wù)對(duì)象之間可以通過發(fā)送消息請(qǐng)求而相互聯(lián)系,在消息請(qǐng)

求中可以調(diào)用方法。面向?qū)ο蟪绦蛟O(shè)計(jì)中的一條典型的代碼可以是一個(gè)對(duì)象發(fā)送的一條消息,

消息由對(duì)象的名字后跟它的方法來表示。一個(gè)消息通常由三部分組成:接收對(duì)象的名字、對(duì)象

方法的名字和方法成參數(shù)。即:對(duì)象.方法(參數(shù));

通過繼承、組合或封裝等方式可以產(chǎn)成新的對(duì)象這種方式產(chǎn)生的新對(duì)象不僅最大限度地實(shí)

現(xiàn)了代碼的重用,并以此在程序中構(gòu)建復(fù)雜的體系,將系統(tǒng)的復(fù)雜性隱匿于對(duì)象的簡(jiǎn)易性之中。

對(duì)象根據(jù)特定的意義和用途有不同的劃分方法程序中的對(duì)象既可以劃分賬單對(duì)象、收銀員

對(duì)象這樣的實(shí)體對(duì)象,也可以劃分安全對(duì)象、協(xié)調(diào)對(duì)象、事務(wù)對(duì)象這樣的功能對(duì)象。通常我們

可以按照界面和邏輯分開的原則,將系統(tǒng)劃分為系統(tǒng)邏輯對(duì)象和用戶界面對(duì)象。

4.什么是類?類包括那些成員?

答:

類是對(duì)具有共同實(shí)現(xiàn)的一些對(duì)象或一系列對(duì)象的描述。類是用來創(chuàng)建對(duì)象的模板,類抽象

出具體對(duì)象的相似性,定義它們的共同特征,包括數(shù)據(jù)和操作。類包括了數(shù)據(jù)成員和函數(shù)成員。

5.什么是方法?C#中哪些方法相當(dāng)于函數(shù),哪些方法相當(dāng)于過程?

答:

方法是在類中定義,用來實(shí)現(xiàn)對(duì)象操作的過程或者函數(shù)。方法是屬于一個(gè)給定對(duì)象的過程

和函數(shù),方法反映的是對(duì)象的行為而不是數(shù)據(jù)。

通常C#中的方法可分為有返回值和沒有返回值的兩種,前者相當(dāng)于傳統(tǒng)程序中的函數(shù),后

者相當(dāng)于傳統(tǒng)程序中的過程。

6.對(duì)象之間有哪些關(guān)系?如何理解這些關(guān)系?

答:

對(duì)象之間的關(guān)系有:

?聚合關(guān)系("has—a”)

?繼承關(guān)系("is—a")

,依賴關(guān)系("use—a")

聚合關(guān)系("has—a”關(guān)系)從字面上很容易理解,它是指新對(duì)象由已有的對(duì)象組合而成,或

新對(duì)象包含有其他對(duì)象。比如,一個(gè)班級(jí)就包含多個(gè)學(xué)生。也就是說,聚合關(guān)系意味著類A的

對(duì)象包含類B的對(duì)象。

從另一個(gè)角度看,聚合關(guān)系又表現(xiàn)為對(duì)象之間的相互關(guān)聯(lián),有人更喜歡用概念更寬泛的“關(guān)

聯(lián)關(guān)系”(association)。因此,可以認(rèn)為聚合關(guān)系是關(guān)聯(lián)關(guān)系的一種,只是聚合關(guān)系在語義上更加

嚴(yán)格,甚至可以用來表示局部和整體的關(guān)系,例如要標(biāo)識(shí):一輛汽車(整體),和一個(gè)車身(局

部X一臺(tái)引擎(局部)和四個(gè)(輪子)之間的關(guān)系,就可以使用聚合關(guān)系。

繼承關(guān)系("一^'關(guān)系)用來表示對(duì)象與類之間所具有的泛化和特化關(guān)系。比如,TCar類

和TBicycle類從TVehicle類繼承而來。TVehicle稱為TCar和TBicycle的基類。TCar類具有特

定的方法,如:踩油門、點(diǎn)火熄火等。但它的其他方法,諸如:剎車、停車等,卻都是從TVehicle

類繼承過來的,這些與具體什么類型的車無關(guān)。一般而言,如果類A擴(kuò)展了類B,那么類A不

僅繼承類B中的方法,而且還具有更多的功能。

依賴關(guān)系("use—a”關(guān)系)是最明顯也最常見的關(guān)系。比如,由于Driver對(duì)象需要訪問某一

Car對(duì)象,以調(diào)用它的點(diǎn)火、踩油門、停車等方法,所以Driver對(duì)象要用到Car對(duì)象,兩者間

存在著依賴關(guān)系。

這就是說,如果一個(gè)對(duì)象的方法操作了另一個(gè)對(duì)象,那么這個(gè)對(duì)象就依賴于另一個(gè)對(duì)象。

所以在設(shè)計(jì)類的時(shí)候就應(yīng)盡量將相互依賴的類的數(shù)量減少到最少。如果類A不知道類B的存在,

那么它就不會(huì)關(guān)心類B的任何改變,這還意味著對(duì)類B的改變不會(huì)使類A產(chǎn)生任何bugo用軟

件工程術(shù)語來說,就是要使類間的耦合最小。

測(cè)試題

7.以下關(guān)于對(duì)象的說法不正確的是—o

A、組成客觀世界(事物)的不同實(shí)體可以看成是對(duì)象。

B、對(duì)象是一個(gè)具有封裝性和信息隱藏的獨(dú)立模塊。

C、對(duì)象可以分解和組合,還可以通過相似性原理進(jìn)行分類和抽象。

D、對(duì)象能更好地模擬計(jì)算機(jī)工作方式,體現(xiàn)計(jì)算機(jī)運(yùn)行規(guī)律,提高程序執(zhí)行效率。

答案:D

8.面向?qū)ο蟮奶攸c(diǎn)主要概括為—。

A、可分解性、可組合性、可分類性

B、繼承性、封裝性和多態(tài)性

C、抽象性、繼承性、封裝性和多態(tài)性

D、封裝性、易維護(hù)性、可擴(kuò)展性、可重用性

答案:C

9.在C#中最基本的類是__。

A、Control

B、Component

C、Object

D、Class

答案:c

10.不能在派生類中被覆蓋的方法是—.

A、虛方法

B、實(shí)例方法

C、靜態(tài)方法

D、抽象方法

答案:C

11.以下論述不正確的是_O

A、對(duì)象變量是對(duì)象的一個(gè)引用。

B、對(duì)象是類的一個(gè)實(shí)例。

C、一個(gè)對(duì)象可以作為另一個(gè)對(duì)象的數(shù)據(jù)成員。

D、對(duì)象不可以作為函數(shù)的參數(shù)傳遞。

答案:D

12.對(duì)象之間的繼承關(guān)系是__關(guān)系。

A、has—a

B、is—a

C^use—a

D>of-a

答案:B

13.以下Bridge與Road之間是__關(guān)系。

classBridge

(

Roadroad;

)

classRoad

(

Stringname;

)

A^has—a

B、is—a

C^use—a

D、of-a

答案:A

14.要使某個(gè)類能被同一個(gè)名稱空間中的其他類訪問,但不能被這個(gè)名稱空間以外的類訪

問,可以—。

A、讓該類不使用任何關(guān)鍵字。

B、使用private關(guān)鍵字。

C、使用const關(guān)鍵字。

D、使用protected關(guān)鍵字。

答案:A

15.UML是一種_

A、數(shù)據(jù)庫語言

B、程序設(shè)計(jì)語言

C、建模語言

D、面向?qū)ο笳Z言

答案:C

16.分析以下程序的運(yùn)行結(jié)果,得到的結(jié)論是.

publicclassMyClass

(

strings;

publicstaticvoidMain(string[]args)

(

MyClassm=newMyClass();

m.go();

)

voidMyClass()

(

s="constructor";

)

voidgo()

(

System.Console.WriteLine(s);

A、程序可以運(yùn)行,但屏幕沒有輸出任何字符。

B、程序可以運(yùn)行,屏幕輸出字符串為”null”。

C、程序可以運(yùn)行,屏幕輸出字符串為”constructor"。

D、程序無法編譯運(yùn)行。

答案:C

練習(xí)題

17.設(shè)計(jì)一個(gè)Retangle類,提供通過length和width字段計(jì)算面積和周長的2個(gè)方法。

并用main方法來測(cè)試程序。

參考答案:

publicclassRetangle

(

privatedoublelength;

privatedoublewidth;

publicRetangle(double1,doublew)

(

length=1;

width=w;

)

publicdoublecalcPerimeter()

(

return2*(length+width);

)

publicdoublecalcArea()

(

returnlength*width;

)

publicstaticvoidMain(string|]args)

{

Retangleretangle=newRetangle(640,480);

System.Console.WriteLine("長為"+retangle.length+"寬為"

+retangle.width+"的長方形");

System.Console.WriteLine("面積是:"+retangle.calcArea()

+"周長是:"4-retangle.calcPerimeter());

18.分析以下程序,繪出UML類圖,指出Vehicle與Engine這兩個(gè)類之間的關(guān)系,并給

出程序運(yùn)行結(jié)果。

publicclassVehicle

(

publicVehicle()

(

make=TiatSiena1.5EL”;

color="法拉利紅色”;

topSpeed=180;

)

publicstaticvoidmain(String[]args)

(

Vehiclecar=newVehicle();

ystem.out.println(car.showlnfo());

car.start();

car.speedUpO;

car.slowDow

溫馨提示

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