當前位置:編程學習大全網 - 編程語言 - c++程序設計基礎教程課後答案(清華大學出版社鄭莉 董淵著)

c++程序設計基礎教程課後答案(清華大學出版社鄭莉 董淵著)

第 壹 章 概述

1-1 簡述計算機程序設計語言的發展歷程。

解:

迄今為止計算機程序設計語言的發展經歷了機器語言、匯編語言、高級語言等階段,C++語言是壹種面向對象的編程語言,也屬於高級語言。

1-2 面向對象的編程語言有哪些特點?

解:

面向對象的編程語言與以往各種編程語言有根本的不同,它設計的出發點就是為了能更直接的描述客觀世界中存在的事物以及它們之間的關系。面向對象的編程語言將客觀事物看作具有屬性和行為的對象,通過抽象找出同壹類對象的***同屬性(靜態特征)和行為(動態特征),形成類。通過類的繼承與多態可以很方便地實現代碼重用,大大縮短了軟件開發周期,並使得軟件風格統壹。因此,面向對象的編程語言使程序能夠比較直接地反問題域的本來面目,軟件開發人員能夠利用人類認識事物所采用的壹般思維方法來進行軟件開發。C++語言是目前應用最廣的面向對象的編程語言。

1-3 什麽是結構化程序設計方法?這種方法有哪些優點和缺點?

解:

結構化程序設計的思路是:自頂向下、逐步求精;其程序結構是按功能劃分為若幹個基本模塊;各模塊之間的關系盡可能簡單,在功能上相對獨立;每壹模塊內部均是由順序、選擇和循環三種基本結構組成;其模塊化實現的具體方法是使用子程序。結構化程序設計由於采用了模塊分解與功能抽象,自頂向下、分而治之的方法,從而有效地將壹個較復雜的程序系統設計任務分解成許多易於控制和處理的子任務,便於開發和維護。

雖然結構化程序設計方法具有很多的優點,但它仍是壹種面向過程的程序設計方法,它把數據和處理數據的過程分離為相互獨立的實體。當數據結構改變時,所有相關的處理過程都要進行相應的修改,每壹種相對於老問題的新方法都要帶來額外的開銷,程序的可重用性差。

由於圖形用戶界面的應用,程序運行由順序運行演變為事件驅動,使得軟件使用起來越來越方便,但開發起來卻越來越困難,對這種軟件的功能很難用過程來描述和實現,使用面向過程的方法來開發和維護都將非常困難。

1-4 什麽是對象?什麽是面向對象方法?這種方法有哪些特點?

解:

從壹般意義上講,對象是現實世界中壹個實際存在的事物,它可以是有形的,也可以是無形的。對象是構成世界的壹個獨立單位,它具有自己的靜態特征和動態特征。面向對象方法中的對象,是系統中用來描述客觀事物的壹個實體,它是用來構成系統的壹個基本單位,由壹組屬性和壹組行為構成。

面向對象的方法將數據及對數據的操作方法放在壹起,作為壹個相互依存、不可分離的整體--對象。對同類型對象抽象出其***性,形成類。類中的大多數數據,只能用本類的方法進行處理。類通過壹個簡單的外部接口,與外界發生關系,對象與對象之間通過消息進行通訊。這樣,程序模塊間的關系更為簡單,程序模塊的獨立性、數據的安全性就有了良好的保障。通過實現繼承與多態性,還可以大大提高程序的可重用性,使得軟件的開發和維護都更為方便。

面向對象方法所強調的基本原則,就是直接面對客觀存在的事物來進行軟件開發,將人們在日常生活中習慣的思維方式和表達方式應用在軟件開發中,使軟件開發從過分專業化的方法、規則和技巧中回到客觀世界,回到人們通常的思維。

1-5 什麽叫做封裝?

解:

封裝是面向對象方法的壹個重要原則,就是把對象的屬性和服務結合成壹個獨立的系統單位,並盡可能隱蔽對象的內部細節。

1-6 面向對象的軟件工程包括哪些主要內容?

解:

面向對象的軟件工程是面向對象方法在軟件工程領域的全面應用,它包括面向對象的分析(OOA)、面向對象的設計(OOD)、面向對象的編程(OOP)、面向對象的測試(OOT)和面向對象的軟件維護(OOSM)等主要內容。

1-7 簡述計算機內部的信息可分為幾類?

解:

計算機內部的信息可以分成控制信息和數據信息二大類;控制信息可分為指令和控制字兩類;數據信息可分為數值信息和非數值信息兩類。

1-8 什麽叫二進制?使用二進制有何優點和缺點?

解:

二進制是基數為2,每位的權是以2 為底的冪的進制,遵循逢二進壹原則,基本符號為0和1。采用二進制碼表示信息,有如下幾個優點:1.易於物理實現;2.二進制數運算簡單;3.機器可靠性高;4.通用性強。其缺點是它表示數的容量較小,表示同壹個數,二進制較其他進制需要更多的位數。

1-9 請將以下十進制數值轉換為二進制和十六進制補碼:

