c語(yǔ)言第一次講課.ppt_第1頁(yè)
c語(yǔ)言第一次講課.ppt_第2頁(yè)
c語(yǔ)言第一次講課.ppt_第3頁(yè)
c語(yǔ)言第一次講課.ppt_第4頁(yè)
c語(yǔ)言第一次講課.ppt_第5頁(yè)
已閱讀5頁(yè),還剩49頁(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、為什么要學(xué)習(xí)C語(yǔ)言,個(gè)人體會(huì),為什么要學(xué)習(xí)C語(yǔ)言,很多人對(duì)學(xué)習(xí)C語(yǔ)言感到無(wú)從下手,經(jīng)常問(wèn)我同一個(gè)問(wèn)題:究竟怎樣學(xué)習(xí)C語(yǔ)言?我是一個(gè)教師,已經(jīng)開(kāi)發(fā)了很多年的程序,和很多剛剛起步的人一樣,學(xué)習(xí)的第一個(gè)計(jì)算機(jī)語(yǔ)言就是C語(yǔ)言。,為什么要學(xué)習(xí)C語(yǔ)言,經(jīng)過(guò)這些年的開(kāi)發(fā),我深深的體會(huì)到C語(yǔ)言對(duì)于一個(gè)程序設(shè)計(jì)人員多么的重要,如果不懂C語(yǔ)言,你想寫(xiě)底層程序這幾乎聽(tīng)起來(lái)很可笑,不懂C語(yǔ)言,你想寫(xiě)出優(yōu)秀高效的程序這簡(jiǎn)直就是天方夜譚。為什么C語(yǔ)言如此重要呢?,一、C語(yǔ)言語(yǔ)法結(jié)構(gòu)很簡(jiǎn)潔精妙,寫(xiě)出的程序也很高效,很便于描述算法,大多數(shù)的程序員愿意使用C語(yǔ)言去描述算法本身,所以,如果你想在程序設(shè)計(jì)方面有所建樹(shù),就必須去學(xué)它

2、。,二、C語(yǔ)言能夠讓你深入系統(tǒng)底層,你知道的操作系統(tǒng),哪一個(gè)不是C語(yǔ)言寫(xiě)的?所有的windows,Unix,Linux,,沒(méi)有一個(gè)例外的,如果你不懂C語(yǔ)言,怎么可能深入到這些操作系統(tǒng)當(dāng)中去呢?更不要說(shuō)你去寫(xiě)它們的內(nèi)核程序了。,三、很多新型的語(yǔ)言都是衍生自C語(yǔ)言,C+,Java,C#,J#,哪個(gè)不是呢?掌握了C語(yǔ)言,可以說(shuō)你就掌握了很多門語(yǔ)言,經(jīng)過(guò)簡(jiǎn)單的學(xué)習(xí),你就可以用這些新型的語(yǔ)言去開(kāi)發(fā)了,這個(gè)再一次驗(yàn)證了C語(yǔ)言是程序設(shè)計(jì)的重要基礎(chǔ)。還有啊,多說(shuō)一點(diǎn):即使現(xiàn)在招聘程序員,考試都是考C語(yǔ)言,你想加入IT行業(yè),那么就一定要掌握好C語(yǔ)言。,怎樣學(xué)習(xí)C語(yǔ)言,程序員之路,怎樣學(xué)習(xí)C語(yǔ)言,學(xué)習(xí)C語(yǔ)言不是一

3、朝一夕的事情,但也不需要花費(fèi)十年時(shí)間才能精通。如何以最小的代價(jià)學(xué)習(xí)并精通C語(yǔ)言是本文的主題。請(qǐng)注意,即使是“最小的代價(jià)”,也絕不是什么捷徑,而是以最短的時(shí)間取得最多的收獲,同時(shí)也意味著你需要經(jīng)歷艱苦的過(guò)程。,一、要讀就讀好書(shū),否則不如不讀,所有初學(xué)者面臨的第一個(gè)問(wèn)題便是:如何選擇教材。好的開(kāi)始是成功的一半,選擇一本優(yōu)秀的教材是事半功倍的關(guān)鍵因素。一般情況,學(xué)校通常會(huì)幫你指定一本很基本的C語(yǔ)言課本;而幸運(yùn)的是,你還可以再次選擇。,一、要讀就讀好書(shū),否則不如不讀,大名鼎鼎的譚浩強(qiáng)教授出了一本C語(yǔ)言程序設(shè)計(jì),據(jù)說(shuō)發(fā)行量有超過(guò)1000萬(wàn),據(jù)我所知,很多學(xué)校都會(huì)推薦這本書(shū)作為C語(yǔ)言課本。這本書(shū)不是寫(xiě)給計(jì)

4、算機(jī)專業(yè)的學(xué)生的,而是給那些需要考計(jì)算機(jī)等級(jí)考試的其它專業(yè)學(xué)生看的。,一、要讀就讀好書(shū),否則不如不讀,Kernighan和Ritchie的The C Programming Language(中譯名C程序設(shè)計(jì)語(yǔ)言)堪稱經(jīng)典中的經(jīng)典,不過(guò)舊版的很多內(nèi)容都已過(guò)時(shí),和現(xiàn)在的標(biāo)準(zhǔn)C語(yǔ)言相去甚遠(yuǎn),大家一定要看最新的版本,否則不如不看。,一、要讀就讀好書(shū),否則不如不讀,另外,即使是最經(jīng)典最權(quán)威的書(shū),也沒(méi)有辦法面面俱到,所以手邊常備一本C語(yǔ)言參考手冊(cè)是十分必要的。C語(yǔ)言參考手冊(cè)就是C Reference Manual,是C語(yǔ)言標(biāo)準(zhǔn)的詳細(xì)描述,包括絕大多數(shù)C標(biāo)準(zhǔn)庫(kù)函數(shù)的細(xì)節(jié),算得上是最好的標(biāo)準(zhǔn)C語(yǔ)言的工具書(shū)。

5、,一、要讀就讀好書(shū),否則不如不讀,還有一本C和指針,寫(xiě)得也是相當(dāng)?shù)夭诲e(cuò),英文名是Pointers on C,特別地強(qiáng)調(diào)指針的重要性,算是本書(shū)的一個(gè)特點(diǎn)吧。不過(guò)這本書(shū)并不十分適合初學(xué)者,如果你曾經(jīng)學(xué)過(guò)C語(yǔ)言,有那么一些C語(yǔ)言的基礎(chǔ)但又不是很扎實(shí),那么你可以嘗試一下這本書(shū)。我相信,只要你理解了指針,C語(yǔ)言便不再神秘。,一、要讀就讀好書(shū),否則不如不讀,你可以挑戰(zhàn)一下 Expert C Programming(中譯名C專家編程),書(shū)如其名,這本書(shū)頗具難度,一旦你仔細(xì)讀完并能透徹理解,你便可以放心大膽地在簡(jiǎn)歷上寫(xiě)“精通C語(yǔ)言”了。,一、要讀就讀好書(shū),否則不如不讀,切記一個(gè)原則,不要讀自己目前還看不懂的書(shū)

