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

下載本文檔

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

文檔簡介

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

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

產(chǎn)生過程(BCPL→B→C)時間:1972~1973地點:美國貝爾實驗室目的:UNIX操作系統(tǒng)設(shè)計人:Ken.Thompson、Dennis.M.Ritchie和Brian.W.KernighanC標準標準C:K&R合著《TheCProgrammingLanguage》83ANSIC:1983年ANSI公布C語言標準草案87ANSI標準C:1987年1990年國際標準的ANSICC語言發(fā)展過程55254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC++JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula67Smalltalk80BASICANSI-BASICQBASICVBFORTRAN90高級語言的發(fā)展變遷情況6具有現(xiàn)代程序設(shè)計語言的特征運算符和數(shù)據(jù)類型豐富程序設(shè)計結(jié)構(gòu)化、模塊化用途廣泛語言簡潔,具備底層處理功能,可執(zhí)行代碼質(zhì)量高可移植性好>>C語言特點

7C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void定義類型typedef字符類型char枚舉類型enum整型浮點型單精度型float雙精度型double數(shù)組結(jié)構(gòu)struct聯(lián)合union短整型short長整型long整型int數(shù)據(jù)類型總表8C運算符算術(shù)運算符:+-*/%++--關(guān)系運算符:<<===>>=!=邏輯運算符:!&&||位運算符:<<>>~|^&賦值運算符:=及其擴展賦值運算符條件運算符:?:逗號運算符:,指針運算符:*&求字節(jié)數(shù):sizeof強制類型轉(zhuǎn)換:(類型)分量運算符:.->下標運算符:[]其它:()等運算符

9基本思想:任何程序都可以用“順序”、“選擇”和“循環(huán)”這三種基本結(jié)構(gòu)來描述,限制使用無條件跳轉(zhuǎn)語句(goto)三種基本結(jié)構(gòu)順序結(jié)構(gòu)AB結(jié)構(gòu)化程序設(shè)計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)反復嵌套構(gòu)成的程序優(yōu)點:結(jié)構(gòu)清晰,易讀,提高程序設(shè)計質(zhì)量和效率12特點2:程序組織結(jié)構(gòu)化,即程序設(shè)計采用自頂向下,逐步細化,功能模塊化開發(fā)方法:

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

13例

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

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

非法預處理命令結(jié)構(gòu)特點

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

18DOS命令或Windows基本操作計算機中數(shù)的表示及進制轉(zhuǎn)換數(shù)碼、基與權(quán)數(shù)碼:表示數(shù)的符號基:數(shù)碼的個數(shù)權(quán):每一位所具有的值數(shù)制十進制二進制八進制十六進制預備知識195或(195)10(100)2(261)8(1FA)1619數(shù)制基權(quán)表示數(shù)碼特點10o,101,102,…十進制數(shù)0~910逢十進一127或(127)10二進制數(shù)0~122o,21,22,…逢二進一(10110)2八進制數(shù)0~788o,81,82,…逢八進一(17530)8十六進制數(shù)0~9,A~F1616o,161,162,…逢十六進一(AE701)1620二進制、八進制、十六進制轉(zhuǎn)換成十進制

方法:把每一位的數(shù)字乘以其相應位的權(quán)值,將各乘積相加各種進制之間的轉(zhuǎn)換21十進制轉(zhuǎn)換成二進制、八進制、十六進制整數(shù)部分:除基取余法,直至商為0小數(shù)部分:乘基取整法,直至小數(shù)部分為0或達到精度為止例把十進制數(shù)459.78125轉(zhuǎn)換成十六進制數(shù)(459.78125)10=(1CB.C8)1645916281611601CB余11余12余1各種進制之間的轉(zhuǎn)換0.78125*16=12.5120.5*16=888C22二進制轉(zhuǎn)換成八進制:整數(shù)部分從右向左,小數(shù)部分從左向右,每3位一組(不足3位補0),轉(zhuǎn)換成八進制八進制轉(zhuǎn)換成二進制:用3位二進制數(shù)代替每一位八進制數(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二進制與八進制之間的轉(zhuǎn)換各種進制之間的轉(zhuǎn)換23二進制轉(zhuǎn)換成十六進制:整數(shù)部分從右向左,小數(shù)部分從左向右,每4位一組(不足4位補0),轉(zhuǎn)換成十六進制十六進制轉(zhuǎn)換成二進制:用4位二進制數(shù)代替每一位十六進制數(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二進制與十六進制之間的轉(zhuǎn)換各種進制之間的轉(zhuǎn)換24內(nèi)存以字節(jié)為單元組成每個字節(jié)有一個地址一個字節(jié)一般由8個二進制位組成每個二進位的值是0或101234567012345678910…….字節(jié)和位25原碼:最高位為符號位,正數(shù)符號位為0,負數(shù)符號位為1,其余各位為數(shù)值本身的絕對值反碼:正數(shù):反碼與原碼相同負數(shù):最高位為1,其余位對原碼取反補碼:正數(shù):原碼、反碼、補碼相同負數(shù):最高位為1,其余位為原碼取反,再對整個數(shù)加1整數(shù)在機器內(nèi)大多用補碼表示整數(shù)的表示方法——原碼、反碼和補碼26原碼反碼補碼+7000001110000011100000111-7100001111111100

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論