《C語(yǔ)言程序設(shè)計(jì)(第2版)(微課版)》全套教學(xué)課件_第1頁(yè)
《C語(yǔ)言程序設(shè)計(jì)(第2版)(微課版)》全套教學(xué)課件_第2頁(yè)
《C語(yǔ)言程序設(shè)計(jì)(第2版)(微課版)》全套教學(xué)課件_第3頁(yè)
《C語(yǔ)言程序設(shè)計(jì)(第2版)(微課版)》全套教學(xué)課件_第4頁(yè)
《C語(yǔ)言程序設(shè)計(jì)(第2版)(微課版)》全套教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩233頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)(第2版)第1章C語(yǔ)言程序設(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章

結(jié)構(gòu)體第9章

件第10章

位運(yùn)算全套可編輯PPT課件

第1章C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)內(nèi)容提要4

程序與程序設(shè)計(jì)語(yǔ)言12算法及其描述423C語(yǔ)言的發(fā)展及其特點(diǎn)42C語(yǔ)言的基本結(jié)構(gòu)425C語(yǔ)言程序的開(kāi)發(fā)環(huán)境24441本課件是可編輯的正常PPT課件1.1程序與程序設(shè)計(jì)語(yǔ)言軟件=程序+文檔=(數(shù)據(jù)結(jié)構(gòu)+算法)+文檔計(jì)算機(jī)程序是軟件開(kāi)發(fā)人員根據(jù)用戶需求開(kāi)發(fā)的、用程序設(shè)計(jì)語(yǔ)言描述的、適合計(jì)算機(jī)執(zhí)行的指令序列。布局管理類控制容器中的組件的大小和位置。為解決某一問(wèn)題而編寫的程序不是唯一的,不同的用戶編寫程序的思路也不會(huì)完全一樣,因此,不同程序的執(zhí)行效率不同,這涉及程序的優(yōu)化、程序所采用的數(shù)據(jù)結(jié)構(gòu)和算法等多方面的因素。本課件是可編輯的正常PPT課件1.1程序與程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)語(yǔ)言機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言本課件是可編輯的正常PPT課件1.2算法及其描述算法算法就是為了解決一個(gè)具體問(wèn)題而采取的方法和有限步驟,或者是指對(duì)解題方法準(zhǔn)確而完整的描述。算法的特征有窮性:有限個(gè)步驟之后終止。確切性:算法的每個(gè)步驟必須有確切的定義。輸入項(xiàng):以表示運(yùn)算對(duì)象的初始情況。輸出項(xiàng):反映對(duì)輸入數(shù)據(jù)加工后的結(jié)果可行性:每個(gè)計(jì)算步驟都可以在有限時(shí)間內(nèi)完成。高效性:執(zhí)行速度快,占用資源少。健壯性:對(duì)數(shù)據(jù)響應(yīng)正確。本課件是可編輯的正常PPT課件1.2算法及其描述算法可以使用自然語(yǔ)言、偽代碼、流程圖等多種不同的方法來(lái)描述通過(guò)采用流程圖來(lái)表達(dá)算法:清晰簡(jiǎn)潔,容易表達(dá)選擇結(jié)構(gòu),不依賴于任何具體的計(jì)算機(jī)語(yǔ)言,有利于不同環(huán)境下的程序設(shè)計(jì)。本課件是可編輯的正常PPT課件1.2算法及其描述【例1.2】用流程圖描述以下算法:從鍵盤輸入圓的半徑r,輸出圓的周長(zhǎng)l和面積s。算法步驟:

流程圖:輸入半徑r計(jì)算圓的周長(zhǎng)cl=2*PI*r計(jì)算圓的面積cs=PI*r2輸出結(jié)果本課件是可編輯的正常PPT課件1.3C語(yǔ)言的發(fā)展及其特點(diǎn)C語(yǔ)言的發(fā)展歷史CPL(CombinedProgrammingLanguage)1963年劍橋大學(xué)發(fā)明的BCPL(BaseCombinedProgrammingLanguage)-1967年

劍橋的MatinRichards對(duì)CPL做了簡(jiǎn)化,推出了BCPLB(BProgrammingLanguage)-1969貝爾實(shí)驗(yàn)室的KenThompson(肯?湯普森)對(duì)BCPL又做了改進(jìn),設(shè)計(jì)出了簡(jiǎn)單的且接近硬件的B語(yǔ)言,并用B語(yǔ)言寫了第一個(gè)UNIXOSC(CProgrammingLanguage)-1972年貝爾實(shí)驗(yàn)室的另外一個(gè)人DennisMacAlistairRitchie(D.M.Ritchie-DM里奇)在B的基礎(chǔ)上設(shè)計(jì)出了C語(yǔ)言。C保持了B的優(yōu)點(diǎn)(精煉、接近硬件),又克服了他的缺點(diǎn)(過(guò)于簡(jiǎn)單,數(shù)據(jù)無(wú)類型)C++(CplusplusProgrammingLanguage)-1983年還是貝爾實(shí)驗(yàn)室的人,BjarneStroustrup(本賈尼?斯特勞斯特盧普)在C語(yǔ)言的基礎(chǔ)上推出了C++,它擴(kuò)充和完善了C語(yǔ)言,特別是在面向?qū)ο缶幊谭矫?。一定程度上克服了C語(yǔ)言編寫大型程序時(shí)的不足。本課件是可編輯的正常PPT課件1.3C語(yǔ)言的發(fā)展及其特點(diǎn)C語(yǔ)言的特點(diǎn)(1)C語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活。(2)C語(yǔ)言有高級(jí)語(yǔ)言的特點(diǎn),又具有低級(jí)語(yǔ)言的一些功能(3)C語(yǔ)言是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,模塊化的程序設(shè)計(jì)。(4)C語(yǔ)言的運(yùn)算符豐富。(5)C語(yǔ)言的數(shù)據(jù)類型豐富,有現(xiàn)代化語(yǔ)言的各種數(shù)據(jù)類型。(6)C語(yǔ)言程序中可以使用編譯預(yù)處理命令,有利于提高程序質(zhì)量和軟件開(kāi)發(fā)的效率。(7)C語(yǔ)言生成的代碼質(zhì)量高。(8)C語(yǔ)言程序的可移植性好。本課件是可編輯的正常PPT課件1.4C語(yǔ)言的基本結(jié)構(gòu)(1)#include<…>是一條預(yù)編譯命令,聲明該程序使用stdio.h文件中的內(nèi)容,stdio.h中包含輸出函數(shù)printf()。預(yù)編譯命令以“#”開(kāi)頭,<>內(nèi)是被包含的文件名,<>也可以寫成一對(duì)雙引號(hào)(""),預(yù)編譯通常放在程序的最前面。(2)C程序由函數(shù)構(gòu)成,函數(shù)是C程序的基本單位。C程序中有且只有一個(gè)main()函數(shù),main()函數(shù)也稱主函數(shù),不管main()函數(shù)在程序中處在何種位置,C程序都從main()函數(shù)處開(kāi)始執(zhí)行。用{}括起來(lái)的是main()函數(shù)的函數(shù)體,所有的操作語(yǔ)句都放在{}中。(3)C程序中,每條語(yǔ)句都以“;”結(jié)束。本課件是可編輯的正常PPT課件1.5C語(yǔ)言程序的開(kāi)發(fā)環(huán)境C程序的執(zhí)行步驟C語(yǔ)言的上機(jī)執(zhí)行過(guò)程一般分為以下4個(gè)步驟:編輯C語(yǔ)言程序、編譯C語(yǔ)言程序、程序鏈接及運(yùn)行。本課件是可編輯的正常PPT課件1.5.1VisualC++6.0開(kāi)發(fā)C程序1.啟動(dòng)VisualC++6.02.新建工程,選擇:Win32ConsoleApplication(控制臺(tái)程序)本課件是可編輯的正常PPT課件1.5.1VisualC++6.0開(kāi)發(fā)C程序3.查看并編輯C語(yǔ)言源程序4.編譯、鏈接工程文件5.運(yùn)行程序,查看結(jié)果本課件是可編輯的正常PPT課件1.5.2DevC++開(kāi)發(fā)C程序1.啟動(dòng)DevC++2.新建工程,選擇:ConsoleApplication本課件是可編輯的正常PPT課件1.5.2DevC++開(kāi)發(fā)C程序3.編譯、鏈接工程文件4.運(yùn)行程序本課件是可編輯的正常PPT課件1.6C語(yǔ)言程序舉例【例1.3】在屏幕上打印輸出“九九乘法口決表”。本課件是可編輯的正常PPT課件1.6C語(yǔ)言程序舉例【例1.4】在屏幕上打印輸出“等腰三角形”,以8行等腰三角形的輸出為例。本課件是可編輯的正常PPT課件1.6C語(yǔ)言程序舉例【例1.5】求一元二次方程ax2+bx+c=0的根。本課件是可編輯的正常PPT課件本章小結(jié)(1)程序與程序設(shè)計(jì)語(yǔ)言主要介紹了計(jì)算機(jī)程序和程序設(shè)計(jì)語(yǔ)言的基本概念及應(yīng)用,以及編程語(yǔ)言從機(jī)器語(yǔ)言、匯編語(yǔ)言,到高級(jí)語(yǔ)言各自的特點(diǎn)。(2)算法及其描述主要介紹了算法的概念及其特征,算法的時(shí)間復(fù)雜度和空間復(fù)雜度;介紹了窮舉法、遞歸法、回溯法、貪心法、分治法等常用算法。(3)C語(yǔ)言的發(fā)展及其特點(diǎn)主要介紹了C語(yǔ)言發(fā)展的歷程,以及C語(yǔ)言不同于其他語(yǔ)言的特點(diǎn)。(4)C語(yǔ)言的基本結(jié)構(gòu)主要介紹了結(jié)構(gòu)化程序設(shè)計(jì)的優(yōu)點(diǎn)及設(shè)計(jì)思路,同時(shí)以實(shí)例的方式介紹了C程序的基本語(yǔ)句結(jié)構(gòu)。(5)C語(yǔ)言的開(kāi)發(fā)環(huán)境主要介紹了VisualC++6.0及DevC++兩種開(kāi)發(fā)環(huán)境,并以實(shí)例的方式給出了這兩種編輯器編寫與調(diào)試C程序的過(guò)程和步驟,最后給出了3個(gè)經(jīng)典C程序的實(shí)例。本課件是可編輯的正常PPT課件第2章順序結(jié)構(gòu)程序設(shè)計(jì)內(nèi)容提要41數(shù)據(jù)的表現(xiàn)形式12運(yùn)算符和表達(dá)式423C語(yǔ)句42數(shù)據(jù)的輸入輸出425順序結(jié)構(gòu)程序設(shè)計(jì)舉例2444本課件是可編輯的正常PPT課件2.1順序程序設(shè)計(jì)舉例【例2.1】輸入三角形的三邊長(zhǎng),求該三角形的面積。解題思路:已知三角形的三邊長(zhǎng)a,b,c,則該三角形的面積公式為:area=(s(s-a)(s-b)(s-c))/2其中s=(a+b+c)/2。本課件是可編輯的正常PPT課件2.2數(shù)據(jù)的表現(xiàn)形式-

