第1章 C語言概述課件.ppt_第1頁
第1章 C語言概述課件.ppt_第2頁
第1章 C語言概述課件.ppt_第3頁
第1章 C語言概述課件.ppt_第4頁
第1章 C語言概述課件.ppt_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、教學(xué)目標(biāo):通過本講幫助學(xué)生了解C語言的特點(diǎn) 、掌握C程序的基本結(jié)構(gòu)和熟悉C程序的編輯、編譯、調(diào)試和運(yùn)行過程。 了解: C語言的特點(diǎn)。 重點(diǎn): C程序的基本結(jié)構(gòu); C程序的編輯、編譯、調(diào)試和運(yùn)行過程、C語言的上機(jī)環(huán)境。 教學(xué)方法:理論教學(xué)與實(shí)踐教學(xué)相結(jié)合。,第一章 C 語 言 概 述,1.1 C語言的發(fā)展簡史與特色 1.2關(guān)鍵字和語句形式 1.3源程序的結(jié)構(gòu)特點(diǎn) 1.4 C程序的實(shí)現(xiàn) 1.5 程序的三種基本結(jié)構(gòu)與流程圖,CPU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成 如:10000000 加 10010000 減,1.1 C語言的發(fā)展簡史與特色,1.1.1 C語言發(fā)展簡史,面向機(jī)器的語言 亦稱低級

2、語言,用助記符號描述的指令系統(tǒng) 如 ADD A, B,描述數(shù)據(jù)處理的過程,客觀世界可以分類,對象是類的實(shí)例 對象是數(shù)據(jù)和方法的封裝 對象間通過發(fā)送和接受消息發(fā)生聯(lián)系,程序設(shè)計(jì)語言的發(fā)展,第 1章 C 語 言 概述,在 C 語言誕生以前,系統(tǒng)軟件主要是用匯編語言編寫的。由于匯編語言程序依賴于計(jì)算機(jī)硬件,其可讀性和可移植性都很差;但一般的高級語言又難以實(shí)現(xiàn)對計(jì)算機(jī)硬件的直接操作(這正是匯編語言的優(yōu)勢),于是人們盼望有一種兼有匯編語言和高級語言特性的新語言。 C語言是從B語言的基礎(chǔ)上發(fā)展而來的。,C語言產(chǎn)生背景,C語言發(fā)展過程,C的產(chǎn)生 時間:19721973 地點(diǎn):美國貝爾實(shí)驗(yàn)室 目的:UNIX操

3、作系統(tǒng) 設(shè)計(jì)人: Ken.Thompson和Dennis.M.Ritchie C標(biāo)準(zhǔn) 標(biāo)準(zhǔn)C: K /* 多分支語句 */ for(;) /* for循環(huán)語句 */ while() /* while循環(huán)語句 */ do ; while(); /* do while循環(huán)語句 */ continue; /* 無條件進(jìn)行下一次循環(huán)語句 */ break; /* 無條件結(jié)束當(dāng)前層循環(huán) 或跳出switch語句 */ goto /* 無條件跳轉(zhuǎn)到程序指定處語句 */ return /* 函數(shù)調(diào)用結(jié)束返回語句 */,說明:其中“”代表一個或多個表達(dá)式或語句,括號內(nèi)為表達(dá)式,括號外為語句。, 函數(shù)調(diào)用語句 函

4、數(shù)名(實(shí)參表達(dá)式表); 表達(dá)式語句 表達(dá)式; 空語句 ;或/* 不做任何操作 */ 復(fù)合語句(分程序) 說明:C程序中可以使用注釋 注釋方法是:/*說明文字*/ 注意:注釋不是C語句,用來說明程序段的功能,注釋的部分不參加程序編譯和運(yùn)行,第 1章 C 語 言 概述,解析:main是主函數(shù)的函數(shù)名,表示這是一個主函數(shù)。 “”括起來的部分是main函數(shù)的函數(shù)體。 以“;”結(jié)尾的是一條C語句。 printf函數(shù)是一個由系統(tǒng)定義的標(biāo)準(zhǔn)函數(shù),可在程序中直接調(diào)用。printf函數(shù)的功能是把要輸出的內(nèi)容送到顯示器去顯示。,/* Hello.c :The first C Program */ main() p

