01C程序設(shè)計(jì)導(dǎo)論_第1頁(yè)
01C程序設(shè)計(jì)導(dǎo)論_第2頁(yè)
01C程序設(shè)計(jì)導(dǎo)論_第3頁(yè)
01C程序設(shè)計(jì)導(dǎo)論_第4頁(yè)
01C程序設(shè)計(jì)導(dǎo)論_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第一講 概述教材:C程序設(shè)計(jì)導(dǎo)論1教材與課件教材:C程序設(shè)計(jì)導(dǎo)論,譚成予、梁意文,武漢大學(xué)出版社,2005年。參考書目:The C Programming Language,B.W.Kernighan and D.M.Ritchie,Prentice-Hall,Inc.,1978。課件:武漢大學(xué)計(jì)算機(jī)學(xué)院“高級(jí)語(yǔ)言程序設(shè)計(jì)”課程組制作。2第一個(gè)問題:什么是程序設(shè)計(jì)?程序(program)就是指示計(jì)算機(jī)如何運(yùn)作的指令集合。程序設(shè)計(jì)(programming)則是把多條指令有計(jì)劃地串在一起使計(jì)算機(jī)完成我們期望的工作,換句話說,程序設(shè)計(jì)是將人的期望“轉(zhuǎn)化”成一連串的計(jì)算機(jī)指令,如果轉(zhuǎn)化成功,計(jì)算機(jī)就會(huì)

2、按照我們的期望來運(yùn)作,感覺就好像成功地對(duì)計(jì)算機(jī)施展了魔法。學(xué)習(xí)程序設(shè)計(jì)好處深入了解軟件的運(yùn)作方式、設(shè)計(jì)出功能更強(qiáng)大的應(yīng)用軟件、加深對(duì)計(jì)算機(jī)的認(rèn)識(shí)。3第二個(gè)問題:如何學(xué)好程序設(shè)計(jì)語(yǔ)法學(xué)習(xí)階段循 序 漸 進(jìn)練習(xí)寫較大的程序?qū)W習(xí)并提高程序設(shè)計(jì)技巧軟件工程軟件工程:運(yùn)用現(xiàn)代科學(xué)技術(shù)知識(shí)來設(shè)計(jì)并構(gòu)造計(jì)算機(jī)程序,以及為開發(fā)、運(yùn)行和維護(hù)這些程序所必須的相關(guān)文檔資料。4現(xiàn)在有哪些程序設(shè)計(jì)語(yǔ)言?第一代語(yǔ)言機(jī)器語(yǔ)言 計(jì)算機(jī)發(fā)明之初,人們只能用計(jì)算機(jī)的語(yǔ)言去命令計(jì)算機(jī)工作,就是寫出一串串由“0”和“1”這樣的二進(jìn)制數(shù)組成的指令序列交由計(jì)算機(jī)執(zhí)行,這種語(yǔ)言就是機(jī)器語(yǔ)言。使用機(jī)器語(yǔ)言是十分痛苦的,尤其是在程序有錯(cuò)需要修

3、改時(shí)。而且,由于每臺(tái)計(jì)算機(jī)的指令系統(tǒng)往往各不相同,所以移植性很差。但由于使用的是針對(duì)特定型號(hào)計(jì)算機(jī)的語(yǔ)言,故而運(yùn)算效率是所有語(yǔ)言中最高的。第二代語(yǔ)言匯編語(yǔ)言 為了減輕使用機(jī)器語(yǔ)言編程的痛苦,人們進(jìn)行了有益的改進(jìn):用一些簡(jiǎn)潔的英文字母、符號(hào)串來替代一個(gè)特定的指令,比如,用“ADD”代表加法,“MOV”代表數(shù)據(jù)傳遞等等,這種程序設(shè)計(jì)語(yǔ)言就稱為匯編語(yǔ)言。然而計(jì)算機(jī)是不認(rèn)識(shí)這些符號(hào)的,這就需要一個(gè)專門的程序,負(fù)責(zé)將這些符號(hào)翻譯成二進(jìn)制數(shù)的機(jī)器語(yǔ)言,這種翻譯程序被稱為匯編程序。5現(xiàn)在有哪些程序設(shè)計(jì)語(yǔ)言?第三代語(yǔ)言高級(jí)語(yǔ)言 高級(jí)語(yǔ)言接近于數(shù)學(xué)語(yǔ)言或人的自然語(yǔ)言,同時(shí)又不依賴于計(jì)算機(jī)硬件,編出的程序能在所有

4、機(jī)器上通用。FORTRAN(Formula Translation,1956年)LISP(List Processing Language,1958年)COBOL(Common Business Oriented Language,1959年)BASIC(Beginners all Purpose Symbolic Instruction Code,1964年)PASCAL(以法國(guó)數(shù)學(xué)家命名,1970年)PROLOG(Programming in Logic,1972年)C(1972年)第四代語(yǔ)言 非過程化,面向應(yīng)用 ,面向?qū)ο笳Z(yǔ)言及可視化編程環(huán)境,如Visual系列(VC+、VB等)、Pow

