第一章C語言程序設(shè)計概述_第1頁
第一章C語言程序設(shè)計概述_第2頁
第一章C語言程序設(shè)計概述_第3頁
第一章C語言程序設(shè)計概述_第4頁
第一章C語言程序設(shè)計概述_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2022-6-81武漢理工大學(xué)計算機學(xué)院武漢理工大學(xué)計算機學(xué)院:周德仿:周德仿 Email:C語言程序設(shè)計2022-6-82選用教材 顧治華、陳天煌等顧治華、陳天煌等 2007.22007.22022-6-83課程內(nèi)容第一章 C語言程序設(shè)計基礎(chǔ) 第二章 程序的基石算法 第三章 順序結(jié)構(gòu)程序設(shè)計第四章 選擇結(jié)構(gòu)程序設(shè)計 第五章 循環(huán)結(jié)構(gòu)程序設(shè)計 第六章 數(shù)組與指針第七章 函數(shù)與模塊化程序設(shè)計方法第八章 結(jié)構(gòu)體和共用體 第九章 預(yù)處理命令與帶參數(shù)的主函數(shù) 第十章 文件 2022-6-84第一章第一章 C C語言程序設(shè)計基礎(chǔ)語言程序設(shè)計基礎(chǔ)1.1 1.1 程序與程序設(shè)計程序與程序設(shè)計1.2 C.2

2、C語言簡介語言簡介1.3 1.3 簡單的簡單的C語言程序語言程序1.4 C1.4 C語言程序的上機步驟語言程序的上機步驟1.5 C1.5 C語言的基本詞法語言的基本詞法1.6 C1.6 C語言程序的基本結(jié)構(gòu)語言程序的基本結(jié)構(gòu)2022-6-85程序與計算機語言程序與計算機語言程序是存放在計算機中的操作指令和數(shù)據(jù)的集合。用程序設(shè)計語言安排好的處理問題的步驟稱為計算機程序用程序設(shè)計語言編制一個能完成某項任務(wù)的計算機程序的過程叫做計算機程序設(shè)計。程序設(shè)計=數(shù)據(jù)結(jié)構(gòu)+算法+程序設(shè)計方法+編程語言程序設(shè)計的關(guān)鍵:必須掌握一種程序設(shè)計語言。掌握程序設(shè)計的邏輯思維。2022-6-86 程序設(shè)計過程程序設(shè)計過程

3、(1)問題的提出,要達到的要求;(2)確定數(shù)據(jù)結(jié)構(gòu)和所采用的算法;(3)編制程序;(4)調(diào)試程序;(5)整理并寫出文檔;2022-6-87一、C語言出現(xiàn)的歷史背景 C語言是國際上廣泛流行的、很有發(fā)展前途的計算機高級語言。它適合于作為系統(tǒng)描述語言,既可用來寫系統(tǒng)軟件,也可用來寫應(yīng)用軟件: C語言是在B語言的基礎(chǔ)上發(fā)展起來的,它的根源可以追溯到ALGOL60 。1960年出現(xiàn)的ALGOL60是一種面向問題的高級語言,它離硬件比較遠,不宜用來編寫系統(tǒng)程序。1963年英國的劍橋大學(xué)推出了 CPL(combined programming language)語言。CPL語言在ALGOL60的基礎(chǔ)上接近硬

4、件一些,但規(guī)模比較大,難以實現(xiàn)。 2022-6-88 1967年英國劍橋大學(xué)的 Matin Richards對CPL語言做了簡化,推出了 BCPL(basic combined programming language)語言。 1970年美國貝爾實驗室的 Ken Thompson以 BCPL語言為基礎(chǔ),又做了進一步簡化,設(shè)計出了很簡單的而且很接近硬件的B語言(取BCPL的第一個字母),并用B語言寫了第一個UNIX操作系統(tǒng),在PDP7上實現(xiàn)。 1971年在PDP11/20上實現(xiàn)了 B語言,并寫了 UNIX操作系統(tǒng)。但B語言過于簡單,功能有限。 1972年至 1973年間,貝爾實驗室的DMRitc

