版權(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ì)》第1章程序設(shè)計(jì)基礎(chǔ)第2章順序結(jié)構(gòu)程序設(shè)計(jì)第3章選擇結(jié)構(gòu)程序設(shè)計(jì)第4章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)第5章數(shù)組第6章函數(shù)第7章指針第8章自定義數(shù)據(jù)類(lèi)型第9章文件全套可編輯PPT課件
本課件是可編輯的正常PPT課件程序設(shè)計(jì)基礎(chǔ)本課件是可編輯的正常PPT課件目
錄1.1
信息存儲(chǔ)和表示1.1.1
數(shù)制及其轉(zhuǎn)換1.1.2
存儲(chǔ)單位1.1.3
數(shù)值數(shù)據(jù)的表示和存儲(chǔ)1.1.4
ASCII碼1.2
程序和編程語(yǔ)言1.2.1程序與程序設(shè)計(jì)語(yǔ)言1.2.2算法1.2.3C語(yǔ)言概述本課件是可編輯的正常PPT課件1.1.1數(shù)制及其轉(zhuǎn)換數(shù)制也稱計(jì)數(shù)制,是一種用數(shù)碼和位權(quán)來(lái)表示數(shù)值的方法,計(jì)算機(jī)上常用的數(shù)制有二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制。本課件是可編輯的正常PPT課件1.1.1數(shù)制及其轉(zhuǎn)換(1)二進(jìn)制、八進(jìn)制和十六進(jìn)制?十進(jìn)制二、八和十六進(jìn)制轉(zhuǎn)為十進(jìn)制使用按權(quán)展開(kāi)的方法,即將組成數(shù)值的各個(gè)數(shù)碼乘以相應(yīng)位置上的權(quán)值,然后求和,如:(10110.011)2=0*20+1*21+1*22+0*23+1*24+0*2-1+1*2-2+1*2-3=22.375(54.76)8=4*80+5*81+7*8-1+6*8-2=44.96875(4A.3)16=A*160+4*161+3*16-1=74.1875本課件是可編輯的正常PPT課件1.1.1數(shù)制及其轉(zhuǎn)換(2)十進(jìn)制?R進(jìn)制(R代表二進(jìn)制、八進(jìn)制和十六進(jìn)制)整數(shù)部分:十進(jìn)制整數(shù)轉(zhuǎn)換為R進(jìn)制整數(shù),采用不斷除以R取余法,一直除到商為零為止,然后再把所有余數(shù)逆序排列,就可得到對(duì)應(yīng)的R進(jìn)制整數(shù)。小數(shù)部分:十進(jìn)制小數(shù)轉(zhuǎn)換為R進(jìn)制小數(shù),采用乘以2取整法。即將十進(jìn)制數(shù)的小數(shù)部分反復(fù)乘以2,直到?jīng)]有小數(shù)或達(dá)到指定的精度為止。然后再把取出的各個(gè)整數(shù)正序排列,就可得到對(duì)應(yīng)的R進(jìn)制小數(shù)。
本課件是可編輯的正常PPT課件1.1.1數(shù)制及其轉(zhuǎn)換【例】將十進(jìn)制數(shù)40.56轉(zhuǎn)換為二進(jìn)制40.56=101000.10001B本課件是可編輯的正常PPT課件1.1.2
存儲(chǔ)單位1.位(bit)位也稱為比特,是計(jì)算機(jī)存儲(chǔ)數(shù)據(jù)的最小單位,用小寫(xiě)b表示。一位只能存儲(chǔ)二進(jìn)制的一個(gè)0或者一個(gè)1。2.字節(jié)(Byte)字節(jié)是計(jì)算機(jī)存儲(chǔ)數(shù)據(jù)的基本單位,用大寫(xiě)B(tài)表示,1B=8b。1KB=1024B=210B1MB=210KB=220B1GB=210MB=220KB=230B1TB=210GB=220MB=230KB=240B本課件是可編輯的正常PPT課件1.1.3
數(shù)值數(shù)據(jù)的表示和存儲(chǔ)1.機(jī)器數(shù)把正負(fù)號(hào)數(shù)碼化的數(shù)稱為機(jī)器數(shù)。正號(hào)用“0”表示,負(fù)號(hào)用“1”表示。通常把一個(gè)數(shù)值所分配的存儲(chǔ)空間的最高位用來(lái)存儲(chǔ)數(shù)值的符號(hào),稱為符號(hào)位。2.定點(diǎn)數(shù)定點(diǎn)數(shù)分為定點(diǎn)整數(shù)和定點(diǎn)小數(shù)兩類(lèi)。定點(diǎn)整數(shù)就是純整數(shù),即小數(shù)點(diǎn)的位置約定在最低數(shù)值位的后面。定點(diǎn)整數(shù)又分為無(wú)符號(hào)整數(shù)和帶符號(hào)整數(shù)。定點(diǎn)小數(shù)即純小數(shù),即小數(shù)點(diǎn)的位置約定在符號(hào)位的后面,最高數(shù)值位的前面。定點(diǎn)小數(shù)都是帶符號(hào)的。本課件是可編輯的正常PPT課件1.1.3
數(shù)值數(shù)據(jù)的表示和存儲(chǔ)【例】定點(diǎn)數(shù)的存儲(chǔ)舉例不同存儲(chǔ)空間的整數(shù)表示的數(shù)值范圍本課件是可編輯的正常PPT課件1.1.3
數(shù)值數(shù)據(jù)的表示和存儲(chǔ)3.浮點(diǎn)數(shù)浮點(diǎn)數(shù)既有整數(shù)部分又有小數(shù)部分,其規(guī)格化表示方法如下所示:尾數(shù)和階碼都有正負(fù)之分,尾數(shù)的符號(hào)稱為數(shù)符,階碼的符號(hào)稱為階符。尾數(shù)最高有效數(shù)值位為1(二進(jìn)制表示),尾數(shù)越長(zhǎng),所能表示的數(shù)值精度越高。階碼必須是整數(shù),階碼越大,表達(dá)的數(shù)值范圍越大。例如:101.11B=0.10111×23
-101.11B=-0.10111×2-3
本課件是可編輯的正常PPT課件1.1.3
數(shù)值數(shù)據(jù)的表示和存儲(chǔ)3.浮點(diǎn)數(shù)浮點(diǎn)數(shù)在計(jì)算機(jī)中的存儲(chǔ)形式:
相比于定點(diǎn)小數(shù),浮點(diǎn)數(shù)可以表達(dá)更大范圍的數(shù)值,所以帶小數(shù)點(diǎn)的數(shù)一般采用浮點(diǎn)型數(shù)的形式存儲(chǔ)。分配不同存儲(chǔ)空間的浮點(diǎn)型數(shù)本課件是可編輯的正常PPT課件1.1.3
數(shù)值數(shù)據(jù)的表示和存儲(chǔ)4.原碼原碼和機(jī)器數(shù)一樣?!纠壳骕=20,Y=-21的原碼,假設(shè)分配8bit的存儲(chǔ)空間。原碼最大的好處是簡(jiǎn)單直觀,但是原碼的符號(hào)位不能直接參與運(yùn)算,必須和數(shù)值位分開(kāi)單獨(dú)考慮,否則會(huì)影響計(jì)算結(jié)果,如:X原+Y原=00010100+10010101=10101001(十進(jìn)制是-41)為了能使符號(hào)位直接參與運(yùn)算,計(jì)算機(jī)引入了反碼和補(bǔ)碼的概念。本課件是可編輯的正常PPT課件1.1.3
數(shù)值數(shù)據(jù)的表示和存儲(chǔ)5.反碼反碼通常作為原碼和補(bǔ)碼的中間過(guò)渡碼。正數(shù)的反碼和原碼一致。負(fù)數(shù)的反碼是把原碼的數(shù)值位按位取反,但符號(hào)位保持不變。【例】求X=20,Y=-21的反碼,假設(shè)分配8bit的存儲(chǔ)空間。本課件是可編輯的正常PPT課件1.1.3
數(shù)值數(shù)據(jù)的表示和存儲(chǔ)6.補(bǔ)碼補(bǔ)碼是計(jì)算機(jī)把減法運(yùn)算轉(zhuǎn)化為加法運(yùn)算的關(guān)鍵編碼。正數(shù)的原碼、反碼和補(bǔ)碼是一樣的,負(fù)數(shù)的補(bǔ)碼是在反碼基礎(chǔ)上末位加“1”,符號(hào)位不變?!纠壳骕=20,Y=-21的補(bǔ)碼,假設(shè)分配8bit的存儲(chǔ)空間。本課件是可編輯的正常PPT課件1.1.4
ASCII碼ASCII碼(美國(guó)信息交換標(biāo)準(zhǔn)碼)分為標(biāo)準(zhǔn)ASCII碼和擴(kuò)展ASCII碼兩種。1.標(biāo)準(zhǔn)ASCII碼標(biāo)準(zhǔn)ASCII碼用7位二進(jìn)制表示一個(gè)字符,但實(shí)際分配了一個(gè)字節(jié)(8位)的存儲(chǔ)空間,其最高位置為0。標(biāo)準(zhǔn)ASCII碼可表示128個(gè)不同字符。在C語(yǔ)言編程中,很多操作都是以ASCII碼為基礎(chǔ)的,如字符的比較。本課件是可編輯的正常PPT課件1.1.4
ASCII碼2.擴(kuò)展ASCII碼128個(gè)ASCII碼字符可以滿足英語(yǔ)處理的需要,但是還有一些非英語(yǔ)系的字符沒(méi)法表示。于是,一些歐洲國(guó)家就將字節(jié)中閑置的最高位置1,又編入了128個(gè)新的符號(hào)。使用8位二進(jìn)制數(shù)編碼的ASCII碼稱為擴(kuò)展ASCII碼。擴(kuò)展ASCII碼的二進(jìn)制最高位是1,其范圍為128~255。無(wú)論哪個(gè)國(guó)家的ASCII碼字符集,前128個(gè)一定是一樣的,都是基本ASCII碼中的字符,后128個(gè)不同國(guó)家有所不同。ASCII碼的局限在于只能處理英語(yǔ),對(duì)更多其他語(yǔ)言依然無(wú)能為力。因此,現(xiàn)在的軟件系統(tǒng)大多采用Unicode編碼,特別是與ASCII碼向下兼容的UTF-8。本課件是可編輯的正常PPT課件1.2.1程序與程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言也稱為編程語(yǔ)言,具有特定的語(yǔ)法規(guī)則,能被計(jì)算機(jī)接受和處理,在人和計(jì)算機(jī)之間傳遞信息。程序設(shè)計(jì)語(yǔ)言經(jīng)歷了機(jī)器語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言3個(gè)階段。機(jī)器語(yǔ)言是二進(jìn)制形式,能被計(jì)算機(jī)直接識(shí)別和執(zhí)行。匯編語(yǔ)言使用一些英文縮寫(xiě)、數(shù)字和字母取代二進(jìn)制指令,方便了程序的編寫(xiě)。本課件是可編輯的正常PPT課件1.2.1程序與程序設(shè)計(jì)語(yǔ)言1.機(jī)器語(yǔ)言機(jī)器語(yǔ)言是二進(jìn)制形式,能被計(jì)算機(jī)直接識(shí)別和執(zhí)行。機(jī)器語(yǔ)言程序中的每一條指令都是一組二進(jìn)制代碼,由操作碼和操作數(shù)組成,操作碼說(shuō)明了指令的功能,操作數(shù)是參與運(yùn)算的數(shù)值或存儲(chǔ)單元地址。如:10000110000000111000101000000100機(jī)器語(yǔ)言程序能被計(jì)算機(jī)直接執(zhí)行,不需要任何翻譯,運(yùn)算效率高。但是機(jī)器指令不好記憶,直觀性差,容易出錯(cuò)且不易查錯(cuò)修改,而且難移植。本課件是可編輯的正常PPT課件1.2.1程序與程序設(shè)計(jì)語(yǔ)言2.匯編語(yǔ)言
匯編語(yǔ)言使用一些英文縮寫(xiě)、數(shù)字和字母取代二進(jìn)制指令,方便了程序的編寫(xiě),如:MOVE A 3ADD A 4匯編語(yǔ)言使程序編寫(xiě)更容易,但是執(zhí)行時(shí)必須先翻譯成二進(jìn)制,這個(gè)過(guò)程稱為匯編。匯編語(yǔ)言編寫(xiě)的程序稱為源程序,翻譯后的二進(jìn)制程序稱為目標(biāo)程序。匯編語(yǔ)言本質(zhì)上仍然是面向機(jī)器的語(yǔ)言,使用起來(lái)仍然比較繁瑣費(fèi)時(shí),通用性也比較差。本課件是可編輯的正常PPT課件1.2.1程序與程序設(shè)計(jì)語(yǔ)言3.高級(jí)語(yǔ)言
高級(jí)語(yǔ)言與自然語(yǔ)言相近,而且與硬件分離,具有使用簡(jiǎn)單、通用性強(qiáng),兼容性好,便于移植的優(yōu)點(diǎn),如C、C++、C#、VC、JAVA、Python等。高級(jí)語(yǔ)言程序也必須翻譯成二進(jìn)制,計(jì)算機(jī)才能識(shí)別和執(zhí)行。這種“翻譯”有兩種方式:編譯和解釋。編譯方式是使用編譯程序把高級(jí)語(yǔ)言源程序整個(gè)翻譯成與源程序等價(jià)的二進(jìn)制目標(biāo)程序,然后計(jì)算機(jī)再執(zhí)行該目標(biāo)程序,如C、C++、C#、VC等。解釋方式是通過(guò)解釋程序?qū)υ闯绦蛑鹁浞治觥⒎g成二進(jìn)制代碼,解釋一句,計(jì)算機(jī)執(zhí)行一句,如JAVA、Python等。注意,解釋方式不產(chǎn)生目標(biāo)程序。本課件是可編輯的正常PPT課件1.2.2算法算法是對(duì)特定問(wèn)題求解步驟的一種描述。算法應(yīng)該具有以下特性:確定性:算法中的每一步必須無(wú)二義性,即有精確的定義。有窮性:算法必須能在經(jīng)過(guò)有限步驟后結(jié)束。可行性:算法中的每一步必須能在有限時(shí)間內(nèi)完成,也稱為有效性。輸入:算法必須要有輸入,輸入可以在算法中直接給出(也稱為0個(gè)輸入),也可以在算法運(yùn)行時(shí)額外提供。輸出:算法必須要有輸出,也就是說(shuō)算法執(zhí)行必須要有結(jié)果,沒(méi)有輸出的算法是無(wú)意義的。本課件是可編輯的正常PPT課件1.2.2算法
本課件是可編輯的正常PPT課件1.2.2算法1.算法的評(píng)價(jià)標(biāo)準(zhǔn)空間復(fù)雜度指算法執(zhí)行需要消耗的內(nèi)存空間,可以使用算法執(zhí)行過(guò)程中創(chuàng)建的變量個(gè)數(shù)來(lái)衡量??臻g復(fù)雜度一般只有兩種情況:O(1):創(chuàng)建了常數(shù)個(gè)變量,如前面程序段。O(n):創(chuàng)建了n個(gè)變量。在計(jì)算機(jī)發(fā)展的早期,由于存儲(chǔ)空間比較小,所以算法很重視空間復(fù)雜度。但隨著計(jì)算機(jī)存儲(chǔ)空間越來(lái)越大,時(shí)間復(fù)雜度變得更重要。本課件是可編輯的正常PPT課件1.2.2算法2.算法的邏輯結(jié)構(gòu)任何復(fù)雜的算法,都可以由順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)這三種基本結(jié)構(gòu)構(gòu)成。順序結(jié)構(gòu):在順序結(jié)構(gòu)中,組成算法的若干步驟按照從上到下的順序依次執(zhí)行,直至結(jié)束。分支結(jié)構(gòu):分支結(jié)構(gòu)也叫條件結(jié)構(gòu)、選擇結(jié)構(gòu)或判斷結(jié)構(gòu),需要先做判斷,然后根據(jù)判斷結(jié)果再?zèng)Q定執(zhí)行哪些操作。循環(huán)結(jié)構(gòu):在算法設(shè)計(jì)過(guò)程中,需要重復(fù)執(zhí)行某一組步驟的結(jié)構(gòu)稱為循環(huán)結(jié)構(gòu)。需要反復(fù)執(zhí)行的步驟稱為循環(huán)體。循環(huán)體不能一直重復(fù)執(zhí)行,必須要在某一刻終止,不能終止的循環(huán)稱為死循環(huán)。三種基本結(jié)構(gòu)可以并列、可以相互包含,但不允許交叉,即不允許從一個(gè)結(jié)構(gòu)直接轉(zhuǎn)到另一個(gè)結(jié)構(gòu)的內(nèi)部去。遵循這種原則構(gòu)筑的算法,結(jié)構(gòu)清晰,易于正確性驗(yàn)證,易于糾錯(cuò),稱為結(jié)構(gòu)化方法。遵循這種原則的程序,就是結(jié)構(gòu)化程序。本課件是可編輯的正常PPT課件1.2.2算法3.算法的描述方法算法可采用多種方法描述,常用的有自然語(yǔ)言、偽代碼、流程圖和計(jì)算機(jī)語(yǔ)言(如C語(yǔ)言)。自然語(yǔ)言方法就是用人們?nèi)粘=涣魇褂玫恼Z(yǔ)言來(lái)描述算法。偽代碼是一種非正式的,類(lèi)似于英語(yǔ)結(jié)構(gòu)的算法描述語(yǔ)言。它介于自然語(yǔ)言和計(jì)算機(jī)語(yǔ)言之間,不拘泥于具體實(shí)現(xiàn),重點(diǎn)在于功能的描述。偽代碼的使用有一些簡(jiǎn)單的約定。本課件是可編輯的正常PPT課件1.2.2算法3.算法的描述方法流程圖又稱框圖,是算法的一種圖形化表示。它采用一些圖框、線條以及文字描述算法從開(kāi)始到結(jié)束的流程,具有直觀、清晰、更易理解的特點(diǎn)。傳統(tǒng)流程圖通過(guò)流程線描述算法的進(jìn)程,當(dāng)算法比較復(fù)雜的時(shí)候,流程線就會(huì)很多,看起來(lái)會(huì)比較亂。順序結(jié)構(gòu)
分支結(jié)構(gòu)圖
當(dāng)型循環(huán)
直到型循環(huán)本課件是可編輯的正常PPT課件1.2.2算法3.算法的描述方法N-S流程圖去掉了傳統(tǒng)流程圖中帶箭頭的流程線,全部算法以一個(gè)大的矩形框表示,該框內(nèi)還可以嵌套一些從屬于它的小矩形框。順序結(jié)構(gòu)
分支結(jié)構(gòu)圖
當(dāng)型循環(huán)
直到型循環(huán)本課件是可編輯的正常PPT課件1.2.3C語(yǔ)言概述1.C語(yǔ)言的產(chǎn)生和發(fā)展C語(yǔ)言誕生于美國(guó)貝爾實(shí)驗(yàn)室,由BCPL語(yǔ)言演變而來(lái)。1970年,貝爾實(shí)驗(yàn)室的KenHompson在BCPL語(yǔ)言的基礎(chǔ)上設(shè)計(jì)出B語(yǔ)言,B語(yǔ)言又進(jìn)一步發(fā)展成為C語(yǔ)言。ANSIC標(biāo)準(zhǔn)(C89標(biāo)準(zhǔn))?ISOC標(biāo)準(zhǔn)(C90標(biāo)準(zhǔn))?C99標(biāo)準(zhǔn)?C11標(biāo)準(zhǔn)?C18標(biāo)準(zhǔn)本課件是可編輯的正常PPT課件1.2.3C語(yǔ)言概述2.C語(yǔ)言的特點(diǎn)(1)C語(yǔ)言是一種結(jié)構(gòu)化的編程語(yǔ)言,通過(guò)函數(shù)實(shí)現(xiàn)模塊化編程,層次清晰,易于調(diào)試、維護(hù)和移植。(2)C語(yǔ)言包含豐富的數(shù)據(jù)類(lèi)型和運(yùn)算符:不僅有傳統(tǒng)的整型、浮點(diǎn)型和字符型,還可以在這些傳統(tǒng)類(lèi)型的基礎(chǔ)上構(gòu)造復(fù)雜數(shù)據(jù)類(lèi)型,如數(shù)組、結(jié)構(gòu)體等。(3)C語(yǔ)言引入了指針,可以直接操作硬件;能進(jìn)行位(bit)操作,可以實(shí)現(xiàn)匯編語(yǔ)言的大部分功能,把高級(jí)語(yǔ)言的優(yōu)點(diǎn)和低級(jí)語(yǔ)言的實(shí)用性完美結(jié)合起來(lái)。(4)C語(yǔ)言功能強(qiáng)大,程序運(yùn)行效率高,幾乎所有的操作系統(tǒng)內(nèi)核都用到了C語(yǔ)言,特別適用于底層開(kāi)發(fā),包括各種系統(tǒng)軟件、嵌入式系統(tǒng)等。本課件是可編輯的正常PPT課件1.2.3C語(yǔ)言概述3.C程序開(kāi)發(fā)的基本步驟本課件是可編輯的正常PPT課件1.2.3C語(yǔ)言概述4.C語(yǔ)言的集成開(kāi)發(fā)環(huán)境IDE所謂集成開(kāi)發(fā)環(huán)境(IDE)是集源程序編寫(xiě)、編譯、連接、測(cè)試運(yùn)行于一體的圖形用戶界面(GUI)的開(kāi)發(fā)環(huán)境?,F(xiàn)在常用的IDE有VisualStudio、VisualC++6.0和CodeBlocks。本課件是可編輯的正常PPT課件謝謝觀看本課件是可編輯的正常PPT課件順序結(jié)構(gòu)程序設(shè)計(jì)本課件是可編輯的正常PPT課件目
錄2.1
初始C程序2.2標(biāo)識(shí)符2.1.1C語(yǔ)言的字符集2.1.2C語(yǔ)言的標(biāo)識(shí)符2.3
C語(yǔ)言的數(shù)據(jù)類(lèi)型2.3.1整型2.3.2字符型2.3.3浮點(diǎn)型2.3.4常量2.3.5變量2.3.6常變量const本課件是可編輯的正常PPT課件目
錄2.4運(yùn)算符與表達(dá)式2.4.1
算術(shù)運(yùn)算符2.4.2
位運(yùn)算符2.4.3賦值運(yùn)算符2.4.4逗號(hào)運(yùn)算符2.4.5求字節(jié)長(zhǎng)度運(yùn)算符2.4.6類(lèi)型轉(zhuǎn)換2.5
數(shù)據(jù)的輸入和輸出2.5.1格式輸出函數(shù)printf()2.5.2格式輸入函數(shù)scanf()2.5.3字符輸入輸出函數(shù)putchar()和getchar()2.6基本C語(yǔ)句本課件是可編輯的正常PPT課件2.1初始C程序【例2-1】Tom同學(xué)的數(shù)學(xué)和英語(yǔ)成績(jī)分別為76分和86分,編寫(xiě)程序求Tom同學(xué)的總成績(jī)。程序如下:#include<stdio.h>#include<stdlib.h>intmain(){intMath,English,Sum;
/*定義3個(gè)整型變量*/Math=76;English=86;Sum=Math+English;printf("Tom的總分:%d",Sum); //使用函數(shù)printf()輸出總分return0;}本課件是可編輯的正常PPT課件2.1初始C程序(1)預(yù)處理命令。預(yù)處理命令在所有函數(shù)的外面,通常在源文件的最前面。預(yù)處理命令以#開(kāi)頭,每條命令獨(dú)占一行,結(jié)尾沒(méi)有分號(hào)。(2)函數(shù)main()函數(shù)稱為主函數(shù),它是所有C程序執(zhí)行的入口。一個(gè)C程序可以包含很多個(gè)函數(shù),但只能有一個(gè)main()函數(shù)。(3)注釋注釋有兩種形式://......和/*......*/。本課件是可編輯的正常PPT課件2.1初始C程序C程序的書(shū)寫(xiě)還有一些約定成俗的規(guī)范,如:(1)代碼的縮進(jìn)和對(duì)齊。同一級(jí)別的代碼要對(duì)齊,不同級(jí)別的代碼要有縮進(jìn)??s進(jìn)一般通過(guò)tab鍵實(shí)現(xiàn)。(2)()和{}要一次性成對(duì)書(shū)寫(xiě),以免遺漏。(3){和}一般各占一行且要對(duì)齊。(4)不同模塊之間添加空行隔離,這樣程序結(jié)構(gòu)更清晰。(5)關(guān)鍵字后要留空格,如intMath、if(x>5)等。(6)函數(shù)名后緊跟(),中間不要留空格,如printf()。(7)一條C語(yǔ)句占一行,盡量不要把多條C語(yǔ)句放在同一行。(8)適當(dāng)?shù)淖⑨層兄诔绦虻睦斫?,但也不可過(guò)多。本課件是可編輯的正常PPT課件2.2.1C語(yǔ)言的字符集C語(yǔ)言中允許使用的所有符號(hào)稱為C語(yǔ)言的字符集,其范圍是ASCII字符集,具體包括以下幾類(lèi):(1)大小寫(xiě)英文字母:A~Z,a~z。(2)數(shù)字:0~9。(3)鍵盤(pán)符號(hào):鍵盤(pán)上除英文字母和數(shù)字以外的其他符號(hào)。(4)轉(zhuǎn)義字符:由反斜線(\)加若干字符組成,作用是將反斜線后面的字符轉(zhuǎn)換成另外的含義,如“\n”代表的含義就不再是字母n,而是換行。本課件是可編輯的正常PPT課件表2.1C語(yǔ)言中的轉(zhuǎn)義字符本課件是可編輯的正常PPT課件2.2.2C語(yǔ)言的標(biāo)識(shí)符標(biāo)識(shí)符就是一個(gè)名字,用來(lái)標(biāo)識(shí)變量、常量和函數(shù)等。C語(yǔ)言的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線組成,且第一個(gè)字符必須為字母或下劃線。特別注意:C語(yǔ)言的標(biāo)識(shí)符嚴(yán)格區(qū)分大小寫(xiě),如Math和math就是兩個(gè)不同的標(biāo)識(shí)符。C語(yǔ)言把標(biāo)識(shí)符分為三類(lèi):關(guān)鍵字預(yù)定義標(biāo)識(shí)符用戶自定義標(biāo)識(shí)符本課件是可編輯的正常PPT課件1.關(guān)鍵字關(guān)鍵字是C語(yǔ)言中有特殊含義的標(biāo)識(shí)符,也叫保留字。本課件是可編輯的正常PPT課件2.
預(yù)定義標(biāo)識(shí)符預(yù)定義標(biāo)識(shí)符是指程序預(yù)處理階段使用的關(guān)鍵字。預(yù)定義標(biāo)識(shí)符包括預(yù)處理命令、系統(tǒng)類(lèi)庫(kù)名、系統(tǒng)常量名、系統(tǒng)函數(shù)名等。預(yù)處理命令一般在源文件的最前面,使用時(shí)都以#開(kāi)頭,每條命令獨(dú)占一行,結(jié)尾不加分號(hào)。表2.3預(yù)處理命令本課件是可編輯的正常PPT課件3.
用戶自定義標(biāo)識(shí)符用戶自定義標(biāo)識(shí)符,使用時(shí)需要注意以下幾點(diǎn):(1)組成字符要合法:英文字母、數(shù)字、下劃線,且第一個(gè)字符只能是字母或下劃線。(2)不能是關(guān)鍵字。(3)預(yù)定義標(biāo)識(shí)符可以作為用戶標(biāo)識(shí)符使用,只是這樣會(huì)失去系統(tǒng)規(guī)定的原意。(4)標(biāo)識(shí)符長(zhǎng)度沒(méi)有統(tǒng)一要求,由編譯系統(tǒng)決定。如果長(zhǎng)度超過(guò)系統(tǒng)規(guī)定長(zhǎng)度,則超出長(zhǎng)度的字符無(wú)效。(5)命名時(shí)盡量“顧名思義”,即看見(jiàn)標(biāo)識(shí)符名就可大體明白它代表的含義。(6)時(shí)刻注意,C語(yǔ)言區(qū)分大小寫(xiě),所以SUM和Sum是不同的標(biāo)識(shí)符。average、student、area_1、_123、IF、Int123、if、Sum$、—123本課件是可編輯的正常PPT課件2.3C語(yǔ)言的數(shù)據(jù)類(lèi)型本課件是可編輯的正常PPT課件2.3.1整型
表2.4整型的存儲(chǔ)空間及數(shù)值范圍特別說(shuō)明:int類(lèi)型在不同系統(tǒng)中所占的字節(jié)數(shù)不同,在64位機(jī)中一般占4B。可以使用sizeof(int)查看該數(shù)據(jù)類(lèi)型在當(dāng)前機(jī)器上所占的存儲(chǔ)空間。本課件是可編輯的正常PPT課件2.3.2字符型字符型數(shù)據(jù)只有一種:char類(lèi)型,用來(lái)存儲(chǔ)ASCII碼表中的字符。char類(lèi)型占1B的存儲(chǔ)空間,能表示-128~127之間的整數(shù)。因?yàn)樵趦?nèi)存中存儲(chǔ)的都是用字符的ASCII值,而字符的ASCII值是一個(gè)整數(shù),所以char類(lèi)型也可以認(rèn)為是一種整型。本課件是可編輯的正常PPT課件2.3.3浮點(diǎn)型表2.5浮點(diǎn)型數(shù)據(jù)的存儲(chǔ)空間及數(shù)值范圍特別說(shuō)明:(1)浮點(diǎn)型數(shù)據(jù)在計(jì)算機(jī)內(nèi)用科學(xué)計(jì)數(shù)法表示,數(shù)值范圍由指數(shù)的位數(shù)決定。(2)有效數(shù)字也稱為精度,指能準(zhǔn)確顯示的數(shù)字位數(shù),比如1.23456的有效數(shù)字就是6位。
有效數(shù)字是由尾數(shù)的位數(shù)決定的。(3)longdouble類(lèi)型所占的字節(jié)數(shù)與機(jī)器有關(guān),不一定是16B,使用時(shí)可通過(guò)sizeof(long
double)查看。(4)浮點(diǎn)型數(shù)的存儲(chǔ)和計(jì)算都是近似值,所以浮點(diǎn)型數(shù)一般不判斷“相等”,而是判斷是否
接近。本課件是可編輯的正常PPT課件2.3.4常量常量就是程序運(yùn)行過(guò)程中值保持不變的量。常量的存儲(chǔ)空間是在編譯的時(shí)候由系統(tǒng)分配的。整型常量浮點(diǎn)型常量字符常量字符串常量符號(hào)常量本課件是可編輯的正常PPT課件1.整型常量表2.6整型數(shù)據(jù)的四種表示表2.7不同整型常量的后綴表示特別說(shuō)明:(1)后綴u只針對(duì)十進(jìn)制數(shù);二進(jìn)制、八進(jìn)制和十六進(jìn)制本身就是無(wú)符號(hào)數(shù),不需要加后綴u。(2)后綴u可以與其他后綴相結(jié)合表示各種無(wú)符號(hào)整型,如無(wú)符號(hào)長(zhǎng)整型的后綴為ul或UL;無(wú)符號(hào)長(zhǎng)長(zhǎng)整型的后綴為ull或ULL。本課件是可編輯的正常PPT課件2.
浮點(diǎn)型常量浮點(diǎn)型數(shù)據(jù)只能用十進(jìn)制表示,可以是十進(jìn)制小數(shù)形式,也可以是指數(shù)形式,即科學(xué)計(jì)數(shù)法。當(dāng)浮點(diǎn)型常量用指數(shù)形式表示時(shí),整個(gè)數(shù)值由尾數(shù)、字母e(或E)和指數(shù)三部分組成,如2.34E-5,2.34E5(或2.34E+5)。表2.8浮點(diǎn)型常量的表示特別說(shuō)明:(1)浮點(diǎn)型常量只有十進(jìn)制一種形式,所以無(wú)前綴。(2)浮點(diǎn)型常量用指數(shù)形式表示時(shí),字母e(或E)的前后都要有數(shù)字,且字母和數(shù)字之間不能有空格;e后面的數(shù)字(即指數(shù))必須是整數(shù)。E5,3.14.15E,E0.5本課件是可編輯的正常PPT課件3.
字符常量字符常量是用一對(duì)單引號(hào)括起來(lái)的普通字符(只能一個(gè))或轉(zhuǎn)義字符。每個(gè)字符常量在內(nèi)存中只占用1個(gè)字節(jié)的存儲(chǔ)空間。'a'、'\n'、'\101'、'\x41'、'7'、'$'、'\''、'\\''abc'、"a"本課件是可編輯的正常PPT課件4.
字符串常量字符串常量是用一對(duì)雙引號(hào)括起來(lái)的一串字符。字符串常量中的若干字符在內(nèi)存中占用一塊連續(xù)的存儲(chǔ)空間,并且以'\0'作為字符串的結(jié)束標(biāo)志。所以"a"雖然只包含一個(gè)字符,但在內(nèi)存中卻占2個(gè)字節(jié)的存儲(chǔ)空間,字符串結(jié)束標(biāo)志'\0'要占一個(gè)。"a","Ilikecat","12345678","ab\123",""本課件是可編輯的正常PPT課件5.
符號(hào)常量符號(hào)常量就是用一個(gè)標(biāo)識(shí)符來(lái)代表一個(gè)常量。符號(hào)常量在使用之前必須要先定義,其定義形式為:#define標(biāo)識(shí)符常量值【例2-2】圓的半徑為3厘米,編寫(xiě)程序求圓的面積和周長(zhǎng)。#include<stdio.h>#include<stdlib.h>#definePI3.1415
intmain(){intR=3;floatArea,Cir;Area=PI*R*R;Cir=2*PI*R;printf("theAreaoftheCircle:%f\n",Area);printf("Thecircumferenceofthecircle:%f\n",Cir);return0;}本課件是可編輯的正常PPT課件2.3.5變量程序運(yùn)行過(guò)程中,值可以改變的量稱為變量,其存儲(chǔ)空間是在程序運(yùn)行過(guò)程中由系統(tǒng)分配的。變量在使用之前必須先定義,定義格式如下:類(lèi)型說(shuō)明符變量名表如:intx; shorty; charch; floata,b,c; longdoubles; 本課件是可編輯的正常PPT課件2.3.5變量在程序中使用變量稱為變量的引用。變量使用前應(yīng)該先賦值,可以通過(guò)賦值語(yǔ)句,如“p=(a+b+c)/2;”;也可以在變量定義的同時(shí)給它賦值,這稱為變量的初始化?!纠?-3】求三角形的面積。#include<stdio.h>#include<stdlib.h>#include<math.h> //包含sqrt()等各種數(shù)學(xué)函數(shù)的頭文件intmain(){inta=3,b=4,c=5;floatp,Area;p=(a+b+c)/2;Area=sqrt(p*(p-a)*(p-b)*(p-c));printf("theareaofthetriangleis:%f",Area);return0;} 本課件是可編輯的正常PPT課件2.3.5變量使用注意事項(xiàng)特別注意:變量賦值時(shí),要類(lèi)型相符,且不能超過(guò)該類(lèi)型所能表達(dá)的數(shù)值范圍。賦值超出類(lèi)型能表示的數(shù)值范圍稱為溢出。賦值時(shí),如果等號(hào)左右兩邊類(lèi)型不一致,右邊表達(dá)式的類(lèi)型需要轉(zhuǎn)換為左邊變量的類(lèi)型。
【例2-4】賦值時(shí)類(lèi)型不相符。#include<stdio.h>#include<stdlib.h>intmain(){inta,b,c,cir;a=3;b=4;c=5.5; //將浮點(diǎn)型值賦給整型變量cir=a+b+c;printf("thecircumferenceis:%d",cir);return0;}【例2-5】賦值時(shí)超出變量能表達(dá)的數(shù)值范圍。#include<stdio.h>#include<stdlib.h>intmain(){shortinta,b;a=32767;b=a+1;printf("%hd",b); //hd表示輸出短整型return0;}本課件是可編輯的正常PPT課件2.3.6常變量const常變量是一種特殊的變量,它的值不能被改變,其定義形式如下:const類(lèi)型說(shuō)明符變量名表;constintx=100;常變量和普通常量也不一樣,雖然它們的值都不能改變,但是常變量有名字,而普通變量沒(méi)有名字。常變量和符號(hào)常量的區(qū)別:(1)定義的方法和位置不同:符號(hào)常量使用#define關(guān)鍵字定義在所有函數(shù)的外面,且結(jié)尾沒(méi)有分號(hào)。而常變量使用const定義,可以定義在函數(shù)外,也可以定義在函數(shù)內(nèi),必須以分號(hào)結(jié)尾。(2)符號(hào)常量不分配存儲(chǔ)空間,在預(yù)編譯時(shí)進(jìn)行字符替換。而常變量占用存儲(chǔ)空間,像普通變量一樣被程序使用。本課件是可編輯的正常PPT課件2.4運(yùn)算符與表達(dá)式表2.9C語(yǔ)言的運(yùn)算符本課件是可編輯的正常PPT課件2.4運(yùn)算符與表達(dá)式對(duì)于任意一個(gè)運(yùn)算符,要重點(diǎn)關(guān)注以下四點(diǎn):(1)操作數(shù)的數(shù)量(2)操作數(shù)的類(lèi)型(3)優(yōu)先級(jí)(4)結(jié)合性除單目運(yùn)算符、條件運(yùn)算符、以及賦值運(yùn)算符是右結(jié)合性,其他都是左結(jié)合性。本課件是可編輯的正常PPT課件2.4.1算術(shù)運(yùn)算符算術(shù)運(yùn)算符包括+(加或正)、-(減或負(fù))、*(乘)、/(除)、%(求余,也稱模運(yùn)算)、++(自加)、--(自減)共七種。除+(正)、-(負(fù))、++和--是單目運(yùn)算符之外,其他都是雙目運(yùn)算符。++和--運(yùn)算符++和--運(yùn)算符的操作數(shù)只能是變量,不能是常量或表達(dá)式,如3++,--(y+3)當(dāng)++和--在變量前面時(shí),變量i先自增(自減)1,然后再使用變化后的i值。當(dāng)++和--在變量后面時(shí),先使用變量i的值,然后i再自增(自減)1。當(dāng)++和--單獨(dú)使用時(shí),在變量前或者在變量后沒(méi)有區(qū)別。假設(shè)i=5,則++i和i++都使i的值變?yōu)?。當(dāng)++和--作為表達(dá)式的一部分時(shí),在前和在后就完全不同了。例如:intx=5;
intx=5;y=x++;
y=++x;本課件是可編輯的正常PPT課件2.4.1算術(shù)運(yùn)算符使用注意事項(xiàng)C語(yǔ)言使用算術(shù)運(yùn)算符的規(guī)則和數(shù)學(xué)中類(lèi)似,但也有些不同,以下幾點(diǎn)要特別注意:(1)由算術(shù)運(yùn)算符和操作數(shù)組合形成算術(shù)表達(dá)式時(shí),運(yùn)算符不能省略。如a乘以b,必須表示成a*b。(2)C語(yǔ)言中的/(除)有整數(shù)除和浮點(diǎn)型除兩種。當(dāng)兩個(gè)操作數(shù)都是整數(shù)時(shí),運(yùn)算結(jié)果也是整數(shù);兩個(gè)操作數(shù)中有一個(gè)是浮點(diǎn)型數(shù),則結(jié)果是浮點(diǎn)型。如7/3=2,而7.0/3=2.5。(3)%(求余)運(yùn)算的操作數(shù)只能是整數(shù),結(jié)果的符號(hào)一般與被除數(shù)的符號(hào)一致。(4)++和--的操作數(shù)只能是變量,不能是常量和表達(dá)式。(5)如果運(yùn)算符兩側(cè)的操作數(shù)類(lèi)型不一致,則需要先進(jìn)行類(lèi)型轉(zhuǎn)換再進(jìn)行運(yùn)算,結(jié)果為轉(zhuǎn)換后的數(shù)據(jù)類(lèi)型。默認(rèn)的是數(shù)值范圍小、精度低的類(lèi)型轉(zhuǎn)換成數(shù)值范圍大、精度高的類(lèi)型,如字符型轉(zhuǎn)換為整型,整型轉(zhuǎn)換為浮點(diǎn)型等。(6)當(dāng)表達(dá)式中包含多個(gè)算術(shù)運(yùn)算符時(shí),注意運(yùn)算符的優(yōu)先級(jí)和結(jié)合性。本課件是可編輯的正常PPT課件2.4.2位運(yùn)算符C語(yǔ)言提供了六種位運(yùn)算符:&(位與)、|(位或)、~(位非)、^(位異或)、<<(位左移)、>>(位右移)。位運(yùn)算的操作數(shù)可以是常量、變量和表達(dá)式,但必須是整型,如x^y、a>>(b-1)。由位運(yùn)算符和操作數(shù)組成的表達(dá)式稱為位表達(dá)式。(1)&(位與):&(位與)運(yùn)算是對(duì)兩個(gè)操作數(shù)的二進(jìn)制按位相與。如:8&12等價(jià)于
00001000&00001100=00001000=8
(2)|(位或):|(位或)運(yùn)算是對(duì)兩個(gè)操作數(shù)的二進(jìn)制按位相或。如:8|12等價(jià)于 00001000|00001100=00001100=12(3)~(位非):~(位非)運(yùn)算是位操作符中唯一的一個(gè)單目運(yùn)算符,它是對(duì)操作數(shù)的二進(jìn)制按位取反(包括符號(hào)位),1的反為0,0的反是1。如:~8
等價(jià)于
~00001000=11110111=-9
本課件是可編輯的正常PPT課件2.4.2位運(yùn)算符(4)^(位異或):^(位異或)運(yùn)算是對(duì)兩個(gè)操作數(shù)的二進(jìn)制按位異或。8^12等價(jià)于 00001000^00001100=00000100=4
(5)<<(位左移):<<(位左移)運(yùn)算是將左邊操作數(shù)的二進(jìn)制位全部向左移動(dòng)右邊操作數(shù)指定的位數(shù),高位丟棄(包括符號(hào)位),低位補(bǔ)0。對(duì)于帶符號(hào)的數(shù),左移可能會(huì)因符號(hào)位丟棄而改變正負(fù)。8<<2等價(jià)于 00001000<<2=00100000=32 -9<<4等價(jià)于 11110111<<4=01110000=112
(6)>>(位右移):>>(位右移)運(yùn)算是將左邊操作數(shù)的二進(jìn)制位全部(包括符號(hào)位)向右移動(dòng)右邊操作數(shù)指定的位數(shù),低位丟棄。如果是正數(shù)右移,高位補(bǔ)0(包括最高位符號(hào)位);如果是負(fù)數(shù)右移,除最高位符號(hào)位外,其它位補(bǔ)0;符號(hào)位補(bǔ)0還是補(bǔ)1與編譯系統(tǒng)有關(guān),大多數(shù)編譯系統(tǒng)補(bǔ)1。8>>2等價(jià)于 00001000>>2=00000010=2 -9>>2等價(jià)于 11110111>>2=10111101=-3 //CodeBlocks中負(fù)數(shù)右移時(shí),符號(hào)位補(bǔ)1本課件是可編輯的正常PPT課件2.4.3賦值運(yùn)算符賦值運(yùn)算符是程序中使用最多的運(yùn)算符,它將一個(gè)常量、變量、或表達(dá)式的值賦給另一個(gè)變量。由賦值運(yùn)算符形成的表達(dá)式稱為賦值表達(dá)式,它的基本形式如下:變量名=表達(dá)式x=3y=y+1
z=y=5 x=y+3復(fù)合賦值運(yùn)算符:是將賦值運(yùn)算符與其他運(yùn)算符合二為一。
與算術(shù)運(yùn)算符結(jié)合:+=、-=、*=、/=、%=
與位運(yùn)算符結(jié)合:<<=、>>=、&=、^=、|=x+=3 等價(jià)于 x=x+3x*=x+3 等價(jià)于 x=x*(x+3)x%=y*3 等價(jià)于 x=x%(y*3)a<<=2 等價(jià)于 a=a<<2a&=b 等價(jià)于 a=a&b y+1=3本課件是可編輯的正常PPT課件2.4.4逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符在C語(yǔ)言所有運(yùn)算符中的優(yōu)先級(jí)別最低,它可以將多個(gè)表達(dá)式聯(lián)接起來(lái)形成逗號(hào)表達(dá)式,其基本形式如下:表達(dá)式1,表達(dá)式2,表達(dá)式3,......,表達(dá)式n逗號(hào)表達(dá)式的運(yùn)算規(guī)則是從左往右逐個(gè)計(jì)算各個(gè)表達(dá)式,整個(gè)逗號(hào)表達(dá)式的值為最后一個(gè)表達(dá)式:表達(dá)式n的值。如:3+4,5+7
//整個(gè)表達(dá)式的值為12x=10,x*3
//整體是逗號(hào)表達(dá)式,整個(gè)表達(dá)式的值為30y=(x=10,x*3,x+5)
//整體是賦值表達(dá)式,等號(hào)右邊是逗號(hào)表達(dá)式,y的值為15本課件是可編輯的正常PPT課件2.4.5求字節(jié)長(zhǎng)度運(yùn)算符同一種數(shù)據(jù)類(lèi)型在不同的編譯系統(tǒng)中分配的存儲(chǔ)空間可能不同,可以使用sizeof運(yùn)算符明確數(shù)據(jù)類(lèi)型在當(dāng)前編譯系統(tǒng)中占多大的存儲(chǔ)空間,使用形式為:sizeof(操作數(shù)) 或 sizeof操作數(shù)sizeof運(yùn)算符是單目運(yùn)算符,它的操作數(shù)可以是常量、變量、表達(dá)式和數(shù)據(jù)類(lèi)型。如:sizeof(int)
//64位機(jī)結(jié)果為4sizeof(3)
//等價(jià)于sizeof(int),64位機(jī)結(jié)果為4sizeof(i)
//假設(shè)i為整型,等價(jià)于sizeof(int),64位機(jī)結(jié)果為4sizeof(i+3)
//假設(shè)i為整型,等價(jià)于sizeof(int),64位機(jī)結(jié)果為4sizeofi+3
//假設(shè)i為整型,sizeofi占用的存儲(chǔ)空間為4,再加3,結(jié)果為7本課件是可編輯的正常PPT課件2.4.6類(lèi)型轉(zhuǎn)換1.自動(dòng)類(lèi)型轉(zhuǎn)換自動(dòng)類(lèi)型轉(zhuǎn)換是在編譯時(shí)自動(dòng)進(jìn)行的,也稱為隱式類(lèi)型轉(zhuǎn)換,其基本原則是由低級(jí)向高級(jí)轉(zhuǎn)換。2.強(qiáng)制類(lèi)型轉(zhuǎn)換當(dāng)高級(jí)類(lèi)型轉(zhuǎn)換為低級(jí)類(lèi)型時(shí),需要使用強(qiáng)制類(lèi)型轉(zhuǎn)換,其一般形式如下:(類(lèi)型說(shuō)明符)表達(dá)式(int)x (float)(15%2) (double)y (double)(a+b) (double)a+b 圖2.5自動(dòng)類(lèi)型轉(zhuǎn)換本課件是可編輯的正常PPT課件2.5.1格式輸出函數(shù)printf()printf()函數(shù)是C語(yǔ)言中的格式化輸出函數(shù),用于向標(biāo)準(zhǔn)輸出設(shè)備(一般是顯示器),按用戶指定的格式輸出若干數(shù)據(jù),一般使用形式為:printf("格式控制字符串",輸出項(xiàng)列表)輸出項(xiàng)列表可以是常量、變量或表達(dá)式,多個(gè)輸出項(xiàng)之間用逗號(hào)間隔。格式控制字符串由格式聲明符和普通字符兩種組成。普通字符原樣輸出,常用來(lái)表示說(shuō)明或提示信息,以使輸出更清晰。格式聲明符是printf()函數(shù)中最復(fù)雜的部分,由“%”和格式字符組成,控制輸出數(shù)據(jù)的類(lèi)型、形式、長(zhǎng)度、小數(shù)位數(shù)等。一個(gè)格式聲明符對(duì)應(yīng)一個(gè)輸出項(xiàng),基本格式為:%[標(biāo)志][最小寬度][.精度][類(lèi)型長(zhǎng)度]格式字符說(shuō)明:除%和格式字符外,其他格式控制字段均可省略。本課件是可編輯的正常PPT課件1.格式字符格式字符用于控制輸出數(shù)據(jù)的類(lèi)型。intx1=-200;
unsignedintx2=200;
printf("1:格式字符d:%d\n",x1);
printf("2:格式字符u:%u\n",x2);本課件是可編輯的正常PPT課件2.標(biāo)志字段標(biāo)志字段用于控制輸出數(shù)據(jù)的對(duì)齊方式和填充字符。intx1=200;printf("1:標(biāo)志字符+:%+d\n",x1);
//正數(shù)前面強(qiáng)制輸出+printf("3:標(biāo)志字符-:%-6d\n",x1);
//寬度多出,左對(duì)齊,右補(bǔ)空格printf("4:標(biāo)志字符0:%06d\n",x1);
//寬度多出,右對(duì)齊,左補(bǔ)0printf("5:標(biāo)志字符空格:%d\n",x1);
//正數(shù)前面輸出一個(gè)空格printf("7:標(biāo)志字符#:%#x\n",x1);
//十六進(jìn)制數(shù)輸出前導(dǎo)0x
本課件是可編輯的正常PPT課件3.最小寬度字段
最小寬度字段用于控制輸出數(shù)據(jù)占據(jù)的最小字符寬度。intx1=200;printf("1:標(biāo)志字符+:%+d\n",x1);
//正數(shù)前面強(qiáng)制輸出+printf("2:寬度字符:%6d\n",x1);
//寬度多出,默認(rèn)右對(duì)齊,左補(bǔ)空格printf("3:標(biāo)志字符-:%-6d\n",x1);
//寬度多出,左對(duì)齊,右補(bǔ)空格printf("4:標(biāo)志字符0:%06d\n",x1);
//寬度多出,右對(duì)齊,左補(bǔ)0printf("12:寬度字符:%2d\n",x1);
//寬度不夠,數(shù)據(jù)原樣輸出本課件是可編輯的正常PPT課件4.精度字段
精度字段用于指定輸出數(shù)據(jù)的精度,使用時(shí)前面需加小數(shù)點(diǎn)‘.’。doubley1=66.1230000;printf("9:對(duì)比上面:%.0f\n",y1);
//精度為0,不輸出小數(shù)部分,包括小數(shù)點(diǎn)printf("15:精度字符控制f:%.2f\n",y1);
//精度控制浮點(diǎn)型的小數(shù)位數(shù)printf("16:精度字符控制g:%.3g\n",y1);
//精度配合g說(shuō)明符限制有效數(shù)字位數(shù)printf("17:精度字符控制s:%.1s\n","CProgram");
//精度控制截取字符個(gè)數(shù)printf("18:寬度精度結(jié)合使用:%5.1s\n","CProgram");本課件是可編輯的正常PPT課件【例2-8】標(biāo)志字符、最小寬度字符和精度字符使用樣例。intmain(){intx1=200;doubley1=66.1230000;printf("1:標(biāo)志字符+:%+d\n",x1);
//正數(shù)前面強(qiáng)制輸出+printf("2:寬度字符:%6d\n",x1);
//寬度多出,默認(rèn)右對(duì)齊,左補(bǔ)空格printf("3:標(biāo)志字符-:%-6d\n",x1);
//寬度多出,左對(duì)齊,右補(bǔ)空格printf("4:標(biāo)志字符0:%06d\n",x1);
//寬度多出,右對(duì)齊,左補(bǔ)0printf("5:標(biāo)志字符空格:%d\n",x1);
//正數(shù)前面輸出一個(gè)空格printf("6:標(biāo)志字符#:%#o\n",x1);
//八進(jìn)制數(shù)輸出前導(dǎo)0printf("7:標(biāo)志字符#:%#x\n",x1);
//十六進(jìn)制數(shù)輸出前導(dǎo)0xprintf("8:標(biāo)志字符#:%#.0f\n",y1);
//精度為0,依然輸出小數(shù)點(diǎn)printf("9:對(duì)比上面:%.0f\n",y1);
//精度為0,不輸出小數(shù)部分,包括小數(shù)點(diǎn)printf("10:標(biāo)志字符#:%#g\n",y1);
//#使尾部0保留printf("11:對(duì)比上面:%g\n",y1);
//默認(rèn)g說(shuō)明符尾部0刪除printf("12:寬度字符:%2d\n",x1);
//寬度不夠,數(shù)據(jù)原樣輸出printf("13:寬度字符:%4f\n",y1);
//寬度不夠,數(shù)據(jù)原樣輸出printf("14:精度字符控制整型:%.6d\n",x1);//精度控制整型,前面以0補(bǔ)足printf("15:精度字符控制f:%.2f\n",y1);
//精度控制浮點(diǎn)型的小數(shù)位數(shù)printf("16:精度字符控制g:%.3g\n",y1);
//精度配合g說(shuō)明符限制有效數(shù)字位數(shù)printf("17:精度字符控制s:%.1s\n","CProgram");
//精度控制截取字符個(gè)數(shù)printf("18:寬度精度結(jié)合使用:%5.1s\n","CProgram");return0;}本課件是可編輯的正常PPT課件5.類(lèi)型長(zhǎng)度字段類(lèi)型長(zhǎng)度字段經(jīng)常用來(lái)配合格式字符表示更豐富的數(shù)據(jù)類(lèi)型。printf("%hd\n",x);
//以十進(jìn)制短整型形式輸出變量xprintf("%ld\n",x);
//以十進(jìn)制長(zhǎng)整型形式輸出變量xprintf("%lld\n",x);
//以十進(jìn)制長(zhǎng)長(zhǎng)整型形式輸出變量x本課件是可編輯的正常PPT課件2.5.1printf()函數(shù)使用注意事項(xiàng)(1)格式字符與數(shù)據(jù)類(lèi)型盡量一致,否則可能導(dǎo)致數(shù)據(jù)輸出錯(cuò)誤。假設(shè)有如下面程序段:intx=32768,y=-5;printf("x=%hd\n",x); printf("y=%u\n",y); (2)printf()函數(shù)參數(shù)值的計(jì)算順序是自右向左,如:printf("%d,%d",x,x++);假設(shè)x=5,則輸出結(jié)果為6,5。(3)格式控制字符串中可以包含多組格式聲明符,多個(gè)格式聲明符中間可以用普通字符做間隔,如:printf("%ld,%10.2f",x,y)用逗號(hào)隔開(kāi)。(4)除格式聲明符以外的其他字符都是普通字符,要原樣輸出。注意普通字符不能出現(xiàn)在格式聲明符中,如:printf("x=%hd\n",x),“x=”是普通字符,不能出現(xiàn)在%和hd中間。(5)printf()函數(shù)使用時(shí)要包含頭文件#include<stdio.h>。本課件是可編輯的正常PPT課件2.5.2格式輸入函數(shù)scanf()scanf()函數(shù)用于從標(biāo)準(zhǔn)輸入設(shè)備(一般是鍵盤(pán))獲得用戶輸入,并按用戶指定的格式把數(shù)據(jù)送入變量所分配的內(nèi)存空間中。scanf()函數(shù)的一般使用形式為:scanf("格式控制字符串",輸入項(xiàng)列表)輸入項(xiàng)列表是接收讀入數(shù)據(jù)的變量?jī)?nèi)存地址,多個(gè)地址之間用逗號(hào)間隔。C語(yǔ)言中取地址符號(hào)為“&”,如&a。格式控制字符串也由格式聲明符和普通字符兩種組成。普通字符需要用戶在鍵盤(pán)上原樣輸入,這會(huì)增加用戶輸入負(fù)擔(dān),所以一般不使用。格式聲明符控制輸入數(shù)據(jù)的格式,與printf()函數(shù)類(lèi)似,也由“%”和格式字符組成。一個(gè)格式聲明符對(duì)應(yīng)一個(gè)輸入項(xiàng)。格式聲明符的基本格式為:%[*][寬度W][類(lèi)型長(zhǎng)度]格式字符說(shuō)明:除%和格式字符外,其他格式控制字段均可省略。本課件是可編輯的正常PPT課件1.
格式字符和類(lèi)型長(zhǎng)度字符格式字符用于控制輸入數(shù)據(jù)的類(lèi)型,而類(lèi)型長(zhǎng)度字符和格式字符配合,可以表示更豐富的類(lèi)型。本課件是可編輯的正常PPT課件【例2-9】一個(gè)使用scanf()函數(shù)的簡(jiǎn)單程序:求三角形的面積,三條邊的值從鍵盤(pán)輸入。#include<stdio.h>#include<stdlib.h>#include<math.h> //包含sqrt()等各種數(shù)學(xué)函數(shù)的頭文件intmain(){inta,b,c;floatp,Area;scanf("%d%d%d",&a,&b,&c); //注意a,b,c的輸入格式p=(a+b+c)/2;Area=sqrt(p*(p-a)*(p-b)*(p-c));printf("theareaofthetriangleis:%f",Area);return0;}本課件是可編輯的正常PPT課件2.
虛讀和寬度*表示虛讀,即本輸入項(xiàng)在讀入數(shù)據(jù)后不賦給下一變量,虛讀*可以預(yù)防輸入數(shù)據(jù)間隔與要求不一致而導(dǎo)致的錯(cuò)誤。如:scanf("%d%*c%d",&x,&y);假設(shè)輸入數(shù)據(jù)3,4,3賦給變量x,4賦給變量y,中間的逗號(hào)“,”被虛讀,未賦給任何變量。寬度w是一個(gè)整數(shù),指定輸入數(shù)據(jù)所占寬度(列寬),系統(tǒng)自動(dòng)截取用戶所規(guī)定的位數(shù)。如:scanf("%3d%d",&a,&b);//輸入為1234,則最終a的值為123(截取3位),b的值為4scanf("%5s",name)
//輸入為“ZhangLin”,則串name的值為“Zhang”本課件是可編輯的正常PPT課件2.5.2scanf()函數(shù)使用注意事項(xiàng)(1)格式字符和變量類(lèi)型、變量數(shù)量要一致,以免產(chǎn)生錯(cuò)誤。(2)使用scanf()函數(shù)同時(shí)為多個(gè)變量賦值時(shí),若格式控制串中沒(méi)有普通字符作間隔,則可按空格鍵,tab鍵或回車(chē)鍵作為輸入數(shù)據(jù)的間隔。空格、tab和回車(chē)也稱為空白字符。如:scanf("%d%d%d",&a,&b,&c);(3)scanf()函數(shù)格式控制串中的普通字符必須原樣輸入,如:scanf("%d,%d,%d",&a,&b,&c);
//對(duì)用的輸入數(shù)據(jù)之間也必須用逗號(hào)做間隔,如3,4,5scanf("a=%d",&a)
//輸入必須類(lèi)似a=3(4)float和double類(lèi)型在print()函數(shù)中的格式控制符一樣,都是“%f”;但是在scanf()函數(shù)中卻不同,分別是“%f”和“%lf”,絕對(duì)不能用錯(cuò),否則會(huì)導(dǎo)致數(shù)據(jù)錯(cuò)誤。(5)所有字符(包括空白字符和%)都是char類(lèi)型的合法輸入,如:scanf("%c%c",&a,&b);
//假設(shè)輸入數(shù)據(jù)“x,y”,則變量a和b的值分別為x和,本課件是可編輯的正常PPT課件2.5.2scanf()函數(shù)使用注意事項(xiàng)(6)scanf()函數(shù)中沒(méi)有類(lèi)似printf()的精度控制。如:scanf("%5.2f",&a);(7)scanf()函數(shù)中的格式控制串不能以空白字符結(jié)尾,如:scanf("%f\n",&a);(8)scanf()函數(shù)使用時(shí)要包含頭文件#include<stdio.h>。本課件是可編輯的正常PPT課件2.5.3字符輸入輸出函數(shù)putchar()和getchar()字符數(shù)據(jù)的輸入和輸出除了可以使用“%c”配合scanf()和函數(shù)printf()以外,還可以使用專(zhuān)門(mén)的字符輸入輸出函數(shù)——putchar()和getchar(),它們都是C語(yǔ)言提供的標(biāo)準(zhǔn)庫(kù)函數(shù),包含在頭文件<stdio.h>中。本課件是可編輯的正常PPT課件1.
putchar()函數(shù)putchar()函數(shù)的功能是把指定的字符送到標(biāo)準(zhǔn)輸出設(shè)備(一般是顯示器)上,其調(diào)用格式為:putchar(c)(1)當(dāng)c為字符常量或變量時(shí),直接輸出該常量或變量代表的字符,包括轉(zhuǎn)義字符,如:charch='F';puthchar('M'); //輸出字母Mputhchar('\n'); //輸出換行符puthchar(ch); //輸出變量ch的值:字母F(2)當(dāng)c為一個(gè)介于十進(jìn)制0~127(包括0及127)之間的整型常量或變量時(shí),輸出對(duì)應(yīng)ASCII值代表的字符,如:intch1=65,ch2=0x41;puthchar(65); //輸出大寫(xiě)字母A,A的ASCII碼值為65puthchar(ch1); //輸出大寫(xiě)字母Aputhchar(ch2); //輸出大寫(xiě)字母A,0x41是65對(duì)應(yīng)的十六進(jìn)制注意:putchar()函數(shù)每次只能輸出一個(gè)字符,若要輸出多個(gè)字符,則需要多次調(diào)用putchar()函數(shù)。本課件是可編輯的正常PPT課件2.
getchar()函數(shù)getchar()函數(shù)的作用是從標(biāo)準(zhǔn)輸入設(shè)備(一般是鍵盤(pán))讀入一個(gè)字符賦給相應(yīng)的變量,其調(diào)用格式為:
getchar()如:charch1; ch1=getchar(); //假設(shè)用戶從鍵盤(pán)輸入字符A,則ch1=A;
intch2;ch2=getchar(); //假設(shè)用戶從鍵盤(pán)輸入字符A,則ch2=65;getchar()函數(shù)每次只從標(biāo)準(zhǔn)輸入設(shè)備讀取一個(gè)字符,當(dāng)輸入超過(guò)一個(gè)字符時(shí),其他字符會(huì)暫存在鍵盤(pán)緩存區(qū)中,等待后續(xù)getchar()函數(shù)讀取,直到緩沖區(qū)中的字符讀完,才繼續(xù)等待用戶輸入。如:charch1,ch2; //假設(shè)用戶從鍵盤(pán)輸入65,注意65被識(shí)別成兩個(gè)字符!?。h1=getchar(); //ch1=6ch2=getchar(); //ch2=5使用getchar()函數(shù)輸入字符時(shí),鍵入字符后需要敲回車(chē)鍵,然后程序才會(huì)響應(yīng)輸入,繼續(xù)執(zhí)行后續(xù)語(yǔ)句。本課件是可編輯的正常PPT課件2.
getchar()函數(shù)【例2-12】使用putchar()函數(shù)和getchar()函數(shù)實(shí)現(xiàn)字符的輸入和輸出,輸入和輸出結(jié)果如圖所示。#include<stdio.h> #include<stdlib.h>intmain(){charch;ch=getchar();while(ch!=EOF) //在CodeBlock中ctrl+z表示輸入結(jié)束{putchar(ch);putchar(''); //輸出字符之間以空格做間隔。ch=getchar();}return0;}本課件是可編輯的正常PPT課件2.6基本C語(yǔ)句C語(yǔ)言程序的執(zhí)行部分是由若干條語(yǔ)句組成的,C語(yǔ)句有很多類(lèi),都以“;”結(jié)尾,具體可以分為以下六類(lèi):表達(dá)式語(yǔ)句選擇語(yǔ)句循環(huán)語(yǔ)句標(biāo)簽語(yǔ)句跳轉(zhuǎn)語(yǔ)句復(fù)合語(yǔ)句本課件是可編輯的正常PPT課件1.
表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句是C程序最基本的語(yǔ)句,由表達(dá)式加分號(hào)“;”組成,形如:表達(dá)式;如:intx,y,z;scanf("%d%d",&x,&y);x=y+3;z++;表達(dá)式語(yǔ)句可以也只包含一個(gè)分號(hào)“;”,稱為空語(yǔ)句。本課件是可編輯的正常PPT課件2.
選擇語(yǔ)句選擇語(yǔ)句是實(shí)現(xiàn)選擇結(jié)構(gòu)(也稱為分支結(jié)構(gòu))的基本語(yǔ)句,主要有3種,分別是:?jiǎn)畏种ЫY(jié)構(gòu):if(條件表達(dá)式)語(yǔ)句;雙分支結(jié)構(gòu):if(條件表達(dá)式)語(yǔ)句1;else語(yǔ)句2;多分支結(jié)構(gòu):switch(條件表達(dá)式){case常量表達(dá)式1:語(yǔ)句1;case常量表達(dá)式2:語(yǔ)句2;┇case常量表達(dá)式n:語(yǔ)句組n;default:語(yǔ)句n+1;}本課件是可編輯的正常PPT課件3.
循環(huán)語(yǔ)句循環(huán)語(yǔ)句用于實(shí)現(xiàn)循環(huán)結(jié)構(gòu),主要有3種,分別是:while循環(huán):while(表達(dá)式)語(yǔ)句;do-while循環(huán):do語(yǔ)句;while(表達(dá)式);for循環(huán):for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語(yǔ)句;本課件是可編輯的正常PPT課件4.
標(biāo)簽語(yǔ)句標(biāo)簽語(yǔ)句有3種,分別是:標(biāo)簽名:語(yǔ)句;case常量表達(dá)式:語(yǔ)句;default:語(yǔ)句;其中case語(yǔ)句和default語(yǔ)句只出現(xiàn)于多分支結(jié)構(gòu)switch語(yǔ)句中。而“標(biāo)簽名:語(yǔ)句”則需要配合跳轉(zhuǎn)語(yǔ)句goto使用。本課件是可編輯的正常PPT課件5.
跳轉(zhuǎn)語(yǔ)句跳轉(zhuǎn)語(yǔ)句控制程序跳轉(zhuǎn)到另一處執(zhí)行,共有4種,分別是:goto標(biāo)簽;continue;break;return[表達(dá)式];return語(yǔ)句在所有的函數(shù)中都要使用,作用是將程序控制權(quán)交給調(diào)用者。return語(yǔ)句后面的表達(dá)式可以省略。【例2-13】goto語(yǔ)句和標(biāo)簽使用樣例。#include<stdio.h>#include<stdlib.h>intmain(){gotolable1;print("itisadog.");lable1:
printf("itisacat.");return0;}本課件是可編輯的正常PPT課件6.
復(fù)合語(yǔ)句用括號(hào){}括起來(lái)的一系列語(yǔ)句稱復(fù)合語(yǔ)句,復(fù)合語(yǔ)句在程序中作為一個(gè)整體處理,如下面程序段:if(c>='A'&&c<='Z'){c=c-32;printf("%c",c);}本課件是可編輯的正常PPT課件謝謝觀看本課件是可編輯的正常PPT課件程序設(shè)計(jì)基礎(chǔ)第3章選擇結(jié)構(gòu)程序設(shè)計(jì)本課件是可編輯的正常PPT課件目
錄3.1
初識(shí)選擇結(jié)構(gòu)3.1.1
關(guān)系運(yùn)算符和關(guān)系表達(dá)式3.1.2
邏輯運(yùn)算符和邏輯表達(dá)式3.2if語(yǔ)句3.2.1簡(jiǎn)單if語(yǔ)句3.2.2簡(jiǎn)單if…else語(yǔ)句3.2.3多重if…else語(yǔ)句3.2.4if結(jié)構(gòu)的嵌套3.3
switch語(yǔ)句3.3.1switch語(yǔ)句的基本形式3.3.2多路開(kāi)關(guān)模式的switch語(yǔ)句3.3.3switch與if…else的比較3.4
選擇結(jié)構(gòu)綜合實(shí)例本章小結(jié)本課件是可編輯的正常PPT課件3.1.1關(guān)系運(yùn)算符和關(guān)系表達(dá)式判斷程序流程的條件經(jīng)常是通過(guò)比較兩個(gè)量的大小關(guān)系來(lái)決定的。用來(lái)比較兩個(gè)量的關(guān)系的運(yùn)算符稱為關(guān)系運(yùn)算符。使用關(guān)系運(yùn)算符的表達(dá)式稱為關(guān)系表達(dá)式。本課件是可編輯的正常PPT課件3.1.1關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符的兩邊可以是變量、數(shù)值或表達(dá)式。關(guān)系運(yùn)算符都是雙目運(yùn)算符,其結(jié)合性均為左結(jié)合。關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符,高于賦值運(yùn)算符。在六個(gè)關(guān)系運(yùn)算符中,<,<=,>,>=的優(yōu)先級(jí)相同,高于==和!=,==和!=的優(yōu)先級(jí)相同。本課件是可編輯的正常PPT課件3.1.1關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系表達(dá)式關(guān)系表達(dá)式的運(yùn)算結(jié)果為真或者假,用“1”和“0”表示。關(guān)系表達(dá)式也可以嵌套。相同優(yōu)先級(jí)的關(guān)系運(yùn)算符結(jié)合律是從左往右。注意:關(guān)系運(yùn)算符“==”與賦值運(yùn)算符“=”的區(qū)別。本課件是可編輯的正常PPT課件例程3-1----不同關(guān)系表達(dá)式的計(jì)算運(yùn)行結(jié)果本課件是可編輯的正常PPT課件3.1.2邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符是用來(lái)比較和操作布爾值的運(yùn)算符。邏輯運(yùn)算符的兩邊可以是變量、數(shù)值或表達(dá)式。與運(yùn)算符“&&”和或運(yùn)算符“||”均為雙目運(yùn)算符。結(jié)合性為左結(jié)合。非運(yùn)算符“!”為單目運(yùn)算符,結(jié)合性為右結(jié)合。邏輯運(yùn)算符和其他運(yùn)算符的運(yùn)算優(yōu)先級(jí)關(guān)系(由高到低):本課件是可編輯的正常PPT課件例程3-2----簡(jiǎn)單邏輯運(yùn)算運(yùn)行結(jié)果本課件是可編輯的正常PPT課件3.2.1簡(jiǎn)單if語(yǔ)句使用if語(yǔ)句可以構(gòu)成分支結(jié)構(gòu)----根據(jù)給定的條件進(jìn)行判斷,以決定執(zhí)行某個(gè)分支程序段。簡(jiǎn)單if語(yǔ)句功能:如果表達(dá)式的值為真,則執(zhí)行其后的語(yǔ)句,否則不執(zhí)行該語(yǔ)句。流程圖:本課件是可編輯的正常PPT課件例程3-3----判斷2個(gè)整數(shù)大小,輸出較小整數(shù)運(yùn)行結(jié)果本課件是可編輯的正常PPT課件3.2.2簡(jiǎn)單ifelse語(yǔ)句簡(jiǎn)單if···else語(yǔ)句結(jié)構(gòu)功能:如果表達(dá)式的值為真,則執(zhí)行語(yǔ)句1,否則(表達(dá)式的值為假)執(zhí)行語(yǔ)句2。流程圖:本課件是可編輯的正常PPT課件例程3-4----判斷2個(gè)整數(shù)大小,輸出較小整數(shù)運(yùn)行結(jié)果本課件是可編輯的正常PPT課件3.2.2簡(jiǎn)單ifelse語(yǔ)句條件運(yùn)算符和條件表達(dá)式如果在條件語(yǔ)句中,只執(zhí)行簡(jiǎn)單的單個(gè)賦值語(yǔ)句,就可以使用條件表達(dá)式來(lái)實(shí)現(xiàn)。條件運(yùn)算符“?:”又稱為三目運(yùn)算符,格式如下:功能:如果表達(dá)式1的值為真,則結(jié)果為表達(dá)式2的值,否則(表達(dá)式1的值為假)結(jié)果為表達(dá)式3的值。條件表達(dá)式通常用于賦值語(yǔ)句。本課件是可編輯的正常PPT課件例程3-5----使用條件表達(dá)式修改例程3-4運(yùn)行結(jié)果略使用條件表達(dá)式不但使程序結(jié)構(gòu)簡(jiǎn)潔,需要注意:(1)條件運(yùn)算符的運(yùn)算優(yōu)先級(jí)低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符,高于賦值符?!纠?-5】中的條件表達(dá)式可以寫(xiě)為:min=a>b?b:a;(2)條件運(yùn)算符的結(jié)合方向是自右至左,且“?”和“:”不能分開(kāi)單獨(dú)使用。本課件是可編輯的正常PPT課件3.2.3多重ifelse語(yǔ)句當(dāng)判斷的條件超過(guò)2個(gè)時(shí),可以使用多重if-else語(yǔ)句結(jié)構(gòu)實(shí)現(xiàn)多重條件判斷。語(yǔ)句基本格式功能:依次判斷表達(dá)式1到表達(dá)式n的值,當(dāng)某個(gè)表達(dá)式的值為真時(shí),執(zhí)行其對(duì)應(yīng)的語(yǔ)句;然后跳轉(zhuǎn)到整個(gè)if語(yǔ)句結(jié)構(gòu)之外繼續(xù)執(zhí)行。如果所有的表達(dá)式均為假,執(zhí)行最后一條else其后的語(yǔ)句n,然后繼續(xù)執(zhí)行。本課件是可編輯的正常PPT課件例程3-6----判斷3個(gè)整數(shù)大小,輸出其中最大整數(shù)運(yùn)行結(jié)果本課件是可編輯的正常PPT課件3.2.4
if結(jié)構(gòu)的嵌套當(dāng)if語(yǔ)句中的執(zhí)行語(yǔ)句也是if語(yǔ)句結(jié)構(gòu)時(shí),就構(gòu)成了if語(yǔ)句的嵌套。語(yǔ)句基本格式
或者C語(yǔ)言規(guī)定,else總是與它前面最近的if配對(duì)。例如:應(yīng)該理解為:本課件是可編輯的正常PPT課件例程3-7----采用嵌套結(jié)構(gòu)實(shí)現(xiàn)例程3-6運(yùn)行結(jié)果本課件是可編輯的正常PPT課件3.3.1
switch語(yǔ)句的基本形式當(dāng)條件判斷分支過(guò)多時(shí),用if-else處理會(huì)出現(xiàn)結(jié)構(gòu)繁瑣、if-else配對(duì)出錯(cuò)的情況。----可以使用switch結(jié)構(gòu)處理。語(yǔ)句的基本格式:功能:計(jì)算表達(dá)式的值。逐個(gè)與case關(guān)鍵字其后的常量表達(dá)式值相比較,當(dāng)表達(dá)式的值與某個(gè)常量表達(dá)式的值相等時(shí),執(zhí)行其后的語(yǔ)句;然后不再進(jìn)行判斷,繼續(xù)執(zhí)行后續(xù)case關(guān)鍵字后面的所有語(yǔ)句。如表達(dá)式的值與所有case后的常量表達(dá)式值均不相同時(shí),則執(zhí)行default關(guān)鍵字后面的語(yǔ)句。本課件是可編輯的正常PPT課件3.3.1
switch語(yǔ)句的基本形式流程圖本課件是可編輯的正常PPT課件例程3-8----根據(jù)輸入的成績(jī)等級(jí)字符,輸出相應(yīng)內(nèi)容運(yùn)行結(jié)果本課件是可編輯的正常PPT課件例程3-8-1----修改3-8,使其符合設(shè)計(jì)要求運(yùn)行結(jié)果本課件是可編輯的正常PPT課件3.3.2多路開(kāi)關(guān)模式的switch語(yǔ)句利用break語(yǔ)句,可以設(shè)計(jì)多路開(kāi)關(guān)模式的switch語(yǔ)言結(jié)構(gòu)。語(yǔ)句的基本格式:本課件是可編輯的正常PPT課件例程3-9----根據(jù)輸入的月份,輸出所在季節(jié)運(yùn)行結(jié)果本課件是可編輯的正常PPT課件3.3.3
switch與ifelse結(jié)構(gòu)的比較1.語(yǔ)法if語(yǔ)句是先對(duì)條件進(jìn)行判斷,而switch語(yǔ)句是先進(jìn)行后判斷。switch語(yǔ)句實(shí)際上就是復(fù)雜的多重分支語(yǔ)句結(jié)構(gòu)。判斷條件比較少的時(shí)候,使用if-else結(jié)構(gòu)書(shū)寫(xiě)簡(jiǎn)潔,程序可讀性好;當(dāng)條件比較多的時(shí)候,if-else會(huì)出現(xiàn)多層分支和嵌套分支情況,語(yǔ)法復(fù)雜,書(shū)寫(xiě)難度比較大,出現(xiàn)語(yǔ)法錯(cuò)誤的幾率也會(huì)大大增加,這時(shí)候就可以使用switch結(jié)構(gòu)。2.運(yùn)行效率絕大部分情況下,switch的執(zhí)行效率要高于if語(yǔ)句。switch語(yǔ)句在運(yùn)行時(shí),系統(tǒng)會(huì)生成一個(gè)“跳轉(zhuǎn)表”來(lái)指示實(shí)際的case分支的地址,而這個(gè)“跳轉(zhuǎn)表”switch中的case值是一一對(duì)應(yīng)的,switch只需要訪問(wèn)對(duì)應(yīng)索引號(hào)的表項(xiàng)就可以到達(dá)定位分支的目的。而if-else語(yǔ)句需要一條一條的去進(jìn)行取值范圍的判斷,直到找到正確的選項(xiàng)位置,這樣的話勢(shì)必會(huì)浪費(fèi)大量的時(shí)間。到底使用哪一種選擇分支語(yǔ)句結(jié)構(gòu),和程序設(shè)計(jì)當(dāng)前的代碼環(huán)境有關(guān),如果是范圍取值,使用if-else語(yǔ)句會(huì)更為快捷;如果是確定取值,則使用switch語(yǔ)句是相對(duì)合理的選擇。:本課件是可編輯的正常PPT課件3.4選擇結(jié)構(gòu)綜合實(shí)例國(guó)家對(duì)于繳納個(gè)人所得稅的相關(guān)政策和計(jì)算公式如下:例3-10計(jì)算個(gè)人所得稅本課件是可編輯的正常PPT課件運(yùn)行結(jié)果本課件是可編輯的正常PPT課件根據(jù)用戶輸入的算式格式,使用switch結(jié)構(gòu)對(duì)運(yùn)算符進(jìn)行分支判斷,實(shí)現(xiàn)簡(jiǎn)單四則運(yùn)算。如果運(yùn)算符為“/”(除法),需要判斷被除數(shù)是否為零的情況,在switch結(jié)構(gòu)中嵌套了if-else結(jié)構(gòu)實(shí)現(xiàn)程序功能。例3-11簡(jiǎn)單整數(shù)四則運(yùn)算程序運(yùn)行結(jié)果本課件是可編輯的正常PPT課件本章小結(jié)本章主要在順序結(jié)構(gòu)程序設(shè)計(jì)的基礎(chǔ)上,首先介紹了關(guān)系運(yùn)算符與關(guān)系表達(dá)式、邏輯運(yùn)算符與邏輯表達(dá)式,在此基礎(chǔ)上,進(jìn)一步講解了選擇結(jié)構(gòu)程序設(shè)計(jì)的兩種重要形式:if-else結(jié)構(gòu)和switch結(jié)構(gòu)。通過(guò)這兩種結(jié)構(gòu)的相互結(jié)合和嵌套,可以設(shè)計(jì)實(shí)現(xiàn)復(fù)雜的多分支程序,以實(shí)現(xiàn)復(fù)雜的分支程序功能。本課件是可編輯的正常PPT課件謝謝觀看本課件是可編輯的正常PPT課件程序設(shè)計(jì)基礎(chǔ)本課件是可編輯的正常PPT課件目
錄4.1初識(shí)循環(huán)結(jié)構(gòu)4.2while語(yǔ)句4.3do…while語(yǔ)句4.4for語(yǔ)句4.4.1for語(yǔ)句的一般形式與執(zhí)行過(guò)程4.4.2for語(yǔ)句的變形4.5循環(huán)的嵌套4.6幾種循環(huán)的比較4.7跳轉(zhuǎn)語(yǔ)句4.7.1用break語(yǔ)句提前終止循環(huán)4.7.2用continue語(yǔ)句提前結(jié)束本輪循環(huán)4.8循環(huán)程序綜合舉例本課件是可編輯的正常PPT課件4.1初識(shí)循環(huán)結(jié)構(gòu)在日常生活中還有許多需要重復(fù)處理的問(wèn)題。例如,輸入并計(jì)算班級(jí)平均成績(jī)的步驟如下:(1)輸入全班40名學(xué)生的成績(jī);
(重復(fù)40次相同的輸入)(2)將40個(gè)成績(jī)進(jìn)行求和;
(重復(fù)40次相同的加法運(yùn)算)(3)之后,總和除以40求得平均成績(jī)。要處理上述的重復(fù)問(wèn)題,理論上可以將步驟1“輸入”和步驟2“求和”的程序段重復(fù)編寫(xiě)40遍,但實(shí)際中顯然是不可取的,不只是工作量大、程序冗長(zhǎng),更是難以閱讀和維護(hù)。實(shí)際上,可以采用循環(huán)結(jié)構(gòu)來(lái)處理需要重復(fù)進(jìn)行的操作。循環(huán)結(jié)構(gòu)也稱為重復(fù)結(jié)構(gòu)。本課件是可編輯的正常PPT課件4.1初識(shí)循環(huán)結(jié)構(gòu)算法具有有窮性,程序的運(yùn)行需要會(huì)結(jié)束,從而程序中的循環(huán)操作是有終止的,達(dá)到一定條件時(shí)循環(huán)結(jié)束。如輸入完第40名學(xué)生的成績(jī)時(shí)就不再繼續(xù)輸入。要構(gòu)成一個(gè)有效的循環(huán),則循環(huán)結(jié)構(gòu)中需要有兩個(gè)重要部分:(1)需要重復(fù)執(zhí)行的程序段,稱為循環(huán)體;(2)重復(fù)執(zhí)行的條件,即在什么情況下執(zhí)行重復(fù)的操作。C語(yǔ)言中,用來(lái)實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的有3種:while語(yǔ)句、do…while語(yǔ)句和for語(yǔ)句。本課件是可編輯的正常PPT課件4.2while語(yǔ)句while語(yǔ)句的一般形式: while(表達(dá)式)
循環(huán)體0表達(dá)式循環(huán)體非0圖4-1while語(yǔ)句流程圖其執(zhí)行過(guò)程:(1)先計(jì)算表達(dá)式,如果表達(dá)式的值為非0,則轉(zhuǎn)到(2),否則結(jié)束循環(huán)。(2)執(zhí)行循環(huán)體,然后轉(zhuǎn)到(1)。本課件是可編輯的正常PPT課件4.2while語(yǔ)句【例4-1】輸入學(xué)生的Math成績(jī),求平均成績(jī)并輸出。解題分析:要想求平均成績(jī),首先要求總成績(jī),設(shè)一個(gè)變量Ave來(lái)累加成績(jī)。另外設(shè)一個(gè)變量i用來(lái)累計(jì)已處理成績(jī)的個(gè)數(shù)。當(dāng)每個(gè)成績(jī)的處理過(guò)程是一樣的,先輸入該成績(jī),再累加到總成績(jī)中。處理完12個(gè)成績(jī)后,循環(huán)結(jié)束。之后總成績(jī)除以人數(shù)即求得平均成績(jī)。本課件是可編輯的正常PPT課件/*ch04-01.c*/#include<stdio.h>intmain() {inti=1;floatScore,Ave=0;while(i<=12){scanf("%f",&Score);//輸入成績(jī)Ave+=Score;//計(jì)算總分i++;
//每執(zhí)行晚一次循環(huán)使i的值增加1}Ave/=12;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026湖南邵陽(yáng)市邵東市市直事業(yè)單位引進(jìn)博士研究生15人備考題庫(kù)及完整答案詳解一套
- 2026浙江寧波海發(fā)漁業(yè)科技有限公司招聘1人備考題庫(kù)及參考答案詳解一套
- 2026年檔案數(shù)字化管理規(guī)范操作課
- 2026年信創(chuàng)生態(tài)產(chǎn)品選型指南
- 2026西安經(jīng)開(kāi)第十四小學(xué)音樂(lè)教師招聘?jìng)淇碱}庫(kù)完整答案詳解
- 2026福建廈門(mén)市人工智能創(chuàng)新中心招聘42人備考題庫(kù)及完整答案詳解1套
- 2026甘肅天水鋰離子電池廠招聘?jìng)淇碱}庫(kù)及答案詳解1套
- 來(lái)料部門(mén)年終總結(jié)(3篇)
- 職業(yè)發(fā)展導(dǎo)向的虛擬仿真學(xué)習(xí)路徑規(guī)劃
- 職業(yè)健康干預(yù)的成本效益優(yōu)化
- DB21-T 4279-2025 黑果腺肋花楸農(nóng)業(yè)氣象服務(wù)技術(shù)規(guī)程
- 2026廣東廣州市海珠區(qū)住房和建設(shè)局招聘雇員7人考試參考試題及答案解析
- 2026新疆伊犁州新源縣總工會(huì)面向社會(huì)招聘工會(huì)社會(huì)工作者3人考試備考題庫(kù)及答案解析
- 廣東省汕頭市2025-2026學(xué)年高三上學(xué)期期末語(yǔ)文試題(含答案)(含解析)
- 2026年上海高考英語(yǔ)真題試卷+解析及答案
- JTG F40-2004 公路瀝青路面施工技術(shù)規(guī)范
- 三片飲料罐培訓(xùn)
- 副園長(zhǎng)個(gè)人發(fā)展規(guī)劃
- 第九屆、第十屆大唐杯本科AB組考試真總題庫(kù)(含答案)
- 統(tǒng)編部編版九年級(jí)下冊(cè)歷史全冊(cè)教案
- 商業(yè)地產(chǎn)策劃方案+商業(yè)地產(chǎn)策劃方案基本流程及-商業(yè)市場(chǎng)調(diào)查報(bào)告(購(gòu)物中心)
評(píng)論
0/150
提交評(píng)論