第02章 C語言程序設計基礎-清華大學C語言_第1頁
第02章 C語言程序設計基礎-清華大學C語言_第2頁
第02章 C語言程序設計基礎-清華大學C語言_第3頁
第02章 C語言程序設計基礎-清華大學C語言_第4頁
第02章 C語言程序設計基礎-清華大學C語言_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章C語言程序設計基礎制作人:王敬華第2章:C語言程序設計基礎

學習的意義

從本章開始我們正式進入C語言程序設計的學習,也許大家會問:為什么我們要學習C語言呢?理由1:因為C語言流行.

理由2:因為C語言考研時必考。

理由3:因為C語言在各種程序考試中首當其中。

理由4:因為它是必修課,是老師逼的,不學不能拿學分

……

理由n:……語言程序設計教程第二版第二章程序設計基礎C別急!讓我想想……

這些理由都只是從表面上來回答,其實要真正來回答這一問題,我們有必要了解程序設計語言的發(fā)展歷史及其特點,知道C語言是屬于那種類型的語言;C語言是如何產(chǎn)生和發(fā)展的,C語言的特點有哪些,它應用在哪些方面等,這樣我們就可以做到學習目的明確,才能有意識地去學好C語言程序設計。

了解程序設計語言的發(fā)展及其特點;掌握機器語言、匯編語言和高級語言的差異;了解C語言的發(fā)展歷史及特點和應用;掌握C語言程序的基本結構;掌握編寫C程序的基本步驟和調(diào)試過程。另外,本章我們將帶領大家來實際感受一下C語言程序是一個什么樣子,它的結構特點是什么,這是我們進行C語言程序設計必須遵循的規(guī)范。最后,我們應該掌握的是如何來編寫和調(diào)試一個C語言程序,這是我們每一個C語言程序員所必須具備的基本功。

學習的意義

學習目標

語言程序設計教程第二版第二章程序設計基礎C學習內(nèi)容

程序設計語言的發(fā)展及其特點C語言的發(fā)展及其特點和應用C語言程序的基本結構編制C語言程序的基本步驟了解歷史……抓住現(xiàn)在……展望未來……語言程序設計教程第二版第二章程序設計基礎C2.1程序設計語言的發(fā)展及其特點機器語言匯編語言高級語言面向過程面向對象CPU指令系統(tǒng),由0、1序列構成的指令碼組成如:10000000加

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

CPL語言

CombinedProgrammingLanguage1963年,劍橋大學BCPL語言

1967年,劍橋大學的MatinRichards對CPL語言進行了簡化B語言

C語言

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

語言程序設計教程第二版第二章程序設計基礎CC語言發(fā)展史產(chǎn)生背景產(chǎn)生過程時間:1972~1973

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

標準C:K&R合著《TheCProgrammingLanguage》ANSIC:1983年

87ANSIC:1987年

1990年國際標準的ANSIC語言程序設計教程第二版第二章程序設計基礎CC語言版本

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

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

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

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

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

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

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

C語言允許遞歸調(diào)用,在解決遞歸問題上具有獨特優(yōu)勢。語言程序設計教程第二版第二章程序設計基礎CC語言的應用

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

C語言適用于多種操作系統(tǒng),象WINDOWS、UNIX、LINUX等絕大多數(shù)操作系統(tǒng)都支持C語言,其它高級語言未必能得到支持,所以在某個特定操作系統(tǒng)下運行的軟件用C語言編制是最佳選擇。語言程序設計教程第二版第二章程序設計基礎C2.3C語言與C++、Java和C#之間的關系

語言程序設計教程第二版第二章程序設計基礎CCC++JavaC#面向過程,市場份額逐漸減少,僅在小型的且追求運行效率的軟件和嵌入式軟件開發(fā)方面有一定空間面向對象,市場份額較大,屬C語言的升級版,完全兼容C語言的語法。在很多場合,它倆也被放在一起,稱為C/C++。這個“++”加上后,便是大名鼎鼎的“面向對象(ObjectOriented)”。

面向對象,市場份額較大,1995年Sun公司出品,以純面向對象、平臺無關和易學易用而著稱。它全面照搬了C++的語法,并去掉了其不常用和不成功的部分,化繁為簡,迅速博得了程序員們的認可,獲得了越來越多的支持。不管是桌面應用,還是網(wǎng)絡服務、嵌入式應用都可用它進行高效的開發(fā)。但如果要做底層的、占用資源少的程序,Java語言就無能為力了。面向對象,市場份額較大,2000年Microsoft

公司出品,讀作CSharp。戲稱其為C++++,它也照搬了C/C++的語法,誕生在Java語言之后,所以它能把Java語言的成功之處吸收進來,把不成功之處拋棄,打造了一個似Java而非Java,還有點超越Java的語言。

目前,C/C++、Java和C#語言即將形成三足鼎立之勢,其他語言僅能在其專屬領域里得以發(fā)揮作用。同時,C++,Java和C#語言也在不斷地完善、擴充自身,極力擠壓其他語言的空間。在這種情況下,C語言的空間變得越來越小,那么為什么還要學習C語言呢?

C語言可以說是C++、Java和C#語言的基礎,還有很多專用語言也學習和借鑒了C語言,比如進行Web開發(fā)的PHP語言,做仿真的MATLAB的內(nèi)嵌語言等。學好C語言對以后再學習其他語言大有幫助。計算機科學發(fā)展很快,若干年以后,什么技術、什么語言盡顯風流無法預言。唯有掌握最基礎的,才能以不變應萬變,并立于不敗之地。2.4C語言程序的基本結構

了解了C語言的基本特性及其應用以后,接下來就來看看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ù)體語句結束標志函數(shù)結束運行結果:

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

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

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

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

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

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

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

語言程序設計教程第二版第二章程序設計基礎C2.4C語言程序的基本結構

【例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假設輸入:1020↙

運行結果:thesumoftwointegeris30語言程序設計教程第二版第二章程序設計基礎C2.4C語言程序的基本結構

C語言程序的函數(shù)由兩部分構成:一部分定義變量(變量代表數(shù)據(jù)),稱為聲明部分;另一部分代表操作,由C語句構成,稱為執(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語言程序中,變量必須先定義,后使用,順序不能顛倒!??!

語言程序設計教程第二版第二章程序設計基礎C2.4C語言程序的基本結構

【例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ù)假設輸入:1020↙

運行結果:max=20語言程序設計教程第二版第二章程序設計基礎C2.4C語言程序的基本結構

C語言的標識符

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

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

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

C語言中有一些特別的標識符,它們的用途已經(jīng)事先規(guī)定好了,程序員不能再將它們另做它用。這些特別的標識符被稱為關鍵字(也稱保留字)。到目

溫馨提示

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

評論

0/150

提交評論