第一講C語言概述_第1頁
第一講C語言概述_第2頁
第一講C語言概述_第3頁
第一講C語言概述_第4頁
第一講C語言概述_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程要求課前請做好預(yù)習(xí)保持課堂安靜,頭腦清醒,思維活躍認(rèn)真、獨立、按時完成并提交作業(yè)重視上機(jī)實踐,有效利用寶貴的上機(jī)時間參考書目C程序設(shè)計 譚浩強(qiáng) 清華大學(xué)出版社C語言程序設(shè)計何欽銘 顏 暉 高等教育出版社第0章 幾個重要的術(shù)語概念1.數(shù)據(jù) 凡是能夠被計算機(jī)接收、識別、處理的一切符號稱之為數(shù)據(jù)。2.指令 在計算機(jī)中,指令指示計算機(jī)進(jìn)行什么操作和操作什么。進(jìn)行什么操作的符號叫操作碼,操作的對象叫做操作數(shù)。3.程序 程序是為解決某一問題而設(shè)計的一系列指令,這些指令能被計算機(jī)識別和執(zhí)行。人們設(shè)計程序的最終目的是用它來解決問題。 4.程序設(shè)計 程序設(shè)計指設(shè)計、書寫及檢查程序的過程。具體來說是指包括分析

2、問題、確定解決方法、設(shè)計程序結(jié)構(gòu),使問題內(nèi)容或解題計劃變?yōu)橛嬎銠C(jī)能夠接受的指令或語句序列的過程。5.語言 語言用于傳達(dá)信息的表示方法、約定和規(guī)則的集合,是人們交流信息的工具和媒介。程序設(shè)計語言是人與計算機(jī)打交道時交流信息的一類媒介和工具,它由語句組成,包含語法和語義兩個方面。語法定義了構(gòu)造語言表達(dá)式或句子所需要的各種規(guī)則。語義則是對構(gòu)成語言成分的含義的定義和說明。 C語言程序設(shè)計 第第0 0章章 C C語言概述語言概述第一章 C語言概述C語言發(fā)展歷史C語言特點C程序格式和結(jié)構(gòu)特點C程序開發(fā)步驟算法及其表示1.1 C語言發(fā)展歷史程序設(shè)計語言的發(fā)展機(jī)器語言匯編語言高級語言面向過程面向?qū)ο驝PU指令

3、系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000 加 10010000 減用助記符號描述的指令系統(tǒng)如 ADD A, B面向機(jī)器的語言程序設(shè)計是數(shù)據(jù)被加工的過程客觀世界可以分類,對象是類的實例對象是數(shù)據(jù)和方法的封裝對象間通過發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計關(guān)鍵是定義類,并由類派生對象 C語言程序設(shè)計 第一章第一章 C C語言概述語言概述52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96AdaALGOL60ALGOL68PascalModula-2CPLBCPL BCC+JavaLISPPROLOGCOBOL

4、FORTRAN77FORTRANPL/1Simula 67Smalltalk 80BASICANSI-BASICQBASIC VBFORTRAN90C語言發(fā)展過程v產(chǎn)生背景v產(chǎn)生過程l時間:19721973l地點:美國貝爾實驗室l目的:UNIX操作系統(tǒng)l設(shè)計人: Ken.Thompson和Dennis.M.RitchievC標(biāo)準(zhǔn)l標(biāo)準(zhǔn)C: K&R合著The C Programming LanguagelANSI C: 1983年l87 ANSI C: 1987年l1990年國際標(biāo)準(zhǔn)的ANSI C C語言程序設(shè)計 第一章第一章 C C語言概述語言概述1.2 C語言特點語言簡潔、緊湊、靈活運算符和