6、,那是浪費(fèi)生命。如果你看不懂,那你一定是缺失了某些必需基礎(chǔ)知識(shí)。此時(shí),你要仔細(xì)分析自己需要補(bǔ)充哪些內(nèi)容,然后再去書(shū)店尋找講述的這些內(nèi)容的書(shū)籍。把基礎(chǔ)知識(shí)補(bǔ)充完畢再回頭來(lái)學(xué)習(xí),才會(huì)真正的事半功倍。,二、Unix/Linux還是Windows,這是個(gè)很大的問(wèn)題,不同的編程環(huán)境會(huì)造就出不同思維的程序員。Windows的程序員大多依賴集成開(kāi)發(fā)環(huán)境,比如Visual Studio,而Unix程序員更加鐘愛(ài)Makefile與控制臺(tái)。顯而易見(jiàn),集成開(kāi)發(fā)環(huán)境更容易上手,在Windows上學(xué)習(xí)C語(yǔ)言,只需要會(huì)按幾個(gè)基本的Visutal C+工具欄按鈕就可以開(kāi)始寫(xiě)Hello, World!了。,二、Unix/Li

7、nux還是Windows,這是個(gè)很大的問(wèn)題,而在Unix下,你需要一些控制臺(tái)操作的基本知識(shí)。有人也許認(rèn)為Unix的環(huán)境更簡(jiǎn)潔,但習(xí)慣的力量是很大的,大家都很熟悉Windows的基本操作,而為了學(xué)習(xí)C語(yǔ)言去專門裝一個(gè)Unix系統(tǒng),似乎有點(diǎn)不劃算。,二、Unix/Linux還是Windows,這是個(gè)很大的問(wèn)題,對(duì)于一個(gè)只懂得Windows基本操作、連DOS是什么都不知道的新手而言,盡快做一些有趣而有意義的事情才是最重要的。用C語(yǔ)言寫(xiě)一個(gè)小程序遠(yuǎn)比學(xué)習(xí)ls、cat等命令有趣,況且我們要專注于C語(yǔ)言本身,就不得不暫時(shí)忽略一些東西,比如編譯鏈接的過(guò)程、Makefile的寫(xiě)法等等等等。,二、Unix/Li