5、rintf(“Hello,World!”); ,1.3 源程序的結(jié)構(gòu)特點(diǎn),先看以下幾個程序。從這些例子中了解到組成一個C源程序的基本部分和書寫格式。,【例1.1】在屏幕上顯示一行信息,輸出: Hello,World!,【例1.2】給定半徑,計(jì)算圓的面積。 /*area.c*/ #include “stdio.h” /* 文件包含命令*/ #define PI 3.1415926 /* 宏定義命令*/ main() /* 主函數(shù) */ float area(float x); /* 函數(shù)引用說明 */ float r,s; /* 變量定義 */ printf(“Input radius:”);

6、/* 輸出提示信息 */ scanf(%f, /* 顯示輸出結(jié)果 */ ,第 1章 C 語 言 概述,float area(float x) /* 計(jì)算面積函數(shù) */ float y; y=PI*x*x; return y; /* 返回計(jì)算結(jié)果 */ ,必有且僅有一個主函數(shù),可以有用戶自定義函數(shù),運(yùn)行結(jié)果: Input radius:10 Radius:10.000000Area:314.159271 帶下劃線的信息表示用戶從鍵盤輸入的信息,“”表示回車。,第 1章 C 語 言 概述,【例1.3】輸入若干行字符,輸出最長的字符串。 將該程序分兩個C程序文件和一個工程文件完成。 /* C源程序文

7、件FILE1.C中的內(nèi)容為 */ #include stdio.h #define MAXLINE 80 int max; char lineMAXLINE; char longestMAXLINE; extern int getline(void); void copy(void); main( ) /* 主函數(shù)main() */ int len; max=0;,while(len=getline()0) if(lenmax) max=len; copy(); if(max0) puts(longest); void copy(void) /* 復(fù)制最長串函數(shù) */ int i; for(i

8、=0;(longesti=linei)!=0;i+); ,/* C源程序文件FILE2.C中的內(nèi)容為 */ #define MAXLINE 80 #include stdio.h extern int max; /* 全局變量引用說明, max在FILE1.C中定義 */ int getline(void) /* 獲取輸入串函數(shù) */ int c,i; extern char line; for(i=0;iMAXLINE-1 /* 返回串長值 */ ,/* 工程文件F12.PRJ的內(nèi)容為 */ file1.c file2.c 該工程文件名要加在“Project”菜單中的 “Project na

9、me”菜單項(xiàng)上。 運(yùn)行結(jié)果: China Japan English American Italian German Korean American /* 最長串被輸出 */,從上面的程序可以大概看出以下幾點(diǎn): 一個程序可以由多個文件構(gòu)成,每個文件可以由多個函數(shù)構(gòu)成。每個函數(shù)完成一個特定的功能,它由一組語句構(gòu)成。函數(shù)是C程序的基本單位,是C語言的靈魂;語句是C程序的最小的語言單位。 一個C程序中有且僅有一個名為main()主函數(shù),它是程序執(zhí)行的入口。 程序中用到的各種各樣的變量要先定義后使用,有時還要加上變量引用說明和函數(shù)聲明。 注意:函數(shù)體中的變量定義語句,必須在所有可執(zhí)行語句之前。,所有語

10、句都必須以分號 “ ;” 結(jié)束,函數(shù)的最后一個語句也不例外。 例如:下面程序中變量定義語句 “int max ; ” 的位置是非法的: main() int x,y; /* 變量定義語句:定義 2 個整型變量 x 、 y*/ x=3; /* 可執(zhí)行的賦值語句:將 3 賦值給變量 x*/ y=6; /* 可執(zhí)行的賦值語句:將 6 賦值給變量 y*/ int max; /*非法!變量定義語句:出現(xiàn)在可執(zhí)行的賦值語句 “x=3;” 和 “ y=6;” 之后,*/ max=xy?x:y; printf(“max=%dn”,max); ,由“#”開頭的行都是C語言中的編譯預(yù)處理命令,末尾無分號。它們不是