5、hie在B語言的基礎(chǔ)上設(shè)計出了C語言(取BCPL的第二個字母)。C 語言既保持了BCPL和B語言的優(yōu)點(精練,接近硬件),又克服了它們的缺點(過于簡單,數(shù)據(jù)無類型等)。 1973年,K.Thompson和D.M.Ritchie兩人合作把UNIX的90以上用C改寫,即 UNIX第 5版。 2022-6-89 直到1975年UNIX第6版公布后,C語言的突出優(yōu)點才引起人們的普遍注意。1977年出現(xiàn)了不依賴于具體機器的C語言編譯文本 可移植C語言編譯程序,使C移植到其他機器時所需做的工作大大簡化了, 這也推動了UNIX操作系統(tǒng)迅速地在各種機器上實現(xiàn)。 以1978年發(fā)表的UNIX第 7版中的 C編譯程

6、序為基礎(chǔ),Brian W. Kernlghan和Denni. M.Ritchie,(合稱 KbR)合著了影響深遠的名著The C Programming Language,這本書中介紹的C語言成為后來廣泛使用的C語言版本的基礎(chǔ),它被稱為標準C。 1983年,美國國家標準化協(xié)會(ANSI)根據(jù)C語言問世以來各個版本對C的發(fā)展和補充,制定了新的標準,稱為ANSI C 。1987年,ANSI又公布了新的標準87ANSI C。1990年,國際標準化組織ISO(International Standard Organization) 接受87ANSI CISO C 的標準(ISO 98991990)。目

7、前流行的C編譯系統(tǒng)都是以它為基礎(chǔ)的。返回C語言的發(fā)展歷史ALGOL60607080匯編語言機器語言高級語言劍橋CPL劍橋BCPL貝爾B 貝爾CUNIXC可移植C編譯器ANSI C2022-6-811C語言的優(yōu)點(1)語言簡潔、緊湊,使用方便、靈活。語言簡潔、緊湊,使用方便、靈活。C語言一共只有語言一共只有 32個關(guān)鍵字,主要用小寫字母表示。個關(guān)鍵字,主要用小寫字母表示。 (2) 比其他高級語言更接近硬件,比低級語言更接近算法。比其他高級語言更接近硬件,比低級語言更接近算法。 程序易編、易讀、易差錯、易修改,兼有高級語言和程序易編、易讀、易差錯、易修改,兼有高級語言和 低級語言的優(yōu)點。低級語言的

8、優(yōu)點。(3) 數(shù)據(jù)類型和運算符十分豐富,程序設(shè)計和算法描述更為數(shù)據(jù)類型和運算符十分豐富,程序設(shè)計和算法描述更為 簡單和方便。簡單和方便。 (4) 語法結(jié)構(gòu)十分簡單,語句數(shù)目少,簡單易學(xué)。語法結(jié)構(gòu)十分簡單,語句數(shù)目少,簡單易學(xué)。 2022-6-812 (6) 它是一種模塊化的程序設(shè)計語言,適合大型軟件的研制它是一種模塊化的程序設(shè)計語言,適合大型軟件的研制 和調(diào)試。和調(diào)試。 (5) 它是一種結(jié)構(gòu)化程序設(shè)計語言,提供了完整的程序控制它是一種結(jié)構(gòu)化程序設(shè)計語言,提供了完整的程序控制 語句語句(選擇語句和循環(huán)語句選擇語句和循環(huán)語句),很適合結(jié)構(gòu)化的程序設(shè)計方很適合結(jié)構(gòu)化的程序設(shè)計方 法。法。 (7) 生

9、成目標代碼質(zhì)量高,程序執(zhí)行效率高。生成目標代碼質(zhì)量高,程序執(zhí)行效率高。 (8) 用用c語言寫的程序可移植性好。語言寫的程序可移植性好。 (9) 它提供了大量的庫函數(shù)以供調(diào)用,簡化了程序設(shè)計工作。它提供了大量的庫函數(shù)以供調(diào)用,簡化了程序設(shè)計工作。2022-6-813 C語言的特點 C語言是結(jié)構(gòu)化的程序設(shè)計語言。語言是結(jié)構(gòu)化的程序設(shè)計語言。C語言是模塊化的程序設(shè)計語言,程序是由函數(shù)構(gòu)成的。一個語言是模塊化的程序設(shè)計語言,程序是由函數(shù)構(gòu)成的。一個C源程序至源程序至少包含一個少包含一個main函數(shù),也可以包含一個函數(shù),也可以包含一個main函數(shù)和若干個其他函數(shù)。因函數(shù)和若干個其他函數(shù)。因此,函數(shù)是此,