(1)2 (2)9 (3)93

(4)-32 (5)65535 (6)-1

解:

(1) (2)10 = (10)2 = (2)16

(2) (9)10 = (1001)2 = (9)16

(3) (93)10 = (1011101)2 = (5D)16

(4) (-32)10 = (11100000)2 = (E0)16

(5) (65535)10 = (11111111 11111111)2 = (FFFF)16

(6) (-1)10 = (11111111 11111111)2 = (FFFF)16

1-10 請將以下數值轉換為十進制:

(1)(1010)2 (2)(10001111)2 (3)(01011111 11000011)2

(4)(7F)16 (5)(2D3E)16 (6)(F10E)16

解:

(1)(1010)2 = (10)10

(2)(10001111)2 = (143)10

(3)(01011111 11000011)2 = (24515)10

(4)(7F)16 = (127)10

(5)(2D3E)16 = (11582)10

(6)(F10E)16 = (61710)10

1-11 簡要比較原碼、反碼、補碼等幾種編碼方法。

解:

原碼:將符號位數字化為 0 或 1,數的絕對值與符號壹起編碼,即所謂"符號——絕對值表示"的編碼。

正數的反碼和補碼與原碼表示相同。

負數的反碼與原碼有如下關系:

符號位相同(仍用1表示),其余各位取反(0變1,1變0)。

補碼由該數反碼的最末位加1求得。

第 二 章 C++簡單程序設計

2-1 C++語言有那些主要特點和優點?

解:

C++語言的主要特點表現在兩個方面,壹是全面兼容C,二是支持面向對象的方法。C++是壹個更好的C,它保持了C的簡潔、高效、接近匯編語言、具有良好的可讀性和可移植性等特點,對C的類型系統進行了改革和擴充,因此C++比C更安全,C++的編譯系統能檢查出更多的類型錯誤。 C++語言最重要的特點是支持面向對象。

2-2 下列標識符哪些是合法的?

Program, -page, _lock, test2, 3in1, @mail, A_B_C_D

解:

Program, _lock, test2, A_B_C_D是合法的標識符,其它的不是。

2-3 例2.1中每條語句的作用是什麽?

#include <iostream.h>

void main(void)

{

cout<<"Hello!\n";

cout<<"Welcome to c++!\n";

}

解:

#include <iostream.h> //指示編譯器將文件iostream.h中的代碼

//嵌入到該程序中該指令所在的地方

void main() //主函數名,void 表示函數沒有返回值

{ //函數體標誌

cout<<"Hello!\n"; //輸出字符串Hello!到標準輸出設備(顯示器)上。

cout<<"Welcome to c++!\n"; //輸出字符串Welcome to c++!

}

在屏幕輸出如下:

Hello!

Welcome to c++!

2-4 使用關鍵字const而不是#define語句的好處有哪些?

解:

const定義的常量是有類型的,所以在使用它們時編譯器可以查錯;而且,這些變量在調試時仍然是可見的。

2-5 請寫出C++語句聲明壹個常量PI,值為3.1416;再聲明壹個浮點型變量a,把PI的值賦給a。

解:

const float PI = 3.1416;

float a = PI;

2-6 在下面的枚舉類型中,Blue的值是多少?

enum COLOR ;

解:

Blue = 102

2-7 註釋有什麽作用?C++中有哪幾種註釋的方法?他們之間有什麽區別?

解:

註釋在程序中的作用是對程序進行註解和說明,以便於閱讀。編譯系統在對源程序進行編譯時不理會註釋部分,因此註釋對於程序的功能實現不起任何作用。而且由於編譯時忽略註釋部分,所以註釋內容不會增加最終產生的可執行程序的大小。適當地使用註釋,能夠提高程序的可讀性。在C++中,有兩種給出註釋的方法:壹種是延用C語言方法,使用"/*"和"*/"括起註釋文字。另壹種方法是使用"//",從"//"開始,直到它所在行的行尾,所有字符都被作為註釋處理。

2-8 什麽叫做表達式?x = 5 + 7是壹個表達式嗎?它的值是多少?

解:

任何壹個用於計算值的公式都可稱為表達式。x = 5 + 7是壹個表達式,它的值為12。

2-9 下列表達式的值是多少?

1. 201 / 4

2. 201 % 4

3. 201 / 4.0

解:

1. 50

2. 1

3. 50.25

2-10 執行完下列語句後,a、b、c三個變量的值為多少?

a = 30;

b = a++;

c = ++a;

解:

a:32 ; b:30 ; c:32;

2-11 在壹個for循環中,可以初始化多個變量嗎?如何實現?

解:

在for循環設置條件的第壹個";"前,用,分隔不同的賦值表達式。

例如:

for (x = 0, y = 10; x < 100; x++, y++)

2-12 執行完下列語句後,n的值為多少?

int n;

for (n = 0; n < 100; n++)

  • 上一篇:電影網的觀影指南
  • 下一篇:蘋果強制64位是必須編譯arm64芯片的嗎
  • copyright 2024編程學習大全網