




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
課程名稱:C語言程序設(shè)計(jì)課型與教法:講授學(xué)時:2課時授課題目:第1章C語言概述基本教材:C語言程序設(shè)計(jì)(高等教育出版社)廖雷主編教學(xué)目的與要求:通過本章的學(xué)習(xí)使學(xué)生了解C語言的歷史、特點(diǎn)和C語言程序的上機(jī)步驟;掌握學(xué)習(xí)C語言所需的必備知識:數(shù)制、數(shù)制轉(zhuǎn)換及整數(shù)的原碼、補(bǔ)碼和反碼表示。教學(xué)重點(diǎn)與難點(diǎn):C語言程序的上機(jī)步驟;數(shù)據(jù)轉(zhuǎn)換及整數(shù)的原碼、補(bǔ)碼和反碼的表示1C語言發(fā)展歷史C語言特點(diǎn)C程序格式和結(jié)構(gòu)特點(diǎn)C程序開發(fā)步驟第一章C語言概述預(yù)備知識2存儲器運(yùn)算器控制器輸入設(shè)備輸出設(shè)備CPU數(shù)據(jù)路徑控制路徑計(jì)算機(jī)的基本組成結(jié)構(gòu)3程序設(shè)計(jì)語言的發(fā)展機(jī)器語言匯編語言高級語言面向過程面向?qū)ο笠环NCPU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加
10010000減用助記符號描述的指令系統(tǒng)如ADDA,B面向機(jī)器的語言程序設(shè)計(jì)側(cè)重于系統(tǒng)功能解題過程是數(shù)據(jù)被加工的過程客觀世界可以分類,對象是類的實(shí)例對象是數(shù)據(jù)和方法的封裝對象間通過發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計(jì)關(guān)鍵是定義類,并由類派生對象馮.諾依曼結(jié)構(gòu):計(jì)算機(jī)運(yùn)算器控制器存儲器主機(jī):I/O設(shè)備:鍵盤、顯示器等中央處理器CPUC語言發(fā)展歷史4產(chǎn)生背景匯編語言程序依賴于計(jì)算機(jī)硬件,可讀性和可移植性都差一般的高級語言又難以實(shí)現(xiàn)對計(jì)算機(jī)硬件的直接操作
產(chǎn)生過程(BCPL→B→C)時間:1972~1973地點(diǎn):美國貝爾實(shí)驗(yàn)室目的:UNIX操作系統(tǒng)設(shè)計(jì)人:Ken.Thompson、Dennis.M.Ritchie和Brian.W.KernighanC標(biāo)準(zhǔn)標(biāo)準(zhǔn)C:K&R合著《TheCProgrammingLanguage》83ANSIC:1983年ANSI公布C語言標(biāo)準(zhǔn)草案87ANSI標(biāo)準(zhǔn)C:1987年1990年國際標(biāo)準(zhǔn)的ANSICC語言發(fā)展過程55254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC++JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula67Smalltalk80BASICANSI-BASICQBASICVBFORTRAN90高級語言的發(fā)展變遷情況6具有現(xiàn)代程序設(shè)計(jì)語言的特征運(yùn)算符和數(shù)據(jù)類型豐富程序設(shè)計(jì)結(jié)構(gòu)化、模塊化用途廣泛語言簡潔,具備底層處理功能,可執(zhí)行代碼質(zhì)量高可移植性好>>C語言特點(diǎn)
7C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void定義類型typedef字符類型char枚舉類型enum整型浮點(diǎn)型單精度型float雙精度型double數(shù)組結(jié)構(gòu)struct聯(lián)合union短整型short長整型long整型int數(shù)據(jù)類型總表8C運(yùn)算符算術(shù)運(yùn)算符:+-*/%++--關(guān)系運(yùn)算符:<<===>>=!=邏輯運(yùn)算符:!&&||位運(yùn)算符:<<>>~|^&賦值運(yùn)算符:=及其擴(kuò)展賦值運(yùn)算符條件運(yùn)算符:?:逗號運(yùn)算符:,指針運(yùn)算符:*&求字節(jié)數(shù):sizeof強(qiáng)制類型轉(zhuǎn)換:(類型)分量運(yùn)算符:.->下標(biāo)運(yùn)算符:[]其它:()等運(yùn)算符
9基本思想:任何程序都可以用“順序”、“選擇”和“循環(huán)”這三種基本結(jié)構(gòu)來描述,限制使用無條件跳轉(zhuǎn)語句(goto)三種基本結(jié)構(gòu)順序結(jié)構(gòu)AB結(jié)構(gòu)化程序設(shè)計(jì)10PAB真假二分支選擇結(jié)構(gòu)多分支選擇結(jié)構(gòu)選擇結(jié)構(gòu)A1A2AiAnk=k2k=k1k=knk=ki......k11PA假真AP假真循環(huán)結(jié)構(gòu)結(jié)構(gòu)化程序:由三種基本結(jié)構(gòu)反復(fù)嵌套構(gòu)成的程序優(yōu)點(diǎn):結(jié)構(gòu)清晰,易讀,提高程序設(shè)計(jì)質(zhì)量和效率12特點(diǎn)2:程序組織結(jié)構(gòu)化,即程序設(shè)計(jì)采用自頂向下,逐步細(xì)化,功能模塊化開發(fā)方法:
將程序設(shè)計(jì)針對的問題進(jìn)行一步步分解,直到分解到對應(yīng)于一個個功能更簡單,又獨(dú)立的模塊,每個模塊也可以分解到“順序”、“選擇”和“循環(huán)”三種基本程序結(jié)構(gòu)優(yōu)點(diǎn):各模塊相對獨(dú)立、功能單一、結(jié)構(gòu)清晰、接口簡單控制了程序設(shè)計(jì)的復(fù)雜性提高元件的可靠性縮短開發(fā)周期避免程序開發(fā)的重復(fù)勞動易于維護(hù)和功能擴(kuò)充C是結(jié)構(gòu)化程序設(shè)計(jì)語言結(jié)構(gòu)化程序設(shè)計(jì)
13例
第一個程序Hello,World!/*example1.1ThefirstCProgram*/#include<stdio.h>main(){
printf(“Hello,World!”);}/*ch1_1.c*/注釋預(yù)處理命令函數(shù)語句輸出:Hello,World!C程序格式和結(jié)構(gòu)特點(diǎn)14/*examplecalculatethesumofaandb*/#include<stdio.h>/*Thisisthemainprogram*/main(){inta,b,sum;
a=10;
b=24;sum=add(a,b);
printf(”sum=%d\n",sum);}/*Thisfunctioncalculatesthesumofxandy*/int
add(int
x,inty){intz;z=x+y;return(z);}/*ch1_2.c*/運(yùn)行結(jié)果:sum=34函數(shù)語句預(yù)處理命令注釋15習(xí)慣用小寫字母,大小寫敏感不使用行號,無程序行概念可使用空行和空格常用鋸齒形書寫格式main(){
……………….………………
…………..…………..
……………….
………………………….
……………….………………..}main(){
inti,j,sum;sum=0;for(i=1;i<10;i++)
{for(j=1;j<10;j++){sum+=i*j;}
}
printf(“%d\n”,sum);}優(yōu)秀程序員的素質(zhì)之一:使用TAB縮進(jìn){}對齊有足夠的注釋有合適的空行格式特點(diǎn)16函數(shù)與主函數(shù)程序由一個或多個函數(shù)組成必須有且只能有一個主函數(shù)main()程序執(zhí)行從main開始,在main中結(jié)束,其它函數(shù)通過嵌套調(diào)用得以執(zhí)行。程序語句C程序由語句組成用“;”作為語句終止符注釋/**/為注釋,不能嵌套不產(chǎn)生編譯代碼例:/*Thisisthemain/*ofexample1.1*/*/
非法預(yù)處理命令結(jié)構(gòu)特點(diǎn)
17編輯鏈接編譯執(zhí)行程序代碼的錄入,生成源程序*.c語法分析查錯,翻譯生成目標(biāo)程序*.obj與其它目標(biāo)程序或庫鏈接裝配,生成可執(zhí)行程序*.exeC程序開發(fā)步驟
18DOS命令或Windows基本操作計(jì)算機(jī)中數(shù)的表示及進(jìn)制轉(zhuǎn)換數(shù)碼、基與權(quán)數(shù)碼:表示數(shù)的符號基:數(shù)碼的個數(shù)權(quán):每一位所具有的值數(shù)制十進(jìn)制二進(jìn)制八進(jìn)制十六進(jìn)制預(yù)備知識195或(195)10(100)2(261)8(1FA)1619數(shù)制基權(quán)表示數(shù)碼特點(diǎn)10o,101,102,…十進(jìn)制數(shù)0~910逢十進(jìn)一127或(127)10二進(jìn)制數(shù)0~122o,21,22,…逢二進(jìn)一(10110)2八進(jìn)制數(shù)0~788o,81,82,…逢八進(jìn)一(17530)8十六進(jìn)制數(shù)0~9,A~F1616o,161,162,…逢十六進(jìn)一(AE701)1620二進(jìn)制、八進(jìn)制、十六進(jìn)制轉(zhuǎn)換成十進(jìn)制
方法:把每一位的數(shù)字乘以其相應(yīng)位的權(quán)值,將各乘積相加各種進(jìn)制之間的轉(zhuǎn)換21十進(jìn)制轉(zhuǎn)換成二進(jìn)制、八進(jìn)制、十六進(jìn)制整數(shù)部分:除基取余法,直至商為0小數(shù)部分:乘基取整法,直至小數(shù)部分為0或達(dá)到精度為止例把十進(jìn)制數(shù)459.78125轉(zhuǎn)換成十六進(jìn)制數(shù)(459.78125)10=(1CB.C8)1645916281611601CB余11余12余1各種進(jìn)制之間的轉(zhuǎn)換0.78125*16=12.5120.5*16=888C22二進(jìn)制轉(zhuǎn)換成八進(jìn)制:整數(shù)部分從右向左,小數(shù)部分從左向右,每3位一組(不足3位補(bǔ)0),轉(zhuǎn)換成八進(jìn)制八進(jìn)制轉(zhuǎn)換成二進(jìn)制:用3位二進(jìn)制數(shù)代替每一位八進(jìn)制數(shù)例(11010.01)2=(011,010.010)2=(32.2)8例(24.6)8=(010,100.110)2=(10100.11)2000~0001~1010~2011~3100~4101~5110~6111~7二進(jìn)制與八進(jìn)制之間的轉(zhuǎn)換各種進(jìn)制之間的轉(zhuǎn)換23二進(jìn)制轉(zhuǎn)換成十六進(jìn)制:整數(shù)部分從右向左,小數(shù)部分從左向右,每4位一組(不足4位補(bǔ)0),轉(zhuǎn)換成十六進(jìn)制十六進(jìn)制轉(zhuǎn)換成二進(jìn)制:用4位二進(jìn)制數(shù)代替每一位十六進(jìn)制數(shù)例(11010101.111101)2=(1101,0101.1111,0100)2=(D5.F4)16例(4B9.E)16=(0100,1011,1001.1110)2=(10010111001.1110)20000~00001~10010~20011~30100~40101~50110~60111~71000~81001~91010~A1011~B1100~C1101~D1110~E1111~F二進(jìn)制與十六進(jìn)制之間的轉(zhuǎn)換各種進(jìn)制之間的轉(zhuǎn)換24內(nèi)存以字節(jié)為單元組成每個字節(jié)有一個地址一個字節(jié)一般由8個二進(jìn)制位組成每個二進(jìn)位的值是0或101234567012345678910…….字節(jié)和位25原碼:最高位為符號位,正數(shù)符號位為0,負(fù)數(shù)符號位為1,其余各位為數(shù)值本身的絕對值反碼:正數(shù):反碼與原碼相同負(fù)數(shù):最高位為1,其余位對原碼取反補(bǔ)碼:正數(shù):原碼、反碼、補(bǔ)碼相同負(fù)數(shù):最高位為1,其余位為原碼取反,再對整個數(shù)加1整數(shù)在機(jī)器內(nèi)大多用補(bǔ)碼表示整數(shù)的表示方法——原碼、反碼和補(bǔ)碼26原碼反碼補(bǔ)碼+7000001110000011100000111-7100001111111100
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年造紙黑液堿回收成套裝置項(xiàng)目建議書
- 2025福建福州市長樂區(qū)衛(wèi)健系統(tǒng)招聘78人模擬試卷及答案詳解(奪冠系列)
- 出納盤點(diǎn)工作總結(jié)
- 2025遼寧鞍山市千山區(qū)公益性崗位招聘1人模擬試卷及1套參考答案詳解
- 2025年安徽皖信人力招聘管內(nèi)客運(yùn)站12名安檢工作人員模擬試卷有答案詳解
- 2025貴州黔西南州交通建設(shè)發(fā)展中心招聘公益性崗位工作人員3人考前自測高頻考點(diǎn)模擬試題(含答案詳解)
- 醫(yī)院護(hù)士年度個人工作總結(jié)匯編15篇
- 2025年甘肅省武威市事業(yè)單位已發(fā)布模擬試卷完整參考答案詳解
- 2025廣西百色市平果市道路運(yùn)輸發(fā)展中心城鎮(zhèn)公益性崗位人員招聘1人模擬試卷及完整答案詳解一套
- 2025年長河鎮(zhèn)人民政府公開招聘編外工作人員3人考前自測高頻考點(diǎn)模擬試題及1套參考答案詳解
- 2025-2030中國抗骨質(zhì)疏松藥物市場調(diào)研及未來增長預(yù)測報(bào)告
- 房屋安全性鑒定培訓(xùn)試題及答案解析
- 2025廣西南寧上林縣公安局面向社會招聘警務(wù)輔助人員50人筆試備考試題及答案解析
- 火鍋店引流截流回流方案
- 黑龍江省齊齊哈爾市富拉爾基區(qū)2024-2025學(xué)年高一上學(xué)期期中考試生物試題含參考答案
- 2025年檔案員考試試題及答案
- 倉庫內(nèi)安全培訓(xùn)資料課件
- 2025-2026學(xué)年七年級英語上學(xué)期第一次月考 (福建專用) 2025-2026學(xué)年七年級英語上學(xué)期第一次月考 (福建專用)原卷
- 國自然培訓(xùn)課件
- 高二第一次月考物理試卷含答案解析
- 2025安徽普通專升本《大學(xué)語文》統(tǒng)考試題及答案
評論
0/150
提交評論