第九章答案文件_第1頁
第九章答案文件_第2頁
第九章答案文件_第3頁
第九章答案文件_第4頁
第九章答案文件_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

3練習題解答1口在 C++的輸入輸出操作中, □□□□□□□□□□ ?□□□□□□□□□是提取操作 ?什么是插入操作 ?答:C++語言將輸入信息和輸出信息都看作為信息流,或者是字符流,或者是二進制碼流,因此,稱為輸人流和輸出流。輸人流是輸入的信息流,輸出流是輸出的信息流。從“流”的角度來講,提取操作是從輸入信息流中讀取信息,將它存放在機器中;插入操作是向輸出信息流中加入信息, 將它流向某個指定的設備或文件中去。2口系統(tǒng)預定義的流類對象中, cin和cout□□□□□□ ?答:cin是istream□□□□,□□□□□□□□□□,□□□□□□cout是ostream□□□□,□□□□□□□□□□,□□□□□□□□3.屏幕輸出一個字符串有哪些方法 ?屏幕輸出一個字符有哪些方法答:屏幕輸出一個字符串通常使用下述方法。(1)標準輸出流對象 cout□□□□□□□□□□□,cout□□□outputastring!□n”;(2)使用成員函數(shù)write()輸出一個字符串。例如,cout.write(”string”,strlen(”string”));屏幕輸出一個字符通常也有兩種方法。⑴使用cout□□□□□□□□□(2)例如。coutQQ‘ a‘QQ’,‘□□□b’□口 endl;(2)使用成員函數(shù)put()輸出一個字符。例如,cout.put(’a“)。put(’,’)□put(‘b')□put(□□n');4.鍵盤輸入一個字符串有哪些方法 ?鍵盤輸入一個字符有哪些方法答:鍵盤輸入一個字符串通常使用下述方法:⑴使用標準輸入流對象 cin和提取符口口。例如cin□□a□口b;(2)使用成員函數(shù)read()輸入一個字符串。例如chars[80]=” "cin.read(s,80);□3)使用成員函數(shù) getline()輸入一行字符串。例如charbuf[80];cin.getline(buf,80)5鍵盤輸入一個字符通常用下述兩種方法。⑴使用cin和提取符口口。例如Charcl,c2;cin口口cl口□c2;(2)使用成員函數(shù) get()輸入一個字符。例如

Charc;cin.get(c);5口如何輸出一個 int□□□□□□□□□□□:□□□□int□□□□□□□□□,□□□□□□□□例如inta口123:輸出a的十進制數(shù)值:cout口口dec□□a□口endl:默認為十進制。輸出a的八進制數(shù)值cout口口oct□□a□口endl;輸出a的十六進口數(shù)值cout口口hex□口a□口endl:6.如何輸出一個浮點數(shù)的不同精度 ?答:設置浮點數(shù)的精度有兩種方法。⑴使用成員函數(shù) precision。設置浮點數(shù)有效數(shù)字的位數(shù)。例如0,超過 80,超過 8位四舍五0,即按實際寬度表明輸出浮點數(shù)的有效數(shù)字位數(shù)為 8位,不足8位后補人取8位。(2)使用操作子setsprecision(int)設置浮點數(shù)精度。例如cout□□setsprecision⑻<<1.23456789<<endl:輸出結果為1.23456789,不含小數(shù)點,共 8位。7.如何確定輸出數(shù)據(jù)項的寬度 ?答:確定輸出數(shù)據(jù)項寬度的方法如下:(1)使用成員函數(shù)width()確定輸出寬度。例如cout.Width(10):表明下面輸出的數(shù)據(jù)項最小寬度為 10個字符位置,超過后按實際寬度,不足補填充符。輸出寬度設置僅用一次。不設置寬度時按默認寬度輸出。(2)使用操作子setw(int)設置輸出數(shù)據(jù)項寬度。例如cout口口 setw(10)□□l23456口口endl;輸出結果為 l23456,其寬度為 10。8.采用什么方法打開和關閉磁盤文件 ?答:打開磁盤文件有下述兩種方法。(1)創(chuàng)建 fstream類的對象,打開已知文件,需指出打開方式。例如,以寫方式打開xy.txt□□,□□□□□□□□□fstreamoutput(”xy.txt”,ios::out);(2)創(chuàng)建ifstream類或ofstream□□□□,□□□□□□□□□□,□□方式打開 xy口txt□□,□□□□□□□□□ifstrcaminput(”xy.txt”);