2.2.1常量和變量常量:

在程序運(yùn)行過(guò)程中,其值不能被改變的量稱為常量。常量區(qū)分為不同的類型:整型100,125,-100,0實(shí)型3.14,0.125,-3.789字符型‘a(chǎn)’,‘b’,‘2’字符串‘a(chǎn)’,‘a(chǎn)b’,‘1232’本課件是可編輯的正常PPT課件2.2.1常量和變量變量:在程序執(zhí)行過(guò)程中,其值可以發(fā)生改變的量稱為變量。變量代表內(nèi)存中具有特定屬性的一個(gè)存儲(chǔ)單元,它用來(lái)存放數(shù)據(jù),這就是變量的值,在程序運(yùn)行期間,這些值是可以改變的。變量名實(shí)際上是一個(gè)以一個(gè)名字對(duì)應(yīng)代表一個(gè)地址,在對(duì)程序編譯連接時(shí)由編譯系統(tǒng)給每一個(gè)變量名分配對(duì)應(yīng)的內(nèi)存地址。從變量中取值,實(shí)際上是通過(guò)變量名找到相應(yīng)的內(nèi)存地址,從該存儲(chǔ)單元中讀取數(shù)據(jù)。本課件是可編輯的正常PPT課件2.2.2C語(yǔ)言的數(shù)據(jù)類型在計(jì)算機(jī)中,數(shù)據(jù)是存放在存儲(chǔ)單元中的,它是具體存在的。而且,存儲(chǔ)單元是由有限的字節(jié)構(gòu)成的,每一個(gè)存儲(chǔ)單元中存放數(shù)據(jù)的范圍是有限的。例如用C程序計(jì)算和輸出1/3: printf(“%f”,1.0/3.0);得到的結(jié)果是0.333333,只能得到6位小數(shù),而不是無(wú)窮多位的小數(shù)。所謂類型,就是對(duì)數(shù)據(jù)分配存儲(chǔ)單元的安排,包括存儲(chǔ)單元的長(zhǎng)度(占多少字節(jié))以及數(shù)據(jù)的存儲(chǔ)形式。不同的類型分配不同的長(zhǎng)度和存儲(chǔ)形式。

本課件是可編輯的正常PPT課件2.2.3整型數(shù)據(jù)基本整型(int型)不同的C編譯系統(tǒng)自動(dòng)給int型數(shù)據(jù)分配2個(gè)或4個(gè)字節(jié)。整型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)方式是以數(shù)值的補(bǔ)碼形式存放

·正數(shù)的補(bǔ)碼和原碼相同;

·負(fù)數(shù)的補(bǔ)碼:將該數(shù)的絕對(duì)值的二進(jìn)制形式按位取反再加1。如求-10的補(bǔ)碼:10的原碼:取反:再加1,得-10的補(bǔ)碼:本課件是可編輯的正常PPT課件2.2.3整型數(shù)據(jù)短整型(shortint)類型名為shortint或short。如用VisualC++6.0,編譯系統(tǒng)分配給int數(shù)據(jù)4個(gè)字節(jié),短整型2個(gè)字節(jié)。存儲(chǔ)方式與int型相同。長(zhǎng)整型(longint)類型名為longint或long,編譯系統(tǒng)分配給long數(shù)據(jù)4個(gè)字節(jié)。雙長(zhǎng)整型(longlongint)類型名為longlongint或longlong,編譯系統(tǒng)分配給longlong數(shù)據(jù)8個(gè)字節(jié)。這是新增的一個(gè)類型,許多C編譯系統(tǒng)尚未實(shí)現(xiàn)。

本課件是可編輯的正常PPT課件2.2.3整型數(shù)據(jù)

整型變量的分類:共六種有符號(hào)基本整型有符號(hào)短整型有符號(hào)長(zhǎng)整型無(wú)符號(hào)基本整型無(wú)符號(hào)短整型無(wú)符號(hào)長(zhǎng)整型(signed)int(signed)short(int)(signed)long(int)unsignedintunsignedshort(int)unsignedlong(int)

注意:括號(hào)表示其中的內(nèi)容是可選的.本課件是可編輯的正常PPT課件2.2.3整型數(shù)據(jù)TurboC整型數(shù)據(jù)常見(jiàn)的存儲(chǔ)空間和值的范圍:本課件是可編輯的正常PPT課件2.2.4實(shí)型數(shù)據(jù)實(shí)型常量實(shí)型也稱為浮點(diǎn)型。浮點(diǎn)型常量也稱為實(shí)數(shù)或者浮點(diǎn)數(shù)。在C語(yǔ)言中,浮點(diǎn)數(shù)采用十進(jìn)制。它有二種形式:十進(jìn)制小數(shù)形式、指數(shù)形式。實(shí)型變量實(shí)型變量分為:?jiǎn)尉龋╢loat型)、雙精度(double型)和長(zhǎng)雙精度(longdouble型)三類。本課件是可編輯的正常PPT課件2.2.5字符型數(shù)據(jù)字符常量字符常量是用單引號(hào)括起來(lái)的單個(gè)字符。例如:'x'、'y'、'='、'+'、'?'都是合法的字符常量。字符變量字符變量用來(lái)存儲(chǔ)字符常量,即存儲(chǔ)單個(gè)字符。字符變量的類型說(shuō)明符是char。字符變量類型定義的格式和書(shū)寫規(guī)則與整型變量相同。例如:chara,b;a=’c’;b=’s’;本課件是可編輯的正常PPT課件2.2.6字符串型數(shù)據(jù)字符串常量是由一對(duì)雙引號(hào)括起的字符序列。例如:"CHINA","Cprogram","$12.5"。

字符串常量和字符常量是不同的。兩者有以下區(qū)別:(1)字符常量由單引號(hào)括起來(lái),字符串由雙引號(hào)括起來(lái)。(2)字符常量只能是單個(gè)字符,字符串常量則可以含0個(gè)或多個(gè)字符。(3)字符常量占一個(gè)字節(jié)的內(nèi)存空間。字符串常量占的內(nèi)存字節(jié)數(shù)等于字符串中字符數(shù)加1。增加的一個(gè)字節(jié)中存放字符'\0'(ASCII碼為0)。這是字符串結(jié)束的標(biāo)志。本課件是可編輯的正常PPT課件2.3運(yùn)算符和表達(dá)式C語(yǔ)言中運(yùn)算符數(shù)量非常多,這些豐富的運(yùn)算符組成的表達(dá)式使C語(yǔ)言功能強(qiáng)大。C語(yǔ)言的運(yùn)算符有優(yōu)先級(jí)之分,同時(shí)具有結(jié)合性。而在表達(dá)式中,各個(gè)運(yùn)算量參與運(yùn)算的先后順序既要遵守運(yùn)算符的優(yōu)先級(jí)別,同時(shí)也要遵守運(yùn)算符結(jié)合性的制約,以便確定運(yùn)算的順序。本課件是可編輯的正常PPT課件2.3.1C運(yùn)算符C語(yǔ)言的運(yùn)算符總共可以分為以下幾類:(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)算符(sizeof)(10)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符((類型))(11)分量運(yùn)算符(.->)(12)下標(biāo)運(yùn)算符([])本課件是可編輯的正常PPT課件2.3.2算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符+(加法運(yùn)算符,或正值運(yùn)算符。如:3+5、+3)-(減法運(yùn)算符,或負(fù)值運(yùn)算符。如:5-2、-3)*(乘法運(yùn)算符。如:3*5)/(除法運(yùn)算符。如:5/3)%(模運(yùn)算符,或稱求余運(yùn)算符,%兩側(cè)均應(yīng)為整型數(shù)據(jù),如:7%4的值為3)。本課件是可編輯的正常PPT課件2.3.2算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性基本的算術(shù)運(yùn)算符:用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(也稱操作數(shù))連接起來(lái)的、符合C語(yǔ)法規(guī)

則的式子,稱為C算術(shù)表達(dá)式。運(yùn)算對(duì)象包括常量、變量、函數(shù)等。

例如:

a*b/c-1.5+′a′