8、nux還是Windows,這是個(gè)很大的問(wèn)題,所以我建議初學(xué)者應(yīng)該以Visual C+ 6.0(不是VisualC+ .NET)或者Dev C+作為主要的學(xué)習(xí)環(huán)境,而且千萬(wàn)不要在IDE的使用技巧上過(guò)多糾纏,因?yàn)榻窈竽阋欢ㄒD(zhuǎn)向Unix環(huán)境的。Visual C+ 6.0使用很方便,調(diào)試也很直觀,,二、Unix/Linux還是Windows,這是個(gè)很大的問(wèn)題,等你學(xué)完一本C語(yǔ)言的教材,你一定要轉(zhuǎn)向Unix平臺(tái)繼續(xù)學(xué)習(xí),幾乎所有的C語(yǔ)言高級(jí)教程都是基于Unix平臺(tái)的(比如C專家編程)。轉(zhuǎn)變的過(guò)程是痛苦的,你需要面對(duì)的是各種紛繁復(fù)雜的命令,完全不同于Windows平臺(tái)的思考方式,但是這種痛苦是值得的。,

9、二、Unix/Linux還是Windows,這是個(gè)很大的問(wèn)題,Unix與C是共生的,Unix的思考方式和習(xí)慣更加符合C語(yǔ)言的思考方式和習(xí)慣。在Unix下,你可以找到無(wú)數(shù)優(yōu)秀的源代碼供你盡情閱讀,你可以方便地查看某個(gè)庫(kù)函數(shù)的聯(lián)機(jī)手冊(cè),還可以看到最優(yōu)秀的代碼風(fēng)格。,二、Unix/Linux還是Windows,這是個(gè)很大的問(wèn)題,歸結(jié)起來(lái)就是一句話:初學(xué)C語(yǔ)言,建議使用Windows系統(tǒng)和集成開(kāi)發(fā)環(huán)境,在準(zhǔn)備向“高手”方向努力時(shí),請(qǐng)先轉(zhuǎn)向Unix平臺(tái)。,三、萬(wàn)事俱備,你就是東風(fēng),書(shū)已選定,環(huán)境配置完成,正所謂萬(wàn)事俱備,只欠你自己的努力了。請(qǐng)從書(shū)的前言開(kāi)始,仔細(xì)地閱讀手頭的教材,很多人看書(shū)喜歡直接從第一

