C語言-第一章-新課件_第1頁
C語言-第一章-新課件_第2頁
C語言-第一章-新課件_第3頁
C語言-第一章-新課件_第4頁
C語言-第一章-新課件_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C語言程序設(shè)計(jì)教程8/16/20231C語言程序設(shè)計(jì)教程8/4/20231關(guān)于本課程的教學(xué)安排本課程的教學(xué)目的:通過對C語言的學(xué)習(xí),掌握使用計(jì)算機(jī)編程語言解決實(shí)際問題的基本理論、方法、技巧、以及常用的算法。本課程的教學(xué)安排:理論教學(xué)38學(xué)時(shí),實(shí)驗(yàn)教學(xué)22學(xué)時(shí)。參考書:

《C語言程序設(shè)計(jì)》譚浩強(qiáng)著《ThinkinginC++》機(jī)械工業(yè)出版社《ComputerConcepts》4thedtion機(jī)械工業(yè)出版社8/16/20232關(guān)于本課程的教學(xué)安排本課程的教學(xué)目的:通過對C語言的學(xué)習(xí),掌Let’scontinueour

Clanguagejourney!8/16/20233Let’scontinueour

ClanguageThestrategyoflearningCisa

step-by-stepapproach,first

layingasoundfoundationonprogrammingconcepts,flowofcontrol,andfunctions.ThefundamentalsofCprogrammingisasteppingstonethatwillprepareyoutoembarkonthejourneyoflearningC++andJAVA.8/16/20234ThestrategyoflearningCisYouwillbegintolearnhowtowritesimpleCprogramswithprimitivedatatypes,controlstatements,functions,andarrays.ProgrammingExercisesattheendofeachchapterprovideyouwithopportunitiestoapplytheskillsonyourown.8/16/20235YouwillbegintolearnhowtoThetrickoflearningprogrammingispractice,practice,andpractice.8/16/20236Thetrickoflearningprogramm第一章C語言程序設(shè)計(jì)基礎(chǔ)知識(shí)1.1概述1.1.1信息的表示1.數(shù)制十進(jìn)制:

日常使用的數(shù)制。二進(jìn)制、八進(jìn)制、十六進(jìn)制:

計(jì)算機(jī)中使用的數(shù)制。8/16/20237第一章C語言程序設(shè)計(jì)基礎(chǔ)知識(shí)1.1概述8/4/20237不同數(shù)制間的轉(zhuǎn)換:

二、八、十六進(jìn)制轉(zhuǎn)換成十進(jìn)制的方法是

--------按位權(quán)法展開。例:二進(jìn)制轉(zhuǎn)換成八、十六進(jìn)制的方法是

--------分組法(三位、四位一組)。例:八、十六進(jìn)制轉(zhuǎn)換成二進(jìn)制的方法是

--------直接法(直接將八、十六進(jìn)制數(shù)字符號(hào)轉(zhuǎn)換成二進(jìn)制數(shù)字符號(hào))。例:十進(jìn)制轉(zhuǎn)換成二、八、十六進(jìn)制間的方法是

--------整數(shù)部分除法取余,小數(shù)部分乘法取整。例:(101.01)2=1×22+0×21+1×

20+0×

2-1+1×

2-2=(5.25)10↑小數(shù)點(diǎn)位置

(1a.2)16=1×

161+10×160+2×

16-1=(26.125)10↑小數(shù)點(diǎn)位置

(1010111.011)2=(001010111.011)2

=(127.3)8(1010111.011)2=(01010111.0110)2

=(57.6)16

轉(zhuǎn)換時(shí)應(yīng)注意:分別對整數(shù)和小數(shù)部分進(jìn)行分組。整數(shù)部分:從小數(shù)點(diǎn)開始,向左三位(四位)一組,不夠三位(四位)時(shí),高位充零。小數(shù)部分:從小數(shù)點(diǎn)開始,向右三位(四位)一組,不夠三位(四位)時(shí),低位充零。最后將各組數(shù)據(jù)轉(zhuǎn)換成相應(yīng)數(shù)制的符號(hào)即可。(a5)16=(10100101)2建議:二、八、十六進(jìn)制間的轉(zhuǎn)換應(yīng)利用二進(jìn)制作為過渡,這樣做來得簡單。例:求(a5)16的八進(jìn)制表示。(a5)16=(10100101)2=(010100101)2=(245)80.125×2=0.25….0

