C程序設(shè)計(jì)概述_第1頁(yè)
C程序設(shè)計(jì)概述_第2頁(yè)
C程序設(shè)計(jì)概述_第3頁(yè)
C程序設(shè)計(jì)概述_第4頁(yè)
C程序設(shè)計(jì)概述_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、本章要求:了解C語(yǔ)言的特點(diǎn),正確使用C語(yǔ)言中的標(biāo)識(shí)符;掌握C程序的基本組成結(jié)構(gòu);掌握開發(fā)和運(yùn)行一個(gè)C程序的過(guò)程。本章難點(diǎn): 正確使用C語(yǔ)言中的標(biāo)識(shí)符本章重點(diǎn): C程序的基本組成結(jié)構(gòu)C程序設(shè)計(jì)概述 第1章 C程序設(shè)計(jì)概述 1.1 計(jì)算機(jī)程序設(shè)計(jì)概述1.2 語(yǔ)言簡(jiǎn)介1.3 語(yǔ)言的字符集與標(biāo)識(shí)符1.4 C語(yǔ)言的程序結(jié)構(gòu)1.5 運(yùn)行一個(gè)C程序 1.1 計(jì)算機(jī)程序設(shè)計(jì)概述1.1.1 程序設(shè)計(jì)語(yǔ)言的發(fā)展 1機(jī)器語(yǔ)言(Machine Language) 2匯編語(yǔ)言(Assemble Language) 匯編語(yǔ)言程序的執(zhí)行過(guò)程 匯編語(yǔ)言和機(jī)器語(yǔ)言都是面向機(jī)器的程序設(shè)計(jì)語(yǔ)言,一般稱為低級(jí)語(yǔ)言。 1.1 計(jì)算機(jī)程

2、序設(shè)計(jì)概述1.1.1 程序設(shè)計(jì)語(yǔ)言的發(fā)展 3高級(jí)語(yǔ)言(High Level Language) 高級(jí)語(yǔ)言是一種與硬件結(jié)構(gòu)及指令系統(tǒng)無(wú)關(guān),表達(dá)方式比較接近自然語(yǔ)言和數(shù)學(xué)表達(dá)式的一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。 優(yōu)點(diǎn): 描述問(wèn)題能力強(qiáng),通用性、可讀性、可維護(hù)性都較好 缺點(diǎn): 執(zhí)行速度較慢,編制訪問(wèn)硬件資源的系統(tǒng)軟件較難。 用高級(jí)語(yǔ)言編寫的程序稱為“源程序”,計(jì)算機(jī)不能直接識(shí)別和執(zhí)行,高級(jí)語(yǔ)言程序有編譯和解釋兩種執(zhí)行方式。1.1 計(jì)算機(jī)程序設(shè)計(jì)概述高級(jí)語(yǔ)言程序的編譯執(zhí)行: 是將源程序整個(gè)編譯成等價(jià)的,獨(dú)立的目標(biāo)程序,然后通過(guò)鏈接程序?qū)⒛繕?biāo)程序鏈接成可執(zhí)行程序。高級(jí)語(yǔ)言編譯執(zhí)行過(guò)程 1.1 計(jì)算機(jī)程序設(shè)計(jì)概述

3、高級(jí)語(yǔ)言程序的解釋執(zhí)行: 解釋方式是將源程序逐句翻譯,翻譯一句執(zhí)行一句,邊翻譯邊執(zhí)行,不產(chǎn)生目標(biāo)程序。整個(gè)執(zhí)行過(guò)程,解釋程序都一直在內(nèi)存中 。高級(jí)語(yǔ)言解釋執(zhí)行過(guò)程 1.1 計(jì)算機(jī)程序設(shè)計(jì)概述1.1.2 程序設(shè)計(jì)方法概述 程序設(shè)計(jì)方法的發(fā)展可以劃分以下三個(gè)階段:1早期的程序設(shè)計(jì)2結(jié)構(gòu)化程序設(shè)計(jì)3面向?qū)ο蟮某绦蛟O(shè)計(jì) 1.2 語(yǔ)言簡(jiǎn)介1.2.1 語(yǔ)言的發(fā)展 語(yǔ)言是在70 年代初問(wèn)世的。1973年由美國(guó)電話電報(bào)公司(AT&T)貝爾實(shí)驗(yàn)室正式發(fā)表了語(yǔ)言。 同時(shí)由B.W.Kernighan和D.M.Ritchit合著了著名的“The C Programming Language”一書。 1.2 語(yǔ)言簡(jiǎn)介1

