版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一章 語(yǔ)言概述1.1語(yǔ)言出現(xiàn)的歷聲背景1產(chǎn)生背景u 在 C 語(yǔ)言誕生以前, 系統(tǒng)軟件主要是用匯編語(yǔ)言編寫的。u 匯編語(yǔ)言程序的特點(diǎn): 依賴于計(jì)算機(jī)硬件; 其可讀性和可移植性都很差;u 一般的高級(jí)語(yǔ)言又難以實(shí)現(xiàn)對(duì)計(jì)算機(jī)硬件的直接操作(這正是匯編語(yǔ)言的優(yōu)勢(shì)),u 人們盼望有一種兼有匯編語(yǔ)言和高級(jí)語(yǔ)言特性的新語(yǔ)言。2產(chǎn)生過(guò)程u 時(shí)間: 19721973u 地點(diǎn): 美國(guó)貝爾實(shí)驗(yàn)室u 目的: UNIX 操作系統(tǒng)u 來(lái)源: 早期的編程語(yǔ)言 BCPL發(fā)展演變而來(lái)u 設(shè)計(jì)人: Ken.Thompson 和 Dennis.M.Ritchie3C標(biāo)準(zhǔn)u 標(biāo)準(zhǔn) C: K&R 合著The C Programming
2、 Language 1978年u (美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)) ANSI C: 1983年u 87 ANSI C: 1987年u 1990 年國(guó)際標(biāo)準(zhǔn)的 ISO C1.2 C語(yǔ)言的特點(diǎn) 一種語(yǔ)言之所以能存在和發(fā)展,并具有生命力,總是有其不同于(或優(yōu)于)其它語(yǔ)言的特點(diǎn)。C語(yǔ)言的主要特點(diǎn)如下。語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活。 C語(yǔ)言一共只有32個(gè)關(guān)鍵字(見(jiàn)附錄II),9種控制語(yǔ)句,程序書寫形式自由,主要用小寫字母表示,壓縮了一切不必要的成分。運(yùn)算符豐富 的運(yùn)算符包含的范圍很廣泛,共有種運(yùn)算符(見(jiàn)附錄III)。把括號(hào)、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理。從而使的運(yùn)算類型極其豐富,表達(dá)式類型多樣化,靈活使
3、用各種運(yùn)算符可以實(shí)現(xiàn)在其它高級(jí)語(yǔ)言中難以實(shí)現(xiàn)的運(yùn)算。數(shù)據(jù)結(jié)構(gòu)豐富,具有現(xiàn)代化語(yǔ)言的各種數(shù)據(jù)結(jié)構(gòu) 的數(shù)據(jù)類型有:整型、實(shí)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來(lái)實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(如鏈表、樹(shù)、棧等)的運(yùn)算。尤其是指針類型數(shù)據(jù),使用起來(lái)比Pascal更為靈活、多樣。具有結(jié)構(gòu)化的控制語(yǔ)句(如if.else語(yǔ)句、whi1e語(yǔ)句、dowhi1e語(yǔ)句、for語(yǔ)句)。 用函數(shù)作為程序模塊以實(shí)現(xiàn)程序的模塊化。是結(jié)構(gòu)化的理想語(yǔ)言,符合現(xiàn)代編程風(fēng)格要求。語(yǔ)法限制不大嚴(yán)格,程序設(shè)計(jì)自由度大. 例如,對(duì)數(shù)組下標(biāo)越界不作檢查,由程序編寫者自己保證程序的正確。對(duì)變量的類型使用比較靈活,例如,整
4、型量與字符型數(shù)據(jù)以及邏輯型數(shù)據(jù)可以通用,一般的高級(jí)語(yǔ)言語(yǔ)法檢查比較嚴(yán),能檢查出幾乎所有的語(yǔ)法錯(cuò)誤。而語(yǔ)言允許程序編寫者有較大的自由度,因此放寬了語(yǔ)法檢查。程序員應(yīng)當(dāng)仔細(xì)檢查程序,保證其正確,而不要過(guò)分依賴編譯程序去查錯(cuò)?!跋拗啤迸c“靈活”是一對(duì)矛盾。限制嚴(yán)格,就失去靈活性;而強(qiáng)調(diào)靈活,就必然放松限制。一個(gè)不熟練的人員,編一個(gè)正確的程序可能會(huì)比編一個(gè)其它高級(jí)語(yǔ)言程序難一些。也就是說(shuō),對(duì)用語(yǔ)言的人,要求對(duì)程序設(shè)計(jì)更熟練一些。語(yǔ)言允許直接訪問(wèn)物理地址 能進(jìn)行位()操作,能實(shí)現(xiàn)匯編語(yǔ)言的大部分功能,可以直接對(duì)硬件進(jìn)行操作,因此既具有高級(jí)語(yǔ)言的功能,又具有低級(jí)語(yǔ)言的許多功能,可用來(lái)寫系統(tǒng)軟件。語(yǔ)言的這種
5、雙重性,使它既是成功的系統(tǒng)描述語(yǔ)言,又是通用的程序設(shè)計(jì)語(yǔ)言。有人把稱為“高級(jí)語(yǔ)言中的低級(jí)語(yǔ)言”,也有人稱它為“中級(jí)語(yǔ)言”意為兼有高級(jí)和低級(jí)語(yǔ)言的特點(diǎn)。生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。 一般只比匯編程序生成的目標(biāo)代碼效率低。用語(yǔ)言寫的程序可移植性好(與匯編語(yǔ)言比)。 基本上不作修改就能用于各種型號(hào)的計(jì)算機(jī)和各種操作系統(tǒng)。 上面我們只介紹了語(yǔ)言的最容易理解的一般特點(diǎn),至于語(yǔ)言內(nèi)部的其它特點(diǎn)將結(jié)合以后各章的內(nèi)容作介紹。由于語(yǔ)言的這些優(yōu)點(diǎn),使語(yǔ)言應(yīng)用面很廣。許多大的軟件都用編寫,這主要是由于的可移植性好和硬件控制能力高,表達(dá)和運(yùn)算能力強(qiáng)。許多以前只能用匯編語(yǔ)言處理的問(wèn)題現(xiàn)在可以改用語(yǔ)言來(lái)處理了。
6、的以上特點(diǎn),讀者現(xiàn)在也許還不能深刻理解,待學(xué)完以后再回顧一下,就會(huì)有比較深的體會(huì)。 總之,語(yǔ)言對(duì)程序員要求較高。程序員使用語(yǔ)言編寫程序會(huì)感到限制少、靈活性大,功能強(qiáng),可以編寫出任何類型的程序?,F(xiàn)在,語(yǔ)言已不僅用來(lái)編寫系統(tǒng)軟件,也用來(lái)編寫應(yīng)用軟件。學(xué)習(xí)和使用的人已越來(lái)越多。1.3 簡(jiǎn)單的程序介紹 下面先介紹幾個(gè)簡(jiǎn)單的程序,然后從中分析程序的特性。例1.1 /* Example 1.1 on page 4 */ main () printf (This is a C program n); 本程序的作用是輸出以下一行 This is a C program 其中main表示“主函數(shù)”,每一個(gè)程序都
7、必須有一個(gè)main函數(shù)。函數(shù)體由大括弧只有一個(gè)輸出語(yǔ)句,printf是語(yǔ)言中的輸出函數(shù)(詳見(jiàn)第三章);“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);本程序的作用是求兩個(gè)整數(shù)和b之和sum * *表示注釋部分,為便于理解,用漢字表示注釋,當(dāng)然也可以用英語(yǔ)或漢字拼音作注釋。注釋只是給人看的,對(duì)編譯和運(yùn)行不起作用,注釋可以加在程序中任何位置。第二行是變量定義部分,說(shuō)明a,b.sum是整型(int)變量。第三行
8、是兩個(gè)賦值語(yǔ)句,使和b的值分別為和。第四行使sum的值為a+b第五行中“%d”是輸入輸出“格式字符串”,用來(lái)指定輸入輸出時(shí)的數(shù)據(jù)類型和格式(詳見(jiàn)第三章),“%d”表“十進(jìn)制整數(shù)類型”。在執(zhí)行輸出時(shí),此位置上代以一個(gè)十進(jìn)制整數(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; /* 對(duì)形參x, 作類型定義 *int z; /* max函數(shù)中用到的變量z,也要加以定義 *if(xy) z=x; else z=y;return (z); /* 將z的值返回,通過(guò)max帶回調(diào)用處 * 本程序包括兩個(gè)函數(shù):主函數(shù)和被調(diào)函數(shù)max ,max函數(shù)的作用是將x和y中較大者的值賦給變量z . return語(yǔ)句將z的值返回給主調(diào)函數(shù)main。返回值是通過(guò)函數(shù)名max帶回到main函數(shù)的調(diào)用處,main函數(shù)中的scanf是“輸入函數(shù)
10、”的名字(scanf,printf都是語(yǔ)言提供的標(biāo)準(zhǔn)輸入輸出函數(shù))。程序中scanf函數(shù)的作用是輸入和b的值。a和中的“”的含義是“取地址”,此scanf函數(shù)的作用是:將兩個(gè)數(shù)值分別輸入到變量a和b的地址所標(biāo)志的單元中,也就是輸入給變量a和b。這種形式是與其它語(yǔ)言不同的,它相當(dāng)于basic語(yǔ)言中的input a ,b“,”的含義與前相同,只是現(xiàn)在用于“輸入”。它指定輸入的兩個(gè)數(shù)據(jù)按十進(jìn)制整數(shù)形式輸入。關(guān)于scanf函數(shù)佯見(jiàn)第三章。 main函數(shù)中第四行為調(diào)用max函數(shù),在調(diào)用時(shí)將實(shí)際參數(shù)和b的值分別傳送給max函數(shù)中的形式參數(shù)x和。經(jīng)過(guò)執(zhí)行max函數(shù)得到一個(gè)返回值(即max函數(shù)中變量z的值),
11、把這個(gè)值賦給變量c,然后輸出c的值。printf函數(shù)中雙引號(hào)內(nèi)的“max=%d”在輸出時(shí),其中“%d”將由的值取代之,“max=”原樣輸出。程序運(yùn)行情況如下: 8,5 (輸入和給和b) max=8 (輸出的值) 本例用到了函數(shù)調(diào)用、實(shí)參和形參等概念,只作了很簡(jiǎn)單的解釋。讀者如對(duì)此不大理解,可以先不予以深究,在學(xué)到以后有關(guān)章節(jié)時(shí)問(wèn)題自然迎刃而解。在此介紹此例子,無(wú)非是讓大家對(duì)C程序的組成和形式有個(gè)初步的了解。通過(guò)上例,可以看到: 程序是由函數(shù)構(gòu)成的。一個(gè)源程序至少包含一個(gè)函數(shù)(main函數(shù)),也可以包含 一個(gè)main和若干其他函數(shù)。C的函數(shù)相當(dāng)于其它語(yǔ)言中的子程序。用函數(shù)來(lái)實(shí)現(xiàn)特定的功能??梢哉f(shuō)
12、是函數(shù)式的語(yǔ)言。程序全部工作都是由函數(shù)來(lái)完成的。的函數(shù)庫(kù)十分豐富,標(biāo)準(zhǔn)提供一百多個(gè)庫(kù)函數(shù),Turbo和MS C4.0提供三百多個(gè)庫(kù)函數(shù)。 的這種特點(diǎn)使得容易實(shí)現(xiàn)程序的模塊化。 一個(gè)函數(shù)由兩部分組成: (1)函數(shù)的說(shuō)明部分。包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函數(shù)參數(shù)(形參)名、形式參數(shù)類型。 例如例1.3中的max函數(shù)的說(shuō)明部分為。 int max ( x,)函數(shù)類型 函數(shù)名 函數(shù)參數(shù) int ,y; 形參類型 形參 一個(gè)函數(shù)名后面必須跟一對(duì)圓括弧,函數(shù)參數(shù)可以沒(méi)有,如main( )。 (2)函數(shù)體,即函數(shù)說(shuō)明部分下面的大括弧內(nèi)的部分。如果一個(gè)函數(shù)內(nèi)有多個(gè)大括弧,則最外層的一對(duì) 為函數(shù)體的范圍。
13、函數(shù)體一般包括: 變量定義。如例中main函數(shù)中的“int a,b,c”。 執(zhí)行部分。由若干個(gè)語(yǔ)句組成。 當(dāng)然,在某些情況下也可以沒(méi)有變量定義部分(例如例)。甚至可以既無(wú)變量定義也無(wú)執(zhí)行部分。如: () 它是一個(gè)空函數(shù),什么也下干,但這是合法的。 一個(gè)程序總是從main函數(shù)開(kāi)始執(zhí)行的,而不論main函數(shù)在整個(gè)程序中的位置如何(main函數(shù)可以放在程序最前頭,也可以放在程序最后,或在一些函數(shù)之前在另一些函數(shù)之后)。 程序書寫格式自由,一行內(nèi)可以寫幾個(gè)語(yǔ)句,一個(gè)語(yǔ)句可以分寫在多行上人程序沒(méi)有行號(hào),也不象O或那樣嚴(yán)格規(guī)定書寫格式(語(yǔ)句必須從某一列開(kāi)始書寫)。 每個(gè)語(yǔ)句和數(shù)據(jù)定義的最后必須有一個(gè)分號(hào)。
14、分號(hào)是語(yǔ)句的必要組成部分。例如: 十;分號(hào)不可少。即使是程序中最后一個(gè)語(yǔ)句也應(yīng)包含分號(hào)(這是和語(yǔ)言不同的)。 語(yǔ)言本身沒(méi)有輸入輸出語(yǔ)句。輸入和輸出的操作是由庫(kù)函數(shù)scanf和printf等函數(shù)來(lái)完成C對(duì)輸入輸出實(shí)行函數(shù)化 可以用*對(duì)程序中的任何部分作注釋,一個(gè)好的,有使用價(jià)值的源程序都應(yīng)當(dāng)加上必要的注釋,以增加程序的可讀性。1.4 程序的上機(jī)步驟 在了解了上述語(yǔ)言的初步知識(shí)后,一定要上機(jī)運(yùn)行一個(gè)程序,以增加對(duì)的認(rèn)識(shí)。 在編好一個(gè)源程序后,如何上機(jī)運(yùn)行呢?下面就Turbo C的環(huán)境下運(yùn)行程序作一簡(jiǎn)單介紹。 用 運(yùn)行程序的步驟 先將 裝人磁盤tc目錄。 調(diào)用 程序,進(jìn)入MS-dos;只需打入:cdtc;tc 屏幕頂部出現(xiàn)一排
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度精密注塑設(shè)備轉(zhuǎn)讓合同模板范本4篇
- 2025年環(huán)保材料產(chǎn)品研發(fā)設(shè)計(jì)委托合同模板4篇
- 2025年度農(nóng)機(jī)作業(yè)租賃遠(yuǎn)程監(jiān)控服務(wù)合同4篇
- 二零二五年度大型體育場(chǎng)館運(yùn)營(yíng)與管理分包合同范本4篇
- 買賣合同書范文(2024版)
- 個(gè)人固定資產(chǎn)轉(zhuǎn)讓協(xié)議
- 2024項(xiàng)目部安全培訓(xùn)考試題含完整答案【各地真題】
- 2024年企業(yè)主要負(fù)責(zé)人安全培訓(xùn)考試題附答案
- 2022-2027年中國(guó)嬰幼兒營(yíng)養(yǎng)品行業(yè)市場(chǎng)調(diào)研及投資戰(zhàn)略規(guī)劃建議報(bào)告
- 2023-2024年項(xiàng)目部安全培訓(xùn)考試題答案達(dá)標(biāo)題
- 2024年資格考試-對(duì)外漢語(yǔ)教師資格證筆試參考題庫(kù)含答案
- 軟件研發(fā)安全管理制度
- 三位數(shù)除以兩位數(shù)-豎式運(yùn)算300題
- 寺院消防安全培訓(xùn)課件
- 比摩阻-管徑-流量計(jì)算公式
- GB/T 42430-2023血液、尿液中乙醇、甲醇、正丙醇、丙酮、異丙醇和正丁醇檢驗(yàn)
- 五年級(jí)數(shù)學(xué)應(yīng)用題100道
- 西方經(jīng)濟(jì)學(xué)(第二版)完整整套課件(馬工程)
- 高三開(kāi)學(xué)收心班會(huì)課件
- GB/T 33688-2017選煤磁選設(shè)備工藝效果評(píng)定方法
- 科技計(jì)劃項(xiàng)目申報(bào)培訓(xùn)
評(píng)論
0/150
提交評(píng)論