《C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)教程》第一章C語(yǔ)言概述_第1頁(yè)
《C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)教程》第一章C語(yǔ)言概述_第2頁(yè)
《C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)教程》第一章C語(yǔ)言概述_第3頁(yè)
《C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)教程》第一章C語(yǔ)言概述_第4頁(yè)
《C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)實(shí)驗(yàn)教程》第一章C語(yǔ)言概述_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

課程名稱:C語(yǔ)言程序設(shè)計(jì)課型與教法:講授學(xué)時(shí):2課時(shí)授課題目:第1章C語(yǔ)言概述基本教材:C語(yǔ)言程序設(shè)計(jì)(高等教育出版社)廖雷主編教學(xué)目的與要求:通過(guò)本章的學(xué)習(xí)使學(xué)生了解C語(yǔ)言的歷史、特點(diǎn)和C語(yǔ)言程序的上機(jī)步驟;掌握學(xué)習(xí)C語(yǔ)言所需的必備知識(shí):數(shù)制、數(shù)制轉(zhuǎn)換及整數(shù)的原碼、補(bǔ)碼和反碼表示。教學(xué)重點(diǎn)與難點(diǎn):C語(yǔ)言程序的上機(jī)步驟;數(shù)據(jù)轉(zhuǎn)換及整數(shù)的原碼、補(bǔ)碼和反碼的表示1C語(yǔ)言發(fā)展歷史C語(yǔ)言特點(diǎn)C程序格式和結(jié)構(gòu)特點(diǎn)C程序開(kāi)發(fā)步驟第一章C語(yǔ)言概述預(yù)備知識(shí)2存儲(chǔ)器運(yùn)算器控制器輸入設(shè)備輸出設(shè)備CPU數(shù)據(jù)路徑控制路徑計(jì)算機(jī)的基本組成結(jié)構(gòu)3程序設(shè)計(jì)語(yǔ)言的發(fā)展機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向過(guò)程面向?qū)ο笠环NCPU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加

10010000減用助記符號(hào)描述的指令系統(tǒng)如ADDA,B面向機(jī)器的語(yǔ)言程序設(shè)計(jì)側(cè)重于系統(tǒng)功能解題過(guò)程是數(shù)據(jù)被加工的過(guò)程客觀世界可以分類,對(duì)象是類的實(shí)例對(duì)象是數(shù)據(jù)和方法的封裝對(duì)象間通過(guò)發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計(jì)關(guān)鍵是定義類,并由類派生對(duì)象馮.諾依曼結(jié)構(gòu):計(jì)算機(jī)運(yùn)算器控制器存儲(chǔ)器主機(jī):I/O設(shè)備:鍵盤、顯示器等中央處理器CPUC語(yǔ)言發(fā)展歷史4產(chǎn)生背景匯編語(yǔ)言程序依賴于計(jì)算機(jī)硬件,可讀性和可移植性都差一般的高級(jí)語(yǔ)言又難以實(shí)現(xiàn)對(duì)計(jì)算機(jī)硬件的直接操作

產(chǎn)生過(guò)程(BCPL→B→C)時(shí)間:1972~1973地點(diǎn):美國(guó)貝爾實(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語(yǔ)言標(biāo)準(zhǔn)草案87ANSI標(biāo)準(zhǔn)C:1987年1990年國(guó)際標(biāo)準(zhǔn)的ANSICC語(yǔ)言發(fā)展過(guò)程55254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC++JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula67Smalltalk80BASICANSI-BASICQBASICVBFORTRAN90高級(jí)語(yǔ)言的發(fā)展變遷情況6具有現(xiàn)代程序設(shè)計(jì)語(yǔ)言的特征運(yùn)算符和數(shù)據(jù)類型豐富程序設(shè)計(jì)結(jié)構(gòu)化、模塊化用途廣泛語(yǔ)言簡(jiǎn)潔,具備底層處理功能,可執(zhí)行代碼質(zhì)量高可移植性好>>C語(yǔ)言特點(diǎn)

7C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void定義類型typedef字符類型char枚舉類型enum整型浮點(diǎn)型單精度型float雙精度型double數(shù)組結(jié)構(gòu)struct聯(lián)合union短整型short長(zhǎng)整型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)算符:?:逗號(hào)運(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)來(lái)描述,限制使用無(wú)條件跳轉(zhuǎn)語(yǔ)句(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ì)化,功能模塊化開(kāi)發(fā)方法:

