




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
普通高等教育“十二五”規劃教材C語言程序設計任正云李素若賴玲主編中國水利水電出版社第1章C語言程序設計基礎程序設計及程序設計語言C語言的特點C程序結構源程序的編輯、編譯、連接與運行1.1程序設計及程序設計語言程序是能被機器識別并能執行的一系列的指令代碼,這些指令代碼是用程序設計語言來描述的。1.1.1程序設計語言的發展低級語言高級語言低級語言機器語言用二進制代碼表示機器指令和數據。某CPU指令系統中的兩條指令:10000000(進行一次加法運算)10010000(進行一次減法運算)匯編語言20世紀50年代中期人們開始用一些“助記符”來代替0、1碼進行編程。A+B=>A或ADDA,BA-B=>A或SUBA,B這種用助記符號描述的指令系統稱為符號語言或匯編語言。高級語言高級語言是相對于低級語言而言的,它以人類易于接受的文字來表達解決問題的全過程。高級語言分為面向過程的程序設計語言和面向對象的程序設計語言。如C語言和Pascal語言、FoxBase、VisualC++、VisualBasic等。高級語言面向過程的程序設計語言把解題過程看作數據被加工的過程。基于這種方法的程序設計語言稱為面向過程的程序設計語言。面向對象的程序設計語言面向對象的程序設計是一種結構模擬方法,它把現實世界看成是由許多對象(object)所組成,對象之間通過相互發送和接收消息進行聯系。消息的發送對象本身運動,形成對象狀態的變化。從程序結構的角度,每個對象都是一個數據和方法的封裝體——抽象數據類型。1.1.2C語言的發展過程C語言的發展過程可粗略地分為三個階段:1970年至1973年為誕生階段之后至1988年為發展階段1988年以后為成熟階段1.C語言的誕生C語言是為寫UNIX操作系統而誕生的。1970年美國AT&T公司貝爾實驗室KenThompson為實現UNIX操作系統而提出一種僅供自己使用的工作語言,由于該工作語言是基于1967年由英國劍橋大學的MartinRichards提出的BCPL語言設計的,因而被作者命名為B語言,B取自BCPL的第一個字母。B語言被用于在PDP-7計算機上實現了第一個UNIX操作系統。1972年貝爾實驗室的DennisM.Ritchie又在B語言基礎上系統地引入了各種數據類型,從而使B語言的數據結構類型化。1973年K.Tompson和D.M.Ritchie用C語言重寫了UNIX操作系統,推出UNIXv5。1975年又推出UNIXv6。此時的C語言是附屬于UNIX操作系統的。2.C語言的發展1977年C語言的作者發表了不依賴于具體機器系統的C語言編譯文本《可移植C語言編譯程序》,從而推動了UNIX操作系統在各種機器上的實現以及UNIX操作系統的不斷發展。1978年以后相繼推出了UNIXv7,UNIXsystemV。使人們普遍注意到C語言的突出優點,從而又促進了C語言的迅速推廣。1978年BrianW.Kernighan和D.M.Ritchie以UNIXv7中編譯程序為基礎寫了影響深遠的名著TheCProgrammingLanguage,這本書上介紹的C語言是以后各種C語言版本的基礎,被稱為傳統C語言。1978年以后,C語言先后移植到各種大型機、中型機、小型機及微型機上。目前,C語言成為世界上使用最廣泛的高級程序設計語言,且不依賴于UNIX操作系統而獨立存在。3.C語言的成熟1978年以后,C語言的不斷發展產生了各種C語言版本,不同的C語言版本對傳統C語言都有所擴充和發展。1983年,美國國家標準協會(ANSI)綜合了各版本對C的擴充和發展,制定了新標準,稱為ANSIC。Kernighan和D.M.Ritchie按ANSIC標準重寫了他們的經典著作,于1990年正式發表了國際標準化組織(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為整型一維數組intf();FUNCTIONf():INTEGER定義f為返回整型值的函數int*p;VARp:
INTEGER定義p為指向整型變量的指針變量i+=2;i:=i+2賦值語句,使i+2=>ii++,++ii:=i+1i自增值1,i+1=>i1.2C語言的特點運算符豐富。共有34種運算符。數據結構豐富,具有現代化語言的各種數據結構。C語言的數據類型有整型、實型、字符型、數組類型、指針類型、結構體類型、共用體類型等。能實現各種復雜的數據結構(如鏈表、樹、棧等)的運算,尤其是指針類型數據。具有結構化的控制語句if...else語句while語句do...while語句switch語句for語句1.2C語言的特點語法限制不太嚴格,程序設計自由度大。對數組下標越界不做檢查,由程序編寫者自己保證程序的正確。整型數據與字符型數據可以通用。
C語言能進行位(bit)操作,能實現匯編語言的大部分功能,可以直接對硬件進行操作。C語言既具有高級語言的特點,又具有低級語言的許多功能,可用來編寫系統軟件。生成目標代碼質量高,程序執行效率高。一般只比匯編程序生成的目標代碼效率低10%~20%。程序可移植性好(與匯編語言比)。基本上不做修改就能用于各種型號的計算機和各種操作系統。1.3.1簡單的C程序介紹main() { printf("ThisisaCprogram.\n"); }輸出結果是:ThisisaCprogram.【例1.1】簡單的C程序介紹【例1.2】
運行結果為:sum=579
計算兩數之和并輸出結果。main(){inta,b,sum; a=123;b=456;sum=a+b; printf("sum=%d\n",sum); }簡單的C程序介紹
【例1.3】運行結果為:sum=579
輸入兩個整數,計算兩者較大的數,并輸出。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程序由函數構成(函數是C程序的基本單位)
一個C源程序至少包含一個main函數,也可以包含一個main函數和若干個其他函數。函數是C程序的基本單位。被調用的函數可以是系統提供的庫函數,也可以是用戶根據需要自己編寫設計的函數。C函數庫非常豐富,ANSIC提供100多個庫函數,TurboC提供300多個庫函數。1.3.2C程序結構(2)main函數(主函數)是每個程序執行的起始點。一個C程序總是從main函數開始執行,而不論main函數在程序中的位置。可以將main函數放在整個程序的最前面,也可以放在整個程序的最后,或者放在其他函數之間。1.3.2C程序結構(3)一個函數由函數首部和函數體兩部分組成。函數首部:一個函數的第一行。返回值類型函數名([函數參數類型1函數參數名1][,…,函數參數類型2,函數參數名2])intmax(intx,inty)函數體:函數首部下用一對{}括起來的部分。如果函數體內有多個{},最外層是函數體的范圍。函數體一般包括聲明、執行兩部分。[聲明部分]:定義本函數所使用的變量。執行部分]:由若干條語句組成命令序列(可以在其中調用其他函數)。1.3.2C程序結構(4)C程序書寫格式自由。一行可以寫幾個語句,一個語句也可以寫在多行上。C程序沒有行號,也沒有FORTRAN、COBOL那樣嚴格規定書寫格式。每條語句的最后必須有一個分號“;”表示語句的結束。1.3.2C程序結構(5)可以使用/**/對C程序中的任何部分作注釋。如果一開始編程就對程序進行注釋,雖然剛開始麻煩一些,但日后可以節省大量的時間。一個實際的系統往往是多人合作開發,程序文檔、注釋是其中重要的交流工具。1.3.2C程序結構(6)C語言本身不提供輸入/輸出語句,輸入/輸出的操作是通過調用庫函數(scanf,printf)完成。輸入/輸出操作涉及具體計算機硬件,把輸入/輸出操作放在函數中處理,可以簡化C語言和C的編譯系統,便于C語言在各種計算機上實現。1.4源程序的編輯、編譯、連接與運行用高級語言編寫的程序稱為“源程序”,通常簡稱為程序。高級程序設計語言也必須被轉換為機器語言程序才能被機器理解和執行,完成這種轉換任務的系統軟件稱為編譯程序。相應的轉換過程通常稱為編譯。C語言采用編譯方式將源程序轉換為二進制的目標代碼。1.編輯將源程序逐個字符輸入到計算機內存;修改源程序;將修改好的源程序保存在磁盤文件中。編輯的對象是源程序,它是以ASCII代碼的形式輸入和存儲的,不能被計算機執行。
編寫好一個C程序到完成運行一般經過以下幾個步驟:2.編譯編譯就是將已編輯好的源程序(已存儲在磁盤文件中)翻譯成二進制的目標代碼。編譯后得到的二進制代碼在UNIX下是后綴為.o的文件,在MS-DOS下是后綴為.obj的文件。經編譯后得到的二進制代碼還不能直接執行,因為第一個模塊往往是單獨編譯的,必須把經過編譯的各個模塊的目標代碼與系統提供的標準模
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 酶標儀使用方法
- 幼兒園班主任發言稿模版
- 新質生產力講座大學
- 局限性胸膜間皮瘤的臨床護理
- 江西省九江市九江有色金屬冶煉廠職工子弟學校2025屆七年級數學第二學期期末復習檢測試題含解析
- 先天性馬蹄內翻足健康宣講課件
- 手部先天性畸形的臨床護理
- 山東省平原縣2025屆數學七下期末復習檢測模擬試題含解析
- 潰瘍基因轉錄分析
- 開展2023愚人節創意活動方案大全
- 國企煤礦面試題庫及答案
- 2025年企業合規管理工作計劃范文
- 施工安全常識試題及答案
- 2025屆湖北省T8聯盟壓軸卷1英語試題
- 《圖像處理技術》課件
- 泳池負責人試題及答案
- 關于電子旅游合同范例
- 中國經導管左心耳封堵術臨床路徑專家共識(2025版)解讀
- 煤礦數字化智慧礦山整體解決方案(技術方案)
- 理化外包合同協議
- 水務集團筆試題目及答案
評論
0/150
提交評論