是一個(gè)合法的表達(dá)式本課件是可編輯的正常PPT課件2.3.3關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系運(yùn)算符及其優(yōu)先次序C語(yǔ)言中有以下關(guān)系運(yùn)算符:(1)<(小于);(2)<=(小于等于);(3)>(大于);(4)>=(大于等于);(5)==(等于);(6)!=(不等于)。關(guān)系運(yùn)算符都是雙目運(yùn)算符,其結(jié)合性均為左結(jié)合。本課件是可編輯的正常PPT課件2.3.3關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系表達(dá)式

關(guān)系表達(dá)式的一般形式為:

表達(dá)式關(guān)系運(yùn)算符

表達(dá)式例如:a+b>c+d、x>5、a+1<c、-i-5*j==k+1都是合法的關(guān)系表達(dá)式【例2.2】計(jì)算以下關(guān)系表達(dá)式的值。本課件是可編輯的正常PPT課件2.3.4邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符及其優(yōu)先次序

C語(yǔ)言中提供了3種邏輯運(yùn)算符:(1)&&,與運(yùn)算;(2)||,或運(yùn)算;(3)!,非運(yùn)算。與運(yùn)算符“&&”和或運(yùn)算符“||”均為雙目運(yùn)算符。具有左結(jié)合性。非運(yùn)算符“!”為單目運(yùn)算符,具有右結(jié)合性。邏輯運(yùn)算符和其他運(yùn)算符優(yōu)先級(jí)的關(guān)系可表示如下:本課件是可編輯的正常PPT課件2.3.4邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算的值邏輯運(yùn)算的值也有“真”和“假”兩種,用“1”和“0”來(lái)表示。(1)與運(yùn)算(&&):參與運(yùn)算的兩個(gè)量都為“真”時(shí),結(jié)果才為“真”,否則為“假”。

如:5>0&&4>2(2)或運(yùn)算(||):參與運(yùn)算的兩個(gè)量只要有一個(gè)為“真”,結(jié)果就為“真”。兩個(gè)量都為“假”時(shí),結(jié)果為“假”。如:5>0||5>8(3)邏輯非運(yùn)算(!):參與運(yùn)算量為“真”時(shí),結(jié)果為“假”;參與運(yùn)算量為“假”時(shí),結(jié)果為“真”。如:!(5>0)本課件是可編輯的正常PPT課件2.3.4邏輯運(yùn)算符和邏輯表達(dá)式邏輯表達(dá)式

邏輯表達(dá)式的一般形式為:表達(dá)式

邏輯運(yùn)算符

表達(dá)式【例2.3】計(jì)算以下邏輯表達(dá)式的值。

本課件是可編輯的正常PPT課件2.4C語(yǔ)句C程序源程序文件1源程序文件2預(yù)處理命令數(shù)據(jù)聲明函數(shù)1函數(shù)首部函數(shù)體數(shù)據(jù)聲明執(zhí)行語(yǔ)句函數(shù)n源程序文件n本課件是可編輯的正常PPT課件2.4.1C語(yǔ)句的作用及分類一個(gè)c程序可以有若干個(gè)源程序文件組成一個(gè)源文件可以有若干個(gè)函數(shù)和預(yù)處理命令以及全局變量聲明部分組成一個(gè)函數(shù)有函數(shù)首部和函數(shù)體組成函數(shù)體由數(shù)據(jù)聲明和執(zhí)行語(yǔ)句組成C語(yǔ)句分為5類控制語(yǔ)句函數(shù)調(diào)用語(yǔ)句表達(dá)式語(yǔ)句空語(yǔ)句復(fù)合語(yǔ)句本課件是可編輯的正常PPT課件2.4.1C語(yǔ)句的作用及分類

控制語(yǔ)句:完成一定的控制功能

1.if~else

條件語(yǔ)句6.break間斷語(yǔ)句

2.for()循環(huán)語(yǔ)句7.

switch()開(kāi)關(guān)語(yǔ)句

3.while()循環(huán)語(yǔ)句8.

goto

轉(zhuǎn)向語(yǔ)句

4.do~while()循環(huán)語(yǔ)句9.

return返回語(yǔ)句

5.continue繼續(xù)語(yǔ)句本課件是可編輯的正常PPT課件2.4.1C語(yǔ)句的作用及分類函數(shù)調(diào)用語(yǔ)句

有一個(gè)函數(shù)調(diào)用加一個(gè)分號(hào)構(gòu)成一個(gè)語(yǔ)句

printf(“ThisisaCstatement.”);表達(dá)式語(yǔ)句

有一個(gè)表達(dá)式加一個(gè)分號(hào)構(gòu)成一個(gè)語(yǔ)句空語(yǔ)句只有一個(gè)分號(hào)的語(yǔ)句用來(lái)做流程的轉(zhuǎn)向點(diǎn)用來(lái)作為循環(huán)語(yǔ)句中的循環(huán)體

復(fù)合語(yǔ)句用一對(duì){}括起來(lái)的語(yǔ)句

本課件是可編輯的正常PPT課件2.4.2最基本的C語(yǔ)句--賦值語(yǔ)句賦值語(yǔ)句由賦值表達(dá)式加上一個(gè)分號(hào)構(gòu)成其一般形式為:變量=表達(dá)式;

如:a=100賦值表達(dá)式

a=100;賦值語(yǔ)句

本課件是可編輯的正常PPT課件2.5數(shù)據(jù)的輸入輸出C程序的數(shù)據(jù)輸入輸出是以計(jì)算機(jī)為主體而言的,從計(jì)算機(jī)向顯示器等設(shè)備傳輸信息稱為輸出,從鍵盤等設(shè)備向計(jì)算機(jī)傳輸信息稱為輸入。由于C語(yǔ)言本身不提供輸入輸出語(yǔ)言,所以數(shù)據(jù)的輸入輸出操作都是由標(biāo)準(zhǔn)函數(shù)庫(kù)中的函數(shù)來(lái)實(shí)現(xiàn)的。C標(biāo)準(zhǔn)庫(kù)提供了一些輸入輸出函數(shù),如常用的格式化輸出printf函數(shù)和輸入scanf函數(shù)等。需要使用C語(yǔ)言庫(kù)函數(shù)時(shí),要先用預(yù)編譯命令#include將相關(guān)的“頭文件”包括到源文件中。數(shù)據(jù)的輸入輸出庫(kù)函數(shù)所在的頭文件是”stdio.h”,所以我們要用預(yù)編譯指令#include<stdio.h>或者#include“stdio.h”本課件是可編輯的正常PPT課件2.5.1printf函數(shù)輸出數(shù)據(jù)printf函數(shù)和scanf函數(shù)是C程序中主要的輸出輸入函數(shù),兩者都是格式輸出輸入函數(shù),用戶在使用這兩個(gè)函數(shù)時(shí)需要指定輸入輸出數(shù)據(jù)的格式,不同類型的數(shù)據(jù)需要指定不同的格式。printf函數(shù)主要用來(lái)把若干的任意數(shù)據(jù)輸出到終端顯示器屏幕上,在前面的例題中我們已多次使用過(guò)這個(gè)函數(shù)。printf函數(shù)是一個(gè)標(biāo)準(zhǔn)庫(kù)函數(shù),它調(diào)用的一般形式為:printf(“格式控制”,輸出表列);例如:printf(“%d,%c”,i,c);其中括號(hào)中包含2個(gè)部分:①

格式控制是用來(lái)指定輸出格式的一個(gè)字符串。②

輸出列表是程序需要輸出的一些數(shù)據(jù),可以是常量、變量或表達(dá)式。輸出列表的輸出項(xiàng)與格式控制字符串在數(shù)量和類型上應(yīng)該一一對(duì)應(yīng)。本課件是可編輯的正常PPT課件2.5.1printf函數(shù)輸出數(shù)據(jù)【例2.4】本課件是可編輯的正常PPT課件2.5.2scanf函數(shù)輸入數(shù)據(jù)scanf函數(shù)是C語(yǔ)言中常用的格式輸入函數(shù),是用來(lái)從鍵盤上把數(shù)據(jù)按用戶指定的格式輸入到指定的變量之中。scanf函數(shù)的一般形式為:scanf(“格式控制”,地址表列)其中,格式控制的作用與printf函數(shù)相同。地址表列由若干個(gè)變量的地址或者字符串的首地址組成,變量地址是以地址運(yùn)算符“&”得到。例如: &a,&b分別表示變量a和變量b的地址。

本課件是可編輯的正常PPT課件2.5.2scanf函數(shù)輸入數(shù)據(jù)在使用scanf函數(shù)時(shí)應(yīng)注意:(1)scanf函數(shù)的“地址表列”應(yīng)該是變量地址,而不是變量名。如若a和b為整形變量,當(dāng)需要從鍵盤輸入兩者的值時(shí),必須寫成 scanf(“%d%d”,&a,&b)

而不是 scanf(“%d%d”,a,b)(2)如果在“格式控制”字符串中除了格式聲明外還有其他字符,則在輸入數(shù)據(jù)時(shí)需要在對(duì)應(yīng)的位置輸入與這些字符相同的字符,如 scanf(“a=%d,b=%d”,&a,&b);

則在輸入數(shù)據(jù)時(shí),需要輸入以下字符:

a=1,b=2↙

本課件是可編輯的正常PPT課件2.5.3字符數(shù)據(jù)的輸入輸出C語(yǔ)言中的字符數(shù)據(jù)同樣可以用printf函數(shù)和scanf函數(shù)輸出和輸入。除此之外,C函數(shù)庫(kù)還提供了一些專門用于輸入和輸出字符的函數(shù)。下面分別介紹。1.用putchar函數(shù)輸出一個(gè)字符 putchar函數(shù)的一般形式: putchar(c)

作用是從計(jì)算機(jī)向顯示器輸出字符變量c的值,顯然它是一個(gè)字符。

本課件是可編輯的正常PPT課件2.5.3字符數(shù)據(jù)的輸入輸出【例2.5】先后輸出dog三個(gè)字符。