11、真正的語句。 C語句書寫格式自由,既允許 1 行內(nèi)寫幾條語句,也允許 1 條語句分寫在幾行上。 允許使用注釋。C 語言的注釋格式為: /* */ 注意:“/*” 和 “*/” 必須成對使用,且 “/” 和 “*” 、以及 “*” 和 “/” 之間不能有空格,否則都出錯。 注釋的位置:可以單占 1 行;可以跟在語句的后面; ;如果 1 行寫不下,可另起 1 行繼續(xù)寫。 注釋中允許使用漢字。在非中文操作系統(tǒng)下,看到的是一串亂碼,但不影響程序運(yùn)行。 注釋不參加編譯,不會被執(zhí)行,第 1章 C 語 言 概述,C語言標(biāo)識符區(qū)分大小寫字母,系統(tǒng)關(guān)鍵字都是小寫字母構(gòu)成,用戶起的變量名、函數(shù)名等標(biāo)識符一般也用小

12、寫字母,宏名通常用大寫字母表示,以區(qū)別于變量名。 標(biāo)識標(biāo)的起名字符集是: 大小寫字母、數(shù)字、下劃線;規(guī)則為:不能以數(shù)字開頭(字母或下劃線開頭后接字母、數(shù)字、下劃線), 名稱要盡量有一定意義,做到“見名知義”。,1.4 C程序的實(shí)現(xiàn),1.4.1 實(shí)現(xiàn)步驟,C程序在計(jì)算機(jī)上的實(shí)現(xiàn)一般要經(jīng)過編輯、編譯、連接、運(yùn)行四個步驟,如圖 1.7 所示。,圖 1.7,.obj,.,.exe,1. 編輯 編輯是將C語言的源程序輸入計(jì)算機(jī), 并以文本文件的形式存儲在磁盤。編輯是建立C源程序文件的過程, 源程序文件的擴(kuò)展名為 .c。 編輯可以用任何文字處理軟件完成, 一般用編譯器本身集成的編輯器進(jìn)行編輯。,2. 編譯

13、 C語言是以編譯方式實(shí)現(xiàn)的高級語言, C程序的實(shí)現(xiàn)必須經(jīng)過編譯程序?qū)υ闯绦蜻M(jìn)行編譯, 生成目標(biāo)代碼程序。目標(biāo)代碼程序的擴(kuò)展名為 .obj。 編譯前先進(jìn)行預(yù)處理。編譯過程主要進(jìn)行詞法分析和語法分析。 編譯有錯時, 在屏幕上列出錯誤的位置和種類。此時, 要返回到編輯步驟修改源程序,修改后, 再進(jìn)行編譯。,3. 連接 編譯形成的目標(biāo)代碼程序機(jī)器可以識別, 但還不能直接執(zhí)行, 還需要將目標(biāo)代碼程序與庫文件進(jìn)行連接處理, 連接工作由連接程序完成。經(jīng)過連接, 生成可執(zhí)行文件。 可執(zhí)行文件的擴(kuò)展名為 .exe。 連接有錯同樣需返回到編輯步驟修改源程序, 修改后, 再進(jìn)行編譯、 連接。,4. 運(yùn)行 一個C源程