最高位8/16/20238不同數(shù)制間的轉(zhuǎn)換:(101.01)2=1×(28.125)10對應(yīng)的二進(jìn)制數(shù)是(11100.001)2。整數(shù)部分:28小數(shù)部分:0.125余數(shù)整數(shù)2…….0

最低位14282…….072…….132…….1

1

最高位0.125×2=0.25….0

最高位0.25×2=0.5….00.5×2=1.0….1

最低位8/16/202392…….0最低位282

數(shù)據(jù)

數(shù)值數(shù)據(jù):二進(jìn)制非數(shù)值數(shù)據(jù):編碼定點(diǎn)法浮點(diǎn)法西文:ASCII,BCD漢字:國標(biāo)碼圖形有符定點(diǎn)無符定點(diǎn)2.數(shù)據(jù)的編碼通常在計(jì)算機(jī)中用8個(gè)、16個(gè)、32個(gè)….等固定個(gè)數(shù)的二進(jìn)制位來表示某一個(gè)數(shù)據(jù)。計(jì)算機(jī)中常見的數(shù)據(jù)分為兩種即數(shù)值數(shù)據(jù)和非數(shù)值數(shù)據(jù)。8/16/202310

數(shù)據(jù)

數(shù)值數(shù)據(jù):二進(jìn)制非數(shù)值型數(shù)據(jù):

通常在計(jì)算機(jī)中用8個(gè)、16個(gè)、32個(gè)二進(jìn)制位來表示數(shù)值型數(shù)據(jù)。小數(shù)點(diǎn)的位置總是隱含的,以節(jié)省空間。但小數(shù)點(diǎn)的位置可以是固定的或可變的。前者稱為定點(diǎn)數(shù),后者稱為浮點(diǎn)數(shù)。(1)定點(diǎn)數(shù)(在計(jì)算機(jī)中整數(shù)是按定點(diǎn)數(shù)格式存放的)定點(diǎn)數(shù)分為:有符定點(diǎn)數(shù)(signed)無符定點(diǎn)數(shù)(unsigned)。

⑵浮點(diǎn)數(shù)(在計(jì)算機(jī)中小數(shù)是按浮點(diǎn)數(shù)格式存放的)

8/16/202311數(shù)值型數(shù)據(jù):8/4/202311有符定點(diǎn)整數(shù)dsdndn-1dn-2……..d1

↑↑符號(hào)位數(shù)值部分小數(shù)點(diǎn)無符定點(diǎn)整數(shù)dndn-1dn-2…………..d1

↑數(shù)值部分小數(shù)點(diǎn)8/16/2023128/4/202312⑵浮點(diǎn)數(shù)(在計(jì)算機(jī)中小數(shù)是按浮點(diǎn)數(shù)格式存放的)浮點(diǎn)數(shù)格式如下:Jsjnjn-1….j2j1dsdmdm-1…….…..d2d1↑↑階符階碼數(shù)符尾數(shù)

8/16/202313⑵浮點(diǎn)數(shù)(在計(jì)算機(jī)中小數(shù)是按浮點(diǎn)數(shù)格式存放的)8/4/20字符型數(shù)據(jù):常用的英文編碼有ASCII碼、BCD碼

ASCII碼

ASCII碼是英文AmericanStandardCodeforInformationInterchange(美國信息交換標(biāo)準(zhǔn)編碼)的縮寫。

該編碼已經(jīng)國際標(biāo)準(zhǔn)化組織所采納。目前國際上流行的是ASCII編碼的七位版本,即用一個(gè)字節(jié)的低七位表示一個(gè)字符,高位充零。七個(gè)二進(jìn)制位可表示128種狀態(tài),故可用來表示128個(gè)不同的字符,在ASCII編碼的七位版本中表示的33個(gè)通用控制字符、95個(gè)可打印顯示的字符(其中10個(gè)數(shù)字、52個(gè)大小寫英文字母、33個(gè)標(biāo)點(diǎn)符號(hào)和運(yùn)算符號(hào))。ASCII編碼表(見附錄I)8/16/202314字符型數(shù)據(jù):8/4/202314字符型數(shù)據(jù):

常用的中文編碼有國家標(biāo)準(zhǔn)漢字編碼(GB碼)GB2312-80(國家標(biāo)準(zhǔn)漢字編碼)是常用的漢字編碼標(biāo)準(zhǔn),它收錄了6763個(gè)常用漢字。國標(biāo)碼使用連續(xù)的兩個(gè)字節(jié)(十六位二進(jìn)制位)表示一個(gè)漢字。根據(jù)這些漢字使用頻率的高低,分成兩部分:一級漢字共3755個(gè),即最常用的漢字。二級漢字共3008個(gè),為次常用的漢字。

