C語(yǔ)言課件完整版(精華)課件_第1頁(yè)
C語(yǔ)言課件完整版(精華)課件_第2頁(yè)
C語(yǔ)言課件完整版(精華)課件_第3頁(yè)
C語(yǔ)言課件完整版(精華)課件_第4頁(yè)
C語(yǔ)言課件完整版(精華)課件_第5頁(yè)
已閱讀5頁(yè),還剩963頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言)1編輯版計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)(C語(yǔ)言)1編輯版

1.課堂要求很?chē)?yán)格。2.多聽(tīng),適時(shí)做筆記。3.上課不能講閑話(huà)。4.課后認(rèn)真完成作業(yè)、實(shí)驗(yàn)報(bào)告。5.有問(wèn)題,及時(shí)與老師聯(lián)系。教學(xué)要求2編輯版1.課堂要求很?chē)?yán)格。教學(xué)要求2編輯版選用教材與參考書(shū)主教科書(shū)

顧治華、陳天煌等

《C語(yǔ)言程序設(shè)計(jì)》

機(jī)械工業(yè)出版社

2007.2參考教材顧治華、陳天煌等《C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)》

機(jī)械工業(yè)出版社2007.2參考書(shū)譚浩強(qiáng)《C語(yǔ)言程序設(shè)計(jì)》清華大學(xué)出版社3編輯版選用教材與參考書(shū)主教科書(shū)顧治華、陳天煌等《C語(yǔ)言程序課程內(nèi)容第一章C語(yǔ)言程序設(shè)計(jì)概述

第二章算法及算法設(shè)計(jì)簡(jiǎn)介

第三章數(shù)據(jù)描述與基本操作第四章選擇結(jié)構(gòu)程序設(shè)計(jì)

第五章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)

第六章數(shù)組與指針第七章函數(shù)與模塊化程序設(shè)計(jì)方法4編輯版課程內(nèi)容第一章C語(yǔ)言程序設(shè)計(jì)概述4編輯版第一章

C語(yǔ)言程序設(shè)計(jì)概述5編輯版第一章

C語(yǔ)言程序設(shè)計(jì)概述5編輯版1.1程序設(shè)計(jì)的概念1.2C語(yǔ)言的產(chǎn)生及發(fā)展1.3簡(jiǎn)單C程序介紹1.4

C程序的上機(jī)步驟1.5C語(yǔ)言的基本語(yǔ)法和基本結(jié)構(gòu)1.6本章要點(diǎn)小結(jié)6編輯版1.1程序設(shè)計(jì)的概念6編輯版1.1程序設(shè)計(jì)的概念1.1.1程序設(shè)計(jì)語(yǔ)言1.1.2程序設(shè)計(jì)的概念7編輯版1.1程序設(shè)計(jì)的概念1.1.1程序設(shè)計(jì)語(yǔ)言7編輯版計(jì)算機(jī)計(jì)算機(jī)是用來(lái)延伸人的能力的工具,需要人來(lái)駕馭我們的職責(zé)是讓非計(jì)算機(jī)專(zhuān)業(yè)的人更容易駕馭它完成這一目標(biāo)的主要手段之一就是

“編程(Programming)”8編輯版計(jì)算機(jī)計(jì)算機(jī)是用來(lái)延伸人的能力的工具,需要人來(lái)駕馭8編輯版計(jì)算機(jī)基本工作過(guò)程整個(gè)過(guò)程的執(zhí)行者是硬件,但硬件是受軟件控制的編程,就是編寫(xiě)軟件,使硬件按照人的意圖工作9編輯版計(jì)算機(jī)基本工作過(guò)程整個(gè)過(guò)程的執(zhí)行者是硬件,但硬件是受軟件控制計(jì)算機(jī)基本工作過(guò)程輸入/輸出設(shè)備存儲(chǔ)器運(yùn)算器控制器源程序和輸入數(shù)據(jù)輸出結(jié)果取出數(shù)據(jù)存入數(shù)據(jù)操作命令存取命令取出程序指令輸入輸出命令計(jì)算結(jié)果CPU“馮·諾依曼機(jī)”結(jié)構(gòu)大腦眼/耳/口程序和數(shù)據(jù)硬盤(pán)CPU內(nèi)存執(zhí)行結(jié)果10編輯版計(jì)算機(jī)基本工作過(guò)程存儲(chǔ)器運(yùn)算器控制器源程序輸出結(jié)果取出數(shù)據(jù)存軟件的形成軟件(Software)的形成程序員(Programmer)編寫(xiě)程序源代碼(SourceCode)編譯器(Compiler)把源代碼轉(zhuǎn)換為可被計(jì)算機(jī)理解的機(jī)器代碼(MachineCode)并把機(jī)器代碼以可執(zhí)行文件(ExecutableFile)的形式保存在磁盤(pán)上11編輯版軟件的形成軟件(Software)的形成11編輯版機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向過(guò)程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加

10010000減用助記符號(hào)描述的指令系統(tǒng)如ADDA,B面向機(jī)器的語(yǔ)言程序設(shè)計(jì)是數(shù)據(jù)被加工的過(guò)程客觀世界可以分類(lèi),對(duì)象是類(lèi)的實(shí)例對(duì)象是數(shù)據(jù)和方法的封裝對(duì)象間通過(guò)發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計(jì)關(guān)鍵是定義類(lèi),并由類(lèi)派生對(duì)象1.1.1程序設(shè)計(jì)語(yǔ)言12編輯版機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向過(guò)程面向?qū)ο驝PU指令系統(tǒng),由0程序設(shè)計(jì)語(yǔ)言的故事計(jì)算機(jī)為什么用二進(jìn)制呢?為什么不用我們?nèi)粘J煜さ氖M(jìn)制呢?二進(jìn)制在在電器元件中容易實(shí)現(xiàn)計(jì)算機(jī)進(jìn)行二進(jìn)制運(yùn)算比進(jìn)行十進(jìn)制運(yùn)算要簡(jiǎn)單得多13編輯版程序設(shè)計(jì)語(yǔ)言的故事計(jì)算機(jī)為什么用二進(jìn)制呢?13編輯版程序設(shè)計(jì)語(yǔ)言的故事機(jī)器語(yǔ)言編寫(xiě)的1+1程序匯編語(yǔ)言(AssembleLanguage)編寫(xiě)的1+1程序101110000000000100000000000001010000000100000000MOVAX,1ADDAX,114編輯版程序設(shè)計(jì)語(yǔ)言的故事機(jī)器語(yǔ)言編寫(xiě)的1+1程序10111000M程序設(shè)計(jì)語(yǔ)言的故事BASIC語(yǔ)言編寫(xiě)的1+1程序C語(yǔ)言編寫(xiě)的1+1程序PRINT1+1#include<stdio.h>main(){ printf("%d\n",1+1);}15編輯版程序設(shè)計(jì)語(yǔ)言的故事BASIC語(yǔ)言編寫(xiě)的1+1程序PRINT5254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC++JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula67Smalltalk80BASICANSI-BASICQBASICVBFORTRAN9016編輯版5254565860626466687072747678801.1.2程序設(shè)計(jì)的概念程序設(shè)計(jì)就是用計(jì)算機(jī)語(yǔ)言來(lái)編寫(xiě)程序的過(guò)程。什么是程序?著名計(jì)算機(jī)科學(xué)家沃思提出有名的公式:算法+數(shù)據(jù)結(jié)構(gòu)=程序17編輯版1.1.2程序設(shè)計(jì)的概念程序設(shè)計(jì)就是用計(jì)算機(jī)語(yǔ)言來(lái)編寫(xiě)程算法即問(wèn)題的求解過(guò)程、計(jì)算機(jī)的工作步驟。數(shù)據(jù)結(jié)構(gòu)即對(duì)參與運(yùn)算的數(shù)據(jù)怎樣進(jìn)行合理的組織、安排,以提高程序運(yùn)行的效率和求解的精確性。程序的兩大要素:數(shù)據(jù)結(jié)構(gòu)、算法18編輯版算法即問(wèn)題的求解過(guò)程、計(jì)算機(jī)的工作步驟。程序的兩大要素:數(shù)據(jù)1.2C語(yǔ)言的產(chǎn)生和發(fā)展1.2.1C語(yǔ)言的產(chǎn)生1.2.2C語(yǔ)言的發(fā)展1.2.3C語(yǔ)言的特點(diǎn)19編輯版1.2C語(yǔ)言的產(chǎn)生和發(fā)展1.2.1C語(yǔ)言的產(chǎn)1.2.1C語(yǔ)言的產(chǎn)生一切從一個(gè)叫“SpaceTravel”的電子游戲開(kāi)始的……KenThompson為了讓他的游戲能在PDP-7上運(yùn)行,用匯編語(yǔ)言給PDP-7寫(xiě)了一個(gè)操作系統(tǒng)—UNIX匯編太不好用了,Thompson需要高級(jí)語(yǔ)言試驗(yàn)了一些高級(jí)語(yǔ)言,包括Fortran,都不理想他在BCPL基礎(chǔ)上,自己設(shè)計(jì)了一個(gè)B語(yǔ)言UNIX開(kāi)始發(fā)展,B也不夠用了DennisRitchie加入,把B改造成C開(kāi)始用C重寫(xiě)UNIX20編輯版1.2.1C語(yǔ)言的產(chǎn)生一切從一個(gè)叫“SpaceT1.2.2C語(yǔ)言的發(fā)展C語(yǔ)言發(fā)展過(guò)程產(chǎn)生過(guò)程時(shí)間:1972~1973地點(diǎn):美國(guó)貝爾實(shí)驗(yàn)室目的:UNIX操作系統(tǒng)設(shè)計(jì)人:Ken.Thompson和Dennis.M.RitchieC標(biāo)準(zhǔn)標(biāo)準(zhǔn)C:K&R合著《TheCProgrammingLanguage》ANSIC:1983年87ANSIC:1987年1990年國(guó)際標(biāo)準(zhǔn)的ANSIC21編輯版1.2.2C語(yǔ)言的發(fā)展C語(yǔ)言發(fā)展過(guò)程21編輯版Ritchie和Thompson在開(kāi)發(fā)UNIX22編輯版Ritchie和Thompson在開(kāi)發(fā)UNIX22編輯版接受美國(guó)國(guó)家技術(shù)勛章23編輯版接受美國(guó)國(guó)家技術(shù)勛章23編輯版C語(yǔ)言的祖師爺DennisM.Ritchie24編輯版C語(yǔ)言的祖師爺DennisM.Ritchie24編輯版Ritchie漫畫(huà)像