10、函數(shù)是C程序的基本單位。程序的基本單位。一個函數(shù)由兩部分組成一個函數(shù)由兩部分組成: 函數(shù)的首部,函數(shù)的第一行。包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函函數(shù)的首部,函數(shù)的第一行。包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函數(shù)參數(shù)數(shù)參數(shù)(形參形參)名、參數(shù)類型。名、參數(shù)類型。 函數(shù)體,即函數(shù)首部下面的大括弧函數(shù)體,即函數(shù)首部下面的大括弧.內(nèi)的部分。如果一個內(nèi)的部分。如果一個 函數(shù)內(nèi)有多個括弧,則最外層的一對函數(shù)內(nèi)有多個括弧,則最外層的一對 為函數(shù)的范圍。為函數(shù)的范圍。 函數(shù)體一般包括:函數(shù)體一般包括: 聲明部分聲明部分:在這部分中定義所用到的變量。:在這部分中定義所用到的變量。 執(zhí)行部分執(zhí)行部分: 由若干個語句組

11、成。由若干個語句組成。2022-6-814(4) 一個一個C程序總是從程序總是從main函數(shù)開始的,而不論函數(shù)開始的,而不論main函數(shù)在整函數(shù)在整 個程序中的位置如何(個程序中的位置如何(main函數(shù)可以放在程序最前頭,也可函數(shù)可以放在程序最前頭,也可 以放在程序最后,或在一些函數(shù)之前,在另一些函數(shù)之后以放在程序最后,或在一些函數(shù)之前,在另一些函數(shù)之后)。(5) C程序書寫格式自由,一行內(nèi)可以寫幾個語句,一個語句程序書寫格式自由,一行內(nèi)可以寫幾個語句,一個語句 可以分寫在多行上??梢苑謱懺诙嘈猩稀?6) 每個語句和數(shù)據(jù)定義的最后必須有一個分號。分號是每個語句和數(shù)據(jù)定義的最后必須有一個分號。分

12、號是C語語 句的必要組成部分。分號不可少。句的必要組成部分。分號不可少。(7) C語言本身沒有輸入輸出語句。輸入輸出的操作是由庫語言本身沒有輸入輸出語句。輸入輸出的操作是由庫 函數(shù)函數(shù)scanf和和printf等函數(shù)來完成的。等函數(shù)來完成的。(8) 可以用可以用/*/對對C程序中的任何部分作注釋。程序中的任何部分作注釋。2022-6-815簡單的C語言程序示例例一 main( ) printf (“This is a C program.n”); 本程序的作用是輸出以下一行信息: This is a C program.2022-6-816例二main( ) int a,b,sum; /*這是

13、定義變量*/ a=123;b=456; /*以下3行為C語句*/ sum=a+b; printf(“sum is %dn”,sum);程序的運行結(jié)果: Sum is 5792022-6-817C程序的上機步驟 開始編輯編譯 有錯?執(zhí)行連接結(jié)果正確結(jié)束可執(zhí)行目標程序f.exe源程序f.c目標程序f.o庫函數(shù)和其他目標程序YesNoYesNo2022-6-818C語言的基本詞法標識符定義:定義:在程序中使用的變量名、函數(shù)名、標號等統(tǒng)稱為 標識符。除庫函數(shù)的函數(shù)名由系統(tǒng)定義外,其余的都由用戶自己定義。命名規(guī)則:命名規(guī)則:標識符只能是字母(AZ,az)、數(shù)字(09)、下劃線(_)組成的字符串,并且其第

14、一個字符必須是字母或下劃線。 例如例如:以下標識符是合法的: a,x,x3,BOOK_1,sum5,_x7。 以下標識符是非法的: 3s(以數(shù)字開頭)、s*T(出現(xiàn)非法字符*)、-3x(以減號開頭)、bowy-1(出現(xiàn)非法字符-)。2022-6-819(1)標準C不限制標識符的長度,但它受各種版本的C語言編 譯系統(tǒng)限制,同時也受到具體機器的限制。Turbo C規(guī)定標識符的長度為32。一般情況下,標識符的長度不要超過8個字符。(2)在標識符中,大小寫是有區(qū)別的。例如SUM和sum是兩個 不同的標識符。變量名應(yīng)盡量使用小寫字母,以增加程序的可讀性。(3)標識符雖然可由程序員隨意定義,但標識符是用于