GB2312-80還收錄了一些數(shù)字符號(hào)、圖形符號(hào)、外文字母等。

8/16/202315字符型數(shù)據(jù):8/4/202315數(shù)值數(shù)據(jù)的編碼方法:前面討論的是數(shù)值數(shù)據(jù)在計(jì)算機(jī)中的存放格式,下面討論對數(shù)值數(shù)據(jù)進(jìn)行編碼的方法。

①原碼表示法:(假定用八個(gè)二進(jìn)制位表示)a=+51(a)2=(+00110011)2則[a]原=00110011a=-127(a)2=(-01111111)2則[a]原=11111111

原碼表示法在八個(gè)二進(jìn)制位中的表示范圍:-127≤a≤+127[+0]原=00000000[-0]原=10000000要點(diǎn):最高位作為符號(hào)位,若正數(shù),則最高位是0,若負(fù)數(shù),則最高位是1。

8/16/202316數(shù)值數(shù)據(jù)的編碼方法:8/4/202316②反碼表示法:(假定用八個(gè)二進(jìn)制位表示)通過一個(gè)二進(jìn)制整數(shù)的原碼得到所謂反碼:當(dāng)a為正數(shù)時(shí),[a]原=[a]反,當(dāng)a為負(fù)數(shù)時(shí),則保持[a]原的符號(hào)位不變,其余各個(gè)二進(jìn)制位逐位取反,即0變1,1變0。如:a=+51[a]原=00110011則[a]反=[a]原=00110011a=-51[a]原=10110011則[a]反=11001100

反碼表示法在八個(gè)二進(jìn)制位中的表示范圍:-127≤a≤+127[+0]反=00000000[-0]反=11111111要點(diǎn):由原碼得到反碼。若正數(shù),則反碼與原碼相同,若負(fù)數(shù),則最高位不變,其余逐位取反。

8/16/202317②反碼表示法:(假定用八個(gè)二進(jìn)制位表示)8/4/202317③補(bǔ)碼表示法:(假定用八個(gè)二進(jìn)制位表示)通過一個(gè)二進(jìn)制整數(shù)的反碼得到所謂補(bǔ)碼:當(dāng)a≥0時(shí),[a]補(bǔ)=[a]反,當(dāng)a<0時(shí),則[a]補(bǔ)=[a]反+1,如:a=+51[a]原=00110011則[a]補(bǔ)=[a]反=[a]原=00110011a=-51[a]原=10110011[a]反=11001100則[a]補(bǔ)=[a]反+1

=11001101補(bǔ)碼表示法在八個(gè)二進(jìn)制位中的表示范圍:-128≤a≤+127[+0]補(bǔ)=00000000[-128]補(bǔ)=10000000

要點(diǎn):由反碼得到補(bǔ)碼。若正數(shù),則反碼與補(bǔ)碼相同,若負(fù)數(shù),則補(bǔ)碼等于反碼加1。在補(bǔ)碼表示法中,0的表示是唯一的,而最小值可達(dá)-128。8/16/202318③補(bǔ)碼表示法:(假定用八個(gè)二進(jìn)制位表示)8/4/202318在上述介紹當(dāng)中我們是以八位二進(jìn)制位為例,同樣,我們可以將其推廣到十六位,三十二位等二進(jìn)制位中去,需要注意的是數(shù)值范圍將發(fā)生變化。

思考:以上介紹的原碼、反碼、補(bǔ)碼都是有符定點(diǎn)整數(shù)的編碼方式,若以八位二進(jìn)制位表示無符定點(diǎn)整數(shù),則其范圍是0到255。

在TurboC中:

有符整數(shù)是按有符定點(diǎn)整數(shù)格式的補(bǔ)碼表示的,

無符整數(shù)是按無符定點(diǎn)整數(shù)格式表示的。8/16/202319在上述介紹當(dāng)中我們是以八位二進(jìn)制位為例,同樣補(bǔ)碼的加、減法補(bǔ)碼的加法公式是:[a]補(bǔ)+[b]補(bǔ)=[a+b]補(bǔ)補(bǔ)碼的減法公式是:[a-b]補(bǔ)=[a]補(bǔ)-[b]補(bǔ)=[a]補(bǔ)+[-b]補(bǔ)例1.1:a=[11]10=[00001011]原,b=[5]10=[00000101]原,求a+b。因?yàn)閇a]補(bǔ)=00001011,[b]補(bǔ)=00000101補(bǔ)碼→[a+b]補(bǔ)=[00010000]補(bǔ)[a+b]反=[00010000]反[a+b]原=[00010000]原=[16]108/16/202320補(bǔ)碼的加、減法8/4/202320一、負(fù)整數(shù)的原碼與補(bǔ)碼的快速轉(zhuǎn)換:

⒈從左到右;⒉見0不變、見第一個(gè)1也不變;

⒊其余位依次取反;

⒋最高位不變二、整數(shù)的原、反、補(bǔ)碼相同。8/16/202321一、負(fù)整數(shù)的原碼與補(bǔ)碼的快速轉(zhuǎn)換:

⒈從左到右;8/4/20

例1.2:-a=[-11]10=[10001011]原,b=[5]10=[00000101]原,求b-a。因?yàn)閇-a]補(bǔ)=11110101,[b]補(bǔ)=00000101

補(bǔ)碼→[b-a]補(bǔ)=[b]補(bǔ)+[-a]補(bǔ)=[11111010]補(bǔ)[b-a]反=[11111001]反[b-a]原=[10000110]原=[-6]10

8/16/202322例1.2:-a=[-11]10=[10001011]原,b關(guān)于字符編碼方法:要注意ASCII碼和國標(biāo)碼應(yīng)用對象的不同,ASCII碼用來對英文字符編碼而國標(biāo)碼用來對漢字進(jìn)行編碼。ASCII碼使用一個(gè)字節(jié)(八位二進(jìn)制位),國標(biāo)碼使用兩個(gè)字節(jié)(十六位二進(jìn)制位)。

GB2312-80規(guī)定了用連續(xù)的兩個(gè)字節(jié)來表示一個(gè)漢字,并且只用各個(gè)字節(jié)的低7位,最高位未定義。這樣以來就有可能與ASCII碼字符產(chǎn)生沖突,就單個(gè)字節(jié)來說,兩種編碼方式都只用到字節(jié)的低七位,ASCII碼規(guī)定高位充零,而國標(biāo)碼對高位未定義,因此,對單個(gè)字節(jié)而言,不能確定它到底是一個(gè)ASCII碼字符還是一個(gè)漢字的一部分(低字節(jié)或高字節(jié))。于是有很多為了解決這類問題的方案應(yīng)運(yùn)而生,變形國標(biāo)碼就是其中之一,并且得到了廣泛的應(yīng)用。它的主要特點(diǎn)是將國標(biāo)碼編碼的各個(gè)字節(jié)的最高位置1,以達(dá)到區(qū)別于ASCII編碼的目的。8/16/202323關(guān)于字符編碼方法:8/4/202323如何理解存儲(chǔ)在計(jì)算機(jī)中的信息

計(jì)算機(jī)中各種信息都是以二進(jìn)制形式存在,有的是數(shù)值,有的是ASCII碼字符,有的是漢字,如何區(qū)分它們呢?這實(shí)際上取決于我們(或者程序)按照何種規(guī)則判讀它們,例如:對于機(jī)器內(nèi)存中連續(xù)兩個(gè)字節(jié),它們的低七位內(nèi)容分別為0110000和0100001,如果它們的最高位均為1,則表示漢字“啊”,如果均為0則表示為兩個(gè)ASCII碼字符“0”和“!”。當(dāng)然,我們還可根據(jù)不同的數(shù)值編碼規(guī)則將它們判讀成不同的數(shù)值。

8/16/202324如何理解存儲(chǔ)在計(jì)算機(jī)中的信息8/4/201.1.2計(jì)算機(jī)系統(tǒng)的基本組成一個(gè)完整的計(jì)算機(jī)系統(tǒng)是由硬件系統(tǒng)和軟件系統(tǒng)兩大部分組成。

硬件系統(tǒng):是構(gòu)成計(jì)算機(jī)系統(tǒng)的各種物理設(shè)備的總稱,是計(jì)算機(jī)系統(tǒng)的物質(zhì)基礎(chǔ),它由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備組成;