將程序設(shè)計(jì)針對(duì)的問(wèn)題進(jìn)行一步步分解,直到分解到對(duì)應(yīng)于一個(gè)個(gè)功能更簡(jiǎn)單,又獨(dú)立的模塊,每個(gè)模塊也可以分解到“順序”、“選擇”和“循環(huán)”三種基本程序結(jié)構(gòu)優(yōu)點(diǎn):各模塊相對(duì)獨(dú)立、功能單一、結(jié)構(gòu)清晰、接口簡(jiǎn)單控制了程序設(shè)計(jì)的復(fù)雜性提高元件的可靠性縮短開(kāi)發(fā)周期避免程序開(kāi)發(fā)的重復(fù)勞動(dòng)易于維護(hù)和功能擴(kuò)充C是結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言結(jié)構(gòu)化程序設(shè)計(jì)

13例

第一個(gè)程序Hello,World!/*example1.1ThefirstCProgram*/#include<stdio.h>main(){

printf(“Hello,World!”);}/*ch1_1.c*/注釋預(yù)處理命令函數(shù)語(yǔ)句輸出: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ǔ)句預(yù)處理命令注釋15習(xí)慣用小寫字母,大小寫敏感不使用行號(hào),無(wú)程序行概念可使用空行和空格常用鋸齒形書(shū)寫格式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){}對(duì)齊有足夠的注釋有合適的空行格式特點(diǎn)16函數(shù)與主函數(shù)程序由一個(gè)或多個(gè)函數(shù)組成必須有且只能有一個(gè)主函數(shù)main()程序執(zhí)行從main開(kāi)始,在main中結(jié)束,其它函數(shù)通過(guò)嵌套調(diào)用得以執(zhí)行。程序語(yǔ)句C程序由語(yǔ)句組成用“;”作為語(yǔ)句終止符注釋/**/為注釋,不能嵌套不產(chǎn)生編譯代碼例:/*Thisisthemain/*ofexample1.1*/*/

非法預(yù)處理命令結(jié)構(gòu)特點(diǎn)

17編輯鏈接編譯執(zhí)行程序代碼的錄入,生成源程序*.c語(yǔ)法分析查錯(cuò),翻譯生成目標(biāo)程序*.obj與其它目標(biāo)程序或庫(kù)鏈接裝配,生成可執(zhí)行程序*.exeC程序開(kāi)發(fā)步驟

18DOS命令或Windows基本操作計(jì)算機(jī)中數(shù)的表示及進(jìn)制轉(zhuǎn)換數(shù)碼、基與權(quán)數(shù)碼:表示數(shù)的符號(hào)基:數(shù)碼的個(gè)數(shù)權(quán):每一位所具有的值數(shù)制十進(jìn)制二進(jìn)制八進(jìn)制十六進(jìn)制預(yù)備知識(shí)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é)為單元組成每個(gè)字節(jié)有一個(gè)地址一個(gè)字節(jié)一般由8個(gè)二進(jìn)制位組成每個(gè)二進(jìn)位的值是0或101234567012345678910…….字節(jié)和位25原碼:最高位為符號(hào)位,正數(shù)符號(hào)位為0,負(fù)數(shù)符號(hào)位為1,其余各位為數(shù)值本身的絕對(duì)值反碼:正數(shù):反碼與原碼相同負(fù)數(shù):最高位為1,其余位對(duì)原碼取反補(bǔ)碼:正數(shù):原碼、反碼、補(bǔ)碼相同負(fù)數(shù):最高位為1,其余位為原碼取反,再對(duì)整個(gè)數(shù)加1整數(shù)在機(jī)器內(nèi)大多用補(bǔ)碼表示整數(shù)的表示方法——原碼、反碼和補(bǔ)碼26原碼反碼補(bǔ)碼+7000001110000011100000111-7100001111111100

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論