解題思路:先定義三個(gè)字符變量,分別賦初始值’d’,’o’,’g’,然后用putchar函數(shù)輸出這3個(gè)變量的值。

本課件是可編輯的正常PPT課件2.5.3字符數(shù)據(jù)的輸入輸出2.用getchar函數(shù)輸入一個(gè)字符getchar函數(shù)的一般形式: a=getchar()

作用是從輸入設(shè)備(一般是鍵盤)向計(jì)算機(jī)輸入一個(gè)字符存放在a中【例2.6】實(shí)現(xiàn)從鍵盤輸入dog三個(gè)字符并將他們輸出顯示在屏幕上

本課件是可編輯的正常PPT課件本章小結(jié)本章主要闡述了順序結(jié)構(gòu)程序設(shè)計(jì)、C語(yǔ)言中數(shù)據(jù)的表現(xiàn)形式、運(yùn)算符和表達(dá)式及常用的輸入輸出語(yǔ)句。1.C語(yǔ)言包含的數(shù)據(jù)類型如下圖所示:本課件是可編輯的正常PPT課件本章小結(jié)2.在邏輯表達(dá)式運(yùn)算中應(yīng)注意,如果在某一步已得到了整個(gè)表達(dá)式結(jié)果,則后面的部分3.printf()與scanf()語(yǔ)句是最通用的輸入輸出函數(shù),它們可以在程序設(shè)計(jì)者的控制下以各種格式分別實(shí)現(xiàn)數(shù)據(jù)的輸出和輸入操作。它們位于stdio.h庫(kù)文件中。最簡(jiǎn)單的字符輸入輸出函數(shù)是getchar()和putchar()。兩者分別從鍵盤讀一個(gè)字符或向顯示屏寫一個(gè)字符。本課件是可編輯的正常PPT課件第3章選擇結(jié)構(gòu)程序設(shè)計(jì)內(nèi)容提要41選擇結(jié)構(gòu)程序舉例2選擇結(jié)構(gòu)和條件判斷423if語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)42選擇結(jié)構(gòu)的嵌套425switch語(yǔ)句多分支選擇結(jié)構(gòu)2444本課件是可編輯的正常PPT課件3.1選擇結(jié)構(gòu)程序舉例實(shí)際的生活中往往存在選擇分支的情況,一般來(lái)說(shuō),像拋硬幣之類的事件存在著正面和反面兩個(gè)分支,像選擇出行路徑之類的事件,往往存在多個(gè)分支,分支的不同將決定程序的不同行為表現(xiàn)。在C語(yǔ)言中,存在著兩種選擇語(yǔ)句:(1)if語(yǔ)句。if語(yǔ)句主要應(yīng)用在判斷條件為一個(gè)區(qū)間,一般為兩個(gè)分支的程序選擇中。(2)switch語(yǔ)句。switch語(yǔ)句主要應(yīng)用在判別條件為具體值時(shí),常用在具有多個(gè)分支的程序選擇中。上面兩個(gè)語(yǔ)句都是應(yīng)用選擇程序結(jié)構(gòu),后面章節(jié)將從簡(jiǎn)單的開(kāi)始,先介紹兩個(gè)選擇分支的if語(yǔ)句,再?gòu)碾p分支程序進(jìn)行擴(kuò)展,介紹多個(gè)選擇分支的switch語(yǔ)句。本課件是可編輯的正常PPT課件3.1選擇結(jié)構(gòu)程序舉例【例3.1】從一元二次方程的求根計(jì)算過(guò)程,演示選擇程序如何解決實(shí)際問(wèn)題。

要求:編程序求解一元二次方程的根,若無(wú)實(shí)根則打印說(shuō)明。

分析:如果要求一元二次方程

的根,則需要判斷

的值,如果

則有實(shí)根,如果

則沒(méi)有實(shí)根,然后再根據(jù)求根公式進(jìn)行計(jì)算。

算法流程:(1)獲得鍵盤輸入,得到三個(gè)系數(shù)a,b,c;(2)計(jì)算判斷條件

,若判斷條件

,跳轉(zhuǎn)到步驟(3),若判斷條件

,跳轉(zhuǎn)到步驟(4);(3)打印該二元一次方程沒(méi)有實(shí)根;(4)進(jìn)行求根公式計(jì)算,輸出一元二次方程的實(shí)根。本課件是可編輯的正常PPT課件3.1選擇結(jié)構(gòu)程序舉例編寫程序:本課件是可編輯的正常PPT課件3.2選擇結(jié)構(gòu)和條件判斷一個(gè)選擇結(jié)構(gòu)將伴隨著多個(gè)分支,這些分支代表著程序的執(zhí)行在不同條件下表現(xiàn)出不同的行為。假設(shè)一個(gè)程序需要輸出一個(gè)數(shù)的絕對(duì)值,可以得到如下的算法步驟。步驟一:從程序外輸入整數(shù)X步驟二:判斷輸入的整數(shù)X是否小于0若小于0執(zhí)行步驟三否則執(zhí)行步驟四步驟三:返回-X步驟四:返回X本課件是可編輯的正常PPT課件3.2選擇結(jié)構(gòu)和條件判斷代碼實(shí)現(xiàn):本課件是可編輯的正常PPT課件3.2選擇結(jié)構(gòu)和條件判斷如上代碼所示,條件判斷對(duì)應(yīng)的代碼為: if(x<0)其雙分支為: if(x<0) return-x; else returnx;當(dāng)x<0的條件為真,則返回-x,條件為假,則返回x。本課件是可編輯的正常PPT課件3.3if語(yǔ)句實(shí)現(xiàn)條件判斷-3.3.1if語(yǔ)句處理選擇結(jié)構(gòu)舉例【例3.2】明天不下雨就去郊游(條件為不下雨)算法的步驟:步驟一:獲取天氣輸入,將輸入進(jìn)來(lái)的字符串保存在str_weather變量中;步驟二:判斷str_weather是否不等于“rainday”,若為真則執(zhí)行步驟三,否則不執(zhí)行任何操作。

步驟三:打印明天去郊游:Goforanoutingtomorrow!本課件是可編輯的正常PPT課件3.3.1if語(yǔ)句處理選擇結(jié)構(gòu)舉例編寫代碼:本課件是可編輯的正常PPT課件3.3.1if語(yǔ)句處理選擇結(jié)構(gòu)舉例例3.2中if語(yǔ)句的執(zhí)行順序流程如下圖3-2:開(kāi)關(guān)型if圖3-2開(kāi)關(guān)型if本課件是可編輯的正常PPT課件3.3.1if語(yǔ)句處理選擇結(jié)構(gòu)舉例if語(yǔ)句的三種應(yīng)用與程序流程圖:簡(jiǎn)化的if語(yǔ)句if-else雙分支語(yǔ)句if-else-if雙分支語(yǔ)句本課件是可編輯的正常PPT課件3.3.2簡(jiǎn)單的if結(jié)構(gòu)if語(yǔ)句的最簡(jiǎn)單形式 if(表達(dá)式)語(yǔ)句1【例3.3】考試分?jǐn)?shù)低于60分為不及格(條件為分?jǐn)?shù)大?。?。本課件是可編輯的正常PPT課件3.3.3if-else語(yǔ)句結(jié)構(gòu)if-else分支結(jié)構(gòu)形式 if(表達(dá)式)語(yǔ)句1[else語(yǔ)句2]【例3.4】考試分?jǐn)?shù)低于60分為不及格,大于或等于60分為及格(條件以分?jǐn)?shù)超過(guò)60為界)。本課件是可編輯的正常PPT課件3.3.4if-else-if語(yǔ)句結(jié)構(gòu)【例3.5】考試分?jǐn)?shù)小于60分為不及格,大于或等于60分小于70分為合格,大于或等于70分小于80分為良好,大于80分為優(yōu)秀(條件為分?jǐn)?shù)大?。┻@是一個(gè)擁有多重判斷條件的問(wèn)題,思路分析如下:(1)對(duì)于分?jǐn)?shù)的評(píng)價(jià)是與分?jǐn)?shù)的區(qū)間有關(guān)(2)分?jǐn)?shù)區(qū)間的邊界為具體的某個(gè)整數(shù)(3)分?jǐn)?shù)區(qū)間具有左關(guān)右開(kāi)的特征,具體為:[0,60),[60,70),[70,80),[80,100]根據(jù)上面的三點(diǎn),可以理清程序的二分設(shè)計(jì)思路步驟一:選擇某個(gè)數(shù)值進(jìn)行判斷步驟二:將這個(gè)數(shù)值左邊的視為某一個(gè)評(píng)價(jià)區(qū)間,右邊的為多個(gè)區(qū)間進(jìn)行混合,重復(fù)步驟一、二,最終將分?jǐn)?shù)區(qū)間進(jìn)行判斷。本課件是可編輯的正常PPT課件3.3.4if-else-if語(yǔ)句結(jié)構(gòu)編寫代碼:本課件是可編輯的正常PPT課件3.4選擇結(jié)構(gòu)的嵌套-3.4.2嵌套if語(yǔ)句與程序流程圖if語(yǔ)句的嵌套。具體的代碼模式如下:if(<!--判斷條件1-->)//外層if{ if(<!--判斷條件2-->)//內(nèi)層if {/*判斷條件2為真*/} else {/*判斷條件2為假*/}

if(<!--判斷條件3-->)//內(nèi)層if {/*判斷條件3為真*/} else {/*判斷條件3為假*/}}else{...}本課件是可編輯的正常PPT課件3.4.2嵌套if語(yǔ)句與程序流程圖圖3-5:if語(yǔ)句嵌套流程圖本課件是可編輯的正常PPT課件3.4.2if語(yǔ)句的嵌套應(yīng)用【例3.6】比較復(fù)雜的行李托運(yùn)情景:

低于20公斤的行李免托運(yùn)費(fèi),高于20公斤低于40公斤部分收1.5元/公斤,高于40公斤部分則按2.0元/公斤(條件為行李重量)

會(huì)員托運(yùn)消費(fèi)打八折(條件為會(huì)員身份)定義算法步驟:步驟一:獲得用戶輸入的行李重量,保存在整型變量weight中步驟二:創(chuàng)建運(yùn)費(fèi)計(jì)量變量money,使用整型類型聲明步驟三:創(chuàng)建會(huì)員身份標(biāo)識(shí)vip,使用整形類型聲明(1為會(huì)員,0不為會(huì)員)步驟四:獲取用戶輸入行李重量以及會(huì)員身份標(biāo)識(shí)步驟五:判斷weight是否高于20,若為否執(zhí)行步驟六,否則執(zhí)行步驟十一步驟六:判斷(weight-20)是否高于20,若為是,執(zhí)行步驟七,否則執(zhí)行步驟八步驟七:計(jì)算20與1.5的乘積加上(weight-40)與2的乘積并將結(jié)果賦值給money步驟八:計(jì)算(weight-20)與1.5的乘積并將結(jié)果賦值給money步驟九:判斷vip值是否等于1,是執(zhí)行步驟十,否則執(zhí)行步驟十一步驟十:計(jì)算money與0.8的乘積并將結(jié)果賦值給money步驟十一:打印所需要的運(yùn)費(fèi)

本課件是可編輯的正常PPT課件3.4.2if語(yǔ)句的嵌套應(yīng)用編寫代碼:

本課件是可編輯的正常PPT課件3.4.2if語(yǔ)句的嵌套應(yīng)用針對(duì)上面的結(jié)果做簡(jiǎn)單的驗(yàn)證,由于是vip會(huì)員身份,可以得到下列的計(jì)算公式代入數(shù)值為

可以驗(yàn)算計(jì)算結(jié)果的正確性。

注意:在這里涉及到整型與浮點(diǎn)數(shù)的數(shù)據(jù)類型的轉(zhuǎn)換,在c語(yǔ)言中要聲明一個(gè)常量的數(shù)據(jù)類型可以在常量后面加上數(shù)據(jù)類型相關(guān)的縮寫,例如:2.f(單精度常量),123456789012345L(長(zhǎng)整形常量)。同時(shí)if語(yǔ)句的嵌套特性決定了if語(yǔ)句可以進(jìn)行多重嵌套,但是在實(shí)際應(yīng)用場(chǎng)景中,應(yīng)該注意設(shè)計(jì)程序算法流程,在能夠使用if-else-if解決問(wèn)題的時(shí)候,不建議使用if語(yǔ)句的嵌套,以提高代碼的可讀性。

本課件是可編輯的正常PPT課件3.5switch語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)由于在邏輯結(jié)構(gòu)上,分支的形式不止雙分支。在C語(yǔ)言中可以通過(guò)switch關(guān)鍵字進(jìn)行多分支結(jié)構(gòu)的實(shí)現(xiàn)。例如,監(jiān)控用戶的輸入,如果輸入為大寫’A’,’B’,’C’則替換為小寫,否則直接返回。

本課件是可編輯的正常PPT課件3.5.1多分支結(jié)構(gòu)一般形式switch語(yǔ)句的一般形式如下:switch(表達(dá)式){ case常量1:語(yǔ)句1 case常量2:語(yǔ)句2 case常量3:語(yǔ)句3 ……… case常量n:語(yǔ)句n default:語(yǔ)句n+1}本課件是可編輯的正常PPT課件3.5.1多分支結(jié)構(gòu)一般形式switch語(yǔ)句的一般形式如下:switch(表達(dá)式){ case常量1:語(yǔ)句1 case常量2:語(yǔ)句2 case常量3:語(yǔ)句3 ……… case常量n:語(yǔ)句n default:語(yǔ)句n+1}本課件是可編輯的正常PPT課件3.5.1多分支結(jié)構(gòu)一般形式(5)每個(gè)case后面的常量必須互不相同,否則會(huì)出現(xiàn)矛盾的現(xiàn)象(同值不同的入口沖突)。(6)case標(biāo)號(hào)只起標(biāo)記作用,在執(zhí)行switch語(yǔ)句時(shí),根據(jù)switch表達(dá)式的值找到入口,在執(zhí)行一個(gè)case語(yǔ)句后會(huì)順序執(zhí)行下去,直到遇到break語(yǔ)句跳出順序執(zhí)行。(7)在case語(yǔ)句中如果包含了一個(gè)以上的執(zhí)行語(yǔ)句,可不必加花括號(hào),程序執(zhí)行的時(shí)候會(huì)順序執(zhí)行。當(dāng)然加花括號(hào)括起來(lái)也不會(huì)有影響。(8)多個(gè)case語(yǔ)句可以共用一個(gè)執(zhí)行語(yǔ)句,例如:case‘A’:case‘B’:case‘C’:b++;本課件是可編輯的正常PPT課件3.5.1多分支結(jié)構(gòu)一般形式使用switch應(yīng)注意以下問(wèn)題:要注意以下幾點(diǎn)switch括號(hào)內(nèi)的“表達(dá)式”,應(yīng)該為整形(包括字符型)。(2)switch下面的花括號(hào)是一個(gè)復(fù)合語(yǔ)句。意味著包含若干語(yǔ)句,它是switch語(yǔ)句的語(yǔ)句體。語(yǔ)句體內(nèi)包括多個(gè)以關(guān)鍵字case開(kāi)頭的語(yǔ)句行和一個(gè)以default開(kāi)頭的語(yǔ)句行,case后面跟著一個(gè)常量或常量表達(dá)式,在表達(dá)式后面需要跟一個(gè)冒號(hào)。如case’A’:,case0:等。(3)switch語(yǔ)句執(zhí)行的時(shí)候,先計(jì)算括號(hào)內(nèi)表達(dá)的值,將這個(gè)值與case后面的常量作匹配,如果匹配成功,則進(jìn)入該case所表3.5.2多分支語(yǔ)句的實(shí)際應(yīng)用示的分支。(4)如果沒(méi)有與任何case后面的常量相匹配,則執(zhí)行default后面的(n+1)語(yǔ)句。可以沒(méi)有default標(biāo)號(hào)及后面的(n+1)語(yǔ)句,此時(shí)如果沒(méi)有與任何case后面的常量相匹配,則不執(zhí)行任何語(yǔ)句。本課件是可編輯的正常PPT課件3.5.2多分支語(yǔ)句的實(shí)際應(yīng)用在前面的章節(jié)中曾經(jīng)用if語(yǔ)句介紹過(guò)成績(jī)分段評(píng)價(jià)的例子,以下程序的目的是輸入一個(gè)成績(jī)?nèi)缓笈袛嘣摮煽?jī)的區(qū)間段位。由于成績(jī)的分段之間不存在層級(jí)的邏輯關(guān)系,同時(shí)分段為多段分段,可以采用多分支結(jié)構(gòu)來(lái)編程。if語(yǔ)句適合于區(qū)間分段,而switch只適合以點(diǎn)分段。但仔細(xì)觀察分?jǐn)?shù)分段的結(jié)構(gòu)[0,60),[60,70),[70,80),[80,100],會(huì)發(fā)現(xiàn)分段的邊界都是10的整數(shù)倍,利用整數(shù)除法的性質(zhì)做歸一化處理,得出判斷表達(dá)式以及入口常量。本課件是可編輯的正常PPT課件3.5.2多分支語(yǔ)句的實(shí)際應(yīng)用【例3.7】下面是使用switch解決問(wèn)題的代碼:本課件是可編輯的正常PPT課件本章小結(jié)本節(jié)闡述了選擇結(jié)構(gòu)控制語(yǔ)句:if、if-else、if-else和switch語(yǔ)句的具體用法。

1.在if語(yǔ)句中,應(yīng)該注意if語(yǔ)句中的表達(dá)式可以為所有的合法的表達(dá)式。

例如:

inta=1;

if(a=0)printf(“Yes”);

elseprintf(“No”); 2.在if語(yǔ)句3種形式中,如果要想在滿足條件是執(zhí)行一組語(yǔ)句,必須使用{}括起來(lái)一個(gè)復(fù)合語(yǔ)句,但在{}后面不能加分號(hào)。

3.在使用switch()語(yǔ)句時(shí)應(yīng)注意:在case后的各個(gè)常量表達(dá)式值都不能相同;case后允許有多個(gè)語(yǔ)句,可以不用{}括起來(lái);若每個(gè)分支后,都有break語(yǔ)句,則各case和default子句先后順序可以變動(dòng)而不影響程序結(jié)果;default子句可以省略不用。本課件是可編輯的正常PPT課件第4章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)內(nèi)容提要41