25編輯版Ritchie漫畫(huà)像

25編輯版C語(yǔ)言本身既有一般高級(jí)語(yǔ)言的特點(diǎn),又由低級(jí)語(yǔ)言(匯編語(yǔ)言)的特點(diǎn)。C語(yǔ)言是一種結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言,它具有實(shí)現(xiàn)順序、分支、循環(huán)三種基本結(jié)構(gòu)化控制的語(yǔ)句。C語(yǔ)言簡(jiǎn)潔,緊湊,使用方便靈活。只有32個(gè)保留字,9種控制語(yǔ)句,書(shū)寫(xiě)形式自由。數(shù)據(jù)類(lèi)型豐富。有整型、實(shí)型、字符型、數(shù)組型、指針型、結(jié)構(gòu)體型、共用體型和枚舉型等。1.2.3C語(yǔ)言的特點(diǎn)26編輯版C語(yǔ)言本身既有一般高級(jí)語(yǔ)言的特點(diǎn),又由低級(jí)語(yǔ)言(匯編語(yǔ)言)的5、運(yùn)算功能強(qiáng)。有32種運(yùn)算符,包括了算術(shù)運(yùn)算、關(guān)系運(yùn)算、邏輯運(yùn)算、位運(yùn)算、指針運(yùn)算等。6、目標(biāo)代碼質(zhì)量高,運(yùn)行速度快。7、可移植性強(qiáng)。8、語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大。1.2.3C語(yǔ)言的特點(diǎn)27編輯版5、運(yùn)算功能強(qiáng)。有32種運(yùn)算符,包括了算術(shù)運(yùn)算、關(guān)系運(yùn)算、邏C語(yǔ)言是編譯型語(yǔ)言

一種編譯語(yǔ)言對(duì)應(yīng)一種編譯器按照該語(yǔ)言的語(yǔ)法編寫(xiě)程序源代碼,把自己的思想融入到代碼中編譯器讀入源代碼,把程序員的意圖轉(zhuǎn)換成可執(zhí)行程序,供他人使用28編輯版C語(yǔ)言是編譯型語(yǔ)言一種編譯語(yǔ)言對(duì)應(yīng)一種編譯器28編輯版C語(yǔ)言與計(jì)算機(jī)系統(tǒng)層次關(guān)系29編輯版C語(yǔ)言與計(jì)算機(jī)系統(tǒng)層次關(guān)系29編輯版1.3簡(jiǎn)單C程序介紹30編輯版1.3簡(jiǎn)單C程序介紹30編輯版C程序格式和結(jié)構(gòu)特點(diǎn)第一個(gè)程序Hello,World!/*example1.1ThefirstCProgram*/#include<stdio.h>main(){printf(“Hello,World!”);}注釋編譯預(yù)處理函數(shù)語(yǔ)句輸出:Hello,World!31編輯版C程序格式和結(jié)構(gòu)特點(diǎn)第一個(gè)程序Hello,World!注/*example1.2calculatethesumofaandb*/#include<stdio.h>/*Thisisthemainprogram*/main(){inta,b,sum;a=10;b=24;

sum=add(a,b);printf(”sum=%d\n",sum);}/*Thisfunctioncalculatesthesumofxandy*/intadd(intx,inty){intz;z=x+y;return(z);}運(yùn)行結(jié)果:sum=34語(yǔ)句預(yù)處理命令注釋主函數(shù)子函數(shù)32編輯版/*example1.2calculat格式特點(diǎn)習(xí)慣用小寫(xiě)字母,大小寫(xiě)敏感不使用行號(hào),無(wú)程序行概念可使用空行和空格常用鋸齒形書(shū)寫(xiě)格式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ì)齊有足夠的注釋有合適的空行33編輯版格式特點(diǎn)main()main()優(yōu)秀程序員的素質(zhì)之一:3結(jié)構(gòu)特點(diǎn)函數(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ù)處理命令①函數(shù)首部:包括函數(shù)名、函數(shù)類(lèi)型、函數(shù)參數(shù)名、參數(shù)類(lèi)型。②函數(shù)體:聲明部分,執(zhí)行部分。34編輯版結(jié)構(gòu)特點(diǎn)例:/*Thisisthemain1.4C程序的上機(jī)步驟35編輯版1.4C程序的上機(jī)步驟35編輯版編輯鏈接編譯執(zhí)行程序代碼的錄入,生成源程序*.c語(yǔ)法分析查錯(cuò),翻譯生成目標(biāo)程序*.obj與其它目標(biāo)程序或庫(kù)鏈接裝配,生成可執(zhí)行程序*.exe開(kāi)始編輯編譯

有錯(cuò)?執(zhí)行連接結(jié)果正確結(jié)束可執(zhí)行目標(biāo)程序f.exe源程序f.c目標(biāo)程序f.obj庫(kù)函數(shù)和其他目標(biāo)程序YesNoYesNo36編輯版編輯鏈接編譯執(zhí)行程序代碼的錄入,語(yǔ)法分析查錯(cuò),翻譯與其它目標(biāo)1.5C語(yǔ)言的基本語(yǔ)法和結(jié)構(gòu)1.5.1C語(yǔ)言的基本語(yǔ)法1.5.2C語(yǔ)言的基本結(jié)構(gòu)37編輯版1.5C語(yǔ)言的基本語(yǔ)法和結(jié)構(gòu)1.5.1C語(yǔ)言1.5.1C語(yǔ)言的基本語(yǔ)法標(biāo)識(shí)符關(guān)鍵字運(yùn)算符分隔符常量注釋符字符集38編輯版1.5.1C語(yǔ)言的基本語(yǔ)法標(biāo)識(shí)符38編輯版標(biāo)識(shí)符常量、變量、語(yǔ)句標(biāo)號(hào)以及自定義函數(shù)的名稱(chēng)只能是字母、數(shù)字和下劃線組成的字符串,第一個(gè)字符必須是字母或下劃線標(biāo)準(zhǔn)C不限制標(biāo)識(shí)符長(zhǎng)度,但一般不超過(guò)8字符標(biāo)識(shí)符大小寫(xiě)有區(qū)別標(biāo)識(shí)符名最好能“顧名思義”39編輯版標(biāo)識(shí)符常量、變量、語(yǔ)句標(biāo)號(hào)以及自定義函數(shù)的名稱(chēng)39編輯版32個(gè)關(guān)鍵字:(由系統(tǒng)定義,不能重作其它定義)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile40編輯版32個(gè)關(guān)鍵字:(由系統(tǒng)定義,不能重作其它定義)40編輯版9種控制語(yǔ)句:if()~else~switch~case~for()~while()~do~while()continuebreakgotoreturn41編輯版9種控制語(yǔ)句:41編輯版34種運(yùn)算符:算術(shù)運(yùn)算符:+-*/%++--關(guān)系運(yùn)算符:<<===>>=!=邏輯運(yùn)算符:!&&||位運(yùn)算符:<<>>~|^&賦值運(yùn)算符:=及其擴(kuò)展條件運(yùn)算符:?:逗號(hào)運(yùn)算符:,指針運(yùn)算符:*&求字節(jié)數(shù):sizeof強(qiáng)制類(lèi)型轉(zhuǎn)換:(類(lèi)型)分量運(yùn)算符:.->下標(biāo)運(yùn)算符:[]其它:()-42編輯版34種運(yùn)算符:42編輯版1.5.2C語(yǔ)言的基本結(jié)構(gòu)(1)順序結(jié)構(gòu)

ABab43編輯版1.5.2C語(yǔ)言的基本結(jié)構(gòu)(1)順序結(jié)構(gòu)ABab(2)選擇結(jié)構(gòu),或稱(chēng)分支結(jié)構(gòu)

此結(jié)構(gòu)中必包含一個(gè)判斷框。根據(jù)給定的條件P是否成立而選擇執(zhí)行A框或B框abBAp不成立成立44編輯版(2)選擇結(jié)構(gòu),或稱(chēng)分支結(jié)構(gòu)此結(jié)構(gòu)中必包含一個(gè)判斷框。根據(jù)

(3)

循環(huán)結(jié)構(gòu),它又稱(chēng)為重復(fù)結(jié)構(gòu),即反復(fù)執(zhí)行某一部分的操作。又兩類(lèi)循環(huán)結(jié)構(gòu):

a.當(dāng)型(while型)循環(huán)結(jié)構(gòu)ap1TFAbb.直到型(Until型)循環(huán)結(jié)構(gòu)

aATFbp245編輯版

(3)

循環(huán)結(jié)構(gòu),它又稱(chēng)為重復(fù)結(jié)構(gòu),即反復(fù)執(zhí)行某一部分1.6本章要點(diǎn)小結(jié)程序設(shè)計(jì)的概念C語(yǔ)言的產(chǎn)生及發(fā)展C語(yǔ)言的特點(diǎn)C程序的介紹和上機(jī)步驟C語(yǔ)言的基本語(yǔ)法和結(jié)構(gòu)46編輯版1.6本章要點(diǎn)小結(jié)程序設(shè)計(jì)的概念46編輯版本章課堂練習(xí)

(1)以下說(shuō)法中正確的是().A)C語(yǔ)言程序總是從第一個(gè)函數(shù)開(kāi)始執(zhí)行