軟件系統(tǒng):是為運(yùn)行、管理和維護(hù)計(jì)算機(jī)而編制的程序和各種文檔的總和。8/16/2023251.1.2計(jì)算機(jī)系統(tǒng)的基本組成8/4/202325計(jì)算機(jī)系統(tǒng)硬件系統(tǒng)軟件系統(tǒng)主機(jī)外設(shè)系統(tǒng)軟件應(yīng)用軟件中央處理器(CPU)內(nèi)存儲(chǔ)器運(yùn)算器(ALU)控制器(CU)只讀存儲(chǔ)器(ROM)隨機(jī)存儲(chǔ)器(RAM)外部存儲(chǔ)器(輔助存儲(chǔ)器)輸入設(shè)備輸出設(shè)備操作系統(tǒng)編譯系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)實(shí)用程序?qū)S脩?yīng)用軟件通用應(yīng)用軟件圖1-48/16/202326計(jì)算機(jī)系統(tǒng)硬件系統(tǒng)軟件系統(tǒng)主機(jī)外設(shè)系統(tǒng)軟件應(yīng)用軟件中央處理器1.硬件系統(tǒng)計(jì)算機(jī)硬件主要由中央處理器、主存儲(chǔ)器、輔助存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備等組成。(1)中央處理器(CPU)CPU的作用是不斷的從內(nèi)存中取指令并執(zhí)行指令。CPU的指令控制部件負(fù)責(zé)解釋并執(zhí)行各條指令,在內(nèi)部進(jìn)行算術(shù)運(yùn)算、邏輯運(yùn)算,對外部按指令要求與內(nèi)存、接口設(shè)備交換信息,協(xié)調(diào)整個(gè)計(jì)算機(jī)系統(tǒng)的工作。

8/16/2023271.硬件系統(tǒng)8/4/202327(2)主存儲(chǔ)器(MainMemory)

主存儲(chǔ)器又稱為內(nèi)存儲(chǔ)器,簡稱內(nèi)存,用來存放當(dāng)前運(yùn)行的程序和數(shù)據(jù)。根據(jù)其工作方式和讀寫功能的不同,內(nèi)存可分為:只讀存儲(chǔ)器和隨機(jī)存儲(chǔ)器。①只讀存儲(chǔ)器(ROM):ROM(ReadOnlyMemory)②隨機(jī)存儲(chǔ)器(RAM):RAM(RandomAccessMemory)有以下兩個(gè)特點(diǎn):一是隨機(jī)存取信息,二是具有“揮發(fā)性”。

(3)輔助存儲(chǔ)器(AuxiliaryMemory)

主存儲(chǔ)器速度快但價(jià)格昂貴,因而容量受到限制,且斷電后即“揮發(fā)”,所以計(jì)算機(jī)采用了大容量的輔助存儲(chǔ)器,如磁帶、磁盤、光盤等。輔助存儲(chǔ)器只能與主存儲(chǔ)器交換信息,是主存儲(chǔ)器的擴(kuò)充。它與主存儲(chǔ)器一起構(gòu)成計(jì)算機(jī)存儲(chǔ)體系中的一個(gè)重要組成部分。8/16/202328(2)主存儲(chǔ)器(MainMemory)8/4/202328存儲(chǔ)器容量單位

在存儲(chǔ)器中,存儲(chǔ)器最小單位是存儲(chǔ)位(Bit),由若干個(gè)存儲(chǔ)位組成一個(gè)存儲(chǔ)單元,如八個(gè)二進(jìn)制位組成一個(gè)字節(jié)存儲(chǔ)單元(Byte),然后再由許多個(gè)存儲(chǔ)單元組成存儲(chǔ)器。為了區(qū)分不同的存儲(chǔ)單元,必須將它們逐一編號(hào),該編號(hào)稱為存儲(chǔ)單元的地址。通過地址,可以訪問各個(gè)存儲(chǔ)單元。一個(gè)存儲(chǔ)器中包含的存儲(chǔ)單元的總數(shù)通常稱為該存儲(chǔ)器的存儲(chǔ)容量。存儲(chǔ)容量的換算關(guān)系如下:1Byte=8Bits1KB=1024Bytes=210Bytes1MB=1024KB=220Bytes1GB=1024MB=230Bytes1TB=1024GB=240Bytes

8/16/202329存儲(chǔ)器容量單位8/4/202329(4)輸入/輸出設(shè)備輸入設(shè)備是向計(jì)算機(jī)輸入數(shù)據(jù)、信息的設(shè)備的總稱。它將計(jì)算機(jī)程序、文本信息、多媒體信息以及各種數(shù)據(jù)轉(zhuǎn)換成計(jì)算機(jī)能處理的數(shù)據(jù)形式并輸送到計(jì)算機(jī)。常見的輸入設(shè)備有鍵盤、鼠標(biāo)、掃描儀等。輸出設(shè)備是能將計(jì)算機(jī)處理好的信息轉(zhuǎn)換成文本、圖形、多媒體等形式并輸出的設(shè)備。常見的輸出設(shè)備有顯示器、打印機(jī)、繪圖儀等。8/16/202330(4)輸入/輸出設(shè)備8/4/2023302.軟件系統(tǒng)