關閉磁盤文件的方法如下:使用成員函數(shù)close()。例如input.close();將創(chuàng)建的inPut□□□□□□□□9.寫磁盤文件時有哪幾種方法答:寫磁盤文件的方法如下。(1)使用輸出流對象和插入符,可向打開的文件中寫入各種類型的數(shù)據(jù)。put(),每次向文件中寫一個字符。write(),put(),每次向文件中寫一個字符。write(),可向文件中寫入若干個字符。(3)使用輸出流對象和成員函數(shù)答:讀磁盤方法如下所示。(1)答:讀磁盤方法如下所示。(1)使用輸入流對象和提取符(2)使用輸入流對象和成員函數(shù)(3)使用輸入流對象和成員函數(shù)(>>),可以從打開的文件中讀取各種類型的數(shù)據(jù)。get()。每次從打開的文件中讀取一個字符。read(),□□□□□□□□□□□□□□□□□11.如何確定文件的讀指針或寫指針的位置?如何改變讀指針或寫指針的位置?答:c++語言提供了隨機訪問數(shù)據(jù)文件的相關操作。由這些操作可以改變讀TOC\o"1-5"\h\z指針和寫指針的位置,從而實現(xiàn)隨機讀寫的目地 .一個文件被打開后,由于打開方式不同,讀,寫指針位置也不同,通常是在文件首,有時。例如.按追加寫打開時,寫指針會出現(xiàn)在文件民,iostream類提供3個用來改變讀指針位置的成數(shù)函數(shù) c它們是istrcam□istrcam::seekg(口流中位置口 □istream□istrcam::seekg(□□□□□,□□□□□ >□;streamposistream::tellg();>含其中,<□□□□>和<偏移量 >都是 long□□,□□□□□□□□ <□□□□>含意如下所示。cur11□□□□□□□□□□□□□beg10□□□□□□□□□end12□□□□□□□□streampos被定義為long□□□例如input.seekg(—l00,ios::end);□□□□□□□□□□□□□□□ loo個字節(jié)。成員函數(shù)tellg()將返回當前口指針相對于流開始處的字節(jié)數(shù)。同樣,ostream□□□□□□□ 3個關于寫指針操作的成員函數(shù)。ostream&ostream::seekp((流中位置口 );ostream&ostream::seekp(□偏移量口,□參照位置口口;streamposostream::tellp();具體解釋同上。l2.流的錯誤狀態(tài)如何處理答:在ios□□,□□□□□□□□□□□□□□□□□,□□□□□□□□態(tài)字的各位是用不同的錯誤狀態(tài)來描述的。

例如eofbit口Ox01□□□□□□□failbit口Ox02表示 I口。操作失敗等等。在ios□□□□□□□□□□□□□□□□□□□□例如inteof()該函數(shù)返回非零值表示已到文件尾intfail()如果failbit□□□□,□□□□□□□□□等等。利用上述成員函數(shù)檢測流的錯誤狀態(tài),并進行處理。9.4作業(yè)題解答一、選擇填空1.進行文件操作時需要包含()文件。D.stdlib.h( )。D.stdlib.h( )。long(&pa)()是錯誤的。coutQQ'A'charAQ'A’;cout口口A()是錯的。()是對的。( )是轉換為十六進制形式的標dccD。1eftA:iostream.hfstream.hC.stdio.hD.stdlib.hA:iostream.h答:B。2.使用操作子對數(shù)據(jù)進行格式輸出時,應包含 ()文件。A.iostream.hB.fstream.hC。iomanip.h答:C。3□已知: inta,*pa口&a;輸出指針pa□□□□□□□□□□□A口 cout口口pa B口 cout口□*paCDcout口□&pa D口cout口口答:D。4口下列輸出字符‘ A'的方法中,ADcout口口put('A') BDCDcoutDput(‘A’) DD答:A。5口關于 getline()函數(shù)的下列描述中,AD該函數(shù)是用來從鍵盤上讀取字符串的BD該函數(shù)讀取的字符串長度是受限制的CD該函數(shù)讀取字符串時遇到終止符便停止DD該函數(shù)中所使用的終止符只能是換行符答:D。6口關于 read()函數(shù)的下列描述中,AD該函數(shù)只能從鍵盤輸人中獲取字符串BD該函數(shù)所獲取的字符多少是不受限制的CD該函數(shù)只能用于文本文件的操作中DD該函數(shù)只能按規(guī)定讀取所指定的字符數(shù)答:B。7□在 ios□□□□□□□□□□□□,志位。ADhexBDoctCD答:A。( )是設置域寬的。

A.wsB.octC.setfill()D,setw()答:D。)是以追加方9.磁盤文件操作中,打開磁盤文件的訪問方式常量中, ()是以追加方式打開文件的。A.inB.outC.a(chǎn)ppD.a(chǎn)te答:C。10.下列函數(shù)中,()是對文件進行寫操作的。A.get()B.read()C.seekg()D.put()答:D?!酢酢酢酢酢酢酢酢酢酢酢?□□□□,□□□□1口使用提取符 (□□)□□□□□□□□□□□□□□□□□,□□□□出指針值。2口預定義的插入符從鍵盤上接收數(shù)據(jù)是不帶緩沖區(qū)的。3.預定義的提取符和插入符是可以重載的。4.記錄流的當前格式化狀態(tài)的標志字中每一位用于記錄一種格式,這種格式是不能被設置或清除的。cout。5.cout。示格式的對象通常是6.操作子本身是一個對象,它可以直接被提取符或插入符操作。終止字符仍留在流中。getline()□7口get()函數(shù)不能從口中提取終止字符,終止字符仍留在流中。getline()函數(shù)可以從流中提取終止字符,但終止字被丟棄。8口函數(shù)可以從流中提取終止字符,但終止字被丟棄。8口ios類的成員函數(shù)9.使用打開文件函數(shù)函數(shù)來操作該對象。clear()是用來清除整個屏幕的。open()之前,□□□□□□□□□□,使用open()□□□□□□使用10.使用關閉文件函數(shù)□□□□□□使用10.使用關閉文件函數(shù)close()關閉一個文件時,但流對象仍存在。11口以app□□□□□□□,□□□□□□□□□□都□□□□□□□12口打開ASCII□□□□□□□□□□□□,□□□□□□□□□13口read()和write()函數(shù)可以讀寫文本文件,也可以讀寫二進制文件。14.流的狀態(tài)包含流的內(nèi)容、長度和下一次提取或插入操作的當前位置。15口seekg()函數(shù)和seekp()函數(shù)分別用來定位讀指針和寫指針的。如果seek()函數(shù)可以同時定義讀寫指針。三、分析下列程序的輸出結果#include口iostream口h口#include口fstream口h口#include口stdlib口h口voidmain(){fstreamoutfile,infile;outfile.open(“text.dat”,ios::out);if(!outfile){cout<<”text.datcan’topen.\n”;abort();}outfile<<”123456789\n”;outfile<<”aaabbbbbbbbccc\n”<<”dddddfffeeeeggggghhh\n”;outfile<<”ok\n”;outfile.close();infile.open(”tcxt.dat”,ios::in);if(!infile){cout□□” filecan’topen.\n”;abort();}chartextline[80];While(!infile.eof()){infile.gctline(textline,sizeof(textline));cout口口textline口口endl;運行該程序輸出如下結果。123456789aaabbbbbbbcccdddddfffccccggggghhhok!分析:□□□□□□□□□ text口dat,打開方式是寫,判斷打開成功后,向該文件中輸入行字符串。然后,將該文件關閉。while循環(huán)語句。接著,□□□□□□ text口dat文件,□□□□□,while循環(huán)語句。逐行讀:text口dat□□□□□□,□□□□□□□□□□這里,使用了打開、關閉文件的操作以及對打開文件的讀、寫操作。2.#include口iostream口h口#include口fstream口h口#include<stdlib.h>voidmain(){fstreamfile1;file1.open(“text1.dat”,ios::out|ios::in);if(!filel){cout<<”text1.datcan’topen.\n”;abort();}chartextline[]=”123456789abcdefghijkl.\n”;for(inti=0;i<sizeof(textline);i++)

file1.seekg(0);//將讀指針移至文件開始charch;while(filel.get(ch))cout口口ch;filel.close();}運行該程序的輸出結果如下所示。123456789abcdefghijk1.分析:□□□□□□□□□□ textl口dat□,□□□□□□□□□□□□□□開成功后,□□□□□□□□ put(),□□□□□textline口中的字符串寫入該文件。然后,使用下列語句filel.seekg(0);□□□□□□□□□,□□□□□□□□□ get()從文件中讀出字符,并顯示在屏幕上?!酢酢?□□□ textl口dat□□□□□□□□□#include口strstrea口h口voidmain(){ostrstreamss:ss□□”Hi,goodmorning”;ss口口ends:char*buf口ss.str();cout口口buf口口endl;de1ete[]buf;}運行該程序輸出結果如下所示。Hi,goodmorning!分析:程序中首先創(chuàng)建一個ostrstream類的對象的數(shù)組對象。接著,向ss□□□□□□□ss,ss□□□□□□□□□□□Hi,goodmorning!□□□□□□□程序中首先創(chuàng)建一個ostrstream類的對象的數(shù)組對象。接著,向ss□□□□□□□ss,ss□□□□□□□□□□□Hi,goodmorning!□□□□□□□□□□□□□□□o’,可用end2表示。程序中又定義

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論