C語(yǔ)言程序設(shè)計(jì)課件第1章(人民郵電出版社)_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)課件第1章(人民郵電出版社)_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)課件第1章(人民郵電出版社)_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)課件第1章(人民郵電出版社)_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)課件第1章(人民郵電出版社)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、級(jí)高語(yǔ)言設(shè)計(jì)程序章節(jié)自測(cè)及在線編程練習(xí):http:/http:/主講人:朱立華主講人:朱立華第一章第一章計(jì)算機(jī)組計(jì)算機(jī)組成與程序成與程序設(shè)計(jì)語(yǔ)言設(shè)計(jì)語(yǔ)言 C is the most beautiful language! 由低級(jí)語(yǔ)言到高級(jí)語(yǔ)言機(jī)器語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)組成及工作過(guò)程C程序開發(fā)過(guò)程 子程序調(diào)用過(guò)程子程序調(diào)用過(guò)程 C C程序開發(fā)過(guò)程程序開發(fā)過(guò)程計(jì)算機(jī)組成及機(jī)器內(nèi)部執(zhí)行程序的過(guò)程計(jì)算機(jī)組成及機(jī)器內(nèi)部執(zhí)行程序的過(guò)程動(dòng)態(tài)動(dòng)態(tài)演示演示動(dòng)態(tài)動(dòng)態(tài)演示演示重點(diǎn)難點(diǎn)提示重點(diǎn)難點(diǎn)提示軟件系統(tǒng)軟件系統(tǒng)軟件系統(tǒng)軟件系統(tǒng)硬件系統(tǒng)計(jì)算機(jī)計(jì)算機(jī)石器時(shí)代石器時(shí)代石頭、手指、繩子石頭、手指、繩子銅器時(shí)代銅器時(shí)代算籌(

2、商周時(shí)代)、格子(西方算籌(商周時(shí)代)、格子(西方)鐵器時(shí)代鐵器時(shí)代算盤算盤 通過(guò)程序設(shè)計(jì)語(yǔ)言來(lái)開通過(guò)程序設(shè)計(jì)語(yǔ)言來(lái)開發(fā)軟件發(fā)軟件加在硬件之上加在硬件之上, ,控制硬控制硬件完成功能件完成功能物質(zhì)基礎(chǔ)物質(zhì)基礎(chǔ)n“計(jì)算機(jī)之父計(jì)算機(jī)之父”馮馮諾依曼諾依曼的程序存儲(chǔ)思的程序存儲(chǔ)思想想: :計(jì)算機(jī)應(yīng)該采用二進(jìn)制計(jì)算機(jī)應(yīng)該采用二進(jìn)制 操作指令也是一種信息操作指令也是一種信息 , ,也也用二進(jìn)制數(shù)表示用二進(jìn)制數(shù)表示程序和數(shù)據(jù)的存儲(chǔ)形式可以程序和數(shù)據(jù)的存儲(chǔ)形式可以完全相同完全相同 程序本身也可包含數(shù)據(jù)程序本身也可包含數(shù)據(jù)n1946.2.14 ENIAC(1946.2.14 ENIAC(埃尼阿克埃尼阿克) )

3、n現(xiàn)在保存在賓夕法尼亞大學(xué)現(xiàn)在保存在賓夕法尼亞大學(xué)n這臺(tái)機(jī)器名為這臺(tái)機(jī)器名為“電子數(shù)值積分電子數(shù)值積分和計(jì)算機(jī)和計(jì)算機(jī)”( (簡(jiǎn)稱埃尼阿克,簡(jiǎn)稱埃尼阿克,完全是一個(gè)龐然大物,占地面完全是一個(gè)龐然大物,占地面積達(dá)積達(dá)170m2170m2,質(zhì)量達(dá),質(zhì)量達(dá)30t30t,耗電,耗電量也很驚人,功率為量也很驚人,功率為150kW150kW,共使用了近兩萬(wàn)個(gè)電子管,在共使用了近兩萬(wàn)個(gè)電子管,在工作時(shí)這些管子看上去活像兩工作時(shí)這些管子看上去活像兩萬(wàn)只點(diǎn)著的燈泡。萬(wàn)只點(diǎn)著的燈泡。n埃尼阿克主要用來(lái)進(jìn)行彈道計(jì)埃尼阿克主要用來(lái)進(jìn)行彈道計(jì)算的數(shù)值分析算的數(shù)值分析 n圖靈機(jī)圖靈機(jī): :計(jì)算機(jī)科學(xué)之父、人計(jì)算機(jī)科學(xué)之父

4、、人工智能之父工智能之父, , “圖靈獎(jiǎng)圖靈獎(jiǎng)”n德國(guó)人德國(guó)人Conran EuseConran Euse代號(hào)為代號(hào)為“Z Z”的計(jì)算機(jī)的計(jì)算機(jī)n哈佛,哈佛,IBMIBM的的MarkMark系列大型電系列大型電子計(jì)算機(jī)子計(jì)算機(jī)n真正的第一臺(tái)計(jì)算機(jī)是上面三真正的第一臺(tái)計(jì)算機(jī)是上面三臺(tái)中之一臺(tái)中之一, ,無(wú)從考證無(wú)從考證運(yùn)算器控制器接口存儲(chǔ)器輸入設(shè)備輸出設(shè)備CPU地址總線數(shù)據(jù)總線控制總線處理,進(jìn)行處理,進(jìn)行各種算數(shù)運(yùn)各種算數(shù)運(yùn)算算輸入指令代輸入指令代碼和原始數(shù)碼和原始數(shù)據(jù)據(jù) 存放程序指存放程序指令及數(shù)據(jù)令及數(shù)據(jù) 控制和指揮整控制和指揮整個(gè)運(yùn)算過(guò)程,個(gè)運(yùn)算過(guò)程,使指令按要求使指令按要求一條一條執(zhí)行。

5、一條一條執(zhí)行。 顯示或打印顯示或打印計(jì)算結(jié)果計(jì)算結(jié)果 關(guān)于二進(jìn)制問(wèn)題關(guān)于二進(jìn)制問(wèn)題n“世界上有世界上有種人,一種人懂二進(jìn)制,另一種人種人,一種人懂二進(jìn)制,另一種人不懂不懂”n這里的這里的是一個(gè)是一個(gè)二進(jìn)制數(shù)二進(jìn)制數(shù), ,就是十進(jìn)制的就是十進(jìn)制的2 2關(guān)于二進(jìn)制等進(jìn)制問(wèn)題關(guān)于二進(jìn)制等進(jìn)制問(wèn)題進(jìn)進(jìn)制制每位每位符號(hào)符號(hào)逢幾逢幾進(jìn)一進(jìn)一位位權(quán)權(quán)n n位數(shù)的位數(shù)的不同個(gè)數(shù)不同個(gè)數(shù)例子例子( (結(jié)果統(tǒng)一到十進(jìn)制結(jié)果統(tǒng)一到十進(jìn)制) )十十090910101010i i1010n n341=3341=3* *10102 2+4+4* *10101 1+1+1* *10100 0=341=341二二01012

6、22 2i i2 2n n101=1101=1* *2 22 2+0+0* *2 21 1+1+1* *2 20 0=5=5八八07078 88 8i i8 8n n127=1127=1* *8 82 2+2+2* *8 81 1+7+7* *8 80 0=87=87十十六六0909AFAF16161616i i1616n n31D=331D=3* *16162 2+1+1* *16161 1+13+13* *16160 0=797=797另另:3:3位二進(jìn)制數(shù)相當(dāng)于位二進(jìn)制數(shù)相當(dāng)于1 1位八進(jìn)制數(shù)位八進(jìn)制數(shù): 101 011B=(53): 101 011B=(53)8 8=53Q=53Q4

7、4位二進(jìn)制數(shù)相當(dāng)于位二進(jìn)制數(shù)相當(dāng)于1 1位十六進(jìn)制數(shù)位十六進(jìn)制數(shù): 1101 1001B=(D9): 1101 1001B=(D9)1616=D9H=d9H=D9H=d9Hn存儲(chǔ)器的組成:由存儲(chǔ)器的組成:由存儲(chǔ)單元存儲(chǔ)單元組成,每個(gè)單元組成,每個(gè)單元1 1個(gè)字節(jié)個(gè)字節(jié)(1B1B),),1B=8bit1B=8bit,每個(gè)單元有一個(gè)地址。,每個(gè)單元有一個(gè)地址。 n存儲(chǔ)單元中的存儲(chǔ)單元中的內(nèi)容內(nèi)容與存儲(chǔ)單元的與存儲(chǔ)單元的地址地址是兩個(gè)概念,其是兩個(gè)概念,其區(qū)別如同房間里的東西與房間號(hào)碼。區(qū)別如同房間里的東西與房間號(hào)碼。n存儲(chǔ)器的大小指它有多少個(gè)字節(jié),也就是有多少個(gè)不存儲(chǔ)器的大小指它有多少個(gè)字節(jié),也就

8、是有多少個(gè)不同的地址號(hào),取決于同的地址號(hào),取決于地址總線的根數(shù)地址總線的根數(shù),n n根地址總線,根地址總線,存儲(chǔ)器容量為:存儲(chǔ)器容量為:2 2n nn常用存儲(chǔ)單位:常用存儲(chǔ)單位:1TB=1TB=2 21010GB=GB=2 22020MB=MB=2 23030KB=KB=2 24040B Bn存儲(chǔ)器按功能分為存儲(chǔ)器按功能分為3 3大區(qū)域:程序存儲(chǔ)區(qū)、數(shù)據(jù)存儲(chǔ)大區(qū)域:程序存儲(chǔ)區(qū)、數(shù)據(jù)存儲(chǔ)區(qū)和棧區(qū)和棧 存放程序中的指令 存放程序中的數(shù)據(jù) 存取數(shù)據(jù)都在一端,無(wú)需計(jì)算地址,速度快 nCPUCPU:Central Processor Unit,Central Processor Unit,中央處理器,中

9、央處理器,完成各完成各種種處理(運(yùn)算處理(運(yùn)算+ +控制),控制),是計(jì)算機(jī)最是計(jì)算機(jī)最核心核心部件。部件。nCPUCPU中設(shè)寄存器的目的:存放數(shù)據(jù)或計(jì)算的中設(shè)寄存器的目的:存放數(shù)據(jù)或計(jì)算的中間結(jié)果中間結(jié)果,不通過(guò)地址總線和數(shù)據(jù)總線不通過(guò)地址總線和數(shù)據(jù)總線 ,處理速度快,處理速度快 。n寄存器有兩種:寄存器有兩種:通用寄存器通用寄存器和和專用寄存器專用寄存器。n熟悉兩個(gè)專用寄存器:熟悉兩個(gè)專用寄存器:(1 1)累加器累加器A A:與算術(shù)邏輯運(yùn)算器與算術(shù)邏輯運(yùn)算器ALUALU一起完成各種運(yùn)算一起完成各種運(yùn)算 (2 2)程序計(jì)數(shù)器程序計(jì)數(shù)器PCPC:寄存指令的地址,:寄存指令的地址,CPUCPU通

10、過(guò)通過(guò)PCPC取來(lái)一條取來(lái)一條指令執(zhí)行時(shí),指令執(zhí)行時(shí),PCPC便便“指向指向”下一條指令,即下一條指令,即PCPC的值變?yōu)橄乱坏闹底優(yōu)橄乱粭l將要執(zhí)行的指令的地址。除非遇到條將要執(zhí)行的指令的地址。除非遇到轉(zhuǎn)移指令轉(zhuǎn)移指令或或子程序調(diào)用子程序調(diào)用指令指令,CPUCPU都是通過(guò)都是通過(guò)PCPC順序地順序地提取指令。提取指令。 是運(yùn)算器的組成部是運(yùn)算器的組成部分,暫存操作數(shù)及分,暫存操作數(shù)及運(yùn)算的中間結(jié)果運(yùn)算的中間結(jié)果 每一個(gè)都有特定的作用每一個(gè)都有特定的作用 n程序程序是一組是一組指令指令,指令聯(lián)系著,指令聯(lián)系著存儲(chǔ)器存儲(chǔ)器和和CPUCPU,每條指,每條指令有令有操作碼操作碼,有的指令有,有的指令有

11、操作數(shù)操作數(shù),指令存儲(chǔ)在程序存,指令存儲(chǔ)在程序存儲(chǔ)區(qū),操作數(shù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)區(qū)。儲(chǔ)區(qū),操作數(shù)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)區(qū)。 n例:求和程序例:求和程序y=3+4y=3+4所包含的指令如下:所包含的指令如下:操作碼操作碼 操作數(shù)操作數(shù)指令含義指令含義01H3000H將地址為3000H的單元中的數(shù)據(jù)放入累加器A 03H3001H將地址為3001H單元中的數(shù)據(jù)與累加器A中的數(shù)據(jù)相加,結(jié)果留在A 02H3002H將累加器A中的數(shù)據(jù)存入地址為3002H的單元 07H停機(jī) 動(dòng)動(dòng)態(tài)態(tài)演示演示過(guò)過(guò)程程n對(duì)計(jì)算機(jī)而言對(duì)計(jì)算機(jī)而言:它的各個(gè)硬件部分存在的意義和相互:它的各個(gè)硬件部分存在的意義和相互的聯(lián)系通過(guò)指令來(lái)體現(xiàn)。的聯(lián)系通