5、er Builder、Delphi、Java等。6本課程定位 大家要學(xué)習(xí)的與程序設(shè)計(jì)有關(guān)的課程有:高級(jí)語(yǔ)言程序設(shè)計(jì)、面向?qū)ο蟪绦蛟O(shè)計(jì)等。本課程以高級(jí)語(yǔ)言中的C語(yǔ)言為主介紹如何使用第三代語(yǔ)言高級(jí)語(yǔ)言進(jìn)行程序設(shè)計(jì),要求同學(xué)們不僅學(xué)習(xí)好具體的語(yǔ)法規(guī)范,更重要的是掌握結(jié)構(gòu)化程序設(shè)計(jì)的方法。本課程是同學(xué)們接觸到的第一門程序設(shè)計(jì)的課程,不僅是程序設(shè)計(jì)的入門課程,而且是學(xué)習(xí)后續(xù)程序設(shè)計(jì)(如面向?qū)ο蟪绦蛟O(shè)計(jì))等其他計(jì)算機(jī)專業(yè)課程的基礎(chǔ)和前導(dǎo)課程。7本講重點(diǎn)了解C語(yǔ)言的歷史、背景熟悉簡(jiǎn)單的C程序的構(gòu)成Windows和UNIX環(huán)境下編輯、編譯和運(yùn)行C程序的方法81.1 語(yǔ)言的發(fā)展歷史和特點(diǎn)語(yǔ)言的出現(xiàn)的歷史背景(不

6、宜編寫系統(tǒng)程序,1960年)ALGOLBCPL(對(duì)CPL的簡(jiǎn)化,M .Richard,劍橋大學(xué),1967年)B(編寫了UNIX操作系統(tǒng),K.Thompson,貝爾實(shí)驗(yàn)室1970年)CPL(規(guī)模較大,難以實(shí)現(xiàn),劍橋大學(xué)和倫敦大學(xué),1963年)C(描述和實(shí)現(xiàn)UNIX操作系統(tǒng),D.M.Ritchie,貝爾實(shí)驗(yàn)室,1972年)9經(jīng)典 The C Programming Language 1978年,B.W.Kernighan、D.M.Ritchie合著 1988年進(jìn)行修訂使之符合ANSI C標(biāo)準(zhǔn)。ANSI C 1983年,由ANSI(American National Standards Instit

7、ute)制訂C語(yǔ)言標(biāo)準(zhǔn)。標(biāo)準(zhǔn)C 1990年,ISO(International Standard Organization)通過C程序設(shè)計(jì)語(yǔ)言的國(guó)際標(biāo)準(zhǔn),以ANSI C為基礎(chǔ)制訂。10C語(yǔ)言的特點(diǎn)1.語(yǔ)言簡(jiǎn)潔、緊湊,使用方便:32個(gè)關(guān)鍵字,9種控制語(yǔ)句。 2.運(yùn)算符豐富:共有34個(gè)運(yùn)算符。3.數(shù)據(jù)結(jié)構(gòu)豐富:整型,實(shí)型,字符,數(shù)組,指針,結(jié)構(gòu)體等。4.具有結(jié)構(gòu)化的控制語(yǔ)句:代碼及數(shù)據(jù)的分割,函數(shù)的調(diào)用,控制程序流向的循環(huán)與條件語(yǔ)句。5.語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。6.允許直接訪問物理地址,能進(jìn)行位操作,可以直接操作硬件。7.生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高:一般只比匯編程序生成的目標(biāo)代

8、碼效率低1020%。8.程序可移植性好:適合于多種操作系統(tǒng),多種機(jī)型。111.2 C程序組成學(xué)好一種計(jì)算機(jī)語(yǔ)言的最好方法是用它編寫程序!例1. 1一個(gè)經(jīng)典的例子。#include void main(void)printf(“Hello!World!n”);將上述程序輸入計(jì)算機(jī),進(jìn)行編譯、連接、運(yùn)行后在屏幕上輸出:Hello!World!函數(shù)首部,函數(shù)名稱main( ),即主函數(shù)圓括號(hào)內(nèi)定義函數(shù)參數(shù),void表示沒有參數(shù) 函數(shù)類型(返回結(jié)果),void表示沒有返回值 121.2 C程序組成例1.2 計(jì)算兩個(gè)整數(shù)的和 #include int main( ) int a,b,sum;a=45;b

