版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
普通高等教育“十二五”規(guī)劃教材C語言程序設計任正云李素若賴玲主編中國水利水電出版社第1章C語言程序設計基礎程序設計及程序設計語言C語言的特點C程序結構源程序的編輯、編譯、連接與運行1.1程序設計及程序設計語言程序是能被機器識別并能執(zhí)行的一系列的指令代碼,這些指令代碼是用程序設計語言來描述的。1.1.1程序設計語言的發(fā)展低級語言高級語言低級語言機器語言用二進制代碼表示機器指令和數(shù)據(jù)。某CPU指令系統(tǒng)中的兩條指令:10000000(進行一次加法運算)10010000(進行一次減法運算)匯編語言20世紀50年代中期人們開始用一些“助記符”來代替0、1碼進行編程。A+B=>A或ADDA,BA-B=>A或SUBA,B這種用助記符號描述的指令系統(tǒng)稱為符號語言或匯編語言。高級語言高級語言是相對于低級語言而言的,它以人類易于接受的文字來表達解決問題的全過程。高級語言分為面向過程的程序設計語言和面向對象的程序設計語言。如C語言和Pascal語言、FoxBase、VisualC++、VisualBasic等。高級語言面向過程的程序設計語言把解題過程看作數(shù)據(jù)被加工的過程?;谶@種方法的程序設計語言稱為面向過程的程序設計語言。面向對象的程序設計語言面向對象的程序設計是一種結構模擬方法,它把現(xiàn)實世界看成是由許多對象(object)所組成,對象之間通過相互發(fā)送和接收消息進行聯(lián)系。消息的發(fā)送對象本身運動,形成對象狀態(tài)的變化。從程序結構的角度,每個對象都是一個數(shù)據(jù)和方法的封裝體——抽象數(shù)據(jù)類型。1.1.2C語言的發(fā)展過程C語言的發(fā)展過程可粗略地分為三個階段:1970年至1973年為誕生階段之后至1988年為發(fā)展階段1988年以后為成熟階段1.C語言的誕生C語言是為寫UNIX操作系統(tǒng)而誕生的。1970年美國AT&T公司貝爾實驗室KenThompson為實現(xiàn)UNIX操作系統(tǒng)而提出一種僅供自己使用的工作語言,由于該工作語言是基于1967年由英國劍橋大學的MartinRichards提出的BCPL語言設計的,因而被作者命名為B語言,B取自BCPL的第一個字母。B語言被用于在PDP-7計算機上實現(xiàn)了第一個UNIX操作系統(tǒng)。1972年貝爾實驗室的DennisM.Ritchie又在B語言基礎上系統(tǒng)地引入了各種數(shù)據(jù)類型,從而使B語言的數(shù)據(jù)結構類型化。1973年K.Tompson和D.M.Ritchie用C語言重寫了UNIX操作系統(tǒng),推出UNIXv5。1975年又推出UNIXv6。此時的C語言是附屬于UNIX操作系統(tǒng)的。2.C語言的發(fā)展1977年C語言的作者發(fā)表了不依賴于具體機器系統(tǒng)的C語言編譯文本《可移植C語言編譯程序》,從而推動了UNIX操作系統(tǒng)在各種機器上的實現(xiàn)以及UNIX操作系統(tǒng)的不斷發(fā)展。1978年以后相繼推出了UNIXv7,UNIXsystemV。使人們普遍注意到C語言的突出優(yōu)點,從而又促進了C語言的迅速推廣。1978年BrianW.Kernighan和D.M.Ritchie以UNIXv7中編譯程序為基礎寫了影響深遠的名著TheCProgrammingLanguage,這本書上介紹的C語言是以后各種C語言版本的基礎,被稱為傳統(tǒng)C語言。1978年以后,C語言先后移植到各種大型機、中型機、小型機及微型機上。目前,C語言成為世界上使用最廣泛的高級程序設計語言,且不依賴于UNIX操作系統(tǒng)而獨立存在。3.C語言的成熟1978年以后,C語言的不斷發(fā)展產(chǎn)生了各種C語言版本,不同的C語言版本對傳統(tǒng)C語言都有所擴充和發(fā)展。1983年,美國國家標準協(xié)會(ANSI)綜合了各版本對C的擴充和發(fā)展,制定了新標準,稱為ANSIC。Kernighan和D.M.Ritchie按ANSIC標準重寫了他們的經(jīng)典著作,于1990年正式發(fā)表了國際標準化組織(ISO)公布的C語言標準。1988年以后推出的各種C語言版本與ANSIC是相容的。1.2C語言的特點語言簡潔、緊湊,使用方便、靈活。一共只有32個關鍵字9種控制語句程序書寫形式自由,主要用小寫字母表示。C語言PASCAL語言含義{}BEGIN...END復合語句if(e)SIF(e)THENS條件語句inti;VARi:INTEGER定義i為整型變量inta[10];VARa:ARRAY[1..10]OFINTEGER定義a為整型一維數(shù)組intf();FUNCTIONf():INTEGER定義f為返回整型值的函數(shù)int*p;VARp:
INTEGER定義p為指向整型變量的指針變量i+=2;i:=i+2賦值語句,使i+2=>ii++,++ii:=i+1i自增值1,i+1=>i1.2C語言的特點運算符豐富。共有34種運算符。數(shù)據(jù)結構豐富,具有現(xiàn)代化語言的各種數(shù)據(jù)結構。C語言的數(shù)據(jù)類型有整型、實型、字符型、數(shù)組類型、指針類型、結構體類型、共用體類型等。能實現(xiàn)各種復雜的數(shù)據(jù)結構(如鏈表、樹、棧等)的運算,尤其是指針類型數(shù)據(jù)。具有結構化的控制語句if...else語句while語句do...while語句switch語句for語句1.2C語言的特點語法限制不太嚴格,程序設計自由度大。對數(shù)組下標越界不做檢查,由程序編寫者自己保證程序的正確。整型數(shù)據(jù)與字符型數(shù)據(jù)可以通用。
C語言能進行位(bit)操作,能實現(xiàn)匯編語言的大部分功能,可以直接對硬件進行操作。C語言既具有高級語言的特點,又具有低級語言的許多功能,可用來編寫系統(tǒng)軟件。生成目標代碼質量高,程序執(zhí)行效率高。一般只比匯編程序生成的目標代碼效率低10%~20%。程序可移植性好(與匯編語言比)?;旧喜蛔鲂薷木湍苡糜诟鞣N型號的計算機和各種操作系統(tǒng)。1.3.1簡單的C程序介紹main() { printf("ThisisaCprogram.\n"); }輸出結果是:ThisisaCprogram.【例1.1】簡單的C程序介紹【例1.2】
運行結果為:sum=579
計算兩數(shù)之和并輸出結果。main(){inta,b,sum; a=123;b=456;sum=a+b; printf("sum=%d\n",sum); }簡單的C程序介紹
【例1.3】運行結果為:sum=579
輸入兩個整數(shù),計算兩者較大的數(shù),并輸出。main(){inta,b,c;intmax(intx,inty);scanf("%d,%d",&a,&b);c=max(a,b);printf("max=%d",c);}intmax(intx,inty){intz; if(x>y) z=x; else z=y; returnz;}1.3.2C程序結構(1)C程序由函數(shù)構成(函數(shù)是C程序的基本單位)
一個C源程序至少包含一個main函數(shù),也可以包含一個main函數(shù)和若干個其他函數(shù)。函數(shù)是C程序的基本單位。被調用的函數(shù)可以是系統(tǒng)提供的庫函數(shù),也可以是用戶根據(jù)需要自己編寫設計的函數(shù)。C函數(shù)庫非常豐富,ANSIC提供100多個庫函數(shù),TurboC提供300多個庫函數(shù)。1.3.2C程序結構(2)main函數(shù)(主函數(shù))是每個程序執(zhí)行的起始點。一個C程序總是從main函數(shù)開始執(zhí)行,而不論main函數(shù)在程序中的位置??梢詫ain函數(shù)放在整個程序的最前面,也可以放在整個程序的最后,或者放在其他函數(shù)之間。1.3.2C程序結構(3)一個函數(shù)由函數(shù)首部和函數(shù)體兩部分組成。函數(shù)首部:一個函數(shù)的第一行。返回值類型函數(shù)名([函數(shù)參數(shù)類型1函數(shù)參數(shù)名1][,…,函數(shù)參數(shù)類型2,函數(shù)參數(shù)名2])intmax(intx,inty)函數(shù)體:函數(shù)首部下用一對{}括起來的部分。如果函數(shù)體內有多個{},最外層是函數(shù)體的范圍。函數(shù)體一般包括聲明、執(zhí)行兩部分。[聲明部分]:定義本函數(shù)所使用的變量。執(zhí)行部分]:由若干條語句組成命令序列(可以在其中調用其他函數(shù))。1.3.2C程序結構(4)C程序書寫格式自由。一行可以寫幾個語句,一個語句也可以寫在多行上。C程序沒有行號,也沒有FORTRAN、COBOL那樣嚴格規(guī)定書寫格式。每條語句的最后必須有一個分號“;”表示語句的結束。1.3.2C程序結構(5)可以使用/**/對C程序中的任何部分作注釋。如果一開始編程就對程序進行注釋,雖然剛開始麻煩一些,但日后可以節(jié)省大量的時間。一個實際的系統(tǒng)往往是多人合作開發(fā),程序文檔、注釋是其中重要的交流工具。1.3.2C程序結構(6)C語言本身不提供輸入/輸出語句,輸入/輸出的操作是通過調用庫函數(shù)(scanf,printf)完成。輸入/輸出操作涉及具體計算機硬件,把輸入/輸出操作放在函數(shù)中處理,可以簡化C語言和C的編譯系統(tǒng),便于C語言在各種計算機上實現(xiàn)。1.4源程序的編輯、編譯、連接與運行用高級語言編寫的程序稱為“源程序”,通常簡稱為程序。高級程序設計語言也必須被轉換為機器語言程序才能被機器理解和執(zhí)行,完成這種轉換任務的系統(tǒng)軟件稱為編譯程序。相應的轉換過程通常稱為編譯。C語言采用編譯方式將源程序轉換為二進制的目標代碼。1.編輯將源程序逐個字符輸入到計算機內存;修改源程序;將修改好的源程序保存在磁盤文件中。編輯的對象是源程序,它是以ASCII代碼的形式輸入和存儲的,不能被計算機執(zhí)行。
編寫好一個C程序到完成運行一般經(jīng)過以下幾個步驟:2.編譯編譯就是將已編輯好的源程序(已存儲在磁盤文件中)翻譯成二進制的目標代碼。編譯后得到的二進制代碼在UNIX下是后綴為.o的文件,在MS-DOS下是后綴為.obj的文件。經(jīng)編譯后得到的二進制代碼還不能直接執(zhí)行,因為第一個模塊往往是單獨編譯的,必須把經(jīng)過編譯的各個模塊的目標代碼與系統(tǒng)提供的標準模
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度全款購入進口跑車合同范本3篇
- 二零二五年度企業(yè)與個人投資回報對賭協(xié)議3篇
- 二零二五年度員工試用期工作內容調整及考核標準協(xié)議3篇
- 二零二五年度電商平臺商家會員返利合同3篇
- 2025年度新能源汽車產(chǎn)業(yè)鏈投資基金合作協(xié)議3篇
- 2025年度公司股東內部關于企業(yè)并購整合的專項協(xié)議3篇
- 2025年度綠色能源項目分攤協(xié)議3篇
- 二零二五年度新能源汽車充電樁建設投資入股合同3篇
- 2025通信銷售合同
- 2025年農(nóng)村土地永久轉讓與農(nóng)村電商合作框架合同3篇
- 全《12個維度細化部門管理》市場部部門職責
- 2022年廣東省普通高中學業(yè)水平第一次合格性考試歷史真題卷
- 高標準農(nóng)田施工組織設計(全)
- 迎接重大活動和檢查評比的保障措施
- 總包對分包的管理措施(六大方面)
- 項目式學習評價量表
- 鍋爐保溫施工方案
- 《四川省柑橘出口影響因素研究(論文)》10000字
- 行測答題卡模板
- GB/T 28920-2012教學實驗用危險固體、液體的使用與保管
- 多維閱讀第14級 Ollie and Ruby 奧利和魯比
評論
0/150
提交評論