4、.2.1 語(yǔ)言的發(fā)展 60年 ALGOL語(yǔ)言63年 CPL67年 BCPL70年 B語(yǔ)言73年 C語(yǔ)言90年 Borland公司推出BC+92年 Microsoft公司推出MS C+93年 Microsoft公司推出VC+83年 制定了ANSI C85年 AT&T公司推出C+1.2 語(yǔ)言簡(jiǎn)介1.2.2 C語(yǔ)言的特點(diǎn)語(yǔ)言簡(jiǎn)潔、緊湊、使用方便、靈活VB語(yǔ)言Dim a As IntegerDim b As Integer if (表達(dá)式)then 語(yǔ)句 End ifC語(yǔ)言int a,b; if (表達(dá)式)語(yǔ)句; 2. 豐富的運(yùn)算符和數(shù)據(jù)類型 1.2.2 C語(yǔ)言的特點(diǎn)4. 直接訪問(wèn)內(nèi)存的物理地址 由于

5、能進(jìn)行位(bit)一級(jí)的操作。實(shí)現(xiàn)了對(duì)硬件的編程操作,因此語(yǔ)言集高級(jí)語(yǔ)言和低級(jí)語(yǔ)言的功能于一體。既可用于系統(tǒng)軟件的開發(fā),也適合于應(yīng)用軟件的開發(fā)。3. 語(yǔ)言是一種結(jié)構(gòu)化語(yǔ)言 它層次清晰,便于按模塊化方式組織程序,易于調(diào)試和維護(hù)。 語(yǔ)言還具有效率高,可移植性強(qiáng)等特點(diǎn)1.3 語(yǔ)言的字符集與標(biāo)識(shí)符 1.3.1 語(yǔ)言的字符集 字符是組成語(yǔ)言的最基本的元素。語(yǔ)言字符集由字母,數(shù)字,空格,標(biāo)點(diǎn)和特殊字符組成。 (1)字母 小寫字母az共26個(gè),大寫字母AZ共26個(gè)(C語(yǔ)言中區(qū)分字母大小寫) (2)數(shù)字 09共10個(gè) (3)空白符 空格符、制表符、換行符等統(tǒng)稱為空白符??瞻追辉谧址?、常量和字符串常量中起作用

6、。在其它地方出現(xiàn)時(shí),只起間隔作用。(4)標(biāo)點(diǎn)和特殊字符 1.3.1 語(yǔ)言的字符集 (4)標(biāo)點(diǎn)和特殊字符 1.3.2 語(yǔ)言標(biāo)識(shí)符 1.3 語(yǔ)言的字符集與標(biāo)識(shí)符 1保留字符 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, d

7、o, 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, volatile1.3.2 語(yǔ)言標(biāo)識(shí)符 2預(yù)定義標(biāo)識(shí)符 C語(yǔ)言中除了上述保留字符外,還有一類具有特殊含義的標(biāo)識(shí)符,它們被C系統(tǒng)用作庫(kù)函數(shù)名、預(yù)編譯命令,這類標(biāo)識(shí)符稱為系統(tǒng)預(yù)定義標(biāo)識(shí)符。例如: 系統(tǒng)庫(kù)數(shù)sin,printf,scanf等 預(yù)編譯命令define,include,undef,ifdef,endif等 一般來(lái)說(shuō),用戶在編寫C程序時(shí)

8、,不要把這些標(biāo)識(shí)再定義為其它用途的標(biāo)識(shí)符(用戶自定義標(biāo)識(shí)符)。1.3.2 語(yǔ)言標(biāo)識(shí)符 3用戶定自義標(biāo)識(shí)符 用戶自定義標(biāo)識(shí)符是用戶根據(jù)編程的需要而定義的標(biāo)識(shí)符,用于標(biāo)識(shí)變量、符號(hào)常量、用戶自定義函數(shù)、類型名等。 C 規(guī)定,標(biāo)識(shí)符只能是字母(AZ,az)、數(shù)字(09)、下劃線(_)組成的字符串,并且其第一個(gè)字符必須是字母或下劃線。例如,以下標(biāo)識(shí)符是合法的: a, x, x3, BOOK1,sum5,mysin 以下標(biāo)識(shí)符是非法的: 3s 以數(shù)字開頭 s*T 出現(xiàn)非法字符* -3x 以減號(hào)開頭 bowy-1 出現(xiàn)非法字符-(減號(hào)) 1.3.2 語(yǔ)言標(biāo)識(shí)符 使用自定義標(biāo)識(shí)符的幾點(diǎn)說(shuō)明:(1)標(biāo)準(zhǔn)C不限

