




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2023/1/141武漢理工大學(xué)計(jì)算機(jī)學(xué)院授課教師:周德仿
Email:dfzhouwuhan@163.comC語言程序設(shè)計(jì)2023/1/142選用教材主教科書
顧治華、陳天煌等
《C語言程序設(shè)計(jì)》
機(jī)械工業(yè)出版社
2007.2
參考教材
顧治華、陳天煌等《C語言程序設(shè)計(jì)學(xué)習(xí)輔導(dǎo)與等級(jí)考試精解》
四川大學(xué)出版社2004.122023/1/143課程內(nèi)容第一章C語言程序設(shè)計(jì)基礎(chǔ)
第二章程序的基石—算法
第三章順序結(jié)構(gòu)程序設(shè)計(jì)第四章選擇結(jié)構(gòu)程序設(shè)計(jì)
第五章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
第六章數(shù)組與指針第七章函數(shù)與模塊化程序設(shè)計(jì)方法第八章結(jié)構(gòu)體和共用體
第九章預(yù)處理命令與帶參數(shù)的主函數(shù)
第十章文件
2023/1/144第一章C語言程序設(shè)計(jì)基礎(chǔ)1.1程序與程序設(shè)計(jì)1.2C語言簡介1.3簡單的C語言程序1.4C語言程序的上機(jī)步驟1.5C語言的基本詞法1.6C語言程序的基本結(jié)構(gòu)2023/1/145程序與計(jì)算機(jī)語言程序是存放在計(jì)算機(jī)中的操作指令和數(shù)據(jù)的集合。用程序設(shè)計(jì)語言安排好的處理問題的步驟稱為計(jì)算機(jī)程序用程序設(shè)計(jì)語言編制一個(gè)能完成某項(xiàng)任務(wù)的計(jì)算機(jī)程序的過程叫做計(jì)算機(jī)程序設(shè)計(jì)。程序設(shè)計(jì)=數(shù)據(jù)結(jié)構(gòu)+算法+程序設(shè)計(jì)方法+編程語言程序設(shè)計(jì)的關(guān)鍵:必須掌握一種程序設(shè)計(jì)語言。掌握程序設(shè)計(jì)的邏輯思維。2023/1/146
程序設(shè)計(jì)過程(1)問題的提出,要達(dá)到的要求;(2)確定數(shù)據(jù)結(jié)構(gòu)和所采用的算法;(3)編制程序;(4)調(diào)試程序;(5)整理并寫出文檔;2023/1/147一、C語言出現(xiàn)的歷史背景
C語言是國際上廣泛流行的、很有發(fā)展前途的計(jì)算機(jī)高級(jí)語言。它適合于作為系統(tǒng)描述語言,既可用來寫系統(tǒng)軟件,也可用來寫應(yīng)用軟件:
C語言是在B語言的基礎(chǔ)上發(fā)展起來的,它的根源可以追溯到ALGOL60。1960年出現(xiàn)的ALGOL60是一種面向問題的高級(jí)語言,它離硬件比較遠(yuǎn),不宜用來編寫系統(tǒng)程序。1963年英國的劍橋大學(xué)推出了CPL(combinedprogramminglanguage)語言。CPL語言在ALGOL60的基礎(chǔ)上接近硬件一些,但規(guī)模比較大,難以實(shí)現(xiàn)。2023/1/148
1967年英國劍橋大學(xué)的MatinRichards對(duì)CPL語言做了簡化,推出了BCPL(basiccombinedprogramminglanguage)語言。1970年美國貝爾實(shí)驗(yàn)室的KenThompson以BCPL語言為基礎(chǔ),又做了進(jìn)一步簡化,設(shè)計(jì)出了很簡單的而且很接近硬件的B語言(取BCPL的第一個(gè)字母),并用B語言寫了第一個(gè)UNIX操作系統(tǒng),在PDP-7上實(shí)現(xiàn)。
1971年在PDP-11/20上實(shí)現(xiàn)了B語言,并寫了UNIX操作系統(tǒng)。但B語言過于簡單,功能有限。1972年至1973年間,貝爾實(shí)驗(yàn)室的D.M.Ritchie在B語言的基礎(chǔ)上設(shè)計(jì)出了C語言(取BCPL的第二個(gè)字母)。C語言既保持了BCPL和B語言的優(yōu)點(diǎn)(精練,接近硬件),又克服了它們的缺點(diǎn)(過于簡單,數(shù)據(jù)無類型等)。1973年,K.Thompson和D.M..Ritchie兩人合作把UNIX的90%以上用C改寫,即UNIX第5版。2023/1/149
直到1975年UNIX第6版公布后,C語言的突出優(yōu)點(diǎn)才引起人們的普遍注意。1977年出現(xiàn)了不依賴于具體機(jī)器的C語言編譯文本
《可移植C語言編譯程序》,使C移植到其他機(jī)器時(shí)所需做的工作大大簡化了,這也推動(dòng)了UNIX操作系統(tǒng)迅速地在各種機(jī)器上實(shí)現(xiàn)。
以1978年發(fā)表的UNIX第7版中的C編譯程序?yàn)榛A(chǔ),BrianW.Kernlghan和Denni.M..Ritchie,(合稱KbR)合著了影響深遠(yuǎn)的名著《TheCProgrammingLanguage》,這本書中介紹的C語言成為后來廣泛使用的C語言版本的基礎(chǔ),它被稱為標(biāo)準(zhǔn)C。
1983年,美國國家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI)根據(jù)C語言問世以來各個(gè)版本對(duì)C的發(fā)展和補(bǔ)充,制定了新的標(biāo)準(zhǔn),稱為ANSIC。1987年,ANSI又公布了新的標(biāo)準(zhǔn)——87ANSIC。1990年,國際標(biāo)準(zhǔn)化組織ISO(InternationalStandardOrganization)接受87ANSICISOC的標(biāo)準(zhǔn)(ISO9899-1990)。目前流行的C編譯系統(tǒng)都是以它為基礎(chǔ)的。返回C語言的發(fā)展歷史ALGOL60607080匯編語言機(jī)器語言高級(jí)語言劍橋CPL劍橋BCPL貝爾B貝爾CUNIXC可移植C編譯器ANSIC2023/1/1411C語言的優(yōu)點(diǎn)(1)語言簡潔、緊湊,使用方便、靈活。C語言一共只有
32個(gè)關(guān)鍵字,主要用小寫字母表示。(2)
比其他高級(jí)語言更接近硬件,比低級(jí)語言更接近算法。程序易編、易讀、易差錯(cuò)、易修改,兼有高級(jí)語言和低級(jí)語言的優(yōu)點(diǎn)。(3)
數(shù)據(jù)類型和運(yùn)算符十分豐富,程序設(shè)計(jì)和算法描述更為簡單和方便。(4)語法結(jié)構(gòu)十分簡單,語句數(shù)目少,簡單易學(xué)。2023/1/1412
(6)它是一種模塊化的程序設(shè)計(jì)語言,適合大型軟件的研制和調(diào)試。
(5)它是一種結(jié)構(gòu)化程序設(shè)計(jì)語言,提供了完整的程序控制語句(選擇語句和循環(huán)語句),很適合結(jié)構(gòu)化的程序設(shè)計(jì)方法。
(7)生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。(8)用c語言寫的程序可移植性好。
(9)它提供了大量的庫函數(shù)以供調(diào)用,簡化了程序設(shè)計(jì)工作。2023/1/1413C語言的特點(diǎn)
C語言是結(jié)構(gòu)化的程序設(shè)計(jì)語言。C語言是模塊化的程序設(shè)計(jì)語言,程序是由函數(shù)構(gòu)成的。一個(gè)C源程序至少包含一個(gè)main函數(shù),也可以包含一個(gè)main函數(shù)和若干個(gè)其他函數(shù)。因此,函數(shù)是C程序的基本單位。一個(gè)函數(shù)由兩部分組成:①函數(shù)的首部,函數(shù)的第一行。包括函數(shù)名、函數(shù)類型、函數(shù)屬性、函數(shù)參數(shù)(形參)名、參數(shù)類型。
②函數(shù)體,即函數(shù)首部下面的大括弧{…..}內(nèi)的部分。如果一個(gè)函數(shù)內(nèi)有多個(gè)括弧,則最外層的一對(duì){}為函數(shù)的范圍。函數(shù)體一般包括:聲明部分:在這部分中定義所用到的變量。執(zhí)行部分:由若干個(gè)語句組成。2023/1/1414(4)一個(gè)C程序總是從main函數(shù)開始的,而不論main函數(shù)在整個(gè)程序中的位置如何(main函數(shù)可以放在程序最前頭,也可以放在程序最后,或在一些函數(shù)之前,在另一些函數(shù)之后)。(5)C程序書寫格式自由,一行內(nèi)可以寫幾個(gè)語句,一個(gè)語句可以分寫在多行上。(6)每個(gè)語句和數(shù)據(jù)定義的最后必須有一個(gè)分號(hào)。分號(hào)是C語句的必要組成部分。分號(hào)不可少。(7)C語言本身沒有輸入輸出語句。輸入輸出的操作是由庫函數(shù)scanf和printf等函數(shù)來完成的。(8)可以用/*……*/對(duì)C程序中的任何部分作注釋。2023/1/1415簡單的C語言程序示例例一
main(){printf(“ThisisaCprogram.\n”);}
本程序的作用是輸出以下一行信息:
ThisisaCprogram.2023/1/1416例二main(){inta,b,sum;/*這是定義變量*/a=123;b=456;/*以下3行為C語句*/sum=a+b;printf(“sumis%d\n”,sum);}程序的運(yùn)行結(jié)果:Sumis5792023/1/1417C程序的上機(jī)步驟
開始編輯編譯
有錯(cuò)?執(zhí)行連接結(jié)果正確結(jié)束可執(zhí)行目標(biāo)程序f.exe源程序f.c目標(biāo)程序f.o庫函數(shù)和其他目標(biāo)程序YesNoYesNo2023/1/1418C語言的基本詞法-標(biāo)識(shí)符定義:在程序中使用的變量名、函數(shù)名、標(biāo)號(hào)等統(tǒng)稱為標(biāo)識(shí)符。除庫函數(shù)的函數(shù)名由系統(tǒng)定義外,其余的都由用戶自己定義。命名規(guī)則:標(biāo)識(shí)符只能是字母(A~Z,a~z)、數(shù)字(0~9)、下劃線(_)組成的字符串,并且其第一個(gè)字符必須是字母或下劃線。例如:以下標(biāo)識(shí)符是合法的:
a,x,x3,BOOK_1,sum5,_x7。以下標(biāo)識(shí)符是非法的:
3s(以數(shù)字開頭)、s*T(出現(xiàn)非法字符*)、-3x(以減號(hào)開頭)、bowy-1(出現(xiàn)非法字符-)。2023/1/1419(1)標(biāo)準(zhǔn)C不限制標(biāo)識(shí)符的長度,但它受各種版本的C語言編譯系統(tǒng)限制,同時(shí)也受到具體機(jī)器的限制。TurboC規(guī)定標(biāo)識(shí)符的長度為32。一般情況下,標(biāo)識(shí)符的長度不要超過8個(gè)字符。(2)在標(biāo)識(shí)符中,大小寫是有區(qū)別的。例如SUM和sum是兩個(gè)不同的標(biāo)識(shí)符。變量名應(yīng)盡量使用小寫字母,以增加程序的可讀性。(3)標(biāo)識(shí)符雖然可由程序員隨意定義,但標(biāo)識(shí)符是用于標(biāo)識(shí)某個(gè)量的符號(hào)。因此,命名應(yīng)盡量有相應(yīng)的意義,以便于閱讀理解,做到“顧名思義”。在C語言中,所有的變量都是先定義后應(yīng)用,使用沒有定義的變量名被認(rèn)為是“非法”的。
在使用標(biāo)識(shí)符時(shí)還必須注意以下幾點(diǎn):2023/1/1420C語言的基本詞法-關(guān)鍵字定義:關(guān)鍵字是由C語言規(guī)定的具有特定意義的字符串,通常也稱為保留字。用戶定義的標(biāo)識(shí)符不應(yīng)該與關(guān)鍵字相同。分類:C語言的關(guān)鍵字分為以下幾類:(1)類型說明符用于定義、說明變量、函數(shù)或其它數(shù)據(jù)結(jié)構(gòu)的類型。如int,double,float,long,short,auto,2023/1/1421(2)語句定義符用于表示一個(gè)語句的功能。如條件語句的語句定義符ifelse,循環(huán)語句的語句定義符do,while,for等。(3)預(yù)處理命令字用于表示一個(gè)預(yù)處理命令,使用時(shí)前面要加“?!薄H鏸nclude,define,ifdef,endif等。關(guān)鍵字后必須有空格,圓括號(hào),尖括號(hào),雙引號(hào)等分隔符,否則與其它字符一起組成新的標(biāo)識(shí)符。2023/1/1422C語言的基本詞法-其它運(yùn)算符
C語言中含有相當(dāng)豐富的運(yùn)算符。運(yùn)算符與變量,函數(shù)一起組成表達(dá)式,表示各種運(yùn)算功能。運(yùn)算符由一個(gè)或多個(gè)字符組成。分隔符
在C語言中采用的分隔符有逗號(hào)和空格兩種。逗號(hào)主要是用在類型說明和函數(shù)參數(shù)表中分隔各個(gè)變量??崭穸嘤糜谡Z句各單詞之間作間隔符。常量
C語言中使用的常量可分為數(shù)字常量、字符常量、字符串常量、符號(hào)常量、轉(zhuǎn)義字符等多種。2023/1/1423C語言的字符集
(1)字母小寫字母a~z共26個(gè),大寫字母A~Z共26個(gè)。(2)數(shù)字0~9共10個(gè)。(3)空格符、制表符、換行符等統(tǒng)稱為空白符。(4)標(biāo)點(diǎn)和特殊字符2023/1/1424C語言程序設(shè)計(jì)的基本結(jié)構(gòu)
(1)順序結(jié)構(gòu)
ABab2023/1/1425(2)選擇結(jié)構(gòu),或稱選取結(jié)構(gòu)
此結(jié)構(gòu)中必包含一個(gè)判斷框。根據(jù)給定的條件P是否成立而選擇執(zhí)行A框或B框abBAp不成立成立2023/1/1426l
(3)
循環(huán)結(jié)構(gòu),它又稱為重復(fù)結(jié)構(gòu),即反復(fù)執(zhí)行某一部分的操作。又兩類循環(huán)結(jié)構(gòu):
(a)
當(dāng)型(while型)循環(huán)結(jié)構(gòu)它的功能是判斷當(dāng)前給定的條件p1成立時(shí),執(zhí)行A框操作,執(zhí)行完A后,再判斷條件p1是否成立,如果仍然成立,再執(zhí)行A框,如此反復(fù)執(zhí)行A框,直到某一次p1條件不成立為止,此時(shí)不執(zhí)行A框,而從b點(diǎn)脫離循環(huán)結(jié)構(gòu)。ap1TFAb2023/1/1427(b)直到型(Until型)循環(huán)結(jié)構(gòu)
它的功能是先執(zhí)行A框,然后判斷給定的p2條件是否成立,如果p2條件不成立,則再執(zhí)行A,然后再對(duì)p2條件作判斷,如果p2條件仍然不成立,又執(zhí)行A‥‥‥如此反復(fù)執(zhí)行A,直到給定的p2條件成立為止,此時(shí)不再執(zhí)行A,從b點(diǎn)脫離本循環(huán)結(jié)構(gòu)。aAFTbp22023/1/1428本章課堂練習(xí)(1)以下說法中正確的是().A)C語言程序總是從第一個(gè)函數(shù)開始執(zhí)行B)在C語言程序中,要調(diào)用的函數(shù)必須在main()函數(shù)中定義C)C
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑工程價(jià)格調(diào)整合同條款1-@-1
- 衛(wèi)生間吊頂木龍骨施工方案
- 網(wǎng)架拆除施工方案
- 石墻施工方案
- DB3709T 037-2025泰山茶 茶葉鮮葉采摘分級(jí)技術(shù)規(guī)范
- 博羅縣鋼板支護(hù)樁施工方案
- 海島燕屋年產(chǎn)2500噸高端滋補(bǔ)預(yù)制菜加工項(xiàng)目環(huán)境影響報(bào)告表環(huán)評(píng)報(bào)告表
- 配線架施工施工方案
- 水泥板拉木紋板施工方案
- 2025北京大興高一(上)期末生物(教師版)
- 2025年甘肅甘南州國控資產(chǎn)投資管理集團(tuán)有限公司面向社會(huì)招聘工作人員12人筆試參考題庫附帶答案詳解
- 攝影入門課程-攝影基礎(chǔ)與技巧全面解析
- 燃油加油機(jī)計(jì)量檢定操作規(guī)范
- WS/T 367-2012醫(yī)療機(jī)構(gòu)消毒技術(shù)規(guī)范
- 對(duì)外漢語—春節(jié)學(xué)習(xí)教案
- 國泰安數(shù)據(jù)庫使用指南PPT課件
- 畢業(yè)設(shè)計(jì)(論文)800×800錘式破碎機(jī)
- 主要學(xué)術(shù)任職
- 最新村民自治條例細(xì)則
- 地下水資源量及可開采量補(bǔ)充細(xì)則(最新)
- 高中文言文閱讀訓(xùn)練步步高(1~120)答案
評(píng)論
0/150
提交評(píng)論