循環(huán)結(jié)構(gòu)程序舉例2while語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)423do-while語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)42for語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)45幾種循環(huán)結(jié)構(gòu)的比較244442循環(huán)的嵌套2427改變循環(huán)執(zhí)行的狀態(tài)42446本課件是可編輯的正常PPT課件4.1循環(huán)結(jié)構(gòu)程序舉例首先,考慮這樣一個(gè)問(wèn)題:在屏幕上依次輸出整數(shù)1~20,每?jī)蓚€(gè)整數(shù)中間空一個(gè)格。使用順序結(jié)構(gòu),可以這樣解決這個(gè)問(wèn)題:毫無(wú)疑問(wèn),這個(gè)程序的語(yǔ)法是正確的,編譯、運(yùn)行后可解決問(wèn)題。但是這并不是一個(gè)好的程序,因?yàn)檫@樣的程序有一定的局限性。如果題目要求輸出整數(shù)1~2000,那又該如何編寫呢?這時(shí)就可以運(yùn)用循環(huán)結(jié)構(gòu)程序設(shè)計(jì)的思想。本課件是可編輯的正常PPT課件4.1循環(huán)結(jié)構(gòu)程序舉例在程序設(shè)計(jì)中,但凡是重復(fù)性的工作,都要想辦法用循環(huán)語(yǔ)句來(lái)實(shí)現(xiàn)。比如,在這個(gè)問(wèn)題上,解決的思路就應(yīng)該是從輸出1開(kāi)始,每次輸出一個(gè)比前一個(gè)數(shù)大1的整數(shù),重復(fù)循環(huán)20次。使用循環(huán)結(jié)構(gòu)來(lái)解決問(wèn)題,首先要定義一個(gè)循環(huán)變量i,從1到20,循環(huán)剛好進(jìn)行20次。i的初值是1,當(dāng)i小于等于20時(shí),循環(huán)結(jié)構(gòu)做兩件事:輸出i值,以及將i增加1。由于每次循環(huán)使i增加1,i將逐漸增加,增加到21時(shí),便不再滿足i小于等于20的循環(huán)條件,則循環(huán)結(jié)束。本課件是可編輯的正常PPT課件4.1循環(huán)結(jié)構(gòu)程序舉例通過(guò)上述實(shí)例可知,在程序中僅僅使用順序結(jié)構(gòu)和選擇結(jié)構(gòu)是遠(yuǎn)遠(yuǎn)不夠的,還需要用到循環(huán)結(jié)構(gòu)。因?yàn)樵谌粘I钪谢蛘呤翘幚沓绦騿?wèn)題時(shí),經(jīng)常會(huì)出現(xiàn)許多需要重復(fù)處理的問(wèn)題。在例4.1中,可以看到,使用循環(huán)結(jié)構(gòu)(如while語(yǔ)句)可以更加方便簡(jiǎn)潔地輸出1~20的整數(shù)。雖然這個(gè)問(wèn)題使用順序結(jié)構(gòu)也可以解決,但是使用順序結(jié)構(gòu)存在一個(gè)很大的弊端,那就是如果問(wèn)題中需要輸出一個(gè)更大范圍的整數(shù),如1~20000,使用順序結(jié)構(gòu)程序就會(huì)非常冗長(zhǎng),工作量也會(huì)明顯增大,且不便于閱讀與維護(hù)。本課件是可編輯的正常PPT課件4.2while語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)

while語(yǔ)句的一般形式如下:

while(表達(dá)式)語(yǔ)句

while語(yǔ)句的功能:

首先計(jì)算表達(dá)式的值,如果表達(dá)式的值非零(真),那么執(zhí)行“語(yǔ)句”,然后再次計(jì)算表達(dá)式的值,重復(fù)執(zhí)行此過(guò)程,直到表達(dá)式的值為零(假),循環(huán)結(jié)束。重復(fù)執(zhí)行的語(yǔ)句稱為循環(huán)體,表達(dá)式稱為循環(huán)判別表達(dá)式。while語(yǔ)句的流程圖如圖4-3所示。本課件是可編輯的正常PPT課件4.2while語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)【例4.2】用while語(yǔ)句求1+2+3+…+100的值。算法分析:

(1)此題有一個(gè)明顯的特征,即重復(fù)執(zhí)行加法動(dòng)作,是將100個(gè)數(shù)進(jìn)行累加的問(wèn)題。那么就可以想到使用循環(huán)結(jié)構(gòu)來(lái)解決,通過(guò)循環(huán)執(zhí)行加法運(yùn)算,執(zhí)行100次。(2)接下來(lái)分析累加的數(shù)值有什么變化規(guī)律。通過(guò)觀察,可以發(fā)現(xiàn)累加的數(shù)都有一個(gè)規(guī)律,就是后一個(gè)數(shù)等于前一個(gè)數(shù)加1。所以,可以在每次循環(huán)加法運(yùn)算的同時(shí),對(duì)累加的數(shù)進(jìn)行自加1操作,得到下一個(gè)數(shù)。

本課件是可編輯的正常PPT課件4.2while語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)流程圖:代碼如下:

本課件是可編輯的正常PPT課件4.2while語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)使用while語(yǔ)句時(shí),需要注意以下問(wèn)題。(1)循環(huán)次數(shù)的控制要正確。使用循環(huán)結(jié)構(gòu)時(shí),可以通過(guò)循環(huán)變量來(lái)控制循環(huán)次數(shù),例4.1和例4.2都是通過(guò)循環(huán)變量i來(lái)控制循環(huán)次數(shù)的,前者是20次,后者是100次。(2)循環(huán)體包含一個(gè)以上的語(yǔ)句時(shí),一定要用{}括起來(lái),否則,程序只將第一條語(yǔ)句作為循環(huán)體。(3)在循環(huán)體內(nèi)要有使循環(huán)趨于結(jié)束的語(yǔ)句,否則,可能導(dǎo)致無(wú)限循環(huán)。本課件是可編輯的正常PPT課件4.3do-while語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)do-while語(yǔ)句的一般形式如下:while語(yǔ)句的功能:先執(zhí)行“語(yǔ)句”,再計(jì)算表達(dá)式的值。如果表達(dá)式的值為非零(真),繼續(xù)執(zhí)行“語(yǔ)句”,直到表達(dá)式的值為零(假),循環(huán)結(jié)束。流程圖:本課件是可編輯的正常PPT課件4.3do-while語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)注意:do-while語(yǔ)句與while語(yǔ)句的區(qū)別在于,do-while語(yǔ)句先執(zhí)行一次循環(huán)體,再進(jìn)行表達(dá)式的判斷,因此循環(huán)體中的語(yǔ)句至少要執(zhí)行一次。在設(shè)計(jì)程序時(shí),如果不知道重復(fù)執(zhí)行的次數(shù),而且第一次必須執(zhí)行時(shí),常采用do-while語(yǔ)句。理解了do-while語(yǔ)句與while語(yǔ)句之間的區(qū)別之后,可以將例4.1和例4.2采用do-while語(yǔ)句的形式進(jìn)行編寫。本課件是可編輯的正常PPT課件4.3do-while語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)【例4.3】用do-while語(yǔ)句解決“在屏幕上輸出整數(shù)1~20”的問(wèn)題。本課件是可編輯的正常PPT課件4.3do-while語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)【例4.4】用do-while語(yǔ)句求1+2+3+…+100的值。本課件是可編輯的正常PPT課件4.3do-while語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)使用do-while語(yǔ)句時(shí),需要注意以下問(wèn)題。(1)為了避免誤讀,do-while語(yǔ)句的循環(huán)體中即使只有一條語(yǔ)句,也要用{}括起來(lái)。(2)使用do-while語(yǔ)句時(shí)切勿忘記while(表達(dá)式)后需要添加“;”。本課件是可編輯的正常PPT課件4.4for語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)for語(yǔ)句一般形式如下:流程圖:

本課件是可編輯的正常PPT課件4.4for語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)通過(guò)流程圖可以看出,for語(yǔ)句實(shí)際等價(jià)于下面的while語(yǔ)句:本課件是可編輯的正常PPT課件4.4for語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)for語(yǔ)句中,3個(gè)表達(dá)式的作用如下。表達(dá)式1:設(shè)置初始條件,只執(zhí)行一次??梢詾?個(gè)、1個(gè)或者多個(gè)變量設(shè)置初值。表達(dá)式2:是循環(huán)條件判別表達(dá)式,用來(lái)判斷是否繼續(xù)循環(huán)。每次執(zhí)行循環(huán)體前,先執(zhí)行此表達(dá)式,決定是否繼續(xù)執(zhí)行循環(huán)體。表達(dá)式3:作為循環(huán)中的調(diào)整,用來(lái)設(shè)置循環(huán)變量的變化方式并修改循環(huán)變量。因此,for語(yǔ)句的功能可以用下面的過(guò)程來(lái)描述。(1)計(jì)算表達(dá)式1。(2)計(jì)算表達(dá)式2,判斷表達(dá)式2是否為真,若為真,則執(zhí)行循環(huán)體中的“語(yǔ)句”,跳轉(zhuǎn)到(3)執(zhí)行。若為假,則循環(huán)結(jié)束,退出循環(huán)。(3)計(jì)算表達(dá)式3。(4)跳轉(zhuǎn)到(2)執(zhí)行。本課件是可編輯的正常PPT課件4.4for語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)【例4.5】用for語(yǔ)句求1+2+3+…+100的值。本課件是可編輯的正常PPT課件4.4for語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)使用for語(yǔ)句時(shí),需要注意以下問(wèn)題。(1)for循環(huán)中的表達(dá)式1(循環(huán)變量賦初值)、表達(dá)式2(循環(huán)條件)、表達(dá)式3(循環(huán)變量增量)都是選擇項(xiàng),可以省略,但“;”不能省略。(2)省略表達(dá)式1(為循環(huán)變量賦初值),表示不對(duì)循環(huán)控制變量賦初值。(3)省略表達(dá)式2(循環(huán)條件),表示不對(duì)循環(huán)控制變量檢測(cè),注意可能成為死循環(huán)。例如:for(i=1;;i++)sum=sum+i;相當(dāng)于:i=1;while(1){sum=sum+i;i++;}本課件是可編輯的正常PPT課件4.4for語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)4)省略表達(dá)式3(循環(huán)變量增量),則不對(duì)循環(huán)控制變量進(jìn)行修改,這時(shí)可在語(yǔ)句體中加入修改循環(huán)控制變量的語(yǔ)句。例如:for(i=1;i<=100;){sum=sum+i;i++;}(5)省略表達(dá)式1(為循環(huán)變量賦初值)和表達(dá)式3(循環(huán)變量增量)。例如:for(;i<=100;){sum=sum+i;i++;}相當(dāng)于:

