第八章 習題

2021-08-20 21:43:38 字數 3168 閱讀 2652

一、填空題

(1)在c++的輸入輸出系統中,最核心的物件是 流 。執行輸入和輸出操作的類體系叫做 流類 。

(2)當實際進i/o操作時,cin與 標準輸入裝置相關聯。

(3)c++的流類庫預定義了4個流,它們是 cin 、 cout 、 cerr 、和 clog 。

(4)使用檔案流類庫的程式必須用#include編譯指令將標頭檔案 fstream.h 包含進來。

(5)c++的i/o流類庫提供了2種控制格式輸入輸出的方法。一種是用 ios類的成員函式 ,另一種是 使用控制符 。

(6)按資料的訪問方式來分類,檔案可分為 順序檔案 和 隨機讀寫檔案 。

(7)c++中共有3種檔案流,它們是 輸入檔案流 、 輸出檔案流 、和 輸入/輸出檔案流 。

(8)開啟檔案就是使乙個檔案流物件與 乙個指定的檔案 相關聯。

(9)如果開啟檔案失敗,則流物件的值為 0 。

(10)最好用istream的函式和 read ostream 的函式 write 分別來讀/寫二進位制檔案。

二、選擇題(至少選乙個,可以多選)

(1)進行檔案輸人操作時應包含( b )檔案。

a. ifstream.h

b. fstream.h

c. ofstream.h

d.iostream. h

(2)下列類中( a )不是輸人輸出流類iostream的基類。

a. fstream

b. istream

c. ostream

d.ios

(3)在下列選項中( b c d )是ostream類的物件。

a. cin

b. cerr

c. clog

d. cout

(4)使用控制符進行格式輸出時,應包含( c )檔案。

a. iostream. h

b. math. h

c. iomanip. h

d. fstream. h

(5)在ios類提供的控制格式標誌字中,( a )是轉換為十六進製制形式的標誌常量。

a. hex

b. oct

c. dec

d. right

(6)下列選項中,用於清除基數格式位設定以八進位制輸出的語句是( c )。

(7)函式stais:dusifiled中a的值可以是( a b )

a. ios::left

b. ios::right

c. ios::hec

d. ios::oct

(8) 下列格式控制符,在iostream. h中定義的是( a d ),在iomanip.b中定義的是( b c )。

a. endl

b. setfill

c. setw

d. oct

(9)控制輸出格式的控制符中,( d )是設定輸出寬度的。

a. ws

b. ends

c. sefill()

d. setw()

(10)下列輸出字元』a』的方法中,( b )是錯誤的。

a. cout<<』a』;

(11)關於對getline()函式的下列描述中,( a )是錯誤的。

a.該函式所使用的終止符只能是換行符

b.該函式是從鍵盤上讀取字元審的

c.該函式所讀取的字串的長度是受限制的

d. 該函式讀取字元審時遇到終止符便停止

(12) 下面( b c )語句能把」hello,students」賦值給乙個字元陣列string[50].

a. cin> > string;

b. cin. getline(string ,80);

c. cin, get(string,40,』\n』);

d. cin. get(string);

(13)關於read()函式的下列描述中,( c )是正確的。

a.該函式只能從鍵盤輸人中獲取字串

b.該函式只能用於文字檔案的操作

c.該函式只能按規定讀取指定數目的字元

d.從輸**中讀取一行字元

(14)在開啟磁碟檔案的訪問方式常量中,( c )是以追加方式開啟檔案的。

a. in

b. out

(16)假定已定義整型變數data,以二進位制方式把data的值寫人輸出檔案流物件outile中去,正確的語句是( c )

a. outfile. write((int* )&data ,sizeof(int));

b. outfile. write((int* )&data,data);

c. outfile. write( (char* )&data ,sizeof(int));

d. outfile, write((char* )&data,data);上iesd

三、判斷題

(1)流格式標誌字的每位表示一種格式,格式位之間互不影響。 (錯)

(2)控制符本身是一一種物件,它可以直接被提取符或插人符操作。 (對)

(3)預定義的提取符和插人符都是可以過載的。 (對)

(4)函式write()是用來將乙個字串送到一種輸出流中,但必須將乙個字串中全部字元都送到輸出流中。 (錯)

(6) read()函式只能用於文字檔案的操作中。 (錯)

四、簡答題

(1)分析說明c++語言的流類庫中為什麼要將ios類作為其派生類的虛基類。

答: 從流類庫的基本結構可以看到,ios類是istream 類和ostream 類的基類,從ios頭公有派生 istream 和ostream兩個類, 而iostream 類通過多重繼承istream 類和ostream類而產生的。如果不將ios類作為其派生類的虛基類,可能會產生二義性:

(2)文字檔案與二進位制檔案有什麼區別?並說明在什麼情況下應該使用文字檔案?在 什麼情況下使用二進位制檔案。

答: 在文術檔案中,每個位元組存放一 個ascii **表示乙個字元,文字檔案的優點是可直接按字元形式輸出,供人們閱讀。二進位制 檔案則是把資料的內部儲存形式原樣作放到檔案中。這種檔案的優點是與資料在記憶體中的儲存形式保持一致,因此儲存效率高,無須進行儲存形式的轉換,但不能直接按字元形式輸出。對於那些儲存中間運算結果的臨時工作檔案,使用二進位制形式較為合理。

第八章習題

習題2 define crt secure no warnings include int main void else if ch t else else if num 10 0 num 0 putchar n return 0 疑問 printf n d n ch num 0 書上有這樣一句話 ...

第八章 課後習題

1.掌握格式化的輸入輸出方法。2.熟悉系統提供的輸入操作函式。3.掌握磁碟檔案的輸入輸出方法。1.程式sy9 1.cpp用以列印表中的資料,但程式中存在邏輯錯誤。上機除錯後寫出正確的 原程式如下 修改後的程式如下 sy9 1.cpp include include using namespace s...

第八章 指標 第八章 指標

1 什麼是位址 include using namespace std int main 11 在堆中建立對像 我們既然可以在堆中儲存變數,那麼也就可以儲存對像,我們可以將對像儲存堆中,然後通過指標來訪問它 include using namespace std class human 14 在建構...