15、標識某個量的符號。因此,命名應(yīng)盡量有相應(yīng)的意義,以便于閱讀理解,做到“顧名思義”。在C語言中,所有的變量都是先定義后應(yīng)用,使用沒有定義的變量名被認為是“非法”的。 在使用標識符時還必須注意以下幾點:在使用標識符時還必須注意以下幾點:2022-6-820C語言的基本詞法關(guān)鍵字關(guān)鍵字定義定義:關(guān)鍵字是由語言規(guī)定的具有特定意義的字符串,通常也稱為保留字保留字。用戶定義的標識符不應(yīng)該與關(guān)鍵字相同。分類分類:語言的關(guān)鍵字分為以下幾類:(1)類型說明符 用于定義、說明變量、函數(shù)或其它數(shù)據(jù)結(jié)構(gòu)的類型。如int,double,float,long,short,auto,2022-6-821(2)語句定義符用于

16、表示一個語句的功能。如條件語句的語句定義符if else,循環(huán)語句的語句定義符do,while,for等。(3)預(yù)處理命令字用于表示一個預(yù)處理命令,使用時前面要加“”。如include,define,ifdef,endif等。關(guān)鍵字后必須有空格,圓括號,尖括號,雙引號等分隔符,否則與其它字符一起組成新的標識符。2022-6-822C語言的基本詞法其它其它 運算符運算符 語言中含有相當豐富的運算符。運算符與變量,函數(shù)一起組成表達式,表示各種運算功能。運算符由一個或多個字符組成。分隔符分隔符 在語言中采用的分隔符有逗號逗號和空格空格兩種。逗號主要是用在類型說明和函數(shù)參數(shù)表中分隔各個變量??崭穸嘤糜?/p>

17、語句各單詞之間作間隔符。常量常量 C語言中使用的常量可分為數(shù)字常量、字符常量、字符串常量、符號常量、轉(zhuǎn)義字符等多種。2022-6-823語言的字符集語言的字符集 (1)字母 小寫字母az共26個,大寫字 母AZ共26個。(2)數(shù)字09共10個。(3)空格符、制表符、換行符等統(tǒng)稱為空白符。(4)標點和特殊字符2022-6-824C語言程序設(shè)計的基本結(jié)構(gòu) (1)順序結(jié)構(gòu) ABa b 2022-6-825(2)選擇結(jié)構(gòu),或稱選取結(jié)構(gòu) 此結(jié)構(gòu)中必包含一個判斷框。根據(jù)給定的條件P是否成立而選擇執(zhí)行A框或B框abBAp不成立成立2022-6-826l (3) 循環(huán)結(jié)構(gòu),它又稱為重復(fù)結(jié)構(gòu),即反復(fù)執(zhí)行某一部分

18、的操作。又兩類循環(huán)結(jié)構(gòu): (a) 當型(while型)循環(huán)結(jié)構(gòu)它的功能是判斷當前給定的條件p1成立時,執(zhí)行A框操作,執(zhí)行完A后,再判斷條件p1是否成立,如果仍然成立,再執(zhí)行A框,如此反復(fù)執(zhí)行A框,直到某一次p1條件不成立為止,此時不執(zhí)行A框,而從b點脫離循環(huán)結(jié)構(gòu)。ap1TFAb2022-6-827(b)直到型(Until型)循環(huán)結(jié)構(gòu) 它的功能是先執(zhí)行A框,然后判斷給定的p2條件是否成立,如果p2條件不成立,則再執(zhí)行A,然后再對p2條件作判斷,如果p2條件仍然不成立,又執(zhí)行A如此反復(fù)執(zhí)行A,直到給定的p2條件成立為止,此時不再執(zhí)行A,從b點脫離本循環(huán)結(jié)構(gòu)。aAFTbp22022-6-828本章課堂練習(xí) (1) 以下說法中正確的是( ).

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論