while(i<=100) {sum=sum+i; i++;}本課件是可編輯的正常PPT課件4.4for語(yǔ)句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)(6)3個(gè)表達(dá)式都省略。例如:for(;;)相當(dāng)于:while(1)(7)表達(dá)式1可以是設(shè)置循環(huán)變量初值的賦值表達(dá)式,也可以是其他表達(dá)式。例如:for(sum=0;i<=100;i++)sum=sum+i;(8)表達(dá)式1和表達(dá)式3可以是一個(gè)簡(jiǎn)單表達(dá)式,也可以是逗號(hào)表達(dá)式。(9)表達(dá)式2一般是關(guān)系表達(dá)式或邏輯表達(dá)式,但也可是數(shù)值表達(dá)式或字符表達(dá)式,只要其值非零,就執(zhí)行循環(huán)體。例如:for(i=0;(c=getchar())!=’\n’;i+=c);又如:for(;(c=getchar())!=’\n’;)printf("%c",c);本課件是可編輯的正常PPT課件4.5幾種循環(huán)結(jié)構(gòu)的比較首先,3種循環(huán)結(jié)構(gòu)可以用來(lái)處理同一個(gè)問(wèn)題,一般情況下,它們是可以相互替換的。但是,具體的語(yǔ)法結(jié)構(gòu)仍然有些不同,比如在while循環(huán)和do-while循環(huán)中,只在while后面的圓括號(hào)內(nèi)指定循環(huán)條件,若想要使循環(huán)能夠正常結(jié)束,避免出現(xiàn)死循環(huán)現(xiàn)象,則應(yīng)該在循環(huán)體中包含可以使循環(huán)趨于結(jié)束的語(yǔ)句(如i++,i??等)。但是for循環(huán)語(yǔ)句便無(wú)須此類操作,因?yàn)閒or語(yǔ)句中的表達(dá)式3就包含了使循環(huán)趨于結(jié)束的操作。在用while和do-while循環(huán)時(shí),循環(huán)變量的初始化操作必須在while語(yǔ)句和do-while語(yǔ)句之前完成。而for語(yǔ)句可以在表達(dá)式1中實(shí)現(xiàn)循環(huán)變量的初始化。本課件是可編輯的正常PPT課件4.6循環(huán)結(jié)構(gòu)的嵌套循環(huán)的嵌套又稱多重循環(huán),就是在一個(gè)循環(huán)體內(nèi)包含另外一個(gè)循環(huán)體。3種循環(huán)結(jié)構(gòu)(while循環(huán)、do-while循環(huán)和for循環(huán)),不僅可以實(shí)現(xiàn)自身循環(huán)嵌套,還可以相互嵌套。下面,來(lái)看一下常見(jiàn)的幾種循環(huán)嵌套形式,如圖4-12所示。本課件是可編輯的正常PPT課件4.6循環(huán)結(jié)構(gòu)的嵌套幾種常見(jiàn)的循環(huán)嵌套形式:本課件是可編輯的正常PPT課件4.7改變循環(huán)執(zhí)行的狀態(tài)以上介紹的各種循環(huán)結(jié)構(gòu)的例子都是根據(jù)事先指定的循環(huán)條件正常執(zhí)行及終止的循環(huán)。但是在某種情況下,必須提前結(jié)束正在執(zhí)行的循環(huán)操作,又該如何處理呢?本課件是可編輯的正常PPT課件4.7.1break語(yǔ)句提前終止循環(huán)break語(yǔ)句在前面介紹switch語(yǔ)句時(shí)出現(xiàn)過(guò),它也可以用于循環(huán)語(yǔ)句。break語(yǔ)句的語(yǔ)法格式為:break;break語(yǔ)句用于switch語(yǔ)句時(shí),將直接跳出switch語(yǔ)句。break語(yǔ)句用于循環(huán)體時(shí),將終止語(yǔ)句所在的循環(huán),從包含它的循環(huán)語(yǔ)句(while、do-while、for)中退出,執(zhí)行循環(huán)語(yǔ)句后的下一條語(yǔ)句。本課件是可編輯的正常PPT課件4.7.1break語(yǔ)句提前終止循環(huán)【例4.6】全系1000名學(xué)生進(jìn)行慈善募捐,當(dāng)總額達(dá)到10萬(wàn)元時(shí)結(jié)束,統(tǒng)計(jì)此時(shí)捐款的人數(shù),以及平均每人捐款的數(shù)額。本課件是可編輯的正常PPT課件4.7.2continue語(yǔ)句提前結(jié)束本次循環(huán)循環(huán)結(jié)構(gòu)中不單單只有希望終止整個(gè)循環(huán)的操作,有時(shí)是希望可以提前結(jié)束當(dāng)前的循環(huán),而緊接著繼續(xù)執(zhí)行下一次循環(huán)操作。這時(shí)就需要用到continue語(yǔ)句。continue語(yǔ)句一般形式如下:continue;continue語(yǔ)句的功能:使continue語(yǔ)句所在的循環(huán)立即結(jié)束本輪循環(huán)而開(kāi)始下一輪循環(huán)(即本次循環(huán)中continue后面的語(yǔ)句不再執(zhí)行)。continue語(yǔ)句用在while和do-while語(yǔ)句中與用在for語(yǔ)句中略有不同,在for語(yǔ)句中將終止本次循環(huán)體運(yùn)行,但是仍要計(jì)算表達(dá)式3。本課件是可編輯的正常PPT課件4.7.2continue語(yǔ)句提前結(jié)束本次循環(huán)【例4.7】要求輸出100~200之間不能被3整除的數(shù)。本課件是可編輯的正常PPT課件4.7.3break語(yǔ)句和continue語(yǔ)句的區(qū)別根據(jù)以上分析可知,continue語(yǔ)句只結(jié)束本次循環(huán),而不終止整個(gè)循環(huán)。而break語(yǔ)句是終止整個(gè)循環(huán),不再執(zhí)行循環(huán)體。通過(guò)流程圖可以更加直觀地看到兩者之間的區(qū)別,如圖4-15所示。本課件是可編輯的正常PPT課件本章小結(jié)(1)while語(yǔ)句語(yǔ)法格式如下:while(表達(dá)式)語(yǔ)句執(zhí)行過(guò)程:先計(jì)算表達(dá)式的值,若值為真(非0),則執(zhí)行循環(huán)體語(yǔ)句,否則退出循環(huán)。(2)do-while語(yǔ)句語(yǔ)法格式如下:do語(yǔ)句while(表達(dá)式);執(zhí)行過(guò)程:先執(zhí)行一次循環(huán)體語(yǔ)句,然后判斷表達(dá)式的值,若值為真(非0),則繼續(xù)執(zhí)行循環(huán),否則終止循環(huán)。do-while語(yǔ)句的循環(huán)體至少被執(zhí)行一次。本課件是可編輯的正常PPT課件本章小結(jié)(3)for語(yǔ)句語(yǔ)法格式如下:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)語(yǔ)句執(zhí)行過(guò)程:先處理表達(dá)式1,然后判斷表達(dá)式2,如果表達(dá)式2為真(非0),則執(zhí)行循環(huán)體語(yǔ)句,然后執(zhí)行表達(dá)式3,再重新判斷表達(dá)式2,如果表達(dá)式2為假(0),則跳出循環(huán)。(4)break語(yǔ)句和continue語(yǔ)句break語(yǔ)句在switch語(yǔ)句中用來(lái)使流程跳出switch結(jié)構(gòu),執(zhí)行switch后面的語(yǔ)句,在循環(huán)體內(nèi),能使所在循環(huán)體立即終止,即跳出所在循環(huán)體,轉(zhuǎn)向執(zhí)行循環(huán)體后面的語(yǔ)句。continue語(yǔ)句的功能是:結(jié)束本次循環(huán),即不執(zhí)行循環(huán)體中continue后面尚未執(zhí)行的語(yǔ)句,接著進(jìn)行下一次是否執(zhí)行循環(huán)的判定。本課件是可編輯的正常PPT課件第5章數(shù)組內(nèi)容提要41一維數(shù)組的定義和引用12二維數(shù)組的定義和引用423字符數(shù)組42數(shù)組的應(yīng)用4252444本課件是可編輯的正常PPT課件5.1一維數(shù)組的定義和引用一維數(shù)組的定義數(shù)組中的每個(gè)元素只帶有一個(gè)下標(biāo)時(shí),這樣的數(shù)組稱為一維數(shù)組。

