C程序設(shè)計譚浩強(qiáng)著C語言概述_第1頁
C程序設(shè)計譚浩強(qiáng)著C語言概述_第2頁
C程序設(shè)計譚浩強(qiáng)著C語言概述_第3頁
C程序設(shè)計譚浩強(qiáng)著C語言概述_第4頁
C程序設(shè)計譚浩強(qiáng)著C語言概述_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C程序設(shè)計2010.2目錄第1章C語言概述第2章程序的靈魂—算法第3章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式第5章選擇結(jié)構(gòu)程序設(shè)計第4章最簡單的C程序設(shè)計—順序程序設(shè)計第6章循環(huán)控制第7章數(shù)組第8章函數(shù)第9章指針第10章預(yù)處理命令第11章結(jié)構(gòu)體與共同體第12章位運(yùn)算第13章文件教材、參考書與課時安排

教材C程序設(shè)計譚浩強(qiáng)著清華大學(xué)出版社參考書C程序設(shè)計解答與上機(jī)指導(dǎo)譚浩強(qiáng)編著清華大學(xué)出版社C語言程序設(shè)計教程譚浩強(qiáng)高等教育出版社C高級實用程序設(shè)計王士元清華大學(xué)出版社課時安排授課:34學(xué)時上機(jī):34學(xué)時學(xué)習(xí)要求及成績構(gòu)成學(xué)習(xí)要求課前請做好預(yù)習(xí),課后請做好復(fù)習(xí)保持課堂安靜,頭腦清醒,思維活躍認(rèn)真、獨立、按時完成并提交作業(yè)重視上機(jī)實踐,有效利用寶貴的上機(jī)時間成績構(gòu)成平時考勤:10%

平時作業(yè):10%平時上機(jī):10%

期末考試:上機(jī)考10%+筆考60%第1章C語言概述1.1程序設(shè)計語言的發(fā)展及其特點機(jī)器語言匯編語言高級語言面向過程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加

10010000減用助記符號描述的指令系統(tǒng)如ADDA,B面向機(jī)器的語言程序設(shè)計是數(shù)據(jù)被加工的過程客觀世界可以分類,對象是類的實例對象是數(shù)據(jù)和方法的封裝對象間通過發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計關(guān)鍵是定義類,并由類派生對象馮.諾依曼結(jié)構(gòu):計算機(jī)運(yùn)算器控制器存儲器主機(jī):I/O設(shè)備:鍵盤、顯示器等中央處理器CPU5254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC++JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula67Smalltalk80BASICANSI-BASICQBASICVBFORTRAN901.2C語言的發(fā)展及其特點、應(yīng)用C語言發(fā)展史ALGOL60語言

CPL語言

CombinedProgrammingLanguage1963年,劍橋大學(xué)BCPL語言

1967年,劍橋大學(xué)的MatinRichards對CPL語言進(jìn)行了簡化B語言

C語言

1970年,美國貝爾實驗室的KenThompson將BCPL進(jìn)行了修改將CPL語言煮干,提煉出它的精華1973年,B語言也給人“煮”了一下,美國貝爾實驗室的D.M.RITCHIE在B語言的基礎(chǔ)上最終設(shè)計出了一種新的語言BCPL的第二個字母作為這種語言的名字,這就是C語言

C語言發(fā)展史產(chǎn)生背景產(chǎn)生過程時間:1972~1973

地點:美國貝爾實驗室目的:UNIX操作系統(tǒng)設(shè)計人:Ken.Thompson和Dennis.M.RitchieC標(biāo)準(zhǔn)

標(biāo)準(zhǔn)C:K&R合著《TheCProgrammingLanguage》ANSIC:1983年

87ANSIC:1987年

1990年國際標(biāo)準(zhǔn)的ANSICC語言版本

C語言有不同的版本,常用的編譯軟件有MicrosoftVisualC++、BorlandC++、BorlandC++Builder、WatcomC++、GNUDJGPPC++、Lccwin32C、MicrosoftC、TurboC、HighC等等。

本課程的內(nèi)容將基于ANSIC進(jìn)行展開,主要是針對VisualC++6.0,同時也兼顧BorlandC++3.1和TurboC2.0。C語言的特點簡潔緊湊、靈活方便運(yùn)算符豐富數(shù)據(jù)結(jié)構(gòu)豐富C是結(jié)構(gòu)式語言C語法限制不太嚴(yán)格、程序設(shè)計自由度大C語言允許直接訪問物理地址,可以直接對硬件進(jìn)行操作C語言程序生成代碼質(zhì)量高,程序執(zhí)行效率高C語言適用范圍大,可移植性好具有預(yù)處理功能具有遞歸功能C語言一共只有30多個關(guān)鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。它把高級語言的基本結(jié)構(gòu)和語句與低級語言的實用性結(jié)合起來。C語言可以象匯編語言一樣對位、字節(jié)和地址進(jìn)行操作,而這三者是計算機(jī)最基本的工作單元。

C的運(yùn)算符包含的范圍很廣泛,共有種34個運(yùn)算符。C語言把括號、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理。從而使C的運(yùn)算類型極其豐富表達(dá)式類型多樣化,靈活使用各種運(yùn)算符可以實現(xiàn)在其它高級語言中難以實現(xiàn)的運(yùn)算(具體見后面的章節(jié))。

C的數(shù)據(jù)類型有:整型、實型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、聯(lián)合體類型等。能用來實現(xiàn)各種復(fù)雜的數(shù)據(jù)類型的運(yùn)算。并引入了指針概念,使程序效率更高。另外C語言具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動器。且計算功能、邏輯判斷功能強(qiáng)大。結(jié)構(gòu)式語言的顯著特點是代碼及數(shù)據(jù)的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?,便于使用、維護(hù)以及調(diào)試。C語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。一般的高級語言語法檢查比較嚴(yán),能夠檢查出幾乎所有的語法錯誤。而C語言允許程序編寫者有較大的自由度。

