川師c語言實驗報告十_第1頁
川師c語言實驗報告十_第2頁
川師c語言實驗報告十_第3頁
川師c語言實驗報告十_第4頁
川師c語言實驗報告十_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)學(xué)與軟件科學(xué)學(xué)院實驗報告學(xué)期:2013至_2014第_1學(xué)期時間:2013年12月09日課程名稱:程序設(shè)計基礎(chǔ)教程-C語言專業(yè):數(shù)學(xué)與應(yīng)用數(shù)學(xué)2012級1班實驗編號:10實驗項目:位運算和文件操作指導(dǎo)教師:姓名:學(xué)號:實驗成績:一、實驗?zāi)康募耙?1)掌握位運算的基本概念和方法,以及有關(guān)位運算的常見算法和基本應(yīng)用;(2)掌握文件和文件指針概念,以及文件的一般定義、操作方法。在此基礎(chǔ)上了解有關(guān)文件的基本應(yīng)用并熟悉相關(guān)函數(shù)。注:重點掌握緩沖文件系統(tǒng)的操作和運用,在此基礎(chǔ)上了解和熟悉文件的順序讀寫和隨機讀寫方法。二、實驗內(nèi)容1.熟悉位運算的基本操作方法。(以教材例11-1為基礎(chǔ))2.了解和熟悉位運算的基本應(yīng)用。(以教材例11-2~11-6為基礎(chǔ))3.熟悉文件操作的基本步驟。(以例12-1~12-7為基礎(chǔ))4.了解文件的讀、寫函數(shù)的使用方法。(以例12-8~12-10為基礎(chǔ))三、實驗預(yù)備(1)復(fù)習(xí)有關(guān)位運算和文件操作的基本知識;(2)仔細分析教材所提供的各程序?qū)嵗捌淇赡軋?zhí)行結(jié)果;四、實驗步驟(1)上機執(zhí)行各實例程序,并做相應(yīng)測試和分析;(2)總結(jié)基于位運算的程序設(shè)計特點及其可能的應(yīng)用領(lǐng)域;總結(jié)文件的基本結(jié)構(gòu)及其操作步驟,以及應(yīng)用文件的主要問題領(lǐng)域。(3)編寫實驗報告。五、實驗結(jié)果分析與評價(1)根據(jù)測試目標(biāo)寫出測試報告;(2)測試結(jié)果分析說明;(3)測試程序代碼清單。熟悉位運算的基本操作方法。(以教材例11-1為基礎(chǔ))只有~為單目運算符位運算只能用于整型或字符型數(shù)據(jù)位運算符可以與賦值運算符結(jié)合組成擴展的賦值運算,即~=,<<=,>>=,&=,^=,|=兩個長度不同的數(shù)據(jù)進行位運算時,系統(tǒng)先將二者右端對齊,然后將短的一方進行擴充。對無符號數(shù),按無符數(shù)則以0擴充;對有符號數(shù),按符號擴充例題:11-1按位進行基本位操作結(jié)果分析:按位邏輯與通過&操作符完成。它通過對其左右兩個操作符逐位與后獲得一個新值,作為邏輯與的結(jié)果;按位邏輯或的運算,按位邏輯非也是同樣道理的;對于有符號數(shù),左移或右移后右邊或左邊空出的位以符號位填充。2.了解和熟悉位運算的基本應(yīng)用。(以教材例11-2~11-6為基礎(chǔ))(1)掩碼技術(shù)(Mask)用一個二進制bit串來覆蓋另一個二進制串bit串,使被覆蓋者保持某種性質(zhì)的技術(shù)使某個二進制位串保持某種特征指定某個二進制位的0/1狀態(tài)位的打開:打開位串中的特定位而保持其他位不變位的關(guān)閉:將指定位賦予0值而不影響其他位操作。(4)位的翻轉(zhuǎn):對指定位的狀態(tài)進行求反操作。(5)位的檢查:利用掩碼技術(shù)屏蔽其他bit位,從而查看指定bit位的狀態(tài)。例題11-2寫一程序,實現(xiàn)將給定整數(shù)值轉(zhuǎn)換為二進制字符串并分節(jié)輸出轉(zhuǎn)換結(jié)果。運行結(jié)果如下:Pleaseinputaninteger:5670000,0010,0011,0111結(jié)果分析:因為C語言沒有直接提供二進制形式的I/O操作,要將給定整數(shù)值轉(zhuǎn)換為二進制字符串形式要用到掩碼技術(shù)和邏輯左移或右移運算。掩碼用于對指定bit位進行狀態(tài)檢測,左移或右移使待轉(zhuǎn)換整數(shù)的二進制位串的下一bit移動到掩碼中狀態(tài)為1的bit位處。以上程序?qū)φ麛?shù)number右移而掩碼0x0001固定不變完成轉(zhuǎn)換;也可以對掩碼左移而整數(shù)number固定不變來完成。3.熟悉文件操作的基本步驟。(以例12-1~12-7為基礎(chǔ))4.了解文件的讀、寫函數(shù)的使用方法。(以例12-8~12-10為基礎(chǔ))(1)緩沖文件系統(tǒng)的文件信息區(qū)結(jié)構(gòu)及指向文件的指針聲明文件指針變量的格式:FILE*文件結(jié)構(gòu)體指針變量名;注意:緩沖文件系統(tǒng)中,所有對文件的操作都必須通過指向文件結(jié)構(gòu)體指針變量完成只要將文件信息對應(yīng)的結(jié)構(gòu)體變量之起始地址值賦給文件指針變量,就可以達到操作和管理文件的目的(2)緩沖文件系統(tǒng)的讀寫文件方法fgetc()和fputc()fputc()intfputc(intch,FILE*stream);功能:把一字節(jié)的ch寫入文件stream中。寫入正常時,返回ch;寫入出錯時,返回EOF。fgetc()intfgetc(FILE*stream);功能:從stream中讀取一個字節(jié)的代碼。正常讀取時,返回讀到的代碼值;讀到文件尾或出錯時返回EOF。fgets()和fputs()fgets()char*fgets(char*str,intn,FILE*stream);功能:從stream獲取n-1個字符并將第n個字符置為'\0'或在遇到'\n'時結(jié)束讀入動作并在后面加上'\0'。讀取結(jié)果存于str所在存儲空間。讀取成功時將str首地址作為函數(shù)返回值,否則返回NULL。intfputs(constchar*str,FILE*stream);功能:將串str寫入文件stream。'\0'不屬于文件內(nèi)容,它不寫入文件。fscanf()和fprintf()intfscanf(FILE*stream,constchar*format,...);intfprintf(FILE*stream,constchar*format,...);功能:按指定的格式對文件stream進行讀寫操作。讀寫成功時,返回成功讀寫的數(shù)據(jù)項個數(shù)。讀寫出錯或遇到文件尾時,返回EOF。fread()和fwrite()size_tfread(void*ptr,size_tsize,size_tn,FILE*stream);size_tfwrite(constvoid*ptr,size_tsize,size_tn,FILE*stream);功能:按指定大小從ptr讀/寫n個數(shù)據(jù)塊。成功時,返回已讀/寫的塊數(shù);出錯或遇到文件尾時,返回0值。注意1:fread()和fwrite()進行文件讀寫時,文件必須以2#方式打開。注意2:ptr是要讀寫數(shù)據(jù)塊的首地址,size為數(shù)據(jù)塊的大小,n為要讀寫的數(shù)據(jù)塊數(shù),stream是要讀寫的文件指針。例題12-2分析:因為以上程序執(zhí)行時所帶文件名參數(shù)argc和argv[],以上程序不能在C語言編譯環(huán)境下直接執(zhí)行,只能在操作系統(tǒng)界面下執(zhí)行可執(zhí)行文件并帶文件名參數(shù):否則程序?qū)⑻崾据斎胛募男畔⑷缦鲁绦驊?yīng)用了打開程序的函數(shù)fopen(),關(guān)閉fclose(),用鍵盤輸入內(nèi)容的函數(shù)fputc()或者是fgetc(),他們的應(yīng)用分別是FILE*fopen(constchar*path,constchar*mode).關(guān)閉intfclose(FILE*stream),intfput(intch,FILE*stream).出了這些還有fgetc()fgets()fputs()fscanf()fprintf()fread()fwrite()這些函數(shù)。實驗心得:十一章主要是位運算(1)&與:只有都為1的時候才為1,其余都為0(2)|或:只有都為0的時候才為0,其余都為1(3)^異或:相同為0,不同為1(4)<<左移:右邊空出的用0來填充(5)>>右移:有符號的用符號位來填充,無符號就用0來填充。十二章主要內(nèi)容是文件包括文件的分類以及定義,定義結(jié)構(gòu)如下:Typedefstruct{Shortlevel;Unsignedflags;Charfd;Unsignedcharhold;Shortbsize;Unsignedchar*buffer;Unsignedchar*curp;Unsignedistemp;Shorttoken;}FILE;接下來是文件的打開及關(guān)閉FILE*fopen(constchar*path,constchar*mode).關(guān)閉intfclose(FILE*stream)。還有文件的輸入讀寫等函數(shù)intfput(intch,FILE*stream).出了這

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論