12、過(guò)指令來(lái)體現(xiàn)。n對(duì)程序設(shè)計(jì)而言對(duì)程序設(shè)計(jì)而言:計(jì)算機(jī)就是指令系統(tǒng)。:計(jì)算機(jī)就是指令系統(tǒng)。n用機(jī)器語(yǔ)言進(jìn)行程序設(shè)計(jì)用機(jī)器語(yǔ)言進(jìn)行程序設(shè)計(jì):首先要首先要熟悉熟悉計(jì)算機(jī)的計(jì)算機(jī)的指令系統(tǒng)指令系統(tǒng),熟悉每一條指令的含義及用,熟悉每一條指令的含義及用法。法。設(shè)計(jì)算法設(shè)計(jì)算法,根據(jù)算法編寫程序。,根據(jù)算法編寫程序。所編寫的計(jì)算機(jī)程序體現(xiàn)為一系列指令的集合,每條指令的所編寫的計(jì)算機(jī)程序體現(xiàn)為一系列指令的集合,每條指令的操作碼和操作數(shù)都用操作碼和操作數(shù)都用二進(jìn)制二進(jìn)制數(shù)表示。數(shù)表示。用機(jī)器語(yǔ)言編寫的用機(jī)器語(yǔ)言編寫的源程序源程序就是機(jī)器能識(shí)別并執(zhí)行的就是機(jī)器能識(shí)別并執(zhí)行的目標(biāo)程序目標(biāo)程序。指令名稱指令名稱 操作