計(jì)算機(jī)只有配備了軟件系統(tǒng)才能進(jìn)行工作。一臺(tái)計(jì)算機(jī)能否發(fā)揮其應(yīng)有的作用,實(shí)現(xiàn)硬件系統(tǒng)所能完成的信息處理功能,取決于軟件系統(tǒng)的優(yōu)良與否。軟件一般指計(jì)算機(jī)運(yùn)行所需的各種程序、數(shù)據(jù)以及相關(guān)的文檔。軟件系統(tǒng)由系統(tǒng)軟件和應(yīng)用軟件兩大部分組成。系統(tǒng)軟件是用來對計(jì)算機(jī)進(jìn)行管理、控制和維護(hù),以及支持應(yīng)用程序的運(yùn)行的軟件的集合。應(yīng)用軟件是在系統(tǒng)軟件的支持下為解決各類實(shí)際問題而設(shè)計(jì)開發(fā)的軟件(程序)。8/16/2023312.軟件系統(tǒng)8/4/202331(1)系統(tǒng)軟件系統(tǒng)軟件用于管理計(jì)算機(jī)資源,分配和協(xié)調(diào)計(jì)算機(jī)各部件工作,提高計(jì)算機(jī)的使用效率,方便用戶使用計(jì)算機(jī)。系統(tǒng)軟件包括以下四大類:①操作系統(tǒng):②編譯系統(tǒng):③實(shí)用程序:④數(shù)據(jù)庫管理系統(tǒng):8/16/202332(1)系統(tǒng)軟件8/4/202332(2)應(yīng)用軟件應(yīng)用軟件是用戶或軟件開發(fā)人員在系統(tǒng)軟件的支持下,為解決各類實(shí)際問題而設(shè)計(jì)、開發(fā)的軟件,它包括通用應(yīng)用軟件即軟件包和專用應(yīng)用軟件即用戶應(yīng)用軟件。通用應(yīng)用軟件是指由軟件公司專業(yè)人員為解決通用性問題而設(shè)計(jì)的軟件,以供用戶選擇實(shí)用。這類軟件很多如:Office2000(辦公自動(dòng)化)、Access97(數(shù)據(jù)庫)、SAS(統(tǒng)計(jì)分析系統(tǒng))等。專用應(yīng)用軟件是指用戶為了解決特定問題自己或委托他人研制開發(fā)的軟件。如工資管理系統(tǒng)等。8/16/202333(2)應(yīng)用軟件8/4/202333需要注意的是:1)內(nèi)存和外存在計(jì)算機(jī)系統(tǒng)中的作用,以及他們之間的關(guān)系。2)存儲(chǔ)器的容量單位和地址的概念:存儲(chǔ)器最小單位是存儲(chǔ)位(Bit),由若干個(gè)Bit成一個(gè)存儲(chǔ)單元,如八個(gè)二進(jìn)制位組成一個(gè)字節(jié)存儲(chǔ)單元(Byte),然后再由許多個(gè)存儲(chǔ)單元組成存儲(chǔ)器。為了區(qū)分不同的存儲(chǔ)單元,必須將它們逐一編號(hào),該編號(hào)稱為存儲(chǔ)單元的地址。通過地址,可以訪問各個(gè)存儲(chǔ)單元。一個(gè)存儲(chǔ)器中包含的存儲(chǔ)單元的總數(shù)通常稱為該存儲(chǔ)器的存儲(chǔ)容量。存儲(chǔ)容量的換算關(guān)系如下:1Byte=8Bits1KB=1024Bytes=210Bytes1MB=1024KB=220Bytes1GB=1024MB=230Bytes1TB=1024GB=240Bytes8/16/202334需要注意的是:8/4/2023343.計(jì)算機(jī)語言

所謂計(jì)算機(jī)語言是人類為了有效地與計(jì)算機(jī)進(jìn)行信息的傳遞、溝通,并且能讓計(jì)算機(jī)按照人類的意志進(jìn)行工作而開發(fā)出的一種語言。人類使用它描述解決問題一系列步驟,計(jì)算機(jī)能夠識(shí)別并執(zhí)行它,以達(dá)到解決問題的目的。(1)機(jī)器語言(2)匯編語言(3)高級語言