9、制標(biāo)識(shí)符的長(zhǎng)度,但它受各種版本的C 語(yǔ)言編譯系統(tǒng)限制,同時(shí)也受到具體機(jī)器的限制。(2)標(biāo)識(shí)符中,大小寫是有區(qū)別的。(3)標(biāo)識(shí)符雖然可由程序員隨意定義,建議命名應(yīng)盡量有相應(yīng)的意義,以便閱讀理解,作到“顧名思義”。例如:可用sum 表示求和的量,name 表示姓名等。(4)不使用C語(yǔ)言的關(guān)鍵字:類型說(shuō)明符、語(yǔ)句定義符、預(yù)處理命令。(5)標(biāo)識(shí)符不能和用戶已編制的函數(shù)或C語(yǔ)言庫(kù)函數(shù)同名。否則程序中調(diào)用庫(kù)函數(shù)就會(huì)出錯(cuò)。1.4 C語(yǔ)言的程序結(jié)構(gòu)1.4.1 幾個(gè)簡(jiǎn)單的C程序?qū)嵗?例1-1 在屏幕輸出一行文字信息。具體程序如下:#include main() printf(Hello C!n); 其執(zhí)行結(jié)果是

10、在屏幕上輸出一行信息: Hello C! 1.4.1 幾個(gè)簡(jiǎn)單的C程序?qū)嵗?例1-2 輸入2個(gè)數(shù)據(jù),計(jì)算它們的和,并打印輸出在屏幕上。main() int a,b,s; /* 定義變量 */ printf( Enter two number a,b=?n);scanf(%d%d, &a,&b); /*調(diào)用標(biāo)準(zhǔn)函數(shù),要求用戶輸入2個(gè)數(shù)據(jù)*/ s =a+b; printf(s=%dn,s); 程序運(yùn)行結(jié)果如下: 1.4.1 幾個(gè)簡(jiǎn)單的C程序?qū)嵗?例1-3 將例1-2中的求2個(gè)數(shù)的和編寫成獨(dú)立的函數(shù),在主函數(shù)中調(diào)用實(shí)現(xiàn)。main() /*主函數(shù)*/ int fsum(int,int); /*用戶自定

11、義函數(shù)聲明*/ void prn(); /*用戶自定義函數(shù)聲明*/ int a,b,t; /*定義a,b,t為整數(shù)*/ printf( Enter two number a,b=?n); scanf( %d%d,&a,&b); prn(); /*調(diào)用函數(shù)prn,無(wú)返回*/ t=fsum(a,b); /*調(diào)用函數(shù)fsum,結(jié)果返回給t */ printf( %d+%d=%dn,a,b,t); /*打印輸入 */ prn(); void prn() printf(-n); int fsum(int x,int y) int z; z=x+y; return(z); /*返回變量z的值*/ 1.4.

12、1 幾個(gè)簡(jiǎn)單的C程序?qū)嵗?本程序除main函數(shù),還有2個(gè)功能簡(jiǎn)單的用戶自定義函數(shù)prn()和fsum(),程序的執(zhí)行過(guò)程是:(1)程序從main()處開始。(2)為聲明的整型變量a,b,t分配存儲(chǔ)單元。(3)要求用戶輸入為變量a,b輸入數(shù)據(jù);(如輸入 38 78)(4)執(zhí)行程序(函數(shù))prn);屏幕輸出“-”,并換行。(5)執(zhí)行程序(函數(shù))func();將變量a,b的值傳遞到函數(shù)func()中分別給x,y,并將計(jì)算結(jié)果返回賦值給變量t,此時(shí),t的值為a+b的值。(7)在屏幕打印輸出計(jì)算機(jī)結(jié)果。(8)再一次執(zhí)行程序(函數(shù))prn);屏幕輸出“-”,并換行。程序執(zhí)行的結(jié)果如下:1.4.2 C程序的