10、章開(kāi)始看,這是錯(cuò)誤的做法。,三、萬(wàn)事俱備,你就是東風(fēng),前言是作者對(duì)整本書(shū)的大體介紹,作者一般會(huì)告訴你需要什么基礎(chǔ)才能夠順利閱讀本書(shū),這可以幫助你檢驗(yàn)自己的基礎(chǔ)知識(shí)是否已經(jīng)具備??赐昵把?,還要瀏覽一下目錄,了解一下書(shū)的整體結(jié)構(gòu),順便給自己安排一下學(xué)習(xí)計(jì)劃。,三、萬(wàn)事俱備,你就是東風(fēng),學(xué)習(xí)C語(yǔ)言,必需注意每一個(gè)細(xì)節(jié),書(shū)上的例子代碼一定要自己親自敲一遍,編譯執(zhí)行輸出都跟書(shū)上說(shuō)的一致才能算是學(xué)完了一個(gè)例子,如果不一致,就要仔細(xì)找原因。出了書(shū)本上有的例子,自己還要“創(chuàng)造”一些例子 。,三、萬(wàn)事俱備,你就是東風(fēng),例子之后就是習(xí)題了,我建議初學(xué)者把所有的習(xí)題都獨(dú)立做一遍,然后對(duì)照答案的代碼,看看自己的代碼有

11、那些不足,再試著修改自己的代碼。很多人不重視習(xí)題,這是極大的錯(cuò)誤,因?yàn)樽髡咄ǔ?huì)在習(xí)題中說(shuō)明一些重要的道理,而不是單純地檢驗(yàn)前面的知識(shí)。,三、萬(wàn)事俱備,你就是東風(fēng),也許你認(rèn)為這樣學(xué)習(xí)太慢,其實(shí)不然。學(xué)得細(xì)致就不用走回頭路,等你學(xué)到后面才發(fā)現(xiàn)自己前面沒(méi)搞清楚,那才是真的得不償失。一般說(shuō)來(lái),整本書(shū)讀完,你應(yīng)該完成數(shù)千行乃至上萬(wàn)行的代碼,無(wú)論是原封不動(dòng)照抄書(shū)上的,還是自己心血來(lái)潮寫(xiě)就的,都是今后繼續(xù)學(xué)習(xí)的一筆財(cái)富。,三、萬(wàn)事俱備,你就是東風(fēng),仔細(xì)讀書(shū)、認(rèn)真抄寫(xiě)源代碼、獨(dú)立完成習(xí)題外加更進(jìn)一步的實(shí)驗(yàn),最后將所有的代碼留下,成為自己的經(jīng)驗(yàn)和財(cái)富,絕對(duì)的辛苦,也絕對(duì)的事半功倍。,三、萬(wàn)事俱備,你就是東風(fēng),

12、寫(xiě)到最后,還有非常非常重要的一點(diǎn)沒(méi)有提及代碼風(fēng)格,從最開(kāi)始學(xué)習(xí)就必須強(qiáng)迫自己模仿最優(yōu)秀的代碼風(fēng)格。,嵌入式開(kāi)發(fā),C語(yǔ)言的貢獻(xiàn),嵌入式操作系統(tǒng),是指以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。舉例來(lái)說(shuō),大到油田的集散控制系統(tǒng)和工廠流水線,小到家用VCD機(jī)或手機(jī),甚至組成普通PC終端設(shè)備的鍵盤(pán)、鼠標(biāo)、硬盤(pán)、Modem等均是由嵌入式處理器控制的。,應(yīng)用領(lǐng)域,嵌入式系統(tǒng)無(wú)疑是當(dāng)前最熱門最有發(fā)展前途的IT應(yīng)用領(lǐng)域之一。嵌入式系統(tǒng)用在一些特定專用設(shè)備上,通常這些設(shè)備的硬件資源(如處理器、存儲(chǔ)器等)非常有限,并且對(duì)成本很敏感,有時(shí)對(duì)

13、實(shí)時(shí)響應(yīng)要求很高等。,應(yīng)用領(lǐng)域,特別是隨著消費(fèi)家電的智能化,嵌入式更顯重要。像我們平常常見(jiàn)到的手機(jī)、PDA、電子字典、可視電話、VCD/DVD/MP3 Player、數(shù)字相機(jī)(DC)、數(shù)字?jǐn)z像機(jī)(DV)、U-Disk、機(jī)頂盒(Set Top Box)、高清電視(HDTV)、游戲機(jī)、智能玩具、交換機(jī)、路由器、數(shù)控設(shè)備或儀表、汽車電子、家電控制系統(tǒng)、醫(yī)療儀器、航天航空設(shè)備等等都是典型的嵌入式系統(tǒng)。,C語(yǔ)言程序設(shè)計(jì),河南大學(xué)計(jì)算中心,馮東棟 河南大學(xué)計(jì)算中心 ,同學(xué)們好!,祝大家: 學(xué)習(xí)進(jìn)步, 生活愉快!,C語(yǔ)言程序設(shè)計(jì),課程目標(biāo): 熟記C語(yǔ)言的基本概念 熟記Visual studio 6.0的上機(jī)