13、碼操作碼| |操作操作數(shù)數(shù)說(shuō)明說(shuō)明取數(shù) 01H NA(N),將地址為N的單元的數(shù)據(jù)存入累加器A 存數(shù)02H N(N)A,將累加器A的數(shù)據(jù)存入地址為N的單元加法 03H N將地址為N的單元的數(shù)據(jù)和A中的相加,結(jié)果存入A 乘法 04H N將地址為N的單元的數(shù)據(jù)和A中的相乘,結(jié)果存入A比較05H NA(N) 比較兩個(gè)數(shù)據(jù)(相減),結(jié)果存入寄存器F 轉(zhuǎn)移 06H NPCN 用地址N更新程序計(jì)數(shù)器PC的值 停機(jī) 07H停機(jī)子程序調(diào)用 08H N斷口地址進(jìn)棧,用地址N更新程序計(jì)數(shù)器PC的值 返回主程序 09H斷口地址出棧,用來(lái)更新程序計(jì)數(shù)器PC的值 壓棧 0aH T寄存器T中的數(shù)據(jù)進(jìn)棧保存(T表示任意寄存

14、器) 出棧 0bH N出棧,出棧數(shù)據(jù)進(jìn)入寄存器T 步驟步驟方法一方法一方法二方法二(y=x(ax+b)+c)(y=x(ax+b)+c)1取數(shù)a 取數(shù)a2計(jì)算a*x 計(jì)算a*x3 計(jì)算a*x*x 計(jì)算a*x+b4 計(jì)算b*x計(jì)算x*(a*x+b)5計(jì)算a*x*xb*x 計(jì)算x*(a*x+b) +c6 計(jì)算a*x*xb*x+c(書中未講,此方法無(wú)需調(diào)用子程序)說(shuō)明:說(shuō)明:方法一的第方法一的第4步,也需要用步,也需要用累加器累加器A,而此刻,而此刻A中中是第是第3步的結(jié)果。這時(shí),只能將第步的結(jié)果。這時(shí),只能將第4步定義為一個(gè)子程步定義為一個(gè)子程序,結(jié)果受主程序調(diào)用,因此以上步驟實(shí)質(zhì)上變成:序,結(jié)果受