在此,請注意,計(jì)算機(jī)只能識(shí)別并執(zhí)行二進(jìn)制機(jī)器指令的特點(diǎn)并被有改變。要想計(jì)算機(jī)執(zhí)行匯編程序或者高級語言程序就必須將該程序“轉(zhuǎn)換”(編譯或解釋)成機(jī)器指令程序,方可執(zhí)行。8/16/2023353.計(jì)算機(jī)語言8/4/2023354.翻譯方式編譯程序或解釋程序?qū)Ω呒壵Z言程序(或匯編語言程序)進(jìn)行“翻譯”處理,使它成為機(jī)器指令程序,才能提交計(jì)算機(jī)執(zhí)行。其核心是將高級語言(或匯編語言)轉(zhuǎn)換成“機(jī)器指令程序”。下面分別介紹這兩種處理方式。(1)解釋方式使用解釋程序(Interpreter)將高級語言程序的語句逐條“翻譯”成機(jī)器指令并逐條提交計(jì)算機(jī)執(zhí)行,直至程序結(jié)束(如圖1-5所示)。8/16/2023364.翻譯方式8/4/202336(2)編譯方式

所謂編譯方式是分兩步進(jìn)行的首先通過編譯程序(Compiler)對整個(gè)高級語言程序進(jìn)行編譯,它包括翻譯和查錯(cuò)(詞法分析、語法和語義分析、生成和優(yōu)化目標(biāo)程序)。出現(xiàn)錯(cuò)誤時(shí),停止編譯,報(bào)告錯(cuò)誤,不生成目標(biāo)程序,待修改源程序后,再進(jìn)行編譯,直到最終得到正確的目標(biāo)程序。然后使用鏈接程序(Linker)對目標(biāo)程序進(jìn)行鏈接,得到可執(zhí)行的程序,這時(shí)才能將可執(zhí)行程序提交計(jì)算機(jī)執(zhí)行(如圖1-6所示)

Turboc是以編譯方式進(jìn)行工作的。8/16/202337(2)編譯方式8/4/2023371.2算法及其表示

1.2.1算法的概念和特點(diǎn)我們在使用計(jì)算機(jī)解決實(shí)際問題的時(shí)候,通常按如下步驟進(jìn)行:1.分析問題,找出解決問題的模型。2.根據(jù)模型,設(shè)計(jì)出適合計(jì)算機(jī)特點(diǎn)的處理方法即算法。3.選擇適合的計(jì)算機(jī)語言,進(jìn)行編程以實(shí)現(xiàn)算法。4.上機(jī)編輯、調(diào)試、運(yùn)行所編制的程序,得到結(jié)果。5.對結(jié)果進(jìn)行分析,整理出文字材料即文檔。8/16/2023381.2算法及其表示8/4/202338一個(gè)合理的算法具有以下特點(diǎn):1.有窮性:一個(gè)算法應(yīng)該是“有限”個(gè)步驟的,而不能是“無限“個(gè)步驟的。也就是說經(jīng)過有限個(gè)步驟的處理以后,算法應(yīng)該結(jié)束。2.確定性:算法中的每一個(gè)步驟的含義都是確定的、唯一的,不能具有其他的含義或可被理解成其他的含義。3.有輸入:可有零個(gè)或多個(gè)輸入。輸入是用來在一個(gè)算法的執(zhí)行過程中,向它提供處理對象(數(shù)據(jù))或控制算法執(zhí)行過程的信息的。4.有輸出:可有一個(gè)或多個(gè)輸出。它是算法執(zhí)行的結(jié)果的輸出。沒有輸出的算法是一個(gè)無效的算法。5.有效性:算法的每一步驟都可有效地執(zhí)行。8/16/202339一個(gè)合理的算法具有以下特點(diǎn):8/4/2023391.2.2如何表示一個(gè)算法

表示一個(gè)算法的方法很多,如自然語言法、傳統(tǒng)流程圖法、N-S流程圖法、偽代碼法等,理論上都可用來表示算法,但是效率上有很大差異。例如:M=5!,要求M的值。自然語言法描述算法如下:①設(shè)定變量M,M置初值為1,設(shè)定變量I,置初值為1。②如果I的值小于6,則執(zhí)行③,否則執(zhí)行④。③將M乘以I并置于M中存放,將I中的值加1并置于I中存放,再執(zhí)行②。④將M中的值輸出。

用傳統(tǒng)流程圖法描述算法如圖1-7所示:用N-S流程圖描述算法如圖1-8所示:

8/16/2023401.2.2如何表示一個(gè)算法8/4/202340結(jié)構(gòu)化程序設(shè)計(jì)

