版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、整理ppt1C (第三版)譚浩強(qiáng) 著整理ppt2目 錄 第1章C語(yǔ)言概述 第2章程序的靈魂算法 第3章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式 第4章最簡(jiǎn)單的C程序設(shè)計(jì)順序程序設(shè)計(jì) 第5章選擇結(jié)構(gòu)程序設(shè)計(jì) 第6章循環(huán)控制整理ppt3 第7章數(shù)組 第8章函數(shù) 第9章預(yù)處理命令 第10章指針 第11章結(jié)構(gòu)體與共用體 第12章位運(yùn)算 第13章文件 第14章常見(jiàn)錯(cuò)誤和程序調(diào)試整理ppt4第1章 C語(yǔ)言概述 1.1 C語(yǔ)言出現(xiàn)的歷史背景 1.2 C語(yǔ)言的特點(diǎn) 1.3 簡(jiǎn)單的C程序介紹 1.4 運(yùn)行C程序的步驟與方法整理ppt51.1 C語(yǔ)言出現(xiàn)的歷史背景 在C語(yǔ)言誕生以前,系統(tǒng)軟件主要是用匯編語(yǔ)言編寫(xiě)的。由于匯編語(yǔ)言程
2、序依賴于計(jì)算機(jī)硬件,其可讀性和可移植性都很差;一般的高級(jí)語(yǔ)言又難以實(shí)現(xiàn)對(duì)計(jì)算機(jī)硬件的直接操作,于是人們希望有一種兼有匯編語(yǔ)言和一般高級(jí)語(yǔ)言特性的新語(yǔ)言。C語(yǔ)言在這種情況下應(yīng)運(yùn)而生。 C語(yǔ)言是貝爾實(shí)驗(yàn)室于70年代初研制出來(lái)的,后來(lái)又被多次改進(jìn),并出現(xiàn)了多種版本。80年代初,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI),根據(jù)C語(yǔ)言問(wèn)世以來(lái)各種版本對(duì)C語(yǔ)言的發(fā)展和擴(kuò)充,制定了ANSI C標(biāo)準(zhǔn)。目前流行的C語(yǔ)言編譯系統(tǒng)大多是以ANSI C為基礎(chǔ)進(jìn)行開(kāi)發(fā)的。整理ppt6 C語(yǔ)言是國(guó)際上廣泛流行的計(jì)算機(jī)高級(jí)語(yǔ)言。它適合作為系統(tǒng)描述語(yǔ)言,既可以用來(lái)編寫(xiě)系統(tǒng)軟件,也可以來(lái)編寫(xiě)應(yīng)用軟件。 C語(yǔ)言的前身是B語(yǔ)言1960 ALG
3、OL60 離硬件遠(yuǎn),不宜編寫(xiě)系統(tǒng)程序1963 CPL 離硬件近,但規(guī)模較大,難以實(shí)現(xiàn)1967 BCPL 對(duì)CPL做了簡(jiǎn)化1970 貝爾實(shí)驗(yàn)室以BCPL語(yǔ)言為基礎(chǔ),進(jìn)一步簡(jiǎn)化,設(shè)計(jì) 出了很簡(jiǎn)單的而且很接近硬件的B語(yǔ)言,并用B語(yǔ)言編寫(xiě)了一個(gè)UNIX操作系統(tǒng),在PDPT上實(shí)現(xiàn),此時(shí)的B語(yǔ)言過(guò)于簡(jiǎn)單,功能有限19721973 年間,貝爾實(shí)驗(yàn)室的D.M.Ritchie在B語(yǔ)言的基礎(chǔ)上設(shè)計(jì)出了C語(yǔ)言(BCPL) 整理ppt7 C語(yǔ)言既保持了BCPL和B語(yǔ)言的優(yōu)點(diǎn)(精煉,接近硬件)又克服了它們的缺電(過(guò)于簡(jiǎn)單,數(shù)據(jù)無(wú)類型等)。 最近的C語(yǔ)言只是為描述和實(shí)現(xiàn)UNIX操作系統(tǒng)提供一種工作語(yǔ)言而設(shè)計(jì)的,UNIX原
4、用匯編寫(xiě)的,后90%用C編寫(xiě)。 后來(lái),C語(yǔ)言多次作了改進(jìn),但主要還是在貝爾實(shí)驗(yàn)室內(nèi)部使用。直到1975年UNIX第6版發(fā)布后,C語(yǔ)言的突出優(yōu)點(diǎn)才引起人們的普遍注意。 1997年出現(xiàn)了不依賴于具體機(jī)器的C語(yǔ)言便以文本可移植C語(yǔ)言編譯程序,使C語(yǔ)言移植到其他機(jī)器時(shí)所需做的工作大大簡(jiǎn)化了,這也推動(dòng)了UNIX操作系統(tǒng)迅速的在各種機(jī)器上實(shí)現(xiàn)。 隨著UNIX的日益廣泛使用,C語(yǔ)言也迅速得到推廣。C語(yǔ)言和UNIX可以說(shuō)是一對(duì)孿生兄弟,在發(fā)展過(guò)程中相輔相成。 整理ppt8 1978年以后,C語(yǔ)言先后移植到大、中、小型計(jì)算機(jī)上,已獨(dú)立于UNIX和PDP了。C語(yǔ)言便很快風(fēng)靡全世界,成為世界上應(yīng)用最廣泛的幾種計(jì)算機(jī)
5、語(yǔ)言之一。 1983年,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI)根據(jù)C語(yǔ)言問(wèn)世以來(lái)各種版本對(duì)C語(yǔ)言的發(fā)展和補(bǔ)充,制定了新的標(biāo)準(zhǔn),成為ANSI C。ANSI C比后來(lái)的標(biāo)準(zhǔn)C有了很大的發(fā)展。 1987年,ANSI又公布了新標(biāo)準(zhǔn)- 87 ANSI C 1990年,國(guó)際標(biāo)準(zhǔn)組織ISO接受87 ANSIC為ISO的標(biāo)準(zhǔn)。 1994年,ISO修訂了C語(yǔ)言標(biāo)準(zhǔn)。 目前流行的C語(yǔ)言編譯系統(tǒng)大多是以ANSI C為基礎(chǔ)進(jìn)行開(kāi)發(fā)的,但不同版本的C編譯系統(tǒng)所實(shí)現(xiàn)的語(yǔ)言功能及語(yǔ)法規(guī)則又略有差別,本書(shū)基本上已ANSI C為基礎(chǔ)。 整理ppt91.2 C語(yǔ)言的特點(diǎn) 一種語(yǔ)言之所以存在和發(fā)展, 并具有較強(qiáng)的生命力,總之有起不同于(或
6、優(yōu)于)其他語(yǔ)言的特點(diǎn). C語(yǔ)言的主要特點(diǎn)如下:語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活。C語(yǔ)言一共只有32個(gè)關(guān)鍵字,9種控制語(yǔ)句,程序書(shū)寫(xiě)形式自由,主要用小寫(xiě)字母表示,壓縮了一切不必要的成分。比其他許多高級(jí)語(yǔ)言簡(jiǎn)潔,源程序短,因此輸入工程時(shí)工作量少.整理ppt10 運(yùn)算符豐富。C的運(yùn)算符包含的范圍很廣泛,共有34種運(yùn)算符。C把括號(hào)、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理,從而使C的運(yùn)算類型極其豐富,表達(dá)式類型多樣化。靈活使用各種運(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)。C的數(shù)據(jù)類型有整型、實(shí)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來(lái)實(shí)
7、現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(如鏈表、樹(shù)、棧等)的運(yùn)算。尤其是指針,只C存在于C語(yǔ)言和Pascal語(yǔ)言中。整理ppt11具有結(jié)構(gòu)化的控制語(yǔ)句(如ifelse語(yǔ)句、while語(yǔ)句、dowhile語(yǔ)句、switch語(yǔ)句、for語(yǔ)句)。用函數(shù)作為程序的模塊單位,便于實(shí)現(xiàn)程序的模塊化。C是良好的結(jié)構(gòu)化語(yǔ)言, 符合現(xiàn)代編程風(fēng)格的要求。生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。C語(yǔ)言一般只比匯編程序生成的目標(biāo)代碼效率低10%-20%。整理ppt12語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。一般的高級(jí)語(yǔ)言語(yǔ)言語(yǔ)法檢查比較嚴(yán)格,能檢查出幾乎所有的語(yǔ)法錯(cuò)誤,而C語(yǔ)言允許程序員有較大的自由度,因此放寬了語(yǔ)法檢查。程序員應(yīng)當(dāng)仔細(xì)檢查程
8、序,保證其正確,而不要過(guò)分依賴C語(yǔ)言編譯程序去查錯(cuò)。 “限制”與“靈活”是一對(duì)矛盾。一個(gè)不熟悉的人員,編一個(gè)正確的C語(yǔ)言程序可能比編一個(gè)其他高級(jí)語(yǔ)言程序難一些。也就是對(duì)C語(yǔ)言的人,要求對(duì)程序設(shè)計(jì)更熟練一些。例如對(duì)數(shù)組下標(biāo)越界不做檢查,由程序編寫(xiě)者自己保證程序的正確。對(duì)變量的類型使用比較靈活,例如整型數(shù)據(jù)與字符型數(shù)據(jù)可以通用。整理ppt13 C語(yǔ)言允許直接訪問(wèn)物理地址,能進(jìn)行位(bit)操作,能實(shí)現(xiàn)匯編語(yǔ)言的大部分功能,可以直接對(duì)硬件進(jìn)行操作。因此C語(yǔ)言既有高級(jí)語(yǔ)言的功能,又具有低級(jí)語(yǔ)言的許多功能,可用來(lái)編寫(xiě)系統(tǒng)軟件。C語(yǔ)言的這種雙重性,有人把它成為“高級(jí)語(yǔ)言中的低級(jí)語(yǔ)言”或“中級(jí)語(yǔ)言 ”。 用
9、C語(yǔ)言寫(xiě)的程序可移植性好(與匯編語(yǔ)言比)。基本上不作修改就能用于各種型號(hào)的計(jì)算機(jī)和各種操作系統(tǒng)。整理ppt14從應(yīng)用方面來(lái)看:語(yǔ)言較難學(xué)。初學(xué)者:BASIC FORTRAN科學(xué)計(jì)算:FORTRAN數(shù)據(jù)處理:COBOL(銀行系統(tǒng))系統(tǒng)軟件:語(yǔ)言有些大型軟件:C語(yǔ)言 教學(xué)角度:PASCAL(單一結(jié)構(gòu)化語(yǔ)言)但大多數(shù)高校已用C語(yǔ)言取代了PASCAL語(yǔ)言。整理ppt15 目前C語(yǔ)言成了學(xué)習(xí)和使用人數(shù)最多的一種計(jì)算機(jī)語(yǔ)言。熟練掌握C語(yǔ)言成為計(jì)算機(jī)開(kāi)發(fā)人員的一項(xiàng)基本功。 近年來(lái),面向?qū)ο蟮腃+語(yǔ)言在我國(guó)逐漸得到推廣。但是不應(yīng)認(rèn)為:C過(guò)時(shí)了,應(yīng)學(xué)C+,不學(xué)C C+是為解決編寫(xiě)大型軟件的問(wèn)題而產(chǎn)生的,學(xué)起來(lái)比
10、C語(yǔ)言困難得多。將來(lái)并不是所有的人都去編寫(xiě)大型軟件。因此,在發(fā)達(dá)國(guó)家的大學(xué)中,C語(yǔ)言仍是一門重要的課程,是大學(xué)生的一種基本的選擇。掌握了C,日后再學(xué)C+是不會(huì)太困難的。 整理ppt161.3 簡(jiǎn)單的C程序介紹 下面介紹幾個(gè)簡(jiǎn)單的C語(yǔ)言程序,然后從中分析C語(yǔ)言程序的特點(diǎn)。【例 1.1】輸出一行信息。 本程序的作用是輸出以下一行信息: This is a C program.#include void main ( ) printf (This is a C program.n); 整理ppt17【例 1.2 】求兩數(shù)之和。 本程序的作用是求兩個(gè)整數(shù)a和b之和sum。程序運(yùn)行時(shí)輸出以下信息: su
11、m is 579#include void main ( ) /*求兩數(shù)之和*/ int a,b,sum; /*這是聲明部分,定義變量a,b,sum為整型*/ a=123; b=456; /* 以下3行為C語(yǔ)句 */ sum=a+b; printf (sum is %dn, sum);整理ppt18【例1.3】求2個(gè)數(shù)中較大者。 #include void main ( ) /* 主函數(shù)*/ int max(int x,int y); /*對(duì)被調(diào)用函數(shù)max的聲明*/ int a, b, c; /*聲明部分,定義變量*/ scanf (%d,%d ,&a,&b); /*輸入變量
12、a和b的值*/ c=max (a,b); /*調(diào)用max函數(shù),將得到的值賦給c*/ printf (max=%dn,c); /*輸出c的值*/int max(int x,int y) /* 定義max函數(shù),函數(shù)值為整型*/ int z; /*max函數(shù)中的聲明部分*/ if (xy) z=x; else z=y; return (z); /*將z的值返回,通過(guò)max帶回調(diào)用函數(shù)的位置*/整理ppt19例1.3中程序包括兩個(gè)函數(shù):主函數(shù)main和被調(diào)用的函數(shù)max。 max函數(shù)的作用是將x和y中較大者的值賦給變量z。return語(yǔ)句將z的值返回給主調(diào)函數(shù)main。返回值是通過(guò)函數(shù)名max帶回到m
13、ain函數(shù)的調(diào)用處。 程序第4行是對(duì)被調(diào)用函數(shù)max的聲明。 main函數(shù)中的scanf是“輸入函數(shù)”的名字。程序中scanf函數(shù)的作用是輸入a和b的值。&a和&b中的“&”的含義是“取地址”,此scanf函數(shù)的作用是將兩個(gè)數(shù)值分別輸入到變量a和b的地址所標(biāo)志的單元中,也就是輸入給變量a和b。 程序第7行為調(diào)用max函數(shù),在調(diào)用時(shí)將實(shí)際參數(shù)a和b的值分別傳送給max函數(shù)中的形式參數(shù)x和y。經(jīng)過(guò)執(zhí)行max函數(shù)得到一個(gè)返回值(即max函數(shù)中變量z的值),把這個(gè)值賦給變量c。然后輸出c的值。printf函數(shù)中雙引號(hào)內(nèi)的“max=%dn”,在輸出時(shí),將 “max =”原樣輸出,
14、“%d”將由c的值取代之,“n”執(zhí)行換行。整理ppt20通過(guò)以上幾個(gè)例子,可以看到:C程序是由函數(shù)構(gòu)成的。一個(gè)C源程序至少且僅包含一個(gè)main函數(shù),也可以包含一個(gè)main函數(shù)和若干個(gè)其他函數(shù)。因此,函數(shù)是C程序的基本單位。 被調(diào)用的函數(shù)可以使系統(tǒng)提供的庫(kù)函數(shù),也可以是用戶根據(jù)需要自己定義的函數(shù)。編寫(xiě)C程序就是編寫(xiě)一個(gè)個(gè)函數(shù),ANSIC提供一百多個(gè)庫(kù)函數(shù),Tuboc提供三百多個(gè)庫(kù)函數(shù)。一個(gè)函數(shù)由兩部分組成: 1)函數(shù)的首部,即函數(shù)的第一行。包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函數(shù)參數(shù)(形參)名、參數(shù)類型。 例如,例1.3中的max函數(shù)的首部為int max (int x , int y ) 函數(shù)類型
15、 函數(shù)名 函數(shù)參數(shù)類型 函數(shù)參數(shù)名 函數(shù)參數(shù)類型 函數(shù)參數(shù)名 2)函數(shù)體,即函數(shù)首部下面的大括弧內(nèi)的部分。如果一個(gè)函數(shù)內(nèi)有多個(gè)大括弧,則最外層的一對(duì) 為函數(shù)體的范圍。 函數(shù)體一般包括: 聲明部分;執(zhí)行部分。整理ppt21 一個(gè)C程序總是從main函數(shù)開(kāi)始執(zhí)行的,而不論main函數(shù)在整個(gè)程序中的位置如何(main函數(shù)可以放在程序最前頭,也可以放在程序最后,或在一些函數(shù)之前,在另一些函數(shù)之后)。 C程序書(shū)寫(xiě)格式自由,一行內(nèi)可以寫(xiě)幾個(gè)語(yǔ)句, 一個(gè)語(yǔ)句可以分寫(xiě)在多行上。沒(méi)有行號(hào)。 每個(gè)語(yǔ)句和數(shù)據(jù)定義的最后必須有一個(gè)分號(hào)。分號(hào)是C語(yǔ)句的必要組成部分。 C語(yǔ)言本身沒(méi)有輸入輸出語(yǔ)句。輸入和輸出的操作是由庫(kù)函
16、數(shù)scanf和printf等函數(shù)來(lái)完成的。 可以用/*/對(duì)C程序中的任何部分作注釋。一個(gè)好的、有使用價(jià)值的源程序都應(yīng)當(dāng)加上必要的注釋,以增加程序的可讀性。整理ppt221.4 運(yùn)行C程序的步驟與方法 在編好一個(gè)C源程序后,如何上機(jī)運(yùn)行呢? 在紙上寫(xiě)好一個(gè)程序后,要經(jīng)過(guò)以下幾個(gè)步驟:上機(jī)輸入與編輯源程序?qū)υ闯绦蜻M(jìn)行編譯與庫(kù)函數(shù)連接運(yùn)行目標(biāo)程序這樣幾個(gè)步驟。以上過(guò)程如圖1.1所示。其中實(shí)線表示操作流程,虛線表示文件的輸入輸出。圖1.1整理ppt23一、運(yùn)行C程序的步驟:上機(jī)輸入程序?qū)υ闯绦蜃儺惻c庫(kù)函數(shù)鏈接運(yùn)行目標(biāo)程序。源程序文件為.C,編譯后得到目標(biāo)文件.obj, 與庫(kù)函數(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桌面左下角的“開(kāi)始”按鈕()鼠標(biāo)移到“程序”按鈕,在右邊菜單中找c:命令提示符,單擊或者移到運(yùn)行單擊,在窗口中輸入cmd,按確定。()此時(shí)在DOS狀態(tài)下。輸入DOS命令CD TC 按回車TC按回車進(jìn)入TC
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年滕州市人民醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 2024年湘潭市第一人民醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 2024年07月海南中國(guó)民生銀行??诜中蟹聪村X崗招考人員筆試歷年參考題庫(kù)附帶答案詳解
- 2024年07月浙江浙江泰隆商業(yè)銀行社會(huì)招考(72)筆試歷年參考題庫(kù)附帶答案詳解
- 2024版數(shù)據(jù)中心弱電施工合同版B版
- 2024年??谑袐D幼保健院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 歷史與社會(huì):人教版九年級(jí)下冊(cè)第五單元第四課第二框《動(dòng)蕩的中東》說(shuō)課稿001
- 2024年洛陽(yáng)市商業(yè)職工醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 2024年武隆縣福康急救醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 活動(dòng)一《綠化真的能降溫嗎》(說(shuō)課稿)-2023-2024學(xué)年六年級(jí)上冊(cè)綜合實(shí)踐活動(dòng)滬科黔科版
- 2024-2025學(xué)年上學(xué)期杭州初中英語(yǔ)八年級(jí)期末試卷
- 【MOOC】人因工程學(xué)-東北大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 中考數(shù)學(xué)復(fù)習(xí)第二章方程(組)與不等式(組)第三節(jié)分式方程及其應(yīng)用課件
- 中國(guó)慢性阻塞性肺疾病基層診療指南(2024年)解讀
- 水肥一體化智能種植管理技術(shù)實(shí)施方案
- 《中華人民共和國(guó)學(xué)前教育法》專題培訓(xùn)
- 帶狀皰疹后神經(jīng)痛的診治課件教案
- 《房產(chǎn)稅法》課件
- 產(chǎn)品質(zhì)量培訓(xùn)
- 海洋氣象預(yù)測(cè)研究
- 2024急性心梗護(hù)理常規(guī)
評(píng)論
0/150
提交評(píng)論