版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第1章程序設(shè)計(jì)基本概念C
語言程序設(shè)計(jì)1本章主要內(nèi)容程序和程序設(shè)計(jì)算法結(jié)構(gòu)化程序設(shè)計(jì)和模塊化結(jié)構(gòu)21.1.1
C程序幾個(gè)概念程序
高級(jí)語言機(jī)器語言3例如:00100011111011010110000101110110機(jī)器語言程序MOVAX,
300HADDBX,AXMOV[2100H],BX
HLT匯編語言源程序main(){inta,b,c;a=300;b=18;c=a+b;
printf(“a+b=%d\n”,c);}高級(jí)語言源程序(C)源程序需要翻譯4C語言的編譯:編譯方法圖1.2編譯過程(.C或.cpp)編譯程序連接程序編譯連接C源程序機(jī)器語言目標(biāo)程序可執(zhí)行程序(.OBJ)(.EXE)運(yùn)行運(yùn)行結(jié)果52.程序設(shè)計(jì)用計(jì)算機(jī)解決一個(gè)實(shí)際應(yīng)用問題時(shí)的整個(gè)處理過程稱為程序設(shè)計(jì)
提出問題確定數(shù)據(jù)結(jié)構(gòu)確定算法編寫程序調(diào)試和運(yùn)行程序輸入程序翻譯(編譯或解釋)得到運(yùn)行結(jié)果61.1.2算法什么是算法為解決某一應(yīng)用問題而采用的解題步驟算法的描述方式
用自然語言描述算法
用流程圖描述算法
用N-S結(jié)構(gòu)圖描述算法
例如:輸出兩個(gè)數(shù)中的最大數(shù)7用自然語言描述算法第一步:輸入x和y的值第二步:比較x和y的值,如果x大于y,則輸出x的值,否則輸出y的值。
易于理解,但冗長,不夠精確,難于描述復(fù)雜算法。例如當(dāng)描述“輸出10個(gè)數(shù)中最大數(shù)”的算法時(shí),會(huì)冗長、難于理解8圖1.5用流程圖描述算法用流程圖描述算法NYz=yz=xx>y?開始輸入x和y結(jié)束輸出z起止框輸入/輸出框判斷框處理框流程線9用N-S結(jié)構(gòu)圖描述算法輸入x、y的值x>yTFz=xz=y輸出z的值圖1.7用N-S結(jié)構(gòu)圖描述的算法已經(jīng)證明,任何復(fù)雜的問題都可以三種基本算法結(jié)構(gòu)來描述:順序、選擇、循環(huán)。因此用計(jì)算機(jī)語句描述的程序也包含三種基本結(jié)構(gòu)。
101.1.3結(jié)構(gòu)化程序設(shè)計(jì)程序的三種基本結(jié)構(gòu)順序結(jié)構(gòu)程序:按照書寫順序依次執(zhí)行語句選擇結(jié)構(gòu)程序:按照條件判斷選擇執(zhí)行語句循環(huán)結(jié)構(gòu)程序:通過條件控制循環(huán)執(zhí)行語句三種基本結(jié)構(gòu)的共同點(diǎn):都是只有一個(gè)入口和一個(gè)出口;結(jié)構(gòu)內(nèi)的每一個(gè)框都有機(jī)會(huì)被執(zhí)行;結(jié)構(gòu)內(nèi)沒有死循環(huán)。11結(jié)構(gòu)化程序設(shè)計(jì)的基本原則:如果一個(gè)程序僅包含這三種基本結(jié)構(gòu)(由這些基本結(jié)構(gòu)順序組成),則稱為結(jié)構(gòu)化程序。結(jié)構(gòu)化程序設(shè)計(jì)的基本原則:采用自頂向下、逐步細(xì)化的方法進(jìn)行設(shè)計(jì);采用模塊化原則和方法進(jìn)行設(shè)計(jì)。即將大型任務(wù)從上向下劃分為多個(gè)功能模塊,每個(gè)模塊又可以劃分為若干子模塊,然后分別進(jìn)行模塊程序的編寫;每個(gè)模塊都是用結(jié)構(gòu)化程序?qū)崿F(xiàn),即都只能由三種基本結(jié)構(gòu)組成,并通過計(jì)算機(jī)語言的結(jié)構(gòu)化語句實(shí)現(xiàn)。121.2C語言概述主要內(nèi)容:C語言的發(fā)展C語言的特點(diǎn)C程序的基本結(jié)構(gòu)C程序的執(zhí)行過程131.2.1C語言的發(fā)展發(fā)展過程
B語言:Bell實(shí)驗(yàn)室,1970年在PDP機(jī)器上用其編寫UNIX系統(tǒng)CPL語言:劍橋大學(xué),1963年BCPL語言:劍橋大學(xué),1967年C語言:Bell實(shí)驗(yàn)室,1972~1973年用其改寫UNIX系統(tǒng)經(jīng)簡化進(jìn)一步簡化保持精練、接近硬件的優(yōu)點(diǎn),克服數(shù)據(jù)類型過少的不足141.2.2C語言的特點(diǎn)語言簡潔,表達(dá)能力強(qiáng),易于理解只有32個(gè)關(guān)鍵字,9種控制語句數(shù)據(jù)構(gòu)造能力強(qiáng)運(yùn)算符豐富程序書寫格式自由可直接訪問物理地址,實(shí)現(xiàn)對(duì)硬件和低層系統(tǒng)軟件的訪問語言生成的代碼質(zhì)量高可移植性好增加學(xué)習(xí)難度151.2.3C程序的基本結(jié)構(gòu)【例1.1】計(jì)算并輸出一個(gè)數(shù)a的平方。
main(){
floata,b;a=5.2;b=a*a;
printf("b=%f\n",b);
}
main
為函數(shù)名程序從這里開始運(yùn)行函數(shù)體開始函數(shù)體結(jié)束函數(shù)體內(nèi)定義a,b為a賦值計(jì)算并輸出平方值b執(zhí)行程序的輸出結(jié)果為:b=27.039997
161.2.3C程序的基本結(jié)構(gòu)【例1.2】輸入兩個(gè)數(shù),輸出其中的大數(shù)。int
max(intx,inty)
/*max函數(shù)*/{
intz;if(x>y)z=x;elsez=y;return(z);}main()
/*主函數(shù)*/{inta,b,c;
scanf("%d,%d",&a,&b);c=max(a,b);/*調(diào)用max函數(shù),求a和b中大數(shù)*/
printf("max=%d\n",c);}17C程序結(jié)構(gòu)C程序由函數(shù)構(gòu)成必須有,且只能有一個(gè)main(主函數(shù))總是從main函數(shù)開始執(zhí)行函數(shù)由函數(shù)首部和函數(shù)體組成函數(shù)首部指定函數(shù)名、函數(shù)參數(shù)、類型函數(shù)體從{開始,到}結(jié)束函數(shù)內(nèi)有語句18C程序結(jié)構(gòu)(續(xù))語句包括說明性語句、可執(zhí)行語句以;表示語句結(jié)束注釋可以出現(xiàn)在程序的任何位置
用/*和*/括起來,必須成對(duì)出現(xiàn)書寫格式C語言沒有行的概念,書寫格式自由。習(xí)慣小寫字母,縮進(jìn)格式。191.2.4C程序的執(zhí)行過程
1.源程序文件的建立和編輯
編寫源程序,形成.C文件需用編輯工具:tc.exe、記事本2.編譯
編譯源程序,形成目標(biāo)程序.Obj文件需用編譯工具:tcc.exe3.連接
連接OBJ文件和調(diào)用的庫函數(shù),形成運(yùn)行程序
.exe
文件需用連接工具:tlink.exe4.運(yùn)行
.exe
文件運(yùn)行jc1_2TurboC提供集成化開發(fā)環(huán)境201.3C程序的符號(hào)系統(tǒng)主要內(nèi)容:基本字符標(biāo)識(shí)符211.3.1基本字符大寫英文字母:ABC……XYZ
小寫英文字母:abc……xyz
數(shù)字:012……9
空白符:空格符、換行符、制表符
特殊字符:+-*/<>()[]{}_=!#%.,;:‘“|&?$^\~
221.3.2標(biāo)識(shí)符
由字母、下劃線和數(shù)字組成的字符序列用于程序中的變量、符號(hào)常量、數(shù)組、函數(shù)、數(shù)據(jù)類型等操作對(duì)象的名字1.系統(tǒng)定義標(biāo)識(shí)符具有固定名字和特定含義的標(biāo)識(shí)符分為關(guān)鍵字和預(yù)定義標(biāo)識(shí)符
2.用戶定義標(biāo)識(shí)符
用于對(duì)用戶使用的變量、數(shù)組、函數(shù)等操作對(duì)象進(jìn)行命名23關(guān)鍵字
數(shù)據(jù)類型:
int、char、float、double、short、long、void、signed、unsigned、enum、struct、union、const、typedef、volatile
存儲(chǔ)類別:auto、static、register、extern語句命令字:break、case、continue、default、do、else、for、goto、if、return、switch、while
運(yùn)算符:sizeof
24預(yù)定義標(biāo)識(shí)符系統(tǒng)標(biāo)準(zhǔn)庫函數(shù)scanf、printf、putchar、getchar、strcpy、strcmp、sqrt等編譯預(yù)備處理命令include、define等25對(duì)標(biāo)識(shí)符的規(guī)定
用戶定義標(biāo)識(shí)符必須以字母或下劃線“_”開頭不能含有除字母、數(shù)字和下劃線“_”外的其他字符標(biāo)識(shí)符中大小寫字母含義不同關(guān)鍵字必須用小寫字母。不允許使用關(guān)鍵字為變量、數(shù)組、函數(shù)等操作對(duì)象命名預(yù)定義標(biāo)識(shí)符允許用戶對(duì)它們重新定義,當(dāng)重新定義后將改變它們原來的含義26正確區(qū)分標(biāo)識(shí)符正確區(qū)分哪些是合法標(biāo)識(shí)符,哪些是不合法標(biāo)識(shí)符。其中合法標(biāo)識(shí)符中哪些是關(guān)鍵字,哪些是預(yù)定義標(biāo)識(shí)符,哪些是用戶定義標(biāo)識(shí)符。Abc
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025主體結(jié)構(gòu)工程承包合同詳細(xì)模板
- 2025房地產(chǎn)抵押按揭合同
- 2024年度天津市公共營養(yǎng)師之三級(jí)營養(yǎng)師模擬考核試卷含答案
- 2024年度四川省公共營養(yǎng)師之二級(jí)營養(yǎng)師考前沖刺模擬試卷B卷含答案
- 卷繞頭撥叉行業(yè)市場發(fā)展及發(fā)展趨勢與投資戰(zhàn)略研究報(bào)告
- 2022-2027年中國工作服市場競爭態(tài)勢及行業(yè)投資前景預(yù)測報(bào)告
- 美標(biāo)塔接法蘭行業(yè)市場發(fā)展及發(fā)展趨勢與投資戰(zhàn)略研究報(bào)告
- 2025年中國女式家居服產(chǎn)品市場全景評(píng)估及發(fā)展趨勢研究預(yù)測報(bào)告
- 2025年燈具燈飾市場調(diào)研報(bào)告
- 中國牛皮掛面紙板行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略研究報(bào)告
- 產(chǎn)業(yè)園運(yùn)營合作協(xié)議
- 16J607-建筑節(jié)能門窗
- 理解詞語句子的方法PPT
- 作文開頭與結(jié)尾PPT課件ppt(共42張PPT)
- 重癥醫(yī)學(xué)科運(yùn)用PDCA循環(huán)提高消毒棉簽開啟時(shí)間標(biāo)注的執(zhí)行率品管圈成果匯報(bào)
- 云南面向東南亞、南亞區(qū)域物流系統(tǒng)優(yōu)化研究的開題報(bào)告
- 高效課堂教學(xué)流程和課堂常規(guī)公開課一等獎(jiǎng)市賽課獲獎(jiǎng)?wù)n件
- 浙江寧波廣播電視集團(tuán)發(fā)射中心招考聘用筆試參考題庫答案解析
- 2024年航天知識(shí)總結(jié)
- 公立醫(yī)院章程范本(中國醫(yī)院協(xié)會(huì)2019版)
- 江蘇小高考(物理化學(xué)生物)真題及答案
評(píng)論
0/150
提交評(píng)論