13、結(jié)構(gòu)特點(diǎn) C程序函數(shù)組成由若干函數(shù)說(shuō)明部分函數(shù)體函數(shù)類型說(shuō)明函數(shù)名函數(shù)形參形參類型說(shuō)明變量定義部分執(zhí)行部分 int fsum(x, y) int x, y; int fsum(int x, int y)例如:等價(jià)(函數(shù)首部)1.4 C語(yǔ)言的程序結(jié)構(gòu)1.4 C語(yǔ)言的程序結(jié)構(gòu)C程序的基本結(jié)構(gòu)的特點(diǎn): (1)C程序?yàn)楹瘮?shù)模塊結(jié)構(gòu),C程序由一個(gè)或多個(gè)函數(shù)構(gòu)成,其中必須,且只能有一個(gè)主函數(shù)main()。 (2)C程序從main()函數(shù)開始執(zhí)行,在main()中結(jié)束。 (3)C程序的函數(shù)是系統(tǒng)提供的標(biāo)準(zhǔn)函數(shù)(如printf、scanf等)和用戶自己定義的函數(shù)(如prn、fsum等)。 (4)每一個(gè)說(shuō)明,每

14、一個(gè)語(yǔ)句都必須以分號(hào)結(jié)尾。但預(yù)處理命令,函數(shù)頭和花括號(hào)“”之后不能加分號(hào)。 (5)C 語(yǔ)言的注釋符是以“/*”開頭并以“*/”結(jié)尾的串。在“/*”和“*/”之間的即為注釋。 在TC+中,注釋符以“/” 開始,到本行結(jié)束。 例如: int a ,b; / 定義2個(gè)整型變量 1.4 C語(yǔ)言的程序結(jié)構(gòu)1.4.3 C函數(shù)的結(jié)構(gòu) 函數(shù)是語(yǔ)言程序的基本單位。任何函數(shù)(包括主函數(shù)main())都是由函數(shù)說(shuō)明和函數(shù)體兩部分組成,其一般結(jié)構(gòu)如下:函數(shù)類型 函數(shù)名(形式參數(shù)說(shuō)明)數(shù)據(jù)說(shuō)明部分;語(yǔ)句部分;例: int fsum(int x, int y) int z; z=x+y; return(z); /*返回變

15、量z的值*/ 1.4 C語(yǔ)言的程序結(jié)構(gòu)1.4.4 C程序的書寫風(fēng)格 (1)一個(gè)說(shuō)明或一個(gè)語(yǔ)句占一行(2)函數(shù)與函數(shù)之間加空行, 以清楚的分出程序中有幾個(gè)函數(shù)。(3)用括起來(lái)的部分,通常表示了程序的某一層次結(jié)構(gòu)。一般與該結(jié)構(gòu)語(yǔ)句的第一個(gè)字母對(duì)齊,并單獨(dú)占一行。(4)低一層次的語(yǔ)句或說(shuō)明可比高一層次的語(yǔ)句或說(shuō)明縮進(jìn)若干格后書寫,同一個(gè)層次的語(yǔ)句左對(duì)齊。(5)對(duì)數(shù)據(jù)的輸入,運(yùn)行時(shí)最好要出現(xiàn)輸入提示,對(duì)于數(shù)據(jù)輸出,也要有一定的提示和格式。(6)程序中適當(dāng)加上一些注釋。 1.5 運(yùn)行一個(gè)C程序1.5.1 C程序運(yùn)行的一般步驟1源程序編輯2程序編譯3鏈接程序4程序運(yùn)行 大部分C語(yǔ)言系統(tǒng)都提供一個(gè)獨(dú)立的集成開發(fā)環(huán)境,它可將上述四步連貫在一個(gè)程序之中。 1.5 運(yùn)行一個(gè)C程序1.5.2 在TC中運(yùn)行一個(gè)C程序 在Turbo C集成開發(fā)環(huán)境中建立運(yùn)行一個(gè)新程序通常有以下幾個(gè)步驟:(1)運(yùn)行啟動(dòng)Turbo C集成開發(fā)環(huán)境;(2)在編輯器中編寫源文件;(3)保存源文件;(4)調(diào)試修改程序,直到程序編譯無(wú)語(yǔ)法錯(cuò)誤;(5)編譯連接生成可執(zhí)行文件,運(yùn)行程序,輸入上些數(shù)據(jù),驗(yàn)證程序運(yùn)行輸出結(jié)果的全理性; (6)最后將調(diào)試通過(guò)運(yùn)行正確的程序保存在磁盤中。 1.5

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論