




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、.C (第三版)譚浩強(qiáng) 著.目 錄 第1章C語言概述 第2章程序的靈魂算法 第3章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式 第4章最簡單的C程序設(shè)計(jì)順序程序設(shè)計(jì) 第5章選擇結(jié)構(gòu)程序設(shè)計(jì) 第6章循環(huán)控制. 第7章數(shù)組 第8章函數(shù) 第9章預(yù)處理命令 第10章指針 第11章結(jié)構(gòu)體與共用體 第12章位運(yùn)算 第13章文件 第14章常見錯誤和程序調(diào)試.第1章 C語言概述 1.1 C語言出現(xiàn)的歷史背景 1.2 C語言的特點(diǎn) 1.3 簡單的C程序介紹 1.4 運(yùn)行C程序的步驟與方法.1.1 C語言出現(xiàn)的歷史背景 在C語言誕生以前,系統(tǒng)軟件主要是用匯編語言編寫的。由于匯編語言程序依賴于計(jì)算機(jī)硬件,其可讀性和可移植性都很差;一般
2、的高級語言又難以實(shí)現(xiàn)對計(jì)算機(jī)硬件的直接操作,于是人們希望有一種兼有匯編語言和一般高級語言特性的新語言。C語言在這種情況下應(yīng)運(yùn)而生。 C語言是貝爾實(shí)驗(yàn)室于70年代初研制出來的,后來又被多次改進(jìn),并出現(xiàn)了多種版本。80年代初,美國國家標(biāo)準(zhǔn)化協(xié)會(ANSI),根據(jù)C語言問世以來各種版本對C語言的發(fā)展和擴(kuò)充,制定了ANSI C標(biāo)準(zhǔn)。目前流行的C語言編譯系統(tǒng)大多是以ANSI C為基礎(chǔ)進(jìn)行開發(fā)的。. C語言是國際上廣泛流行的計(jì)算機(jī)高級語言。它適合作為系統(tǒng)描述語言,既可以用來編寫系統(tǒng)軟件,也可以來編寫應(yīng)用軟件。 C語言的前身是B語言1960 ALGOL60 離硬件遠(yuǎn),不宜編寫系統(tǒng)程序1963 CPL 離硬件
3、近,但規(guī)模較大,難以實(shí)現(xiàn)1967 BCPL 對CPL做了簡化1970 貝爾實(shí)驗(yàn)室以BCPL語言為基礎(chǔ),進(jìn)一步簡化,設(shè)計(jì) 出了很簡單的而且很接近硬件的B語言,并用B語言編寫了一個UNIX操作系統(tǒng),在PDPT上實(shí)現(xiàn),此時的B語言過于簡單,功能有限19721973 年間,貝爾實(shí)驗(yàn)室的D.M.Ritchie在B語言的基礎(chǔ)上設(shè)計(jì)出了C語言(BCPL) . C語言既保持了BCPL和B語言的優(yōu)點(diǎn)(精煉,接近硬件)又克服了它們的缺電(過于簡單,數(shù)據(jù)無類型等)。 最近的C語言只是為描述和實(shí)現(xiàn)UNIX操作系統(tǒng)提供一種工作語言而設(shè)計(jì)的,UNIX原用匯編寫的,后90%用C編寫。 后來,C語言多次作了改進(jìn),但主要還是在
4、貝爾實(shí)驗(yàn)室內(nèi)部使用。直到1975年UNIX第6版發(fā)布后,C語言的突出優(yōu)點(diǎn)才引起人們的普遍注意。 1997年出現(xiàn)了不依賴于具體機(jī)器的C語言便以文本可移植C語言編譯程序,使C語言移植到其他機(jī)器時所需做的工作大大簡化了,這也推動了UNIX操作系統(tǒng)迅速的在各種機(jī)器上實(shí)現(xiàn)。 隨著UNIX的日益廣泛使用,C語言也迅速得到推廣。C語言和UNIX可以說是一對孿生兄弟,在發(fā)展過程中相輔相成。 . 1978年以后,C語言先后移植到大、中、小型計(jì)算機(jī)上,已獨(dú)立于UNIX和PDP了。C語言便很快風(fēng)靡全世界,成為世界上應(yīng)用最廣泛的幾種計(jì)算機(jī)語言之一。 1983年,美國國家標(biāo)準(zhǔn)化協(xié)會(ANSI)根據(jù)C語言問世以來各種版本
5、對C語言的發(fā)展和補(bǔ)充,制定了新的標(biāo)準(zhǔn),成為ANSI C。ANSI C比后來的標(biāo)準(zhǔn)C有了很大的發(fā)展。 1987年,ANSI又公布了新標(biāo)準(zhǔn)- 87 ANSI C 1990年,國際標(biāo)準(zhǔn)組織ISO接受87 ANSIC為ISO的標(biāo)準(zhǔn)。 1994年,ISO修訂了C語言標(biāo)準(zhǔn)。 目前流行的C語言編譯系統(tǒng)大多是以ANSI C為基礎(chǔ)進(jìn)行開發(fā)的,但不同版本的C編譯系統(tǒng)所實(shí)現(xiàn)的語言功能及語法規(guī)則又略有差別,本書基本上已ANSI C為基礎(chǔ)。 .1.2 C語言的特點(diǎn) 一種語言之所以存在和發(fā)展, 并具有較強(qiáng)的生命力,總之有起不同于(或優(yōu)于)其他語言的特點(diǎn). C語言的主要特點(diǎn)如下:語言簡潔、緊湊,使用方便、靈活。C語言一共只
6、有32個關(guān)鍵字,9種控制語句,程序書寫形式自由,主要用小寫字母表示,壓縮了一切不必要的成分。比其他許多高級語言簡潔,源程序短,因此輸入工程時工作量少. 運(yùn)算符豐富。C的運(yùn)算符包含的范圍很廣泛,共有34種運(yùn)算符。C把括號、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理,從而使C的運(yùn)算類型極其豐富,表達(dá)式類型多樣化。靈活使用各種運(yùn)算符可以實(shí)現(xiàn)在其他高級語言中難以實(shí)現(xiàn)的運(yùn)算. 數(shù)據(jù)結(jié)構(gòu)豐富,具有現(xiàn)代化語言的各種數(shù)據(jù)結(jié)構(gòu)。C的數(shù)據(jù)類型有整型、實(shí)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(如鏈表、樹、棧等)的運(yùn)算。尤其是指針,只C存在于C語言和Pascal語言中。.具有
7、結(jié)構(gòu)化的控制語句(如ifelse語句、while語句、dowhile語句、switch語句、for語句)。用函數(shù)作為程序的模塊單位,便于實(shí)現(xiàn)程序的模塊化。C是良好的結(jié)構(gòu)化語言, 符合現(xiàn)代編程風(fēng)格的要求。生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。C語言一般只比匯編程序生成的目標(biāo)代碼效率低10%-20%。.語法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。一般的高級語言語言語法檢查比較嚴(yán)格,能檢查出幾乎所有的語法錯誤,而C語言允許程序員有較大的自由度,因此放寬了語法檢查。程序員應(yīng)當(dāng)仔細(xì)檢查程序,保證其正確,而不要過分依賴C語言編譯程序去查錯。 “限制”與“靈活”是一對矛盾。一個不熟悉的人員,編一個正確的C語言程序可能
8、比編一個其他高級語言程序難一些。也就是對C語言的人,要求對程序設(shè)計(jì)更熟練一些。例如對數(shù)組下標(biāo)越界不做檢查,由程序編寫者自己保證程序的正確。對變量的類型使用比較靈活,例如整型數(shù)據(jù)與字符型數(shù)據(jù)可以通用。. C語言允許直接訪問物理地址,能進(jìn)行位(bit)操作,能實(shí)現(xiàn)匯編語言的大部分功能,可以直接對硬件進(jìn)行操作。因此C語言既有高級語言的功能,又具有低級語言的許多功能,可用來編寫系統(tǒng)軟件。C語言的這種雙重性,有人把它成為“高級語言中的低級語言”或“中級語言 ”。 用C語言寫的程序可移植性好(與匯編語言比)?;旧喜蛔餍薷木湍苡糜诟鞣N型號的計(jì)算機(jī)和各種操作系統(tǒng)。.從應(yīng)用方面來看:語言較難學(xué)。初學(xué)者:BAS
9、IC FORTRAN科學(xué)計(jì)算:FORTRAN數(shù)據(jù)處理:COBOL(銀行系統(tǒng))系統(tǒng)軟件:語言有些大型軟件:C語言 教學(xué)角度:PASCAL(單一結(jié)構(gòu)化語言)但大多數(shù)高校已用C語言取代了PASCAL語言。. 目前C語言成了學(xué)習(xí)和使用人數(shù)最多的一種計(jì)算機(jī)語言。熟練掌握C語言成為計(jì)算機(jī)開發(fā)人員的一項(xiàng)基本功。 近年來,面向?qū)ο蟮腃+語言在我國逐漸得到推廣。但是不應(yīng)認(rèn)為:C過時了,應(yīng)學(xué)C+,不學(xué)C C+是為解決編寫大型軟件的問題而產(chǎn)生的,學(xué)起來比C語言困難得多。將來并不是所有的人都去編寫大型軟件。因此,在發(fā)達(dá)國家的大學(xué)中,C語言仍是一門重要的課程,是大學(xué)生的一種基本的選擇。掌握了C,日后再學(xué)C+是不會太困難
10、的。 .1.3 簡單的C程序介紹 下面介紹幾個簡單的C語言程序,然后從中分析C語言程序的特點(diǎn)。【例 1.1】輸出一行信息。 本程序的作用是輸出以下一行信息: This is a C program.#include void main ( ) printf (This is a C program.n); .【例 1.2 】求兩數(shù)之和。 本程序的作用是求兩個整數(shù)a和b之和sum。程序運(yùn)行時輸出以下信息: sum is 579#include void main ( ) /*求兩數(shù)之和*/ int a,b,sum; /*這是聲明部分,定義變量a,b,sum為整型*/ a=123; b=456;
11、/* 以下3行為C語句 */ sum=a+b; printf (sum is %dn, sum);.【例1.3】求2個數(shù)中較大者。 #include void main ( ) /* 主函數(shù)*/ int max(int x,int y); /*對被調(diào)用函數(shù)max的聲明*/ int a, b, c; /*聲明部分,定義變量*/ scanf (%d,%d ,&a,&b); /*輸入變量a和b的值*/ c=max (a,b); /*調(diào)用max函數(shù),將得到的值賦給c*/ printf (max=%dn,c); /*輸出c的值*/int max(int x,int y) /* 定義max
12、函數(shù),函數(shù)值為整型*/ int z; /*max函數(shù)中的聲明部分*/ if (xy) z=x; else z=y; return (z); /*將z的值返回,通過max帶回調(diào)用函數(shù)的位置*/.例1.3中程序包括兩個函數(shù):主函數(shù)main和被調(diào)用的函數(shù)max。 max函數(shù)的作用是將x和y中較大者的值賦給變量z。return語句將z的值返回給主調(diào)函數(shù)main。返回值是通過函數(shù)名max帶回到main函數(shù)的調(diào)用處。 程序第4行是對被調(diào)用函數(shù)max的聲明。 main函數(shù)中的scanf是“輸入函數(shù)”的名字。程序中scanf函數(shù)的作用是輸入a和b的值。&a和&b中的“&”的含義是“取地
13、址”,此scanf函數(shù)的作用是將兩個數(shù)值分別輸入到變量a和b的地址所標(biāo)志的單元中,也就是輸入給變量a和b。 程序第7行為調(diào)用max函數(shù),在調(diào)用時將實(shí)際參數(shù)a和b的值分別傳送給max函數(shù)中的形式參數(shù)x和y。經(jīng)過執(zhí)行max函數(shù)得到一個返回值(即max函數(shù)中變量z的值),把這個值賦給變量c。然后輸出c的值。printf函數(shù)中雙引號內(nèi)的“max=%dn”,在輸出時,將 “max =”原樣輸出,“%d”將由c的值取代之,“n”執(zhí)行換行。.通過以上幾個例子,可以看到:C程序是由函數(shù)構(gòu)成的。一個C源程序至少且僅包含一個main函數(shù),也可以包含一個main函數(shù)和若干個其他函數(shù)。因此,函數(shù)是C程序的基本單位。
14、被調(diào)用的函數(shù)可以使系統(tǒng)提供的庫函數(shù),也可以是用戶根據(jù)需要自己定義的函數(shù)。編寫C程序就是編寫一個個函數(shù),ANSIC提供一百多個庫函數(shù),Tuboc提供三百多個庫函數(shù)。一個函數(shù)由兩部分組成: 1)函數(shù)的首部,即函數(shù)的第一行。包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函數(shù)參數(shù)(形參)名、參數(shù)類型。 例如,例1.3中的max函數(shù)的首部為int max (int x , int y ) 函數(shù)類型 函數(shù)名 函數(shù)參數(shù)類型 函數(shù)參數(shù)名 函數(shù)參數(shù)類型 函數(shù)參數(shù)名 2)函數(shù)體,即函數(shù)首部下面的大括弧內(nèi)的部分。如果一個函數(shù)內(nèi)有多個大括弧,則最外層的一對 為函數(shù)體的范圍。 函數(shù)體一般包括: 聲明部分;執(zhí)行部分。. 一個C程序總是
15、從main函數(shù)開始執(zhí)行的,而不論main函數(shù)在整個程序中的位置如何(main函數(shù)可以放在程序最前頭,也可以放在程序最后,或在一些函數(shù)之前,在另一些函數(shù)之后)。 C程序書寫格式自由,一行內(nèi)可以寫幾個語句, 一個語句可以分寫在多行上。沒有行號。 每個語句和數(shù)據(jù)定義的最后必須有一個分號。分號是C語句的必要組成部分。 C語言本身沒有輸入輸出語句。輸入和輸出的操作是由庫函數(shù)scanf和printf等函數(shù)來完成的。 可以用/*/對C程序中的任何部分作注釋。一個好的、有使用價值的源程序都應(yīng)當(dāng)加上必要的注釋,以增加程序的可讀性。.1.4 運(yùn)行C程序的步驟與方法 在編好一個C源程序后,如何上機(jī)運(yùn)行呢? 在紙上寫
16、好一個程序后,要經(jīng)過以下幾個步驟:上機(jī)輸入與編輯源程序?qū)υ闯绦蜻M(jìn)行編譯與庫函數(shù)連接運(yùn)行目標(biāo)程序這樣幾個步驟。以上過程如圖1.1所示。其中實(shí)線表示操作流程,虛線表示文件的輸入輸出。圖1.1.一、運(yùn)行C程序的步驟:上機(jī)輸入程序?qū)υ闯绦蜃儺惻c庫函數(shù)鏈接運(yùn)行目標(biāo)程序。源程序文件為.C,編譯后得到目標(biāo)文件.obj, 與庫函數(shù)連接后,得到可執(zhí)行的目標(biāo)程序?yàn)?exe 最后運(yùn)行.exe。二、上機(jī)運(yùn)行程序的方法:機(jī)房已經(jīng)安裝Turbo C環(huán)境以下按此版本講授V C+等有導(dǎo)論講。、進(jìn)入Turbo C環(huán)境()點(diǎn)Windows桌面左下角的“開始”按鈕()鼠標(biāo)移到“程序”按鈕,在右邊菜單中找c:命令提示符,單擊或者移到運(yùn)行單擊,在窗口中輸入cmd,按確定。()此時在DOS狀態(tài)下。輸入DOS命令CD TC 按
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 格式法律文體管理辦法
- 公共場館冠名管理辦法
- 物業(yè)管理公司市場拓展策略與實(shí)踐
- 職業(yè)院校網(wǎng)絡(luò)安全虛擬仿真實(shí)訓(xùn)平臺構(gòu)建與優(yōu)化探討
- 供應(yīng)公路用地管理辦法
- 北京濕地公園管理辦法
- 大型活動安全保障措施手冊
- 民用計(jì)量器具管理辦法
- 教育評價文本挖掘-洞察及研究
- 保安公用經(jīng)費(fèi)管理辦法
- 物業(yè)工程部半年工作總結(jié)PPT模板下載
- 物資設(shè)備詢價匯總表
- GB/T 24186-2022工程機(jī)械用高強(qiáng)度耐磨鋼板和鋼帶
- JJF 1015-2014計(jì)量器具型式評價通用規(guī)范
- 勞動合同(通用版)
- 英語口語 購物課件
- 膀胱鏡檢查記錄
- DBJ50-112-2016 現(xiàn)澆混凝土橋梁梁柱式模板支撐架安全技術(shù)規(guī)范
- 北京福賽爾V6891、V6851控制器(聯(lián)動型)的調(diào)試
- 汽車維修安全生產(chǎn)管理制度大全
- 晉江市勞動合同書
評論
0/150
提交評論