C語言全套學(xué)習(xí)_第1頁
C語言全套學(xué)習(xí)_第2頁
C語言全套學(xué)習(xí)_第3頁
C語言全套學(xué)習(xí)_第4頁
C語言全套學(xué)習(xí)_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1主講:景雪琴2教材、參考書與課時(shí)安排 教材丁海軍等編著,程序設(shè)計(jì)基礎(chǔ)(C語言),北京航空航天大學(xué)出版社 參考書譚浩強(qiáng),C語言程序設(shè)計(jì)教程,高等教育出版社吳文虎,計(jì)算機(jī)語言與程序設(shè)計(jì),清華大學(xué)出版社3課程要求 課前請(qǐng)做好預(yù)習(xí)課前請(qǐng)做好預(yù)習(xí) 保持課堂安靜,頭腦清醒,思維活躍保持課堂安靜,頭腦清醒,思維活躍 認(rèn)真、獨(dú)立、按時(shí)完成并提交作業(yè)認(rèn)真、獨(dú)立、按時(shí)完成并提交作業(yè) 重視上機(jī)實(shí)踐,有效利用寶貴的上機(jī)時(shí)間重視上機(jī)實(shí)踐,有效利用寶貴的上機(jī)時(shí)間4學(xué)習(xí)方法 多上機(jī)實(shí)踐多上機(jī)實(shí)踐 程序是調(diào)試出來的調(diào)試工具的使用程序是調(diào)試出來的調(diào)試工具的使用 讀別人的程序讀別人的程序,掌握一些常用算法,積累基本功掌握一些常

2、用算法,積累基本功 不要相信自已的記憶,隨時(shí)帶上語言參考書不要相信自已的記憶,隨時(shí)帶上語言參考書 準(zhǔn)備一本簡明英語小詞典。以便于編程時(shí)讀懂每準(zhǔn)備一本簡明英語小詞典。以便于編程時(shí)讀懂每一個(gè)錯(cuò)誤信息一個(gè)錯(cuò)誤信息 盡量培養(yǎng)自己具有優(yōu)秀程序員的素質(zhì)盡量培養(yǎng)自己具有優(yōu)秀程序員的素質(zhì): 編寫的程序要層次分明編寫的程序要層次分明 縮進(jìn)縮進(jìn) 對(duì)齊對(duì)齊 有足夠的注釋有足夠的注釋 有合適的空行有合適的空行5本節(jié)課的重點(diǎn):1了解程序設(shè)計(jì)語言的發(fā)展史2了解簡單的程序理解算法的概念熟練用文字法描述一個(gè)數(shù)學(xué)問題的解題步驟6程序設(shè)計(jì)語言的發(fā)展機(jī)器語言匯編語言高級(jí)語言面向過程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組

3、成如:10000000 加 10010000 減用助記符號(hào)描述的指令系統(tǒng)如 ADD A, B面向機(jī)器的語言程序設(shè)計(jì)是數(shù)據(jù)被加工的過程客觀世界可以分類,對(duì)象是類的實(shí)例對(duì)象是數(shù)據(jù)和方法的封裝對(duì)象間通過發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計(jì)關(guān)鍵是定義類,并由類派生對(duì)象由于匯編語言依賴于硬件體系,且助記符量大難記,于是人們又發(fā)明了更加易用的所謂高級(jí)語言。在這種語言下,其語法和結(jié)構(gòu)更類似普通英文,它有更強(qiáng)的表達(dá)能力,可方便地表示數(shù)據(jù)的運(yùn)算和程序的控制結(jié)構(gòu),能更好的描述各種算法,而且容易學(xué)習(xí)掌握。但高級(jí)語言編譯生成的程序代碼一般比用匯編程序語言設(shè)計(jì)的程序代碼要長,執(zhí)行的速度也慢。所以匯編語言適合編寫一些對(duì)速度和代

4、碼長度要求高的程序和直接控制硬件的程序。7 第四代語言第四代語言: 第四代語言(FourthGeneration Language, 以下簡稱4GL)的出現(xiàn)是出于商業(yè)需要,由于商業(yè)應(yīng)用中需要處理大量的數(shù)據(jù),如何提高使用的速度?4GL這個(gè)詞最早是在80年代初期出現(xiàn)在軟件廠商的廣告和產(chǎn)品介紹中的。這一類語言由于具有“面向問題”(用戶只需告知系統(tǒng)做什么,而無需說明怎么做) 、“非過程化程度高”等特點(diǎn),可以成數(shù)量級(jí)地提高軟件生產(chǎn)率,縮短軟件開發(fā)周期,因此贏得了很多用戶。 目前4GL主要面向基于數(shù)據(jù)庫應(yīng)用的商務(wù)領(lǐng)域,不宜于科學(xué)計(jì)算、高速的實(shí)時(shí)系統(tǒng)和系統(tǒng)軟件開發(fā)。例如:SQL ,FOXPRO, Power