B)在C語(yǔ)言程序中,要調(diào)用的函數(shù)必須在main()函數(shù)中定義

C)C語(yǔ)言程序總是從main()函數(shù)開(kāi)始執(zhí)行

D)C語(yǔ)言程序中的main()函數(shù)必須放在程序的開(kāi)始部分47編輯版本章課堂練習(xí)(1)以下說(shuō)法中正確的是().47編解答:C解釋?zhuān)篊語(yǔ)言程序總是從main()函數(shù)開(kāi)始執(zhí)行,而不論其在程序中的位置。當(dāng)主函數(shù)執(zhí)行完畢時(shí),亦即程序執(zhí)行完畢。除main函數(shù)外,其它函數(shù)都是在執(zhí)行main函數(shù)時(shí)被調(diào)用執(zhí)行的。在C語(yǔ)言中,函數(shù)不允許嵌套定義。習(xí)慣上,將主函數(shù)main()放在最前頭,但并不是必須的。48編輯版解答:C48編輯版(2).以下敘述不正確的是A)一個(gè)C源程序可由一個(gè)或多個(gè)函數(shù)組成B)一個(gè)C源程序必須包含一個(gè)main函數(shù)C)C程序的基本組成單位是函數(shù)

D)在C程序中,注釋說(shuō)明只能位于一條語(yǔ)句的后面49編輯版(2).以下敘述不正確的是49編輯版解答:D解釋:

凡是用“/*”和“*/”括起來(lái)的文字,都是注釋。其出現(xiàn)的位置可以任意。50編輯版解答:D50編輯版(3).下列標(biāo)識(shí)符中,合法的變量名有:A)a.bB)$888C)A1D)

3x5651編輯版(3).下列標(biāo)識(shí)符中,合法的變量名有:51編輯版解答:C解釋?zhuān)鹤兞棵荒苡勺帜?、?shù)字和下劃線三種字符所組成,且第一個(gè)字符必須為字母或下劃線。C語(yǔ)言的關(guān)鍵字不能用作變量名。另外,C語(yǔ)言對(duì)英文字母的大小寫(xiě)敏感,即同一字母的大小寫(xiě),被認(rèn)為是兩個(gè)不同的字符。習(xí)慣上,變量名和函數(shù)名中的英文字母用小寫(xiě),以增加可讀性。52編輯版解答:C52編輯版第二章程序的靈魂:算法53編輯版第二章程序的靈魂:算法53編輯版一個(gè)程序主要包括以下兩方面的信息:(1)對(duì)數(shù)據(jù)的描述。在程序中要指定用到哪些數(shù)據(jù)以及這些數(shù)據(jù)的類(lèi)型和數(shù)據(jù)的組織形式這就是數(shù)據(jù)結(jié)構(gòu)(datastructure)(2)對(duì)操作的描述。即要求計(jì)算機(jī)進(jìn)行操作的步驟也就是算法(algorithm)54編輯版一個(gè)程序主要包括以下兩方面的信息:54編輯版數(shù)據(jù)是操作的對(duì)象操作的目的是對(duì)數(shù)據(jù)進(jìn)行加工處理,以得到期望的結(jié)果著名計(jì)算機(jī)科學(xué)家沃思(NikiklausWirth)提出一個(gè)公式:

算法

+數(shù)據(jù)結(jié)構(gòu)=程序55編輯版數(shù)據(jù)是操作的對(duì)象55編輯版一個(gè)程序除了算法和數(shù)據(jù)結(jié)構(gòu)這主要要素外,還應(yīng)當(dāng)采用結(jié)構(gòu)化程序設(shè)計(jì)方法進(jìn)行程序設(shè)計(jì),并且用某一種計(jì)算機(jī)語(yǔ)言表示算法、數(shù)據(jù)結(jié)構(gòu)、程序設(shè)計(jì)方法和語(yǔ)言工具是一個(gè)程序設(shè)計(jì)人員應(yīng)具備的知識(shí)算法+數(shù)據(jù)結(jié)構(gòu)+程序設(shè)計(jì)方法+語(yǔ)言工具和環(huán)境=程序56編輯版一個(gè)程序除了算法和數(shù)據(jù)結(jié)構(gòu)這主要要素外,還應(yīng)當(dāng)采用結(jié)構(gòu)化程序算法是解決“做什么”和“怎么做”的問(wèn)題程序中的操作語(yǔ)句,是算法的體現(xiàn)不了解算法就談不上程序設(shè)計(jì)57編輯版算法是解決“做什么”和“怎么做”的問(wèn)題57編輯版2.1算法的概念2.2算法的特性2.3算法的表示2.4結(jié)構(gòu)化程序設(shè)計(jì)方法58編輯版2.1算法的概念58編輯版2.1算法的概念廣義地說(shuō),為解決一個(gè)問(wèn)題而采取的方法和步驟,就稱(chēng)為“算法”對(duì)同一個(gè)問(wèn)題,可以有不同的解題方法和步驟為了有效地進(jìn)行解題,不僅需要保證算法正確,還要考慮算法的質(zhì)量,選擇合適的算法59編輯版2.1算法的概念廣義地說(shuō),為解決一個(gè)問(wèn)題而采取的方法和步計(jì)算機(jī)算法可分為兩大類(lèi)別:數(shù)值運(yùn)算算法非數(shù)值運(yùn)算算法數(shù)值運(yùn)算的目的是求數(shù)值解非數(shù)值運(yùn)算包括的面十分廣泛,最常見(jiàn)的是用于事務(wù)管理領(lǐng)域2.1算法的概念60編輯版計(jì)算機(jī)算法可分為兩大類(lèi)別:2.1算法的概念60編輯版可以用最原始的方法進(jìn)行:步驟1:先求1*2,得到結(jié)果2。步驟2:將步驟1得到的乘積2再乘以3,得到結(jié)果6。步驟3:將6再乘以4,得24。步驟4:將24再乘以5,得120。這就是最后的結(jié)果。例2.1求1×2×3×4×5×…×100太繁瑣例2.1求1×2×3×4×5簡(jiǎn)單算法的舉例概念61編輯版可以用最原始的方法進(jìn)行:例2.1求1×2×3×4×5×…改進(jìn)的算法:設(shè)變量p為被乘數(shù)變量i為乘數(shù)用循環(huán)算法求結(jié)果求1×2×3×4×5簡(jiǎn)單算法的舉例概念62編輯版改進(jìn)的算法:求1×2×3×4×5簡(jiǎn)單算法的舉例概念62編輯版S1:使p=1,或?qū)懗?pS2:使i=2,或?qū)懗?iS3:使p與i相乘,乘積仍放在變量p中,可表示為:p*ipS4:使i的值加1,即i+1iS5:如果i不大于5,返回重新執(zhí)行S3;否則,算法結(jié)束最后得到p的值就是

5!的值若是100,求什么?簡(jiǎn)單算法的舉例概念63編輯版S1:使p=1,或?qū)懗?p若是100,求什么?簡(jiǎn)單算法的舉

例2.2有50個(gè)學(xué)生,要求將成績(jī)?cè)?0-90分的學(xué)生的學(xué)號(hào)和成績(jī)輸出。用ni代表第i個(gè)學(xué)生學(xué)號(hào),gi表示第i個(gè)學(xué)生成績(jī)S1:1iS2:如果90≥gi≥80,

則輸出ni和gi,否則不輸出S3:i+1iS4:如果i≤50,返回到步驟S2,繼續(xù)執(zhí)行,否則,算法結(jié)束64編輯版例2.2有50個(gè)學(xué)生,要求將成績(jī)?cè)?0-90分的學(xué)生的2.1算法的概念2.2算法的特性2.3算法的表示2.4結(jié)構(gòu)化程序設(shè)計(jì)方法65編輯版2.1算法的概念65編輯版一個(gè)有效算法應(yīng)該具有以下特點(diǎn):(1)

有窮性。一個(gè)算法應(yīng)包含有限的操作步驟,而不能是無(wú)限的。(2)

確定性。算法中的每一個(gè)步驟都應(yīng)當(dāng)是確定的,而不應(yīng)當(dāng)是含糊的、模棱兩可的。2.2算法的特性66編輯版一個(gè)有效算法應(yīng)該具有以下特點(diǎn):2.2算法的特性66編輯版一個(gè)有效算法應(yīng)該具有以下特點(diǎn):(3)

