版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
--PAGE100-目 錄青少年信息學(xué)奧林匹克競賽情況簡介 5第一章 計(jì)算機(jī)基礎(chǔ)知識 7計(jì)機(jī)基常識 7計(jì)機(jī)產(chǎn)與展 7計(jì)機(jī)統(tǒng)工理 7計(jì)機(jī)有數(shù)碼的識 8原、碼補(bǔ)碼 10邏運(yùn)算 10作統(tǒng) DOS(DiskOperatingSystem)的組成 DOS的件目錄 DOS命令 12Windows12算網(wǎng)常識 13網(wǎng)基知識 13Internet簡介 14算信安基知識 16計(jì)機(jī)網(wǎng)安全 16計(jì)機(jī)毒 17病的類 17第2章C++編程簡介 19機(jī)語、編和高語言 19C言與C++的史 202.3 C++標(biāo)庫 20結(jié)化程 21簡程序 22簡程:個相加 25算運(yùn)算 27判:等關(guān)算符 29新頭件名間 31第3章C++輸入/輸出流 333.1 簡介 333.2 流 33iostream類的件 34輸入輸流和象 34輸流 35流入算符 35連使流入/讀取算符 37出char*類型的量 37用員數(shù)put出字和put函的調(diào) 383.4 輸流 39流取算符 39成數(shù)get和getline 41成函數(shù)read、gcount和write的無式入/44流縱子 45整流基:操縱子dec、oct、hex和setbase 45設(shè)浮數(shù)度(precision、setprecision) 46設(shè)域?qū)?setw、width) 47用自定義流縱算子 48流式態(tài) 49格狀標(biāo)志 50尾零十制數(shù)點(diǎn)(ios::showpoint) 50對齊(ios::left、ios::right、ios::internal) 51設(shè)填字符(fillsetfill) 53整流基:(ios::dec、ios::oct、ios::hex、ios::showbase) 54浮數(shù)科記法(ios::scientific、ios::fixed) 55大/寫制(ios::upercase) 56設(shè)及除式志(flags、setiosflags、resetosflags) 57流誤態(tài) 58第4章文件處理 614.1 簡介 61文和流 61建并入件 61讀文中數(shù)據(jù) 65更訪文件 67第5章C++的字符串流 68流繼關(guān)系 68字流輸操作 68字流輸操作 69字流數(shù)類換中應(yīng)用 70輸入/出狀標(biāo)志 71第6章 控制結(jié)構(gòu) 746.1 簡介 746.2 算法 74控結(jié)構(gòu) 74if擇構(gòu) 75if/else選結(jié)構(gòu) 76while復(fù)構(gòu) 78構(gòu)算:例究1(計(jì)器制復(fù)) 78構(gòu)算與上逐步善實(shí)究2(記控重復(fù)) 80構(gòu)算與上逐步善實(shí)究3(套控結(jié)構(gòu)) 85賦運(yùn)符 88增自運(yùn)符 88計(jì)器制環(huán)要點(diǎn) 91for重結(jié)構(gòu) 92for結(jié)使舉例 94switch多項(xiàng)擇構(gòu) 97do/while重結(jié)構(gòu) 101break和continue102邏運(yùn)符 1046.19 混相等(==)與(=)運(yùn)符 1056.20 結(jié)化程結(jié) 106第7章函數(shù) 1087.1 簡介 1087.2 數(shù)函庫 1087.3 函數(shù) 1097.4 函定義 1097.5 頭件 7.6 作域則 7.7 遞歸 使遞舉,F(xiàn)ibonacci數(shù)列 遞與代 120帶參表函數(shù) 121聯(lián)數(shù) 122函重載 123第8章數(shù)組 1258.1 簡介 1258.2 數(shù)組 125聲數(shù)組 126使數(shù)的例 126將組遞函數(shù) 137排數(shù)組 141查數(shù):性與折查找 142多數(shù)組 147第9章指針與字符串 1539.1 簡介 153指變的明始化 153指運(yùn)符 154按用用數(shù) 156指與量定符 158按用用冒序 163指表式指法 167指與組關(guān)系 169指數(shù)組 173函指針 173符字串簡介 177符字串礎(chǔ) 177符處庫符串作數(shù) 179第10章 信息學(xué)奧賽中的常用算法 185算簡介 185枚算法 187回算法 191遞算法 193遞算法 196分算法 200貪算法 202搜算一深優(yōu)先) 205搜算二廣優(yōu)先) 209態(tài)劃法 212精計(jì)算 215附 錄 228ASCII表 228青少年信息學(xué)奧林匹克競賽情況簡介信息學(xué)奧林匹克競賽是一項(xiàng)旨在推動計(jì)算機(jī)普及的學(xué)科競賽活動,重在培養(yǎng)學(xué)生能力,使得(全國青少年信息學(xué)(計(jì)算機(jī))奧林匹克分區(qū)聯(lián)賽:1995年NOI從1995年起,至2001年共舉辦了七屆全國青少年信息學(xué)奧林匹克分區(qū)聯(lián)賽,每年舉辦一次((()簡稱A(19841-8全國青少年信息學(xué))奧林匹克競賽簡稱N由中國算機(jī)學(xué)會主辦的、并與國際信息學(xué)奧林匹克接軌的一項(xiàng)全國性青少年學(xué)科競賽活動。1984年舉辦首屆全國計(jì)算機(jī)競賽。由各省市組織參賽,每年舉辦一次。獎項(xiàng)有個人一、二、三等獎,女選手第一、二、三名,各省隊(duì)團(tuán)體總分名次排隊(duì)。國際青少年信息學(xué))奧林匹克競賽簡稱每年舉辦一次,由各參賽國家組隊(duì)參賽。的識誕生與展 的識誕生與展 特點(diǎn)在現(xiàn)代會中應(yīng)用#計(jì)算機(jī)息全礎(chǔ)識 計(jì)算機(jī)網(wǎng)絡(luò)計(jì)基算本機(jī)操的作MSDOSWindows常用輸入漢字輸入程序設(shè)計(jì)基本知程序的表示BASIC數(shù)據(jù)結(jié)構(gòu)的類型()程序設(shè)計(jì)識*—>信息世界(表達(dá)解法)—>計(jì)算機(jī)世界(將解法用計(jì)算機(jī)能實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)和算法描述出來)基本算法處理簡單搜索 *字串理排序 *查找統(tǒng)計(jì) *分類 *合并二、復(fù)賽內(nèi)容與要求:計(jì)算機(jī)軟件*操作系統(tǒng)的使用知識*編程語言的使用數(shù)據(jù)結(jié)構(gòu)*結(jié)構(gòu)類型中的記錄類型*指針類型*文件(提高組必須會使用文本文件輸入)*鏈表*樹*圖#程序設(shè)計(jì)*程序設(shè)計(jì)能力*設(shè)計(jì)測試數(shù)據(jù)的能力*運(yùn)行時間和占用空間的估算能力#算法處理*排列組合的應(yīng)用*進(jìn)一步加深回溯算法、遞歸算法*分治法*搜索算法:寬度、深度優(yōu)先算法*表達(dá)式處理:計(jì)算、展開、化簡等#*動態(tài)規(guī)劃#在初賽的內(nèi)容上增加以下內(nèi)容(2008年修改稿):三、初賽試題類型:注:試題語言兩者選一(程序設(shè)計(jì)語言:FREEPASCAL、C、C++)*判斷*填空*完善程序*讀程序?qū)戇\(yùn)行結(jié)果*問答四、推薦讀物:*分區(qū)聯(lián)賽輔導(dǎo)叢書*學(xué)生計(jì)算機(jī)世界報(bào)及少年電世界雜志第一章 計(jì)算機(jī)基礎(chǔ)知識計(jì)算機(jī)的產(chǎn)生與發(fā)展計(jì)算機(jī)的產(chǎn)生是20世紀(jì)最重要的科學(xué)技術(shù)大事件之一。世界上的第一臺計(jì)算機(jī)(ENIAC)于1946年誕生在美國賓夕法尼亞大學(xué),到目前為止,計(jì)算機(jī)的發(fā)展大致經(jīng)歷了四代:1946CPU19581964197119561億/199210億/1997130計(jì)算機(jī)系統(tǒng)及工作原理(1)計(jì)算機(jī)的主要硬件輸入設(shè)備:鍵盤、鼠標(biāo)、掃描儀等。輸出設(shè)備:顯示器、打印機(jī)、繪圖儀等。中央處理器P存儲器:具有記憶功能的物理器件,用于存儲信息。存儲器分為內(nèi)存和外存:它分為只讀存儲器(ROM)和隨機(jī)存儲器(RAM)和高速緩沖存儲器(Cache);ROM:((EPROM)(EEPROM_));RAM:可讀可寫,斷電后內(nèi)容全部丟失;Cache:因?yàn)镃PU讀寫RAM的時間需要等待,為了減少等待時間,在RAM和CPU間需要設(shè)置高速緩存Cache,斷電后其內(nèi)容丟失。②外存:磁性存儲器——軟盤和硬盤;光電存儲器——光盤,它們可以作為永久存器;③存儲器的兩個重要技術(shù)指標(biāo):存取速度和存儲容量。內(nèi)存的存取速度最快(與CPU速度相匹配),軟盤存取速度最慢。存儲容量是指存儲的信息量,它用字節(jié)(Byte)作為基本單位,1字節(jié)用8位二進(jìn)制數(shù)表示,1KB=1024B,1MB=1024KB,lGB=1024MB(2)計(jì)算機(jī)的軟件計(jì)算機(jī)的軟件主要分為系統(tǒng)軟件和應(yīng)用軟件兩類:①系統(tǒng)軟件:為了使用和管理計(jì)算機(jī)的軟件,主要有操作系統(tǒng)軟件如,WINDOWS95/98/2000/NT4.0、DOS6.0、UNIX等;WINDOWS95/98/2000/NT4.0是多任務(wù)可視化圖形界面,而DOS是字符命令形式的單任務(wù)的操作系統(tǒng)。②應(yīng)用軟件:為了某個應(yīng)用目的而編寫的軟件,主要有輔助教學(xué)軟件(CAI)、輔助設(shè)計(jì)軟件(CAD)、文字處理軟件、工具軟件以及其他的應(yīng)用軟件。到目前為止,電子計(jì)算機(jī)的工作原理均采用馮.若依曼的存儲程序方式,即把程序存儲在計(jì)算機(jī)內(nèi),由計(jì)算機(jī)自動存取指令(計(jì)算機(jī)可執(zhí)行的命令=操作碼+操作數(shù))并執(zhí)行它。工作原理圖如下:計(jì)算機(jī)中有關(guān)數(shù)及編碼的知識0,1二進(jìn)制數(shù)運(yùn)算非常簡單,計(jì)算機(jī)很容易實(shí)現(xiàn),其主要法則是:0+0=00+1=11+0=11+1=0 0*0=00*1=01*0=01*1=1由于運(yùn)算簡單,電器元件容易實(shí)現(xiàn),所以計(jì)算機(jī)內(nèi)部都用二進(jìn)制編碼進(jìn)行數(shù)據(jù)的傳送和計(jì)算。(1)計(jì)數(shù)的進(jìn)制不同,則它們的基數(shù)也不相同,如表1-1所示。進(jìn)制基數(shù)特點(diǎn)二進(jìn)制0,1逢二進(jìn)一八進(jìn)制0,1,2,3,4,5,6,7逢八進(jìn)一十六進(jìn)制0,1,2,...,9,A,B,C,D,E,F逢十六進(jìn)一(2)數(shù)的權(quán)(權(quán)191=2102+1101+9100(11010)2=1*24+1*23+0*22+1*21+1*20(273)8=2*82+7*81+3*80(27AF)16=2*163+7*162+10*161+15*160,(39)10=(100111)2 (245)10=(365)8將十進(jìn)制小數(shù)的小數(shù)部分乘以進(jìn)制數(shù)取整,作為轉(zhuǎn)換后的小數(shù)部分,如.351=00112 0.151=0.012:如:(219)10=2*102+1*101+9*100(11010)2=1*24+1*23+0*22+1*21+1*20=26(273)8=2*82+7*81+3*80=187(7AF)16=7*162+10*161+15*160=1867浮點(diǎn)數(shù)的形式可寫成:N=M*2E(其中M代表尾數(shù),E代表階碼)其形式如下:階碼尾數(shù)(包括符號位)ASCII編碼,(ASCII)70ASCII128個如:0-9:48-57:00110000-...A-Z:65-90:01000001-...a-z:97-122:01100000-...ASCII碼不能表示漢字,因此要有漢字信息交換碼,我國國家標(biāo)準(zhǔn)是gb2312,它也被稱作國際碼。gb23126763(常用字)37553008)流水碼:如區(qū)位碼、電報(bào)碼、通信密碼,優(yōu)點(diǎn)重碼律少,缺點(diǎn)難于記憶;音碼:以漢語拼音為基準(zhǔn)輸入漢字,優(yōu)點(diǎn)是容易掌握,但重碼律高;形碼:根據(jù)漢字的字型進(jìn)行編碼,優(yōu)點(diǎn)重碼少,但不容易掌握;音形碼:將音碼和形碼結(jié)合起來,能減少重碼律同時提高漢字輸入速度。16*16,24*24,32*32,48*48,64*64((bit)存16*1632原碼、反碼與補(bǔ)碼在計(jì)算機(jī)中,數(shù)據(jù)是以補(bǔ)碼的形式存儲的:n1n-101。當(dāng)真值為正時:原碼、反碼、補(bǔ)碼數(shù)值位完全相同;當(dāng)真值為負(fù)時:原碼的數(shù)值位保持原樣,反碼的數(shù)值位是原碼數(shù)值位的各位取反,補(bǔ)碼則是反碼的最低位加一。16位十進(jìn)制數(shù)17的原碼、反碼與補(bǔ)碼均為:0000000000010001十進(jìn)制數(shù)-17的原碼、反碼與補(bǔ)碼分別為:1000000000010001、1111111111101110、1111111111101111邏輯運(yùn)算:::1110010101∩10110111=1001010111(1)交換律:A+B=B+A,A·B=B·A2A+B+C=A+(B+C,·BC=A(·)(3)冪等律:A·A=A,A+A=A4AA+B=A,A+AB=A5AB+C=·B+AC,A(·=A+A+)(6)互補(bǔ)律:A+A=1,A·A=0(7)非深入:A+B=A·B,A·B=A+B(8)0-1律:A+0=A,A+1=1,A·1=A,A·0=0例:化簡函數(shù)Q=AD+AD+AB+ACEF。這個函數(shù)有5個自變量,化簡過程如下:Q=AD+AD+AB+ACEF=A+AB+ACEF=A+ACEF=A練習(xí):求證:(A+B)(A+C)=AB+ACDOS(DiskOperatingSystem)的組成MS—DOS采用模塊結(jié)構(gòu),它由五部分組成:ROM中的BIOS模塊、IO.SYS模塊、MSDOS.SYS模塊、COMMAND.COM模塊和引導(dǎo)程序。BIOS模塊:在PCROMCMOS(BIOS)。BIOSBIOSIO.SYSIO.SYSMS—DOSROMBIOSRONBIOSMSDOS.SYSMS—DOS(4)COMMAND.COMMS—DOS5統(tǒng)文件則把DOS系統(tǒng)從磁盤裝人內(nèi)存。一張系統(tǒng)盤上應(yīng)該包含有:引導(dǎo)記錄、IO.SYS、MSDOS.SYS和COMMAND.COMDOS的文件和目錄():+路徑+(18)+(13)4)樹形目錄:DOS采用樹形目錄結(jié)構(gòu)。由一個根目錄和若干層子目錄組成。這種目例如要查找UCDOS子目錄下的二級子目錄下的README.TXTDOS:CODAADOS命令DOS(1)DIR(顯示文件目錄)MD、CD、RD(子目錄的建立、進(jìn)入、刪除命令)(2)文件操作命令:COPY(復(fù)制命令)、DEL(刪除命令)、REN(更改文件名)TYPE(顯示文本文件內(nèi)容)(3)其他內(nèi)部命令、TIMEVER、等 ·DOS磁盤格式化命令:盤符[/S)I/V]軟盤復(fù)制命令:DISKCOPY[1:][2:]其作用,能夠進(jìn)行軟盤之間的全盤復(fù)制(以磁道方式),不僅可以復(fù)制系統(tǒng)文件而且可以復(fù)制隱含文件。Windows簡介WindowsMS-DOSWindowsWindowsWindows具有以下主要特點(diǎn)。Windows提供了一種不同于DOS系統(tǒng)下命令行的工作方式,它通過對窗口、圖標(biāo)、選單、對話框、命令按鈕、滾動框等圖形符號與畫面的操作來實(shí)現(xiàn)對計(jì)算機(jī)的各種操作。在Windows中,所有的操作都是通過窗口中的圖形界面進(jìn)行的。在Windows中,平穩(wěn)的多任務(wù)機(jī)制可以同時運(yùn)行多道程序以及執(zhí)行多項(xiàng)任務(wù),各程序與各任務(wù)之間不僅轉(zhuǎn)換容易,而且還可以方便地交換數(shù)據(jù)。Winddws640在Windows中,可以簡單直觀地實(shí)現(xiàn)網(wǎng)絡(luò)的安裝、配置、瀏覽,從而可以更加方便地實(shí)現(xiàn)網(wǎng)絡(luò)管理和資源共享。Windows還支持其他廠商基于技術(shù)真實(shí)字體)例在ndos5“務(wù)”作 。示統(tǒng)所功能 B)只示前動窗C)只示在臺作窗口名 D)現(xiàn)口的切換解答在務(wù)中顯了所打的序圖。本題正確答案為D。網(wǎng)絡(luò)基礎(chǔ)知識計(jì)算機(jī)網(wǎng)絡(luò)是將地理位置不同的計(jì)算機(jī),用通信鏈路連接起來,共同遵守一定的協(xié)議,以實(shí)現(xiàn)計(jì)算機(jī)軟硬件資源共享為目標(biāo)的通信系統(tǒng)。計(jì)算機(jī)網(wǎng)絡(luò)由網(wǎng)絡(luò)硬件和網(wǎng)絡(luò)軟件組成。(。網(wǎng)絡(luò)硬件包括網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)、網(wǎng)絡(luò)服務(wù)器、網(wǎng)絡(luò)工作站、傳輸介質(zhì)和設(shè)備。:(LAN):(10)。Internet如nene(。。星形網(wǎng):以一臺計(jì)算機(jī)為中心,以放射狀連接若干臺計(jì)算機(jī)。環(huán)形網(wǎng):傳輸線路構(gòu)成一個封閉的環(huán),入網(wǎng)的計(jì)算機(jī)連到這個環(huán)形線路上??偩€網(wǎng):用一條通信線路作主干,入網(wǎng)的計(jì)算機(jī)通過相應(yīng)接口連到線路上。(OSI模型OSI7層:各層功能如下:1.物理層物理層與移動二進(jìn)制數(shù)和維護(hù)物理連接有關(guān)。2.?dāng)?shù)據(jù)鏈路層(3.網(wǎng)絡(luò)層4.傳輸層5-7.會話層、表示層和應(yīng)用層提供了如下功能:處理計(jì)算機(jī)間數(shù)據(jù)表示的差別。確保數(shù)據(jù)在網(wǎng)絡(luò)傳輸中不被竊取和泄露,并且確保網(wǎng)絡(luò)不允許未經(jīng)授權(quán)就訪問數(shù)據(jù)。最高效地使用網(wǎng)絡(luò)資源通過應(yīng)用程序及活動同步來管理對話和活動。在網(wǎng)絡(luò)節(jié)點(diǎn)間共享數(shù)據(jù)。Internet簡介nenet2080InternetIPIPInternetInternetIPIP4,0-255,8,IP32位二4IP:IPDDDD,IDIP地址ID5ABCD類地址和EA類IP地址一個A類P地址由1字節(jié)的網(wǎng)絡(luò)地址和3地址范圍從A1261B類IP地址BIP220到5B16326C類IP地址CIP31192.000到5C29254D(MucaDIPE類IP地址以“l(fā)lll0”開始,為將來使用保留。00..0)”的P25.25.25.2在IP地址3種主要類型里,各保留了3個區(qū)域作為私有地址,其地址范圍如下:A類地址:~55B類地址:~55C類地址:~55InternetIPIPP"。IP地址如同電腦的身份證號碼,而域名相當(dāng)電腦的姓名。Internet(1)信息瀏覽(WWW)Netscape瀏覽器和MicrosoftInternetExplorer(IP如http://;ftp://(2)文件傳輸(FTP)FTP(FileTransferProtocol)是Internet的一種標(biāo)準(zhǔn)協(xié)議,這一協(xié)議使用戶能在聯(lián)網(wǎng)的計(jì)算機(jī)之間傳送文件如上載(UPLOAD把本地計(jì)算機(jī)上地文件復(fù)制到遠(yuǎn)程計(jì)算機(jī)上)和下載(DOWNLOAD把遠(yuǎn)程計(jì)算機(jī)上的文件復(fù)制到本地計(jì)算機(jī)上)。(3)傳送電子郵件(E-mail)電子郵件地址=用戶名+@+主機(jī)域名;如:zhangming@(BBS)(telnet)TCP/IPTCP/IP協(xié)議的開發(fā)研制人員將Internet分為五個層次,以便于理解,它也稱為互聯(lián)網(wǎng)分層模型或互聯(lián)網(wǎng)分層參考模型,如下表:()()網(wǎng)絡(luò)接口層(第二層)物理層(第一層)各層簡要說明如下:Internet如PC信息包傳輸層:為兩個用戶進(jìn)程之間建立、管理和拆除可靠而又有效的端到端連接。應(yīng)用層:它定義了應(yīng)用程序使用互聯(lián)網(wǎng)的規(guī)程。計(jì)算機(jī)的網(wǎng)絡(luò)安全1、不同環(huán)境和應(yīng)用中的網(wǎng)絡(luò)安全2、網(wǎng)絡(luò)安全應(yīng)具有以下四個方面的特征:保密性:信息不泄露給非授權(quán)用戶、實(shí)體或過程,或供其利用的特性??煽匦裕簩π畔⒌膫鞑ゼ皟?nèi)容具有控制能力。3、主要的網(wǎng)絡(luò)安全威脅自然災(zāi)害、意外事故;計(jì)算機(jī)犯罪;人為行為,比如使用不當(dāng),安全意識差等;“黑客”行為:由于黑客的入侵或侵?jǐn)_,比如非法訪問、拒絕服務(wù)計(jì)算機(jī)病毒、非法連接等;電子諜報(bào),比如信息流量分析、信息竊取等;信息戰(zhàn);網(wǎng)絡(luò)協(xié)議中的缺陷,例如TCP/IP協(xié)議的安全問題等等。4、黑客常用的信息收集工具信息收集是突破網(wǎng)絡(luò)系統(tǒng)的第一步。黑客可以使用下面幾種工具來收集所需信息:SNMP協(xié)議,用來查閱非安全路由器的路由表,從而了解目標(biāo)機(jī)構(gòu)網(wǎng)絡(luò)拓?fù)涞膬?nèi)部細(xì)節(jié)。TraceRoute程序,得出到達(dá)目標(biāo)主機(jī)所經(jīng)過的網(wǎng)絡(luò)數(shù)和路由器數(shù)。Whois協(xié)議,它是一種信息服務(wù),能夠提供有關(guān)所有DNS域和負(fù)責(zé)各個域的系統(tǒng)管理員數(shù)據(jù)。(。DNS服務(wù)器,可以訪問主機(jī)的IP地址表和它們對應(yīng)的主機(jī)名。Finger。Ping實(shí)用程序,可以用來確定一個指定的主機(jī)的位置并確定其是否可達(dá)。把這個簡單的工具用在掃描程序中,可以Ping網(wǎng)絡(luò)上每個可能的主機(jī)地址,從而可以構(gòu)造出實(shí)際駐留在網(wǎng)絡(luò)上的主機(jī)清單。計(jì)算機(jī)病毒計(jì)算機(jī)病毒是一種程序,是人為設(shè)計(jì)的具有破壞性的程序。計(jì)算機(jī)病毒具有破壞性、傳播性、可激發(fā)性、潛伏性、隱蔽性等特點(diǎn)。病毒的分類①良性病毒:這種病毒的目的不是為了破壞計(jì)算機(jī)系統(tǒng),而只是為了編制者表現(xiàn)自己。此類病毒破壞性較小,只是造成系統(tǒng)運(yùn)行速度降低,干擾用戶正常工作。②惡性病毒:這類病毒的目的是人為的破壞計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)。具有明顯破壞目標(biāo),其破壞和危害性都很大,可能刪除文件或?qū)τ脖P進(jìn)行非法的格式化。①源碼病毒:在源程序被編譯之前,就插入到用高級語言編寫的源程序當(dāng)中。編寫這種病毒程序較困難。但是,一旦插入,其破壞性和危害性都很大。②入侵病毒:是把病毒程序的一部分插入到主程序中。這種病毒程序也難編寫,一旦入侵,難以清除。②操作系統(tǒng)病毒:是把病毒程序加入或替代部分操作系統(tǒng)進(jìn)行工作的病毒。這種病毒攻擊力強(qiáng)、常見、破壞性和危害性最大。④外殼病毒:是把病毒程序置放在主程序周圍,一般不修改源程序的一種病毒。它大多是感染DOS下的可執(zhí)行程序。這種病毒占一半以上,易編制,也易于檢測和消除。在日常維護(hù)中應(yīng)隔離計(jì)算機(jī)病毒的來源,經(jīng)常要用殺毒軟件檢查計(jì)算機(jī)系統(tǒng)和存儲器。[例設(shè)張盤染病毒能除毒措是 A)除軟上所文件本題正確答案為B。第2章C++編程簡介(tranlation)(machinelanguage)01)+1300042774+1400593419+1200274027(assemblylanguage)(assembler)LOAD ADD STORE 盡管這種代碼對于人們一目了然,但計(jì)算機(jī)卻無法理解,必須先翻譯為相應(yīng)的機(jī)器語言。(high-levellanguage)(compiler)grossPay =basePay+overTimePayCC++(interpreter)程序可新編譯程序。一旦程序開發(fā)完成,編譯版本的運(yùn)行最有效。C的歷史C++CC語言又是從兩個編程語言BCPL和BBCPLMartinRichards1967KenThompsonB語言(1970)DCPLBC語言是從DDennisRitchie1972年在DECPDP—11CBCPLBC語言最初作為UNIXCCC到20世紀(jì)70CCPPengha/RitchieC"1978年P(guān)renticeHallKernighanRitchieTheCProgrmmmingLanguageCKe78)。C()個標(biāo)準(zhǔn)的C1983(x3)x3JII技術(shù)分1989AN5I(IS0)CANSIANSI1988KernighanRitchie稱為ANSIC)C++C2080BjarnestroustrupC++的許多特性是從c語言中派生的,但更重要的是,它提供了面向?qū)ο缶幊?object-orientedprogramming)(object)實(shí)際上是模擬實(shí)際項(xiàng)目的可復(fù)用軟件組件(component)。軟件開tXerox的PaloAltosmalltalk。SmalltalkC++C2.9基于C/C++Java。標(biāo)準(zhǔn)庫C++(class)(function)C++C++C++C++C++本。PlaugerC++中ANSIC(indepandentsofterwarevender)也提常用數(shù)據(jù)類型與PascalPascal數(shù)據(jù)類型C/C++ShorInt8位有符號整數(shù)charByte8位無符號整數(shù)BYTE,unsignedshortSmallInt16位有符號整數(shù)shortWord16位無符號整數(shù)unsignedshortInteger,LongInt32位有符號整數(shù)int,longCardinal,LongWord/DWORD32位無符號整數(shù)unsignedlongInt6464位有符號整數(shù)_int64Single4字節(jié)浮點(diǎn)數(shù)float*Real486字節(jié)浮點(diǎn)數(shù)Double8字節(jié)浮點(diǎn)數(shù)double*Extended10字節(jié)浮點(diǎn)數(shù)longdoubleCurrency64位貨幣類型TDate/TDateTime8字節(jié)日期/時間Variant,OleVariant16字節(jié)可變類型VARIANT,^Variant,^OleVariantChar,AnsiChar1字節(jié)字符charWideChar2字節(jié)字符WCHAR*ShortString短字符串stringAnsiString/String長字符串^AnsiStringWideString寬字符串^WideStringPChar,PAnsiCharNULL結(jié)束的字符串char*PWideCharNULLLPCWSTRBoolean,ByteBool1字節(jié)布爾類型任何1字節(jié)WordBool2字節(jié)布爾類型任何2字節(jié)BOOL,LongBool4字節(jié)布爾類型BOOL注:有*前綴的是向前兼容類型;有^前綴的是C++Builder特有類型。20602060(structuredprogramming)的出現(xiàn),用235結(jié)構(gòu)化編程研究的一個更具體結(jié)果是1971年NiklausWirth教授推出了Pascal語言。Pascal17(BlaisePascal)Ada207080Ada以PascalPascalLordByron的女兒(AdaLovelace)AdaLovelace19用于charlesBabbage設(shè)計(jì)的分析機(jī)引擎的計(jì)算設(shè)備。Ada的一個最重要功能是多任務(wù)(multiasking).程序員可以使多個活動任務(wù)并行發(fā)生。我們要介紹的其他常用高級語言(包括C/C++)簡單程序C++2.2。這段程序演示了C++語言的幾個重要特性。我們詳細(xì)介紹程序的每一行。//Fig.2.2:fig1_02.cpp//AfirstprograminC++以//(comment)C++"firstprograminC++"http://(singned-linecomment),(C++C/*結(jié)束)。1//Fig.2.2:fig01_02.cpp2//AfirstprograminC++3#include<iostream>usingnamespaceintmain()6{7 cout<<"WelcomtoC++!\n";89 rerturn0; //indicatethatprogramendedsucessfully10}輸出結(jié)果:WelcomtoC++!下列語句:#include<iostream>(preprocessordirective),是發(fā)給C++#iostream.hC++ANSIISOC++雜標(biāo)準(zhǔn)實(shí)際上指定iostream.h和其它.h,如iostream譯器還不支持最新的ANSI/ISOC++下列語句:intmain()是每個C++程序都包的語句。main后面的括號表示main是個程序基本組件,稱為函數(shù)(function)C++mainmainmainmainintmain(body)(})cout<<"WelcomtoC++!\n";(string)cout<<toC++!\n"((stream)toC++!"sndadouutseamobeccout3Ccout。<<(streminsertionoperator)\n(escapcharacter)(escapesequence)\n(newline)即當(dāng)2.3下列語句:return0; //indicatethatprogramendedsucessfullymainC++returnmain函數(shù)末return03右花括號(})表示main函數(shù)結(jié)束。義列 \n \t \r \a \\ \" 2.3(\n)確定一個喜歡的縮排長度,然后一直堅(jiān)持這個縮排長度??梢杂弥票矸煽s排,但制表位可能改變。建議用1/4英寸制表位或三個空格的縮排長度。toC++!"2.42.2C++2.5\n\n2.5。1//Fig.2.4:fig01_04.cpp2//printingalinewithmultplestatements3#include<iostream>usingnamespaceintmain()6{7 cout<<"Welcom";8 cout<<"toC++!\n";910 return}輸出結(jié)果:WelcomtoC++!2.41//Fig.2.5:fig01_05.cpp2//printingmultiplelineswithasinglestatement3#include<iostream>usingnamespaceintmain()6{7 89 return0; //indicatethatprogramendedsucessfully10}輸出結(jié)果:WelcometoC++!2.5下一個程序用輸入流對象cin和流讀取運(yùn)算符>>取得用戶從鍵盤中輸入的兩個整,計(jì)算這兩個值的和,并將結(jié)果用cout輸出。程序及其輸出如圖2.6。1//Fig.2.6:fig01_06.cpp2//Additionprogram3#include<iostream>4usingnamespacestd;5intmain()6{7 intinteger1,integer2,sum; //8cout<<"Enterfirstinteger\n"; //cin>>integer1; //cout<<"Entersecondinteger\n"; //cin>>integer2; //sum=integer1+integer2; //sumcout<<"Sumissum<<endl; //1516 return0; //017}45Entersecond72Sumis1172.6注釋語句://Fig.2.6:fig01_06.cpp//Additionprogram指定文件名和用途。C++預(yù)處理指令:#include<iostream>將iostream.h頭文件的內(nèi)容放進(jìn)程序中。mainmainmainintinteger1,integer2,sum;(declaration)integer1,integer2sum(variable)integer1,integer2sum的數(shù)據(jù)類型為7、、319143.40.0char(定義charx、$、7、*等等)。intinteger1;可以放在下列語句之前:cin>>integerl;下列聲明:int integer2;可以放在下列語句之前:cin>>integer2;下列聲明:intsum;可以放在下列語句之前:sum=integer1+integer2;下列句:cout<<"Enterfirstinteger\n";在屏幕上打印字符串Enterfirstinteger(b(stringliteral)(literal)),coutEnterfirstinteger\n".下列語句:cin>>integer1;cin>>cin(。上述語句表示cininteger1integer1Enter鍵(或Return鍵)(值integer1cout和cin流對象實(shí)現(xiàn)用戶與計(jì)算機(jī)之間的交互。由于這個交互像對話一樣,因此通常稱為對話式計(jì)算(conversationalcomputing)或交互式計(jì)算(interactivecomputing)。下列語句:cout<<"Entersecondinteger\n";secondinteger"cin>>integer2;從用戶取得變量integer2的值。賦值語句:sum=integer1+integer2;計(jì)算變量integer1和integer2的和,然后用賦值運(yùn)算符(assignmentoperator)"="將結(jié)果賦給變sumsuminteger1integer2+integer1integer2suminteger1+integer2下列語句:cout<<"Sumis"<<sum<<endl;"Sumis"sumendl(endline)。endl,endl(concatenating)、鏈接(chaining)或連續(xù)使用流插入操作。這樣,計(jì)算可以在輸出語句中進(jìn)行??梢詫⑸鲜稣Z句合二為一:cout<<"Sumis"<<integer1+integer2<<endl;從而不需要變量sum。右花括號告訴計(jì)算機(jī)到達(dá)了函數(shù)main的結(jié)尾。C++6章)C++用>><<8章)。算術(shù)運(yùn)算算術(shù)運(yùn)算符見圖2.10(*)表示乘法、百分號(%)(modulus)2.10"integer1+integer2"+”和兩個操作數(shù)integer1integer2。C++操作算術(shù)運(yùn)算符代數(shù)表達(dá)式C++表達(dá)式加+f+7f+7減-p-cp-c乘*bmb*m除/x/y或x÷yx/y模 % rmods r%s圖2.10算術(shù)運(yùn)算符()7/4117/53。C++(modulus)x%yxy7%43,17%52()。C++中的算術(shù)運(yùn)算表達(dá)式應(yīng)以直線形式在計(jì)算機(jī)中輸入。這樣,a除以b應(yīng)輸入為"a/b",使所有常量、變量和運(yùn)算符放在一行中。編譯器通常不接受下列代數(shù)符號:a-b但有些特殊專業(yè)軟件包支持復(fù)雜數(shù)學(xué)表達(dá)式更自然的表示方法。C++表達(dá)式中括號的使用和代數(shù)表達(dá)式中相同。例如,要將a乘以b+c的和,可以用:a*(b+c)C++中算術(shù)運(yùn)算符的運(yùn)算順序是由運(yùn)算符的優(yōu)先級規(guī)則確定的,與代數(shù)中的相同:運(yùn)算符優(yōu)先級保證C++按正確順序采用運(yùn)算符。從左向右求值指的是運(yùn)算符的結(jié)合律(associativity),也有一些運(yùn)算符結(jié)合律是從右向左。圖2.11總結(jié)了運(yùn)算符優(yōu)先級規(guī)則,引入其它C++運(yùn)算符時,這個表可以擴(kuò)充,詳細(xì)的運(yùn)算符優(yōu)先級請參見附錄。運(yùn)算符運(yùn)算求值順序()括號最先求值,如果有嵌套括號,則先求最內(nèi)層表達(dá)式的值,如果同一層有幾對括號,則從左向右求值。*、/、或%乘、除、求模其次求值。如果有多個,則從左向右求值。+或-加、減最后求值。如要有多個,則從左向右求值。圖2.11算術(shù)運(yùn)算符優(yōu)先級C+代數(shù):
mabcde5C++: m=(a+b+c+d+e)/5;(a+b+c+d+e)a+b+c+d+(e/5)下例直的程代數(shù):y=mx+bC++: y=m*x+b;不需要括號,乘法優(yōu)先于加法,因此先乘后加。下列包含模(%)、乘、除、加、減運(yùn)算:代數(shù):z=pr%q+w/x-yC++:z=p*r%q+w/x-y;⑥①②④③⑤語句下面的圓圈數(shù)字表示C++采用運(yùn)算符的順序。乘法、求模和除法首先從左向右求值(結(jié)合律為從左向右)因?yàn)樗鼈兊膬?yōu)先級高于加法和減法。然后進(jìn)行加法和減法運(yùn)算,也是從左向右求值。并不是有多對括號的表達(dá)式都包含嵌套括號。例如下列表達(dá)式不包含嵌套括號:a*(b+c)+c*(d+e)這些括號在同一層。要更好地了解運(yùn)算符優(yōu)先級規(guī)則,考慮二次多項(xiàng)式的求值:y=a*x*x+b*x+c;⑥①②④③⑤C++C++x2表示x*x,pow(數(shù))powabcxa=2,b=3,c=7x=52.12上述賦值語句可以加上多余的括號,使代碼更清晰:y=(a*x*x)+(b*x)+c;C++ififif結(jié)構(gòu)中的條件可以用相等運(yùn)算符(equalityoperator)和關(guān)系運(yùn)算符(relationaloperator)表示,如圖2.13關(guān)系運(yùn)算符具有相同的優(yōu)先級,結(jié)合律為從左向右。相等運(yùn)算符的優(yōu)先級也相同,但低于關(guān)系運(yùn)算符的優(yōu)先級,結(jié)合律也為從左向右。標(biāo)準(zhǔn)代數(shù)相等與關(guān)系運(yùn)算符C++相等與關(guān)系運(yùn)算符C++條件舉例C++條件含義===x==yx等于y≠關(guān)系運(yùn)算符!=x!=yx不等于y>>x>yx大于y<<x<yx小于y≥>=x>=yx大于或等于y≤<=x<=yx小于或等于y圖2.13相等與關(guān)系運(yùn)算符ififif2.142.14num1一個值讀到num2if2.14if語句2if()。1//Fig.2.14:fig01_14.cpp//Usingifstatements,relationnal//operators,andequalityoperators4#include<iosream>usingnamespaceintmain()7{8 int9cout<<"Enterintegers,andIwilltellyou\n"<<"therelationshipstheysatisfy:";cin>>num1>>num2; //13if(num1==num2)cout<<num1<<"isequalto"<<num2<<endl;16if(num1!=num2)cout<<num1<<"isnotequalto"num2<<endl;19if(num1<num2)cout<<num1<<"islessthan"<<num2<<endl;22if(num1>num2)cout<<num1<<"isgreaterthan"<<num2<<endl;25if(num1<=num2)cout<<num1<<"islessthanorequalto"29if(num1>=num2)cout<<num1<<"isgreaterthanorequalto"3334 return0; //35}輸出結(jié)果:Entertwointegers,andIwilltllyouTherelationshipstheysatisfy:373isnotequal73islessthan73islessthanorequalto7Entertwointegers,andIwilltellyoutherelationshipstheysatisfy:221222isnotequal1222isgretaerthan1222isgreaterthanorequalto12Entertwointegers,andIwilltellyoutherelationshipstheysatisfy:777isequalto77islessthanorequalto77isgreaterthanorequalto72.142.14C++圖2.15x+y+z求值為(x+y)+z。x=y=0x=(y=0)00。運(yùn)算符結(jié)合律類型()從左向右括號* /%從左向右乘+ -從左向右加<< >>從左向右流插入/讀取< <=> >=從左向右關(guān)系== !=從左向右等于=從右向左賦值圖2.15運(yùn)算符優(yōu)先級和結(jié)合律本節(jié)是為使用支持ANSI/ISOC++頭文件的新名,包括.h2.16第3行:#include<iostream>演示新型頭文件名語法。第5行:usingnamespacestd;stdC++字空間能為每個新軟件組件保持惟一的名稱。1//Fig.2.16:fig01_16.cpp2//Usingnew-styleheaderfiles3#include<iostream.h>45usingnamespacestd;67intmain()8{cout<<"WelcomtoC++!\n";std::cout<<"WelwcomtoC++!\n";12 return13}輸出結(jié)果:WelcomtoC++!WelcomtoC++!圖2.16使用新型頭文件C++草案標(biāo)準(zhǔn)中的每個頭文件用名字空間std保證今后C++標(biāo)準(zhǔn)庫操作的每個特性是惟一句只是表示我們使用C++數(shù)放在名字空間deitelC++"usingnamespacestd"9cout10std::cout:std::cout<<"WelcomtoC++!\n";cout的完全限定名為5行的"usingnamespacestd"using語句可以在C++()C++第3章C++輸入/輸出流簡介C++/(I/O)操作,并對其余的輸入/入/C++C++中還大量利用了C++C++(typesafe)I/O(CC)。I/OI/OC++流C++(()。應(yīng)用程序把字節(jié)的含義與字節(jié)關(guān)聯(lián)起來。字節(jié)可以是ASCII字符、內(nèi)部格式的原始數(shù)據(jù)、圖形圖像、數(shù)字音頻、數(shù)字視頻或其他任何應(yīng)用程序所需要的信息。輸人/輸出系統(tǒng)的任務(wù)實(shí)際上就是以一種穩(wěn)定、可靠的方式在設(shè)備與內(nèi)存之間傳輸數(shù)據(jù)。傳操(C++功能(I/O)(I/O)iostream類庫的頭文件C++iostreamiostream.hC++cincoutcerrclog4功能。在執(zhí)行格式化I/O時,如果流中帶有含參數(shù)的流操縱算子,頭文件iomanip.h所包含的信息是有用的。fstream.h13C++輸入/輸出流類和對象iostream類庫包含了許多用于處理大量I/O操作的類。其中,類istream支持流輸入操作.類ostream支持流輸出操作,類iostream同時支持流輸入和輸出操作。istreamostreamiosiostreamistreamostream運(yùn)算符重載為完成輸入/輸出提供了一種方便的途徑。重載的左移位運(yùn)算符(<<)表示流的輸(>>)cin、cout、cerr、clogcinistream)算符把整數(shù)變量grade(gradeint)cincin>>grade;gradecout是類ostream的對象,它與標(biāo)準(zhǔn)輸出設(shè)備(通常指顯示設(shè)備)連在一起。下面的語句用流插入運(yùn)算符cout把整型變量grade的值從內(nèi)存輸出到標(biāo)準(zhǔn)輸出設(shè)備上。cout<<grade;gradecerr是類osteam的對象,它與標(biāo)準(zhǔn)錯誤輸出設(shè)備連在一起。到對象cerr的輸出是非緩沖輸出,也就是說插入到cerr中的輸出會被立即顯示出來,非緩沖輸出可迅速把出錯信息告訴用戶。clogostreamclog即每次插入clogC++ifstreamofstreamfstream/ifstream繼承了類istream,類ofstream繼承了類ostreamfstreamiostreamC++輸出流C++ostreamputwrite(3.5節(jié));輸出(3.6.1節(jié)(3.6.2節(jié))(3.7.2節(jié))(3.7.6節(jié))(3.7.3節(jié))(3.7.4節(jié))(3.7.7節(jié))。流插入運(yùn)算符流插入運(yùn)算符(即重載的運(yùn)算符<<)可實(shí)現(xiàn)流的輸出。重載運(yùn)算符<<是為了輸出內(nèi)部類型的數(shù)據(jù)項(xiàng)、字符中和指針值。3.9節(jié)要詳細(xì)介紹如何用重載運(yùn)算符<<輸出用戶自定義類型的數(shù)據(jù)項(xiàng)。圖3.3中的范例程序用一條流插入語句顯示了輸出的字符串。圖3.4中的范例程序用多條流插入語句顯示輸出的字符串,該程序的運(yùn)行結(jié)果與圖3.3中程序的運(yùn)行結(jié)果相同。//Fig.3.3:figll03.cpp//Outputtingastringusingstreaminsertion.3#include<iostream>4usingnamespaceintmain()cout<<toC++!\n";89 return10}輸出結(jié)果:WelcometoC++!圖3.3//Fig.3.4:figllO4.cpp//Outputtingastringusingtwostreaminsertions.3#include<iostream>usingnamespaceintmain()6{7 cout<<to";8 cout<<"C++!\n";910 return0;11}輸出結(jié)果:WelcometoC++!圖3.4也可以用流操縱算子endl()\n()(3.5)endl發(fā)送一個換行符并刷新輸出緩沖區(qū)(不管輸出緩沖區(qū)是否已滿都把輸出緩沖區(qū)中的內(nèi)容立即輸出)cout<<flush;3.6節(jié)要詳細(xì)討論流操縱算子。1//Fig.3.5:fig11_05.cpp2//Usingtheendlstreammanipulator.3#include<iostream.h>usingnamespaceintmain{)6{7 cout<<to";8 cout<<"c++!';9 cout<<endl; //endlinestreammanipulator10return12}輸出結(jié)果:WelcometoC++!圖3.5endl流插入運(yùn)算符還可以輸出表達(dá)式的值(見圖3.6)1//Fig.3.6:fig11_O6.cpp2//Outputtingexpressionvalues.3#include<iostream.h>usingnamespaceintmain()6{7 cout<<"47plus53is";8//parenthesesnotneeded;usedforclaritycout<<(47+53); //expressioncout<<endt;1213 return14}輸出結(jié)果:47plus53is100圖3.6連續(xù)使用流插入/流讀取運(yùn)算符載運(yùn)<<和>>都可在條句連使用(圖3.7)。1 file:// Fig.3.7:fig11_07.cppfile:// CascadlngtheoverlOadGd<<OPeratOr.45 int 6 {7 cout<<"47plus53is"<<(47+53)<<endl;89 return 10 }輸出結(jié)果:47plus53is100圖3.7連續(xù)使用重載運(yùn)算符<<圖中多次使用流插入運(yùn)算符的語句等同于下面的語句:(((cout<<"47plus53is")<<47+53)<<endl);<<cout)(cout<<"47plus53is")它輸出一個指定的字符串,并返回對cout的引用,因而使中間括號內(nèi)的表達(dá)式解釋為:(cout<<(47+53))它輸出整數(shù)值100,并返回對cout的引用。于是最右邊括號內(nèi)的表達(dá)式解釋為:cout<<endl;它輸出一個換行符,刷新cout并返回對cout的引用。最后的返回結(jié)果未被使用。char*類型的變量C語言式的I/O必須要提供數(shù)據(jù)類型信息。C++對此作了改進(jìn),能夠自動判別數(shù)據(jù)類型。但是,C++char*<<(null)char*類型的字符串,因此使用void*類型來完成上述需求(需要輸出指針變量的地址時都可以使用void*類型)3.8char*C++0x0X打頭,3.6.1節(jié)、.53.7.7節(jié)1//Fig.3.8:fig11_08.cpp2//Printingtheaddressstoredinachar*variable3#include<iostream.h>usingnamespaceintmain()6{7 char*string="test";8cout<<ofstringis:"<<string<<ofstaticcast<void*>(string)is:"<<static_cast<void*>(string)<<endl;return13}輸出結(jié)果:Valueofstringis:testValueofstaticcast<void*>(string)is:Ox00416D50圖3.8char*putput函數(shù)的連續(xù)調(diào)用put成員函數(shù)用于輸出一個字符,例如語句:cout.put('A');將字符A顯示在屏幕上。也可以像下面那樣在一條語句中連續(xù)調(diào)用put函數(shù):cout.put('A').put('\n');該語句在輸出字符A后輸出一個換行符。和<<一樣,上述語句中圓點(diǎn)運(yùn)算符(.)從左向右結(jié)合,put成員函數(shù)返回調(diào)用put的對象的引用。還可以用ASCII碼值表達(dá)式調(diào)用put函數(shù),語句cout.put(65)也輸出字符A。4 輸入流(>>)tab0(false);)failbit3.73.8流讀取運(yùn)算符3.9cin>>//Fig.3.9:figll_09.cpp//Calculatingthesumoftwointegersinputfromthekeyboard3//withthecinoctandthestream-extractionoperator.4#include<iostream>5usingnamespacestd;6intmain()7{8 intx,9cout<<"Entertwointegers:";cin>>x>>12 cout<<"Sumof"<<x<<"and"<<y<<"is:"13 <<(x+y)<<endl;1415 return16}輸出結(jié)果:Entertwointegers:3092Sumof30and92is:122圖3.9計(jì)算用cin和流讀取運(yùn)算符從鍵盤輸入的兩個整數(shù)值的和>><<3.10()。//Fig.3.10:figlll0.cpp//aprecedenceproblembetweenthestream-insertion3//operatorandtheconditionaloperator.4//Needparenthesesaroundtheconditionalexpression.5#include<iostream.h>usingnamespaceintmain()89 intx,10cout<<"Entertwointegers:";cin>>x>>cout<<x<<(x==y?"is":"isnot")<<"equalto"<<y<<endl;1516 return17}輸出結(jié)果:Entertwointegers:7 5isnotequalto5Entertwointegers:88isequalto8圖3.10避免在流插入運(yùn)算符和條件運(yùn)算符之間出現(xiàn)優(yōu)先級錯誤我們通常在while0false)3.11(cin>>grade)0(false)。3.ios(istream的類)void*0void*//Fig.3.11:figll_ll.cpp//Stream-extractionoperatorreturningfalseonend-of-file.3#include<iostream.h>usingnamespaceintmain()6{7 intgrade,highestGrade=-1;8cout<<"Entergrade(enterend-of-filetoend):";while(cin>>grade){if(grade>highestGrade)highestGrade=1314 cout<<"Entergrade(enterend-of-filetoend):";15 }16cout<<"\n\nHighestgradeis:"<<highestGrade<<endl;return19}輸出結(jié)果:Entergrade(enterend-of-filetoend):67Entergrade(enterend-of-filetoend):87Entergrade(enterendoffiletoend):73Entergrade(enterend-of-filetoend):95Entergrade(enterend-of-filetoend):34Entergrade(enterend-of-filetoend):99Entergrade(enterend-of-filetoend):^zHeighestgradeis:99圖3.11流讀取運(yùn)算符在遇到文件結(jié)束符時返回falsegetgetline不帶參數(shù)的getget。3.12eofgetputcout序首先輸出了cin.eof()0(false)cin(在IBMPC<ctrl>-z表示;在UNIXMacintosh<ctrl>-d)putcoutwhilecin.eof()1(true)cin中不帶參數(shù)的get成員函數(shù),其返回值是所輸入的字符。1//Fig.3.12:figll_12.cpp2//Usingmemberfunctionsget,putandeof.3#include<iostream>usingnamespaceintmain()6{7 char8cout<<"Beforeinput,cin.eof()is"<<cin.eof()<<"\nEnterasentencefollowedbyend-of-file:\n";11while((c=cin.get())!=EOF)cout.put(c14cout<<"\nEOFinthissystemis:"<<c;cout<<"\nAfterinput,cin.eof()is"<<cin.eof()<<endl;return18}輸出結(jié)果:Beforeinput,cin.eof()is0Enterasentencefollowedbyend-of-file:thegetandputmemberfunctions^zthegetandputmemberfunctionsEOFinthissystemis:-1Afterinputcin.eof()is1圖3.12使用成員函數(shù)get.put和eofget(istreamget函數(shù)。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 會議組織與管理工作制度
- 2026年溫嶺市司法局招錄備考題庫及參考答案詳解一套
- 2026年鄭州經(jīng)開區(qū)致遠(yuǎn)中學(xué)招聘教師備考題庫完整參考答案詳解
- 2026年陸川縣灘面鎮(zhèn)衛(wèi)生院公開招聘編外人員備考題庫及一套完整答案詳解
- 中學(xué)學(xué)生食堂食品安全管理制度
- 2026年望牛墩鎮(zhèn)實(shí)驗(yàn)小學(xué)招聘辦公室工作人員一名備考題庫及1套完整答案詳解
- 養(yǎng)老院內(nèi)部保衛(wèi)制度
- 企業(yè)員工培訓(xùn)與職業(yè)發(fā)展路徑制度
- 交通違法行為舉報(bào)獎勵制度
- 華中科技大學(xué)同濟(jì)醫(yī)學(xué)院附屬協(xié)和醫(yī)院2026年臨床科室醫(yī)療崗位招聘備考題庫及答案詳解一套
- T∕ZZB 0146-2016 重載有砟軌道混凝土岔枕
- 地理7下期末試題及答案
- (二檢)廈門市2025屆高中畢業(yè)班第二次質(zhì)量檢測歷史試卷
- 呼吸內(nèi)科一科一品一特色護(hù)理
- 結(jié)婚函調(diào)報(bào)告表
- CJJT164-2011 盾構(gòu)隧道管片質(zhì)量檢測技術(shù)標(biāo)準(zhǔn)
- 倒檔變速叉工序卡
- SYT 6968-2021 油氣輸送管道工程水平定向鉆穿越設(shè)計(jì)規(guī)范-PDF解密
- GB/T 43824-2024村鎮(zhèn)供水工程技術(shù)規(guī)范
- 心力衰竭藥物治療的經(jīng)濟(jì)評估與成本效益分析
- QA出貨檢驗(yàn)日報(bào)表
評論
0/150
提交評論