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

下載本文檔

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

文檔簡(jiǎn)介

1、第1章 信息學(xué)院計(jì)算機(jī)基礎(chǔ)組概述 C語(yǔ)言程序的基本結(jié)構(gòu)程序設(shè)計(jì)基本概念C語(yǔ)言的發(fā)展與特點(diǎn)C語(yǔ)言的字符集C語(yǔ)言的詞法符號(hào)運(yùn)行C程序的步驟和方法 本章主要內(nèi)容:1.1 引例例1-1 在屏幕上顯示一行信息“This is the first C program!”。 程序代碼如下:#include /*編譯預(yù)處理命令*/void main( )/*定義主函數(shù)main( )*/printf (This is the first C program!n) ;/*調(diào)用printf( )函數(shù)輸出文字*/1.1 引例例1-2 求兩數(shù)之和 程序代碼如下: #include /*編譯預(yù)處理命令*/void mai

2、n( )/*定義主函數(shù)main( )*/ int a,b,sum;/*定義變量a、b、sum為整型*/ a=66;/*為變量a賦值*/ b=88;/*為變量b賦值*/ sum=a+b;/*將a與b的和賦值給變量sum*/ printf (sum is %dn,sum) ; /*調(diào)用printf( )函數(shù)輸出sum的值*/1.2 C語(yǔ)言程序的基本結(jié)構(gòu) 1. C程序由函數(shù)組成,函數(shù)是程序的基本單位。main是一個(gè)特殊的函數(shù)名,一個(gè)程序總是從main( )函數(shù)開始執(zhí)行。 2. 函數(shù)由函數(shù)首部和函數(shù)體兩部分組成。 3. 函數(shù)體一般包括數(shù)據(jù)定義部分和執(zhí)行部分,它們都是C語(yǔ)句。 4. 每條語(yǔ)句用分號(hào)“;”

3、作結(jié)束符,分號(hào)是C語(yǔ)句必不可少的組成部分。 5. 在C語(yǔ)言中,一行可以寫多條語(yǔ)句,一條語(yǔ)句也可寫成幾行。 6. 可以對(duì)C程序中的任何部分做注釋。 1.3 程序設(shè)計(jì)基本概念 1.3.1 程序 所謂程序,就是一系列遵循一定規(guī)則和思想并能正確完成指定工作的代碼(也稱為指 令序列)。通常,一個(gè)計(jì)算機(jī)程序主要描述兩部分的內(nèi)容,其一是描述問題的每個(gè)對(duì)象及它們之間的關(guān)系,其二是描述對(duì)這些對(duì)象進(jìn)行處理的規(guī)則。其中關(guān)于對(duì)象及它們之間的關(guān)系涉及到數(shù)據(jù)結(jié)構(gòu)的內(nèi)容,而處理規(guī)則卻是求解某個(gè)問題的算法。因此,對(duì)程序的描述,經(jīng)常有如下等式: 程序=數(shù)據(jù)結(jié)構(gòu)+算法 一個(gè)設(shè)計(jì)合理的數(shù)據(jù)結(jié)構(gòu)往往可以簡(jiǎn)化算法,而且一個(gè)好的程序有可

4、靠性、易讀性、 可維護(hù)性等良好特性。 1.3 程序設(shè)計(jì)基本概念 1.3.2 程序設(shè)計(jì) 所謂程序設(shè)計(jì),就是根據(jù)計(jì)算機(jī)要完成的任務(wù),提出相應(yīng)的需求,在此基礎(chǔ)上設(shè)計(jì)數(shù) 據(jù)結(jié)構(gòu)和算法,然后再編寫相應(yīng)的程序代碼并測(cè)試該代碼運(yùn)行的正確性,直到能夠得到正 確的運(yùn)行結(jié)果為止。通常,程序設(shè)計(jì)是很講究方法的,一個(gè)良好的設(shè)計(jì)思想方法能夠大大 提高程序的高效性、合理性。通常程序設(shè)計(jì)有一套完整的算法,也稱為程序設(shè)計(jì)方法學(xué), 因此有人提出如下關(guān)系: 程序設(shè)計(jì)=數(shù)據(jù)結(jié)構(gòu)+算法+程序設(shè)計(jì)方法 +語(yǔ)言工具和環(huán)境 程序設(shè)計(jì)方法學(xué)在程序設(shè)計(jì)中被提到比較高的位置,尤其對(duì)于大型軟件,更是如此。 1.3 程序設(shè)計(jì)基本概念 1.3.3 程

