版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語(yǔ)言程序設(shè)計(jì)TheCProgrammingLanguage華中科技大學(xué)計(jì)算機(jī)學(xué)院
曹計(jì)昌8/4/20231華中科技大學(xué)計(jì)算機(jī)學(xué)院C語(yǔ)言程序設(shè)計(jì)TheCProgrammingLangu第0章C語(yǔ)言程序設(shè)計(jì)課程安排一.教材(Textbook) 曹計(jì)昌,盧萍,李開(kāi).C語(yǔ)言程序設(shè)計(jì).科學(xué)出版社,2008.2李開(kāi),盧萍,曹計(jì)昌.C語(yǔ)言實(shí)驗(yàn)與課程設(shè)計(jì).科學(xué)出版社,2011.3二.參考書(shū)目(ReferenceBooks)(1)BrianW.Kernighan,DennisM.Ritchie.THECPROGRAMMINGLANGUAGE.清華大學(xué)出版社.PRENTICEHALL(注:該書(shū)已有中譯本)(2)曹化工秦友淑.C語(yǔ)言程序設(shè)計(jì)典型題解析及自測(cè)試題.西北工業(yè)大學(xué)出版社(3)秦友淑曹化工.C語(yǔ)言程序設(shè)計(jì)教程(第二版).華中科技大學(xué)出版社,2002年12月8/4/20232華中科技大學(xué)計(jì)算機(jī)學(xué)院第0章C語(yǔ)言程序設(shè)計(jì)課程安排一.教材(Textbook)7三.ISO的C語(yǔ)言標(biāo)準(zhǔn)和相關(guān)資料(ISO/IECCStandardandOtherMaterials)
(C語(yǔ)言標(biāo)準(zhǔn),網(wǎng)站等資料)(1)最新標(biāo)準(zhǔn):ISO/IEC9899:1999(E) ISO(theInternationalOrganizationforStandardization)and IEC(theInternationalElectrotechnicalCommission)(2)C始于:”TheCReferenceManual”byDennisM.Ritchie,aversionofwhichwaspublishedinTheCProgrammingLanguagebyBrianW.KernighanandDennis
M.Ritchie,Prentice-Hall,Inc.,(1978).CopyrightownedbyAT&T.(3)DennisRitchieHomePage“TheDevelopmentoftheCLanguage”,byDennisRitchie ANSICstandardlibrary–Wikipedia; BrianW_Kernighan; n843,n897,n2794等C語(yǔ)言方面的相關(guān)標(biāo)準(zhǔn)資料,文檔,網(wǎng)頁(yè)和網(wǎng)站8/4/20233華中科技大學(xué)計(jì)算機(jī)學(xué)院三.ISO的C語(yǔ)言標(biāo)準(zhǔn)和相關(guān)資料(ISO/IECCSta三.本課程提供的其它資料(1)C語(yǔ)言程序設(shè)計(jì)課程課件ppt(2)C語(yǔ)言標(biāo)準(zhǔn),網(wǎng)站等資料(前頁(yè)已經(jīng)介紹)(3)C語(yǔ)言程序設(shè)計(jì)(中文版)源程序(4)C語(yǔ)言課程設(shè)計(jì)2010(09級(jí))(5)2010級(jí)ACM班C語(yǔ)言程序設(shè)計(jì)課程資料(6)漢字庫(kù)--16乘16點(diǎn)陣(7)TurboC2.0函數(shù)中文說(shuō)明大全8/4/20234華中科技大學(xué)計(jì)算機(jī)學(xué)院三.本課程提供的其它資料(1)C語(yǔ)言程序設(shè)計(jì)課程課件ppt2010級(jí)ACM班C語(yǔ)言程序設(shè)計(jì)課程資料(1)TheCProgrammingLanguage-ppt(2)TheCProgrammingLanguage,2ndtextbook(3)3TheCProgrammingLanguage-sourcefiles(4)《C程序設(shè)計(jì)語(yǔ)言》英文版第2版課后習(xí)題與答案(5)C語(yǔ)言課程設(shè)計(jì)2011ACM班(6)教學(xué)日歷-SyllabusofTheCProgrammingLanguage8/4/20235華中科技大學(xué)計(jì)算機(jī)學(xué)院2010級(jí)ACM班C語(yǔ)言程序設(shè)計(jì)課程資料(1)TheC(4)關(guān)于C語(yǔ)言的圣經(jīng)”一書(shū)的作者即:K&RC,即C創(chuàng)始人“TheCProgrammingLanguage”,“C語(yǔ)言的圣經(jīng)”一書(shū)的作者DennisM.RitchiereceivedBachelor'sandadvanceddegreesfromHarvardUniversity,whereasanundergraduateIconcentratedinPhysicsandasagraduatestudentinAppliedMathematics.Thesubjectofmy1968doctoralthesiswassubrecursivehierarchiesoffunctions.BrianW.KernighanisheadoftheComputingStructuresResearchDepartment,BellLaboratories,MurrayHill,NewJersey.
HereceivedaB.A.ScinengineeringphysicsfromtheUniversityofTorontoin1964,andaPh.D.inelectricalengineeringfromPrincetonUniversityin1969.
8/4/20236華中科技大學(xué)計(jì)算機(jī)學(xué)院(4)關(guān)于C語(yǔ)言的圣經(jīng)”一書(shū)的作者即:K&RC,即C創(chuàng)始人學(xué)時(shí)安排,考核方式四.學(xué)時(shí)安排(Arrangementofthehouses) 講課:52+4學(xué)時(shí)實(shí)驗(yàn)24hours五.考核方式:(Examination)
閉卷筆試評(píng)分:百分制 其中:考試成績(jī):50%平時(shí)成績(jī):50%(含實(shí)驗(yàn))(作業(yè),實(shí)驗(yàn)所占比例要與其他老師商量).注:有≤5分內(nèi)容屬教材中未講內(nèi)容,目的是鼓勵(lì)自學(xué).8/4/20237華中科技大學(xué)計(jì)算機(jī)學(xué)院學(xué)時(shí)安排,考核方式四.學(xué)時(shí)安排(Arrangementof六.學(xué)習(xí)方法(Studymethods)(1)課前要預(yù)習(xí),課堂要專(zhuān)心,課后要復(fù)習(xí)(2)通過(guò)預(yù)習(xí)、聽(tīng)課、復(fù)習(xí)、以及作業(yè)和實(shí)驗(yàn),確保消化課堂和教材的相關(guān)內(nèi)容。(3)要學(xué)會(huì)自己看書(shū)、理解,逐步減少對(duì)老師的依賴(lài),培養(yǎng)良好的自學(xué)能力。同時(shí),由于學(xué)時(shí)緊張,假期的沖擊,講課速度會(huì)逐步加快到一個(gè)合適的水平,以保證教學(xué)計(jì)劃的完成,因此課前課后一定研讀教材。(4)認(rèn)真、獨(dú)立的完成作業(yè)。(5)要重視實(shí)驗(yàn)。上機(jī)實(shí)驗(yàn)前要求預(yù)先編好有關(guān)程序,把上機(jī)的重點(diǎn)放到程序的編輯、修改、編譯、鏈接、跟蹤、調(diào)試程序方面來(lái)。放到觀察程序運(yùn)行過(guò)程中的中間結(jié)果和運(yùn)行完畢后的運(yùn)行結(jié)果方面來(lái)。最終使自己的大腦變成一臺(tái)“計(jì)算機(jī)”,能夠在腦袋中運(yùn)行自己的程序,判斷各種情況下程序的走向等等。
8/4/20238華中科技大學(xué)計(jì)算機(jī)學(xué)院六.學(xué)習(xí)方法(Studymethods)(1)課前要預(yù)七.定位問(wèn)題(Orientation)培養(yǎng)的學(xué)生應(yīng)該是將來(lái)能夠與MicroSoft的程序員,軟件大師們一爭(zhēng)高下的人才,應(yīng)該是有朝一日能夠根據(jù)實(shí)際應(yīng)用需求,發(fā)明創(chuàng)造新型計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的人才。因此要高標(biāo)準(zhǔn)、嚴(yán)要求。不僅要掌握C的語(yǔ)法、語(yǔ)義,學(xué)好用好C;而且要了解各種語(yǔ)言成分產(chǎn)生、流傳、延續(xù)、發(fā)展的深層次原因和需求背景。為學(xué)習(xí)后續(xù)課程,為將來(lái)能夠熟練的用C寫(xiě)系統(tǒng)軟件、底層軟件、共享軟件奠定堅(jiān)實(shí)的語(yǔ)言基礎(chǔ)。8/4/20239華中科技大學(xué)計(jì)算機(jī)學(xué)院七.定位問(wèn)題(Orientation)培養(yǎng)的學(xué)生應(yīng)該是將來(lái)能八.建議和意見(jiàn)
歡迎就教學(xué)方法,講課速度,教學(xué)內(nèi)容的深度和廣度提出好的建議和意見(jiàn),以便把本門(mén)課程的教學(xué)組織實(shí)施好。8/4/202310華中科技大學(xué)計(jì)算機(jī)學(xué)院八.建議和意見(jiàn) 歡迎就教學(xué)方法,講課速度,教學(xué)內(nèi)容的深度和廣C語(yǔ)言程序設(shè)計(jì)-第1章概論C語(yǔ)言是目前全球流傳最廣、使用最多的程序設(shè)計(jì)語(yǔ)言。本章介紹內(nèi)容為:學(xué)習(xí)C語(yǔ)言程序設(shè)計(jì)的第一個(gè)例子。C語(yǔ)言的產(chǎn)生與發(fā)展,C語(yǔ)言的語(yǔ)言特征,C語(yǔ)言的標(biāo)準(zhǔn)。計(jì)算機(jī)硬件系統(tǒng)的組成,數(shù)的編碼表示以及數(shù)在內(nèi)存中的表現(xiàn)形式。算法的概念及其表示方法。對(duì)C語(yǔ)言程序設(shè)計(jì)作了概略性的介紹。同時(shí)介紹了N進(jìn)制數(shù),數(shù)之間轉(zhuǎn)換的方法,以及原碼、補(bǔ)碼、反碼及其相關(guān)運(yùn)算。8/4/202311華中科技大學(xué)計(jì)算機(jī)學(xué)院C語(yǔ)言程序設(shè)計(jì)-第1章概論C語(yǔ)言是目前全球流傳最廣、使用最C語(yǔ)言的應(yīng)用領(lǐng)域1.操作系統(tǒng)設(shè)計(jì) UNIX,LINUX,WINDOWS底層及驅(qū)動(dòng)等.2.計(jì)算機(jī)網(wǎng)絡(luò)與通信系統(tǒng) TCP/IP協(xié)議棧,路由軟件,交換機(jī)軟件等.3.系統(tǒng)軟件 各種DBMS,如Oracle,Sybase,MSSQLServer等;各種編譯器軟件.4.嵌入式系統(tǒng)(民用) 汽車(chē)(40多個(gè)微處理器系統(tǒng)),手機(jī),U盤(pán)驅(qū)動(dòng),MP3等;嵌入式操作系統(tǒng);智能卡系統(tǒng)等.5.國(guó)防,軍工,航空航天,工業(yè)控制系統(tǒng)均以C作為軟件開(kāi)發(fā)的主流語(yǔ)言.8/4/202312華中科技大學(xué)計(jì)算機(jī)學(xué)院C語(yǔ)言的應(yīng)用領(lǐng)域1.操作系統(tǒng)設(shè)計(jì)7/31/202312華中1.1學(xué)習(xí)C語(yǔ)言程序設(shè)計(jì)的第一個(gè)例子
例1.1輸入自己的名字的漢語(yǔ)拼音,要計(jì)算機(jī)問(wèn)候自己并且輸出這是自己學(xué)習(xí)C語(yǔ)言的第一個(gè)程序的句子。8/4/202313華中科技大學(xué)計(jì)算機(jī)學(xué)院1.1學(xué)習(xí)C語(yǔ)言程序設(shè)計(jì)的第一個(gè)例子 例1.1輸入例1.1的程序#include"stdio.h"voidshow(charstr[]);voidmain(void){ charname[20]; printf("Inputyournameplease!\n"); gets(name); printf("Hello%s!\n",name); show(name);}voidshow(charstr[]){ printf("Thisisthefirstprogramfor%stolearnCprogramming!\n",str);}8/4/202314華中科技大學(xué)計(jì)算機(jī)學(xué)院例1.1的程序#include"stdio.h"7/31/操作例1.1的程序進(jìn)入編輯按F10功能鍵激活菜單用光標(biāo)左右移動(dòng)鍵選File選New然后回車(chē)進(jìn)入編輯狀態(tài)。編輯將上面的程序從鍵盤(pán)輸入到計(jì)算機(jī)中完成源程序的編輯F2保存.編譯鏈接:按F10功能鍵激活菜單,選Run然后回車(chē)。此時(shí)源程序會(huì)被編譯形成.OBJ文件、再通過(guò)鏈接形成.EXE文件,最后運(yùn)行該.EXE文件。過(guò)程:.C源文件.OBJ文件.EXE文件運(yùn)行得到結(jié)果觀看結(jié)果:Alt-F58/4/202315華中科技大學(xué)計(jì)算機(jī)學(xué)院操作例1.1的程序進(jìn)入編輯按F10功能鍵激活菜單用光標(biāo)左例1.1的程序的結(jié)果人機(jī)交互與運(yùn)行結(jié)果如下:Inputyournameplease!JichangCao(此為輸入信息)HelloJichangCao!ThisisthefirstprogramforJichangCaotolearnCprogramming!8/4/202316華中科技大學(xué)計(jì)算機(jī)學(xué)院例1.1的程序的結(jié)果人機(jī)交互與運(yùn)行結(jié)果如下:7/31/202#include"stdio.h"voidshow(charstr[]);voidmain(void){ charname[20]; printf("Inputyournameplease!\n"); gets(name); printf("Hello%s!\n",name); show(name);}voidshow(charstr[]){ printf("Thisisthefirstprogramfor%stolearnCprogramming!\n",str);}1.1.2解釋分析第一個(gè)C程序8/4/202317華中科技大學(xué)計(jì)算機(jī)學(xué)院#include"stdio.h"1.1.2解釋分析第一1.2C語(yǔ)言的產(chǎn)生、發(fā)展與語(yǔ)言特征
1.2.1C語(yǔ)言的產(chǎn)生與發(fā)展
FORTRAN(1957年)
ALGOL60(1960年)傳統(tǒng)C或K&RC(1978)
CPL(1963年)ANSIC(1989,美國(guó)國(guó)家標(biāo)準(zhǔn))
BCPL(1967年)標(biāo)準(zhǔn)C(ISO/IEC9899:1990,俗稱(chēng)C90)
B(1969年-1970年)最新標(biāo)準(zhǔn)C(ISO/IEC9899:1999俗稱(chēng)C99)
C(1971年-1973年)
圖1.1C語(yǔ)言的繼承、產(chǎn)生與發(fā)展歷程8/4/202318華中科技大學(xué)計(jì)算機(jī)學(xué)院1.2C語(yǔ)言的產(chǎn)生、發(fā)展與語(yǔ)言特征
1.2.1C語(yǔ)言的1.2.3C語(yǔ)言的語(yǔ)言特征語(yǔ)言簡(jiǎn)潔緊湊目標(biāo)代碼質(zhì)量高語(yǔ)言表達(dá)能力強(qiáng)流程控制結(jié)構(gòu)化弱類(lèi)型“中級(jí)語(yǔ)言”特性書(shū)寫(xiě)自由、使用靈活可移植性好8/4/202319華中科技大學(xué)計(jì)算機(jī)學(xué)院1.2.3C語(yǔ)言的語(yǔ)言特征語(yǔ)言簡(jiǎn)潔緊湊7/31/20231.3計(jì)算機(jī)硬件系統(tǒng)一臺(tái)計(jì)算機(jī)硬件系統(tǒng)由CPU、內(nèi)存、外存、其他I/O設(shè)備和總線(xiàn)組成。
見(jiàn)圖1.2計(jì)算機(jī)硬件系統(tǒng)組成的示意圖CPU又稱(chēng)為中央處理器。CPU又是由運(yùn)算器、控制器、指令計(jì)數(shù)器、內(nèi)部寄存器、標(biāo)志寄存器等部件組成。內(nèi)存又稱(chēng)為內(nèi)存儲(chǔ)器,用以存放程序和數(shù)據(jù)。總線(xiàn)是用以連接計(jì)算機(jī)各個(gè)部件的線(xiàn)路,它完成各個(gè)部件之間的信息傳送。根據(jù)傳送信號(hào)種類(lèi)的不同,總線(xiàn)又分成地址總線(xiàn)、數(shù)據(jù)總線(xiàn)和控制總線(xiàn)。8/4/202320華中科技大學(xué)計(jì)算機(jī)學(xué)院1.3計(jì)算機(jī)硬件系統(tǒng)一臺(tái)計(jì)算機(jī)硬件系統(tǒng)由CPU、內(nèi)存、內(nèi)存編址,內(nèi)存容量,字長(zhǎng)內(nèi)存以字節(jié)為單位線(xiàn)性連續(xù)編址。即按照0x0000,0x0001,0x0002,…的方式;從低地址端開(kāi)始向高地址端為每一個(gè)內(nèi)存字節(jié)進(jìn)行順序連續(xù)編號(hào)。1024個(gè)字節(jié)稱(chēng)為1K字節(jié),1024K字節(jié)稱(chēng)為1M字節(jié),1024M字節(jié)稱(chēng)為1G字節(jié)。1024G字節(jié)稱(chēng)為1T字節(jié)。CPU數(shù)據(jù)總線(xiàn)的寬度(bit數(shù))稱(chēng)為計(jì)算機(jī)的機(jī)器字長(zhǎng)。對(duì)8位CPU,機(jī)器字長(zhǎng)為1字節(jié);對(duì)16位CPU,機(jī)器字長(zhǎng)為2字節(jié);對(duì)32位CPU,機(jī)器字長(zhǎng)為4字節(jié)。8/4/202321華中科技大學(xué)計(jì)算機(jī)學(xué)院內(nèi)存編址,內(nèi)存容量,字長(zhǎng)內(nèi)存以字節(jié)為單位線(xiàn)性連續(xù)編址。即按照外存和其他I/O設(shè)備外存指計(jì)算機(jī)的外存儲(chǔ)器。常用的硬盤(pán)、軟盤(pán)、U盤(pán)、光盤(pán)、以及磁盤(pán)陣列都屬于外存。外存存儲(chǔ)的信息在斷電之后仍然能夠保存,這是外存的第一個(gè)特點(diǎn)。其他I/O設(shè)備:鍵盤(pán),顯示器,打印機(jī),繪圖儀8/4/202322華中科技大學(xué)計(jì)算機(jī)學(xué)院外存和其他I/O設(shè)備外存指計(jì)算機(jī)的外存儲(chǔ)器。常用的硬盤(pán)、軟1.4數(shù)和字符的機(jī)器碼表示1.4.1進(jìn)位計(jì)數(shù)制數(shù)量用于描述事物的多少。數(shù)目則是表示事物的個(gè)數(shù)。而表示數(shù)目的符號(hào)則是數(shù)字,往往簡(jiǎn)稱(chēng)為數(shù)。一個(gè)數(shù)在不同的進(jìn)位制下具有不同的表示,因而形成數(shù)制的概念。數(shù)制是關(guān)于記數(shù)的法則。根據(jù)進(jìn)位基數(shù)的不同,常用的有十進(jìn)制、二進(jìn)制、八進(jìn)制、十六進(jìn)制等。8/4/202323華中科技大學(xué)計(jì)算機(jī)學(xué)院1.4數(shù)和字符的機(jī)器碼表示1.4.1進(jìn)位計(jì)數(shù)制7/1.二進(jìn)制數(shù)及其運(yùn)算1)二進(jìn)制數(shù)二進(jìn)制數(shù)是由0和1組成的數(shù)字串。對(duì)于一個(gè)二進(jìn)制數(shù)來(lái)講,它具有兩個(gè)下面基本特點(diǎn):(1)只有0和1兩個(gè)不同的數(shù)字符號(hào)。(2)逢2進(jìn)位1。8/4/202324華中科技大學(xué)計(jì)算機(jī)學(xué)院1.二進(jìn)制數(shù)及其運(yùn)算1)二進(jìn)制數(shù)7/31/202324華中二進(jìn)制數(shù)的權(quán)值對(duì)由進(jìn)位計(jì)數(shù)制描述的數(shù)來(lái)講,一個(gè)數(shù)字符號(hào)在該數(shù)的不同的數(shù)位具有不同的權(quán)(也稱(chēng)為權(quán)值或基值),因此所表現(xiàn)的值是不一樣的。二進(jìn)制數(shù)也是如此。二進(jìn)制數(shù)中不同的數(shù)位所具有的權(quán)值見(jiàn)教材圖1.3.二進(jìn)制數(shù)整數(shù)(10110110)2的值是: (10110111)2=127+026+125+124+023+122+121+120=(183)10而帶二進(jìn)制小數(shù)的二進(jìn)制數(shù)(1011.1101)2的值是: (1011.1101)2=123+022+121+120+12-1 +12-2+02-3+12-4=(11.8125)108/4/202325華中科技大學(xué)計(jì)算機(jī)學(xué)院二進(jìn)制數(shù)的權(quán)值對(duì)由進(jìn)位計(jì)數(shù)制描述的數(shù)來(lái)講,一個(gè)數(shù)字符號(hào)在該數(shù)2)二進(jìn)制數(shù)的運(yùn)算二進(jìn)制加法規(guī)則有四條:①0+0=0 ②0+1=1+0=1 ③1+1=0向高位進(jìn)位1 ④1+1+1=1向高位進(jìn)位1二進(jìn)制減法規(guī)則也有四條:①0-0=0 ②1-1=0 ③1-0=1 ④0-1=1向高位借位18/4/202326華中科技大學(xué)計(jì)算機(jī)學(xué)院2)二進(jìn)制數(shù)的運(yùn)算二進(jìn)制加法規(guī)則有四條:7/31/2023二進(jìn)制加法舉例例1.2二進(jìn)制加法舉例,求(10110111)2+(01011011)2的和。 10110111+ 01011011進(jìn)位1111111100010010所以,(10110111)2+(01011011)2=(100010010)28/4/202327華中科技大學(xué)計(jì)算機(jī)學(xué)院二進(jìn)制加法舉例例1.2二進(jìn)制加法舉例,求(1011011二進(jìn)制減法舉例例1.3二進(jìn)制減法舉例,求(10110111)2-(01011011)2的差。借位 1011000 10110111 - 01011011 01011100所以,(10110111)2-(01011011)2=(01011100)28/4/202328華中科技大學(xué)計(jì)算機(jī)學(xué)院二進(jìn)制減法舉例例1.3二進(jìn)制減法舉例,求(10110112.八進(jìn)制數(shù)及其運(yùn)算八進(jìn)制數(shù)是由0到7組成的數(shù)字串。八進(jìn)制數(shù)具有如下兩個(gè)基本特點(diǎn):(1)只有0,1,2,3,4,5,6,7八個(gè)不同的數(shù)字符號(hào)。(2)逢8進(jìn)位1。在C語(yǔ)言中,通過(guò)加前導(dǎo)零的方式來(lái)表示一個(gè)數(shù)是八進(jìn)制數(shù)。如:0136表示的是八進(jìn)制數(shù)(136)8。8/4/202329華中科技大學(xué)計(jì)算機(jī)學(xué)院2.八進(jìn)制數(shù)及其運(yùn)算八進(jìn)制數(shù)是由0到7組成的數(shù)字串。八進(jìn)制3.十六進(jìn)制數(shù)及其運(yùn)算將4位二進(jìn)制數(shù)組合成為十六進(jìn)制數(shù)。與二進(jìn)制、八進(jìn)制數(shù)類(lèi)似,十六進(jìn)制數(shù)也有兩個(gè)基本特點(diǎn):(1)只有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F(xiàn)十六個(gè)不同的數(shù)字符號(hào)(AF也可以采用小寫(xiě)英文字母af)。這十六個(gè)數(shù)字符號(hào)與二進(jìn)制、八進(jìn)制、十進(jìn)制數(shù)之間的關(guān)系如表1.2所示。(2)逢16進(jìn)位1。在C語(yǔ)言中,通過(guò)加前導(dǎo)0x或前導(dǎo)0X的方式來(lái)表示一個(gè)數(shù)是十六進(jìn)制數(shù)。如:0x2d5b表示的是十六進(jìn)制數(shù)(2d5b)16。0XABCD也是合法的十六進(jìn)制數(shù)。8/4/202330華中科技大學(xué)計(jì)算機(jī)學(xué)院3.十六進(jìn)制數(shù)及其運(yùn)算將4位二進(jìn)制數(shù)組合成為十六進(jìn)制數(shù)。與二表1.2十六進(jìn)制的16個(gè)不同數(shù)字符號(hào)與十進(jìn)制、八進(jìn)制、二進(jìn)制數(shù)之間的關(guān)系
8/4/202331華中科技大學(xué)計(jì)算機(jī)學(xué)院表1.2十六進(jìn)制的16個(gè)不同數(shù)字符號(hào)與十進(jìn)制、八進(jìn)制、二進(jìn)制十六進(jìn)制加減法運(yùn)算舉例例1.5十六進(jìn)制加減法運(yùn)算舉例,求0XABCD與(2d5b)16的和,以及0XABCD與(2d5b)16的差。解0XABCD+(2d5b)16=0XD9280XABCD-(2d5b)16=0x7E728/4/202332華中科技大學(xué)計(jì)算機(jī)學(xué)院十六進(jìn)制加減法運(yùn)算舉例例1.5十六進(jìn)制加減法運(yùn)算舉例,求1.4.2進(jìn)位制數(shù)之間的轉(zhuǎn)換1.十進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù)8/4/202333華中科技大學(xué)計(jì)算機(jī)學(xué)院1.4.2進(jìn)位制數(shù)之間的轉(zhuǎn)換1.十進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制進(jìn)位制數(shù)之間的轉(zhuǎn)換2.二進(jìn)制整數(shù)轉(zhuǎn)換為十進(jìn)制整數(shù)用按權(quán)展開(kāi)的方式即可求得該數(shù)的十進(jìn)制表示。例1.7二進(jìn)制數(shù)(10111101)2轉(zhuǎn)換為十進(jìn)制數(shù)。解(10111101)2=127+026+125+124+123+122+021+120 =128+32+16+8+4+1=(189)108/4/202334華中科技大學(xué)計(jì)算機(jī)學(xué)院進(jìn)位制數(shù)之間的轉(zhuǎn)換2.二進(jìn)制整數(shù)轉(zhuǎn)換為十進(jìn)制整數(shù)7/31/進(jìn)位制數(shù)之間的轉(zhuǎn)換3.二進(jìn)制整數(shù)轉(zhuǎn)換為八進(jìn)制整數(shù)二進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制數(shù)可以采用3位分組法。從整數(shù)部分的最低位起,每3位分成1組,高位部分不足3位則通過(guò)加前導(dǎo)0的方式補(bǔ)足3位,然后把每3位二進(jìn)制數(shù)用對(duì)應(yīng)的八進(jìn)制數(shù)來(lái)表示即可。例1.8將二進(jìn)制整數(shù)(10111101)2轉(zhuǎn)換為八進(jìn)制整數(shù)。 解(10111101)2=(010111101)2=(275)88/4/202335華中科技大學(xué)計(jì)算機(jī)學(xué)院進(jìn)位制數(shù)之間的轉(zhuǎn)換3.二進(jìn)制整數(shù)轉(zhuǎn)換為八進(jìn)制整數(shù)7/31/進(jìn)位制數(shù)之間的轉(zhuǎn)換4.八進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù)八進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù)只需要將每一位八進(jìn)制數(shù)用對(duì)應(yīng)的二進(jìn)制數(shù)表示即可。例1.9將八進(jìn)制數(shù)(377377)8轉(zhuǎn)換為二進(jìn)制數(shù)。解(177777)8=(001111111111111111)2=(1111111111111111)28/4/202336華中科技大學(xué)計(jì)算機(jī)學(xué)院進(jìn)位制數(shù)之間的轉(zhuǎn)換4.八進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù)7/31/進(jìn)位制數(shù)之間的轉(zhuǎn)換5.二進(jìn)制整數(shù)轉(zhuǎn)換為十六進(jìn)制整數(shù)將二進(jìn)制整數(shù)轉(zhuǎn)換為十六進(jìn)制整數(shù)采用4位分組法。4位二進(jìn)制數(shù)的不同取值可以一一對(duì)應(yīng)的完整描述十六進(jìn)制中的09和AF。方法:從整數(shù)部分的最低位起,每4位分成1組,高位部分不足4位則通過(guò)加前導(dǎo)0的方式補(bǔ)足4位,然后把每4位二進(jìn)制數(shù)用對(duì)應(yīng)的十六進(jìn)制數(shù)來(lái)表示。例1.10將二進(jìn)制數(shù)(10111101)2轉(zhuǎn)換為十六進(jìn)制數(shù)。 解(10111101)2=(10111101)2=(BD)168/4/202337華中科技大學(xué)計(jì)算機(jī)學(xué)院進(jìn)位制數(shù)之間的轉(zhuǎn)換5.二進(jìn)制整數(shù)轉(zhuǎn)換為十六進(jìn)制整數(shù)7/31進(jìn)位制數(shù)之間的轉(zhuǎn)換6.十六進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù)十六進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)只需要將每一位十六進(jìn)制數(shù)用對(duì)應(yīng)的4位二進(jìn)制數(shù)表示即可。例1.11將十六進(jìn)制數(shù)(ABCD)2轉(zhuǎn)換為二進(jìn)制數(shù)。 解(ABCD)2=(1010101111001101)2=(1010101111001101)28/4/202338華中科技大學(xué)計(jì)算機(jī)學(xué)院進(jìn)位制數(shù)之間的轉(zhuǎn)換6.十六進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù)7/311.4.3數(shù)的機(jī)器碼表示1.機(jī)器數(shù)與真值機(jī)器數(shù):在計(jì)算機(jī)中,將一個(gè)數(shù)的最高位定義為符號(hào)位,其余各位為數(shù)值位。并且規(guī)定符號(hào)位之值為0表示正,符號(hào)位之值為1表示負(fù)。用這種方法表示的數(shù)稱(chēng)為機(jī)器數(shù)。真值:機(jī)器數(shù)的數(shù)值稱(chēng)為該機(jī)器數(shù)的真值。也就是正、負(fù)號(hào)后跟二進(jìn)制數(shù)的絕對(duì)值就構(gòu)成真值。8/4/202339華中科技大學(xué)計(jì)算機(jī)學(xué)院1.4.3數(shù)的機(jī)器碼表示1.機(jī)器數(shù)與真值7/31/202.原碼 定義:對(duì)于一個(gè)二進(jìn)制數(shù)X,如果規(guī)定用最高位為符號(hào)位,其余各位為該數(shù)的絕對(duì)值。并且規(guī)定符號(hào)位之值為0表示正,符號(hào)位之值為1表示負(fù),則采用這種方式形成的二進(jìn)制編碼稱(chēng)為稱(chēng)為該二進(jìn)制數(shù)X的原碼。8/4/202340華中科技大學(xué)計(jì)算機(jī)學(xué)院2.原碼7/31/202340華中科技大學(xué)計(jì)算機(jī)學(xué)院求十進(jìn)制數(shù)的原碼表示例1.12求十進(jìn)制數(shù)125和-125的8位、16位原碼表示。解先求十進(jìn)制數(shù)125和-125的二進(jìn)制表示: (125)10=0X7D=(+1111101)2,而(-125)10=-0X7D=(-1111101)2;根據(jù)定義:[+1111101]原=01111101(8位)[+1111101]原=0000000001111101(16位)而: [-1111101]原=11111101(8位)[-1111101]原=1000000001111101(16位)8/4/202341華中科技大學(xué)計(jì)算機(jī)學(xué)院求十進(jìn)制數(shù)的原碼表示例1.12求十進(jìn)制數(shù)125和-125真值0的原碼表示不惟一值得注意的是,根據(jù)定義,真值0的原碼表示不惟一,有+0和-0之分。
[+0]原=00000000(8位)[-0]原=10000000(8位)8/4/202342華中科技大學(xué)計(jì)算機(jī)學(xué)院真值0的原碼表示不惟一值得注意的是,根據(jù)定義,真值0的原碼表3.補(bǔ)碼補(bǔ)碼的定義是正數(shù)的補(bǔ)碼等于正數(shù)的原碼,負(fù)數(shù)的補(bǔ)碼為其原碼除符號(hào)位不動(dòng),其余各位變反再加1所得。例1.13分別求十進(jìn)制數(shù)35和-1在8位機(jī)和16位機(jī)中的補(bǔ)碼表示。解設(shè)x1=35,x2=-1; 在8位機(jī)中,∵x1>0,∴[x1]補(bǔ)=[x1]原=00100011; ∵x2<0,∴[x2]原=10000001,[x2]補(bǔ)=11111110+1=11111111;在例1.13中,如果令x1和x2都為零,則容易算出它們的補(bǔ)碼都是零。也就是說(shuō),對(duì)于真值0,其補(bǔ)碼是惟一的。即: [+0]補(bǔ)=[-0]補(bǔ)=000…000 最右邊式子中0的個(gè)數(shù)等于機(jī)器的字長(zhǎng)數(shù)。8/4/202343華中科技大學(xué)計(jì)算機(jī)學(xué)院3.補(bǔ)碼補(bǔ)碼的定義是正數(shù)的補(bǔ)碼等于正數(shù)的原碼,負(fù)數(shù)的補(bǔ)碼為4.反碼在計(jì)算機(jī)中,有時(shí)還會(huì)用到數(shù)的反碼。對(duì)正數(shù)而言,其反碼與原碼、補(bǔ)碼的表示相同;對(duì)負(fù)數(shù)而言,反碼符號(hào)位的定義與原碼、補(bǔ)碼相同,但需要將對(duì)應(yīng)原碼的數(shù)值位按位變反。例1.15分別求十進(jìn)制數(shù)6和-1在8位機(jī)中的反碼表示。 解[6]反=00000110;[-1]反=對(duì)10000001的數(shù)值位按位變反=111111108/4/202344華中科技大學(xué)計(jì)算機(jī)學(xué)院4.反碼在計(jì)算機(jī)中,有時(shí)還會(huì)用到數(shù)的反碼。對(duì)正數(shù)而言,其反5.碼的內(nèi)存存儲(chǔ)形式碼是指計(jì)算機(jī)內(nèi)存中存儲(chǔ)的數(shù)據(jù)。根據(jù)存儲(chǔ)數(shù)據(jù)的性質(zhì),碼可以分為數(shù)值碼、字符碼和圖象碼。數(shù)值碼用于表示數(shù)的大小,常見(jiàn)的有整數(shù)和浮點(diǎn)數(shù)。字符碼用于表示英文字母、標(biāo)點(diǎn)符號(hào)、控制字符以及漢字和其它文字的編碼。圖象碼是用于表示圖象中象素的顏色或灰度。雖然它們都是以二進(jìn)制碼的表現(xiàn)形式存儲(chǔ)在內(nèi)存之中,但物理意義卻各不相同。C語(yǔ)言的基本處理對(duì)象是字符和數(shù)字。在16位計(jì)算機(jī)中,整型數(shù)占2個(gè)字節(jié),在32位計(jì)算機(jī)中,整型數(shù)占4個(gè)字節(jié)。8/4/202345華中科技大學(xué)計(jì)算機(jī)學(xué)院5.碼的內(nèi)存存儲(chǔ)形式碼是指計(jì)算機(jī)內(nèi)存中存儲(chǔ)的數(shù)據(jù)。根據(jù)存儲(chǔ)數(shù)1.4.4字符的編碼表示1.字符的編碼的概念計(jì)算機(jī)在屏幕上能夠輸出英文、漢字,乃至各種各樣的民族文字,其基礎(chǔ)在于對(duì)字符進(jìn)行編碼以及構(gòu)造相應(yīng)的點(diǎn)陣字模。用戶(hù)的字符輸入通過(guò)編碼在內(nèi)存中以二進(jìn)制數(shù)碼存儲(chǔ),機(jī)器內(nèi)部對(duì)字符的處理實(shí)際上是對(duì)字符編碼的處理。輸出的時(shí)候則是通過(guò)字符的編碼去索引對(duì)應(yīng)的點(diǎn)陣字模到內(nèi)存中,然后進(jìn)一步通過(guò)內(nèi)存中的點(diǎn)陣字模去控制顯象管,在屏幕的指定位置將字符顯示出來(lái)。8/4/202346華中科技大學(xué)計(jì)算機(jī)學(xué)院1.4.4字符的編碼表示1.字符的編碼的概念7/31/21.4.4字符的編碼表示解釋教材:圖1.3英文字符O和漢字字符中的點(diǎn)陣字模示意圖更正:大寫(xiě)字母O的二進(jìn)制編碼依次是:0x18,0x24,0x42,0x42,0x42,0x42,0x24,0x18。中國(guó)的“中”字的二進(jìn)制編碼按照從上到下,從左到右順序依次進(jìn)行二進(jìn)制編碼,共需要32個(gè)字節(jié)。更正:“中”字前8個(gè)字節(jié)的二進(jìn)制編碼是:0x01,0x80,0x01,0x80,0xff,0xff,0xc1,0x838/4/202347華中科技大學(xué)計(jì)算機(jī)學(xué)院1.4.4字符的編碼表示解釋教材:圖1.3英文字符O2.ASCII碼對(duì)于西文字符,其編碼國(guó)際上采用的是ASCII碼(AmericanStandardCodeForInformationInterchange),是美國(guó)國(guó)家信息交換標(biāo)準(zhǔn)字符碼的英文縮寫(xiě)。ASCII碼采用單字節(jié)編碼,并且規(guī)定字節(jié)的最高位留做校驗(yàn)位,只有低7位參與編碼。ASCII碼字符集中共有128個(gè)字符的編碼。其中0x00到ox1f前32個(gè)碼和0x7f最后一個(gè)碼作為控制碼,如控制回車(chē)、換行、振鈴、空等等;從0x20到0x7e共95個(gè)編碼,它們用來(lái)對(duì)數(shù)字字符09,大小寫(xiě)英文字母az和AZ,以及標(biāo)點(diǎn)符號(hào)。計(jì)算機(jī)的終端(鍵盤(pán)、顯示器)只能輸入和顯示這95個(gè)編碼對(duì)應(yīng)的字符。同時(shí),打印機(jī)也只能打印輸出這95個(gè)編碼對(duì)應(yīng)的字符。完整的ASCII碼字符集請(qǐng)參閱附錄1。8/4/202348華中科技大學(xué)計(jì)算機(jī)學(xué)院2.ASCII碼對(duì)于西文字符,其編碼國(guó)際上采用的是ASCII3.漢字編碼根據(jù)標(biāo)準(zhǔn)規(guī)定和計(jì)算機(jī)的輸入、存儲(chǔ)和顯示過(guò)程,漢字編碼有許多方式。常用的有國(guó)標(biāo)碼、區(qū)位碼、拼音碼、五筆字型碼和漢字的機(jī)內(nèi)碼。拼音碼和五筆字型碼用于漢字的輸入。國(guó)標(biāo)碼是我國(guó)于1981年頒布的《通用漢字字符集(基本集)及其交換碼標(biāo)準(zhǔn)》規(guī)定的漢字字符編碼方案,標(biāo)準(zhǔn)編號(hào)是GB231280總共收集了7445個(gè)漢字、字母、數(shù)字和符號(hào)。由于漢字屬大字符集,單個(gè)字節(jié)不足以描述全部字符,因此漢字采用兩字節(jié)編碼方案。8/4/202349華中科技大學(xué)計(jì)算機(jī)學(xué)院3.漢字編碼根據(jù)標(biāo)準(zhǔn)規(guī)定和計(jì)算機(jī)的輸入、存儲(chǔ)和顯示過(guò)程,漢漢字區(qū)位碼和機(jī)內(nèi)碼區(qū)位碼是將GB231280中的字符按其位置劃分為94個(gè)區(qū),每區(qū)94個(gè)字符的漢字編碼方案。區(qū)位碼是國(guó)標(biāo)碼的一種變形碼,兩者之間的轉(zhuǎn)換可由下面的式子描述: 國(guó)標(biāo)碼(十六進(jìn)制)=區(qū)位碼(十六進(jìn)制)+0x2020機(jī)內(nèi)碼是計(jì)算機(jī)存儲(chǔ)和處理漢字時(shí)采用的漢字編碼。為了與基本ASCII相互區(qū)分,機(jī)內(nèi)碼一般采用將國(guó)標(biāo)碼兩個(gè)字節(jié)的每個(gè)字節(jié)的最高位置“1”的方式形成。機(jī)內(nèi)碼與國(guó)標(biāo)碼之間的轉(zhuǎn)換關(guān)系是: 機(jī)內(nèi)碼(十六進(jìn)制)=國(guó)標(biāo)碼(十六進(jìn)制)+0x8080例如,中國(guó)的“中”字的機(jī)內(nèi)碼是0xd0d6。因此它的國(guó)標(biāo)碼是0x5056,而它的區(qū)位碼是0x3036。8/4/202350華中科技大學(xué)計(jì)算機(jī)學(xué)院漢字區(qū)位碼和機(jī)內(nèi)碼區(qū)位碼是將GB231280中的字符按其位1.5算法及其表示1.5.1算法的定義 算法是指為解決某個(gè)問(wèn)題所采取的方法和步驟,并且要具備下列性質(zhì)。(1)有零個(gè)或多個(gè)執(zhí)行算法所需要的數(shù)據(jù)作為輸入。(2)有一個(gè)或多個(gè)經(jīng)算法處理的數(shù)據(jù)作為輸出。這種數(shù)據(jù)也稱(chēng)為算法的執(zhí)行結(jié)果。(3)應(yīng)只包含有限個(gè)步驟,且執(zhí)行算法所需的時(shí)間也是有限時(shí)間。算法的這種性質(zhì)稱(chēng)為算法的有限性或有窮性。(4)算法每一步所規(guī)定的動(dòng)作應(yīng)該是唯一確定的,沒(méi)有二義的。算法的這種性質(zhì)稱(chēng)為算法的確定性。8/4/202351華中科技大學(xué)計(jì)算機(jī)學(xué)院1.5算法及其表示1.5.1算法的定義7/31/201.5.2算法的表示選用一種合適的工具或方法來(lái)表達(dá)算法設(shè)計(jì)者的算法思想稱(chēng)為算法的表示或算法的描述。算法的表示方式多種多樣,如自然語(yǔ)言方式,流程圖方式、表格方式、偽碼方式,等等。自然語(yǔ)言方式顯然非常容易理解,但是在將算法轉(zhuǎn)換為具體程序方面不夠直觀,它最適合表達(dá)算法的設(shè)計(jì)思想。流程圖方式則非常具體,易于將它描述的算法編寫(xiě)成具體的程序,但是在程序規(guī)模變大的情況下,用流程圖來(lái)完整描述算法不僅多余,而且不太可能。因此,流程圖方式尤其適合初學(xué)者。本書(shū)重點(diǎn)介紹流程圖方法。8/4/202352華中科技大學(xué)計(jì)算機(jī)學(xué)院1.5.2算法的表示7/31/202352華中科技大學(xué)計(jì)1.流程圖的圖符流程圖又稱(chēng)為框圖。它是用它的圖符來(lái)表示算法的每一步驟以及這些步驟之間的相互聯(lián)系。學(xué)習(xí)用流程圖來(lái)表達(dá)自己的算法思想首先要從認(rèn)識(shí)組成流程圖的圖符的功能入手。流程圖圖符及其功能由表1.4描述。8/4/202353華中科技大學(xué)計(jì)算機(jī)學(xué)院1.流程圖的圖符流程圖又稱(chēng)為框圖。它是用它的圖符來(lái)表示算法8/4/202354華中科技大學(xué)計(jì)算機(jī)學(xué)院7/31/202354華中科技大學(xué)計(jì)算機(jī)學(xué)院2.用流程圖描述算法問(wèn)題輸入10個(gè)整數(shù),統(tǒng)計(jì)正數(shù)和負(fù)數(shù)的個(gè)數(shù),計(jì)算正數(shù)和負(fù)數(shù)的累加和與平均值。算法設(shè)計(jì)用變量x存儲(chǔ)輸入的整數(shù),k表示輸入的次數(shù),positive表示正數(shù)的個(gè)數(shù),negtive表示負(fù)數(shù)的個(gè)數(shù),sum_pos和sum_neg分別表示正數(shù)和負(fù)數(shù)的累加和,even_pos和even_neg分別表示正數(shù)和負(fù)數(shù)的平均值。8/4/202355華中科技大學(xué)計(jì)算機(jī)學(xué)院2.用流程圖描述算法問(wèn)題輸入10個(gè)整數(shù),統(tǒng)計(jì)正數(shù)和負(fù)數(shù)該問(wèn)題算法的自然語(yǔ)言描述(1)(1)定義變量x,k,positive,negtive,sum_pos,sum_neg,even_pos和even_neg。(2)positive,negtive,sum_pos和sum_neg清零,k賦初值1。(3)判斷k<11嗎?(或k10嗎?)如果是,順序往(4)步執(zhí)行;否則轉(zhuǎn)步驟(10)。(4)從鍵盤(pán)輸入一個(gè)整數(shù)并且賦給變量x。(5)判斷x是否等于零?如果是,轉(zhuǎn)步驟(9);否則順序執(zhí)行步驟(6)。(6)判斷x是否大于零?如果是,轉(zhuǎn)步驟(8);否則順序執(zhí)行步驟(7)。(7)負(fù)數(shù)個(gè)數(shù)negtive加1,負(fù)數(shù)x加到負(fù)數(shù)累加和變量sum_neg中;轉(zhuǎn)步驟(9);8/4/202356華中科技大學(xué)計(jì)算機(jī)學(xué)院該問(wèn)題算法的自然語(yǔ)言描述(1)(1)定義變量x,k,po該問(wèn)題算法的自然語(yǔ)言描述(2)(8)正數(shù)個(gè)數(shù)positive加1,正數(shù)x加到正數(shù)累加和變量sum_pos中;順序執(zhí)行步驟(9)。(9)次數(shù)k加1,轉(zhuǎn)步驟(3)。(10)計(jì)算正數(shù)平均值(sum_pos/positive)并賦給變量even_pos,計(jì)算負(fù)數(shù)平均值(sum_neg/negtive)并賦給變量even_neg。(11)輸出正數(shù)個(gè)數(shù)positive,正數(shù)累加和sum_pos,正數(shù)平均值even_pos。輸出負(fù)數(shù)個(gè)數(shù)negtive,負(fù)數(shù)累加和sum_neg,負(fù)數(shù)平均值even_neg。(12)結(jié)束。8/4/202357華中科技大學(xué)計(jì)算機(jī)學(xué)院該問(wèn)題算法的自然語(yǔ)言描述(2)(8)正數(shù)個(gè)數(shù)positiv8/4/202358華中科技大學(xué)計(jì)算機(jī)學(xué)院7/31/202358華中科技大學(xué)計(jì)算機(jī)學(xué)院1.5.3算法的實(shí)現(xiàn)#include"stdio.h"/*下面的main為主函數(shù)名,前面的void表示無(wú)返回值,括號(hào)中的void表示無(wú)參*/voidmain(void){/*main函數(shù)的函數(shù)體開(kāi)始*/ intx,k,positive,negtive,sum_pos,sum_neg;/*說(shuō)明語(yǔ)句說(shuō)明各個(gè)整型變量*/ floateven_pos,even_neg;/*說(shuō)明語(yǔ)句說(shuō)明各個(gè)浮點(diǎn)型變量*/ k=1;/*循環(huán)次數(shù)變量k賦初值1*/ positive=negtive=sum_pos=sum_neg=0;/*具有累加作用的變量清零*/8/4/202359華中科技大學(xué)計(jì)算機(jī)學(xué)院1.5.3算法的實(shí)現(xiàn)#include"stdio.hwhile(k<11)/*如果k<11,執(zhí)行while循環(huán)體,否則轉(zhuǎn)到循環(huán)體后一語(yǔ)句執(zhí)行*/ {/*while循環(huán)體開(kāi)始*/ scanf("%d",&x);/*接受從鍵盤(pán)輸入的一個(gè)整數(shù),并賦給變量x*/ if(x!=0)/*如果x0,執(zhí)行外層if塊,否則轉(zhuǎn)執(zhí)行外層if塊后一語(yǔ)句執(zhí)行*/ {/*外層if塊開(kāi)始*/ if(x>0)/*如果x>0,執(zhí)行內(nèi)層if塊,否則執(zhí)行else塊*/ {/*內(nèi)層if塊開(kāi)始*/ positive++;/*正整數(shù)個(gè)數(shù)加1*/ sum_pos+=x;/*將正整數(shù)加到sum_pos中*/ }/*內(nèi)層if塊結(jié)束*/ else/*如果x<0,轉(zhuǎn)到此處執(zhí)行*/ {/*else塊開(kāi)始*/ ++negtive;/*負(fù)整數(shù)個(gè)數(shù)加1*/ sum_neg+=x;/*將負(fù)整數(shù)加到sum_neg中*/ }/*else塊結(jié)束*/ }/*外層if塊結(jié)束*/ k++;/*循環(huán)次數(shù)變量k加1*/ }/*while循環(huán)體結(jié)束*/8/4/202360華中科技大學(xué)計(jì)算機(jī)學(xué)院while(k<11)/*如果k<11,執(zhí)行whieven_pos=(float)sum_pos/positive;/*計(jì)算正整數(shù)平均值并賦給even_pos*/ even_neg=(float)sum_neg/negtive;/*計(jì)算負(fù)整數(shù)平均值并賦給even_neg*/ printf("positive=%d\tsum_pos=%d\n",positive,sum_pos);/*輸出正數(shù)個(gè)數(shù)及和*/ printf("even_pos=%6.2f\n",even_pos);/*輸出正整數(shù)的平均值*/ printf("negtive=%d\tsum_neg=%d\n",negtive,sum_neg);/*輸出負(fù)數(shù)個(gè)數(shù)及和*/ printf("even_neg=%6.2f\n",even_neg);/*輸出負(fù)整數(shù)的平均值*/}/*main函數(shù)的函數(shù)體結(jié)束*/輸入10個(gè)整數(shù)及程序的運(yùn)行結(jié)果如下:80-3-5-7596-1620(符號(hào)表示回車(chē),)positive=5sum_pos=48even_pos=9.60negtive=4sum_neg=-31even_neg=-7.758/4/202361華中科技大學(xué)計(jì)算機(jī)學(xué)院even_pos=(float)sum_pos/posit1.5.4程序中的語(yǔ)句1.說(shuō)明語(yǔ)句C語(yǔ)言中的說(shuō)明語(yǔ)句用來(lái)說(shuō)明變量的名字和數(shù)據(jù)類(lèi)型.如例1.18程序中: intx,k,positive,negtive,sum_pos,sum_neg; floateven_pos,even_neg; 都是說(shuō)明語(yǔ)句。第一個(gè)說(shuō)明語(yǔ)句用int將變量x,k,positive,negtive,sum_pos,sum_neg說(shuō)明成為整型變量。第二個(gè)說(shuō)明語(yǔ)句用float將變量even_pos,even_neg說(shuō)明為浮點(diǎn)型變量。C語(yǔ)言規(guī)定,說(shuō)明語(yǔ)句一定要先給出,然后才允許寫(xiě)出可執(zhí)行語(yǔ)句。即:說(shuō)明語(yǔ)句一定要位于可執(zhí)行語(yǔ)句的前面。
8/4/202362華中科技大學(xué)計(jì)算機(jī)學(xué)院1.5.4程序中的語(yǔ)句1.說(shuō)明語(yǔ)句7/31/2023622.可執(zhí)行語(yǔ)句可執(zhí)行語(yǔ)句將被編譯器編譯成計(jì)算機(jī)要執(zhí)行的指令序列。C語(yǔ)言中的可執(zhí)行語(yǔ)句有10種。即:常用語(yǔ)句7種:表達(dá)式語(yǔ)句,復(fù)合句,順序if-else語(yǔ)句,switch語(yǔ)句,選擇while語(yǔ)句,for語(yǔ)句,do-while語(yǔ)句循環(huán)使用少的語(yǔ)句3種:break語(yǔ)句,continue語(yǔ)句,以及goto語(yǔ)句。8/4/202363華中科技大學(xué)計(jì)算機(jī)學(xué)院2.可執(zhí)行語(yǔ)句可執(zhí)行語(yǔ)句將被編譯器編譯成計(jì)算機(jī)要執(zhí)行的指令序1)表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句是由C語(yǔ)言的表達(dá)式以及末尾的分號(hào)組成的語(yǔ)句。如:k=1是簡(jiǎn)單的賦值表達(dá)式,在其后加上一個(gè)分號(hào),則k=1;就構(gòu)成了簡(jiǎn)單賦值語(yǔ)句;它將賦值號(hào)“=”右邊的值賦給它左邊的變量。sum_pos+=x是一個(gè)復(fù)合賦值表達(dá)式,而sum_pos+=x;就是一個(gè)復(fù)合賦值語(yǔ)句;sum_pos+=x的等價(jià)表示是:sum_pos=sum_pos+x,即:將左右兩個(gè)操作數(shù)相加,再將其和賦給左操作數(shù)。8/4/202364華中科技大學(xué)計(jì)算機(jī)學(xué)院1)表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句是由C語(yǔ)言的表達(dá)式以及末尾的分號(hào)組成2)復(fù)合句
復(fù)合句是指由一對(duì)花括號(hào)界定的語(yǔ)句序列。例如: { positive++; sum_pos+=x; } 就是一個(gè)復(fù)合句。復(fù)合句的末尾不需要加分號(hào)。8/4/202365華中科技大學(xué)計(jì)算機(jī)學(xué)院2)復(fù)合句
復(fù)合句是指由一對(duì)花括號(hào)界定的語(yǔ)句序列。例如:73)if-else語(yǔ)句
if-else語(yǔ)句屬選擇型語(yǔ)句。如果if后的條件成立,則執(zhí)行if后語(yǔ)句,else后的語(yǔ)句不會(huì)執(zhí)行;否則只執(zhí)行else后的語(yǔ)句,而if后語(yǔ)句不會(huì)執(zhí)行。如: if(x>0)/*如果x>0,執(zhí)行if塊,否則執(zhí)行else塊*/ {/*if塊開(kāi)始*/ positive++;/*正整數(shù)個(gè)數(shù)加1*/ sum_pos+=x;/*將正整數(shù)加到sum_pos中*/ }/*if塊結(jié)束*/ else/*如果x<0,轉(zhuǎn)到此處執(zhí)行*/ {/*else塊開(kāi)始*/ ++negtive;/*負(fù)整數(shù)個(gè)數(shù)加1*/ sum_neg+=x;/*將負(fù)整數(shù)加到sum_neg中*/ }/*el
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【講練通】2021版高中歷史岳麓版必修1-單元質(zhì)量評(píng)估(三)
- 六年級(jí)上冊(cè)數(shù)學(xué)教研組工作計(jì)劃范文評(píng)價(jià)
- 【學(xué)練考】2021-2022蘇教版化學(xué)必修1練習(xí)-專(zhuān)題3-從礦物到基礎(chǔ)材料
- 三年級(jí)數(shù)學(xué)(上)計(jì)算題專(zhuān)項(xiàng)練習(xí)附答案
- 五年級(jí)數(shù)學(xué)(小數(shù)乘除法)計(jì)算題專(zhuān)項(xiàng)練習(xí)及答案匯編
- 全程方略2021屆高考數(shù)學(xué)專(zhuān)項(xiàng)精析精煉:2014年考點(diǎn)48-隨機(jī)事件的概率、古典概型、幾何概型
- 家長(zhǎng)進(jìn)課堂小學(xué)生食品安演示教學(xué)
- 增塑劑聚酯薄膜行業(yè)分析
- 2018-2019學(xué)年高中生物-第三章-遺傳的分子基礎(chǔ)本章知識(shí)體系構(gòu)建課件-浙科版必修2
- (期末押題卷)期末重難點(diǎn)高頻易錯(cuò)培優(yōu)卷(試題)-2024-2025學(xué)年四年級(jí)上冊(cè)數(shù)學(xué)人教版
- 自考證據(jù)法學(xué)講義(大全)
- 2024年化工儀表維修工職業(yè)技能競(jìng)賽理論考試題庫(kù)500題(含答案)
- 光合作用(光合作用的研究歷程)課件-2024-2025學(xué)年北師大版生物七年級(jí)上冊(cè)
- 2024-2030年全球及中國(guó)用于防御的紅外反狙擊手探測(cè)系統(tǒng)行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃可行性分析研究報(bào)告
- 2024年安徽六年級(jí)數(shù)學(xué)第一學(xué)期期末考試試題含解析
- 上海市縣(2024年-2025年小學(xué)四年級(jí)語(yǔ)文)統(tǒng)編版期末考試(上學(xué)期)試卷及答案
- 北京市大興區(qū)名校2025屆數(shù)學(xué)八年級(jí)第一學(xué)期期末統(tǒng)考試題含解析2
- 制造業(yè)行業(yè):制造業(yè)質(zhì)量控制與提升方案
- 正常分娩個(gè)案護(hù)理
- 2024-2030年電子級(jí)硫酸行業(yè)市場(chǎng)現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評(píng)估規(guī)劃分析研究報(bào)告
- 智能屋面狀況監(jiān)測(cè)與診斷
評(píng)論
0/150
提交評(píng)論