C語(yǔ)言課件譚浩強(qiáng).ppt_第1頁(yè)
C語(yǔ)言課件譚浩強(qiáng).ppt_第2頁(yè)
C語(yǔ)言課件譚浩強(qiáng).ppt_第3頁(yè)
C語(yǔ)言課件譚浩強(qiáng).ppt_第4頁(yè)
C語(yǔ)言課件譚浩強(qiáng).ppt_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

VIP免費(fèi)下載

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

文檔簡(jiǎn)介

第1章 語(yǔ)言概述,本章主要介紹C語(yǔ)言程序的結(jié)構(gòu)和書寫規(guī)則,以及Turbo C V2.0的基本操作。 1.1 C語(yǔ)言的發(fā)展簡(jiǎn)史和特點(diǎn) 1.2 語(yǔ)言程序的結(jié)構(gòu)與書寫規(guī)則 1.3 C語(yǔ)言的語(yǔ)句和關(guān)鍵字 1.4 Turbo C V2.0的基本操作 1.5 本章小結(jié) Return,1.1 C語(yǔ)言的發(fā)展簡(jiǎn)史和特點(diǎn),1語(yǔ)言的誕生與發(fā)展 (1)在C語(yǔ)言誕生以前,系統(tǒng)軟件主要是用匯編語(yǔ)言編寫的。由于匯編語(yǔ)言程序依賴于計(jì)算機(jī)硬件,其可讀性和可移植性都很差;但一般的高級(jí)語(yǔ)言又難以實(shí)現(xiàn)對(duì)計(jì)算機(jī)硬件的直接操作(這正是匯編語(yǔ)言的優(yōu)勢(shì)),于是人們盼望有一種兼有匯編語(yǔ)言和高級(jí)語(yǔ)言特性的新語(yǔ)言。 (2)語(yǔ)言是貝爾實(shí)驗(yàn)室于70年代初研制出來的,后來又被多次改進(jìn),并出現(xiàn)了多種版本。80年代初,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI),根據(jù)語(yǔ)言問世以來各種版本對(duì)語(yǔ)言的發(fā)展和擴(kuò)充,制定了ANSI C標(biāo)準(zhǔn)(1989年再次做了修訂)。,1960年,ALGOL 60高級(jí)語(yǔ)言 1963年,CPL語(yǔ)言 1967年,BCPL語(yǔ)言 1970年,UNIX操作系統(tǒng)(B語(yǔ)言) 1972年,C語(yǔ)言 1973年, UNIX操作系統(tǒng)(C語(yǔ)言) 1977年, C語(yǔ)言編譯文本 1978年,標(biāo)準(zhǔn)C 本書以ANSI C新標(biāo)準(zhǔn)來介紹。,(3)目前,在微機(jī)上廣泛使用的語(yǔ)言編譯系統(tǒng)有Microsoft C、Turbo C 、Borland C等。雖然它們的基本部分都是相同的,但還是有一些差異, 所以請(qǐng)大家注意自己所使用的編譯系統(tǒng)的特點(diǎn)和規(guī)定(參閱相應(yīng)的手冊(cè))。 本書選定的上機(jī)環(huán)境是TC V2.0(DOS操作系統(tǒng))。 2C語(yǔ)言的特點(diǎn) C語(yǔ)言同時(shí)具有匯編語(yǔ)言和高級(jí)語(yǔ)言的優(yōu)勢(shì)。 (1) 語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活 (2) 運(yùn)算符豐富 (3) 數(shù)據(jù)結(jié)構(gòu)豐富 (4) 具有結(jié)構(gòu)化的控制語(yǔ)句 (5) 語(yǔ)法限制不太嚴(yán)格 (6) 允許直接訪問物理地址 (7) 生成目標(biāo)代碼質(zhì)量高 (8) 程序可移植性好,3. 在C語(yǔ)言中,除實(shí)現(xiàn)順序、選擇和循環(huán)三種基本結(jié)構(gòu)等的9條控制語(yǔ)句外,輸入輸出操作均由標(biāo)準(zhǔn)庫(kù)函數(shù)(不是C語(yǔ)言的組成部分)來實(shí)現(xiàn)。 所以學(xué)習(xí)C語(yǔ)言,不僅要學(xué)習(xí)這9條控制語(yǔ)句和各種運(yùn)算符,而且要學(xué)習(xí)并掌握常用標(biāo)準(zhǔn)庫(kù)函數(shù)的使用。 Return,1.2 語(yǔ)言程序的結(jié)構(gòu)與書寫規(guī)則,1.2.1 語(yǔ)言程序的總體結(jié)構(gòu) 一個(gè)完整的語(yǔ)言程序,是由一個(gè)main()函數(shù)(又稱主函數(shù))和若干個(gè)其它函數(shù)結(jié)合而成的,或僅由一個(gè)main()函數(shù)構(gòu)成。 案例1.1 僅由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.2 由main()函數(shù)和1個(gè)其它函數(shù)max()構(gòu)成的語(yǔ)言程序。 /*功能:由main()函數(shù)和1個(gè)其它函數(shù)max()構(gòu)成的語(yǔ)言程序示例*/ int max(int x, int y) return( xy ? x : y ); main() int num1,num2; printf(“Input the first integer number: ”); scanf(“%d”, 程序運(yùn)行情況: Input the first integer number:6 Input the second integer number:9 max=9 程序演示,案例1.3 改寫案例1.2,交換main()函數(shù)和max()函數(shù)的前后位置。 源程序略。 程序運(yùn)行情況: Input the first integer number:6 Input the second integer number:9 max=9 1.函數(shù)是語(yǔ)言程序的基本單位。 main()函數(shù)的作用,相當(dāng)于其它高級(jí)語(yǔ)言中的主程序;其它函數(shù)的作用,相當(dāng)于子程序。 2.C語(yǔ)言程序總是從main()函數(shù)開始執(zhí)行。 一個(gè)語(yǔ)言程序,總是從main()函數(shù)開始執(zhí)行,而不論其在程序中的位置。當(dāng)主函數(shù)執(zhí)行完畢時(shí),亦即程序執(zhí)行完畢。 習(xí)慣上,將主函數(shù)main()放在最前頭。,1.2.2 函數(shù)的一般結(jié)構(gòu) 任何函數(shù)(包括主函數(shù)main())都是由函數(shù)說明和函數(shù)體兩部分組成。其一般結(jié)構(gòu)如下: 函數(shù)類型 函數(shù)名(函數(shù)參數(shù)表) 函數(shù)說明部分 說明語(yǔ)句部分; 執(zhí)行語(yǔ)句部分; 函數(shù)體部分 1. 使用的語(yǔ)法符號(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ù)說明各部分如圖1-1所示。 函數(shù)類型 函數(shù)名 函數(shù)參數(shù)表 int max ( int x , int y ) 圖1-1 函數(shù)說明部分結(jié)構(gòu)圖 注意:在舊標(biāo)準(zhǔn)中,函數(shù)可以缺省參數(shù)表。 3.函數(shù)體 在函數(shù)說明部分的下面、大括號(hào)(必須配對(duì)使用)內(nèi)的部分。 函數(shù)體一般由說明語(yǔ)句和可執(zhí)行語(yǔ)句兩部分構(gòu)成: (1)說明語(yǔ)句部分 說明語(yǔ)句部分由變量定義、自定義類型定義、自定義函數(shù)說明、外部變量說明等組成。,(2)可執(zhí)行語(yǔ)句 一般由若干條可執(zhí)行語(yǔ)句構(gòu)成。圖1-2是案例1.2的main()函數(shù)體的示意圖。 /*主函數(shù)main()*/ main() int num1,num2; 變量定義部分 printf(“Input the first integer number: ”); scanf(“%d”, 圖1-2 函數(shù)體結(jié)構(gòu)示意圖 4.說明 (1)函數(shù)體中的變量定義語(yǔ)句,必須在所有可執(zhí)行語(yǔ)句之前。 下面程序中變量定義語(yǔ)句“int max;”的位置是非法的:,main() int x,y; /*變量定義語(yǔ)句:定義2個(gè)整型變量x、y*/ x=3; /*可執(zhí)行的賦值語(yǔ)句:將3賦值給變量x*/ y=6; /*可執(zhí)行的賦值語(yǔ)句:將6賦值給變量y*/ int max; /*變量定義語(yǔ)句:出現(xiàn)在可執(zhí)行的 賦值語(yǔ)句“x=3;”和“ y=6;”之后,非法!*/ max=xy?x:y; printf(“max=%dn”,max); 解決辦法很簡(jiǎn)單,請(qǐng)讀者自己思考。 (2)如果不需要,也可以缺省變量定義語(yǔ)句。 1.2.3 源程序書寫格式 1.所有語(yǔ)句都必須以分號(hào)“;”結(jié)束,函數(shù)的最后一個(gè)語(yǔ)句也不例外。 2.程序行的書寫格式自由,既允許1行內(nèi)寫幾條語(yǔ)句,也允許1條語(yǔ)句分寫在幾行上。,例如,案例1.2的主函數(shù)main(),也可改寫成如下所示的格式: main() int num1,num2; printf(“Input the first integer number: ”); scanf(“%d”, 如果某條語(yǔ)句很長(zhǎng),一般需要將其分寫在幾行上。 3.允許使用注釋。 C語(yǔ)言的注釋格式為: /* */ 例如,在案例1.1和案例1.2中,以及本節(jié)其它部分給出的源程序中,凡是用“/*”和“*/”括起來的文字,都是注釋。 (1) “/*”和“*/” 必須成對(duì)使用,且“/”和“*”、以及“*”和“/”之間不能有空格,否則都出錯(cuò)。,技巧:為避免遺漏必須配對(duì)使用的符號(hào),例如注釋符號(hào)、函數(shù)體的起止標(biāo)識(shí)符(花括號(hào))、圓括號(hào)()等等,在輸入時(shí),可連續(xù)輸入這些起止標(biāo)識(shí)符,然后再在其中進(jìn)行插入來完成內(nèi)容的編輯。在起止標(biāo)識(shí)符嵌套時(shí),以及相距較遠(yuǎn)時(shí),這樣做更有必要。 (2)注釋的位置,可以單占1行,也可以跟在語(yǔ)句的后面。 (3)如果1行寫不下,可另起1行繼續(xù)寫。 (4)注釋中允許使用漢字。在非中文操作系統(tǒng)下,看到的是一串亂碼,但不影響程序運(yùn)行。 Return,1.3 C語(yǔ)言的語(yǔ)句和關(guān)鍵字,1.3.1 C語(yǔ)言的語(yǔ)句 與其它高級(jí)語(yǔ)言一樣,語(yǔ)言也是利用函數(shù)體中的可執(zhí)行語(yǔ)句,向計(jì)算機(jī)系統(tǒng)發(fā)出操作命令。按照語(yǔ)句功能或構(gòu)成的不同,可將語(yǔ)言的語(yǔ)句分為五類。 1.控制語(yǔ)句 控制語(yǔ)句完成一定的控制功能。語(yǔ)言只有條控制語(yǔ)句,又可細(xì)分為三種: ( 1)選擇結(jié)構(gòu)控制語(yǔ)句 if()else, switch() (2)循環(huán)結(jié)構(gòu)控制語(yǔ)句 dowhile(), for(), while(), break, continue,(3)其它控制語(yǔ)句 goto, return 2. 函數(shù)調(diào)用語(yǔ)句 函數(shù)調(diào)用語(yǔ)句由一次函數(shù)調(diào)用加一個(gè)分號(hào)(語(yǔ)句結(jié)束標(biāo)志)構(gòu)成。 例如,printf(“This is a C function statement.“); 3. 表達(dá)式語(yǔ)句 表達(dá)式語(yǔ)句由表達(dá)式后加一個(gè)分號(hào)構(gòu)成。最典型的表達(dá)式語(yǔ)句是,在賦值表達(dá)式后加一個(gè)分號(hào)構(gòu)成的賦值語(yǔ)句。 例如,“num=5 ”是一個(gè)賦值表達(dá)式,而“num=5;”卻是一個(gè)賦值語(yǔ)句。 4. 空語(yǔ)句 空語(yǔ)句僅由一個(gè)分號(hào)構(gòu)成。顯然,空語(yǔ)句什么操作也不執(zhí)行。,例如,下面就是一個(gè)空語(yǔ)句: ; 5. 復(fù)合語(yǔ)句 復(fù)合語(yǔ)句是由大括號(hào)括起來的一組(也可以是1條)語(yǔ)句構(gòu)成。例如: main() /*復(fù)合語(yǔ)句。注意:右括號(hào)后不需要分號(hào)。*/ 復(fù)合語(yǔ)句的性質(zhì): (1)在語(yǔ)法上和單一語(yǔ)句相同,即單一語(yǔ)句可以出現(xiàn)的地方,也可以使用復(fù)合語(yǔ)句。 (2)復(fù)合語(yǔ)句可以嵌套,即復(fù)合語(yǔ)句中也可出現(xiàn)復(fù)合語(yǔ)句。,1.3.2 關(guān)鍵字 C語(yǔ)言的關(guān)鍵字共有32個(gè),根據(jù)關(guān)鍵字的作用,可分其為數(shù)據(jù)類型關(guān)鍵字、控制語(yǔ)句關(guān)鍵字、存儲(chǔ)類型關(guān)鍵字和其它關(guān)鍵字四類。 (1)數(shù)據(jù)類型關(guān)鍵字(12個(gè)):char, double, enum, float, int, long, short, signed, struct, union, unsigned, void (2)控制語(yǔ)句關(guān)鍵字(12個(gè)):break, case, continue, default, do, else, for, goto, if, return, switch, while (3)存儲(chǔ)類型關(guān)鍵字(4個(gè)):auto, extern, register, static (4)其它關(guān)鍵字(4個(gè)):const, sizeof, typedef, volatile Return,1.4 Turbo C V2.0的基本操作,1.運(yùn)行一個(gè)語(yǔ)言程序的一般過程 2.TC的啟動(dòng)、退出與命令菜單 3.編輯并保存一個(gè)語(yǔ)言源程序 4.編譯、連接單個(gè)源程序文件 5.運(yùn)行與查看結(jié)果 6.編輯下一個(gè)新的源程序 Return,1.運(yùn)行一個(gè)語(yǔ)言程序的一般過程 urbo 是一個(gè)集源程序編輯、編譯、連接、運(yùn)行與調(diào)試于一體、 用菜單驅(qū)動(dòng)的集成軟件環(huán)境。 運(yùn)行一個(gè)語(yǔ)言程序的一般過程: (1)啟動(dòng)TC,進(jìn)入TC集成環(huán)境。 (2)編輯(或修改)源程序。 (3)編譯。如果編譯成功,則可進(jìn)行下一步操作;否則,返回(2)修改源程序,再重新編譯,直至編譯成功。 (4)連接。如果連接成功,則可進(jìn)行下一步操作;否則,根據(jù)系統(tǒng)的錯(cuò)誤提示,進(jìn)行相應(yīng)修改,再重新連接,直至連接成功。 (5)運(yùn)行。通過觀察程序運(yùn)行結(jié)果,驗(yàn)證程序的正確性。如果出現(xiàn)邏輯錯(cuò)誤,則必須返回(2)修改源程序,再重新編譯、連接和運(yùn)行,直至程序正確。 (6)退出TC集成環(huán)境,結(jié)束本次程序運(yùn)行。 Return,2.TC的啟動(dòng)、退出與命令菜單 (1)啟動(dòng)Turbo C: tc 啟動(dòng)Turbo C后,其主菜單條橫向排列在屏幕頂端,并被激活,其中File主項(xiàng)成為當(dāng)前項(xiàng)。 主菜單的下面,是Edit(編輯)窗口和Message(消息)窗口。兩個(gè)窗口中,頂端橫線為雙線顯示的,表示該窗口是活動(dòng)窗口。 編輯窗口的頂端為狀態(tài)行,其中: Line 1 Col 1:顯示光標(biāo)所在的行號(hào)和列號(hào),即光標(biāo)位置。 Insert:表示編輯狀態(tài)處于“插入”。當(dāng)處于“改寫”狀態(tài)時(shí),此處為空白。 d: NONAME.C:顯示當(dāng)前正在編輯的文件名。顯示為“NONAME.C”時(shí),表示用戶尚未給文件命名。 屏幕底端是7個(gè)功能鍵的說明,以及Num Lock鍵的狀態(tài)(顯示“NUM”時(shí),表示處于“數(shù)字鍵”狀態(tài);空白,表示“控制鍵”狀態(tài))。,(2)命令菜單的使用 1)按下功能鍵F10,激活主菜單。如果主菜單已經(jīng)被激活,則直接轉(zhuǎn)下一步。 2)用左、右方向鍵移動(dòng)光帶,定位于需要的主項(xiàng)上,然后再按回車鍵,打開其子菜單(縱向排列)。 3)用上、下方向鍵移動(dòng)光帶,定位于需要的子項(xiàng)上,回車即可。執(zhí)行完選定的功能后,系統(tǒng)自動(dòng)關(guān)閉菜單。 注意:菜單激活后,又不使用,可再按F10Esc鍵關(guān)閉,返回原來狀態(tài)。 (3)退出Turbo C 退出TC有兩種方法: 1)菜單法:File | Quit(先選擇File主項(xiàng),再選擇并執(zhí)行Quit子項(xiàng)) 2)快捷鍵法:Alt+“X”(先按下Alt鍵并保持,再按字母鍵,然后同時(shí)放開) Return,3.編輯并保存一個(gè)語(yǔ)言源程序 (1)激活主菜單,選擇并執(zhí)行File | Load項(xiàng)(快捷鍵鍵:F3)。 (2)在“Load File Name”窗口,輸入源程序文件名。 文件名的輸入有兩種方法:直接輸入和選擇輸入。 1)直接輸入 按照文件名的組成字符串,逐個(gè)字符輸入即可。 如果是已經(jīng)存在的文件,系統(tǒng)就在編輯窗口顯示該文件的內(nèi)容,可供編輯、修改。如果是新文件,則給出一個(gè)空白編輯窗口,可供輸入新的源程序。 如果該文件不在當(dāng)前目錄下,則需要冠以路徑名和(或)盤符。 2)選擇文件(僅適用于已經(jīng)存在的源程序文件) 空回車,打開當(dāng)前目錄下、后綴為.的所有文件的文件名窗口。 用上、下、左、右方向鍵,將光帶定位于所需的文件名上。 按回車鍵。,(3)常用編輯操作 在編輯源程序過程中,隨時(shí)都可以按F2鍵(或File | Save),將當(dāng)前編輯的文件存盤,然后繼續(xù)編輯。這是一個(gè)良好的習(xí)慣! 關(guān)于在線幫助: 在任何窗口(或狀態(tài))下,按F1鍵激活活動(dòng)窗口(或狀態(tài))的在線幫助: 下一頁(yè)P(yáng)ageDown,返回上一頁(yè)P(yáng)ageUp 關(guān)閉在線幫助、返回原窗口(或狀態(tài))Esc 返回前一個(gè)在線幫助屏Alt+F1(無(wú)論在線幫助是否被激活) 返回在線幫助索引F1:激活在線幫助后,再按F1,則返回在線幫助索引,以便查詢其它類別在線幫助信息。 查詢庫(kù)函數(shù)的在線幫助信息F1:將光標(biāo)移到需要查詢函數(shù)名的首字符上,然后鍵入F1,即可獲得該庫(kù)函數(shù)的在線幫助信息。 注:為簡(jiǎn)化描述,用“”代表“Ctrl”鍵。Fn就是Ctrl+Fn,下同。 Return,4.編譯、連接單個(gè)源程序文件 選擇并執(zhí)行Compile | Make EXE File項(xiàng)(快捷鍵:F9),則TC將自動(dòng)完成對(duì)當(dāng)前正在編輯的源程序文件的編譯、連接,并生成可執(zhí)行文件。 如果源程序有語(yǔ)法錯(cuò)誤,系統(tǒng)將在屏幕中央的“Compiling ”(編譯)窗口底端提示“Error: Press any key”(錯(cuò)誤:按任意鍵)。 此時(shí),按空格鍵,屏幕下端的“Message”(消息)窗口被激活, 顯示出錯(cuò)(或警告)信息,光帶停在第一條消息上。這時(shí)“Edit”(編輯)窗口中也有一條光帶,它總是停在編譯錯(cuò)誤在源代碼中的相應(yīng)位置。 注意:當(dāng)用上、下鍵移動(dòng)消息窗口中的光帶時(shí),編輯窗口中的光帶也隨之移動(dòng),始終跟蹤源代碼中的錯(cuò)誤位置! Return,5.運(yùn)行與查看結(jié)果 (1)運(yùn)行當(dāng)前正在編輯的源程序文件 選擇并執(zhí)行Run | Run項(xiàng)(快捷鍵:F9),程序運(yùn)行結(jié)束后, 仍返回到編輯窗口。 當(dāng)你認(rèn)為自己的源程序不會(huì)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論