定義格式如下:數(shù)據(jù)類型說(shuō)明符數(shù)組名[常量表達(dá)式];例如:inta[8];它表示定義了一個(gè)整型數(shù)組,數(shù)組名為a,數(shù)組中有8個(gè)元素。說(shuō)明如下:(1)數(shù)據(jù)類型說(shuō)明符用來(lái)說(shuō)明數(shù)組的類型,即數(shù)組中元素值的類型,可以是整型、符點(diǎn)型,或是其它的數(shù)據(jù)類型,本例中數(shù)據(jù)類型說(shuō)明符表明數(shù)組a中8個(gè)元素的數(shù)據(jù)類型是整型。(2)數(shù)組名的命名規(guī)則遵循標(biāo)識(shí)符的命名規(guī)則,和變量名的命名規(guī)則相同。(3)在定義數(shù)組時(shí),需要指定數(shù)組元素的個(gè)數(shù),其中方括號(hào)中的內(nèi)容只能是整型常量或整型常量表達(dá)式,方括號(hào)中的值指定數(shù)組元素的個(gè)數(shù)。(4)數(shù)組名不能與其它變量名相同。本課件是可編輯的正常PPT課件5.1一維數(shù)組的定義和引用一維數(shù)組的引用數(shù)組元素引用的格式:數(shù)組名[下標(biāo)]其中,“下標(biāo)”是個(gè)整型表達(dá)式。如x[0],x[j],x[i+k]都是對(duì)數(shù)組元素的合法引用。但數(shù)組下標(biāo)表達(dá)式的值必須大于等于0,并且小于等于數(shù)組上界的值。另外一個(gè)數(shù)組元素就是一個(gè)變量名,代表內(nèi)存中一個(gè)存儲(chǔ)單元?!纠?.1】對(duì)數(shù)組元素的引用#include<stdio.h>voidmain(){inti,a[8];for(i=0;i<=7;i++)a[i]=i;for(i=7;i>=0;i--)printf("%d",a[i]);}運(yùn)行結(jié)果:本課件是可編輯的正常PPT課件5.1一維數(shù)組的定義和引用一維數(shù)組的初始化定義數(shù)組時(shí)給數(shù)組元素賦值就是一維數(shù)組的初始化。格式如下:數(shù)據(jù)類型說(shuō)明符數(shù)組名[數(shù)組長(zhǎng)度]={值1,值2,值3,......,值n};例如:inta[8]={0,1,2,3,4,5,6,7};(1)所賦的值放在等號(hào)后的一對(duì)花括號(hào)中,數(shù)值類型必須與所說(shuō)明的數(shù)據(jù)類型一致,所賦值之間用逗號(hào)隔開(kāi),系統(tǒng)會(huì)按賦值順序自動(dòng)進(jìn)行分配。(2)當(dāng)在賦值時(shí)花括號(hào)中的值的個(gè)數(shù)少于賦值元素的個(gè)數(shù)時(shí),將自動(dòng)給后面的元素賦值0。本課件是可編輯的正常PPT課件5.1一維數(shù)組的定義和引用一維數(shù)組的初始化(3)可以通過(guò)賦初值來(lái)指定數(shù)組的大小,這時(shí)數(shù)組名后的一對(duì)方括號(hào)中可以不指定數(shù)組的大小,但方括號(hào)不能省略。例如:inta[5]={1,1,1,1,1};可以寫成inta[]={1,1,1,1,1};(4)數(shù)組初始化時(shí),初始值的個(gè)數(shù)不能大于數(shù)組元素的個(gè)數(shù),否則會(huì)出現(xiàn)錯(cuò)誤。例如:inta[5]={1,1,1,1,1,1,1,1};//這是錯(cuò)誤的(5)數(shù)組元素只能逐個(gè)賦值,不能對(duì)數(shù)組整體賦值。本課件是可編輯的正常PPT課件5.1一維數(shù)組的定義和引用【例5.3】編寫一個(gè)程序,通過(guò)鍵盤給數(shù)組a中的5個(gè)元素賦初值。#include<stdio.h>voidmain(){inta[5];inti;for(i=0;i<5;i++){scanf("%d",&a[i]);printf("a[%d]=%d",i,a[i]);}}運(yùn)行結(jié)果:一維數(shù)組程序舉例本課件是可編輯的正常PPT課件5.1一維數(shù)組的定義和引用【例5.4】用數(shù)組求Fibonacci數(shù)例的前20項(xiàng)(1,1,2,3,5,8,13,21,.....)。#include<stdio.h>voidmain(){inti;intf[20]={1,1};//定義并初始化一維數(shù)組,使f[0]=1,f[1]=1,其余元素為0for(i=2;i<20;i++)f[i]=f[i-2]+f[i-1];//數(shù)例中的每i項(xiàng)等于i-2項(xiàng)加上i-1項(xiàng)的和for(i=0;i<20;i++){if(i%5==0)printf("\n");printf("%8d",f[i]);}printf("\n");}運(yùn)行結(jié)果:一維數(shù)組程序舉例本課件是可編輯的正常PPT課件5.1一維數(shù)組的定義和引用【例5.5】輸入5個(gè)整數(shù),輸出其中的最大值和最小值。#include<stdio.h>voidmain(){intmax,min,a[5],i;printf("請(qǐng)輸入5個(gè)數(shù):\n");for(i=0;i<5;i++)scanf("%d,",&a[i]);max=min=a[0];for(i=0;i<5;i++){if(a[i]>max)max=a[i];if(a[i]<min)min=a[i];}printf("最大值max=%d\n",max);printf("最小值min=%d\n",min);}運(yùn)行結(jié)果:一維數(shù)組程序舉例本課件是可編輯的正常PPT課件5.2二維數(shù)組的定義和引用二維數(shù)組的定義數(shù)組中的每個(gè)元素有兩個(gè)下標(biāo)時(shí),這樣的數(shù)組稱為二維數(shù)組。定義格式如下:數(shù)據(jù)類型說(shuō)明符數(shù)組名[常量表達(dá)式1][常量表達(dá)式2];其中兩個(gè)方括號(hào)中的常量表達(dá)式只能是正整數(shù)。如果將二維數(shù)組看做表格,那么常量表達(dá)式1就代表行數(shù),常量表達(dá)式二就代表列數(shù)。例如:inta[3][4];說(shuō)明如下:(1)定義了一個(gè)數(shù)組名為a的二維數(shù)組。(2)數(shù)組中的每個(gè)元素都是整型變量。(3)數(shù)組a中共有3×4=12(3行4列)個(gè)元素。(4)數(shù)組a的邏輯結(jié)構(gòu)是一個(gè)具有3行4列的矩陣。本課件是可編輯的正常PPT課件5.2二維數(shù)組的定義和引用二維數(shù)組的引用二維數(shù)組元素引用的格式:數(shù)組名[下標(biāo)1][下標(biāo)2]其中,第1個(gè)下標(biāo)表示行下標(biāo),第2個(gè)下標(biāo)表示列下標(biāo),通過(guò)行下標(biāo)和列下標(biāo)確定數(shù)組元素在二維數(shù)組中的位置。例如:inta[3][4];說(shuō)明如下:(1)引用二維數(shù)組元素時(shí),要把二維數(shù)組的下標(biāo)分別放在兩個(gè)方括號(hào)內(nèi)。不可以把a(bǔ)[0][1]寫成a[0,1]。(2)二維數(shù)組元素的下標(biāo)值應(yīng)該在已經(jīng)定義的數(shù)組大小的范圍之內(nèi)。(3)二維數(shù)組名a表示二維數(shù)組的首地址。(4)二維數(shù)組元素可以參加表達(dá)式運(yùn)算,也可以賦值。本課件是可編輯的正常PPT課件5.2二維數(shù)組的定義和引用【例5.7】二維數(shù)組元素的使用。程序如下:#include<stdio.h>voidmain(){inta[2][3];inti,j;for(i=0;i<2;i++)for(j=0;j<3;j++)scanf(“%d”,&a[i][j]);for(i=0;i<2;i++){for(j=0;j<3;j++)printf(“%3d”,a[i][j]);printf(“\n”);}}運(yùn)行結(jié)果:二維數(shù)組的引用舉例本課件是可編輯的正常PPT課件5.2二維數(shù)組的定義和引用二維數(shù)組的初始化同一維數(shù)組一樣,C語(yǔ)言允許在定義二維數(shù)組時(shí)對(duì)二維數(shù)組進(jìn)行初始化,對(duì)二維數(shù)組初始化可以通過(guò)下面的方式實(shí)現(xiàn)。(1)通過(guò)分行賦初值給二維數(shù)組,所賦值的個(gè)數(shù)與二維數(shù)組元素的個(gè)數(shù)相同。如:inta[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}};(2)通過(guò)分行賦初值給二維數(shù)組,所賦值的個(gè)數(shù)與二維數(shù)組元素的個(gè)數(shù)不相同。(3)對(duì)二維數(shù)組賦初值時(shí)可以省略內(nèi)花括號(hào)對(duì)。(4)對(duì)全部數(shù)組元素賦初值時(shí),可以省略第一個(gè)方括號(hào)中的常量表達(dá)式,不能省略第二個(gè)方括號(hào)中的常量表達(dá)式,即第一維的長(zhǎng)度可以不指定,但第二維的長(zhǎng)度不能省略。本課件是可編輯的正常PPT課件5.2二維數(shù)組的定義和引用5.2.4二維數(shù)組的程序舉例【例5.8】將二維數(shù)組的行列元素互換,存到另外一個(gè)二維數(shù)組中。例如:析如下:(1)通過(guò)外層循環(huán)控制行,讓變量i依次等于0,1,.....,行長(zhǎng)度-1。(2)通過(guò)內(nèi)層循環(huán)控制列,讓變量j依次等于0,1,.....,列長(zhǎng)度-1。(3)內(nèi)層循環(huán)的循環(huán)體為:將a[i][j]的值賦給b[j][i]。二維數(shù)組程序舉例本課件是可編輯的正常PPT課件5.2二維數(shù)組的定義和引用程序如下:#include<stdio.h>voidmain(){inta[2][3]={{1,2,3},{4,5,6}};intb[3][2],i,j;printf(“數(shù)組a:\n”);for(i=0;i<=1;i++){for(j=0;j<=2;j++){printf(“%5d”,a[i][j]);b[j][i]=a[i][j];}printf(“\n”);}printf(“數(shù)組b:\n”);for(i=0;i<=2;i++){for(j=0;j<=1;j++)printf(“%5d”,b[i][j]);printf(“\n”);}}二維數(shù)組程序舉例運(yùn)行結(jié)果:本課件是可編輯的正常PPT課件5.2二維數(shù)組的定義和引用【例5.9】通過(guò)鍵盤輸入3行4列的數(shù)組元素,求出數(shù)組中的最大值及所在行、列的下標(biāo)。#include<stdio.h>voidmain()

溫馨提示

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

評(píng)論

0/150

提交評(píng)論