14、序經(jīng)過編譯、連接后生成了可執(zhí)行文件。運(yùn)行可執(zhí)行文件, 可通過編譯系統(tǒng)下的運(yùn)行功能, 也可像執(zhí)行DOS的外部命令一樣, 輸入執(zhí)行文件名運(yùn)行。 程序運(yùn)行后, 一般在屏幕上顯示運(yùn)行結(jié)果。根據(jù)運(yùn)行結(jié)果可以判斷程序是否還有算法方面的錯誤。 編譯時產(chǎn)生的錯誤是語法錯誤, 運(yùn)行時出現(xiàn)的錯誤是邏輯錯誤。出現(xiàn)邏輯錯誤時需要修改算法, 重新編輯、 編譯、 運(yùn)行程序。,1.4.2 程序的執(zhí)行,C程序的執(zhí)行總是從主函數(shù)main( )開始, 不管主函數(shù)在程序中什么位置。主函數(shù)中的語句依先后順序執(zhí)行, 除非改變了程序的執(zhí)行流程。 主函數(shù)main( )是唯一的一個不需要調(diào)用的函數(shù),它由操作系統(tǒng)自動調(diào)用,而其它函數(shù)(包括庫函

15、數(shù)或用戶自定義函數(shù))必須被調(diào)用才能執(zhí)行。,1.4.3 TURBO C上機(jī)操作,1. 啟動TURBO C 方法一、在Windows環(huán)境中,找到TC文件夾,雙擊其中的tc.exe,即可啟動TURBO C進(jìn)入TURBO C的操作界面。 方法二、進(jìn)入DOS環(huán)境啟動TC。 點(diǎn)擊“開始運(yùn)行”,在打開的對話框里輸入“command”(或“cmd”)進(jìn)入DOS環(huán)境;更換至TC所在目錄,鍵入TC,可啟動TURBO C進(jìn)入操作界面。如果鍵入TC加C源文件名可以快速啟動TURBO C,并進(jìn)入編輯環(huán)境。,2. TURBO C操作界面 啟動TURBO C后, 主操作界面如圖1.8所示。,圖 1.8 TURBO C操作界

16、面,1) 組成 TURBO C主操作界面由主菜單區(qū)、編輯窗口、信息窗口、 熱鍵區(qū)四部分組成。 TURBO C的操作采用菜單驅(qū)動, 主菜單包括File(文件操作)、Edit(編輯操作)、Run(運(yùn)行操作)、Compile(編譯操作)、Project(工程文件)、Options(編譯選擇)及Debug(跟蹤排錯)各項(xiàng)。 熱鍵區(qū)提供常用操作的快速功能鍵方式, 如F1(幫助)、F2(保存文件)、F3(裝入文件)、F5(縮放窗口)、 F6(切換窗口)、ALT+F5(用戶屏幕)、ALT+X(退出TURBO C)等。 ,2) 主窗口 當(dāng)前操作窗口為主窗口(工作窗口), 主窗口為雙線框表示, 按F6可切換主窗

17、口, 按F5可縮放主窗口。 3) 菜單選擇 方式一: 按F10進(jìn)入主菜單區(qū), 通過菜單項(xiàng)的大寫字母選擇相應(yīng)菜單項(xiàng), 或通過光標(biāo)控制鍵(、 、 、 )移動高亮度光棒至相應(yīng)菜單項(xiàng), 按回車選擇相應(yīng)菜單項(xiàng)。 方式二: 用熱鍵ALT加相應(yīng)菜單項(xiàng)的大寫字母, 選擇相應(yīng)菜單項(xiàng)。 對子菜單項(xiàng)的選擇, 操作方法類似。,3. 編輯 編輯在編輯窗口中進(jìn)行, 有多種方式進(jìn)入編輯環(huán)境: 方式一: 選擇Edit菜單項(xiàng)。 方式二: 選擇File菜單項(xiàng)的子項(xiàng)New, 用于編輯新程序。 方式三: 選擇File菜單項(xiàng)的子項(xiàng)Load或按熱鍵F3, 裝入已有的程序, 用于修改程序。 方式四: 快速啟動編輯已有的程序。單擊選中已有C

18、文件-點(diǎn)擊右鍵,在彈出菜單中選擇“打開方式”-選擇“選擇程序”-選擇瀏覽,到TC目錄下找到tc.exe文件 - 點(diǎn)確定,可以快速打開已有文件并進(jìn)入編輯狀態(tài)。 ,以后操作就會發(fā)現(xiàn)快速啟動菜單中已經(jīng)有了tc.exe這一項(xiàng),選中文件選中右鍵,直接到快速啟動菜單中找到tc.exe就可以很方便地啟動C文件了。 切記:編輯過程中及編輯結(jié)束后要用F2或File菜單項(xiàng)的子項(xiàng)Save保存源代碼。,4. 編譯 TURBO C將編譯、連接一道完成。按熱鍵F9或選擇Compile項(xiàng)進(jìn)入編譯。編譯時發(fā)生錯誤, 返回編輯步驟,修改程序后, 再編譯程序。 ,5. 運(yùn)行 按熱鍵CTRL+F9或選擇Run項(xiàng)下的子項(xiàng)Run, 運(yùn)