5、數(shù)據(jù)類型豐富程序設(shè)計結(jié)構(gòu)化、模塊化生成目標(biāo)代碼質(zhì)量高可移植性好語法限制不太嚴(yán)格,程序設(shè)計自由度大C語言允許直接訪問物理地址,能進(jìn)行位操作,能實現(xiàn)匯編語言的大部分功能,可以直接對硬件進(jìn)行操作中級語言 C語言程序設(shè)計 第一章第一章 C C語言概述語言概述32個關(guān)鍵字:個關(guān)鍵字:(auto break case char constcontinue default do double elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsi

6、gned union voidvolatile while C語言程序設(shè)計 第一章第一章 C C語言概述語言概述9 9種控制語句種控制語句:if( )elsefor( )while( )dowhile( )continuebreakswitchgotoreturn C語言程序設(shè)計 第一章第一章 C C語言概述語言概述例例 C語言與語言與Pascal語言比較語言比較C語言語言 Pascal語言語言 含義含義 BEGIN.END 復(fù)合語句復(fù)合語句if(e) s; IF(e) THEN s 條件語句條件語句int i ; VAR i:INTEGER 定義定義i為整型變量為整型變量 int a10;

7、VAR a:ARRAY1.10 OF INTEGER 定義整型數(shù)組定義整型數(shù)組aint f(); FUNCTION f():INTEGER 定義定義f為返值整型的函數(shù)為返值整型的函數(shù)int *p; VAR p: INTEGER 定義定義p為指向整型變量的指針為指向整型變量的指針i+= 2; i=i+2 賦值賦值i+2ii+,+i; i=i+1 i自增值自增值結(jié)論:結(jié)論:C比比 Pascal簡練,源程序短簡練,源程序短。 C語言程序設(shè)計 第一章第一章 C C語言概述語言概述3434種運算符:種運算符:算術(shù)運算符:算術(shù)運算符:+ - + - * * / % + - / % + -關(guān)系運算符:關(guān)系運

8、算符: = != = !=邏輯運算符:!邏輯運算符:! & |& |位運算符位運算符 : | & | &賦值運算符:賦值運算符:= = 及其擴(kuò)展及其擴(kuò)展條件運算符:條件運算符:?:?:逗號運算符:逗號運算符:, ,指針運算符:指針運算符:* * & &求字節(jié)數(shù)求字節(jié)數(shù) :sizeofsizeof強(qiáng)制類型轉(zhuǎn)換:強(qiáng)制類型轉(zhuǎn)換:( (類型)類型)分量運算符:分量運算符:. -. -下標(biāo)運算符:下標(biāo)運算符:其它其它 :( ) -( ) - C語言程序設(shè)計 第一章第一章 C C語言概述語言概述C C數(shù)數(shù)據(jù)據(jù)類類型型基本類型基本類型構(gòu)造類型構(gòu)造類型指針類型指針類型空類型空類型void定義類型定義類型typ

9、edef數(shù)值類型數(shù)值類型字符類型字符類型char枚舉類型枚舉類型enum整整 型型浮點型浮點型單精度型單精度型float雙精度型雙精度型double短整型短整型short長整型長整型long整型整型int數(shù)組數(shù)組結(jié)構(gòu)體結(jié)構(gòu)體struct共用體共用體union C語言程序設(shè)計 第一章第一章 C C語言概述語言概述1.3 C程序格式和結(jié)構(gòu)特點例例1.1 1.1 第一個程序第一個程序 Hello,World!Hello,World!/* example1.1 The first C Program*/#include void main() printf(“Hello,World!”); C語言程序

10、設(shè)計 第一章第一章 C C語言概述語言概述注釋編譯預(yù)處理函數(shù)語句輸出:輸出:Hello,World!例1.2/* example1.1 calculate the sum of a and b*/#include /* This is the main program */void main() int a,b,sum; a=10; b=24; sum=add(a,b); printf(”sum= %dn,sum);/* This function calculates the sum of x and y */int add(int x,int y) int z; z=x+y; return

11、(z);運行結(jié)果:sum=34函數(shù)語句預(yù)處理命令注釋 C語言程序設(shè)計 第一章第一章 C C語言概述語言概述格式特點v習(xí)慣用小寫字母,大小寫敏感v不使用行號,無程序行概念v可使用空行和空格v常用鋸齒形書寫格式 C語言程序設(shè)計 第一章第一章 C C語言概述語言概述main( ) . . . . . . .#include void main( ) int i , j , sum; sum=0; for(i=1; i10;i+) for(j=1;j10;j+) sum+=i*j ; printf(“%dn”,sum);優(yōu)秀程序員的素質(zhì)之一: 使用TAB縮進(jìn) 對齊 有足夠的注釋 有合適的空行結(jié)構(gòu)特點v

12、函數(shù)與主函數(shù)l程序由一個或多個函數(shù)組成l必須有且只能有一個主函數(shù)main()l程序執(zhí)行從main開始,在main中結(jié)束,其它函數(shù)通過嵌套調(diào)用得以執(zhí)行。v程序語句lC程序由語句組成(可分多行書寫)l用“;”作為語句終止符v注釋l/* */為注釋,不能嵌套l不產(chǎn)生編譯代碼例: /*This is the main /* of example1.1*/ */ 非法v編譯預(yù)處理命令 C語言程序設(shè)計 第一章第一章 C C語言概述語言概述編輯編輯鏈接鏈接編譯編譯執(zhí)行執(zhí)行1.4 C程序的開發(fā)步驟C程序開發(fā)步驟 開 始 編 輯 編 譯 連 接 執(zhí) 行 有錯?結(jié)果正確? 結(jié) 束有源程序 file.c目 標(biāo) 程序

13、file.obj庫函數(shù)和其它目標(biāo)程序可執(zhí)行目標(biāo)程序無正確不正確 C語言程序設(shè)計 第一章第一章 C C語言概述語言概述程序代碼的錄入,生成源程序*.c語法分析查錯,翻譯生成目標(biāo)程序*.obj與其它目標(biāo)程序或庫鏈接裝配,生成可執(zhí)行程序*.exe源程序目標(biāo)程序可執(zhí)行程序內(nèi)容程序設(shè)計語言機(jī)器語言機(jī)器語言可執(zhí)行不可以不可以可以文件名后綴.c.obj.exe1.4 算法及其表示什么是程序?沃思(N. Wirth)公式: 數(shù)據(jù)結(jié)構(gòu) + 算法 = 程序數(shù)據(jù)結(jié)構(gòu)(Data Structure):對數(shù)據(jù)的數(shù)據(jù)類型、組成形式、相互關(guān)系等的描述算法(Algorithm):對數(shù)據(jù)結(jié)構(gòu)的操作的描述一般認(rèn)為:程序 = 數(shù)據(jù)

14、結(jié)構(gòu) + 算法 + 程序設(shè)計方法 +語言工具和環(huán)境什么是算法?算法是解決問題的方法和步驟在計算機(jī)上的表示任何問題的求解都有一定的“算法”計算機(jī)算法有很大不同v 算法是人設(shè)計出來的v 計算機(jī)算法是嚴(yán)謹(jǐn)?shù)乃惴煞譃閮深悾?數(shù)值運算算法:主要用于科學(xué)運算 非數(shù)值運算算法:如信息檢索、人工智能等算法的特性有零個或多個執(zhí)行算法所需要的數(shù)據(jù)作為輸入有一個或多個經(jīng)算法處理的數(shù)據(jù)作為輸出包含有限個步驟,執(zhí)行算法的時間也是有限時間算法的每一步所規(guī)定的動作應(yīng)該是唯一確定的,沒有二義的。算法的每個步驟都應(yīng)當(dāng)能有效地執(zhí)行,并得到確定的結(jié)果例:求s = 1 + 2 + 3 + + 100問題:求100個整數(shù)的和s,結(jié)果

15、是s 這100個整數(shù)是從1到100的所有自然數(shù)算法一:設(shè)算法一:設(shè) s 為累加單元為累加單元1) 將將1送到送到S中;中;2) 把把2加到加到S中(即中(即S中的內(nèi)容中的內(nèi)容1加加2后再送回后再送回S中,下同)中,下同)3) 把把3加到加到S中;中;100) 把把100加到加到S中;中;101) 把把S中的結(jié)果輸出。中的結(jié)果輸出。例:求s = 1 + 2 + 3 + + 100問題:求100個整數(shù)的和s,結(jié)果是s 這100個整數(shù)是從1到100的所有自然數(shù)算法二:設(shè)算法二:設(shè) n 為計數(shù)單元,為計數(shù)單元,s 為累加單元為累加單元1) 將將 0 送到送到S中,將中,將 0 送到送到 n 中;中;2) 將將 n+1 送到送到 n 中,再把中,再把 n 加到加到 s 中;中;3) 判斷判斷 n 的值是否大于等于的值是否大于

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論