c 第四章複習題

2021-07-25 21:42:43 字數 1903 閱讀 2964

8.設計乙個描述魚的結構宣告。結構中應當包括品種、重量(整數,單位為盎司)和長度(英吋、包括小數)。

答:

struct fish

;

12、

假設treacle是乙個包含10個元素的float陣列,請宣告乙個指向treacle的第乙個元素的指標,並使用該指標來顯示陣列的第乙個元素和最後乙個元素。

答:

float *pf = treacle;

cout<

13、編寫一段**,要求使用者輸入乙個正整數,然後建立乙個動態的int陣列,其中包含的元素數目等於使用者輸入的值。首先使用new來完成這項任務,再使用vector物件來完成這項任務。

unsigned int n;

cout<<"please enter an integer:"<>n;

int *pa=new int[n];

使用vector物件來完成這個任務:

#includeusing namespace std;

unsigned int n;

cout<<"please enter an integer: ";

cin>>n;

vectorvi(n);

15、

編寫一段**,給問題8中描述的結構動態分配記憶體,再讀取該結構的成員的值。

struct fish

;fish *pa = new fish;

cout<<"please enter kind of fish: ";

cin>>pa->kind;

cout<<"please enter weight of fish: ";

cin>>pa->weight;

cout<<"please enter lenght of fish: ";

cin>>pa->length;

或者

cin>>(*pa).kind;

cin>>(&pa).weight;

cin>>(*pa).length;

16.程式清單4.6指出了混合輸入數字和一行字串儲存的問題。如果將下面**:

cin.getline(address,80);

替換為cin >> address;

將對程式的執行帶來什麼影響?

答:先了解一下:

cin.getline():面向行的輸入,讀取整行,使用回車鍵輸入的換行符來確定輸入結尾,並丟棄換行符。

cin.get():面向行的輸入,讀取到行尾,不再讀取換行符並且不丟棄換行符,二是將其留在輸入佇列中。

貼上4.6的例子:

#includeint main()

{ using namespace std;

cout<<"what year was your house built?"<>year;

cout<<"what is its address?"<>address將使程式跳過空白,直到找到空白字元為止。

附加解決方法

cin>>year;

cin.get();//or cin.get(ch)

//(cin>>year).get();

17.宣告乙個vector物件和乙個array物件,他們都包含10個string物件。指出所需的標頭檔案,但不要使用using。使用const來指定要包含的string物件數。[cpp]

view plain

c

#includeconst int num=10;

std::vectorvi(num);

std::stringstr;

C 第四章習題

1 定義乙個複數類complex,過載運算子 使之能用於複數的加法運算。將運算子函式過載為非成員 非友元的普通函式。程式設計序,求兩個複數之和。2 定義乙個複數類complex,過載運算子 使之能用於複數的加減乘除。運算子過載函式作為complex類的成員函式。程式設計序,分別求兩個複數之和 差 積...

第四章習題

一。填空題 1 基 派生 2 單繼承 多繼承 3 私有繼承方式 4 公有 保護 5 多繼承 6 支配原則 7 解決二義性 8 使用作用域運算子 引進虛基類 二。選擇題 1 5 b cd abc c a 6 10 c b d ad a 三。判斷題 f t f t f f 四。簡答題 1.在物件導向技術...

第四章 習題

一 填空題 1 如類果類a繼承了b,那麼類a被稱為 基類,而類b被稱為 派生類。2 c 的兩種繼承為 單繼承和 多繼承。3 在預設情況下的繼承方式為 私有繼承方式 4 從基類中公有派生乙個類時,基類的公有成員就成為派生類的 公有 成員,而這個基類的保護成員就成為派生類的 保護成員。5 c 提供了 多...