C語言既具有高級語言的功能,又具有低級語言的許多功能,能夠象匯編語言一樣對位、字節(jié)和地址進(jìn)行操作,而這三者是計算機(jī)最基本的工作單元,可以用來寫系統(tǒng)軟件。一般只比匯編程序生成的目標(biāo)代碼效率低10~20%。

C語言有一個突出的優(yōu)點就是適合于多種操作系統(tǒng),如DOS、WINDOWS、UNIX。也適用于多種機(jī)型,在一種計算機(jī)上編寫的程序,無須修改或經(jīng)過很少的修改,就可以在其它類型的計算機(jī)上運(yùn)行。

C語言提供了預(yù)處理器,程序可以利用宏指令提高可讀性和可移植性。

C語言允許遞歸調(diào)用,在解決遞歸問題上具有獨特優(yōu)勢。C語言的應(yīng)用

C語言的應(yīng)用非常廣,也非常多,在此僅列出其中的一些應(yīng)用:C語言可以用來開發(fā)許多系統(tǒng)軟件和大型應(yīng)用軟件。如UNIX,LINUX等操作系統(tǒng)。在軟件需要對硬件進(jìn)行操作的場合,用C語言明顯優(yōu)于其它高級語言。例如,各種硬件設(shè)備的驅(qū)動程序(象顯卡驅(qū)動程序、打印機(jī)驅(qū)動程序等)一般都是用C語言編寫的。在圖形、圖像及動畫處理方面,C語言具有絕對優(yōu)勢,特別是游戲軟件的開發(fā)主要就是使用C語言。隨著計算機(jī)網(wǎng)絡(luò)飛速發(fā)展,特別是Internet的出現(xiàn),計算機(jī)通信就顯得尤其重要,而通信程序的編制首選就是C語言。

C語言適用于多種操作系統(tǒng),象WINDOWS、UNIX、LINUX等絕大多數(shù)操作系統(tǒng)都支持C語言,其它高級語言未必能得到支持,所以在某個特定操作系統(tǒng)下運(yùn)行的軟件用C語言編制是最佳選擇。1.3C語言程序的基本結(jié)構(gòu)

了解了C語言的基本特性及其應(yīng)用以后,接下來就來看看C語言程序是什么樣子。一個C語言程序可以是非常簡單的,也可以是特別復(fù)雜的,這取決于程序所要實現(xiàn)的功能。我們先來認(rèn)識一個最為簡單的C程序?!纠?】最簡單的C程序。/*ThisisthefirstCprogram*/#include<stdio.h>voidmain(){

printf(“TheisaCprogram!\n");}注釋信息預(yù)處理命令無返回值無參數(shù)、無返回值的主函數(shù)主函數(shù)名函數(shù)開始內(nèi)部函數(shù)名參數(shù)回車換行符函數(shù)調(diào)用函數(shù)體語句結(jié)束標(biāo)志函數(shù)結(jié)束運(yùn)行結(jié)果:

TheisaCprogram!在C程序中,注釋由“/*”開始,由“*/”結(jié)束,可以實現(xiàn)多行注釋

。在C++程序中也可使用“//”進(jìn)行單行注釋。例如://注釋信息

C語言的預(yù)處理命令都是以“#”號開頭。stdio.h是一個頭文件

C程序中允許插入若干行空行,它不影響程序的功能,同注釋一樣。為了程序的易讀性,在編寫C程序時,根據(jù)需要可插入一定的空行

main是主函數(shù)名,一個C語言程序有且僅有一個main函數(shù)。C程序執(zhí)行時就是從main函數(shù)開始,具體講就是從“{”開始,到“}”結(jié)束。

printf是C語言的內(nèi)部函數(shù)名,因為它后面跟著(),其功能是將“TheisaCprogram!\n”顯示在計算機(jī)的屏幕上(雙引號和\n不顯示)

C語言規(guī)定:語句以分號結(jié)束

1.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↙

運(yùn)行結(jié)果:thesumoftwointegeris301.3C語言程序的基本結(jié)構(gòu)

C語言程序的函數(shù)由兩部分構(gòu)成:一部分定義變量(變量代表數(shù)據(jù)),稱為聲明部分;另一部分代表操作,由C語句構(gòu)成,稱為執(zhí)行部分。在C程序中,要求函數(shù)的聲明部分在前面,執(zhí)行在后面,它們的順序不能顛倒,也不能交叉。但在C++程序中,聲明部分和執(zhí)行部分可以相互交叉,沒有嚴(yán)格的界限,當(dāng)然執(zhí)行部分中所使用的變量只要在其之前進(jìn)行定義即可。//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í)行部分之后。

再次強(qiáng)調(diào):在C語言程序中,變量必須先定義,后使用,順序不能顛倒?。?!

1.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↙

運(yùn)行結(jié)果:max=201.3C語言程序的基本結(jié)構(gòu)

C語言的標(biāo)識符

C語言中變量和函數(shù)都有自己的名字,它們都必須是合法的標(biāo)識符。

標(biāo)識符就是一個名字,C語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線三種字符構(gòu)成,并且第一個字符必須是字母或下劃線。

C語言是大小寫敏感的語言,因此hello和Hello是不同的標(biāo)識符。

C語言中有一些特別的標(biāo)識符,它們的用途已經(jīng)事先規(guī)定好了,程序員不能再將它們另做它用。這些特別的標(biāo)識符被稱為關(guān)鍵字(也稱保留字)。到目前為止,我們見過的關(guān)鍵字有void、int、main、if、else、return。以后隨著學(xué)習(xí)的深入,我們將會遇到越來

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論