14、操作要求 會(huì)讀、會(huì)編、會(huì)調(diào)試C程序 課程要求:多上機(jī)練習(xí),C語(yǔ)言與自然語(yǔ)言的比較,C語(yǔ)言程序設(shè)計(jì),學(xué)習(xí)要點(diǎn) 熟記C語(yǔ)言的語(yǔ)法、句法 學(xué)會(huì)算法分析和算法設(shè)計(jì) 本課重點(diǎn) 第三章第八章 本課難點(diǎn) 第八章、第十章,C語(yǔ)言程序設(shè)計(jì),書(shū)面考試題型 選擇題(40%) 填空題(10%) 讀程題(25%) 編程題(25%),CH1 C語(yǔ)言概述,內(nèi)容提要: C語(yǔ)言的起源與發(fā)展 C語(yǔ)言的特點(diǎn) 簡(jiǎn)單的C程序設(shè)計(jì) C程序的上機(jī)步驟,CH1 C語(yǔ)言概述,1.1 C語(yǔ)言的起源與發(fā)展(P1自學(xué)) 1.2 C語(yǔ)言的特點(diǎn)(P2) 1、C語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活。 (ANSI C一共只有32個(gè)關(guān)鍵字,9種控制語(yǔ)句),1.2

15、C語(yǔ)言的特點(diǎn),1.2 C語(yǔ)言的特點(diǎn),2、運(yùn)算符豐富。共有34種 3、數(shù)據(jù)結(jié)構(gòu)類型豐富。 4、具有結(jié)構(gòu)化的控制語(yǔ)句。 5、生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。 6、可移植性好 7、兼有低級(jí)語(yǔ)言與高級(jí)語(yǔ)言的特點(diǎn) 8、語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。,1.3 簡(jiǎn)單的C程序介紹,例1.1 最簡(jiǎn)單的程序 # include /*包含頭文件*/ void main( ) /*主函數(shù)*/ printf(“This is a C program.n”); /*輸出一句話*/ ,1.3 簡(jiǎn)單的C程序介紹,例1.2:求兩數(shù)之和 # include /*包含頭文件*/ void main( ) /*主函數(shù)*/

16、int a,b,sum; /*定義變量*/ a=123,b=456; /*給變量賦值*/ sum=a+b; /*求a與b的和*/ printf(“sum is %dn”,sum); /*輸出結(jié)果*/ ,1.3 簡(jiǎn)單的C程序介紹,# include /*包含頭文件*/ void main( ) /*主函數(shù)*/ int a,b,sum; /*定義變量*/ scanf(“%d%d”, /*輸出結(jié)果*/,1.3 簡(jiǎn)單的C程序介紹,例1.3:求兩數(shù)中的大數(shù) void main() /*主函數(shù)*/ int x,y,z; /*變量說(shuō)明*/ int max(int a,int b); /*函數(shù)說(shuō)明*/ pri

17、ntf(input two numbers:n); scanf(%d%d, /*輸出*/ ,1.3 簡(jiǎn)單的C程序介紹,int max(int a,int b) /*定義max函數(shù)*/ if(ab)return a; else return b; /*把結(jié)果返回主調(diào)函數(shù)*/ ,C程序的結(jié)構(gòu)特點(diǎn)和書(shū)寫(xiě)格式,void main() /*主函數(shù)*/ int x,y,z; /*變量說(shuō)明*/ int max(int a,int b); /*函數(shù)說(shuō)明*/ printf(input two numbers:n); scanf(%d%d, /*把結(jié)果返回主調(diào)函數(shù)*/ ,C程序的結(jié)構(gòu)特點(diǎn)和書(shū)寫(xiě)格式,1.函數(shù)是組成C程

溫馨提示

  • 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)論