有零個(gè)或多個(gè)輸入。所謂輸入是指在執(zhí)行算法時(shí)需要從外界取得必要的信息。(4)

有一個(gè)或多個(gè)輸出。算法的目的是為了求解,“解”就是輸出。沒(méi)有輸出的算法是沒(méi)有意義的。(5)

有效性。算法中的每一個(gè)步驟都應(yīng)當(dāng)能有效地執(zhí)行,并得到確定的結(jié)果。2.2算法的特性67編輯版一個(gè)有效算法應(yīng)該具有以下特點(diǎn):2.2算法的特性67編輯版對(duì)于一般最終用戶(hù)來(lái)說(shuō):他們并不需要在處理每一個(gè)問(wèn)題時(shí)都要自己設(shè)計(jì)算法和編寫(xiě)程序可以使用別人已設(shè)計(jì)好的現(xiàn)成算法和程序只需根據(jù)已知算法的要求給予必要的輸入,就能得到輸出的結(jié)果輸入3個(gè)數(shù)黑箱子3個(gè)數(shù)中最大數(shù)求3個(gè)數(shù)的最大數(shù)2.2算法的特性68編輯版對(duì)于一般最終用戶(hù)來(lái)說(shuō):輸入3個(gè)數(shù)黑箱子3個(gè)數(shù)中最大數(shù)求3個(gè)數(shù)2.1算法的概念2.2算法的特性2.3算法的表示2.4結(jié)構(gòu)化程序設(shè)計(jì)方法69編輯版2.1算法的概念69編輯版常用的方法有:自然語(yǔ)言傳統(tǒng)流程圖結(jié)構(gòu)化流程圖偽代碼……2.3算法的表示70編輯版常用的方法有:2.3算法的表示70編輯版自然語(yǔ)言表示法2.1節(jié)例子介紹的算法是用自然語(yǔ)言表示的用自然語(yǔ)言表示通俗易懂,但文字冗長(zhǎng),容易出現(xiàn)歧義性用自然語(yǔ)言描述包含分支和循環(huán)的算法,不很方便除了很簡(jiǎn)單的問(wèn)題外,一般不用自然語(yǔ)言71編輯版自然語(yǔ)言表示法2.1節(jié)例子介紹的算法是用自然語(yǔ)言表示的71編傳統(tǒng)的程序流程圖用一些圖形符號(hào)形象直觀的表述算法,上表給出了ANSI規(guī)定的程序流程圖符號(hào)。流程圖是用一些圖框來(lái)表示各種操作用圖形表示算法,直觀形象,易于理解72編輯版?zhèn)鹘y(tǒng)的程序流程圖用一些圖形符號(hào)形象直觀的表述算法,上表給出了x≧0Y……N……一個(gè)入口兩個(gè)出口傳統(tǒng)的程序流程圖73編輯版x≧0Y……N……一個(gè)入口兩個(gè)出口傳統(tǒng)的程序流程圖73編輯版③①②①③②③位置不夠防止交叉?zhèn)鹘y(tǒng)的程序流程圖74編輯版③①②①③②③位置不夠防止交叉?zhèn)鹘y(tǒng)的程序流程圖74編輯版

例2.4將例2.1的算法用流程圖表示。

求1×2×3×4×5如果需要將最后結(jié)果輸出:1t輸出ti>5開(kāi)始2it*iti+1i結(jié)束NY75編輯版例2.4將例2.1的算法用流程圖表示。1t輸出ti>通過(guò)以上幾個(gè)例子可以看出流程圖是表示算法的較好的工具一個(gè)流程圖包括以下幾部分:(1)表示相應(yīng)操作的框(2)帶箭頭的流程線(3)框內(nèi)外必要的文字說(shuō)明流程線不要忘記畫(huà)箭頭,否則難以判定各框的執(zhí)行次序傳統(tǒng)的程序流程圖76編輯版通過(guò)以上幾個(gè)例子可以看出流程圖是表示算法的較好的工具傳統(tǒng)的程特點(diǎn):繪制簡(jiǎn)單,描述直觀,之前廣泛使用。缺點(diǎn):程序流程圖不易表示算法或程序的層次結(jié)構(gòu)。用箭頭表示的控制流可能引起隨意的轉(zhuǎn)移控制??赡苷T使人們過(guò)早地考慮局部程序的控制結(jié)構(gòu)而忽視全局的程序結(jié)構(gòu)。不易表示數(shù)據(jù)結(jié)構(gòu)和程序模塊之間的關(guān)系。傳統(tǒng)的程序流程圖77編輯版特點(diǎn):繪制簡(jiǎn)單,描述直觀,之前廣泛使用。傳統(tǒng)的程序流程圖77N-S圖表示法

1973年美國(guó)學(xué)者I.Nassi和B.Shneiderman提出了一種新的流程圖形式。在這種流程圖中,完全去掉了帶箭頭的流程線。全部算法寫(xiě)在一個(gè)矩形框內(nèi),在該框內(nèi)還可以包含其他的從屬于它的框。

這種流程圖又稱(chēng)N—S結(jié)構(gòu)化流程圖(N和S是兩位美國(guó)學(xué)者的英文姓名的第一個(gè)字母)。這種流程圖適于結(jié)構(gòu)化程序設(shè)計(jì),因此很受歡迎。78編輯版N-S圖表示法1973年美國(guó)學(xué)者I.Nassi和BN-S流程圖用以下的流程圖符號(hào):ABABYNpA當(dāng)p1成立A直到p2成立順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)(當(dāng)型)循環(huán)結(jié)構(gòu)(直到型)N-S圖表示法

79編輯版N-S流程圖用以下的流程圖符號(hào):ABABYNpA當(dāng)p1成立A用偽碼表示算法

偽代碼是用介于自然語(yǔ)言和計(jì)算機(jī)語(yǔ)言之間的文字和符號(hào)來(lái)描述算法。它不用圖形符號(hào),因此書(shū)寫(xiě)方便,格式緊湊,也比較好懂,便于向計(jì)算機(jī)語(yǔ)言算法(即程序)過(guò)渡。

80編輯版用偽碼表示算法偽代碼是用介于自然語(yǔ)言和計(jì)算機(jī)語(yǔ)言BEGIN(算法開(kāi)始)1=>iWhilei<=30{inputniandgii+1=>i}1=>iWhilei<=30{ifgi>=80andgi<=90printniandgii+1=>i}END(算法結(jié)束)

前例用偽代碼表示算法如下:81編輯版BEGIN(算法開(kāi)始)前例用偽代碼表示算法如下:81編輯版用計(jì)算機(jī)語(yǔ)言表示算法

要完成一項(xiàng)工作,包括設(shè)計(jì)算法和實(shí)現(xiàn)算法兩個(gè)部分。設(shè)計(jì)算法的目的是為了實(shí)現(xiàn)算法。不僅要考慮如何設(shè)計(jì)一個(gè)算法,也要考慮如何實(shí)現(xiàn)一個(gè)算法。82編輯版用計(jì)算機(jī)語(yǔ)言表示算法要完成一項(xiàng)工作,包括設(shè)計(jì)算法和實(shí)現(xiàn)算法用C語(yǔ)言程序?qū)崿F(xiàn)前例如下#include<stdio.h>/*打印出50名同學(xué)中成績(jī)?cè)?0-90分者*/main(){

int

i,g[50],n[50];

for(i=0;i<50;i++)/*輸入50名同學(xué)的學(xué)號(hào),成績(jī)*/scanf(“%d,%d”,&n[i],&g[i]);for(i=0;i<50;i++)/*輸出成績(jī)80-90分同學(xué)的學(xué)號(hào),成績(jī)*/

if((g[i]>=80)&&(g[i]<=90))printf(“%6d,%3d\n”,n[i],g[i]);}fc1.c83編輯版用C語(yǔ)言程序?qū)崿F(xiàn)前例如下#include<stdio.h>2.1算法的概念2.2算法的特性2.3算法的表示2.4結(jié)構(gòu)化程序設(shè)計(jì)方法84編輯版2.1算法的概念84編輯版2.4結(jié)構(gòu)化程序設(shè)計(jì)方法簡(jiǎn)介

荷蘭學(xué)者E.W.dijkctra提出了結(jié)構(gòu)化程序設(shè)計(jì)(structuredprogramming)的理論,成為70年代中期至90年代初的程序設(shè)計(jì)主流。結(jié)構(gòu)化程序設(shè)計(jì)方法提出了一些大家都要遵循的原則,這些原則歸納為32個(gè)字:自頂向下,逐步細(xì)化。模塊設(shè)計(jì),結(jié)構(gòu)編碼。清晰第一,效率第二。書(shū)寫(xiě)規(guī)范,縮進(jìn)格式。85編輯版2.4結(jié)構(gòu)化程序設(shè)計(jì)方法簡(jiǎn)介荷蘭學(xué)者E.W.dijkc順序、分支和循環(huán)三種基本結(jié)構(gòu)的共同特點(diǎn):(1)只有一個(gè)入口。(2)只有一個(gè)出口。(3)結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會(huì)被執(zhí)行到。也就是說(shuō),對(duì)每一個(gè)框來(lái)說(shuō),都有從入口到出口的路徑通過(guò)它。(4)結(jié)構(gòu)內(nèi)不存在“死循環(huán)”(無(wú)終止的循環(huán))。86編輯版順序、分支和循環(huán)三種基本結(jié)構(gòu)的共同特點(diǎn):(1)只有一個(gè)入結(jié)構(gòu)化程序

