《C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)與實(shí)訓(xùn)教程》第1章:基礎(chǔ)知識(shí).ppt_第1頁(yè)
《C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)與實(shí)訓(xùn)教程》第1章:基礎(chǔ)知識(shí).ppt_第2頁(yè)
《C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)與實(shí)訓(xùn)教程》第1章:基礎(chǔ)知識(shí).ppt_第3頁(yè)
《C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)與實(shí)訓(xùn)教程》第1章:基礎(chǔ)知識(shí).ppt_第4頁(yè)
《C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)與實(shí)訓(xùn)教程》第1章:基礎(chǔ)知識(shí).ppt_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第1章 基礎(chǔ)知識(shí),(時(shí)間:1次課,2學(xué)時(shí)),第1章 基礎(chǔ)知識(shí),學(xué)習(xí)目的與要求: C語(yǔ)言由于其功能強(qiáng)、使用靈活、可移植性好、目標(biāo)程序質(zhì)量好而受到廣泛的歡迎。C語(yǔ)言既具有高級(jí)語(yǔ)言的優(yōu)點(diǎn),又具有低級(jí)語(yǔ)言的許多特點(diǎn),既可以用來(lái)編寫(xiě)系統(tǒng)軟件,又可以用來(lái)編寫(xiě)應(yīng)用軟件。C語(yǔ)言已成為軟件工作者必須掌握的一個(gè)工具。 本章主要介紹C語(yǔ)言的特點(diǎn),通過(guò)簡(jiǎn)單C語(yǔ)言程序,了解并掌握C語(yǔ)言程序的特點(diǎn)、C語(yǔ)言程序的結(jié)構(gòu)和書(shū)寫(xiě)規(guī)則。 學(xué)習(xí)C語(yǔ)言時(shí)有一點(diǎn)應(yīng)當(dāng)注意:應(yīng)該把精力放在最基本、最常用的內(nèi)容上。開(kāi)始時(shí)不要鉆牛角尖,有一些細(xì)節(jié),隨著對(duì)C語(yǔ)言的了解逐步深入和實(shí)踐經(jīng)驗(yàn)的逐步豐富,會(huì)自然地掌握的,而有些細(xì)節(jié)則要通過(guò)長(zhǎng)期的實(shí)踐才能真正熟練掌握,第1章 基礎(chǔ)知識(shí),1.1 程序設(shè)計(jì)基礎(chǔ) 1.2 C語(yǔ)言簡(jiǎn)介 1.3 C語(yǔ)言程序結(jié)構(gòu)與書(shū)寫(xiě)規(guī)則 1.4 C語(yǔ)言的基本符號(hào),1.1 程序設(shè)計(jì)基礎(chǔ),今天,人們所講的計(jì)算機(jī)是一個(gè)計(jì)算機(jī)系統(tǒng),而不是一臺(tái)“裸機(jī)”。一個(gè)完整的計(jì)算機(jī)系統(tǒng)由計(jì)算機(jī)硬件系統(tǒng)和計(jì)算機(jī)軟件系統(tǒng)(俗稱(chēng)程序系統(tǒng))組成。前者一般為組成計(jì)算機(jī)的物資設(shè)備,后者為管理和使用計(jì)算機(jī)的各種程序。 計(jì)算機(jī)每做一次動(dòng)作、一個(gè)步驟,都是按照已經(jīng)用計(jì)算機(jī)語(yǔ)言編好的程序來(lái)執(zhí)行的。程序是計(jì)算機(jī)要執(zhí)行的指令集合,而程序全部都是用人們所掌握的計(jì)算機(jī)語(yǔ)言來(lái)編寫(xiě)的。所以人們要控制計(jì)算機(jī)就一定要通過(guò)計(jì)算機(jī)語(yǔ)言向計(jì)算機(jī)發(fā)出命令。,因此可以說(shuō),程序設(shè)計(jì)就是程序員根據(jù)實(shí)際任務(wù)提出問(wèn)題,然后確定計(jì)算方法,構(gòu)造數(shù)學(xué)模型,畫(huà)出流程圖,選擇合適的語(yǔ)言,編寫(xiě)程序并上機(jī)反復(fù)調(diào)試,直到滿(mǎn)足實(shí)際需要為止。程序設(shè)計(jì)基礎(chǔ)是掌握計(jì)算機(jī)語(yǔ)言。 計(jì)算機(jī)語(yǔ)言的種類(lèi)非常多,總的來(lái)說(shuō)可以分成機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言3大類(lèi)。計(jì)算機(jī)所能識(shí)別的語(yǔ)言只有機(jī)器語(yǔ)言,即由0和1構(gòu)成的代碼。但通常人們編程時(shí)不采用機(jī)器語(yǔ)言,因?yàn)樗浅ky以記憶和識(shí)別。 目前通用的編程語(yǔ)言有兩種形式:匯編語(yǔ)言和高級(jí)語(yǔ)言。,匯編語(yǔ)言的實(shí)質(zhì)和機(jī)器語(yǔ)言是相同的,都是直接對(duì)硬件進(jìn)行操作,只不過(guò)指令采用了英文縮寫(xiě)的標(biāo)識(shí)符,這樣更容易識(shí)別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫(xiě)出來(lái)。匯編程序的每一句指令只能對(duì)應(yīng)實(shí)際操作過(guò)程中的一個(gè)很細(xì)微的動(dòng)作,因此匯編程序一般比較冗長(zhǎng)、復(fù)雜、容易出錯(cuò),而且使用匯編語(yǔ)言編程需要有更多的計(jì)算機(jī)專(zhuān)業(yè)知識(shí)。但匯編語(yǔ)言的優(yōu)點(diǎn)也是顯而易見(jiàn)的,用匯編語(yǔ)言所能完成的操作不是一般高級(jí)語(yǔ)言所能實(shí)現(xiàn)的,而且源程序經(jīng)匯編生成的可執(zhí)行文件比較小,而且執(zhí)行速度很快。,高級(jí)語(yǔ)言是目前絕大多數(shù)編程者的選擇。與匯編語(yǔ)言相比,它不但能將許多相關(guān)的機(jī)器指令合成單條指令,并且去掉了與具體操作有關(guān)但與完成工作無(wú)關(guān)的細(xì)節(jié),例如使用堆棧、寄存器等,這樣就大大地簡(jiǎn)化了程序中的指令。同時(shí),由于省略了很多的細(xì)節(jié),因此編程者也就不需要有太多的專(zhuān)業(yè)知識(shí)。 高級(jí)語(yǔ)言主要是針對(duì)匯編語(yǔ)言而言,它并不是特指某一具體的語(yǔ)言,而是包括了很多的編程語(yǔ)言,如目前流行的VB、VC、Foxpro、C等,這些語(yǔ)言的語(yǔ)法、命令格式不相同。 用高級(jí)語(yǔ)言所編寫(xiě)的程序不能直接被計(jì)算機(jī)識(shí)別,必須經(jīng)過(guò)轉(zhuǎn)換才能被執(zhí)行。,按照轉(zhuǎn)換的方式可將它們分為以下兩類(lèi): 解釋類(lèi):執(zhí)行方式類(lèi)似我們?nèi)粘I畹摹巴暦g”,應(yīng)用程序源代碼一邊用相應(yīng)語(yǔ)言的解釋器“翻譯”成目標(biāo)代碼(機(jī)器語(yǔ)言),一邊執(zhí)行,而且不能生成可獨(dú)立執(zhí)行的可執(zhí)行文件,應(yīng)用程序不能脫離其解釋器。但這種方式比較靈活,可以動(dòng)態(tài)地調(diào)整、修改應(yīng)用程序。 編譯類(lèi):編譯是指應(yīng)用源程序執(zhí)行之前,就將程序源代碼“翻譯”成目標(biāo)代碼(機(jī)器語(yǔ)言),因此其目標(biāo)程序可以脫離其語(yǔ)言環(huán)境獨(dú)立執(zhí)行,使用比較方便、效率較高。但應(yīng)用程序一旦需要修改就必須先修改源代碼,再重新編譯生成新的目標(biāo)文件(*.OBJ)才能執(zhí)行?,F(xiàn)在大多數(shù)編程語(yǔ)言都是編譯型的,例如 C、Visual C+、Foxpro 等。,1.2 C語(yǔ)言簡(jiǎn)介,C語(yǔ)言的出現(xiàn)是與UNIX操作系統(tǒng)緊密聯(lián)系在一起,C語(yǔ)言本身也有一個(gè)發(fā)展過(guò)程,下表給出C語(yǔ)言的發(fā)展過(guò)程。,1.2 C語(yǔ)言簡(jiǎn)介,1978年以后,C語(yǔ)言已先后移植到大、中、小、微型機(jī)上,以獨(dú)立于UNIX和PDP了?,F(xiàn)在C語(yǔ)言已風(fēng)靡全世界,成為世界上應(yīng)用最廣泛的幾種計(jì)算機(jī)語(yǔ)言之一。 以1978年發(fā)表的UNIX第7版本中的C編譯程序?yàn)榛A(chǔ),Brian W.Kernighan和Dennis M.Ritchie(合稱(chēng)K&R)合著了影響深遠(yuǎn)的名著The C Programming Language,這本書(shū)中介紹的C語(yǔ)言成為后來(lái)廣泛使用的C語(yǔ)言版本的基礎(chǔ),它被稱(chēng)為標(biāo)準(zhǔn)C。 1983年,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI)根據(jù)C語(yǔ)言問(wèn)世以來(lái)各種版本對(duì)C的發(fā)展和擴(kuò)充,制定了新的標(biāo)準(zhǔn),稱(chēng)為ANSI C。1987年,ANSI又公布了新標(biāo)準(zhǔn)87 ANSI C。,1.2 C語(yǔ)言簡(jiǎn)介,語(yǔ)言是以與PASCAL及ALGOL等語(yǔ)言相類(lèi)似的思想為基礎(chǔ)而設(shè)計(jì)出來(lái)的面向結(jié)構(gòu)的程序設(shè)計(jì)語(yǔ)言。其主要特征如下: () 以英文小寫(xiě)字母為基礎(chǔ)。 () 程序是以函數(shù)集合構(gòu)成的,函數(shù)的參數(shù)是按“值調(diào)用”方式進(jìn)行。 () 程序表示簡(jiǎn)潔、緊湊,使用方便、靈活。 () 指針可以作為數(shù)據(jù)來(lái)處理。 () 運(yùn)算符非常豐富,有利于編寫(xiě)程序。 () 沒(méi)有處理字符串的特別功能,但能區(qū)分字符及字符串。 () 沒(méi)有作為語(yǔ)言組成部分的輸入輸出功能,但能通過(guò)函數(shù)程序來(lái)實(shí)現(xiàn)。 () 語(yǔ)言能進(jìn)行位(bit)操作,能實(shí)現(xiàn)匯編語(yǔ)言的大部分功能,可以直接對(duì)硬件操作。 () 生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。 (10)C語(yǔ)言寫(xiě)的程序可移植性好(與匯編語(yǔ)言比)?;旧喜蛔鲂薷木湍苡糜诟鞣N型號(hào)的計(jì)算機(jī)和各種操作系統(tǒng)。,1.2 C語(yǔ)言簡(jiǎn)介,當(dāng)然,C語(yǔ)言也有缺點(diǎn),至今還缺少一個(gè)國(guó)際公認(rèn)的完整的語(yǔ)法定義,語(yǔ)法關(guān)系的嚴(yán)格性不如FORTRAN及PASCAL語(yǔ)言,不太適合于數(shù)值計(jì)算。 總之,C語(yǔ)言對(duì)程序員要求較高。程序員使用C語(yǔ)言編寫(xiě)程序會(huì)感到限制少,靈活性大,功能強(qiáng),可以編寫(xiě)出任何類(lèi)型的程序?,F(xiàn)在,C語(yǔ)言已經(jīng)不僅用來(lái)編寫(xiě)系統(tǒng)軟件,也用來(lái)編寫(xiě)應(yīng)用軟件。學(xué)習(xí)和使用C的人已經(jīng)越來(lái)越多。,1.3 C語(yǔ)言程序結(jié)構(gòu)與書(shū)寫(xiě)規(guī)則,上一節(jié)中談到C語(yǔ)言的特征時(shí)說(shuō):“程序是以函數(shù)集合 構(gòu)成的”,也就是說(shuō),任何C語(yǔ)言程序都是由一個(gè)或幾個(gè) 函數(shù)所組成。,1.3.1 C語(yǔ)言程序結(jié)構(gòu),一個(gè)完整的語(yǔ)言程序,是由一個(gè)main( )函數(shù)(又稱(chēng)主函數(shù))和若干個(gè)其它函數(shù)結(jié)合而成的,或僅由一個(gè)main( )函數(shù)構(gòu)成 【例1. 1】?jī)H由main( )函數(shù)構(gòu)成的語(yǔ)言程序。 /*功能:僅由main ()函數(shù)構(gòu)成的語(yǔ)言程序示例*/ main( ) printf(“This is a C program.n”); 程序運(yùn)行結(jié)果: This is a C program.,1.3.1 C語(yǔ)言程序結(jié)構(gòu),【例1. 2】由main( )函數(shù)和1個(gè)其它函數(shù)max( )構(gòu)成的語(yǔ)言程序。 int max(int m, int n) return(mn ? m : n ); main( ) int num1,num2; printf(“Input the first integer number: ”); scanf(“%d”, ,1.3.1 C語(yǔ)言程序結(jié)構(gòu),1函數(shù)是語(yǔ)言程序的基本單位。 main( )函數(shù)的作用,相當(dāng)于其它高級(jí)語(yǔ)言中的主程序;其它函數(shù)的作用,相當(dāng)于子程序。 2C語(yǔ)言程序總是從main( )函數(shù)開(kāi)始執(zhí)行。 一個(gè)語(yǔ)言程序,總是從main( )函數(shù)開(kāi)始執(zhí)行,而不論其在程序中的位置。當(dāng)主函數(shù)執(zhí)行完畢時(shí),亦即程序執(zhí)行完畢。 習(xí)慣上,將主函數(shù)main( )放在最前頭。,1.3.2 函數(shù)的一般結(jié)構(gòu),任何函數(shù)(包括主函數(shù)main( ))都是由函數(shù)說(shuō)明和函數(shù)體兩部分組成。其一般結(jié)構(gòu)如下: 函數(shù)類(lèi)型 函數(shù)名(函數(shù)參數(shù)表) 說(shuō)明語(yǔ)句部分; 執(zhí)行語(yǔ)句部分; ,1.3.2 函數(shù)的一般結(jié)構(gòu),1使用的語(yǔ)法符號(hào)約定 . 方括號(hào)表示可選(即可以指定,也可以缺?。?省略號(hào)表示前面的項(xiàng)可以重復(fù) | 多(含2)中選1 2函數(shù)說(shuō)明 由函數(shù)類(lèi)型(可缺省)、函數(shù)名和函數(shù)參數(shù)表三部分組成,其中函數(shù)參數(shù)表的格式為: 數(shù)據(jù)類(lèi)型 形參 , 數(shù)據(jù)類(lèi)型 形參2 例如,例1.2中的函數(shù)max( ),其函數(shù)說(shuō)明各部分如下所示。 函數(shù)類(lèi)型 函數(shù)名 函數(shù)參數(shù)表 int max (int x , int y),1.3.2 函數(shù)的一般結(jié)構(gòu),3函數(shù)體 在函數(shù)說(shuō)明部分的下面、大括號(hào)(必須配對(duì)使用)內(nèi)的部分。 函數(shù)體一般由說(shuō)明語(yǔ)句和可執(zhí)行語(yǔ)句兩部分構(gòu)成: (1)說(shuō)明語(yǔ)句部分 說(shuō)明語(yǔ)句部分由變量定義、自定義類(lèi)型定義、自定義函數(shù)說(shuō)明、外部變量說(shuō)明等組成。 (2)可執(zhí)行語(yǔ)句 一般由若干條可執(zhí)行語(yǔ)句構(gòu)成。,1.3.2 函數(shù)的一般結(jié)構(gòu),4說(shuō)明 (1)函數(shù)體中的變量定義語(yǔ)句,必須在所有可執(zhí)行語(yǔ)句之前。 下面程序中變量定義語(yǔ)句“int max;”的位置是非法的: main( ) int m,n; /*變量定義語(yǔ)句:定義2個(gè)整型變量x、y*/ m=3; /*可執(zhí)行的賦值語(yǔ)句:將3賦值給變量x*/ n=6; /*可執(zhí)行的賦值語(yǔ)句:將6賦值給變量y*/ int max; /*變量定義出現(xiàn)在可執(zhí)行的賦值語(yǔ)句“m=3; n=6;”之后,非法!*/ max=xy?x:y; printf(“max=%dn”,max); 解決辦法很簡(jiǎn)單,請(qǐng)讀者自己思考。 (2)如果不需要,也可以缺省變量定義語(yǔ)句。,1.3.3 源程序書(shū)寫(xiě)格式,1所有語(yǔ)句都必須以分號(hào)“;”結(jié)束,函數(shù)的最后一個(gè)語(yǔ)句也不例外。 2程序行的書(shū)寫(xiě)格式自由,既允許1行內(nèi)寫(xiě)幾條語(yǔ)句,也允許1條語(yǔ)句分寫(xiě)在幾行上。 例如,例1.2的主函數(shù)main( ),也可改寫(xiě)成如下所示的格式: main( ) int num1,num2; printf(“Input the first integer number: ”);scanf(“%d”, ,1.3.3 源程序書(shū)寫(xiě)格式,如果某條語(yǔ)句很長(zhǎng),一般需要將其分寫(xiě)在幾行上。 3允許使用注釋。 C語(yǔ)言的注釋格式為: /* */ 例如,在例1.1和例1.2中,以及本節(jié)其它部分給出的源程序中,凡是用“/*”和“*/”括起來(lái)的文字,都是注釋。注釋可以出現(xiàn)在程序的任何部分,在簡(jiǎn)單的程序中可以沒(méi)有注釋。 (1)“/*”和“*/”必須成對(duì)使用,且“/”和“*”、以及“*”和“/”之間不能有空格,否則都出錯(cuò)。 技巧 (2)注釋的位置,可以單占1行,也可以跟在語(yǔ)句的后面。 (3)如果1行寫(xiě)不下,可另起1行繼續(xù)寫(xiě)。 ( (4)注釋中允許使用漢字。在非中文操作系統(tǒng)下,看到的是一串亂碼,但不影響程序運(yùn)行。,1.4 C語(yǔ)言的基本符號(hào),任何一個(gè)計(jì)算機(jī)系統(tǒng)所使用的字符都是固定的、有限的。它要受硬件設(shè)備的限制。C語(yǔ)言與其它語(yǔ)言一樣。它的基本符號(hào)有英文字母、阿拉伯?dāng)?shù)字以及其它特殊符號(hào)。其中有: 英文字母 26個(gè)(包括大寫(xiě)和小寫(xiě)) 阿拉伯?dāng)?shù)字 10,即從0 到9 其它特殊符號(hào)主要指運(yùn)算符,運(yùn)算符通常由一至兩個(gè)特殊符號(hào)組成。比如: +,-,*,/,%,=,等。 標(biāo)識(shí)符用來(lái)表示函數(shù)、類(lèi)型或變量的名稱(chēng),它是字母和數(shù)字的排列,但必須是字母開(kāi)頭。連字符_(低短橫線(xiàn))也稱(chēng)為字母。它在書(shū)寫(xiě)名稱(chēng)時(shí)很方便,大小寫(xiě)字母含義不同。標(biāo)識(shí)符中只有前八個(gè)字符有意義,可以相互區(qū)別。但各種匯編程序和裝入程序使用的外部標(biāo)識(shí)符限制較多,用戶(hù)必須注意有關(guān)資料的規(guī)定。,1.4 C語(yǔ)言的基本符號(hào),按照C語(yǔ)言的習(xí)慣,變量名用小寫(xiě)字母,符號(hào)常數(shù)全部用大寫(xiě)字母,函數(shù)名及外部變量名由六個(gè)字符組成。 根據(jù)程序設(shè)計(jì)的經(jīng)驗(yàn),標(biāo)識(shí)符的選擇采用“常用從簡(jiǎn),專(zhuān)用從繁”的原則。一般不必太長(zhǎng),通常在六個(gè)字符之內(nèi)能適應(yīng)各種系統(tǒng)。 應(yīng)盡量做到“見(jiàn)名知意”,即選有含義的英文單詞(或其縮寫(xiě))或其漢語(yǔ)拼音作標(biāo)識(shí)符,如sum,name,year,total,zongshu等。 在操作系統(tǒng)中,C語(yǔ)言源程序的文件屬性為“.c”。因此,完整的文件名稱(chēng)為*.c,這樣有利于編譯程序?qū)語(yǔ)言源程序進(jìn)行編譯。 C語(yǔ)言與其它語(yǔ)言一樣,有一些具有特定含義的關(guān)鍵字,它們不允許做為用戶(hù)標(biāo)識(shí)符使用,一旦使用了就會(huì)出錯(cuò)。,1.4 C語(yǔ)言的基本符號(hào),C語(yǔ)言的關(guān)鍵字共有32個(gè),根據(jù)關(guān)鍵字的作用,可分其為數(shù)據(jù)類(lèi)型關(guān)鍵字、控制語(yǔ)句關(guān)鍵字、存儲(chǔ)類(lèi)型關(guān)鍵字和其它關(guān)鍵字四類(lèi)。 (1)數(shù)據(jù)類(lèi)型關(guān)鍵字(12個(gè)):char,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論