9、=70;sum=a+b;printf(“sum=%dn”,sum);return(0); 該程序運(yùn)行結(jié)果為 sum=115文件包含行,表示程序中用到了stdio.h文件中定義的常量或宏函數(shù)體,包括數(shù)據(jù)說明和執(zhí)行語(yǔ)句兩個(gè)部分“”表示函數(shù)體結(jié)束“”表示函數(shù)體開始13例1.3 輸出兩個(gè)整數(shù)中大的數(shù)據(jù)。#include void main(void) int max(int,int); int a,b,c; scanf(“%d,%d”,&a,&b); c=max(a,b); printf(“max=%d”,c); int max(int x, int y) int z; if(xy) z=x; els

10、e z=y; return(z); 運(yùn)行結(jié)果:21,45 max=45函數(shù)原型。由于函數(shù)max在主函數(shù)之后定義,所以在主函數(shù)前要給出max函數(shù)的使用說明即函數(shù)原型。主函數(shù)沒有返回值,所以類型是void調(diào)用函數(shù)max,計(jì)算變量a和b的最大值,并將結(jié)果賦給變量c函數(shù)max首行,其中定義int類型的形式參數(shù)x和y 。該函數(shù)返回結(jié)果為int類型將變量z的值返回給main函數(shù)141.2 C程序組成例1.4 求數(shù)組元素的和。#include void main(void)int i,a5=4,5,6,7,8,sum=0;for(i=0;iTCTurbo C開始運(yùn)行后,出現(xiàn)下圖所示的主菜單窗口2021Vis

11、ual C+ 6.0集成環(huán)境1. 啟動(dòng)Visual C+ 6.0環(huán)境2. 編輯源程序文件3. 編譯和連接4. 執(zhí)行 利用Visual C+ 6.0集成環(huán)境開發(fā)C程序的過程如下:22Visual C+ 6.0集成環(huán)境 1.啟動(dòng)Visual C+ 6.0環(huán)境 方法:?jiǎn)螕?“開始”-“程序”-“Microsoft Visual studio 6.0”-“Microsoft Visual C+ 6.0”命令,啟動(dòng)Visual C+,VC6主窗口如下:菜單欄項(xiàng)目工作區(qū)標(biāo)題欄輸出區(qū)工具欄狀態(tài)欄文件編輯區(qū)返 回23Visual C+ 6.0集成環(huán)境2. 編輯源程序文件(1)建立新工程項(xiàng)目單擊“文件”-“新建

12、”,彈出“新建”對(duì)話框。單擊“工程”選項(xiàng)卡;單擊“Win32 Console Application”選項(xiàng);“工程”對(duì)話框中輸入項(xiàng)目名,如“gc1”;“位置”框輸入或選擇新項(xiàng)目所在位置,單擊“確定”按鈕。 彈出“Win32 Console Application Step 1of 1”對(duì)話框。單擊“An empty project”按鈕和“完成”按鈕。系統(tǒng)顯示“新建工程信息”對(duì)話框。單擊“確定”按鈕。 單擊“工程”單擊“Win32 Console Application”輸入項(xiàng)目名選擇新項(xiàng)目位置單擊“確定”單擊該選項(xiàng)單擊“完成”單擊“確定”24Visual C+ 6.0集成環(huán)境2. 編輯源程序

13、文件(2)建立新項(xiàng)目中的文件單擊“文件”-“新建”,彈出“新建”對(duì)話框。 選擇“文件”選項(xiàng)卡。單擊“C+ Source File”選項(xiàng),在“文件”對(duì)話框中輸入文件名,單擊“確定”按鈕。系統(tǒng)自動(dòng)返回VC6主窗口。顯示文件編輯區(qū)窗口,在文件編輯區(qū)窗口輸入源程序文件。單擊“文件”輸入文件名單擊“C+ Source file”單擊“確定”選擇“添加工程”輸入源程序25Visual C+ 6.0集成環(huán)境3. 編譯和連接 方法一:選擇主窗口菜單欄中“編譯”菜單項(xiàng);系統(tǒng)彈出下拉菜單,選擇“組建”菜單命令。 方法二:?jiǎn)螕糁鞔翱诰幾g工具欄上的 “Build”按鈕進(jìn)行編譯和連接。單擊“編譯”(1)系統(tǒng)對(duì)程序文件進(jìn)行編譯和連接,生成以項(xiàng)目名稱命名的可執(zhí)行目標(biāo)代碼文件.exe。(2)編譯連接過程中,系統(tǒng)如發(fā)現(xiàn)程序有語(yǔ)法錯(cuò)誤,則在輸出區(qū)窗口中顯示錯(cuò)誤信息,給出錯(cuò)誤的性質(zhì)、出現(xiàn)位置和錯(cuò)誤的原因等。如果雙擊某條錯(cuò)誤,編輯區(qū)窗口右側(cè)出現(xiàn)一個(gè)箭頭,指示再現(xiàn)錯(cuò)誤的程序行。用戶據(jù)此對(duì)源程序進(jìn)行相應(yīng)的修改,并重新編譯和連接,直到通過。 單擊“Build”26Visual C+ 6.0集成環(huán)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論