19、行計(jì)算機(jī)中的程序。按ALT +F5鍵或選擇Run項(xiàng)下的子項(xiàng)User Screen進(jìn)入用戶屏幕, 查看程序運(yùn)行結(jié)果。 運(yùn)行時發(fā)生錯誤, 返回編輯步驟, 修改程序后, 再編譯、 運(yùn)行程序。 對于沒編譯的程序, 選擇運(yùn)行會先自動進(jìn)行編譯操作, 再運(yùn)行程序。,6. 退出 上機(jī)過程完成后,按熱鍵ALT+X或選擇File項(xiàng)的子項(xiàng)Quit退出TURBO C, 返回操作系統(tǒng)狀態(tài)。 ,習(xí)慣用小寫字母(宏名大寫除外),大小寫敏感 不使用行號,無程序行概念 可使用空行和空格 常用鋸齒形書寫格式,main( ) . . . . . . . ,main( ) int i , j , sum; sum=0; for(i=

20、1; i10;i+) for(j=1;j10;j+) sum+=i*j ; printf(“%dn”,sum); ,優(yōu)秀程序員的素質(zhì)之一: 使用TAB縮進(jìn) 對齊 有足夠的注釋 有合適的空行,書寫格式,函數(shù)與主函數(shù) 程序由一個或多個函數(shù)組成 必須有且只能有一個主函數(shù)main() 程序執(zhí)行從main開始,在main中結(jié)束,其它函數(shù)通過嵌套調(diào)用得以執(zhí)行。 程序語句 C程序由語句組成 用“;”作為語句終止符 注釋 /* */為注釋,不能嵌套 不產(chǎn)生編譯代碼,例: /*This is the main /* of example1.1*/ */,結(jié)構(gòu)特點(diǎn)小結(jié),編譯預(yù)處理命令不是C語句 常見的有#incl

21、ude 和 #define,練習(xí): 1.寫出最小的C程序和含有語句的最小C程序。 2.在下述程序段中,( )是錯誤的程序注釋方法. A.#include stdio.h main()/* note */ B. #include /*note*/ stdio.h C.#include main() int x/*note*/=10; D.main() int x=10; printf(%d,x); /* /*note*/ */,main() ,main() ; ,D,1.5 程序的三種基本結(jié)構(gòu)與流程圖簡介,程序的三種結(jié)構(gòu): 順序結(jié)構(gòu) 分支結(jié)構(gòu) 循環(huán)結(jié)構(gòu),流程圖是用一些圖框來表示程序或算法的運(yùn)行走

22、向的一種圖示。 常用兩種流程圖: 帶流程線的流程圖 NS流程圖,起止框,輸入輸出框,判斷框,連接圈,指向線,處理框,圖1.1,流程圖符號有:,1.5.1帶流程線的流程圖,1. 三種基本結(jié)構(gòu)與其對應(yīng)的流程圖, 順序結(jié)構(gòu) 程序由上至下每個語句順序執(zhí)行的結(jié)構(gòu)。 與其對應(yīng)的流程圖見圖1.2。,B,A,圖1.2 順序結(jié)構(gòu)流程圖, 分支結(jié)構(gòu)(選擇結(jié)構(gòu)) 程序在從上至下順序執(zhí)行過程中遇到了一個岔路口,就要選擇程序執(zhí)行從哪條路走,關(guān)鍵是只能選擇一條路,這種程序結(jié)構(gòu)就稱為分支程序結(jié)構(gòu)。 選擇結(jié)構(gòu)類型有條件選擇和開關(guān)選擇結(jié)構(gòu)。 與其對應(yīng)的流程圖見圖1.3和圖1.4。,(1)條件選擇結(jié)構(gòu):根據(jù)給定的條件表達(dá)式進(jìn)行判斷,決定執(zhí)行某個分支中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論