所謂結(jié)構(gòu)化程序,就是僅僅使用順序、選擇、循環(huán)等三種基本結(jié)構(gòu)所構(gòu)造的程序。

結(jié)構(gòu)化程序設(shè)計(jì)方法

結(jié)構(gòu)化程序設(shè)計(jì)方法的基本思想是,把一個(gè)復(fù)雜問(wèn)題的求解過(guò)程分階段進(jìn)行。每個(gè)階段的問(wèn)題都控制在人們?nèi)菀桌斫夂吞幚淼姆秶鷥?nèi)。

87編輯版結(jié)構(gòu)化程序所謂結(jié)構(gòu)化程序,就是僅僅使用順序、選擇、結(jié)構(gòu)化程2.4本章要點(diǎn)小結(jié)

算法的概念算法的特性算法的表示結(jié)構(gòu)化程序設(shè)計(jì)方法88編輯版2.4本章要點(diǎn)小結(jié)算法的概念88編輯版第三章數(shù)據(jù)描述與

基本操作89編輯版第三章數(shù)據(jù)描述與

3.1基本數(shù)據(jù)類(lèi)型3.2運(yùn)算符和表達(dá)式3.3輸入輸出操作90編輯版3.1基本數(shù)據(jù)類(lèi)型90編輯版3.1基本數(shù)據(jù)類(lèi)型3.1.1C語(yǔ)言的數(shù)據(jù)類(lèi)型3.1.2常量和變量3.1.3數(shù)據(jù)類(lèi)型轉(zhuǎn)換91編輯版3.1基本數(shù)據(jù)類(lèi)型3.1.1C語(yǔ)言的數(shù)據(jù)類(lèi)型91編輯版3.1.1C語(yǔ)言的數(shù)據(jù)類(lèi)型(一)什么是數(shù)據(jù)類(lèi)型?(二)C語(yǔ)言的數(shù)據(jù)類(lèi)型有哪些?92編輯版3.1.1C語(yǔ)言的數(shù)據(jù)類(lèi)型(一)什么是數(shù)據(jù)類(lèi)型?92編(一)什么是數(shù)據(jù)類(lèi)型?數(shù)據(jù)結(jié)構(gòu)+算法=程序C語(yǔ)言中以“數(shù)據(jù)類(lèi)型”形式存在對(duì)數(shù)據(jù)的描述對(duì)操作的描述93編輯版(一)什么是數(shù)據(jù)類(lèi)型?數(shù)據(jù)結(jié)構(gòu)+算法=程序C語(yǔ)言中以對(duì)數(shù)據(jù)數(shù)據(jù)類(lèi)型基本類(lèi)型整型(有符號(hào)、無(wú)符號(hào))字符型實(shí)型(浮點(diǎn)型)枚舉類(lèi)型構(gòu)造類(lèi)型數(shù)組類(lèi)型結(jié)構(gòu)體類(lèi)型共用體類(lèi)型指針類(lèi)型空類(lèi)型單精度型雙精度型在程序中對(duì)用到的所有數(shù)據(jù)都必須指定其數(shù)據(jù)類(lèi)型.?不同類(lèi)型的數(shù)據(jù),所占內(nèi)存的字節(jié)數(shù)不同,對(duì)應(yīng)的操作也不相同。(二)C的數(shù)據(jù)類(lèi)型94編輯版數(shù)據(jù)類(lèi)型基本類(lèi)型整型(有符號(hào)、無(wú)符號(hào))構(gòu)造類(lèi)型數(shù)組類(lèi)型指針類(lèi)整型數(shù)據(jù)1.整型數(shù)據(jù)的分類(lèi)最基本的整型類(lèi)型基本整型(int型):占2個(gè)或4個(gè)字節(jié)(32位編譯系統(tǒng))短整型(shortint):VC++6.0中占2個(gè)字節(jié)長(zhǎng)整型(longint):VC++6.0中占4個(gè)字節(jié)雙長(zhǎng)整型(longlongint):C99新增的,64位占8個(gè)字節(jié),VC++6.0中定義為_(kāi)int6495編輯版整型數(shù)據(jù)1.整型數(shù)據(jù)的分類(lèi)95編輯版2.整型變量的符號(hào)屬性整型變量的值的范圍包括負(fù)數(shù)到正數(shù)可以將變量定義為“無(wú)符號(hào)”類(lèi)型擴(kuò)充的整形類(lèi)型:有符號(hào)基本整型

[signed]int;無(wú)符號(hào)基本整型

unsignedint;有符號(hào)短整型

[signed]short[int];無(wú)符號(hào)短整型

unsignedshort

[int];有符號(hào)長(zhǎng)整型

[signed]long[int];無(wú)符號(hào)長(zhǎng)整型

unsignedlong

[int];整型數(shù)據(jù)96編輯版2.整型變量的符號(hào)屬性整型數(shù)據(jù)96編輯版字符型數(shù)據(jù)字符是按其代碼(整數(shù))形式存儲(chǔ)的C99把字符型數(shù)據(jù)作為整數(shù)類(lèi)型的一種字符型數(shù)據(jù)在使用上有自己的特點(diǎn)97編輯版字符型數(shù)據(jù)字符是按其代碼(整數(shù))形式存儲(chǔ)的97編輯版1.字符與字符代碼大多數(shù)系統(tǒng)采用ASCII字符集字母:A~Z,a~z數(shù)字:0~9專(zhuān)門(mén)符號(hào):29個(gè):!”#&‘()*等空格符:空格、水平制表符‘\t’、換行‘\n’等不能顯示的字符:空(null)字符(以‘\0’表示)、鳴鈴(以‘\a’表示)、退格(以‘\b’表示)、回車(chē)(以‘\r’表示)等字符型數(shù)據(jù)98編輯版1.字符與字符代碼字符型數(shù)據(jù)98編輯版字符’1’和整數(shù)1是不同的概念:字符’1’只是代表一個(gè)形狀為’1’的符號(hào),在需要時(shí)按原樣輸出,在內(nèi)存中以ASCII碼形式存儲(chǔ),占1個(gè)字節(jié)整數(shù)1是以整數(shù)存儲(chǔ)方式(二進(jìn)制補(bǔ)碼方式)存儲(chǔ)的,占2個(gè)或4個(gè)字節(jié)字符型數(shù)據(jù)99編輯版字符’1’和整數(shù)1是不同的概念:字符型數(shù)據(jù)99編輯版2.字符變量用類(lèi)型符char定義字符變量

charc=’?’;

系統(tǒng)把“?”的ASCII代碼63賦給變量cprintf(“%d%c\n”,c,c);輸出結(jié)果是:

63?字符型數(shù)據(jù)100編輯版2.字符變量字符型數(shù)據(jù)100編輯版浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)是用來(lái)表示具有小數(shù)點(diǎn)的實(shí)數(shù)float型(單精度浮點(diǎn)型)編譯系統(tǒng)為float型變量分配4個(gè)字節(jié)數(shù)值以規(guī)范化的二進(jìn)制數(shù)指數(shù)形式存放

101編輯版浮點(diǎn)型數(shù)據(jù)浮點(diǎn)型數(shù)據(jù)是用來(lái)表示具有小數(shù)點(diǎn)的實(shí)數(shù)101編輯版浮點(diǎn)型數(shù)據(jù)是用來(lái)表示具有小數(shù)點(diǎn)的實(shí)數(shù)float型(單精度浮點(diǎn)型)double型(雙精度浮點(diǎn)型)編譯系統(tǒng)為double型變量分配8個(gè)字節(jié)15位有效數(shù)字浮點(diǎn)型數(shù)據(jù)102編輯版浮點(diǎn)型數(shù)據(jù)是用來(lái)表示具有小數(shù)點(diǎn)的實(shí)數(shù)浮點(diǎn)型數(shù)據(jù)102編輯版幾種基本數(shù)據(jù)類(lèi)型類(lèi)型符號(hào)關(guān)鍵字?jǐn)?shù)的表示范圍所占位數(shù)整型字符型實(shí)型有無(wú)(signed)int32-2147483648~2147483647(signed)short16-32768~32767(signed)long32-2147483648~214748364732Unsignedint0~4294967295320~4294967295unsignedlongunsignedshort160~65535有float323.4e-38~3.4e38有double641.7e-308~1.7e308有char8-128~127無(wú)unsignedchar80~255說(shuō)明:數(shù)據(jù)類(lèi)型所占字節(jié)數(shù)隨編譯器不同而不同,上表以VC++6.0為例:103編輯版幾種基本數(shù)據(jù)類(lèi)型類(lèi)型符號(hào)關(guān)鍵字?jǐn)?shù)的表示范圍所占位數(shù)整型字符型舉例:數(shù)據(jù)溢出(Overflow)的危害

一臺(tái)安裝了Windows?95/98的機(jī)器,如果連續(xù)運(yùn)行49.7天,可能死機(jī)原因:

