




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第一章 語言概述1.1語言出現(xiàn)的歷聲背景1產(chǎn)生背景u 在 C 語言誕生以前, 系統(tǒng)軟件主要是用匯編語言編寫的。u 匯編語言程序的特點: 依賴于計算機硬件; 其可讀性和可移植性都很差;u 一般的高級語言又難以實現(xiàn)對計算機硬件的直接操作(這正是匯編語言的優(yōu)勢),u 人們盼望有一種兼有匯編語言和高級語言特性的新語言。2產(chǎn)生過程u 時間: 19721973u 地點: 美國貝爾實驗室u 目的: UNIX 操作系統(tǒng)u 來源: 早期的編程語言 BCPL發(fā)展演變而來u 設計人: Ken.Thompson 和 Dennis.M.Ritchie3C標準u 標準 C: K&R 合著The C Programming
2、 Language 1978年u (美國國家標準化協(xié)會) ANSI C: 1983年u 87 ANSI C: 1987年u 1990 年國際標準的 ISO C1.2 C語言的特點 一種語言之所以能存在和發(fā)展,并具有生命力,總是有其不同于(或優(yōu)于)其它語言的特點。C語言的主要特點如下。語言簡潔、緊湊,使用方便、靈活。 C語言一共只有32個關(guān)鍵字(見附錄II),9種控制語句,程序書寫形式自由,主要用小寫字母表示,壓縮了一切不必要的成分。運算符豐富 的運算符包含的范圍很廣泛,共有種運算符(見附錄III)。把括號、賦值、強制類型轉(zhuǎn)換等都作為運算符處理。從而使的運算類型極其豐富,表達式類型多樣化,靈活使
3、用各種運算符可以實現(xiàn)在其它高級語言中難以實現(xiàn)的運算。數(shù)據(jù)結(jié)構(gòu)豐富,具有現(xiàn)代化語言的各種數(shù)據(jù)結(jié)構(gòu) 的數(shù)據(jù)類型有:整型、實型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來實現(xiàn)各種復雜的數(shù)據(jù)結(jié)構(gòu)(如鏈表、樹、棧等)的運算。尤其是指針類型數(shù)據(jù),使用起來比Pascal更為靈活、多樣。具有結(jié)構(gòu)化的控制語句(如if.else語句、whi1e語句、dowhi1e語句、for語句)。 用函數(shù)作為程序模塊以實現(xiàn)程序的模塊化。是結(jié)構(gòu)化的理想語言,符合現(xiàn)代編程風格要求。語法限制不大嚴格,程序設計自由度大. 例如,對數(shù)組下標越界不作檢查,由程序編寫者自己保證程序的正確。對變量的類型使用比較靈活,例如,整
4、型量與字符型數(shù)據(jù)以及邏輯型數(shù)據(jù)可以通用,一般的高級語言語法檢查比較嚴,能檢查出幾乎所有的語法錯誤。而語言允許程序編寫者有較大的自由度,因此放寬了語法檢查。程序員應當仔細檢查程序,保證其正確,而不要過分依賴編譯程序去查錯?!跋拗啤迸c“靈活”是一對矛盾。限制嚴格,就失去靈活性;而強調(diào)靈活,就必然放松限制。一個不熟練的人員,編一個正確的程序可能會比編一個其它高級語言程序難一些。也就是說,對用語言的人,要求對程序設計更熟練一些。語言允許直接訪問物理地址 能進行位()操作,能實現(xiàn)匯編語言的大部分功能,可以直接對硬件進行操作,因此既具有高級語言的功能,又具有低級語言的許多功能,可用來寫系統(tǒng)軟件。語言的這種
5、雙重性,使它既是成功的系統(tǒng)描述語言,又是通用的程序設計語言。有人把稱為“高級語言中的低級語言”,也有人稱它為“中級語言”意為兼有高級和低級語言的特點。生成目標代碼質(zhì)量高,程序執(zhí)行效率高。 一般只比匯編程序生成的目標代碼效率低。用語言寫的程序可移植性好(與匯編語言比)。 基本上不作修改就能用于各種型號的計算機和各種操作系統(tǒng)。 上面我們只介紹了語言的最容易理解的一般特點,至于語言內(nèi)部的其它特點將結(jié)合以后各章的內(nèi)容作介紹。由于語言的這些優(yōu)點,使語言應用面很廣。許多大的軟件都用編寫,這主要是由于的可移植性好和硬件控制能力高,表達和運算能力強。許多以前只能用匯編語言處理的問題現(xiàn)在可以改用語言來處理了。
6、的以上特點,讀者現(xiàn)在也許還不能深刻理解,待學完以后再回顧一下,就會有比較深的體會。 總之,語言對程序員要求較高。程序員使用語言編寫程序會感到限制少、靈活性大,功能強,可以編寫出任何類型的程序?,F(xiàn)在,語言已不僅用來編寫系統(tǒng)軟件,也用來編寫應用軟件。學習和使用的人已越來越多。1.3 簡單的程序介紹 下面先介紹幾個簡單的程序,然后從中分析程序的特性。例1.1 /* Example 1.1 on page 4 */ main () printf (This is a C program n); 本程序的作用是輸出以下一行 This is a C program 其中main表示“主函數(shù)”,每一個程序都
7、必須有一個main函數(shù)。函數(shù)體由大括弧只有一個輸出語句,printf是語言中的輸出函數(shù)(詳見第三章);“n”是換行符。例1.2 /* Example 1.2 on page 4 */ main ()int a, b, sum; a=123;b=456; sum=a+b; printf(Sum of a plus b is %dn,sum);本程序的作用是求兩個整數(shù)和b之和sum * *表示注釋部分,為便于理解,用漢字表示注釋,當然也可以用英語或漢字拼音作注釋。注釋只是給人看的,對編譯和運行不起作用,注釋可以加在程序中任何位置。第二行是變量定義部分,說明a,b.sum是整型(int)變量。第三行
8、是兩個賦值語句,使和b的值分別為和。第四行使sum的值為a+b第五行中“%d”是輸入輸出“格式字符串”,用來指定輸入輸出時的數(shù)據(jù)類型和格式(詳見第三章),“%d”表“十進制整數(shù)類型”。在執(zhí)行輸出時,此位置上代以一個十進制整數(shù),因此輸出一行信息為: Sum of a plus b is 579例1.3/* Example 1.3 on page 4 */main() * 主函數(shù) *int a,b,c; *定義變量*printf(Input a,b:);scanf(%d,%d,&a,&b); *輸入變量和b的值*c=max(a,b); *調(diào)用max函數(shù),將得到的值賦給c *printf(Max o
9、f a and b is %dn,c); *輸出c的值*/int max(x,y) * 定義max函數(shù),函數(shù)值為整型,x,y為形式參數(shù) *int x,y; /* 對形參x, 作類型定義 *int z; /* max函數(shù)中用到的變量z,也要加以定義 *if(xy) z=x; else z=y;return (z); /* 將z的值返回,通過max帶回調(diào)用處 * 本程序包括兩個函數(shù):主函數(shù)和被調(diào)函數(shù)max ,max函數(shù)的作用是將x和y中較大者的值賦給變量z . return語句將z的值返回給主調(diào)函數(shù)main。返回值是通過函數(shù)名max帶回到main函數(shù)的調(diào)用處,main函數(shù)中的scanf是“輸入函數(shù)
10、”的名字(scanf,printf都是語言提供的標準輸入輸出函數(shù))。程序中scanf函數(shù)的作用是輸入和b的值。a和中的“”的含義是“取地址”,此scanf函數(shù)的作用是:將兩個數(shù)值分別輸入到變量a和b的地址所標志的單元中,也就是輸入給變量a和b。這種形式是與其它語言不同的,它相當于basic語言中的input a ,b“,”的含義與前相同,只是現(xiàn)在用于“輸入”。它指定輸入的兩個數(shù)據(jù)按十進制整數(shù)形式輸入。關(guān)于scanf函數(shù)佯見第三章。 main函數(shù)中第四行為調(diào)用max函數(shù),在調(diào)用時將實際參數(shù)和b的值分別傳送給max函數(shù)中的形式參數(shù)x和。經(jīng)過執(zhí)行max函數(shù)得到一個返回值(即max函數(shù)中變量z的值),
11、把這個值賦給變量c,然后輸出c的值。printf函數(shù)中雙引號內(nèi)的“max=%d”在輸出時,其中“%d”將由的值取代之,“max=”原樣輸出。程序運行情況如下: 8,5 (輸入和給和b) max=8 (輸出的值) 本例用到了函數(shù)調(diào)用、實參和形參等概念,只作了很簡單的解釋。讀者如對此不大理解,可以先不予以深究,在學到以后有關(guān)章節(jié)時問題自然迎刃而解。在此介紹此例子,無非是讓大家對C程序的組成和形式有個初步的了解。通過上例,可以看到: 程序是由函數(shù)構(gòu)成的。一個源程序至少包含一個函數(shù)(main函數(shù)),也可以包含 一個main和若干其他函數(shù)。C的函數(shù)相當于其它語言中的子程序。用函數(shù)來實現(xiàn)特定的功能??梢哉f
12、是函數(shù)式的語言。程序全部工作都是由函數(shù)來完成的。的函數(shù)庫十分豐富,標準提供一百多個庫函數(shù),Turbo和MS C4.0提供三百多個庫函數(shù)。 的這種特點使得容易實現(xiàn)程序的模塊化。 一個函數(shù)由兩部分組成: (1)函數(shù)的說明部分。包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函數(shù)參數(shù)(形參)名、形式參數(shù)類型。 例如例1.3中的max函數(shù)的說明部分為。 int max ( x,)函數(shù)類型 函數(shù)名 函數(shù)參數(shù) int ,y; 形參類型 形參 一個函數(shù)名后面必須跟一對圓括弧,函數(shù)參數(shù)可以沒有,如main( )。 (2)函數(shù)體,即函數(shù)說明部分下面的大括弧內(nèi)的部分。如果一個函數(shù)內(nèi)有多個大括弧,則最外層的一對 為函數(shù)體的范圍。
13、函數(shù)體一般包括: 變量定義。如例中main函數(shù)中的“int a,b,c”。 執(zhí)行部分。由若干個語句組成。 當然,在某些情況下也可以沒有變量定義部分(例如例)。甚至可以既無變量定義也無執(zhí)行部分。如: () 它是一個空函數(shù),什么也下干,但這是合法的。 一個程序總是從main函數(shù)開始執(zhí)行的,而不論main函數(shù)在整個程序中的位置如何(main函數(shù)可以放在程序最前頭,也可以放在程序最后,或在一些函數(shù)之前在另一些函數(shù)之后)。 程序書寫格式自由,一行內(nèi)可以寫幾個語句,一個語句可以分寫在多行上人程序沒有行號,也不象O或那樣嚴格規(guī)定書寫格式(語句必須從某一列開始書寫)。 每個語句和數(shù)據(jù)定義的最后必須有一個分號。
14、分號是語句的必要組成部分。例如: 十;分號不可少。即使是程序中最后一個語句也應包含分號(這是和語言不同的)。 語言本身沒有輸入輸出語句。輸入和輸出的操作是由庫函數(shù)scanf和printf等函數(shù)來完成C對輸入輸出實行函數(shù)化 可以用*對程序中的任何部分作注釋,一個好的,有使用價值的源程序都應當加上必要的注釋,以增加程序的可讀性。1.4 程序的上機步驟 在了解了上述語言的初步知識后,一定要上機運行一個程序,以增加對的認識。 在編好一個源程序后,如何上機運行呢?下面就Turbo C的環(huán)境下運行程序作一簡單介紹。 用 運行程序的步驟 先將 裝人磁盤tc目錄。 調(diào)用 程序,進入MS-dos;只需打入:cdtc;tc 屏幕頂部出現(xiàn)一排
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新疆科技學院《外國史學名著選讀》2023-2024學年第二學期期末試卷
- 淮北理工學院《社會學原理類》2023-2024學年第二學期期末試卷
- 重慶智能工程職業(yè)學院《生物統(tǒng)計與應用》2023-2024學年第二學期期末試卷
- 赤峰學院《教育史專題研究》2023-2024學年第二學期期末試卷
- 梧州學院《現(xiàn)代舞創(chuàng)編》2023-2024學年第二學期期末試卷
- 東北林業(yè)大學《生物科學專業(yè)英語》2023-2024學年第二學期期末試卷
- 山西航空職業(yè)技術(shù)學院《攝影報道》2023-2024學年第二學期期末試卷
- 合肥共達職業(yè)技術(shù)學院《現(xiàn)代電子測量技術(shù)》2023-2024學年第二學期期末試卷
- 內(nèi)蒙古工業(yè)大學《概率論與數(shù)據(jù)統(tǒng)計》2023-2024學年第二學期期末試卷
- 上海中華職業(yè)技術(shù)學院《開采損害與環(huán)境保護》2023-2024學年第二學期期末試卷
- 地下室車庫綜合管線施工布置
- 月度及年度績效考核管理辦法
- 采購訂單模板
- 畢業(yè)設計鋼筋彎曲機的結(jié)構(gòu)設計
- 工程結(jié)構(gòu)質(zhì)量特色介紹
- 清華大學MBA課程——運籌學
- 濕法冶金浸出凈化和沉積PPT課件
- 生產(chǎn)現(xiàn)場作業(yè)十不干PPT課件
- 雨污水管網(wǎng)勞務施工分包合同
- 通信桿路工程施工
- 初中物理光學經(jīng)典題(共23頁)
評論
0/150
提交評論