習題八

一、填空題

(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     )。

A. cout< <setf(ios:.dec ,ios:basefield);

B. cout< <setf(ios::hex,iosbasefield);

 C. cout< < setf(iosl.octios..; basefield);

D. cin>>setf(iosthex.ios:basefield);

(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';                                          
B. cout<<put('A');
C. coul. put('A');                                    
 D. char a='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                      

C. app                          

D. ate

(15)下面(    B C D    )語句以寫的方式打開文件“myfile. dat”。

A. ifstream infile( "myfile. dat" ,ios:in);

B. fstream infile("myfile. dat" ,ios::app);

C. fstream infile( "myfile. dat" ,ios::out);

D. ofstream infile( "myfile. dat");

(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()是用來將一個字符串送到一種輸出流中,但必須將一個字符串中全部字符都送到輸出流中。 (錯)

(5)以app方式打開文件時,當前指針定位於文件尾。                                            (對)

(6) read()函數只能用於文本文件的操作中。                                                         (錯)

四、簡答題

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

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

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

           答: 在文術文件中,每個字節存放一 個ASCII 代碼表示一個字符,文本文件的優點是可直接按字符形式輸出,供人們閱讀。二進制 文件則是把數據的內部存儲形式原樣作放到文件中。這種文件的優點是與數據在內存中的存儲形式保持一致,因此存儲效率高,無須進行存儲形式的轉換,但不能直接按字符形式輸出。對於那些保存中間運算結果的臨時工作文件,使用二進制形式較爲合理。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章