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 提供了 多...