人們經(jīng)過長期的實(shí)踐,不斷地總結(jié)經(jīng)驗(yàn),提出了結(jié)構(gòu)化程序設(shè)計(jì)方法,將算法的描述歸納為三種基本結(jié)構(gòu)的順序組合,即順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。它們的共同特點(diǎn)是:只有一個(gè)入口,只有一個(gè)出口,每個(gè)基本結(jié)構(gòu)中的每一部分都有機(jī)會(huì)被執(zhí)行,結(jié)構(gòu)內(nèi)部不存在死循環(huán)。使用三種基本結(jié)構(gòu)描述的算法是結(jié)構(gòu)化的算法,按照結(jié)構(gòu)化算法編寫出來的程序具有良好的可讀性和可維護(hù)性。需要說明的是傳統(tǒng)流程圖使用幾何圖形、流程線、文字說明(見表1-1)來描述一個(gè)算法,美國學(xué)者I.Nassi和B.Shneidermen提出了用N-S流程圖又稱盒圖(三種基本結(jié)構(gòu)對照表見表1-2)描述算法的方法。8/16/202341結(jié)構(gòu)化程序設(shè)計(jì)8/4/2023418/16/2023428/4/2023421.3C語言基本知識(shí)1.3.1C語言的發(fā)展歷史及特點(diǎn)

1.C語言程序結(jié)構(gòu)緊湊、語言簡潔。2.C語言的數(shù)據(jù)類型豐富。3.C語言的運(yùn)算符豐富,有多達(dá)44種運(yùn)算符,(見附錄III)。4.C語言是一種結(jié)構(gòu)化程序設(shè)計(jì)語言。5.C語言是處于匯編語言和高級語言之間的程序設(shè)計(jì)語言,即中級語言。6.C語言可移植性好7.C語言的語法限制不太嚴(yán)格。8/16/2023431.3C語言基本知識(shí)8/4/2023431.3.2C語言的標(biāo)識(shí)符與關(guān)鍵字在C語言程序中,標(biāo)識(shí)符和關(guān)鍵字都屬于程序的基本語法單位。正確地使用標(biāo)識(shí)符和關(guān)鍵字對于程序的編制是至關(guān)重要的。1.標(biāo)識(shí)符標(biāo)識(shí)符一般是指用戶或系統(tǒng)定義的符號(hào)名、變量名、數(shù)組名、類型名、函數(shù)名、文件名等。C語言規(guī)定標(biāo)識(shí)符由字母、數(shù)字、下劃線組成,必須以字母或下劃線開頭。大寫字母小寫字母被認(rèn)為是不同的字符,在標(biāo)識(shí)符中不能含有其它字符,也不能跨行書寫。例如,合法的標(biāo)識(shí)符如下:a_1name_x123worker

World_1_Wolf非法的標(biāo)識(shí)符如下:1abcname,1x123n&a12To-medate..1TurboC規(guī)定標(biāo)識(shí)符長度不超過32個(gè)字符,超過32個(gè)字符的部分無效。

8/16/2023441.3.2C語言的標(biāo)識(shí)符與關(guān)鍵字8/4/202344用戶在定義標(biāo)識(shí)符的時(shí)候應(yīng)注意:①不要與系統(tǒng)預(yù)定義的標(biāo)識(shí)符或關(guān)鍵字相同。如:用戶不要定義printf作為用戶標(biāo)識(shí)符,因?yàn)橄到y(tǒng)已經(jīng)將其預(yù)先定義為格式輸出函數(shù)的標(biāo)識(shí)符,以免引起沖突。②盡可能直觀地定義標(biāo)識(shí)符,也就是說,從所定義的標(biāo)識(shí)符的字面上就能夠了解其含義,以方便以后的使用。8/16/202345用戶在定義標(biāo)識(shí)符的時(shí)候應(yīng)注意:8/4/2023452.關(guān)鍵字

C語言中的關(guān)鍵字又稱保留字,它是由C的編譯程序預(yù)定義的、具有特定含義的單詞,用戶不可將其定義成自己的標(biāo)識(shí)符使用。C的關(guān)鍵字有以下32個(gè):

autobreakcasecharconst

continuedefaultdodoubleelse

enumcxternfloatforgoto

ifintlongregisterreturn

shortsignedsizeofstaticstruct

switchtypedefunionunsignedvoid

volatilewhile

8/16/2023462.關(guān)鍵字

C語言中的關(guān)鍵字又稱保留字,它是由C1.3.3C語言的基本結(jié)構(gòu)1.C語言程序由一個(gè)或多個(gè)函數(shù)組成,其中有且只

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。