Windows自啟動(dòng)時(shí)刻起,有一個(gè)計(jì)數(shù)器,記錄系統(tǒng)已經(jīng)運(yùn)行了多少毫秒。這個(gè)計(jì)數(shù)器個(gè)unsignedlong

unsignedlong的最大值:4294967295

一天有24*60*60*1000=86400000毫秒

4294967295/86400000=49.71026961805……

當(dāng)49.7天的時(shí)候,此計(jì)數(shù)器會(huì)溢出,引起死機(jī)104編輯版舉例:數(shù)據(jù)溢出(Overflow)的危害一臺(tái)安裝了Wind(一)常量(二)變量3.1.2常量與變量105編輯版(一)常量3.1.2常量與變量105編輯版預(yù)備知識(shí):bit,Byte,Word

bit,位

Byte,字節(jié)1B==8bWord,字1W==2BKilobyte(KB),1KB==1,024BMegabyte(MB),1MB==1,024KBGigabyte(GB),1GB==1,024MBTerabyte(TB)1TB==1,024GB106編輯版預(yù)備知識(shí):bit,Byte,Wordbit,一個(gè)字節(jié)有多大?可以表示數(shù)字0~255

保存一個(gè)字符(英文字母、數(shù)字、符號(hào)),ASCII編碼兩個(gè)字節(jié)保存一個(gè)漢字107編輯版一個(gè)字節(jié)有多大?107編輯版預(yù)備知識(shí):二進(jìn)制世界上有(10)2種人,1種人懂二進(jìn)制,1種人不懂二進(jìn)制一個(gè)位有多大?只能是“0”或者“1”,這叫二進(jìn)制二進(jìn)制詮釋了計(jì)算機(jī)的哲學(xué)

種類(lèi)眾多的復(fù)雜事物都是由若干種簡(jiǎn)單事物構(gòu)成108編輯版預(yù)備知識(shí):二進(jìn)制世界上有(10)2種人,1種人懂二進(jìn)制,1種1.常量:在程序運(yùn)行過(guò)程中,其值不能被改變的量整型常量:如1000,12345,0,-345實(shí)型常量十進(jìn)制小數(shù)形式:如0.34-56.790.0指數(shù)形式:如12.34e3(代表12.34103)字符常量:如’?’轉(zhuǎn)義字符:如’\n’字符串常量:如”boy”符號(hào)常量:#definePI3.14163.1.2常量與變量109編輯版1.常量:在程序運(yùn)行過(guò)程中,其值不能被改變的量3.1.2常字符與字符串的區(qū)別有哪些?定界符不同:字符常量使用單引號(hào),而字符串常量使用雙引號(hào);長(zhǎng)度不同:字符常量的長(zhǎng)度固定為1,而字符串常量的長(zhǎng)度,可以是0,也可以是某個(gè)整數(shù);存儲(chǔ)要求不同:字符常量存儲(chǔ)的是字符的ASCII碼值,而字符串常量,除了要存儲(chǔ)有效的字符外,還要存儲(chǔ)一個(gè)結(jié)束標(biāo)志’\0’。110編輯版字符與字符串的區(qū)別有哪些?定界符不同:字符常量使用單引號(hào),而2.變量:在程序運(yùn)行期間,變量的值是可以改變的變量必須先定義,后使用定義變量時(shí)指定該變量的名字和類(lèi)型變量名和變量值是兩個(gè)不同的概念變量名實(shí)際上是以一個(gè)名字代表的一個(gè)存儲(chǔ)地址從變量中取值,實(shí)際上是通過(guò)變量名找到相應(yīng)的內(nèi)存地址,從該存儲(chǔ)單元中讀取數(shù)據(jù)3.1.2常量與變量111編輯版2.變量:在程序運(yùn)行期間,變量的值是可以改變的3.1.2方式:1、定義變量的同時(shí)賦初值(也叫變量初始化)。格式:數(shù)據(jù)類(lèi)型變量名[=初值][,變量名2[=初值2]……];2、通過(guò)一個(gè)賦值語(yǔ)句給變量賦初值。格式:

變量名=初值;變量賦初值出現(xiàn)在函數(shù)體的聲明部分出現(xiàn)在函數(shù)體的執(zhí)行部分inta,b=3;inta,b;b=3;112編輯版方式:變量賦初值出現(xiàn)在函數(shù)體出現(xiàn)在函數(shù)體inta,b=1、程序中用到的變量必須“先定義(declare),后使用”。2、C語(yǔ)言的關(guān)鍵字不能用作變量名。3、C語(yǔ)言對(duì)英文字母的大小寫(xiě)敏感,即同一字母的大小寫(xiě),被認(rèn)為是兩個(gè)不同的字符。4、定義變量時(shí),給幾個(gè)變量賦相同的初值,應(yīng)寫(xiě)成:inta=3,b=3,c=3;

不能寫(xiě)成:inta=b=c=3;×5、給變量賦值時(shí),正常情況下應(yīng)給變量賦相同類(lèi)型的數(shù)據(jù)。若給變量賦與其類(lèi)型不同的數(shù)據(jù)時(shí),需進(jìn)行類(lèi)型轉(zhuǎn)換。關(guān)于變量以及變量賦初值的幾點(diǎn)說(shuō)明113編輯版1、程序中用到的變量必須“先定義(declare),后使用”變量——舉例#include<stdio.h>voidmain(){intstudent,age;intif=adrress=1;floatscore=90;

stadent=2;Age=20.7;printf("%d%d%d%f",if,student,age,score);}本程序中有幾處錯(cuò)誤?undeclaredidentifier114編輯版變量——舉例#include<stdio.h>本程序中有變量使用要注意長(zhǎng)度不要對(duì)變量所占的內(nèi)存空間字節(jié)數(shù)想當(dāng)然用sizeof獲得變量或者數(shù)據(jù)類(lèi)型的長(zhǎng)度程序在TurboC2.0和VisualC++6.0下的運(yùn)行結(jié)果不同注意!#include<stdio.h>voidmain(){

printf("DatatypeNumberofbytes\n");

printf("-------------------------------\n");

printf("char%d\n",sizeof(char));

printf("int%d\n",sizeof(int));

printf("shortint%d\n",sizeof(short));

printf("longint%d\n",sizeof(long));

printf("float%d\n",sizeof(float));

printf("double%d\n",sizeof(double));}115編輯版變量使用要注意長(zhǎng)度不要對(duì)變量所占的內(nèi)存空間字節(jié)數(shù)想當(dāng)然注意!3.1.3數(shù)據(jù)類(lèi)型轉(zhuǎn)換(一)隱式轉(zhuǎn)換(自動(dòng)轉(zhuǎn)換)(二)顯式轉(zhuǎn)換(強(qiáng)制轉(zhuǎn)換)116編輯版3.1.3數(shù)據(jù)類(lèi)型轉(zhuǎn)換(一)隱式轉(zhuǎn)換(自動(dòng)轉(zhuǎn)換)116編(一)隱式轉(zhuǎn)換(自動(dòng)轉(zhuǎn)換)轉(zhuǎn)換發(fā)生條件運(yùn)算轉(zhuǎn)換------不同類(lèi)型數(shù)據(jù)混合運(yùn)算時(shí)賦值轉(zhuǎn)換------把一個(gè)值賦給與其類(lèi)型不同的變量時(shí)輸出轉(zhuǎn)換------輸出時(shí)轉(zhuǎn)換成指定的輸出格式函數(shù)調(diào)用轉(zhuǎn)換--實(shí)參與形參類(lèi)型不一致時(shí)轉(zhuǎn)換先轉(zhuǎn)換、后運(yùn)算117編輯版(一)隱式轉(zhuǎn)換(自動(dòng)轉(zhuǎn)換)轉(zhuǎn)換發(fā)生條件運(yùn)算轉(zhuǎn)換------不隱式轉(zhuǎn)換(自動(dòng)轉(zhuǎn)換)同種數(shù)據(jù)類(lèi)型的運(yùn)算結(jié)果,還是該類(lèi)型不同種數(shù)據(jù)類(lèi)型的運(yùn)算結(jié)果,是兩種類(lèi)型中取值范圍更大的那種long

