




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第2章C語言程序設(shè)計基礎(chǔ)學習內(nèi)容
程序設(shè)計語言的發(fā)展及其特點C語言的發(fā)展及其特點和應(yīng)用C語言程序的基本結(jié)構(gòu)編制C語言程序的基本步驟了解歷史……抓住現(xiàn)在……展望未來……2.1程序設(shè)計語言的發(fā)展及其特點機器語言匯編語言高級語言CPU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加
10010000減用助記符號描述的指令系統(tǒng)如ADDA,B面向機器的語言C語言發(fā)展史ALGOL60語言
CPL語言
CombinedProgrammingLanguage1963年,劍橋大學BCPL語言
1967年,劍橋大學的MatinRichards對CPL語言進行了簡化B語言
C語言
1970年,美國貝爾實驗室的KenThompson將BCPL進行了修改將CPL語言煮干,提煉出它的精華1973年,B語言也給人“煮”了一下,美國貝爾實驗室的D.M.RITCHIE在B語言的基礎(chǔ)上最終設(shè)計出了一種新的語言BCPL的第二個字母作為這種語言的名字,這就是C語言
ALGOL是計算機發(fā)展史上首批產(chǎn)生的高級語言C語言發(fā)展史產(chǎn)生過程時間:1972~1973
地點:美國貝爾實驗室目的:UNIX操作系統(tǒng)設(shè)計人:Ken.Thompson和Dennis.M.RitchieC標準
標準C:1978年K&R合著《TheCProgrammingLanguage》ANSIC:1983年
87ANSIC:1987年
1990年國際標準的87ANSICC語言版本
C語言有不同的版本,常用的編譯軟件有MicrosoftVisualC++、BorlandC++、BorlandC++Builder、WatcomC++、GNUDJGPPC++、Lccwin32C、MicrosoftC、TurboC、HighC等等。
本課程的內(nèi)容將基于ANSIC進行展開,主要是針對VisualC++6.0,同時也兼顧BorlandC++3.1和TurboC2.0。C語言的特點簡潔緊湊、靈活方便運算符豐富數(shù)據(jù)結(jié)構(gòu)豐富C是結(jié)構(gòu)式語言C語法限制不太嚴格、程序設(shè)計自由度大C語言允許直接訪問物理地址,可以直接對硬件進行操作C語言程序生成代碼質(zhì)量高,程序執(zhí)行效率高C語言適用范圍大,可移植性好具有預處理功能具有遞歸功能C語言一共只有30多個關(guān)鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結(jié)構(gòu)和語句與低級語言的實用性結(jié)合起來。C語言可以象匯編語言一樣對位、字節(jié)和地址進行操作,而這三者是計算機最基本的工作單元。C的運算符包含的范圍很廣泛,共有種34個運算符。C語言把括號、賦值、強制類型轉(zhuǎn)換等都作為運算符處理。從而使C的運算類型極其豐富表達式類型多樣化,靈活使用各種運算符可以實現(xiàn)在其它高級語言中難以實現(xiàn)的運算(具體見后面的章節(jié))。
C的數(shù)據(jù)類型有:整型、實型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、聯(lián)合體類型等。能用來實現(xiàn)各種復雜的數(shù)據(jù)類型的運算。并引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能,支持多種顯示器和驅(qū)動器。且計算功能、邏輯判斷功能強大。
結(jié)構(gòu)式語言的顯著特點是代碼及數(shù)據(jù)的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?,便于使用、維護以及調(diào)試。C語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。
一般的高級語言語法檢查比較嚴,能夠檢查出幾乎所有的語法錯誤。而C語言允許程序編寫者有較大的自由度。
C語言既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、字節(jié)和地址進行操作,而這三者是計算機最基本的工作單元,可以用來寫系統(tǒng)軟件。一般只比匯編程序生成的目標代碼效率低10~20%。C語言有一個突出的優(yōu)點就是適合于多種操作系統(tǒng),如DOS、WINDOWS、UNIX。也適用于多種機型,在一種計算機上編寫的程序,無須修改或經(jīng)過很少的修改,就可以在其它類型的計算機上運行。
C語言提供了預處理器,程序可以利用宏指令提高可讀性和可移植性。C語言允許遞歸調(diào)用,在解決遞歸問題上具有獨特優(yōu)勢。C語言的應(yīng)用
C語言的應(yīng)用非常廣,也非常多,在此僅列出其中的一些應(yīng)用:C語言可以用來開發(fā)許多系統(tǒng)軟件和大型應(yīng)用軟件。如UNIX,LINUX等操作系統(tǒng)。在軟件需要對硬件進行操作的場合,用C語言明顯優(yōu)于其它高級語言。例如,各種硬件設(shè)備的驅(qū)動程序(象顯卡驅(qū)動程序、打印機驅(qū)動程序等)一般都是用C語言編寫的。在圖形、圖像及動畫處理方面,C語言具有絕對優(yōu)勢,特別是游戲軟件的開發(fā)主要就是使用C語言。隨著計算機網(wǎng)絡(luò)飛速發(fā)展,特別是Internet的出現(xiàn),計算機通信就顯得尤其重要,而通信程序的編制首選就是C語言。
C語言適用于多種操作系統(tǒng),象WINDOWS、UNIX、LINUX等絕大多數(shù)操作系統(tǒng)都支持C語言,其它高級語言未必能得到支持,所以在某個特定操作系統(tǒng)下運行的軟件用C語言編制是最佳選擇。2.3C語言程序的基本結(jié)構(gòu)
了解了C語言的基本特性及其應(yīng)用以后,接下來就來看看C語言程序是什么樣子。一個C語言程序可以是非常簡單的,也可以是特別復雜的,這取決于程序所要實現(xiàn)的功能。我們先來認識一個最為簡單的C程序?!纠?】最簡單的C程序。/*ThisisthefirstCprogram*/#include<stdio.h>voidmain(){printf("HelloCLanguage!\n");}注釋信息預處理命令無返回值無參數(shù)、無返回值的主函數(shù)主函數(shù)名函數(shù)開始內(nèi)部函數(shù)名參數(shù)回車換行符函數(shù)調(diào)用函數(shù)體語句結(jié)束標志函數(shù)結(jié)束
運行結(jié)果:HelloCLanguage!
在C程序中,注釋由“/*”開始,由“*/”結(jié)束,可以實現(xiàn)多行注釋。在C++程序中也可使用“//”進行單行注釋。例如://注釋信息C語言的預處理命令都是以“#”號開頭。stdio.h是一個頭文件
C程序中允許插入若干行空行,它不影響程序的功能,同注釋一樣。為了程序的易讀性,在編寫C程序時,根據(jù)需要可插入一定的空行
main是主函數(shù)名,一個C語言程序有且僅有一個main函數(shù)。C程序執(zhí)行時就是從main函數(shù)開始,具體講就是從“{”開始,到“}”結(jié)束。printf是C語言的內(nèi)部函數(shù)名,因為它后面跟著(),其功能是將“HelloCLanguage!\n”顯示在計算機的屏幕上(雙引號和\n不顯示)C語言規(guī)定:語句以分號結(jié)束
2.3C語言程序的基本結(jié)構(gòu)
【例2】計算輸入的兩個整數(shù)的和。/*ThisisthesecondCprogram*/#include<stdio.h>voidmain(){intx,y,z;scanf("%d%d",&x,&y);z=x+y;printf("thesumoftwointegeris%d\n",z);}數(shù)據(jù)類型名定義的變量名,以“,”分隔調(diào)用內(nèi)部函數(shù),接受鍵盤輸入數(shù)據(jù)帶有三個參數(shù),以“,”分隔。&表示取變量的地址。調(diào)用內(nèi)部函數(shù),輸出計算的和數(shù)求和的值給Z假設(shè)輸入:1020↙
運行結(jié)果:thesumoftwointegeris302.3C語言程序的基本結(jié)構(gòu)
C語言程序的函數(shù)由兩部分構(gòu)成:一部分定義變量(變量代表數(shù)據(jù)),稱為聲明部分;另一部分代表操作,由C語句構(gòu)成,稱為執(zhí)行部分。在C程序中,要求函數(shù)的聲明部分在前面,執(zhí)行在后面,它們的順序不能顛倒,也不能交叉。但在C++程序中,聲明部分和執(zhí)行部分可以相互交叉,沒有嚴格的界限,當然執(zhí)行部分中所使用的變量只要在其之前進行定義即可。//C語言程序voidmain(){inta;a=10;intb;b=a+20;}變量定義放到了執(zhí)行部分之后。
//C++語言程序voidmain(){inta;a=10;intb;b=a+20;}只要執(zhí)行部分所使用的變量在前面已經(jīng)定義
//C或C++語言程序voidmain(){inta;a=10;b=a+20;intb;}變量定義放到了執(zhí)行部分之后。
再次強調(diào):在C語言程序中,變量必須先定義,后使用,順序不能顛倒?。?!
2.3C語言程序的基本結(jié)構(gòu)
【例3】計算輸入的兩個整數(shù)的最大值。/*ThisisthethirdCprogram*/#include<stdio.h>intmax(inta,intb);voidmain(){intx,y,z;scanf("%d%d",&x,&y);z=max(x,y);printf("max=%d\n",z);}intmax(inta,intb){intc;if(a>b)c=a;elsec=b;return(c);}自定義函數(shù)聲明自定義函數(shù)調(diào)用自定義函數(shù)max帶兩個形參返回a、b中最大值c返回值為整型數(shù)假設(shè)輸入:1020↙
運行結(jié)果:max=202.3C語言程序的基本結(jié)構(gòu)
C語言的標識符
C語言中變量和函數(shù)都有自己的名字,它們都必須是合法的標識符。標識符就是一個名字,C語言規(guī)定標識符只能由字母、數(shù)字和下劃線三種字符構(gòu)成,并且第一個字符必須是字母或下劃線。
C語言是大小寫敏感的語言,因此hello和Hello是不同的標識符。
C語言中有一些特別的標識符,它們的用途已經(jīng)事先規(guī)定好了,程序員不能再將它們另做它用。這些特別的標識符被稱為關(guān)鍵字(也稱保留字)。到目前為止,我們見過的關(guān)鍵字有void、int、main、if、else、return。以后隨著學習的深入,我們將會遇到越來越多的關(guān)鍵字(C語言關(guān)鍵字可參考附錄C)。2.3C語言程序的基本結(jié)構(gòu)
總結(jié)C程序是由多個函數(shù)構(gòu)成的。每個C程序中有且只有一個main函數(shù)。main函數(shù)是程序的入口和出口。不使用行號,無程序行的概念。程序中可使用空行和空格。C程序格式常用鋸齒形書寫格式。C程序中可加任意多的注釋。引用C語言標準庫函數(shù),一般要用文件包含預處理命令將其頭文件包含進來。用戶自定義的函數(shù),必須先定義后使用。變量必須先定義后使用。變量名、函數(shù)名必須是合法的標識符,標識符習慣用小寫字母,大小寫敏感。不能用關(guān)鍵字來命名變量和函數(shù)。函數(shù)包含兩個部分:聲明部分和執(zhí)行部分,在C程序中,聲明部分在前,執(zhí)行部分在后,這兩部分的順序不能顛倒,也不能有交叉。C語言的語句都是以分號結(jié)尾。2.4編制C語言程序的基本步驟
編輯程序代碼的錄入,生成源程序*.c或*.cpp編譯語法分析查錯,翻譯生成目標程序*.obj鏈接與其它目標程序或庫鏈接裝配,生成可執(zhí)行程序*.exe運行開始編輯編譯有錯?鏈接執(zhí)行結(jié)果正確?結(jié)束源程序file.c目標程序file.obj庫函數(shù)和其它目標程序可執(zhí)行程序file.exe不正確正確有無
調(diào)試C程序的流程
編寫C程序的步驟
習題:P34~P361、2、3
一、單項選擇題
1.以下______不是C語言的特點。
A.語言的表達能力強B.語法定義嚴格
C.數(shù)據(jù)結(jié)構(gòu)系統(tǒng)化D.控制流程結(jié)構(gòu)化2.C編譯系統(tǒng)提供了對C程序的編輯、編譯、連接和運行環(huán)境,以下可以不在該環(huán)境下進行的是______。
A.編輯和編譯B.編譯和連接
C.連接和運行D.編輯和運行3.以下______不是二進制代碼文件。
A.標準庫文件B.目標文件
C.源程序文件D.可執(zhí)行文件4.下面各選項組中,均屬于C語言關(guān)鍵字的一組是______。
A.auto,enum,includeB.switch,typedef,continue
C.signed,union,scanfD.if,struct,type5.下面四組字符串中,都可以用作C語言程標識符的是______。
A.printB.I\amC.signD.if
_mafscanf3mfty_pe
mx_2dmx_a.fx1#
aMb6AMBA&B5XY6.以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025安全員-B證(項目經(jīng)理)考試題庫
- 2024年外轉(zhuǎn)子風機項目資金籌措計劃書代可行性研究報告
- 2024年TC-22型氧化鋅脫硫劑項目資金需求報告
- 數(shù)學-云南省三校2025屆高三2月高考備考聯(lián)考卷(六)試題和答案
- 2025年度文化事業(yè)單位正規(guī)勞務(wù)派遣合作協(xié)議書
- 2025年度專業(yè)化學品倉庫庫房租賃及安全管理協(xié)議
- 二零二五年度員工股權(quán)激勵與公司可持續(xù)發(fā)展合同
- 2025年度房地產(chǎn)戰(zhàn)略合作協(xié)議書:房地產(chǎn)項目綠色建筑設(shè)計與綠色施工技術(shù)合同
- 2025年度臨時用工合同協(xié)議書:文化演出臨時演出人員及技術(shù)人員協(xié)議
- 2025年度網(wǎng)絡(luò)安全責任忠誠協(xié)議范本
- 2022年濟南工程職業(yè)技術(shù)學院單招綜合素質(zhì)考試筆試試題及答案解析
- 員工調(diào)整薪酬面談表
- 輔警報名登記表
- 初中數(shù)學競賽試題匯編
- 外研版英語五年級下冊第一單元全部試題
- 培養(yǎng)小學生課外閱讀興趣課題研究方案
- 部編版四年級語文下冊課程綱要
- 【課件】第二單元第三節(jié)漢族民歌課件-2021-2022學年高中音樂人音版(2019)必修音樂鑒賞
- 高中人音版必修 音樂鑒賞20人民音樂家課件
- 華文出版社三年級下冊書法教案
- GB_T 30789.3-2014 色漆和清漆 涂層老化的評價 缺陷的數(shù)量和大小以及外觀均勻變化程度的標識 第3部分:生銹等級的評定
評論
0/150
提交評論