5、 Builder 程序設(shè)計(jì)語言的發(fā)展8表表 1.1. 一個(gè)語句的三種表示一個(gè)語句的三種表示編程語言編程語言 表示形式表示形式C語言a=b+1;匯編語言mov 0 x804a01c,%eaxadd $0 x1,%eaxmov %eax,0 x804a018機(jī)器語言a1 1c a0 04 0883 c0 01a3 18 a0 04 089高級(jí)語言的特點(diǎn)由于匯編語言依賴于硬件體系,移植性差,且助記符量大難記,于是人們又發(fā)明了更加易用的所謂高級(jí)語言。程序設(shè)計(jì)語言從機(jī)器語言到高級(jí)語言的抽象,帶來程序設(shè)計(jì)語言從機(jī)器語言到高級(jí)語言的抽象,帶來的主要好處是:的主要好處是:1.高級(jí)語言接近數(shù)學(xué)語言或人的自然語言

6、 ,易學(xué)、易掌握2.高級(jí)語言為程序員提供了結(jié)構(gòu)化程序設(shè)計(jì)的環(huán)境和工具,使得設(shè)計(jì)出來的程序可讀性好,可維護(hù)性強(qiáng),可靠性高; 3.高級(jí)語言遠(yuǎn)離機(jī)器語言,與具體的計(jì)算機(jī)硬件關(guān)系不大,因而所寫出來的程序可移植性好,重用率高; 10高級(jí)語言種類:從1 9 5 4年,第一個(gè)完全脫離機(jī)器硬件的高級(jí)語言F O RT R A N問世以來,共有幾百種高級(jí)語言出現(xiàn),有重要意義的有幾十種,影響較大、使用較普遍的有F O RT R A N、A L G O L、C O B O L、B A S I C、L I S P、S N O B O L、P L / 1、P a s c a l、C、P R O L O G、C + +、V

7、 C、V B、D e l p h i、J AVA 等。 高級(jí)語言的發(fā)展高級(jí)語言發(fā)展高級(jí)語言的發(fā)展也經(jīng)歷了從早期語言到結(jié)構(gòu)化程序設(shè)計(jì)語言,從面向過程語言到面向?qū)ο蟪绦蛘Z言的過程。相應(yīng)地,軟件的開發(fā)也由最初的個(gè)體手工作坊式的封閉式生產(chǎn),發(fā)展為產(chǎn)業(yè)化、流水線式的工業(yè)化生產(chǎn)。 111 9 6 9年,提出了結(jié)構(gòu)化程序設(shè)計(jì)方法,1 9 7 0年,第一個(gè)結(jié)構(gòu)化程序設(shè)計(jì)語言P a s c a l語言出現(xiàn),標(biāo)志著結(jié)構(gòu)化程序設(shè)計(jì)時(shí)期的開始。 高級(jí)語言的發(fā)展-結(jié)構(gòu)化程序設(shè)計(jì)方法結(jié)構(gòu)化程序設(shè)計(jì)方法主要包括:只采用三種基本的程序控制結(jié)構(gòu)來編制程序,從而使程序具有良好的結(jié)構(gòu);程序設(shè)計(jì)自頂而下;用結(jié)構(gòu)化程序設(shè)計(jì)流程圖表示算

8、法。 12程序設(shè)計(jì)的基本目標(biāo)是用算法對(duì)問題的原始數(shù)據(jù)進(jìn)行處理,從而獲得所期望的效果。要全面提高程序的質(zhì)量,提高編程效率,使程序具有良好的可讀性、可靠性、可維護(hù)性以及良好的結(jié)構(gòu),編制出好的程序來,應(yīng)當(dāng)是每位程序設(shè)計(jì)工作者追求的目標(biāo)。必須掌握正確的程序設(shè)計(jì)方法和技術(shù)。 程序設(shè)計(jì)工作者追求的目標(biāo)13 C語言的發(fā)展- 時(shí)間時(shí)間:1972-1973:1972-1973- 地點(diǎn)地點(diǎn): :美國貝爾實(shí)驗(yàn)室美國貝爾實(shí)驗(yàn)室- 目的目的:UNIX:UNIX操作系統(tǒng)操作系統(tǒng)- 設(shè)計(jì)人設(shè)計(jì)人: Ken.Thompson: Ken.Thompson和和Dennis.M.RitchieDennis.M.Ritchie C+

9、語言的發(fā)展- 產(chǎn)生背景產(chǎn)生背景: :克服克服C C語言的不足語言的不足- 時(shí)間時(shí)間:1980:1980- 地點(diǎn)地點(diǎn): :美國貝爾實(shí)驗(yàn)室美國貝爾實(shí)驗(yàn)室- 目的目的:UNIX:UNIX操作系統(tǒng)操作系統(tǒng)- 設(shè)計(jì)人設(shè)計(jì)人: : Bjarne StroustrupBjarne Stroustrup,“帶類的帶類的C”C”14 C語言程序設(shè)計(jì) 第一章第一章 C C語言概述語言概述C語言的用途:科學(xué)計(jì)算、編寫系統(tǒng)軟件、控制軟件、圖形、圖象處理軟件、數(shù)據(jù)庫軟件、游戲軟件等15語言簡潔、緊湊、靈活運(yùn)算符和數(shù)據(jù)類型豐富 程序設(shè)計(jì)結(jié)構(gòu)化、模塊化 生成目標(biāo)代碼質(zhì)量高 可移植性好中級(jí)語言 C語言程序設(shè)計(jì) 第一章第一章

