C Primer第五版 3 3 3節練習

2021-07-05 05:39:25 字數 2516 閱讀 3871

練習3.16:編寫一段程式,把練習3.13中vector物件的容量和具體內容輸出出來。檢驗你之前的回答是否正確,如果不對,回過頭重新學習3.3.1節(第87頁)直到弄明白錯在何處為止。

練習3.17:從cin讀入一組詞並把它們存入乙個vector物件,然後設法把所有詞都改寫為大寫形式。輸出改變後的結果,每個詞佔一行。

練習3.18:下面的程式合法嗎?如果不合法,你準備如何修改?

vector ivec;

ivec [0] = 42;

練習3.19:如果定義乙個含有10個元素的vector物件,所有元素的值都是42,請列舉出三種不同實現的方法。哪種方法更好呢?為什麼?

練習3.20:讀入一組整數並把它們存入乙個vector物件,將每對相鄰整數的和輸出出來。改寫你的程式,這次要求先輸出第乙個和最後1個元素的和,接著輸出第2個和倒數第2個元素的和,以此類推。

答:練習3.16,見程式

練習3.17,見程式

練習3.18 不合法,第二步改為,ivec.push_back(10);

練習3.19 vector ivec;

第一種:ivec(10,42);

第二種:ivec=

第三種:for(int i = 0;i != 10; ++i)

ivec.push_back(10);

練習3.20 見程式。

練習3.16

#include 

#include

using

namespace

std;

int main()

; for (auto &i : v4)

cout

<< " v4 "

<< i << " ";

cout

<< endl;

vector

v5;

for (auto &i : v5)

cout

<< "v5 "

<< i << " ";

cout

<< endl;

vector

v6;

for (auto &i : v6)

cout

<< "v6 "

<< i << " ";

cout

<< endl;

vector

v7;

for (auto &i : v7)

cout

<< "v7 "

<< i << " ";

cout

<< endl;

return

0; }

練習3.17

#include 

#include

#include

using

namespace

std;

int main()

return

0;}

練習3.20-1

#include 

#include

#include

using

namespace

std;

int main()

}cout

<< endl;

return

0;}

練習3.20-2

#include 

#include

#include

using

namespace

std;

int main()

cout

<< endl;

return

0;}

練習3.20-3

/*

** 針對練習3.20-2裡面 最輸出來等長度和的問題,實際只要輸出到中間位置,進行了**改進,改進思路,主要在輸出上進行改進,用了兩個vector配合,因地制宜 **/

#include

#include

#include

using

namespace

std;

int main()

/*if (ivec.size()/2 == 0)

auto counter = ivec.size()/2;

else

auto counter = (ivec.size()+1)/2;

*/for (decltype(ivec1.size()) j = 0; j !=(ivec.size()/2==0?ivec.size()/2:(ivec.size()+1)/2); ++j)

//j != ...這一步判斷,

//ivec的元素個數是奇數還是偶數,對應情況輸出到哪個位置

cout

<< ivec1[j] << " ";

cout

<< endl;

return

0;}

C Primer第五版 2 4 3節練習

練習2.30 對於下面的這些語句,請說明物件被宣告成了頂層const還是底層const?const int v2 0 v2的值不能被改變,所以這是乙個頂層const int v1 v2 int p1 v1,r1 v1 const int p2 v2 p2存放的是v2的位址,不能間接改變v2的值,但p...

C Primer第五版 2 5 3節練習

練習 2.36 關於下面的 請指出乙個變數的型別以及程式結束時它們各自的值。include int main 練習 2.37 賦值是會產生引用的一類典型表示式,引用的型別就是左值的型別。也就是說,如果i是int,則表示式 i x的型別是int 根據這一特點,請指出下面的 中每乙個變數的型別和值。in...

C Primer第五版 3 2 2節練習

練習3.2 編寫一段程式從標準輸入中一次讀入一整行,然後修改該程式使其一次讀入乙個詞。練習3.3 請說明string類的輸入運算子和getline函式分別是如何處理空白字元的。練習 3.4 編寫一段程式讀入兩個字串,比較其是否相等並輸出結果。如果不相等,輸出較大的那個字串。改寫上述程式,比較輸入的兩...