15、主程序調(diào)用,因此以上步驟實(shí)質(zhì)上變成:計(jì)算計(jì)算z=b*x(子程序子程序)zz動(dòng)動(dòng)態(tài)態(tài)演示演示過(guò)過(guò)程程方方法法一一動(dòng)動(dòng)態(tài)態(tài)演示演示過(guò)過(guò)程程方方法法二二n入口地址入口地址:第一條指令在程序存儲(chǔ)區(qū)中的地址。第一條指令在程序存儲(chǔ)區(qū)中的地址。n中斷中斷:一個(gè)程序在執(zhí)行過(guò)程中去執(zhí)行另一個(gè)程序。一個(gè)程序在執(zhí)行過(guò)程中去執(zhí)行另一個(gè)程序。n斷口地址斷口地址:程序中斷時(shí)的下一條指令的地址。程序中斷時(shí)的下一條指令的地址。 n保護(hù)現(xiàn)場(chǎng)保護(hù)現(xiàn)場(chǎng):程序中斷時(shí),有些寄存器存放著中間結(jié)果,程序中斷時(shí),有些寄存器存放著中間結(jié)果,將寄存器中的中間結(jié)果放入某地將寄存器中的中間結(jié)果放入某地( (堆棧堆棧) )暫存。暫存。n恢復(fù)現(xiàn)場(chǎng)恢復(fù)現(xiàn)

