C Primer第五版 6 5 1節練習

2021-07-05 07:27:31 字數 1031 閱讀 1494

練習6.40:下面的哪個宣告是錯誤的?為什麼?

(a) int ff(int a, int b = 0, int c = 0)

(b) char *init(int ht = 24, int wd, char bckgrnd);

答:

(a)正確

(b)錯誤:p211一旦某個形參被賦予了預設值,它後面的所有形參都必須有預設值。

練習6.41:下面的哪個呼叫是非法的?為什麼?哪個呼叫雖然合法但顯然與程式設計師的初衷不符?為什麼?

char *init(int ht, int wd = 80, char bckgrnd = 『 』);

(a).init()//錯誤,ht沒有初始化

(b).init(24,10);//等價於init(24,10,』 』)

(c).init(14,』*』)//錯誤:中間wd,不能省略,只能省略尾部的實參。

練習6.42:給make_plural函式(參見6.3.2節,第201頁)的第二個形參賦予預設實參『s』,利用新版本的函式輸出單詞success和failure的單數和複數形式。

答案:見雲盤程式

練習6.42

/*

*練習6.42

*2015/6/23

*問題描述:練習6.42:給make_plural函式(參見6.3.2節,第201頁)的第二個形參賦予預設實參's',利用新版本的函式輸出單詞success和failure的單數和複數形式。

*功能:預設實參怎麼給的問題

* */

#include

#include

using

namespace

std;

string make_plural(size_t ctr, const

string &word, const

string &ending = "s") //這裡給乙個預設實參「s」

int main()

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 編寫一段程式讀入兩個字串,比較其是否相等並輸出結果。如果不相等,輸出較大的那個字串。改寫上述程式,比較輸入的兩...