《《c程序設(shè)計(jì)概述》PPT課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《c程序設(shè)計(jì)概述》PPT課件.ppt(15頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第1章 c程序設(shè)計(jì)概述,1.1 程序和程序設(shè)計(jì)語(yǔ)言,1 程序 程序:按照一定的邏輯組合在一起,可以連續(xù)執(zhí)行的指令的集合。 程序設(shè)計(jì)語(yǔ)言:用于編寫程序,實(shí)現(xiàn)人與計(jì)算機(jī)“對(duì)話”的語(yǔ)言。 目前,人們使用的程序設(shè)計(jì)語(yǔ)言有上百種,常用的也有幾十種,如BASIC、FORTRAN、PASCAL,以及C語(yǔ)言等。這些語(yǔ)言的表達(dá)形式接近于人的自然語(yǔ)言,都是高級(jí)程序設(shè)計(jì)語(yǔ)言(簡(jiǎn)稱“高級(jí)語(yǔ)言”)。,1.1 程序和程序設(shè)計(jì)語(yǔ)言,2 程序設(shè)計(jì)語(yǔ)言 程序設(shè)計(jì)語(yǔ)言按照書寫形式和思維方式的不同,可分為低級(jí)語(yǔ)言和高級(jí)語(yǔ)言兩大類。低級(jí)語(yǔ)言包括機(jī)器語(yǔ)言和匯編語(yǔ)言。 機(jī)器語(yǔ)言: 機(jī)器語(yǔ)言是以二進(jìn)制代碼的形式來(lái)表示這些基本指令集合。它
2、是計(jì)算機(jī)系統(tǒng)唯一能夠直接識(shí)別和執(zhí)行的程序設(shè)計(jì)語(yǔ)言。它的優(yōu)點(diǎn)是運(yùn)算速度快,每條指令均為由0和1組合起來(lái)的代碼串。由操作碼和操作對(duì)象兩部分組成。,1.1 程序和程序設(shè)計(jì)語(yǔ)言,匯編語(yǔ)言: 匯編語(yǔ)言實(shí)際上是由一組匯編指令構(gòu)成的語(yǔ)言,與機(jī)器語(yǔ)言相比,它可以用指令英文名稱的縮寫字符串來(lái)表示其所代表的操作,用標(biāo)號(hào)和符號(hào)來(lái)代表地址、常量和變量。 高級(jí)語(yǔ)言 高級(jí)程序設(shè)計(jì)語(yǔ)言(簡(jiǎn)稱高級(jí)語(yǔ)言)是指用于描述計(jì)算機(jī)程序的類自然語(yǔ)言。它是程序設(shè)計(jì)發(fā)展的產(chǎn)物,它屏蔽了機(jī)器的細(xì)節(jié),提高了語(yǔ)言的抽象層次。高級(jí)語(yǔ)言采用接近自然語(yǔ)言和數(shù)學(xué)語(yǔ)言的語(yǔ)句,易學(xué)、易用、易維護(hù),并且在一定程度上與機(jī)器無(wú)關(guān),給編程帶來(lái)了極大方便。,1.2 C
3、語(yǔ)言簡(jiǎn)介,1 C語(yǔ)言的產(chǎn)生和發(fā)展 C語(yǔ)言是目前比較流行的高級(jí)程序設(shè)計(jì)語(yǔ)言之一。它不但具有一般高級(jí)語(yǔ)言的特點(diǎn),又可象匯編語(yǔ)言一樣,對(duì)硬件內(nèi)存單元的位、字節(jié)直接進(jìn)行操作,其程序運(yùn)行效率高。 C語(yǔ)言的發(fā)展與中小型計(jì)算機(jī)上的操作系統(tǒng)UNIX密不可分,它是在B語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的,其根源可以追溯到ALGOL 60。,1.2 C語(yǔ)言簡(jiǎn)介,1960年出現(xiàn)的ALGOL60是一種面向問(wèn)題的高級(jí)語(yǔ)言。 1963年英國(guó)的劍橋大學(xué)推出了CPL語(yǔ)言。 1967年英國(guó)劍橋大學(xué)的Matin Richards對(duì)CPL語(yǔ)言作了簡(jiǎn)化,推出了BCPL語(yǔ)言。 1970年,UNIX的開發(fā)者美國(guó)貝爾實(shí)驗(yàn)室以BCPL語(yǔ)言為基礎(chǔ)作進(jìn)一
4、步簡(jiǎn)化,設(shè)計(jì)出很接近硬件的B語(yǔ)言。 1972年,貝爾實(shí)驗(yàn)室在B語(yǔ)言的基礎(chǔ)上設(shè)計(jì)出了語(yǔ)言。 1975年UNIX第6版公布后C語(yǔ)言突出優(yōu)點(diǎn)引起普遍注意。 1983年,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI)根據(jù)C語(yǔ)言各種版本對(duì)C發(fā)展和擴(kuò)充,制定了新的標(biāo)準(zhǔn),稱為ANSI C。,1.2 C語(yǔ)言簡(jiǎn)介,隨著面向?qū)ο缶幊碳夹g(shù)的出現(xiàn),在進(jìn)一步擴(kuò)充和完善了語(yǔ)言基礎(chǔ)上,又出現(xiàn)了C++。Java,C++等面向?qū)ο笳Z(yǔ)言(第四代語(yǔ)言)是C語(yǔ)言的發(fā)展。但是,C是C++的基礎(chǔ),C++語(yǔ)言和語(yǔ)言在很多方面是兼容的。在掌握了語(yǔ)言后,再進(jìn)一步學(xué)習(xí)C++,就能以一種熟悉的語(yǔ)法來(lái)學(xué)習(xí)面向?qū)ο蟮恼Z(yǔ)言,可達(dá)到事半功倍的目的。,1.2 C語(yǔ)言簡(jiǎn)介,
5、2 C語(yǔ)言的特點(diǎn) C語(yǔ)言簡(jiǎn)潔緊湊,使用方便靈活,運(yùn)算符豐富 C語(yǔ)言表達(dá)能力強(qiáng) C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)豐富,具有現(xiàn)代化語(yǔ)言的各種數(shù)據(jù)結(jié)構(gòu) C語(yǔ)言是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言 C語(yǔ)言可直接對(duì)硬件進(jìn)行操作 C語(yǔ)言生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高 用語(yǔ)言寫的程序可移植性好(與匯編語(yǔ)言比),1.3 C程序的組成與結(jié)構(gòu),C程序是由函數(shù)構(gòu)成的。一個(gè)C源程序有且僅有一個(gè)main函數(shù),但可以包含若干個(gè)其它函數(shù)。 一個(gè)函數(shù)由兩部分組成: 函數(shù)的首部,包括函數(shù)返回值類型、函數(shù)名、形式參數(shù)名和參數(shù)類型。 函數(shù)體。即函數(shù)首部下面的大括號(hào) 內(nèi)的部分。如果一個(gè)函數(shù)內(nèi)有多個(gè)大括號(hào),則最外層的一對(duì)為函數(shù)體的范圍。函數(shù)體一般包括:聲明
6、部分和執(zhí)行部分。 一個(gè)C程序總是從main函數(shù)開始執(zhí)行的,而不論main函數(shù)在整個(gè)程序中的位置如何。,1.3 C程序的組成與結(jié)構(gòu),C程序書寫格式相對(duì)自由,一行內(nèi)可以寫幾個(gè)語(yǔ)句,一個(gè)語(yǔ)句可以分寫在多行上。C程序沒(méi)有行號(hào),也不嚴(yán)格規(guī)定書寫格式。 每個(gè)語(yǔ)句的結(jié)尾必須有一個(gè)分號(hào)。分號(hào)是C語(yǔ)句的必要組成部分。即使是程序中最后一個(gè)語(yǔ)句也必須包含分號(hào)。 C語(yǔ)言本身沒(méi)有輸入輸出語(yǔ)句。輸入和輸出操作是由庫(kù)函數(shù)來(lái)完成。,1.4 C語(yǔ)言的字符集與標(biāo)識(shí)符,1 C語(yǔ)言的字符集 C語(yǔ)言的字符集是用來(lái)書寫源程序清單時(shí)允許出現(xiàn)的所有字符的集合,即:字符是組成語(yǔ)言的最基本的元素。語(yǔ)言字符集由字母(小寫字母az共26個(gè),大寫字
7、母AZ共26個(gè))、數(shù)字(09共10個(gè))、空格、標(biāo)點(diǎn)和特殊字符組成。在字符常量,字符串常量和注釋中還可以使用漢字或其它可表示的圖形符號(hào)。,1.4 C語(yǔ)言的字符集與標(biāo)識(shí)符,2 C語(yǔ)言的標(biāo)識(shí)符 在C語(yǔ)言中,標(biāo)識(shí)符是用來(lái)標(biāo)識(shí)變量名、符號(hào)常量名、函數(shù)名、數(shù)組名、類型名、文件名的有效字符序列。簡(jiǎn)單地說(shuō),標(biāo)識(shí)符就是一個(gè)名字。 C語(yǔ)言規(guī)定,所有的標(biāo)識(shí)符必須滿足以下規(guī)則: 所有的標(biāo)識(shí)符的第一個(gè)字符必須是字母或下劃線; 標(biāo)識(shí)符的其它部分的字符必須是字母、數(shù)字或下劃線; 在Turbo C中,標(biāo)識(shí)符只有前面32個(gè)字符有效,也就是說(shuō)系統(tǒng)能識(shí)別的標(biāo)識(shí)符的最大長(zhǎng)度是32。 大小寫字母表示不同的含義,即代表不同的標(biāo)識(shí)符;
8、標(biāo)識(shí)符不能使用C語(yǔ)言中的關(guān)鍵字。,1.4 C語(yǔ)言的字符集與標(biāo)識(shí)符,3 C語(yǔ)言的關(guān)鍵字 關(guān)鍵字又稱保留字,是一種預(yù)先定義的、具有特殊意義的標(biāo)識(shí)符。用戶不能重新定義關(guān)鍵字,也不能把關(guān)鍵字定義為一般的標(biāo)識(shí)符,如關(guān)鍵字不能作變量名、函數(shù)名等。C語(yǔ)言的關(guān)鍵字有類型標(biāo)識(shí)符、控制流標(biāo)識(shí)符、預(yù)處理標(biāo)識(shí)符等。所有的關(guān)鍵字均用小寫字母。,1.5 C程序的上機(jī)步驟,用高級(jí)語(yǔ)言或匯編語(yǔ)言編寫的程序稱為源程序。C程序源程序的擴(kuò)展名為“.c”。因?yàn)橛?jì)算機(jī)只能識(shí)別和執(zhí)行由0和1組成的二進(jìn)制指令,所以源程序不能直接在計(jì)算機(jī)上執(zhí)行,需要用“編譯程序”將源程序翻譯為二進(jìn)制形式的“目標(biāo)程序”。目標(biāo)程序的擴(kuò)展名為“.obj”。目標(biāo)代碼盡管已經(jīng)是機(jī)器指令,但是還不能運(yùn)行,因?yàn)槟繕?biāo)程序還沒(méi)有解決函數(shù)調(diào)用問(wèn)題,需要將各個(gè)目標(biāo)程序與庫(kù)函數(shù)連接,才能形成完整的可在操作系統(tǒng)下獨(dú)立執(zhí)行的程序,稱為“可執(zhí)行程序”??蓤?zhí)行程序的擴(kuò)展名為“.exe”。,1.5 C程序的上機(jī)步驟,在編寫好一個(gè)C程序后到完成運(yùn)行,一般要經(jīng)過(guò)以下幾個(gè)步驟:上機(jī),輸入與編輯源程序-對(duì)源程序進(jìn)行編譯,產(chǎn)生目標(biāo)代碼-連接各個(gè)目標(biāo)代碼、庫(kù)函數(shù),產(chǎn)生可執(zhí)行程序-運(yùn)行程序。,