16、場(chǎng) :子程序執(zhí)行完畢,再將主程序的中間結(jié)子程序執(zhí)行完畢,再將主程序的中間結(jié)果放回寄存器。果放回寄存器。n第第1 1步步:將主程序的斷口地址壓入堆棧保存。將主程序的斷口地址壓入堆棧保存。n第第2 2步步:將子程序的入口地址送入將子程序的入口地址送入PCPC。n第第3 3步步:進(jìn)入子程序后,首先保護(hù)主程序現(xiàn)場(chǎng)。進(jìn)入子程序后,首先保護(hù)主程序現(xiàn)場(chǎng)。 n第第4 4步步:執(zhí)行子程序。執(zhí)行子程序。n第第5 5步步:子程序執(zhí)行完畢,恢復(fù)主程序現(xiàn)場(chǎng)。子程序執(zhí)行完畢,恢復(fù)主程序現(xiàn)場(chǎng)。n第第6 6步步:將主程序的斷口地址從棧頂送回將主程序的斷口地址從棧頂送回PCPC。ny=ax2+bx+c 方法一的清單方法一的清單

17、n及執(zhí)行過(guò)程見(jiàn)動(dòng)態(tài)演示。及執(zhí)行過(guò)程見(jiàn)動(dòng)態(tài)演示。動(dòng)動(dòng)態(tài)態(tài)演示演示過(guò)過(guò)程程方方法法一一n機(jī)器語(yǔ)言機(jī)器語(yǔ)言:是第一代程序設(shè)計(jì)語(yǔ)言,是計(jì)算機(jī)硬件系是第一代程序設(shè)計(jì)語(yǔ)言,是計(jì)算機(jī)硬件系統(tǒng)能識(shí)別和執(zhí)行的唯一語(yǔ)言統(tǒng)能識(shí)別和執(zhí)行的唯一語(yǔ)言。n機(jī)器語(yǔ)言的機(jī)器語(yǔ)言的3 3個(gè)局限性個(gè)局限性:(1 1)程序不容易讀寫,操作碼和操作數(shù)都是二進(jìn)制數(shù))程序不容易讀寫,操作碼和操作數(shù)都是二進(jìn)制數(shù)(2 2)對(duì)計(jì)算機(jī)硬件的依賴性很強(qiáng),可移植性差)對(duì)計(jì)算機(jī)硬件的依賴性很強(qiáng),可移植性差(3 3)指令功能簡(jiǎn)單,沒(méi)有按照數(shù)據(jù)類型分類)指令功能簡(jiǎn)單,沒(méi)有按照數(shù)據(jù)類型分類改進(jìn):改進(jìn):用助記符代替機(jī)器的數(shù)字指令,用符號(hào)地址表示存儲(chǔ)用助記符代替