5、序設(shè)計(jì)語(yǔ)言 為了描述程序所制訂的一組規(guī)則,即語(yǔ)法規(guī)則(主要包括詞法規(guī)則與句法規(guī)則)。 1.4 C語(yǔ)言的發(fā)展與特點(diǎn) C語(yǔ)言是一種國(guó)際上廣泛流行的、深受程序員喜愛的程序設(shè)計(jì)語(yǔ)言。 1967年,英國(guó)劍橋大學(xué)的Martin Richards在ALGOL 60的CPL語(yǔ)言基礎(chǔ)上推出了BCPL (Basic Combined Programming Language)語(yǔ)言。 1970年,美國(guó)貝爾實(shí)驗(yàn)室的Ken Thompson在BCPL語(yǔ)言的基礎(chǔ)上,設(shè)計(jì)了既簡(jiǎn)單又接近硬件的B語(yǔ)言(以BCPL首字母命名)。 1972年,貝爾實(shí)驗(yàn)室的Dennis M. Ritchie在B語(yǔ)言的基礎(chǔ)上發(fā)明了C語(yǔ)言(以BCPL第

6、二個(gè)字母命名)。 1978年, Brian W. Kernighan與Dennis M. Ritchie合作寫出了著名的The C Programming Language 。該書成為后來(lái)廣泛使用的C語(yǔ)言版本的基礎(chǔ),稱為標(biāo)準(zhǔn)C。1.4.1 C語(yǔ)言的發(fā)展 1983年,美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)為C語(yǔ)言制定了一套標(biāo)準(zhǔn),稱為ANSI C。 1987年,ANSI又公布了87 ANSI C(新標(biāo)準(zhǔn))。 1990年,國(guó)際標(biāo)準(zhǔn)化組織(ISO)接受87 ANSI C為ISO標(biāo)準(zhǔn)。目前流行的C語(yǔ)言版本都以此為基礎(chǔ)。 1980年,貝爾實(shí)驗(yàn)室的Bjarne Stroustrup及其同事對(duì)C語(yǔ)言進(jìn)行了改進(jìn),并將類的

7、概念擴(kuò)充到C語(yǔ)言中,在1983年由Rick Maseitti提議正式命名為C+語(yǔ)言。 C+是C的超集,C是C+的基礎(chǔ),用C 語(yǔ)言編寫的許多程序不經(jīng)修改就可以在C+環(huán)境下運(yùn)行。因此,學(xué)習(xí)C語(yǔ)言可為進(jìn)一步學(xué)習(xí)C+及其他相關(guān)語(yǔ)言打下堅(jiān)實(shí)的基礎(chǔ)。 1.4.1 C語(yǔ)言的發(fā)展 1. C語(yǔ)言是結(jié)構(gòu)化、模塊化的程序設(shè)計(jì)語(yǔ)言 C語(yǔ)言通過9種結(jié)構(gòu)控制語(yǔ)句可描述各種結(jié)構(gòu)的程序;以函數(shù)作為程序的基本單位,從而可實(shí)現(xiàn)模塊化的程序設(shè)計(jì)。 2. C語(yǔ)言有強(qiáng)大的處理能力,適用面廣 它既具有高級(jí)語(yǔ)言的功能,又能像低級(jí)語(yǔ)言一樣對(duì)計(jì)算機(jī)最基本的工作單元(位、字節(jié)和地址)進(jìn)行直接操作。因此,它既適宜編寫大型系統(tǒng)程序,又適宜編寫小型控

8、制程序, 也適用于科學(xué)計(jì)算,并具有強(qiáng)大的圖形處理功能。 3. C語(yǔ)言語(yǔ)句簡(jiǎn)潔、緊湊,使用方便、靈活 C語(yǔ)言一共只有32個(gè)保留字和9種控制語(yǔ)句,程序書寫形式自由,壓縮了一切不必要的成分。 4. 目標(biāo)代碼的效率高 用C語(yǔ)言程序生成的目標(biāo)代碼的效率可達(dá)到匯編語(yǔ)言目標(biāo)代碼效率的80% 90%。 1.4.2 C語(yǔ)言的特點(diǎn) 5. 可移植性強(qiáng) C語(yǔ)言的輸入/輸出不依賴于計(jì)算機(jī)硬件,使之能適應(yīng)多種操作系統(tǒng),如DOS、UNIX、 Windows,也適應(yīng)多種機(jī)型。從而便于在各種不同的機(jī)器間實(shí)現(xiàn)程序的移植。 1.4.2 C語(yǔ)言的特點(diǎn) 1. 英文字母:小寫字母az、大寫字母AZ2. 阿拉伯?dāng)?shù)字:093. 空白符:空格

