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

下載本文檔

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

文檔簡介

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論