18、機(jī)器的數(shù)字指令,用符號(hào)地址表示存儲(chǔ) 單元的數(shù)字地址單元的數(shù)字地址匯編語(yǔ)言匯編語(yǔ)言( (第二代程序設(shè)計(jì)語(yǔ)言第二代程序設(shè)計(jì)語(yǔ)言) )改進(jìn):改進(jìn):面向問(wèn)題而非面向機(jī)器,與計(jì)算機(jī)硬件結(jié)構(gòu)無(wú)關(guān)面向問(wèn)題而非面向機(jī)器,與計(jì)算機(jī)硬件結(jié)構(gòu)無(wú)關(guān)改進(jìn):改進(jìn):提供豐富的數(shù)據(jù)類型,語(yǔ)句一般都采用自然語(yǔ)匯,提供豐富的數(shù)據(jù)類型,語(yǔ)句一般都采用自然語(yǔ)匯, 一條語(yǔ)句往往相當(dāng)于多條指令。一條語(yǔ)句往往相當(dāng)于多條指令。 n第一種高級(jí)程序設(shè)計(jì)語(yǔ)言第一種高級(jí)程序設(shè)計(jì)語(yǔ)言:FortranFortran語(yǔ)言語(yǔ)言(1954(1954年年) )n高級(jí)語(yǔ)言的發(fā)展高級(jí)語(yǔ)言的發(fā)展:(1 1)從早期語(yǔ)言到結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言)從早期語(yǔ)言到結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)

19、言(2 2)從面向過(guò)程到非過(guò)程化程序設(shè)計(jì)語(yǔ)言)從面向過(guò)程到非過(guò)程化程序設(shè)計(jì)語(yǔ)言( (面向?qū)ο螅┟嫦驅(qū)ο螅? 3)發(fā)展趨勢(shì):面向應(yīng)用)發(fā)展趨勢(shì):面向應(yīng)用n第一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言第一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言:PascalPascal語(yǔ)言語(yǔ)言(1970(1970年年) )n高級(jí)語(yǔ)言的種類有數(shù)百種,比較熟悉的有:高級(jí)語(yǔ)言的種類有數(shù)百種,比較熟悉的有:FortranFortran、BasicBasic、PascalPascal、C C、FoxBASEFoxBASE、FoxProFoxPro、LispLisp、 PrologProlog 、C+C+、JavaJava、C#C#等等n區(qū)分兩組概念:區(qū)分兩組概