10、C C語言概述語言概述NextC語言特點(diǎn)1632個(gè)關(guān)鍵字:(auto break case char constcontinue default do double elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolatile while C語言程序設(shè)計(jì) 第一章第一章 C C語言概述語言概述179種控制語句:if( )elseswitchfor( )while( )dowhile( )cont

11、inuebreakgotoreturn C語言程序設(shè)計(jì) 第一章第一章 C C語言概述語言概述1834種運(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)算符:其它 :( ) - 還有很多常用數(shù)學(xué)函數(shù)等 C語言程序設(shè)計(jì) 第一章第一章 C C語言概述語言概述使用運(yùn)算符構(gòu)成各種表達(dá)式:pow(x,3)+sin(78.96/6)+y%419C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型

12、void定義類型struct數(shù)值類型字符類型char枚舉類型enum整 型浮點(diǎn)型單精度型float雙精度型double短整型short長整型long整型int數(shù)組結(jié)構(gòu)體struct共用體union C語言程序設(shè)計(jì) 第一章第一章 C C語言概述語言概述201. C程序概念例1-1 第一個(gè)程序 Hello,World!/ example1.1 The first C Program#include main() printf(“Hello,World!n”);注釋編譯預(yù)處理函數(shù)語句輸出:Hello,World!第一章 C語言程序設(shè)計(jì)概念21/ 例1.1-2:求三個(gè)數(shù)的平方根的和#include#i

13、ncludedouble sqrtsum(int a,int b,int c);void main() int a,b,c; float sumn; printf(請(qǐng)輸入三個(gè)整數(shù):); scanf(%d%d%d,&a,&b,&c); sumn=sqrtsum(a,b,c); printf(三個(gè)數(shù)的平方根和=%fn,sumn);double sqrtsum(int x,int y,int z) double t; t=sqrt(x)+sqrt(y)+sqrt(z); return t;例1-2預(yù)處理命令函數(shù)原型說明22 格式特點(diǎn) 習(xí)慣用小寫字母,大小寫敏感 不使用行號(hào),無

14、程序行概念 可使用空行和空格 常用鋸齒形書寫格式main( ) . . . . . . .#includemain( ) int i , j , sum; sum=0; for(i=1; i10;i+) for(j=1;j10;j+) sum+=i*j ; coutsum;優(yōu)秀程序員的素質(zhì)之一: 使用TAB縮進(jìn) 對(duì)齊 有足夠的注釋 有合適的空行23 結(jié)構(gòu)特點(diǎn) 函數(shù)與主函數(shù) 程序由一個(gè)或多個(gè)函數(shù)組成 必須有且只能有一個(gè)主函數(shù)main() 程序執(zhí)行從main開始,在main中結(jié)束,其它函數(shù)通過嵌套調(diào)用得以執(zhí)行。 程序語句 C程序由語句組成 用“;”作為語句終止符 注釋 /* */為注釋,不能嵌套,

15、多行注釋 /單行注釋 不產(chǎn)生編譯代碼 編譯預(yù)處理命令24/ 例1.1-2:求三個(gè)數(shù)的平方根的和#include#includedouble sqrtsum(int a,int b,int c);void main() int a,b,c; float sumn; printf(請(qǐng)輸入三個(gè)整數(shù):); scanf(%d%d%d,&a,&b,&c); sumn=sqrtsum(a,b,c); printf(三個(gè)數(shù)的平方根和=%fn,sumn);double sqrtsum(int x,int y,int z) double t; t=sqrt(x)+sqrt(y)+sqrt(

16、z); return t;組成要素 組成要素 程序主要目的是處理數(shù)據(jù) 數(shù)據(jù)的輸入 數(shù)據(jù)處理 數(shù)據(jù)輸出 數(shù)據(jù)必須先定義后使用 對(duì) 數(shù)據(jù)的處理是通過流程控制語句進(jìn)行的251.2 算法與程序設(shè)計(jì)方法學(xué) 程序=算法+數(shù)據(jù)結(jié)構(gòu) 算法是解決某個(gè)問題的思想和方法,由若干個(gè)步驟組成。 程序是算法的具體實(shí)現(xiàn)。 數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)的組織方式 261.2.1 算法與程序例1-3:(求三個(gè)數(shù)的最大值)設(shè)計(jì)一個(gè)算法對(duì)任意給定的三個(gè)整數(shù)x,y,z,求出其最大值。定義三個(gè)變量x,y,z存放三個(gè)整數(shù),變量max存放最大值輸入變量x,y,z的值;比較x和y,如果xy,則max=x;否則max=y比較max與z,如果max0 x1= x2= 2-2-2:if d=0 x

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論