




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1程序設(shè)計(jì)基礎(chǔ)程序設(shè)計(jì)基礎(chǔ)2C程序的上機(jī)步驟C語(yǔ)言發(fā)展歷史C語(yǔ)言的特點(diǎn)簡(jiǎn)單的C程序介紹第一章 C語(yǔ)言概述3機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言計(jì)算機(jī)唯一能識(shí)別和處理的語(yǔ)言,由0、1序列構(gòu)成的指令代碼,用表示“+” 用助記符號(hào)描述的指令系統(tǒng)用 ADD A, B 表示“ A+B ”面向機(jī)器的語(yǔ)言用 sum=a+b;來(lái)實(shí)現(xiàn)求和面向過(guò)程、面向?qū)ο蟮恼Z(yǔ)言程序設(shè)計(jì)語(yǔ)言的發(fā)展C語(yǔ)言出現(xiàn)的歷史背景4n產(chǎn)生過(guò)程n時(shí)間:19721973n地點(diǎn):美國(guó)貝爾實(shí)驗(yàn)室n目的:UNIX操作系統(tǒng)n設(shè)計(jì)人: Ken.Thompson和D.M.RitchieC語(yǔ)言發(fā)展過(guò)程5nC標(biāo)準(zhǔn)n標(biāo)準(zhǔn)C: K&R合著The C Programming La
2、nguagenANSI C: 1983年n87 ANSI C: 1987年(通過(guò)ISO認(rèn)證)nC版本nMicrosoft C 或稱 MS-CMS-C nTurbo C 或稱 TCTCC語(yǔ)言發(fā)展過(guò)程6C兼有高級(jí)語(yǔ)言和低級(jí)語(yǔ)言的特點(diǎn) 語(yǔ)言簡(jiǎn)潔、緊湊、靈活運(yùn)算符和數(shù)據(jù)類型豐富程序設(shè)計(jì)結(jié)構(gòu)化、模塊化語(yǔ)法限制不太嚴(yán)格允許直接訪問(wèn)物理地址生成目標(biāo)代碼質(zhì)量高可移植性好C語(yǔ)言特點(diǎn)732個(gè)關(guān)鍵字:(auto break case char constcontinue default do double elseenum extern float for gotoif int long register retu
3、rnshort signed sizeof static structswitch typedef unsigned union voidvolatile whileANSI C一共只有32個(gè)關(guān)鍵字,見365頁(yè) 附錄B 在C語(yǔ)言中關(guān)鍵字都是小寫的! C語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活834種運(yùn)算符:算術(shù)運(yùn)算符:+ - * / % + -關(guān)系運(yùn)算符: = !=邏輯運(yùn)算符:! & |位運(yùn)算符 : | &賦值運(yùn)算符:= 及其擴(kuò)展條件運(yùn)算符:?:逗號(hào)運(yùn)算符:,指針運(yùn)算符:* &求字節(jié)數(shù) :sizeof強(qiáng)制類型轉(zhuǎn)換:(類型)分量運(yùn)算符:. -下標(biāo)運(yùn)算符: 其它 :( ) -C語(yǔ)言運(yùn)算符豐富9C數(shù)據(jù)類型基本
4、類型構(gòu)造類型指針類型空類型void定義類型typedef數(shù)值類型字符類型char枚舉類型enum整 型浮點(diǎn)型單精度型float雙精度型double短整型short長(zhǎng)整型long整型int數(shù)組結(jié)構(gòu)體struct共用體unionC語(yǔ)言數(shù)據(jù)結(jié)構(gòu)豐富109種控制語(yǔ)句:if( )elsefor( )while( )dowhile( )continuebreakswitchgotoreturnC語(yǔ)言有 9 種控制語(yǔ)句,程序書寫形式自由,主要用小寫字母表示,壓縮了一切不必要的成分。 11y) z=x; else z=y; return(z);main() int a,b,c; scanf(“%d,%d”,&
5、a,&b); c=max(a,b); printf( max = %d,c);/* 定義max子函數(shù) */int max(int x,int y) int z; if(xy) z=x; else z=y; return(z);scanf語(yǔ)句中“&a”的含義是“取地址”10,20 max = 20輸入:輸出:16例: /*This is the main /* of example1.1*/ */ 非法C語(yǔ)言結(jié)構(gòu)特點(diǎn)函數(shù)與主函數(shù)C程序是由函數(shù)構(gòu)成的一個(gè)程序中有且只能有一個(gè)主函數(shù)main()程序執(zhí)行從main開始,在main中結(jié)束,其它函數(shù)通過(guò)嵌套調(diào)用得以執(zhí)行。程序語(yǔ)句C程序書寫格式自由,一行可有
6、多個(gè)語(yǔ)句用“; ;”作為語(yǔ)句終止符注釋/* */為注釋,不能嵌套不產(chǎn)生編譯代碼17main( ) . . . . . . .main( ) int i , sum; sum=0; for(i=1; i100;i+) sum+=i;/*求和*/ printf(“%dn”,sum);優(yōu)秀程序員的素質(zhì)之一: 使用TAB縮進(jìn) 對(duì)齊 有足夠的注釋 有合適的空行習(xí)慣用小寫字母,大小寫敏感不使用行號(hào),無(wú)程序行概念可使用空行和空格常用鋸齒形書寫格式格式特點(diǎn)18編輯鏈接編譯執(zhí)行程序代碼的錄入,生成源程序 *.c語(yǔ)法分析查錯(cuò),翻譯生成目標(biāo)程序 *.obj與其它目標(biāo)程序或庫(kù)鏈接裝配,生成可執(zhí)行程序 *.exe源程序
7、目標(biāo)程序可執(zhí)行程序內(nèi)容程序設(shè)計(jì)語(yǔ)言機(jī)器語(yǔ)言機(jī)器語(yǔ)言可執(zhí)行不可以不可以可以文件名后綴.c.obj.exe軟件用戶得到的僅僅是可執(zhí)可執(zhí)行程序行程序!C程序執(zhí)行步驟C程序的上機(jī)步驟19第二章 程序的靈魂算法(Algorithm)20Nikiklaus Wirth提出: 程序= 數(shù)據(jù)結(jié)構(gòu)(data structure)+算法(algorithm)教材認(rèn)為: 程序=算法+數(shù)據(jù)結(jié)構(gòu)+程序設(shè)計(jì)方法+語(yǔ)言工具和環(huán)境 靈魂加工對(duì)象VC或者Java程序的要素結(jié)構(gòu)化程序設(shè)計(jì)21算法的概念算法為解決一個(gè)問(wèn)題而采取的方法和步驟在有限步驟內(nèi)求解某一問(wèn)題所使用的一組定義明確的規(guī)則22【例2.1】求12345。最原始方法:步
8、驟1:先求12,得到結(jié)果2。步驟2:將步驟1得到的乘積2乘以3,得到結(jié)果6。步驟3:將6再乘以4,得24。步驟4:將24再乘以5,得120。這樣的算法雖然正確,但太繁。改進(jìn)的算法:S1: 使t=1S2: 使i=2S3: 使ti, 乘積仍然放在在變量t中,可表示為titS4: 使i的值+1,即i+1iS5: 如果i5, 返回重新執(zhí)行步驟S3以及其后的S4和S5;否則,算法結(jié)束。2324【例【例2.3】判定】判定2000 2500年中的每一年是否閏年,年中的每一年是否閏年,將結(jié)果輸出。將結(jié)果輸出。潤(rùn)年的條件:潤(rùn)年的條件:能被能被4整除,但不能被整除,但不能被100整除的年份;整除的年份;能被能被1
9、00整除,又能被整除,又能被400整除的年份;整除的年份;設(shè)設(shè)y為被檢測(cè)的年份,則算法可表示如下:為被檢測(cè)的年份,則算法可表示如下:S1: 2000yS2:若若y不能被不能被4整除,則輸出整除,則輸出y“不是閏年不是閏年”,然后轉(zhuǎn)到,然后轉(zhuǎn)到S6S3:若若y能被能被4整除,不能被整除,不能被100整除,則輸出整除,則輸出y“是閏是閏年年”,然后轉(zhuǎn)到,然后轉(zhuǎn)到S6S4:若若y能被能被100整除,又能被整除,又能被400整除,輸出整除,輸出y“是閏是閏年年” 否則輸出否則輸出y“不是閏年不是閏年”,然后轉(zhuǎn)到,然后轉(zhuǎn)到S6S5:輸出輸出y“不是閏年不是閏年”。S6:y+1yS7:當(dāng)當(dāng)y2500時(shí)時(shí),
10、 返回返回S2繼續(xù)執(zhí)行,否則,結(jié)束。繼續(xù)執(zhí)行,否則,結(jié)束。252627算法的特征確定性有零個(gè)或多個(gè)輸入有效性有一個(gè)或多個(gè)輸出有窮性28v自然語(yǔ)言表示v流程圖表示v N-S流程圖表示v偽代碼表示v計(jì)算機(jī)語(yǔ)言表示q 順序結(jié)構(gòu)q 選擇結(jié)構(gòu)q 循環(huán)結(jié)構(gòu)怎樣表示一個(gè)算法29流程圖要素 30n結(jié)構(gòu)化程序設(shè)計(jì)n 基本思想:任何程序都可以用三種基本結(jié)構(gòu)表示,限制使用無(wú)條件轉(zhuǎn)移語(yǔ)句(goto)n 結(jié)構(gòu)化程序:由三種基本結(jié)構(gòu)反復(fù)嵌套構(gòu)成的程序n 優(yōu)點(diǎn):結(jié)構(gòu)清晰,易讀,提高程序設(shè)計(jì)質(zhì)量和效率程序的三種基本結(jié)構(gòu)31ABAB流程圖N-S圖順序結(jié)構(gòu)32PAB真假PBA真假A1A2AiAnk=k2k=k1k=knk=ki.l二分支選擇結(jié)構(gòu)l多分支選擇結(jié)構(gòu)選擇結(jié)構(gòu)33l當(dāng)型循環(huán)結(jié)構(gòu)l直到型循環(huán)結(jié)構(gòu)PA假真當(dāng)P為真AAP真假A直到P為
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省南通市南通中學(xué)2024-2025學(xué)年高一上學(xué)期第二次月考英語(yǔ)試題(解析版)
- 老年褥瘡護(hù)理課件
- 老年病中醫(yī)課件
- 海洋文化旅游線路設(shè)計(jì)
- 老年護(hù)理輪椅課件
- 老師管課件的職業(yè)
- 綠色倉(cāng)儲(chǔ)企業(yè)倉(cāng)庫(kù)保管員環(huán)保責(zé)任合同
- 車展展會(huì)現(xiàn)場(chǎng)安全保衛(wèi)與服務(wù)合同
- 離婚財(cái)產(chǎn)分割及債務(wù)承擔(dān)補(bǔ)充協(xié)議
- 高鐵站停車場(chǎng)車位代理銷售及客運(yùn)服務(wù)合同
- 醫(yī)患之間暴力行為預(yù)防與處理管理制度
- 2022年版初中物理課程標(biāo)準(zhǔn)解讀-課件
- MOOC 大學(xué)物理實(shí)驗(yàn)-鄭州大學(xué) 中國(guó)大學(xué)慕課答案
- 眼科臨床路徑培訓(xùn)記錄課件
- 術(shù)后病人燙傷不良事件PDCA循環(huán)分析課件
- 學(xué)校作業(yè)檢查總結(jié)匯報(bào)
- 骨科手術(shù)后的康復(fù)輔助器具和輔助裝置
- 學(xué)校課程體系建設(shè)與調(diào)整情況匯報(bào)
- 鐵路路基施工與維護(hù)習(xí)題集
- 音樂(lè)考試真題
- 彩鋼屋面自粘卷材施工方案
評(píng)論
0/150
提交評(píng)論