20、念:n(1 1)程序設(shè)計(jì)語(yǔ)言與程序)程序設(shè)計(jì)語(yǔ)言與程序( (類似于漢語(yǔ)與文章的關(guān)系類似于漢語(yǔ)與文章的關(guān)系) )程序設(shè)計(jì)語(yǔ)言是進(jìn)行程序設(shè)計(jì)的工具,是計(jì)算機(jī)全部指令的程序設(shè)計(jì)語(yǔ)言是進(jìn)行程序設(shè)計(jì)的工具,是計(jì)算機(jī)全部指令的集合;而任何計(jì)算機(jī)程序都需要用程序設(shè)計(jì)語(yǔ)言來(lái)編寫,是集合;而任何計(jì)算機(jī)程序都需要用程序設(shè)計(jì)語(yǔ)言來(lái)編寫,是為實(shí)現(xiàn)某個(gè)算法從該語(yǔ)言中選擇所需要指令組成的集合。為實(shí)現(xiàn)某個(gè)算法從該語(yǔ)言中選擇所需要指令組成的集合。 n(2 2)源程序與目標(biāo)程序)源程序與目標(biāo)程序:源程序:源程序:程序員編寫的程序程序員編寫的程序目標(biāo)程序:目標(biāo)程序:計(jì)算機(jī)最終能識(shí)別并運(yùn)行的程序計(jì)算機(jī)最終能識(shí)別并運(yùn)行的程序( (二

21、進(jìn)制二進(jìn)制) ) 源源程程序序目目標(biāo)標(biāo)程程序序用機(jī)器語(yǔ)言編寫用機(jī)器語(yǔ)言編寫用匯編語(yǔ)言編寫用匯編語(yǔ)言編寫匯匯編編程程序序用高級(jí)語(yǔ)言編寫用高級(jí)語(yǔ)言編寫編編譯譯程程序序匯編匯編編譯編譯nC C 語(yǔ)言最早的原型是語(yǔ)言最早的原型是 ALGOL 60ALGOL 60n1973 1973 年,年,AT&T AT&T 貝爾實(shí)驗(yàn)室的貝爾實(shí)驗(yàn)室的 Dennis RitchieDennis Ritchien(D.M.RITCHIE(D.M.RITCHIE,被尊為,被尊為“C C語(yǔ)言之父語(yǔ)言之父”) ) 在在 BCPL BCPL 和和 B B 語(yǔ)言的基礎(chǔ)上設(shè)計(jì)出了一種新的語(yǔ)言語(yǔ)言的基礎(chǔ)上設(shè)計(jì)出了一種新

22、的語(yǔ)言C C語(yǔ)言,語(yǔ)言,開發(fā)開發(fā)UNIXUNIX操作系統(tǒng)操作系統(tǒng)及其上的應(yīng)用程序。及其上的應(yīng)用程序。n 1999 1999 年,年,ANSI ANSI 和和 ISO ISO 通過(guò)了最新版本的通過(guò)了最新版本的 C C 語(yǔ)言語(yǔ)言標(biāo)準(zhǔn)標(biāo)準(zhǔn)C99C99,這是關(guān)于,這是關(guān)于 C C 語(yǔ)言的最新、最權(quán)威的定義。語(yǔ)言的最新、最權(quán)威的定義。n選擇學(xué)習(xí)選擇學(xué)習(xí)C C語(yǔ)言的理由:語(yǔ)言的理由:C C語(yǔ)言不僅是面向過(guò)程的程序語(yǔ)言不僅是面向過(guò)程的程序設(shè)計(jì)語(yǔ)言中功能最強(qiáng)、效率最高的語(yǔ)言,更是面向?qū)υO(shè)計(jì)語(yǔ)言中功能最強(qiáng)、效率最高的語(yǔ)言,更是面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言象程序設(shè)計(jì)語(yǔ)言C+C+、JavaJava和和C#C#的基礎(chǔ)。的基礎(chǔ)