9、符、制表符、換行符等統(tǒng)稱為空白符。4. 標(biāo)點(diǎn)和特殊字符:!#%&*_(下劃線)+=-/;.,( ) 1.5 語(yǔ)言的字符集 詞法符號(hào)是最小的詞法單元。 語(yǔ)言的詞法符號(hào)分為以下幾類:關(guān)鍵字、標(biāo)識(shí)符、運(yùn)算符、分隔符、常量、注釋符。 1.6 語(yǔ)言的詞法符號(hào) 1. 關(guān)鍵字 關(guān)鍵字是語(yǔ)言規(guī)定的具有特定意義的字符串,通常也稱為保留字。語(yǔ)言有32個(gè)關(guān)鍵字。 2.標(biāo)識(shí)符 在程序中使用的變量名、函數(shù)名、標(biāo)號(hào)等統(tǒng)稱為標(biāo)識(shí)符。除庫(kù)函數(shù)的函數(shù)名由系統(tǒng)定義外,其余都由用戶自定義。C語(yǔ)言規(guī)定,標(biāo)識(shí)符是英文字母或下劃線開始的、英文字母、下劃線及阿拉伯?dāng)?shù)字組成的字符串。1.6 語(yǔ)言的詞法符號(hào) 在使用標(biāo)識(shí)符時(shí)還必須注意以下幾點(diǎn):

10、 1) 用戶定義的標(biāo)識(shí)符不允許與關(guān)鍵字相同。 2) 標(biāo)準(zhǔn)C不限制標(biāo)識(shí)符的長(zhǎng)度,但它受各種版本的C 語(yǔ)言編譯系統(tǒng)限制,同時(shí)也受到具體機(jī)器的限制。例如在Turbo C 2.0中規(guī)定標(biāo)識(shí)符前32位有效,當(dāng)兩個(gè)標(biāo)識(shí)符前32位相同時(shí),則被認(rèn)為是同一個(gè)標(biāo)識(shí)符。 3) 標(biāo)識(shí)符中,大小寫是有區(qū)別的。例如xyz和XYZ 是兩個(gè)不同的標(biāo)識(shí)符。 4) 標(biāo)識(shí)符雖然可由程序員隨意定義,但標(biāo)識(shí)符是用于標(biāo)識(shí)某個(gè)量的符號(hào)。因此,命名應(yīng)盡量有相應(yīng)的意義,做到“見名知義”。 3.運(yùn)算符 語(yǔ)言中含有十分豐富的運(yùn)算符。運(yùn)算符與常量、變量和函數(shù)一起組成表達(dá)式,表示各種運(yùn)算功能。運(yùn)算符由一個(gè)或多個(gè)字符組成。 1.6 語(yǔ)言的詞法符號(hào) 4.

11、 分隔符 在語(yǔ)言中采用的分隔符有逗號(hào)和空格兩種。逗號(hào)主要用在類型說明和函數(shù)參數(shù)表中分隔各個(gè)變量。空格多用于語(yǔ)句中分隔各單詞。 5.常量 C 語(yǔ)言中使用的常量可分為數(shù)值常量、字符常量、字符串常量、符號(hào)常量、轉(zhuǎn)義字符等多種。在第二章中將專門給予介紹。 6. 注釋符 程序編譯時(shí),不對(duì)注釋作任何處理。注釋可出現(xiàn)在程序中的任何位置。注釋用來(lái)向用戶提示或解釋程序的意義。在調(diào)試程序中對(duì)暫時(shí)不使用的語(yǔ)句也可用注釋符,使翻譯跳過不作處理,待調(diào)試結(jié)束后再去掉注釋符。 1.6 語(yǔ)言的詞法符號(hào)1.7.1 運(yùn)行C程序的步驟 如何使用C語(yǔ)言寫出代碼,并調(diào)試程序直至得出運(yùn)行結(jié)果呢?一般來(lái)說包含如下的步驟: 1. 編輯 編輯的過程指用程序設(shè)計(jì)語(yǔ)言寫出源代碼的過程。 2. 編譯 對(duì)程序進(jìn)行編譯是將源程序翻譯成機(jī)器能夠識(shí)別的目標(biāo)程序的過程。這一過程必須借助一些專門的

溫馨提示

  • 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)論