




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
織碼匠c第一 函 if語 運算 程序的運行 標識符命名規 算法的基本概 算法的表示 第三章順序程序設 轉義字 整 型 字符型數 第四章選擇結構程序設 switch語 條件編 頭文 第五章循環結構程序設 break的作 continue的作 第六章數 單位換 內存地 一維數 二維數 通過指針數 第七章函 宏定 遞 函數指 變量的方式和生存 第八章指 指針數 多重指 指針數組做main函數形 void指 動態內存分 指針小 第九章用戶建立自己的數據類 結構 復雜的數據類 用typedef新類型 單向鏈 共用體類 枚舉類 第十章對文件的輸入輸 文件分 文件 數據文 文件緩沖 文件類型指 打開文 關閉文 向文件讀寫字 隨機讀寫數據文 文件讀寫檢 第十一章位運 |(按位或 ^(按位異或 ~(按位取反 位運算注意事 位 第一章設計符號語言(匯編語言)語言轉換成機器指令。這個過程叫做“”或“匯編”。高級語言,它也不能被計算機直接識別,需要編譯程序把高級語言寫的程序(稱為源程成,如:QBASIC,FORTARN77C語言C語言的前身是BCPL語言,貝爾正式發布了C語言C1.ANSIC C90(3個標準都一樣)2f—||||{return}|把上面的函數翻譯成數學語言:設x為整數,f(xififif(表達式 語句語句1語句語句1elseif(表達式2)語句2..elseif(表達式n)語句n語句語句1elseif(表達式2)語句2..elseif(表達式n)語句n總結:一個if語句中有且只有一個if,elseif可以有多個,else最多1 -.符2!~-+-(類型*&3*/%4+-56<>78&9^|?=-,優先級初等運()單目運算數運算符 % -在后 <=== !=在后)邏輯運算符(除!以外,&&,||在后)逗號運算符都是自左往右的注:頭文件中有函數,全局變量,宏定義除庫函數的函數名由系統定義外,其余都由用戶自定義。C規定,標識符只能是字母(A~Z,a~z)、數字(0~9_CCcC中規定標識(vc6.032C語言中的關鍵字(c90規定了32個,c99新增了5個第二章算法——程序的(二)一個算法+數據結構=程BS型算法,意為一碗面條(abowlofspaghetti) (三)N-S 第三章順序程序設一個單撇號一個雙撇號一個問號一個反斜線頭頭將當前位置移到下一個\o、\oo或oASCIIhASCII(3)0 8位二進制補碼所代表的整數: 00000000——————00000001——————.....011111111272^(8-1110000000-128-2^(8- 10000001——————-127——-(2^(8-1)-10000010——————-126——-(2^(8-1)-.....11111111——————-(二)整型數據的空間及范(1)TurboCint2個字節。VC6.0int4個字節。C標準沒有具體規定各種數據long2248↓↓↓↓unsigned2<=unsigned2 unsigned4unsignedlong8注意:只有整型(包括字符型)signedunsigned修飾符,實數型不能加;對無符號整型數據用%u格式輸出。C99longlongbool(布爾型)2short,4int,8long2unsignedshort,unsigned4unsignedint,unsigned8unsignedlong記 2^7==2^8==2^15==2^16====2^31≈==2^32≈4e98==2^63≈9e1816==2^64≈注意:黑色的格式scanf可用,黑色和紅色的格式printf可用格式longunsignedunsignedunsignedunsignedlong無unsigned無無unsignedU,L,unsignedUL,ul,Ul,longLL,ll,Ll,unsignedlongULL,ull,ULl,UlL,uLL,Ull,uLl,浮點型數據(包括:單精度浮點型,雙精度浮點型,長雙精度浮點型,復數浮點型(一)00。如:0.314159e13.14159的規范化的指數形式。(二)實數空間及范圍(TurboC中longdouble占16個字節,vc++6.0中占8個字節4601.2e-802.3e-double,long03.4e-long0有效數字(0.6186,1,8)(一)字符是以整數形式(ASCII碼)存放在內存單元中。ASCII128個字符(也就是說最7位就可以表示)。記住 ’A’——’a’——97 ASCII32’0’——48空格—— ’——’\n’’\0’——signed1unsigned1所以在字符時只用到了0-127這一部分。第四章選擇結構程序設switch {case1:case2: case常量n:語句 //每個case常量必須互不相default:語句 }#ifdef#ifndef#if#ifdef#ifndef#if#include<文件名> 系統到存放C庫函數頭文件的 #include”文件名” switch1abc2bc3輸出c第五章循環結構程序設do...whilebreakcontinue 3.2個乒乓球隊比賽,甲隊A,B,C3人,乙隊X,Y,Z3人。已抽簽決定比賽。A說他不和X比,C說他不和X,Z比,請編程找到3對賽手的。第六章數1KB=2^10B=1MB=2^10KB=1GB=2^10MB=以2GB內存地址為例,2GB=2^31B,計算機就為這2^31個單元(字節)的位置編碼定義數組的一般形式:[常量表達式數組元素的:數組名[下標二維數組定義的一般形式:[常量表達式常量表達式例如:inta[2][3];23但實際內存是線性的,(假設此二維數組從第1000個字節處開始存放)所以實際方式通過指針數①我們當時學一維數組時,w,w[z]z[w]與*(w+z)等價.其實把這條原則進行推廣,wz其中一個是”非空型指針”(void*是”空型指針”,其特點是該指針指向的變量的數據類型長度你不能確定;int*,int**,double*,void**都是”非空型指針”),另一個是整型常數,w[z]z[w]與*(w+z)就依然等價,為什么?答:w是指針,z是個整型常數.w[z]“參照地址[與參照地址的偏移量]”,其含義與*(w+z)一致,又因為*(w+z)和*(z+w)在數學上等價,w[z]與*(w+z)與*(z+w)z[w]等②為什么a[0]x,a[0][0],a[0][1],a[0][2]x[0],x[1],x[2].intx[3];那么xa[0][0],a[0][1],a[0][2]看成是a[0]3個元素.簡單的說:a[0]+1這個表達式中所謂的”加一”,其地址偏移的”1個單位”究竟是幾個具體的說先聯想一維數組,一維數組的數組名是第一個元素的地址;數組名+1是第二個元素的地那么a[0][0],a[0][1],a[0][2]的數組名a[0]是第一個元素的地址.即a[0][0]的地址,即數組名a[0]等價于&a[0][0],1000a[0]+1”則表示第二個元素的地址,a[0]+1與&a[0][1]等價,1004,...,依次類推.另外我們知道一個量的地址,那么對該變量的地址解(使用*)那么就得到該變量,因此*a)與]等價.又因為①,所以+1和*a+1等價,所以*a)與**a+)與a等價.③推廣:n(n為正整數)intm[y1][y2]...[yn-1][yn],y1,y2,...,yn0的整型常[[可以看成m[k1][k2]...[kn-1]的元素,kx0yx的整數,x∈{1,2,...,n-④inta[2][3],a[0],a[1]a的”元素”?為什么_1:與②思考方法類似,intx[2]x[0],x[1],x;a[0],a[1]想象成數組名為a2個元素同理],a[0]a[1]a2個”元素⑤對我們來說④這種觀點有什么用呢:由④知:1)a[0][0],a[0][1],a[0][2]構成數組a[0],即上圖左側紅框內存單元的區域,而這塊內存1000a[1][0],a[1][1],a[1][2]a[1],即上圖右側紅框內存單元的區域,而這塊內存1012aa[0]a[1].a當成一個一維數組來看的.而我們知道一維數組的數組名是該數組第一個元素所占內存單元的首字節地址,即a與&a[0]與&(*a)等價;而數組名加1表示該一維數組第二個元素的地,址即a+1與&a[1]與&(*(a+1))等價.看圖可知a1000,a的值為,可以發現a+1和a12,3個綜上對于二維整型數組inta[H][L]來說(其中H,L是正整型常數),a+z的值.實際上是a[0][0]的地址加上z*sizeof(int)*L的值.也是元素a[z][0]地址的值(即a[z]的值).特別注意a+za[z]的因為:a+za[z]都是指針,值也相同,但是數據類型不同(具體的數據類型,學到”復雜的數1000,a[0]的值是,a[0]a[0]+14;a[1]1012,a[1],a[1]a[1]+1a1000,a的值為,aa+112;a[0]和a[0]+14;很明顯對a和a[0]分別加一,所產生的地址的偏移量不同,所以盡管a和a[0]1000,但是數據類型不同.思考 輸出以下三角形(要求輸出10行1 n1個人開始報數(13報數)3的人退第七章函帶參宏定義:#define宏名(參數表)變量的方式和生存釋放,這種變量是存放在內存的動態區的。內存中的位動態register(動態vc++6.0中不可省靜態靜態(如:externintexternextern(形參表)注:Cextern,則默認為外部函數。第八章指定義指針數組的一般形式:*數組名[數組長度如:int*p[4]; 由于[]比*優先級高,因此p先于[4]結合,形成p[4],這顯然是數組的形式,表示p數組有4個元素。然后p[4]再和*結合,表示此數組的每個元素都可指向一個整型變mainmain函數無參時(如:intmainvoid),mainmainintmainintargcchar*argvargc;argvwinrcmd,點彈出令提示符窗口,先輸入文件所在硬盤(如果在d盤,就輸入d+分號+回車)cd+空格+文件路徑。然后按回車,以此進入該子+空格+1+空格+2+空格+...+n。然后按回車,程序分析,因為輸入了“65.帶參main函數.exeI ”。就使得agrv中有了agrcvoidC99voidvoidC語言還允許建立內存動態分配區域,以存放一些臨時用的數據,這些數據不必在程序的pp-1,下一個元素的地址是p+1。p1p2都指向的元素都是同一個數組的,那么|p1-p2|就代表這兩個元素下標p1+p2則毫無意義。第九章用戶建立自己的數據類C語言允許用戶自己建立由不同數據組成的組合型的數據結構,它稱為結構體。在其他一struct結構體標 //struct+結構體標記即結構體的類型{}變量表列inta[5]5int*p)[5]所代表的含義?int[5]Ainta[5]Aa等價。int(*p)[5]A*pA5A*5個整型元素的數組p就是該類型的變量。intf(int)intintint(*p)(int)所代intint)Aintf(int)Af等價。int(*p)(int)A*p。AintintA*int,形參為intp就是該類型的變量。量最外層的花括號。通過這種方法,直到原式轉化成“數據類型變量”的形式。分析:inta[3][4]aAint[4]4intAa[3]BA[3]3個ABa。a3A的數組。A4intp3個元素的數組,每個元素又4int的數組。Aint*(void)int*void型的函數。則原式可以轉換為A*(*p)[10]。BA*[10]10個AB*pp10個AAint*,形參為voidp10個(int*void型的函數)的指針的數組的指針。p10int*,形參為void型的函數的指針。int*(void)Aint*,void的函數。則原式可以轉化成A*(*p[5])(void)。B*p[5]。CB*[5]5BCpp5BBAvoid的函數;Aint*,void的函數.B就是一個返回值為(int*,void的函數)void的p5((int*,void的函數的指針,void的函數)的指針的數組。int*,void的函數的指針。A*(*p)(int*)BA*(int*)Aint*的函數。B*p,p就是(Aint*的函數)的指針。A5p就是(一個返回值為(5個整型元素的數組)int*的函數)pint*5個整型元素的數組的用typedef新類型union共用體 //union+共用體名即共用體類型{}變量表列enum枚舉名{枚舉元素表列}枚舉變量表列第十章對文件的輸入輸E:\C程序設計\源程序\ 文件路 文件名主 文件后16分別以二進制和文本文件的形式存放注:①在windows系統中,文本模式下,文件以"\r\n"代表換行。若以文本模式打開文件,fputs等函數寫入換行符"\n"時,函數會自動在"\n"前面加上"\r"。即實際寫入文件的是"\r\n"。Unix/Linux系統中文本模式下,文件以"\n"Linux系統中在文本模體類型是由系統的,取名為FILE(在stdio.h中)。fopen打開文件,fopen的調用方式為:fopen(文件名,使用文件方式);如:FILE*fp=fopen(“a1”,“r”);是指向a1文件的指針(即a1文件信息區的開頭地址),那么通過fp我們就可以這個“r”(只讀“w”(只寫rrwa的,文件位置標記會在文件的末尾位置。fopen不能實現“打開”的任務,其返回值為NULL⑥有的c編譯系統可能不能完全提供上述表格的功能,有的也不用”r+”,”w+”,”a+”而3個文件指定了與終端的對應關系。標準輸入流是從終端的輸入,標準輸出流是向終端使用fopen打開這3個文件程序開始運行時會自動打開系統定義了3個文件指針stdin,stdout,stderr分別指向標準輸入流、標準輸出流、標準出錯輸出流。EOF(-1).fputc(chfp);把字符chfpEOF(-1)。②Cfputcfgetcputcgetc:#defineputc(ch,fp)fputc(ch,fp)#definegetc(fp)③DOSDwh.txt的內字符,加’\0’strstr,如果一開始就遇到文件尾或讀數NULL。fputs(strfp);strfp指向的文件中(不包含’\0’),輸0,否則返回一個非零值。(str可以是字符串常量)printfscanffprintffscanf函數。調用方式如下:注:ASCII碼轉換成二進制形式保存在內存變量中,在輸出時又要將內fread(buffer,size,count,fp);從fp所指向的文件中讀數據,最多count個項,每sizebuffer為地址開頭的內存塊中,如果調用成功返回實際到的項個數(小于或等于count),如果不成功或一開始讀到文件末尾返回0。fpcount。012代替,含義如下:012long型)00值。ferrorfeof函數值。fopenferrorfeof0。FILEfeof()才會返回為真。文件結束標識可以由clearerr()、rewind()、fseek()、fsetpos()和freopen()函數清除;如果這時位置指針未被重置,那么將在下次I/O操作時進行設置。③feof()與EOF的不同:feof()是函數,用來檢測文件的結束;EOF是EndOfFile的縮寫,是C語言中標準庫中定義的宏,定義為:#define I/O(ferror()來檢測)以及其它一些關聯操作的getc()getc()等函數返回EOF并不一定表示文件結束,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 減壓式照明指示燈開關項目投資可行性研究分析報告(2024-2030版)
- 2025年社區水質調查報告
- 賓館合同范本(5篇)
- 2025年半線卡織物行業深度研究分析報告
- 平衡鳥雕塑項目投資可行性研究分析報告(2024-2030版)
- 婚宴廳租賃合同
- 無線固話及寬帶業務銷售外包合同范本10篇
- 漫畫圖書采購協議7篇
- 電視節目合作合同協議
- 用軟件做個房產合同協議
- 企業變更 備案 申請書
- 人教部編版八年級道德與法治上冊:8.2《堅持國家利益至上》聽課評課記錄3
- 《“長賜”輪擱淺蘇伊士運河事故探析及預防對策探究》7700字
- 2025年天翼云高級運維工程師認證參考試題庫(含答案)
- 加油站的員工培訓與技能提升
- 小米財務管理
- 光伏項目資產評估報告
- 《變態反應性皮膚病》課件
- 2021年高考物理試卷(福建)(空白卷)
- 2025年4月日歷表(含農歷-周數-方便記事備忘)
- 二零二五年光伏發電項目碳排放權交易合作協議3篇
評論
0/150
提交評論