double>double>float=long>=int>=short>char把數(shù)據(jù)賦值給另外一種類(lèi)型變量也會(huì)發(fā)生自動(dòng)類(lèi)型轉(zhuǎn)換從小到大,順利轉(zhuǎn)換從大到小,可能丟失信息(好的編譯器會(huì)發(fā)出警告)見(jiàn)教材28頁(yè)118編輯版隱式轉(zhuǎn)換(自動(dòng)轉(zhuǎn)換)同種數(shù)據(jù)類(lèi)型的運(yùn)算結(jié)果,還是該類(lèi)型見(jiàn)教材隱式轉(zhuǎn)換(自動(dòng)轉(zhuǎn)換)不同類(lèi)型數(shù)據(jù)間的混合運(yùn)算:+、-、*、/運(yùn)算的兩個(gè)數(shù)中有一個(gè)數(shù)為float或double型,結(jié)果是double型。系統(tǒng)將float型數(shù)據(jù)都先轉(zhuǎn)換為double型,然后進(jìn)行運(yùn)算;(2)如果int型與float或double型數(shù)據(jù)進(jìn)行運(yùn)算,先把int型和float型數(shù)據(jù)轉(zhuǎn)換為double型,然后進(jìn)行運(yùn)算,結(jié)果是double型;(3)字符型數(shù)據(jù)與整型數(shù)據(jù)進(jìn)行運(yùn)算,就是把字符的ASCII代碼與整型數(shù)據(jù)進(jìn)行運(yùn)算.119編輯版隱式轉(zhuǎn)換(自動(dòng)轉(zhuǎn)換)不同類(lèi)型數(shù)據(jù)間的混合運(yùn)算:119編輯版inti;floatf;doubled;longe;……i=2;f=2.5;d=3.9;e=3;……10+‘a(chǎn)’+i*f-d/e1075.01.3112.0110.7intdoubledoubledoubledouble思考:根據(jù)已知變量定義及賦值語(yǔ)句,計(jì)算以下表達(dá)式的值,并說(shuō)明每一步所得結(jié)果的數(shù)據(jù)類(lèi)型。120編輯版inti;10+‘a(chǎn)’+i*f-d/e1075.01.3(二)顯式轉(zhuǎn)換(強(qiáng)制轉(zhuǎn)換)一般形式(要轉(zhuǎn)換成的數(shù)據(jù)類(lèi)型)(被轉(zhuǎn)換的表達(dá)式)注:當(dāng)被轉(zhuǎn)換的表達(dá)式是一個(gè)簡(jiǎn)單表達(dá)式時(shí),外面的一對(duì)圓括號(hào)可以缺省。舉例floatx,y;x=2.3;y=4.5;

(int)(x+y)//6(int)(int)x+y//6.5(double)說(shuō)明強(qiáng)制轉(zhuǎn)換得到的是所需類(lèi)型的中間變量,原變量或表達(dá)式的類(lèi)型不變。121編輯版(二)顯式轉(zhuǎn)換(強(qiáng)制轉(zhuǎn)換)一般形式(要轉(zhuǎn)換成的數(shù)據(jù)類(lèi)型)(#include<stdio.h>voidmain(){floatx;inti;x=3.6;i=(int)x;printf("x=%f,i=%d",x,i);}思考:以下程序的輸出結(jié)果是什么?x=3.600000,i=3程序運(yùn)行結(jié)果:結(jié)論:較高類(lèi)型向較低類(lèi)型轉(zhuǎn)換時(shí)可能發(fā)生精度損失問(wèn)題122編輯版#include<stdio.h>思考:以下程序的輸出結(jié)舉例:已知三角形的邊長(zhǎng)a、b、c,求三角形周長(zhǎng)的一半。#include<stdio.h>voidmain(){floata,b,c,s;a=3;b=4;c=5;s=1/2*

(a+b+c);printf("s=%8.2f",s);}s=0.00程序運(yùn)行結(jié)果:?s=6.00程序運(yùn)行結(jié)果:改為:1.0/2(1/2.0)或(float)1/2(1/(float)2)123編輯版舉例:已知三角形的邊長(zhǎng)a、b、c,求三角形周長(zhǎng)的一半。#inC運(yùn)算符簡(jiǎn)介算術(shù)運(yùn)算符和算術(shù)表達(dá)式賦值運(yùn)算符和賦值表達(dá)式逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式關(guān)系運(yùn)算符和表達(dá)式邏輯運(yùn)算符和表達(dá)式條件運(yùn)算符與表達(dá)式3.2運(yùn)算符與表達(dá)式124編輯版C運(yùn)算符簡(jiǎn)介3.2運(yùn)算符與表達(dá)式124編輯版1、算術(shù)運(yùn)算符

+-*/%2、關(guān)系運(yùn)算符><==>=<=!=

3、邏輯運(yùn)算符!&&||4、位運(yùn)算符<<>>~|^&5、賦值運(yùn)算符

=及其擴(kuò)展賦值運(yùn)算符6、條件運(yùn)算符?:7、逗號(hào)運(yùn)算符,8、指針運(yùn)算符*&9、求字節(jié)數(shù)運(yùn)算符sizeof10、強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符(類(lèi)型)11、分量運(yùn)算符.12、下標(biāo)運(yùn)算符[]13、其他如函數(shù)調(diào)用運(yùn)算符()分類(lèi)運(yùn)算符詳見(jiàn)254頁(yè)!C運(yùn)算符簡(jiǎn)介125編輯版1、算術(shù)運(yùn)算符

運(yùn)算符必須有運(yùn)算對(duì)象,分為3類(lèi):運(yùn)算對(duì)象是一個(gè)的,則稱(chēng)為單目運(yùn)算運(yùn)算對(duì)象是兩個(gè)的,則稱(chēng)為雙目運(yùn)算運(yùn)算對(duì)象是三個(gè)的,則稱(chēng)為三目運(yùn)算C運(yùn)算符簡(jiǎn)介126編輯版運(yùn)算符必須有運(yùn)算對(duì)象,分為3類(lèi):C運(yùn)算符簡(jiǎn)介基本算術(shù)運(yùn)算符+-*/%說(shuō)明

例:

5/3=1

-5/3=-1模運(yùn)算符或求余運(yùn)算符算術(shù)表達(dá)式用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(也稱(chēng)操作數(shù))連接起來(lái)的、符合C語(yǔ)法規(guī)則的式子。優(yōu)先級(jí)和結(jié)合性先乘除、后加減,有括號(hào)先算括號(hào)。自左至右常量、變量、函數(shù)等說(shuō)明

兩個(gè)整數(shù)相除的結(jié)果為整數(shù),舍去小數(shù)部分。當(dāng)商為負(fù)數(shù)時(shí),多采用“向零取整”的方法。求余運(yùn)算的兩側(cè)均應(yīng)為整數(shù)

5%3=2例:

a*b/c-1.5+’a’

算術(shù)運(yùn)算符和算術(shù)表達(dá)式如果一個(gè)運(yùn)算符兩側(cè)的數(shù)據(jù)類(lèi)型不同,先自動(dòng)進(jìn)行類(lèi)型轉(zhuǎn)換,使二者具有同一類(lèi)型,然后進(jìn)行運(yùn)算。127編輯版基本算術(shù)運(yùn)算符+-*/%說(shuō)明格式:前置:++i,--i(在使用i之前,使i的值加(減)1)后置:i++,i--(在使用i之后,使i的值加(減)1)自增、自減運(yùn)算符作用:自增運(yùn)算符(++)使單個(gè)變量的值增1;自減運(yùn)算符(--)使單個(gè)變量的值減1。例1i=3;……A)j=++i;j=i++;j=-i++;i=i+1i=i-1?j,i

A)j=4i=4j=3i=4j=-3++和--結(jié)合方向是“自右至左”128編輯版格式:前置:++i,--i(在使用i之前,使i的(1)自增、自減運(yùn)算是C語(yǔ)言特有的,常用于循環(huán)語(yǔ)句中,使循環(huán)控制變量加(或減)1,以及指針變量中,使指針指向下(或上)一個(gè)地址。(2)自增、自減運(yùn)算符,不能用于常量和表達(dá)式。例如,5++、--(a+b)等都是非法的。(3)++和--的結(jié)合方向?yàn)樽杂抑磷?。(P30)(4)如果對(duì)一個(gè)變量的自增/自減運(yùn)算,單獨(dú)構(gòu)成語(yǔ)句,而不是作為表達(dá)式的一部分時(shí),前置和后置運(yùn)算效果一樣,都是使變量自加1。如i++;和++i;是一樣的,都是使i加1。(5)在表達(dá)式中,連續(xù)使用同一變量進(jìn)行自增或自減運(yùn)算時(shí),很容易出錯(cuò),所以最好避免這種用法。說(shuō)明129編輯版(1)自增、自減運(yùn)算是C語(yǔ)言特有的,常用于循環(huán)語(yǔ)句中,使賦值運(yùn)算符簡(jiǎn)單賦值運(yùn)算符:=復(fù)合賦值運(yùn)算符:+=,-=,*=,/=,%=……

簡(jiǎn)單賦值運(yùn)算符的一般形式為:變量

=

表達(dá)式它的作用是將一個(gè)表達(dá)式的值賦給一個(gè)變量。

復(fù)合賦值運(yùn)算的一般格式為:變量雙目運(yùn)算符=

表達(dá)式└──┬──┘復(fù)合賦值運(yùn)算符它等價(jià)于:變量=變量雙目運(yùn)算符

(表達(dá)式)。只有當(dāng)表達(dá)式簡(jiǎn)化為一個(gè)變量或一個(gè)常數(shù)時(shí),兩邊的括號(hào)可以省略。賦值運(yùn)算符和賦值表達(dá)式130編輯版賦值運(yùn)算符簡(jiǎn)單賦值運(yùn)算符:=簡(jiǎn)單賦值運(yùn)算符的一般形式為:賦值表達(dá)式格式:<變量><賦值運(yùn)算符><表達(dá)式>賦值表達(dá)式的值:被賦變量的值類(lèi)型轉(zhuǎn)換轉(zhuǎn)換條件:當(dāng)賦值運(yùn)算符兩側(cè)的數(shù)據(jù)類(lèi)型不一致時(shí)轉(zhuǎn)換原則:轉(zhuǎn)換為被賦值變量的類(lèi)型。131編輯版賦值表達(dá)式格式:<變量><賦值運(yùn)算符><表達(dá)式>類(lèi)注意:將取值范圍小的類(lèi)型轉(zhuǎn)為取值范圍大的類(lèi)型是安全的反之是不安全的如果大類(lèi)型的值在小類(lèi)型能容納的范圍之內(nèi),則平安無(wú)事但是,浮點(diǎn)數(shù)轉(zhuǎn)為整數(shù),會(huì)丟失小數(shù)部分,非四舍五入反之,轉(zhuǎn)換后的結(jié)果必然是錯(cuò)誤的,具體結(jié)果與機(jī)器和實(shí)現(xiàn)方式有關(guān)。避免如此使用例1floata;intb;a=1.2;b=a*3;?b

