版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2課程安排課程安排總學(xué)時(shí):n56學(xué)時(shí)(理論32學(xué)時(shí) 實(shí)驗(yàn)24學(xué)時(shí))教材:nC語(yǔ)言程序設(shè)計(jì).葉斌等編,北京:科學(xué)出版社,2011nC語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題解答.葉斌等編,北京:科學(xué)出版社,20113 課前請(qǐng)做好預(yù)習(xí) 保持課堂安靜,頭腦清醒,思維活躍 重視上機(jī)實(shí)踐,有效利用寶貴的上機(jī)時(shí)間 課后鞏固所學(xué)內(nèi)容,多思考,多實(shí)踐課程要求課程要求4第第1章章 C語(yǔ)言及程序設(shè)計(jì)概述語(yǔ)言及程序設(shè)計(jì)概述【學(xué)習(xí)目標(biāo)【學(xué)習(xí)目標(biāo)】 了解了解C語(yǔ)言產(chǎn)生的歷史和工作原理,掌握語(yǔ)言產(chǎn)生的歷史和工作原理,掌握C語(yǔ)言作為一語(yǔ)言作為一 編程語(yǔ)言的基本編程思路,掌握算法及其表示方法,掌編程語(yǔ)言的基本編程思路,掌握算法及其表示方法
2、,掌 握握C語(yǔ)言的基本語(yǔ)法單位。語(yǔ)言的基本語(yǔ)法單位?!緦W(xué)習(xí)指南【學(xué)習(xí)指南】 通過(guò)明確程序設(shè)計(jì)語(yǔ)言在人機(jī)交互中縮小自然語(yǔ)言和通過(guò)明確程序設(shè)計(jì)語(yǔ)言在人機(jī)交互中縮小自然語(yǔ)言和 機(jī)器語(yǔ)言鴻溝的問(wèn)題,以學(xué)習(xí)一門自然語(yǔ)言(如英語(yǔ))機(jī)器語(yǔ)言鴻溝的問(wèn)題,以學(xué)習(xí)一門自然語(yǔ)言(如英語(yǔ)) 的方法直接進(jìn)入的方法直接進(jìn)入C語(yǔ)言的學(xué)習(xí)。語(yǔ)言的學(xué)習(xí)?!局亍局?難難 點(diǎn)點(diǎn)】 重點(diǎn):算法的概念,基本語(yǔ)法單位重點(diǎn):算法的概念,基本語(yǔ)法單位,C語(yǔ)言的基本結(jié)構(gòu)語(yǔ)言的基本結(jié)構(gòu) 難點(diǎn):難點(diǎn): 算法的表示方法算法的表示方法【教學(xué)安排【教學(xué)安排】 學(xué)時(shí):學(xué)時(shí):2學(xué)時(shí)學(xué)時(shí)51.1 程序與程序設(shè)計(jì)語(yǔ)言程序與程序設(shè)計(jì)語(yǔ)言 1.1.1 程序的概念程
3、序的概念 馮馮.諾依曼結(jié)構(gòu):諾依曼結(jié)構(gòu):計(jì)算機(jī)計(jì)算機(jī)運(yùn)算器運(yùn)算器控制器控制器存儲(chǔ)器存儲(chǔ)器主機(jī):主機(jī):I/O設(shè)備:鍵盤、顯示器等設(shè)備:鍵盤、顯示器等中央處理器中央處理器CPU程序是一組有序的指令(指令序列)。程序是一組有序的指令(指令序列)。 實(shí)際上是一個(gè)用計(jì)算機(jī)語(yǔ)言描述的解決某一問(wèn)題的步驟。實(shí)際上是一個(gè)用計(jì)算機(jī)語(yǔ)言描述的解決某一問(wèn)題的步驟。61.1.2 程序設(shè)計(jì)語(yǔ)言的發(fā)展程序設(shè)計(jì)語(yǔ)言的發(fā)展 人們常把編寫(xiě)程序的過(guò)程稱為程序設(shè)計(jì)。在進(jìn)行程人們常把編寫(xiě)程序的過(guò)程稱為程序設(shè)計(jì)。在進(jìn)行程序設(shè)計(jì)時(shí)離不開(kāi)程序設(shè)計(jì)語(yǔ)言。程序設(shè)計(jì)語(yǔ)言的種類很序設(shè)計(jì)時(shí)離不開(kāi)程序設(shè)計(jì)語(yǔ)言。程序設(shè)計(jì)語(yǔ)言的種類很多,從其發(fā)展歷史以及功
4、能情況來(lái)劃分可以大致劃分成多,從其發(fā)展歷史以及功能情況來(lái)劃分可以大致劃分成五個(gè)階段:五個(gè)階段:1、機(jī)器語(yǔ)言:、機(jī)器語(yǔ)言: 計(jì)算機(jī)可以直接識(shí)別和執(zhí)行的二進(jìn)制語(yǔ)言。計(jì)算機(jī)可以直接識(shí)別和執(zhí)行的二進(jìn)制語(yǔ)言。如:如: 加法指令加法指令: 1 0 0 0 0 0 0 0 減法指令減法指令: 1 0 0 1 0 0 0 0特點(diǎn):計(jì)算機(jī)可以直接識(shí)別和執(zhí)行,效率高,節(jié)省內(nèi)存;特點(diǎn):計(jì)算機(jī)可以直接識(shí)別和執(zhí)行,效率高,節(jié)省內(nèi)存;但難以閱讀和記憶。但難以閱讀和記憶。71.1 程序與程序設(shè)計(jì)語(yǔ)言程序與程序設(shè)計(jì)語(yǔ)言2、匯編語(yǔ)言:、匯編語(yǔ)言: 用用“助記符助記符”來(lái)表示機(jī)器指令。來(lái)表示機(jī)器指令。如:如: ADD A, B
5、ADD A, B SUB A, B SUB A, B 計(jì)算機(jī)不能直接識(shí)別和執(zhí)行用匯編語(yǔ)言編寫(xiě)的源程序,計(jì)算機(jī)不能直接識(shí)別和執(zhí)行用匯編語(yǔ)言編寫(xiě)的源程序,它必須經(jīng)過(guò)一個(gè)叫匯編程序的系統(tǒng)軟件翻譯成機(jī)器語(yǔ)言程序它必須經(jīng)過(guò)一個(gè)叫匯編程序的系統(tǒng)軟件翻譯成機(jī)器語(yǔ)言程序(即目標(biāo)程序)后才能執(zhí)行。(即目標(biāo)程序)后才能執(zhí)行。3、高級(jí)語(yǔ)言:、高級(jí)語(yǔ)言: 不依賴于機(jī)器,降低了編程的難度。不依賴于機(jī)器,降低了編程的難度。 如:如:C、PASCAL、FORTRAN等,用等,用+和和-來(lái)來(lái) 表示加減運(yùn)算。表示加減運(yùn)算。 計(jì)算機(jī)也不能直接執(zhí)行高級(jí)語(yǔ)言描述的源程序,必須先計(jì)算機(jī)也不能直接執(zhí)行高級(jí)語(yǔ)言描述的源程序,必須先經(jīng)過(guò)編譯
6、程序或解釋程序翻譯成目標(biāo)程序后,才能由計(jì)算機(jī)經(jīng)過(guò)編譯程序或解釋程序翻譯成目標(biāo)程序后,才能由計(jì)算機(jī)執(zhí)行。執(zhí)行。81.1 程序與程序設(shè)計(jì)語(yǔ)言程序與程序設(shè)計(jì)語(yǔ)言1、C語(yǔ)言的發(fā)展概況語(yǔ)言的發(fā)展概況 起源于起源于1968年發(fā)表的年發(fā)表的CPL語(yǔ)言語(yǔ)言 。 語(yǔ)言是美國(guó)電話電報(bào)公司(語(yǔ)言是美國(guó)電話電報(bào)公司(AT&T)貝爾實(shí)驗(yàn)室于)貝爾實(shí)驗(yàn)室于70年代年代初研制出來(lái)的。發(fā)明者是初研制出來(lái)的。發(fā)明者是Dennis . M . Ritchie。1978年,由年,由B . W. Kernighan和和D . M . Ritchie合著的合著的The C Programming Language一書(shū),稱之為一書(shū),稱之
7、為“K&R”標(biāo)準(zhǔn)。后來(lái)又被多次改進(jìn),并標(biāo)準(zhǔn)。后來(lái)又被多次改進(jìn),并出現(xiàn)了多種版本。出現(xiàn)了多種版本。1983年開(kāi)始,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(年開(kāi)始,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI),),根據(jù)語(yǔ)言問(wèn)世以來(lái)各種版本對(duì)語(yǔ)言的發(fā)展和擴(kuò)充,制定了根據(jù)語(yǔ)言問(wèn)世以來(lái)各種版本對(duì)語(yǔ)言的發(fā)展和擴(kuò)充,制定了ANSI C標(biāo)準(zhǔn),于標(biāo)準(zhǔn),于1989年頒布,稱為年頒布,稱為C89標(biāo)準(zhǔn)。標(biāo)準(zhǔn)。1994、1995年又年又兩次做了修訂,即兩次做了修訂,即C89的的95修正案。修正案。1999年產(chǎn)生了年產(chǎn)生了C99新標(biāo)準(zhǔn)。新標(biāo)準(zhǔn)。 目前在微型計(jì)算機(jī)上使用的有目前在微型計(jì)算機(jī)上使用的有Microsoft C,Quick C,Turbo C,B
8、orland C 等多種版本。等多種版本。1.1.3 C語(yǔ)言的發(fā)展及特點(diǎn)語(yǔ)言的發(fā)展及特點(diǎn)9C語(yǔ)言的創(chuàng)世紀(jì)語(yǔ)言的創(chuàng)世紀(jì)一切從一個(gè)叫一切從一個(gè)叫“Space Travel”的電子游戲開(kāi)的電子游戲開(kāi)始始為了讓他的游戲能在為了讓他的游戲能在PDP-7上運(yùn)行,上運(yùn)行,Ken Thompson用匯編語(yǔ)言給用匯編語(yǔ)言給PDP-7寫(xiě)了一個(gè)操作系寫(xiě)了一個(gè)操作系統(tǒng)統(tǒng)UNIX匯編太不好用了,匯編太不好用了,Thompson需要高級(jí)語(yǔ)言需要高級(jí)語(yǔ)言試驗(yàn)了一些高級(jí)語(yǔ)言,包括試驗(yàn)了一些高級(jí)語(yǔ)言,包括Fortran,都不理想,都不理想他在他在BCPL基礎(chǔ)上,自己設(shè)計(jì)了一個(gè)基礎(chǔ)上,自己設(shè)計(jì)了一個(gè)B語(yǔ)言語(yǔ)言UNIX開(kāi)始發(fā)展,開(kāi)
9、始發(fā)展,B也不夠用了也不夠用了Dennis Ritchie加入,把加入,把B改造成改造成C開(kāi)始用開(kāi)始用C重寫(xiě)重寫(xiě)UNIX1.1 程序與程序設(shè)計(jì)語(yǔ)言程序與程序設(shè)計(jì)語(yǔ)言10Ritchie和和Thompson在開(kāi)發(fā)在開(kāi)發(fā)UNIX11接受美國(guó)國(guó)家技術(shù)勛章接受美國(guó)國(guó)家技術(shù)勛章12C C語(yǔ)言的祖師爺語(yǔ)言的祖師爺Dennis M. RitchieDennis M. Ritchie1.1 程序與程序設(shè)計(jì)語(yǔ)言程序與程序設(shè)計(jì)語(yǔ)言13C程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言是一種高級(jí)語(yǔ)言n高級(jí)語(yǔ)言并不是“高級(jí)”,只是相對(duì)低級(jí)語(yǔ)言,在一個(gè)高的級(jí)別上進(jìn)行編程歷史悠久,戰(zhàn)勛卓著n誕生于上世紀(jì)70年代初,成熟于80年代(C89),修訂與
10、90年代(C99)n很多重量級(jí)軟件都是用C寫(xiě)的上天入地,無(wú)所不能n幾乎沒(méi)有不能用C寫(xiě)出來(lái)的軟件,沒(méi)有不支持C的系統(tǒng)很多流行語(yǔ)言、新生語(yǔ)言都借鑒了它的思想、語(yǔ)法n從C+,到Java,再到C#,還有php等1.1 程序與程序設(shè)計(jì)語(yǔ)言程序與程序設(shè)計(jì)語(yǔ)言141.1 程序與程序設(shè)計(jì)語(yǔ)言程序與程序設(shè)計(jì)語(yǔ)言1)語(yǔ)言簡(jiǎn)潔緊湊,使用方便靈活)語(yǔ)言簡(jiǎn)潔緊湊,使用方便靈活 2)運(yùn)算符豐富)運(yùn)算符豐富3)數(shù)據(jù)結(jié)構(gòu)豐富)數(shù)據(jù)結(jié)構(gòu)豐富 4)結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言)結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言5)允許直接訪問(wèn)物理地址,可直接操縱硬件)允許直接訪問(wèn)物理地址,可直接操縱硬件 6)生成的目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高)生成的目標(biāo)代碼質(zhì)量高
11、,程序執(zhí)行效率高 7)適用范圍大,可移植性好)適用范圍大,可移植性好2、C語(yǔ)言的特點(diǎn)語(yǔ)言的特點(diǎn)151.2 程序設(shè)計(jì)方法程序設(shè)計(jì)方法 1.2.1 程序設(shè)計(jì)基本過(guò)程程序設(shè)計(jì)基本過(guò)程 兩個(gè)階段:兩個(gè)階段:n問(wèn)題求解階段問(wèn)題求解階段 分析問(wèn)題,找出算法分析問(wèn)題,找出算法n實(shí)現(xiàn)階段實(shí)現(xiàn)階段 依據(jù)算法采用依據(jù)算法采用C C語(yǔ)言或其他編程語(yǔ)言編寫(xiě)程序語(yǔ)言或其他編程語(yǔ)言編寫(xiě)程序161.2 程序設(shè)計(jì)方法程序設(shè)計(jì)方法 1.2.2 結(jié)構(gòu)化程序設(shè)計(jì)方法結(jié)構(gòu)化程序設(shè)計(jì)方法 1. 1. 核心思想核心思想 結(jié)構(gòu)化程序設(shè)計(jì)的總體思想是采用模塊化結(jié)構(gòu),結(jié)構(gòu)化程序設(shè)計(jì)的總體思想是采用模塊化結(jié)構(gòu),自上而下,逐步求精。自上而下,逐步
12、求精。2. . 結(jié)構(gòu)化程序設(shè)計(jì)特征結(jié)構(gòu)化程序設(shè)計(jì)特征結(jié)構(gòu)化程序設(shè)計(jì)的特征主要有以下幾點(diǎn):結(jié)構(gòu)化程序設(shè)計(jì)的特征主要有以下幾點(diǎn):(1 1)以三種基本結(jié)構(gòu)(順序、分支、循環(huán),詳細(xì)內(nèi))以三種基本結(jié)構(gòu)(順序、分支、循環(huán),詳細(xì)內(nèi)容參考第三章)的組合來(lái)描述程序;容參考第三章)的組合來(lái)描述程序;(2 2)整個(gè)程序采用模塊化結(jié)構(gòu);)整個(gè)程序采用模塊化結(jié)構(gòu);171.2 程序設(shè)計(jì)方法程序設(shè)計(jì)方法(3 3)有限制地使用)有限制地使用gotogoto轉(zhuǎn)移語(yǔ)句,在非用不可的情轉(zhuǎn)移語(yǔ)句,在非用不可的情況下,也要十分謹(jǐn)慎,并且只限于在一個(gè)結(jié)構(gòu)內(nèi)部跳況下,也要十分謹(jǐn)慎,并且只限于在一個(gè)結(jié)構(gòu)內(nèi)部跳轉(zhuǎn),不允許從一個(gè)結(jié)構(gòu)跳到另一個(gè)結(jié)
13、構(gòu),這樣可縮小轉(zhuǎn),不允許從一個(gè)結(jié)構(gòu)跳到另一個(gè)結(jié)構(gòu),這樣可縮小程序的靜態(tài)結(jié)構(gòu)與動(dòng)態(tài)執(zhí)行過(guò)程之間的差異,使人們程序的靜態(tài)結(jié)構(gòu)與動(dòng)態(tài)執(zhí)行過(guò)程之間的差異,使人們能正確理解程序的功能;能正確理解程序的功能;(4 4)以控制結(jié)構(gòu)為單位,每個(gè)結(jié)構(gòu)只有一個(gè)入口,以控制結(jié)構(gòu)為單位,每個(gè)結(jié)構(gòu)只有一個(gè)入口,一個(gè)出口,各單位之間接口簡(jiǎn)單,邏輯清晰;一個(gè)出口,各單位之間接口簡(jiǎn)單,邏輯清晰;(5 5)采用結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言書(shū)寫(xiě)程序,并采用一采用結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言書(shū)寫(xiě)程序,并采用一定的書(shū)寫(xiě)格式使程序結(jié)構(gòu)清晰,易于閱讀;定的書(shū)寫(xiě)格式使程序結(jié)構(gòu)清晰,易于閱讀;(6 6)注意程序設(shè)計(jì)風(fēng)格。注意程序設(shè)計(jì)風(fēng)格。181.2 程序設(shè)計(jì)方
14、法程序設(shè)計(jì)方法面向?qū)ο蟪绦蛟O(shè)計(jì)方法(面向?qū)ο蟪绦蛟O(shè)計(jì)方法(Orient Object Programming,縮寫(xiě)為縮寫(xiě)為OOP)認(rèn)為客觀世界是由各種各樣的實(shí)體組成的,這)認(rèn)為客觀世界是由各種各樣的實(shí)體組成的,這些實(shí)體就是面向?qū)ο蠓椒ㄖ械膶?duì)象。對(duì)象之間的交互通過(guò)發(fā)些實(shí)體就是面向?qū)ο蠓椒ㄖ械膶?duì)象。對(duì)象之間的交互通過(guò)發(fā)送消息來(lái)實(shí)現(xiàn),從而完成系統(tǒng)的功能。送消息來(lái)實(shí)現(xiàn),從而完成系統(tǒng)的功能。 面向?qū)ο蟪绦蛟O(shè)計(jì)把數(shù)據(jù)看作程序開(kāi)發(fā)中的基本元素,并面向?qū)ο蟪绦蛟O(shè)計(jì)把數(shù)據(jù)看作程序開(kāi)發(fā)中的基本元素,并且不允許它們?cè)谙到y(tǒng)中自由流動(dòng)。它將數(shù)據(jù)和操作這些數(shù)據(jù)且不允許它們?cè)谙到y(tǒng)中自由流動(dòng)。它將數(shù)據(jù)和操作這些數(shù)據(jù)的函數(shù)緊密
15、的連結(jié)在一起,并保護(hù)數(shù)據(jù)不會(huì)被外界的函數(shù)意的函數(shù)緊密的連結(jié)在一起,并保護(hù)數(shù)據(jù)不會(huì)被外界的函數(shù)意外的改變。外的改變。1.2.3 面向?qū)ο蟪绦蛟O(shè)計(jì)方法面向?qū)ο蟪绦蛟O(shè)計(jì)方法 191.3 C語(yǔ)言程序的基本結(jié)構(gòu)語(yǔ)言程序的基本結(jié)構(gòu) n一個(gè)完整的語(yǔ)言程序,是由一個(gè)一個(gè)完整的語(yǔ)言程序,是由一個(gè)main()函數(shù)(又稱主函數(shù))函數(shù)(又稱主函數(shù))和若干個(gè)其它函數(shù)結(jié)合而成的,或僅由一個(gè)和若干個(gè)其它函數(shù)結(jié)合而成的,或僅由一個(gè)main()函數(shù)構(gòu)成函數(shù)構(gòu)成程序運(yùn)行時(shí),在屏幕上顯示一行英文:程序運(yùn)行時(shí),在屏幕上顯示一行英文:Hello World! 。說(shuō)明:說(shuō)明:(1)main是主函數(shù)的函數(shù)名,表示這是一個(gè)主函數(shù)。是主函數(shù)的
16、函數(shù)名,表示這是一個(gè)主函數(shù)。(2)函數(shù)調(diào)用語(yǔ)句,)函數(shù)調(diào)用語(yǔ)句,printf函數(shù)的功能是把要輸出的內(nèi)容送到顯示器去顯示。函數(shù)的功能是把要輸出的內(nèi)容送到顯示器去顯示。(3)printf函數(shù)是一個(gè)由系統(tǒng)定義的標(biāo)準(zhǔn)函數(shù),可在程序中直接調(diào)用。函數(shù)是一個(gè)由系統(tǒng)定義的標(biāo)準(zhǔn)函數(shù),可在程序中直接調(diào)用。(4) #include是編譯預(yù)處理命令,其作用是將某個(gè)已經(jīng)存在的文件包含到程序中。是編譯預(yù)處理命令,其作用是將某個(gè)已經(jīng)存在的文件包含到程序中。 /*01*/ #include/*02*/main()/*03*/ /*04*/printf(“Hello World!n”);/*05*/20#include /*
17、This is the main program */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(z);運(yùn)行結(jié)果:sum=34函數(shù)函數(shù)預(yù)處理命令預(yù)處理命令注釋注釋211.3 C語(yǔ)言程序的基本結(jié)構(gòu)語(yǔ)言程序的基本結(jié)構(gòu)1.3.1 C程序的結(jié)構(gòu)特點(diǎn)程序的結(jié)構(gòu)特點(diǎn) ()一個(gè)語(yǔ)言源程序可以由一個(gè)或多個(gè)源文件組成。()一個(gè)語(yǔ)言源程序可以由
18、一個(gè)或多個(gè)源文件組成。()每個(gè)源文件可由一個(gè)或多個(gè)函數(shù)組成,關(guān)于函數(shù)()每個(gè)源文件可由一個(gè)或多個(gè)函數(shù)組成,關(guān)于函數(shù)的內(nèi)容將在以后第四章介紹。的內(nèi)容將在以后第四章介紹。()函數(shù)是語(yǔ)言程序的基本單位。一個(gè)源程序不論()函數(shù)是語(yǔ)言程序的基本單位。一個(gè)源程序不論由多少個(gè)文件組成,都有一個(gè)且只能有一個(gè)由多少個(gè)文件組成,都有一個(gè)且只能有一個(gè)main函函數(shù),即主函數(shù)。數(shù),即主函數(shù)。main()函數(shù)的作用,相當(dāng)于其它高級(jí)函數(shù)的作用,相當(dāng)于其它高級(jí)語(yǔ)言中的主程序;其它函數(shù)的作用,相當(dāng)于子程序。語(yǔ)言中的主程序;其它函數(shù)的作用,相當(dāng)于子程序。()()C語(yǔ)言程序總是從語(yǔ)言程序總是從main()函數(shù)開(kāi)始執(zhí)行。一個(gè)函數(shù)開(kāi)
19、始執(zhí)行。一個(gè)語(yǔ)言程序,總是從語(yǔ)言程序,總是從main()函數(shù)開(kāi)始執(zhí)行,而不論其在函數(shù)開(kāi)始執(zhí)行,而不論其在程序中的位置。當(dāng)主函數(shù)執(zhí)行完畢時(shí),亦即程序執(zhí)行程序中的位置。當(dāng)主函數(shù)執(zhí)行完畢時(shí),亦即程序執(zhí)行完畢。完畢。221.3 C語(yǔ)言程序的基本結(jié)構(gòu)語(yǔ)言程序的基本結(jié)構(gòu)1.3.1 C程序的結(jié)構(gòu)特點(diǎn)程序的結(jié)構(gòu)特點(diǎn) ()源程序中可以有預(yù)處理命令()源程序中可以有預(yù)處理命令(include 命令僅為命令僅為其中的一種),預(yù)處理命令通常應(yīng)放在源文件或源其中的一種),預(yù)處理命令通常應(yīng)放在源文件或源程序的最前面。程序的最前面。()每一個(gè)說(shuō)明,每一個(gè)語(yǔ)句都必須以分號(hào)結(jié)尾。()每一個(gè)說(shuō)明,每一個(gè)語(yǔ)句都必須以分號(hào)結(jié)尾。但預(yù)
20、處理命令,函數(shù)頭和花括號(hào)但預(yù)處理命令,函數(shù)頭和花括號(hào)“”之后不能加分之后不能加分號(hào)。號(hào)。()標(biāo)識(shí)符,關(guān)鍵字之間必須至少加一個(gè)空格以示()標(biāo)識(shí)符,關(guān)鍵字之間必須至少加一個(gè)空格以示間隔。若已有明顯的間隔符,也可不再加空格來(lái)間間隔。若已有明顯的間隔符,也可不再加空格來(lái)間隔。隔。(8)變量必須先定義后使用。)變量必須先定義后使用。(9)允許使用注釋。)允許使用注釋。C語(yǔ)言的注釋格式為:語(yǔ)言的注釋格式為: /* */231.3 C語(yǔ)言程序的基本結(jié)構(gòu)語(yǔ)言程序的基本結(jié)構(gòu)()所有語(yǔ)句都必須以分號(hào)()所有語(yǔ)句都必須以分號(hào)“;”結(jié)束,函數(shù)的最結(jié)束,函數(shù)的最后一個(gè)語(yǔ)句也不例外。后一個(gè)語(yǔ)句也不例外。()程序行的書(shū)寫(xiě)格
21、式自由,既允許一行內(nèi)寫(xiě)幾()程序行的書(shū)寫(xiě)格式自由,既允許一行內(nèi)寫(xiě)幾條語(yǔ)句,也允許一條語(yǔ)句分寫(xiě)在幾行上。如果某條條語(yǔ)句,也允許一條語(yǔ)句分寫(xiě)在幾行上。如果某條語(yǔ)句很長(zhǎng),一般需要將其分寫(xiě)在幾行上。語(yǔ)句很長(zhǎng),一般需要將其分寫(xiě)在幾行上。()允許使用注釋。()允許使用注釋。C語(yǔ)言的注釋格式為:語(yǔ)言的注釋格式為: /* */1.3.2 源程序書(shū)寫(xiě)格式源程序書(shū)寫(xiě)格式 241.4 C語(yǔ)言的基本語(yǔ)法單位語(yǔ)言的基本語(yǔ)法單位 1.4.1 語(yǔ)言的字符集語(yǔ)言的字符集 1.4.2 關(guān)鍵字關(guān)鍵字1.4.3 標(biāo)識(shí)符標(biāo)識(shí)符 1.4.4 分隔符分隔符 1.4.5 注釋注釋251.4.1 語(yǔ)言的字符集語(yǔ)言的字符集 字符是組成語(yǔ)言的最
22、基本的元素。語(yǔ)言字符集由字母,字符是組成語(yǔ)言的最基本的元素。語(yǔ)言字符集由字母,數(shù)字,空格,標(biāo)點(diǎn)和特殊字符組成。在字符常量,字符串常量數(shù)字,空格,標(biāo)點(diǎn)和特殊字符組成。在字符常量,字符串常量和注釋中還可以使用漢字或其它可表示的圖形符號(hào)。和注釋中還可以使用漢字或其它可表示的圖形符號(hào)。()字母:()字母:小寫(xiě)字母小寫(xiě)字母a az z共共2626個(gè),大寫(xiě)字母?jìng)€(gè),大寫(xiě)字母A AZ Z共共2626個(gè);個(gè);()數(shù)字:()數(shù)字:0 09 9共共1010個(gè);個(gè);()空白符:()空白符:空格符、制表符、換行符等統(tǒng)稱為空白符空格符、制表符、換行符等統(tǒng)稱為空白符()標(biāo)點(diǎn)和特殊字符()標(biāo)點(diǎn)和特殊字符 特殊字符特殊字符通常
23、指由通常指由12個(gè)符號(hào)組成的運(yùn)算符。個(gè)符號(hào)組成的運(yùn)算符。 算術(shù)運(yùn)算符:算術(shù)運(yùn)算符: + - * / % + - 關(guān)系運(yùn)算符:關(guān)系運(yùn)算符: = 條件運(yùn)算符:條件運(yùn)算符: ?: 和賦值運(yùn)算符:和賦值運(yùn)算符:= 其他分隔符:其他分隔符: ( ) . , ;261.4.2 關(guān)鍵字關(guān)鍵字 關(guān)鍵字是由語(yǔ)言規(guī)定的具有特定意義的字符串,關(guān)鍵字是由語(yǔ)言規(guī)定的具有特定意義的字符串,通常也稱為保留字。用戶定義的標(biāo)識(shí)符不應(yīng)與關(guān)鍵字相通常也稱為保留字。用戶定義的標(biāo)識(shí)符不應(yīng)與關(guān)鍵字相同。標(biāo)準(zhǔn)同。標(biāo)準(zhǔn)C C定義的定義的3232個(gè)關(guān)鍵字如下表個(gè)關(guān)鍵字如下表: :271.4.3 標(biāo)識(shí)符標(biāo)識(shí)符在程序中使用的變量名、在程序中使用的
24、變量名、函數(shù)函數(shù)名、標(biāo)號(hào)等統(tǒng)稱為標(biāo)識(shí)符。除名、標(biāo)號(hào)等統(tǒng)稱為標(biāo)識(shí)符。除庫(kù)庫(kù)函數(shù)函數(shù)的的函數(shù)函數(shù)名由系統(tǒng)定義外,其余都由用戶自定義。名由系統(tǒng)定義外,其余都由用戶自定義。C C 規(guī)定,規(guī)定,標(biāo)識(shí)符只能是字母(標(biāo)識(shí)符只能是字母(A AZ Z,a az z)、數(shù)字()、數(shù)字(0 09 9)、下劃線)、下劃線(_ _)組成的字符串,并且其第一個(gè)字符必須是字母或下劃線。)組成的字符串,并且其第一個(gè)字符必須是字母或下劃線。以下標(biāo)識(shí)符是合法的:以下標(biāo)識(shí)符是合法的: a ax x_3x_3xBOOK_1BOOK_1sum5sum5以下標(biāo)識(shí)符是非法的:以下標(biāo)識(shí)符是非法的: 3s 3s 以數(shù)字開(kāi)頭以數(shù)字開(kāi)頭 s s*
25、 *T T 出現(xiàn)非法字符出現(xiàn)非法字符* * -3x -3x 以減號(hào)開(kāi)頭以減號(hào)開(kāi)頭 bowy-1 bowy-1 出現(xiàn)非法字符減號(hào)出現(xiàn)非法字符減號(hào)注:標(biāo)識(shí)符中,大小寫(xiě)是有區(qū)別的。注:標(biāo)識(shí)符中,大小寫(xiě)是有區(qū)別的。 標(biāo)識(shí)符不能與關(guān)鍵字同名。標(biāo)識(shí)符不能與關(guān)鍵字同名。281.4.4 分隔符分隔符 語(yǔ)言中采用的分隔符包括逗號(hào)和空格。語(yǔ)言中采用的分隔符包括逗號(hào)和空格。(1)逗號(hào)主要用在類型說(shuō)明和函數(shù)參數(shù)表中,分)逗號(hào)主要用在類型說(shuō)明和函數(shù)參數(shù)表中,分隔各個(gè)變量,逗號(hào)也可以做運(yùn)算符,具體參照本教程隔各個(gè)變量,逗號(hào)也可以做運(yùn)算符,具體參照本教程第二章。第二章。(2)空格多用于語(yǔ)句各單詞之間,作間隔符。在)空格多用
26、于語(yǔ)句各單詞之間,作間隔符。在關(guān)鍵字,標(biāo)識(shí)符之間必須要有一個(gè)以上的空格符作間關(guān)鍵字,標(biāo)識(shí)符之間必須要有一個(gè)以上的空格符作間隔,否則將會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤。隔,否則將會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤。例如,例如,int a;不能寫(xiě)成不能寫(xiě)成 inta; C編譯器會(huì)把編譯器會(huì)把inta當(dāng)成一個(gè)標(biāo)識(shí)符處理,其結(jié)果必然當(dāng)成一個(gè)標(biāo)識(shí)符處理,其結(jié)果必然出錯(cuò)。出錯(cuò)。 291.4.5 注釋注釋 C C 語(yǔ)言的注釋符是以語(yǔ)言的注釋符是以“/ /* *”開(kāi)頭并以開(kāi)頭并以“* */”/”結(jié)尾的串。程結(jié)尾的串。程序編譯時(shí),不對(duì)注釋作任何處理。序編譯時(shí),不對(duì)注釋作任何處理。(1 1) “ “/ /* *”和和“* */” /” 必須成對(duì)使用,
27、且必須成對(duì)使用,且“/”/”和和“* *”、以、以及及“* *”和和“/”/”之間不能有空格,否則出錯(cuò)。之間不能有空格,否則出錯(cuò)。(2 2)注釋的位置,可以單占)注釋的位置,可以單占1 1行,也可以跟在語(yǔ)句的后面。行,也可以跟在語(yǔ)句的后面。(3 3)如果)如果1 1行寫(xiě)不下,可另起行寫(xiě)不下,可另起1 1行繼續(xù)寫(xiě)。行繼續(xù)寫(xiě)。(4 4)注釋中允許使用漢字。在非中文操作系統(tǒng)下,漢字將以)注釋中允許使用漢字。在非中文操作系統(tǒng)下,漢字將以亂碼呈現(xiàn),但不影響程序運(yùn)行。亂碼呈現(xiàn),但不影響程序運(yùn)行。30C語(yǔ)言是一種編譯型程序語(yǔ)言。語(yǔ)言是一種編譯型程序語(yǔ)言。1.5 C語(yǔ)言程序的開(kāi)發(fā)過(guò)程與環(huán)境語(yǔ)言程序的開(kāi)發(fā)過(guò)程與
28、環(huán)境編輯連接編譯執(zhí)行程序代碼的錄入程序代碼的錄入,生成源程序生成源程序 .c .cpp翻譯生成目標(biāo)程序翻譯生成目標(biāo)程序 .obj與其它目標(biāo)程序或庫(kù)鏈接裝配與其它目標(biāo)程序或庫(kù)鏈接裝配,生成可執(zhí)行程序生成可執(zhí)行程序 .exe311.5.1 由源程序生成可執(zhí)行程序的過(guò)程由源程序生成可執(zhí)行程序的過(guò)程1. 編輯(編輯(Edit)編程人員把程序代碼輸入計(jì)算機(jī)的過(guò)程或修改已經(jīng)存在的代編程人員把程序代碼輸入計(jì)算機(jī)的過(guò)程或修改已經(jīng)存在的代碼的過(guò)程就是編輯。碼的過(guò)程就是編輯。 2. 編譯(編譯(Compile/Make)對(duì)源程序的語(yǔ)法和邏輯結(jié)構(gòu)等進(jìn)行檢查以生成目標(biāo)文件對(duì)源程序的語(yǔ)法和邏輯結(jié)構(gòu)等進(jìn)行檢查以生成目標(biāo)文件(Object)的過(guò)程就是編譯。)的過(guò)程就是編譯。3. 連接連接(Link)連接的作用是使用系統(tǒng)提供的連接程序(或稱連接
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年統(tǒng)編版選修4地理下冊(cè)階段測(cè)試試卷含答案
- 2025年度頂級(jí)時(shí)尚品牌代言人形象推廣合同4篇
- 寧波2025年度房地產(chǎn)項(xiàng)目合作開(kāi)發(fā)合同范本4篇
- 2025年中國(guó)國(guó)電甘肅電力有限公司招聘筆試參考題庫(kù)含答案解析
- 2025年度虛擬現(xiàn)實(shí)(VR)內(nèi)容制作與分發(fā)合同4篇
- 2025年華東師大版選擇性必修3地理下冊(cè)月考試卷
- 2025年浙江紹興諸暨市東大次塢污水處理有限公司招聘筆試參考題庫(kù)附帶答案詳解
- 2025年粵教版高二歷史下冊(cè)月考試卷含答案
- 2025年度綠色建筑節(jié)能施工合同范本4篇
- 2024年度青海省公共營(yíng)養(yǎng)師之四級(jí)營(yíng)養(yǎng)師模擬題庫(kù)及答案下載
- 專題24 短文填空 選詞填空 2024年中考英語(yǔ)真題分類匯編
- 再生障礙性貧血課件
- 產(chǎn)后抑郁癥的護(hù)理查房
- 2024年江蘇護(hù)理職業(yè)學(xué)院高職單招(英語(yǔ)/數(shù)學(xué)/語(yǔ)文)筆試歷年參考題庫(kù)含答案解析
- 電能質(zhì)量與安全課件
- 醫(yī)藥營(yíng)銷團(tuán)隊(duì)建設(shè)與管理
- 工程項(xiàng)目設(shè)計(jì)工作管理方案及設(shè)計(jì)優(yōu)化措施
- 圍場(chǎng)滿族蒙古族自治縣金匯螢石開(kāi)采有限公司三義號(hào)螢石礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 小升初幼升小擇校畢業(yè)升學(xué)兒童簡(jiǎn)歷
- 資金支付審批單
- 第一單元(金融知識(shí)進(jìn)課堂)課件
評(píng)論
0/150
提交評(píng)論