C primer第三章作業

2022-03-21 02:12:52 字數 4014 閱讀 7350

使用恰當的using宣告重做1.4.1節(第11頁)和2.6.2節(第67頁)的練習

#ifdef 1

#include using std::cin;

using std::cout;

using std::endl;

int main(void)

cout << sum << endl;

return 0;

}#endif

#ifdef 2

#include using std::cin;

using std::cout;

using std::endl;

int main(void)

return 0;

}#endif

#ifdef 3

#include using std::cout;

using std::cin;

using std::endl;

int main(void)

return 0;

}#endif

編寫一段程式從標準輸入中一次讀入一整行,然後修改該程式使其一次讀入乙個詞。

#include #include using std::cin;

using std::cout;

using std::endl;

using std::string;

int main(void)

請說明string類的輸入運算子和getline函式分別是如何處理空白字元的。

空白字元包含換行符,空格符,製表符等。

cin從第乙個非空白字元開始,將標準輸入流的字元傳遞給指定字串,並且以空字元為結束。

getline從標準輸入流讀取使用者輸入的內容,以換行符作為結束(換行符也被讀入流),並將流寫入str(拋棄換行符)。

編寫一段程式讀入兩個字串,## 3.1節

使用恰當的using宣告重做1.4.1節(第11頁)和2.6.2節(第67頁)的練習

#ifdef 1

#include using std::cin;

using std::cout;

using std::endl;

int main(void)

cout << sum << endl;

return 0;

}#endif

#ifdef 2

#include using std::cin;

using std::cout;

using std::endl;

int main(void)

return 0;

}#endif

#ifdef 3

#include using std::cout;

using std::cin;

using std::endl;

int main(void)

return 0;

}#endif

編寫一段程式從標準輸入中一次讀入一整行,然後修改該程式使其一次讀入乙個詞。

#include #include using std::cin;

using std::cout;

using std::endl;

using std::string;

int main(void)

請說明string類的輸入運算子和getline函式分別是如何處理空白字元的。

空白字元包含換行符,空格符,製表符等。

cin從第乙個非空白字元開始,將標準輸入流的字元傳遞給指定字串,並且以空字元為結束。

getline從標準輸入流讀取使用者輸入的內容,以換行符作為結束(換行符也被讀入流),並將流寫入str(拋棄換行符)。

編寫一段程式讀入兩個字串,比較其是否相等並輸出結果。如果不相等,輸出較大的那個字串。改寫上述程式,比較輸入的兩個字串是否等長,如果不等長,輸出長度較大的那個字串。

#include #include using std::cin;

using std::cout;

using std::endl;

using std::string;

int main(void)

if (str1.size() != str2.size())

return 0;

}

編寫一段程式從標準輸入中讀入多個字串並將它們連線在一起,輸出連線成的大字串。然後修改上述程式,用空格把輸入的多個字串分隔開來。

#include #include using std::cin;

using std::cout;

using std::endl;

using std::string;

int main(void)

編寫一段程式,使用範圍for語句將字串內的所有字元用x代替。

string str = "hello world";

cout << str << endl;

for (auto &c : str)

就上一題完成的程式而言,如果將迴圈控制變數的型別設為char 將發生什麼?先估計一下結果,然後實際程式設計驗證。

將迴圈變數改為char型別,字串的值不會改變。

分別用while迴圈和傳統的for迴圈重寫第一題的程式,你覺得哪種形式更好呢?為什麼?

我覺得區別不大

string str = "hello world";

cout << str << endl;

//1for (auto &c : str)

//2int i = 0;

while (i < str.size())

cout << str << endl;

//3// int i;

// for (i = 0; i < str.size(); i++)

// str[i] = 'x';

// cout << str << endl;

下面的程式有何作用?它合法嗎?如果不合法,為什麼?

string s;

cout << s[0] << endl;

s為空,s[0]的結果未定義,書上的答案。具體還有待探索。

編寫一段程式,讀入乙個包含標點符號的字串,將標點符號去除後輸出字串剩餘的部分。

下面的範圍for語句合法嗎?如果合法,c的型別是什麼?

const string s = "keep out!";

for (auto &c : s)

不合法,s是乙個常量字串,不能對其進行修改。

下列vector物件的定義有什麼不正確的嗎?如果有,請指出來。對於正確的,描述起執行結果;對於不正確的,說明其錯誤的原因。

(a) vector> vec;

(b) vectorsvec = ivec;

(c) vectorsvec(10, "null");

b選項不正確,型別不匹配。

下列的vector物件各包含多少個元素?這些元素的值分別是多少?

(a) vectorv1;

0個(b) vectorv2(10);

10個0

(c) vectorv3(10, 42);

10個42

(d) vectorv4;

1個10

(e) vectorv5;

2個元素,10和42

(f) vectorv6;

1個10

編寫一段程式,用cin讀入一組整數並把它們存入乙個vector物件

C primer第三章作業

使用恰當的using宣告重做1.4.1節 第11頁 和2.6.2節 第67頁 的練習 ifdef 1 include using std cin using std cout using std endl int main void cout sum endl return0 endif ifdef...

C primer 第三章備忘。

1 處理每個字元?使用基於範圍的for語句 for declaration expression statement 其中expression部分是乙個物件,表示乙個序列 declaration部分負責定義乙個變數,用以訪問序列中的基礎元素 例子 string str some string for...

c primer 筆記,第三章

初始化string物件的6種方式 string s1 預設空串 sting s2 s1 string s2 s1 string s3 value 直接初始化 string s3 value 拷貝初始化 string s4 n,c 由連續n個字元c組成的串在讀寫string物件時,string物件會自...