23、。nC C語(yǔ)言具有很多優(yōu)點(diǎn):語(yǔ)言具有很多優(yōu)點(diǎn):簡(jiǎn)潔緊湊、靈活方便簡(jiǎn)潔緊湊、靈活方便 運(yùn)算符豐富(運(yùn)算符豐富(3434個(gè))個(gè))數(shù)據(jù)類型豐富數(shù)據(jù)類型豐富 C C是結(jié)構(gòu)式語(yǔ)言,程序?qū)哟吻逦墙Y(jié)構(gòu)式語(yǔ)言,程序?qū)哟吻逦?C C語(yǔ)法限制不太嚴(yán)格,語(yǔ)法比較靈活。語(yǔ)法限制不太嚴(yán)格,語(yǔ)法比較靈活。C C語(yǔ)言允許直接訪問(wèn)物理地址,可直接對(duì)硬件進(jìn)行操作語(yǔ)言允許直接訪問(wèn)物理地址,可直接對(duì)硬件進(jìn)行操作 ,既,既可以開發(fā)系統(tǒng)軟件,又可以開發(fā)應(yīng)用軟件可以開發(fā)系統(tǒng)軟件,又可以開發(fā)應(yīng)用軟件(中級(jí)語(yǔ)言)(中級(jí)語(yǔ)言)C C語(yǔ)言程序生成代碼質(zhì)量高,程序執(zhí)行效率高語(yǔ)言程序生成代碼質(zhì)量高,程序執(zhí)行效率高 C C語(yǔ)言適用范圍大,可移植性好

24、,適合多種操作系統(tǒng),多種語(yǔ)言適用范圍大,可移植性好,適合多種操作系統(tǒng),多種機(jī)型機(jī)型源程序源程序目標(biāo)程序目標(biāo)程序可執(zhí)行程序可執(zhí)行程序內(nèi)容程序設(shè)計(jì)語(yǔ)言代碼機(jī)器語(yǔ)言代碼機(jī)器語(yǔ)言代碼可執(zhí)行?不可以不可以可以擴(kuò)展名.c.obj.exe 開 始 編 輯 編 譯 連 接 執(zhí) 行 有錯(cuò)? 結(jié)果正確? 結(jié) 束 有 源程序 file.c 目標(biāo)程序file.obj 庫(kù)函數(shù)和其它目標(biāo)程序 可執(zhí)行目標(biāo)程序 無(wú) 正確 不正確 file.exe編輯編輯程序代碼的錄入程序代碼的錄入, ,生成源程序生成源程序* *.c.c編譯編譯鏈接鏈接運(yùn)行運(yùn)行語(yǔ)法分析查錯(cuò),翻譯語(yǔ)法分析查錯(cuò),翻譯生成目標(biāo)程序生成目標(biāo)程序* *.obj.obj

25、與其它目標(biāo)程序或庫(kù)與其它目標(biāo)程序或庫(kù)鏈接裝配鏈接裝配, ,生成可執(zhí)行生成可執(zhí)行程序程序* *.exe.exenC C程序的開發(fā)在特定的集成開發(fā)環(huán)境下進(jìn)行程序的開發(fā)在特定的集成開發(fā)環(huán)境下進(jìn)行 n本教材中所有的程序在本教材中所有的程序在VC+6.0VC+6.0下通過(guò),并且課程配下通過(guò),并且課程配套實(shí)驗(yàn)也要求在套實(shí)驗(yàn)也要求在VC+6.0VC+6.0下下nVC+6.0VC+6.0集成環(huán)境中提供了編輯器、編譯器、鏈接器、集成環(huán)境中提供了編輯器、編譯器、鏈接器、調(diào)試器等多種工具,使得程序員從源程序的編輯到最調(diào)試器等多種工具,使得程序員從源程序的編輯到最后的運(yùn)行均可在集成環(huán)境中完成后的運(yùn)行均可在集成環(huán)境中完成n舉例:舉例:一個(gè)一個(gè)C C程序在程序在VC+6.0VC+6.0下開發(fā)的全過(guò)程下開發(fā)的全過(guò)程(請(qǐng)任課教師在(請(qǐng)任課教師在VC+6.0VC+6.0現(xiàn)場(chǎng)演示一個(gè)程序從編輯到運(yùn)現(xiàn)場(chǎng)演示一個(gè)程序從編輯到運(yùn)行的全過(guò)程)行的全過(guò)程)n重點(diǎn)掌握:馮重點(diǎn)掌握:馮 諾依曼體系結(jié)構(gòu)的計(jì)算機(jī)諾依曼體系結(jié)構(gòu)的計(jì)算機(jī)程序存儲(chǔ)思想的主要內(nèi)容程序存儲(chǔ)思想的主要內(nèi)容 五大部件:運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備五大部件:運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備 主要功能:高速運(yùn)

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論