b=3例2a=b=5;a=7+(b=8)?a,b

a=5;b=5a=15;b=8自右而左的結(jié)合性132編輯版注意:例1floata;intb;?bb=3例2算術(shù)自反賦值運(yùn)算符

(1)運(yùn)算規(guī)則

對(duì)象數(shù)名稱(chēng)運(yùn)算符運(yùn)算規(guī)則運(yùn)算對(duì)象運(yùn)算結(jié)果結(jié)合性雙目加賦值減賦值乘賦值除賦值模賦值+=-=*=/=%=a+=b相當(dāng)于a=a+ba-=b相當(dāng)于a=a-ba*=b相當(dāng)于a=a*ba/=b相當(dāng)于a=a/ba%=b相當(dāng)于a=a%b數(shù)值型數(shù)值型自右向左整型整型133編輯版算術(shù)自反賦值運(yùn)算符(1)運(yùn)算規(guī)則對(duì)象數(shù)名稱(chēng)運(yùn)算符運(yùn)逗號(hào)運(yùn)算符,逗號(hào)表達(dá)式表達(dá)式1,表達(dá)式2,……,表達(dá)式n說(shuō)明1、逗號(hào)表達(dá)式的求解過(guò)程為自左至右,依次計(jì)算各表達(dá)式的值,最后一個(gè)表達(dá)式的值即為整個(gè)逗號(hào)表達(dá)式的值;2、逗號(hào)運(yùn)算符的優(yōu)先級(jí)最低。3、使用逗號(hào)表達(dá)式的目的通常是想分別得到各個(gè)表達(dá)式的值,而并非一定要得到整個(gè)表達(dá)式的值。4、常用于for循環(huán)語(yǔ)句中,除此以外很少使用。逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式134編輯版逗號(hào)運(yùn)算符,逗號(hào)表達(dá)式表達(dá)式1,表達(dá)式2,……,表達(dá)例1a=3a=(3*5,a*4)?aa=12例2a=3a=3*5,a*4?aa=15表達(dá)式的值為60135編輯版例1a=3?aa=12例2a=3?aa=15135編關(guān)系運(yùn)算符及其優(yōu)先次序關(guān)系運(yùn)算符:用來(lái)對(duì)兩個(gè)數(shù)值進(jìn)行比較的比較運(yùn)算符C語(yǔ)言提供6種關(guān)系運(yùn)算符:①<

(小于)②<=(小于或等于)③>

(大于)④>=(大于或等于)

⑤==(等于)⑥!=(不等于)優(yōu)先級(jí)相同

(高)優(yōu)先級(jí)相同

(低)136編輯版關(guān)系運(yùn)算符及其優(yōu)先次序關(guān)系運(yùn)算符:優(yōu)先級(jí)相同(高)優(yōu)先級(jí)相關(guān)系、算術(shù)、賦值運(yùn)算符的優(yōu)先級(jí)算術(shù)運(yùn)算符(高)賦值運(yùn)算符(低)關(guān)系運(yùn)算符關(guān)系運(yùn)算符及其優(yōu)先次序137編輯版關(guān)系、算術(shù)、賦值運(yùn)算符的優(yōu)先級(jí)算術(shù)運(yùn)算符(高)賦c>a+b等效于

c>(a+b)a>b==c等效于

(a>b)==ca==b<c等效于

a==(b<c)a=b>c等效于

a=(b>c)關(guān)系運(yùn)算符及其優(yōu)先次序138編輯版c>a+b等效于c>(a+b)關(guān)系運(yùn)算符關(guān)系表達(dá)式關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)數(shù)值或數(shù)值表達(dá)式連接起來(lái)的式子關(guān)系表達(dá)式的值是一個(gè)邏輯值,即“真”或“假”在C的邏輯運(yùn)算中,以“1”代表“真”,以“0”代表“假”139編輯版關(guān)系表達(dá)式關(guān)系表達(dá)式139編輯版關(guān)系運(yùn)算注意:例若a=0;b=0.5;x=0.3;

則a<=x<=b的值為0例5>2>7>8在C中是允許的,值為0例‘a(chǎn)’>0結(jié)果為‘A’>100結(jié)果為10140編輯版關(guān)系運(yùn)算注意:例若a=0;b=0.5;x=0.3;關(guān)系運(yùn)算注意:例注意區(qū)分“=”與“==”inta=0,b=1;if(a=b)printf(“aequaltob”);elseprintf(“anotequaltob”);例應(yīng)避免對(duì)實(shí)數(shù)作相等或不等的判斷如1.0/3.0*3.0==1.0結(jié)果為0141編輯版關(guān)系運(yùn)算注意:例注意區(qū)分“=”與“==”例應(yīng)避邏輯運(yùn)算符及其優(yōu)先次序3種邏輯運(yùn)算符:&&(邏輯與)||(邏輯或)!(邏輯非)&&和||是雙目(元)運(yùn)算符!是一目(元)運(yùn)算符邏輯表達(dá)式用邏輯運(yùn)算符將關(guān)系表達(dá)式或其他邏輯量連接起來(lái)的式子142編輯版邏輯運(yùn)算符及其優(yōu)先次序3種邏輯運(yùn)算符:142編輯版判斷年齡在13至17歲之內(nèi)?age>=13&&age<=17判斷年齡小于12或大于65?age<12||age>65邏輯運(yùn)算符及其優(yōu)先次序143編輯版判斷年齡在13至17歲之內(nèi)?邏輯運(yùn)算符及其優(yōu)先次序143編輯邏輯運(yùn)算的真值表邏輯運(yùn)算符及其優(yōu)先次序144編輯版邏輯運(yùn)算的真值表邏輯運(yùn)算符及其優(yōu)先次序144編輯版邏輯運(yùn)算符的優(yōu)先次序!→&&→||(!為三者中最高)與其他運(yùn)算符的優(yōu)先次序!(高)算術(shù)運(yùn)算符關(guān)系運(yùn)算符

&&和||賦值運(yùn)算符(低)邏輯運(yùn)算符及其優(yōu)先次序145編輯版邏輯運(yùn)算符的優(yōu)先次序!邏輯表達(dá)式邏輯表達(dá)式的值應(yīng)該是邏輯量“真”或“假”編譯系統(tǒng)在表示邏輯運(yùn)算結(jié)果時(shí)以數(shù)值1代表“真”,以0代表“假”但在判斷一個(gè)量是否為“真”時(shí)以0代表“假”,以非0代表“真”注意:將一個(gè)非零的數(shù)值認(rèn)作為“真”146編輯版邏輯表達(dá)式邏輯表達(dá)式的值應(yīng)該是邏輯量“真”或“假”146編輯(1)若a=4,則!a的值為0(2)若a=4,b=5,則a&&b的值為1(3)a和b值分別為4和5,則a||b的值為1(4)a和b值分別為4和5,則!a||b的值為1(5)4&&0||2的值為1邏輯表達(dá)式147編輯版(1)若a=4,則!a的值為0邏輯表達(dá)式147編輯版修改后的邏輯運(yùn)算真值表邏輯表達(dá)式148編輯版修改后的邏輯運(yùn)算真值表邏輯表達(dá)式148編輯版判別某一年是否閏年,用邏輯表達(dá)式表示閏年的條件是符合下面二者之一:①能被4整除,但不能被100整除,如2008②能被400整除,如2000(year%4==0&&year100!=0)||year%400==0如果表達(dá)式值為1,則閏年;否則為非閏年邏輯表達(dá)式149編輯版判別某一年是否閏年,用邏輯表達(dá)式表示邏輯表達(dá)式149編輯版條件運(yùn)算符和條件表達(dá)式有一種if語(yǔ)句,當(dāng)被判別的表達(dá)式的值為“真”或“假”時(shí),都執(zhí)行一個(gè)賦值語(yǔ)句且向同一個(gè)變量賦值如:if(a>b)max=a;elsemax=b;max=(a>b)?a

:b;條件運(yùn)算符150編輯版條件運(yùn)算符和條件表達(dá)式有一種if語(yǔ)句,當(dāng)被判別的表達(dá)式的值為條件運(yùn)算符和條件表達(dá)式有一種if語(yǔ)句,當(dāng)被判別的表達(dá)式的值為“真”或“假”時(shí),都執(zhí)行一個(gè)賦值語(yǔ)句且向同一個(gè)變量賦值如:if(a>b)max=a;elsemax=b;max=(a>b)?a

:b;條件表達(dá)式151編輯版條件運(yùn)算符和條件表達(dá)式有一種if語(yǔ)句,當(dāng)被判別的表達(dá)式的值為條件表達(dá)式的一般形式為表達(dá)式1?表達(dá)式2:

表達(dá)式3條件運(yùn)算符和條件表達(dá)式條件運(yùn)算符的執(zhí)行順序:求解表達(dá)式1若為非0(真)則求解表達(dá)式2,

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論