《C程序設(shè)計》教案_第1頁
《C程序設(shè)計》教案_第2頁
《C程序設(shè)計》教案_第3頁
《C程序設(shè)計》教案_第4頁
《C程序設(shè)計》教案_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《C程序設(shè)計》教案《C程序設(shè)計》教案王克剛《C程序設(shè)計》教案全文共49頁,當(dāng)前為第1頁?!禖程序設(shè)計》教案全文共49頁,當(dāng)前為第1頁?!禖程序設(shè)計》教案第1講王克剛講授2第1章C語言概述、第2章算法1.1C語言出現(xiàn)的歷史背景1.2C語言的特點1.3簡單C程序介紹1.4C程序的運行步驟2.1——2.5算法的概念、特性、表示、結(jié)構(gòu)化程序設(shè)計方法了解程序設(shè)計的一些初步知識了解算法的概念和特性,掌握一種流程圖的畫法掌握C程序的構(gòu)成及書寫風(fēng)格,對C程序有一個初步了解1.算法的概念2.C程序基本結(jié)構(gòu)、常見要素、編譯調(diào)試技術(shù)3.結(jié)構(gòu)化流程圖、N-S流程圖繪制方法1.算法分析與設(shè)計2.C函數(shù)的概念演示:例1.1--1.8;關(guān)鍵詞、運算符表;C程序上機的完整過程。教學(xué)內(nèi)容及過程設(shè)計步驟一引言語言:人-人語言交流;聾啞人-手勢語;人機-計算機語言C語言是一種流行的計算機高級語言,C語言適合于編寫系統(tǒng)軟件,也可以編寫應(yīng)用程序。步驟二講授一、程序設(shè)計初步C語言的產(chǎn)生;程序設(shè)計的概念程序設(shè)計是指借助計算機,使用計算機語言準(zhǔn)確地描述問題的算法,并正確進行計算的過程。程序設(shè)計的核心是“清晰”,程序的結(jié)構(gòu)要清晰,算法的思路要清晰。二、算法及表示1、算法的特性2、算法的表示算法可以使用各種不同的方法來描述。(1)用自然語言表示算法(2)用傳統(tǒng)流程圖表示算法(3)用N-S流程圖表示算法《C程序設(shè)計》教案全文共49頁,當(dāng)前為第2頁。(4)用偽碼表示算法《C程序設(shè)計》教案全文共49頁,當(dāng)前為第2頁。三、結(jié)構(gòu)化程序設(shè)計方法結(jié)構(gòu)化程序設(shè)計:模塊化設(shè)計方法、自頂向下設(shè)計方法和逐步求精設(shè)計方法是結(jié)構(gòu)化程序設(shè)計方法最典型、最具有代表性的方法。四、C程序的構(gòu)成1、C語言程序構(gòu)成(采用程序?qū)嵗右哉f明,并提倡良好的程序設(shè)計書寫風(fēng)格)(1)C程序是由函數(shù)構(gòu)成的,必須有且只能有一個main()函數(shù);(2)每個函數(shù)由函數(shù)的首部和函數(shù)體組成。函數(shù)體一般由聲明部分和執(zhí)行部分組成;(3)每個C程序總是從main()函數(shù)開始執(zhí)行,并在main()中結(jié)束;(4)每個語句和數(shù)據(jù)定義的最后必須有一個分號;(5)C程序書寫格式自由,一行內(nèi)可以寫幾個語句,一個語句可以分寫在多行上。(6)C程序無輸入、輸出語句,輸入操作由scanf()函數(shù)完成;輸出操作由printf()函數(shù)完成;(7)可加注釋/*……*/2、上機步驟(上機環(huán)境:TurboC2.0)(1)進入環(huán)境(2)編輯源程序(3)保存源程序(4)編譯源程序(5)執(zhí)行程序,查看結(jié)果(6)退出C環(huán)境五、程序的書寫格式和程序的書寫風(fēng)格(1)程序所采用的算法要盡量的簡單,符合人的一般思維習(xí)慣。(2)標(biāo)識符的使用盡量采取“見名知義,常用從簡”的原則。(3)為了清晰的表現(xiàn)出程序的結(jié)構(gòu),最好采用鋸齒形的程序格式。(4)可以用/*……*/注釋,以增加程序的可讀性。(5)最好在輸入語句之前加一個輸出語句對輸入數(shù)據(jù)加以提示。(6)函數(shù)首部的后面和編譯預(yù)處理的后面不能加分號。(7)C程序的書寫格式雖然自由,但為了清晰,一般在一行內(nèi)寫一個語句。步驟三課堂提問討論步驟四課堂小結(jié)1.算法的概念2.C程序基本結(jié)構(gòu)、常見要素、編譯調(diào)試技術(shù)3.結(jié)構(gòu)化流程圖、N-S流程圖繪制方法步驟五布置作業(yè)進入C編輯環(huán)境,按良好的程序設(shè)計風(fēng)格輸入例題,按步驟編譯、運行、查看結(jié)果《C程序設(shè)計》教案全文共49頁,當(dāng)前為第3頁。

《C程序設(shè)計》教案《C程序設(shè)計》教案全文共49頁,當(dāng)前為第3頁。第2講王克剛講授2第3章數(shù)據(jù)類型、運算符和表達式(1)3.1C語言的數(shù)據(jù)類型3.2常量與變量3.3整型數(shù)據(jù)3.4浮點型數(shù)據(jù)3.5字符型數(shù)據(jù)3.6變量賦初值了解C語言豐富的數(shù)據(jù)類型;常量、變量的概念掌握變量定義原則和符號常量定義方法掌握常用基本數(shù)據(jù)類型(整型、實型、字符型)數(shù)據(jù)的常量表示、機內(nèi)存儲、變量分類以及掌握正確選擇數(shù)據(jù)類型變量定義原則常用基本數(shù)據(jù)類型(整型、實型、字符型)數(shù)據(jù)的常量表示、機內(nèi)存儲、變量分類,正確選擇數(shù)據(jù)類型整型數(shù)據(jù)的機內(nèi)表示,字符數(shù)據(jù)的機內(nèi)表示演示:C數(shù)據(jù)分類圖、整型、實型數(shù)據(jù)分類表,轉(zhuǎn)義字符表,字符ASCII碼表教學(xué)內(nèi)容及過程設(shè)計步驟一引言程序=數(shù)據(jù)結(jié)構(gòu)+算法(流程)。C數(shù)據(jù)具有類型-數(shù)據(jù)類型,本章討論常用基本數(shù)據(jù)類型。C數(shù)據(jù)分類圖(取值范圍、允許操作、出現(xiàn)的問題特點不同)步驟二講授一、常量與變量常量概念、常量類型,直接常量/符號常量。變量概念、變量名/變量在內(nèi)存中占據(jù)的單元/變量值/變量地址。變量先定義后使用。二、整型數(shù)據(jù)(內(nèi)存中補碼存儲)整型常數(shù)。10,8,16進制表示整型變量分類:基本整型int/長/短;有符號/無符號。觀察數(shù)據(jù)表達范圍+字節(jié)數(shù)整型變量定義、初始化。整型數(shù)據(jù)的溢出。《C程序設(shè)計》教案全文共49頁,當(dāng)前為第4頁。三、實型數(shù)據(jù)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第4頁。實型常量表示。小數(shù)形式,指數(shù)形式e。實型變量分類。重要的兩種float、double。觀察數(shù)據(jù)表達范圍+字節(jié)數(shù)+有效數(shù)字實型數(shù)據(jù)的舍入誤差。四、字符型數(shù)據(jù)字符常量表示。直接表示/轉(zhuǎn)義表示(特殊的轉(zhuǎn)義字符,一般字符也可以轉(zhuǎn)義表示)。特殊轉(zhuǎn)義字符對顯示/打印的控制作用字符變量-1個字節(jié),char關(guān)鍵詞。字符數(shù)據(jù)的存儲-ASCII碼/二進制存儲-C語言可以將字符看做很短的整數(shù)處理。字符串常量?!啊崩ㄗ址蛄校膊坑小甛0’結(jié)束。五、變量賦初值1、程序中經(jīng)常對一些變量預(yù)先設(shè)置初值,也稱變量初始化2、在C程序中對變量賦初值的形式。定義單個變量時賦值;定義多個變量時分別賦值;3、易出現(xiàn)錯誤的賦初值方式。同時定義多個同類型同值變量時以“連續(xù)=”方式進行賦初值步驟三課堂提問討論整型數(shù)據(jù)溢出例子,浮點數(shù)據(jù)舍入誤差例子,給我們編程序的提示什么?步驟四課堂小結(jié)1、變量定義原則2、常用基本數(shù)據(jù)類型數(shù)據(jù)的常量表示、機內(nèi)存儲、變量分類,正確選擇數(shù)據(jù)類型步驟五布置作業(yè)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第5頁。

《C程序設(shè)計》教案《C程序設(shè)計》教案全文共49頁,當(dāng)前為第5頁。第3講王克剛講授2教學(xué)內(nèi)容及過程設(shè)計步驟一引言運算符:狹義的運算符-運算,廣義的運算符-運算、操作。表達式:使用運算符將常量、變量、函數(shù)連接起來,構(gòu)成表達式。C的運算符有以下幾類:C語言運算符豐富,C語言豐富的運算符構(gòu)成C語言豐富、靈活的表達式。本節(jié)主要介紹算術(shù)運算符(包括自增自減運算符)、賦值運算符、逗號運算符。步驟二講授一、算術(shù)運算符和算術(shù)表達式1、算術(shù)運算符(+、-、*、/、%)整除的結(jié)果為整數(shù),結(jié)果向0取整,實質(zhì)就是舍去小數(shù).%,要求操作數(shù)均為整型。余數(shù)的符號與被除數(shù)符號相同。例如:-8%5=-3;8%-5=32、算術(shù)表達式注意:C語言算術(shù)表達式的書寫形式-數(shù)學(xué)表達式的書寫形式區(qū)別:(1)-(4)。3、(算術(shù))運算符的優(yōu)先級與結(jié)合性(附錄B)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第6頁。先按運算符的“優(yōu)先級別”高低次序執(zhí)行;優(yōu)先級別相同,則按規(guī)定的“結(jié)合方向”處理。為了清晰起見可用圓括號“()”強制?!禖程序設(shè)計》教案全文共49頁,當(dāng)前為第6頁。例1:表達式a-b*c等價于a-(b*c)。例2:a-b+c,到底是(a-b)+c還是a-(b+c)?(b先與a運算還是先與c參與運算?)例3:分析x=y=z=3+5二、賦值運算符、賦值表達式賦值運算符、賦值表達式賦值運算符賦值表達式。一般形式:〈變量〉〈賦值符〉〈表達式〉賦值表達式的求解過程:賦值+整個賦值表達式的值。例如:x=10+y;說明:(1)左變量(2)不具“等”含義(3)類型轉(zhuǎn)換(4)賦值表達式值復(fù)合賦值運算符復(fù)合賦值表達式形式:變量<雙目運算符>=表達式等價:變量=變量<雙目運算符>表達式例如:n+=1等價于n=n+1;x*=y+1等價于x=x*(y+1)賦值運算符、賦值表達式舉例。(1)a=5(2)a=b=5(3)a=(b=4)+(c=3)(4)假如a=12,分析:a+=a-=a*a(答案:-264)三、自增、自減運算符單目運算符,使變量的值增1或減1。如:++i,i++(等價i=i+1)--i,i—(等價<=>i=i-1)注意:(1)-(4);(前置運算):先自增、減,再參與運算;(后置運算):先參與運算,(整個表達式運算結(jié)束后)再自增、減。四、逗號運算符、逗號表達式逗號運算符(順序求值運算符),逗號表達式的一般形式:表達式1,…表達式n五、數(shù)據(jù)類型的轉(zhuǎn)換1、自動隱式轉(zhuǎn)換。規(guī)則:類型不同,轉(zhuǎn)換為相同類型,然后運算低類型向高類型轉(zhuǎn)換(圖)賦值轉(zhuǎn)換?!?”右邊類型=>左邊類型,然后賦值例:表達式:10+’a’+1.5-8765.1234*’b’;floata=3.14;inti=a;2、強制類型轉(zhuǎn)換。(類型)表達式。步驟三課堂提問討論a=3*5,a*4<=>?答:(a=3*5),(a*4)步驟四課堂小結(jié)1、算術(shù)、賦值、自增/減運算符及它們構(gòu)成的表達式2、運算符的優(yōu)先級、結(jié)合性規(guī)律。步驟五布置作業(yè)仔細閱讀附錄B及其說明,掌握優(yōu)先級規(guī)律。(經(jīng)常查閱)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第7頁。

《C程序設(shè)計》教案《C程序設(shè)計》教案全文共49頁,當(dāng)前為第7頁。第4講

王克剛講授2其它演示:控制格式,表3-1,3-2(printf()格式字符)例3.1-3.12教學(xué)內(nèi)容及過程設(shè)計步驟一引言程序設(shè)計通常采用三種不同的程序結(jié)構(gòu):順序,選擇(分支),循環(huán)(重復(fù))。順序結(jié)構(gòu)是最簡單、最基本的程序結(jié)構(gòu)。通過本章學(xué)習(xí),可以開始簡單的C程序設(shè)計。步驟二講授一、C語句概述C程序的總體層次結(jié)構(gòu):程序、模塊,函數(shù),語句。語句:是向計算機發(fā)出的用來完成一定操作任務(wù)的指令。C語言語句分類:控制語句(9種)表達式語句(典型的賦值,函數(shù)調(diào)用、空語句)復(fù)合語句(相當(dāng)一條語句,哪里有語句,哪里就可以用復(fù)合語句)二、輸入/輸出及其C語言的實現(xiàn)(補充)計算機由主機(CPU、內(nèi)存),外圍設(shè)備(輸入/輸出設(shè)備),接口組成主機向外部設(shè)備-“輸出”,外部設(shè)備向主機-“輸入”。輸入/輸出相對主機而言?!禖程序設(shè)計》教案全文共49頁,當(dāng)前為第8頁。C語言本身不提供輸入/輸出語句,輸入/輸出操作由函數(shù)實現(xiàn)。《C程序設(shè)計》教案全文共49頁,當(dāng)前為第8頁。三、格式輸入/輸出printf函數(shù)(格式輸出函數(shù))格式:printf(格式控制字符串,輸出表列)格式控制字符串:(格式控制項、普通字符)輸出表列:一般是一個表達式,簡單地,可以是變量。格式控制字符d、o、x/X、u、c、s、f、e/E、g/G構(gòu)成控制項的各種常見形式。表3-1,3-2。注意:不要死記硬背,要總結(jié)規(guī)律。一般形式:%±m(xù)nh/l格式字符scanf函數(shù)(格式輸入函數(shù))格式:scanf(格式控制字符串,輸入表列-地址列表)格式控制字符串:含義與printf類似輸入表列-地址列表:變量的地址或字符數(shù)組的首地址格式控制字符、格式控制項與printf類似,一般使用更加簡單形式。一般調(diào)用形式為:scanf("格式控制字符串",地址表列);其中:格式控制的含義同printf函數(shù);輸入項地址表由若干個地址組成,代表每一個變量在內(nèi)存中的地址。功能:讀入各種類型的數(shù)據(jù),接收從輸入設(shè)備按輸入格式輸入的數(shù)據(jù)并存入指定的變量地址中。格式控制:包含三類符號⑴空白字符:(空格、Tab或\t、\n),輸入時不必一一對應(yīng);⑵普通字符:(非格式轉(zhuǎn)換說明符、非空白符、非%),輸入時必須一一對應(yīng);⑶格式轉(zhuǎn)換說明符:注意:scanf函數(shù)規(guī)定,組成輸入項表的輸入對象須是地址量;如: scanf(“%d,%d,%d”,&a,&b,&c);scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);①第一個輸入語句,正確的輸入數(shù)據(jù)流為:123,456,789<enter>,處理的結(jié)果為: 123→a,456→b,789→c②同理對第二個輸入語句,正確的輸入數(shù)據(jù)流應(yīng)是:a=123,b=456,c=789<enter>該輸入數(shù)據(jù)流中除123,456,789被賦給相應(yīng)變量外,其余都被丟棄scanf()中的格式字符格式字符說明d以帶符號的十進制形式輸入整數(shù)o以八進制無符號形式輸入整數(shù)x以十六進制無符號形式輸入整數(shù)c以字符形式輸入單個字符s輸入字符串。以非空字符開始,以第一個空格結(jié)束f,e,g,E,G以小數(shù)形式或指數(shù)形式輸入單、雙精度數(shù),注意:數(shù)據(jù)讀入結(jié)束情況:遇空格、TAB、回車;遇非法輸入;指定寬度結(jié)束。四、字符輸入/輸出函數(shù)putchar函數(shù)一般形式:putchar(字符表達式);getchar函數(shù)一般形式:getchar();《C程序設(shè)計》教案全文共49頁,當(dāng)前為第9頁。五、順序結(jié)構(gòu)程序設(shè)計舉例《C程序設(shè)計》教案全文共49頁,當(dāng)前為第9頁。順序結(jié)構(gòu)程序設(shè)計,是C語言的基本結(jié)構(gòu),程序運行時按照語句編寫的順序依次執(zhí)行,語句的執(zhí)行次序和它們的語句順序一致,在順序結(jié)構(gòu)中,每個語句都被執(zhí)行一次,而且只被執(zhí)行一次。習(xí)題1:輸入三角形的三邊長,求三角形面積。分析:三邊為a,b,c,面積area2=s(s-a)(s-b)(s-c),其中s=(a+b+c)/2程序:#include<math.h>main(){floata,b,c,s,area; sacnf(%f,%f,%f”,&a,&b,&c); s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n”,a,b,c,s);printf(“area=%7.2f\n”,area);}習(xí)題2:求ax2+bx+c=0方程的根。a,b,c由鍵盤輸入,設(shè)b2-4ac>0。步驟三課堂提問討論步驟四課堂小結(jié)格式輸入函數(shù)scanf()步驟五布置作業(yè)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第10頁。

《C程序設(shè)計》教案《C程序設(shè)計》教案全文共49頁,當(dāng)前為第10頁。

王克剛講授2多媒體演示3種形式if語句及流程圖例4.1-4.3第5講教學(xué)內(nèi)容及過程設(shè)計步驟一引言1.選擇結(jié)構(gòu)(分支結(jié)構(gòu)):根據(jù)條件,在幾個可選擇分支中進行選擇。2.選擇結(jié)構(gòu)最重要的是“選擇結(jié)構(gòu)的條件”。C語言中的條件是采用能產(chǎn)生邏輯值“真、假”的關(guān)系運算和邏輯運算來表示的。步驟二講授一、關(guān)系運算符關(guān)系運算符及其優(yōu)先次序。關(guān)系運算構(gòu)造判斷條件舉例。二、邏輯運算符邏輯運算符及其優(yōu)先次序。邏輯運算表達式中非0為“真”,邏輯值“真”為1,邏輯值“假”為0。邏輯運算構(gòu)造判斷條件舉例?!禖程序設(shè)計》教案全文共49頁,當(dāng)前為第11頁。三、if語句《C程序設(shè)計》教案全文共49頁,當(dāng)前為第11頁。用if語句可以構(gòu)成分支結(jié)構(gòu)。它根據(jù)給定的條件進行判斷,以決定執(zhí)行某個分支程序段。C語言提供了三種形式的if語句:if語句的簡單形式,有時也稱單分支結(jié)構(gòu),它的形式是:if(表達式)語句if語句用來判斷給定的條件是否滿足,根據(jù)結(jié)果(真或假)來選擇執(zhí)行相應(yīng)的語句。它的執(zhí)行過程是,如果表達式為真(非0),則執(zhí)行其后所跟的語句,否則不執(zhí)行該語句。if-else結(jié)構(gòu)if-else型分支有時也稱雙分支結(jié)構(gòu),它的形式是:if(表達式)語句1else語句2它的執(zhí)行過程是,如果表達式的值為真(非0),就執(zhí)行語句1,否則,執(zhí)行語句2。3、if-else-if語句if-else-if形式是條件分支嵌套的一種特殊形式,經(jīng)常用于多分支處理。它的一般形式為:if(表達式1)語句1elseif(表達式2)語句2elseif(表達式3)語句3……elseif(表達式n)語句nelse語句n+1它的執(zhí)行過程是,如果表達式1為真,則執(zhí)行語句1;否則,如果表達式2為真,則執(zhí)行語句2,…;否則,如果表達式n為真,則執(zhí)行語句n,如果n個表達式都不為真,則執(zhí)行語句n+l。步驟三課堂提問討論步驟四課堂小結(jié)3種形式if語句步驟五布置作業(yè)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第12頁。

《C程序設(shè)計》教案《C程序設(shè)計》教案全文共49頁,當(dāng)前為第12頁。第6講

王克剛講授2switch-case語句5.5應(yīng)用舉例掌握if語句進行掌握switch-case語句掌握選擇結(jié)構(gòu)例題語句switch-case語句switch-casebreak語句多媒體演示switch-case語句流程圖例4.4-4.15教學(xué)內(nèi)容及過程設(shè)計步驟一引言1.復(fù)習(xí)關(guān)系運算、邏輯運算、if語句2.引入if語句的嵌套和多分支結(jié)構(gòu)switch語句實現(xiàn)步驟二講授一、if語句的嵌套在if語句中又包含一個或多個if語句稱為if語句的嵌套形式如下:其一般形式可表示如下:if(表達式)if語句或者為:if(表達式)if語句《C程序設(shè)計》教案全文共49頁,當(dāng)前為第13頁。else《C程序設(shè)計》教案全文共49頁,當(dāng)前為第13頁。if語句在嵌套內(nèi)的if語句可能又是if-else型的,這將會出現(xiàn)多個if和多個else重疊的情況,這時要特別注意if和else的配對問題。為了避免這種二義性,C語言規(guī)定,else總是與它前面最近的if配對。最好使內(nèi)嵌if語句也包含else部分,這樣if的數(shù)目和else的數(shù)目相同,從內(nèi)層到外層一一對應(yīng),不致出錯。如果if與else的數(shù)目不一樣,應(yīng)盡量把嵌套的部分放在否定的部分,或為實現(xiàn)程序設(shè)計者的企圖,可以加花括弧來確定配對關(guān)系。二、switch-case語句(多分支選擇語句/開關(guān)語句)switch語句的一般形式如下:switch(表達式){case常量表達式1:語句1case常量表達式2:語句2…………case常量表達式n:語句n……default:語句n+1}switch語句的執(zhí)行過程是:根據(jù)switch后面的表達式的值,找到某個case后的常量表達式與之相等時,就以此作為一個入口,執(zhí)行此case后的語句,及以下各個case或default后的語句,直到switch的結(jié)束或遇到break語句為止。若所有的case中的常量表達式的值都不與switch后的表達式的值匹配,則執(zhí)行default的語句。三、switch-case說明(1)switch后面括弧內(nèi)的“表達式”,ANSIC標(biāo)準(zhǔn)允許它為任何類型。(2)當(dāng)表達式的值與某一個case后面的常量表達式的值相等時,就執(zhí)行此case后面的語句,若所有的case中的常量表達式的值都沒有與表達式的值匹配的,就執(zhí)行default后面的語句。(3)每一個case的常量表達式的值必須互不相同,否則就會出現(xiàn)互相矛盾的現(xiàn)象(對表達式的同一個值,有兩種或多種執(zhí)行方案)。(4)各個case和default的出現(xiàn)次序不影響執(zhí)行結(jié)果。例如,可以先出現(xiàn)“default:…”,再出現(xiàn)“case'D':…”,然后是“case'A':…”。(5)執(zhí)行完一個case后面的語句后,流程控制轉(zhuǎn)移到下一個case繼續(xù)執(zhí)行?!癱ase常量表達式”只是起語句標(biāo)號作用,并不是在該處進行條件判斷。在執(zhí)行switch語句時.根據(jù)switch后面表達式的值找到匹配的入口標(biāo)號,就從此標(biāo)號開始執(zhí)行下去,不再進行判斷。因此,應(yīng)該在執(zhí)行一個case分支后,使流程跳出switch結(jié)構(gòu),即終止switch語句的執(zhí)行??梢杂靡粋€break語句來達到此目的,將上面的switch結(jié)構(gòu)改寫如下:(6)多個case可以共用一個執(zhí)行語句,如:輸入年份和月份,給出這個月有幾天。(7)在使用switch語句時注意case和后面的表達式之間要有空格,如果沒有空格在編譯時不會發(fā)現(xiàn)錯誤,但運行時結(jié)果不對。四、分支程序例子例1寫程序,判斷某一年是否是閏年。例2求一元二次方程ax2+bx+c=0的根。例3運輸公司對用戶計算運費。步驟三課堂提問討論步驟四課堂小結(jié)switch-case語句步驟五布置作業(yè)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第14頁。

《C程序設(shè)計》教案《C程序設(shè)計》教案全文共49頁,當(dāng)前為第14頁。

王克剛講授21、了解goto語句和語句標(biāo)號的使用2、掌握while當(dāng)型循環(huán)3、掌握do…while直到型循環(huán)while當(dāng)型循環(huán)do…while直到型循環(huán)利用while、do…while語句實現(xiàn)循環(huán)結(jié)構(gòu)程序設(shè)計多媒體演示流程圖例5.1-5.6第7講教學(xué)內(nèi)容及過程設(shè)計步驟一引言問題1:假如全班60人,欲從鍵盤上輸入每人的數(shù)學(xué)成績,然后計算出平均成績;問題2:編程計算n!。重復(fù)執(zhí)行一組語句是程序設(shè)計要求的基本功能之一。在C語言中可以用以下語句來實現(xiàn)循環(huán):(1)if和goto(2)while(3)do-while(4)fora)重復(fù)執(zhí)行就是循環(huán)。重復(fù)工作是計算機特別擅長工作之一。b)重復(fù)執(zhí)行不是簡單地重復(fù),每次重復(fù),操作的數(shù)據(jù)(狀態(tài)、條件)都可能發(fā)生變化。c)重復(fù)的動作是受控制的,C語言提供三種循環(huán)控制語句,構(gòu)成了三種基本的循環(huán)結(jié)構(gòu)。步驟二講授一、goto語句以及用goto語句構(gòu)成循環(huán)語法:gotolabel;其中:label是語句標(biāo)號,它命名的規(guī)則同變量名;語義:使程序無條件地轉(zhuǎn)向標(biāo)號為label的語句去執(zhí)行;《C程序設(shè)計》教案全文共49頁,當(dāng)前為第15頁。結(jié)構(gòu)化程序主張限制使用goto語句,但也不是絕對禁止使用goto語句?!禖程序設(shè)計》教案全文共49頁,當(dāng)前為第15頁。說明:①與if語句構(gòu)成循環(huán)結(jié)構(gòu);②從循環(huán)體中跳轉(zhuǎn)到循環(huán)體外,可以使用break語句和continue語句跳出本層循環(huán)和結(jié)束本次循環(huán),只是需要從多層循環(huán)的內(nèi)層循環(huán)跳到外層循環(huán)時采用goto語句。二、while語句(當(dāng)型循環(huán))

語法:while(exp)循環(huán)體語句;語義:當(dāng)exp為真時,執(zhí)行循環(huán)體;為假時,執(zhí)行循環(huán)語句的后續(xù)語句;如:用while語句構(gòu)成循環(huán),求sum=1+2+…+100程序如下:main(){inti=1,sum=0;while(i<=100){sum+=i;i++;}printf(“%d”,sum);}說明:1)

循環(huán)體可以用復(fù)合語句;2)

在while語句前應(yīng)有為測試表達式(exp)中的循環(huán)控制變量賦初值的語句,以確保循環(huán)的正常開始;3)循環(huán)體內(nèi)應(yīng)有改變循環(huán)控制變量的語句,以確保循環(huán)進行有限次后正常結(jié)束;如:i=1;while(i<=100)sum=sum+1;(死循環(huán))4)

while循環(huán)的特點是先判斷后執(zhí)行,故循環(huán)有可能一次都不被執(zhí)行;如:i=3;while(i<3)printf(“i=%d\n”,i);三、do-while語句(直到型循環(huán))1、do-while語句的一般形式2、do-while執(zhí)行過程(流程圖)3、do-while說明:例、計算ex=1+x+++……直到最后一項的絕對值小于10-6時停止計算,x由鍵盤輸入步驟三課堂提問討論步驟四課堂小結(jié) while語句循環(huán)步驟五布置作業(yè)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第16頁。

《C程序設(shè)計》教案《C程序設(shè)計》教案全文共49頁,當(dāng)前為第16頁。

王克剛講授23、多媒體演示流程圖例5.7-5.14第8講教學(xué)內(nèi)容及過程設(shè)計步驟一引言復(fù)習(xí)goto、while、do…while循環(huán)結(jié)構(gòu)、引入新的循環(huán)結(jié)構(gòu)、進一步加深學(xué)生對循環(huán)結(jié)構(gòu)的理解。步驟二講授一、for語句(當(dāng)型循環(huán))for語句的一般形式(給出while循環(huán)的對應(yīng)結(jié)構(gòu))for循環(huán)執(zhí)行過程(流程圖)例5-11求非波那契數(shù)列a0,a1,a2,…a20。例5-12求1++…+直到最后一項的值小于10-3,如果累加到第20項(即n=19)時,最后一項的值還不小于10-3也不再計算,要求打印出n的值、最后一項值、多項式之和?!禖程序設(shè)計》教案全文共49頁,當(dāng)前為第17頁。3、for語句最容易理解、最常用的形式《C程序設(shè)計》教案全文共49頁,當(dāng)前為第17頁。4、for語句說明(6點)。C語言的for語句功能強大,使用靈活。二、幾種循環(huán)的比較循環(huán)結(jié)構(gòu)的基本組成部分(4部分)幾種循環(huán)的比較。一般相互可以替代,但具體形式有些差異。例:將50-100之間的不能被3整除的數(shù)輸出(用三種循環(huán)結(jié)構(gòu)實現(xiàn))三、循環(huán)的嵌套一個循環(huán)體內(nèi)又包含另一個完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。內(nèi)嵌的循環(huán)中還可以嵌套循環(huán),這就是多層循環(huán)。雙重循環(huán)的執(zhí)行過程是:先執(zhí)行外循環(huán),當(dāng)外循環(huán)控制變量取初值后,執(zhí)行內(nèi)循環(huán),在內(nèi)循環(huán)中內(nèi)層循環(huán)控制變量從初值變化到終值的過程中,外層的循環(huán)控制變量始終不變,直到內(nèi)循環(huán)執(zhí)行完畢,到了外循環(huán),外層的循環(huán)控制變量才變,而后再執(zhí)行內(nèi)循環(huán),在內(nèi)循環(huán)中內(nèi)層循環(huán)控制變量又從從初值變化到終值,……如此下去,直到外循環(huán)控制變量超過終值,整個雙重循環(huán)才執(zhí)行完畢。例編程輸出乘法九九表。步驟三課堂提問討論步驟四課堂小結(jié)步驟五布置作業(yè)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第18頁。

《C程序設(shè)計》教案《C程序設(shè)計》教案全文共49頁,當(dāng)前為第18頁。第9講

王克剛講授25-9應(yīng)用舉例1、掌握break;continue;2、通過應(yīng)用例子進一步掌握循環(huán)結(jié)構(gòu)break;continue;功能,區(qū)別。通過應(yīng)用例子進一步掌握循環(huán)結(jié)構(gòu)多媒體演示流程圖例6.6-6.8教學(xué)內(nèi)容及過程設(shè)計步驟一引言復(fù)習(xí)3種循環(huán)結(jié)構(gòu)、循環(huán)的比較,引出break;continue;。步驟二講授一、break和continue語句break語句用break語句可以使流程跳出switch結(jié)構(gòu),繼續(xù)執(zhí)行switch語句下面的一個語句。實際上,break語句還可以用來從循環(huán)體內(nèi)跳出循環(huán)體,即提前結(jié)束循環(huán),接著執(zhí)行循環(huán)下面的語句break語句說明例6-10:從鍵盤上連續(xù)輸入字符,并統(tǒng)計其中大寫字母的個數(shù),直到輸入“換行”字符。continue語句(翻譯為“繼續(xù)”(循環(huán)))一般形式為:《C程序設(shè)計》教案全文共49頁,當(dāng)前為第19頁。continue;《C程序設(shè)計》教案全文共49頁,當(dāng)前為第19頁。其作用為結(jié)束本次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的語句,接著進行下一次是否執(zhí)行循環(huán)的判定。continue語句和break語句的區(qū)別是:continue語句只結(jié)束本次循環(huán),而不是終止整個循環(huán)的執(zhí)行。而break語句則是結(jié)束整個循環(huán)過程,不再判斷執(zhí)行循環(huán)的條件是否成立。二、應(yīng)用舉例例:從鍵盤上輸入字符數(shù)字,邊輸入邊在屏幕上顯示出來,當(dāng)輸入星號“*”時輸入結(jié)束。例:輸入一行字符,分別統(tǒng)計出其中英文字母、空格、數(shù)字和其它字符的個數(shù)。例:輸出以下圖案。*************例:判斷m是否素數(shù)。例:求100~200間的全部素數(shù)。步驟三課堂提問討論注意到求100~200間的全部素數(shù)的例子:外層n的循環(huán),循環(huán)變量的修正是:“n=n+2”(即就是每次加2),為什么?步驟四課堂小結(jié)break;continue;功能,區(qū)別步驟五布置作業(yè)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第20頁。

《C程序設(shè)計》教案《C程序設(shè)計》教案全文共49頁,當(dāng)前為第20頁。王克剛講授2掌握數(shù)組的基本概念熟練掌握一維數(shù)組的定義、初始化和引用3、掌握冒泡排序法1、一維數(shù)組定義、初始化、引用2、求最大值、冒泡排序法多媒體演示流程圖例7.2-7.3第10講教學(xué)內(nèi)容及過程設(shè)計步驟一引言基本數(shù)據(jù)類型-構(gòu)造類型的數(shù)據(jù)-數(shù)組數(shù)組、數(shù)組元素、數(shù)組的下標(biāo)、數(shù)組的維數(shù)例如:inta[10];一維數(shù)組可以看作一個數(shù)列,向量。例如:floatb[3][3];二維數(shù)組可以看作一個矩陣。步驟二講授一、數(shù)組和數(shù)組元素《C程序設(shè)計》教案全文共49頁,當(dāng)前為第21頁。數(shù)組是一種數(shù)據(jù)結(jié)構(gòu),處于這種結(jié)構(gòu)中的變量具有相同的性質(zhì),并按一定的順序排列,C數(shù)組中每個分量稱為數(shù)組元素,每個元素都有一定的位置,所處的位置用下標(biāo)來表示。數(shù)組的特點是:數(shù)組元素排列有序且數(shù)據(jù)類型相同。所以,在數(shù)值計算與數(shù)據(jù)處理中,數(shù)組常用于處理具有相同類型的、批量有序的數(shù)據(jù)?!禖程序設(shè)計》教案全文共49頁,當(dāng)前為第21頁。C語言中,數(shù)組的元素用數(shù)組名及其后帶方括號[]的下標(biāo)表示。二、一維數(shù)組1、一維數(shù)組的定義和使用(1)一維數(shù)組的定義一維數(shù)組的定義方式為:類型說明數(shù)組名[常量表達式];一維數(shù)組定義說明。(1)-(5)(2)一維數(shù)組元素的引用數(shù)組元素的表示形式為:數(shù)組名[下標(biāo)]其中,下標(biāo)是一個整型表達式。2、一維數(shù)組的初始化數(shù)組初始化的一般形式為:類型說明數(shù)組名[數(shù)組長度]={常量表達式l,常量表達式2,…};一維數(shù)組的初始化的幾種形式(1)(2)(3)三、一維數(shù)組的應(yīng)用例子例6-2:從鍵盤輸入10個整型數(shù)據(jù),找出其中的最小值并顯示出來。例6-5:采用“冒泡法”對任意輸入的10個整數(shù)按由小到大的順序排序。步驟三課堂提問討論步驟四課堂小結(jié)1、一維數(shù)組定義、初始化、引用2、求最大值、冒泡排序法步驟五布置作業(yè)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第22頁。

《C程序設(shè)計》教案《C程序設(shè)計》教案全文共49頁,當(dāng)前為第22頁。王克剛講授2多媒體演示流程圖例6.6-6.22第11講教學(xué)內(nèi)容及過程設(shè)計步驟一引言復(fù)習(xí)一維數(shù)組概念,數(shù)組定義、初始化、元素引用方法。引入二維數(shù)組。步驟二講授一、一維數(shù)組的應(yīng)用例子例1:比較交換法(也叫順序排序法)從大到小排序程序。例2:選擇排序法從大到小排序程序。例3:將一維數(shù)組中的n個數(shù)置逆輸出。(以7個數(shù)為例)二、二維數(shù)組(注意:類比一維數(shù)組)二維數(shù)組的定義《C程序設(shè)計》教案全文共49頁,當(dāng)前為第23頁。二維數(shù)組的初始化的幾種形式(1)-(5)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第23頁。二維數(shù)組元素的引用二維數(shù)組應(yīng)用舉例例6-19一個3×4的矩陣,要求編寫程序求出第i行、第j列元素的值。例6-20打印楊輝三角形。思考:下標(biāo)是從1開始使用的,哪些元素在此例子中未使用?它們的值是多少?(隨機值)例6-21輸入一個3×3的數(shù)組,將其行和列互換(也稱為矩陣轉(zhuǎn)置)。步驟三課堂提問討論步驟四課堂小結(jié)選擇法和比較法排序步驟五布置作業(yè)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第24頁。

《C程序設(shè)計》教案《C程序設(shè)計》教案全文共49頁,當(dāng)前為第24頁。第12講王克剛講授27.3字符數(shù)組附加應(yīng)用舉例1、熟練掌握字符數(shù)組定義、初始化、引用2、掌握字符串與字符數(shù)組3、掌握常用字符串處理函數(shù)1、字符串與字符數(shù)組2、字符串處理函數(shù)字符串和字符串函數(shù)的使用多媒體演示流程圖例6.23-6.36教學(xué)內(nèi)容及過程設(shè)計步驟一引言復(fù)習(xí)數(shù)組概念,數(shù)組定義、初始化、元素引用方法。引入字符數(shù)組(元素為字符)。步驟二講授一、字符數(shù)組字符數(shù)組,字符數(shù)組的每個元素是一個字符;一維字符數(shù)組可以存放字符串;二維字符數(shù)組可以存放多個字符串。字符數(shù)組可以逐個元素處理,若存放的是字符串,那么還可以直接調(diào)用字符串處理函數(shù)處理。1、字符數(shù)組的定義、初始化及引用-與一般數(shù)組類似。2、字符串與字符數(shù)組字符串與字符數(shù)組。存放的內(nèi)容。字符數(shù)組的初始化(除了一般數(shù)組的初始化方法外,增加了一些方法)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第25頁。例7-8.兩種字符數(shù)組初始化方法的區(qū)別-有無串結(jié)束標(biāo)志。參閱p94?!禖程序設(shè)計》教案全文共49頁,當(dāng)前為第25頁。字符數(shù)組的輸入輸出(兩種形式:逐個字符輸入/輸出,整串輸入/輸出)例7-9:逐個字符輸入/輸出。參閱p94。例7-10:整串輸入/輸出。P95.3、字符串(字符數(shù)組)處理函數(shù)(1)字符串輸入,輸出函數(shù):gets、puts(2)字符串處理函數(shù):strcat、strcpy、strcmp、strlen、strlwr、strupr例7-11:字符串輸入/輸出應(yīng)用舉例(P.96)例7-12:求字符串長度示例(P97)例7-13:字符串連接示例(P97)例7-14:字符串復(fù)制示例(P98)例7-15:字符串比較示例(P99)二、應(yīng)用舉例例7-16:由鍵盤任意輸入一個字符串和一個字符,要求從該字符串中刪除所指定的字符。例7-17:由鍵盤輸入三個字符串,找出其中的最大串。(字符串庫函數(shù)的應(yīng)用)步驟三課堂提問討論例7-16,講義和教材程序?qū)Ρ?、思考。步驟四課堂小結(jié)字符串處理函數(shù)步驟五布置作業(yè)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第26頁。

《C程序設(shè)計》教案《C程序設(shè)計》教案全文共49頁,當(dāng)前為第26頁。王克剛講授2掌握函數(shù)定義、調(diào)用、聲明函數(shù)的概念、定義和調(diào)用方法函數(shù)的概念,形參/實參/返回值的概念多媒體演示流程圖例7.1-7.8第13講教學(xué)內(nèi)容及過程設(shè)計步驟一引言一個C語言源程序可由一個主函數(shù)和若干個其他函數(shù)組成。由主函數(shù)調(diào)用其他函數(shù),其他函數(shù)也可以互相調(diào)用。步驟二講授一、函數(shù)概述1、C語言的函數(shù)。C語言的函數(shù)是子程序的總稱,包括函數(shù)和過程。C語言函數(shù)可以分為庫函數(shù)、用戶自定義函數(shù)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第27頁。2、C語言的程序由函數(shù)組成,函數(shù)是C語言程序的基本單位,程序的總體功能通過函數(shù)的調(diào)用來實現(xiàn)。其中,main起點(圖)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第27頁。3、使用函數(shù)的意義(補充)(1)-(4)4、函數(shù)的一些概念:主函數(shù)、其它函數(shù);主調(diào)函數(shù)、被調(diào)函數(shù);庫函數(shù)、用戶自定義函數(shù);無參函數(shù)、有參函數(shù);無返回值函數(shù)、有返回值函數(shù)二、函數(shù)的一般形式-函數(shù)應(yīng)當(dāng)先定義,后調(diào)用。函數(shù)定義的一般形式及說明(1)(2)三、函數(shù)的參數(shù)和返回值形式參數(shù)實際參數(shù)參數(shù)的傳遞。實參傳遞給形參(1)傳值(2)傳址。注意問題:(1)-(4),圖示。由于尚未學(xué)習(xí)指針,所以傳址用數(shù)組舉例函數(shù)返回值。return語句及說明。四、函數(shù)的調(diào)用函數(shù)調(diào)用的一般形式及說明(單獨語句/表達式中、參數(shù)相容)函數(shù)調(diào)用時數(shù)據(jù)的傳遞-參數(shù)傳遞、函數(shù)的返回值、全局變量函數(shù)的聲明步驟三課堂提問討論步驟四課堂小結(jié)函數(shù)的概念、定義和調(diào)用方法步驟五布置作業(yè)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第28頁。

《C程序設(shè)計》教案《C程序設(shè)計》教案全文共49頁,當(dāng)前為第28頁。第14講王克剛講授21、掌握函數(shù)嵌套調(diào)用2、了解函數(shù)遞歸調(diào)用函數(shù)嵌套調(diào)用函數(shù)遞歸調(diào)用多媒體演示流程圖例7.9-7.11教學(xué)內(nèi)容及過程設(shè)計步驟一引言復(fù)習(xí)函數(shù)的概念、定義和調(diào)用方法,引出嵌套調(diào)用和遞歸調(diào)用。步驟二講授函數(shù)的嵌套調(diào)用和遞歸調(diào)用函數(shù)允許嵌套調(diào)用和遞歸調(diào)用。遞歸調(diào)用是嵌套調(diào)用的特例。一、函數(shù)的嵌套調(diào)用C語言的函數(shù)定義都是互相平行、獨立的,也就是說在定義函數(shù)時,一個函數(shù)內(nèi)不能包含另一個函數(shù)。C語言程序不能嵌套定義函數(shù),但可以嵌套調(diào)用函數(shù),也就是說,在調(diào)用一個函數(shù)的過程中,又可以調(diào)用另一個函數(shù),二、函數(shù)的遞歸調(diào)用在C語言程序中,有時可以看到一個函數(shù)直接或間接地調(diào)用自身的現(xiàn)象,這種現(xiàn)象就是函數(shù)的遞歸調(diào)用。遞歸調(diào)用有兩種方式:直接遞歸調(diào)用和間接遞歸調(diào)用?!禖程序設(shè)計》教案全文共49頁,當(dāng)前為第29頁。在C程序設(shè)計中提倡使用遞歸調(diào)用來實現(xiàn)復(fù)雜問題的求解。必須注意,遞歸不是“循環(huán)定義”,任何遞歸定義必須滿足如下條件:《C程序設(shè)計》教案全文共49頁,當(dāng)前為第29頁。(1)被定義項在定義中的應(yīng)用(即作為定義項的出現(xiàn))具有更小的“尺度”,即需要求解的問題可以分解為一個相對簡單的子問題。(2)被定義項在最小“尺度”上的定義不是遞歸的,即最終有一個子問題不是遞歸,必須有確定的值。例:求1!+2!+3!+4!+…+20!例:用遞歸調(diào)用的方法求n!。例:編程求Fibonacci數(shù)列的第n項。步驟三課堂提問討論步驟四課堂小結(jié)1、

函數(shù)的嵌套調(diào)用2、

函數(shù)的遞歸調(diào)用步驟五布置作業(yè)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第30頁。

《C程序設(shè)計》教案《C程序設(shè)計》教案全文共49頁,當(dāng)前為第30頁。王克剛講授2掌握變量作用域、生命期局部和全局變量,內(nèi)部和外部函數(shù)變量作用域、生命期多媒體演示例7.12-7.22第15講教學(xué)內(nèi)容及過程設(shè)計步驟一引言復(fù)習(xí)函數(shù)定義、調(diào)用、參數(shù)傳遞方式,提出各個函數(shù)同名變量問題,進而引入變量作用域概念。在函數(shù)調(diào)用過程中,不僅要注意實參和形參的數(shù)據(jù)結(jié)合,而且要注意各個變量的作用域和生存期。步驟二講授一、變量的作用域(有效范圍、可見性)變量的作用域:變量的有效范圍或者變量的可見性。變量定義的位置決定了變量的作用域。變量從作用域(變量的有效范圍,可見性)的角度可以分為:局部變量,全局變量。(圖)1、局部變量(函數(shù)體內(nèi)變量、形參變量、復(fù)合語句內(nèi)變量)-互不干預(yù)、動態(tài)分配《C程序設(shè)計》教案全文共49頁,當(dāng)前為第31頁。例7-12:各函數(shù)局部變量同名的應(yīng)用示例?!禖程序設(shè)計》教案全文共49頁,當(dāng)前為第31頁。2、全局變量(所有函數(shù)之外-文件作用域、程序作用域)全局變量可以和局部變量同名-坐井觀天例7-13:全局變量、局部變量同名的應(yīng)用示例。例7-14:全局變量、局部變量的應(yīng)用示例。二、變量的存儲類別(生存期、生命期)變量從空間上分為局部變量、全局變量。從變量存在的時間的長短(即變量生存期)來劃分,變量還可以分為:動態(tài)存儲變量、靜態(tài)存儲變量。變量的存儲方式?jīng)Q定了變量的生存期。C語言變量的存儲方式可以分為:動態(tài)存儲方式、靜態(tài)存儲方式。(圖)全局變量全部是靜態(tài)的;局部變量可以是靜態(tài),也可以是動態(tài)(auto,register)。例7-15:寄存器局部變量的應(yīng)用例7-16:靜態(tài)局部變量的應(yīng)用示例三、內(nèi)部函數(shù)和外部函數(shù)默認是外部函數(shù)四、函數(shù)應(yīng)用舉例例7-18~7-22步驟三課堂提問討論步驟四課堂小結(jié)1、

局部變量和全局變量的作用域2、

變量的存儲類別有動態(tài)存儲方式和靜態(tài)存儲方式3、

關(guān)鍵字有auto、static、register、extern步驟五布置作業(yè)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第32頁。

《C程序設(shè)計》教案《C程序設(shè)計》教案全文共49頁,當(dāng)前為第32頁。第17講王克剛講授21、了解編譯過程和編譯預(yù)處理2、掌握宏定義、文件包含宏定義、文件包含帶參數(shù)宏定義多媒體演示定義格式例題教學(xué)內(nèi)容及過程設(shè)計步驟一引言復(fù)習(xí)程序?qū)崿F(xiàn)過程,引入實際編譯兩個階段:編譯預(yù)處理,編譯,更廣義的編譯還包括連接。編譯預(yù)處理,編譯指令步驟二講授一、宏定義1、不帶參數(shù)的宏定義用一個指定的標(biāo)識符(即名字)來代表一個字符串,它的一般形式為:《C程序設(shè)計》教案全文共49頁,當(dāng)前為第33頁。#define標(biāo)識符字符串《C程序設(shè)計》教案全文共49頁,當(dāng)前為第33頁。這種方法使用戶能以一個簡單的名字代替一個長的字符串,因此把這個標(biāo)識符(名字)稱為“宏名”,在預(yù)編譯時將宏名替換成字符串的過程稱為“宏展開”。#define是宏定義命令。2、帶參數(shù)的宏定義帶參數(shù)的宏定義不是進行簡單的字符串替換,還要進行參數(shù)替換,其定義的一般形式為:#define宏名(參數(shù)表)字符串二、“文件包含”處理所謂“文件包含”處理是指一個源文件可以將另外一個源文件的全部內(nèi)容包含進來,即將另外的文件包含到本文件之中。C語言提供了#include命令用來實現(xiàn)“文件包含”的操作,其一般形式為:#include<文件名>或#include"文件名"三、條件編譯一般情況下,源程序中的所有行都參加編譯,但特殊情況下可能需要根據(jù)不同的條件編譯源程序中的不同部分,也就是說對源程序的一部分內(nèi)容給定一定的編譯條件。這種方式稱作“條件編譯”。條件編譯命令主要包括以下幾種形式:l#ifdef標(biāo)識符程序段1#else程序段2#endif它的含義是如果指定的標(biāo)識符已經(jīng)被#define定義過,則只編譯程序段1,否則編譯程序段2。2#ifndef標(biāo)識符程序段1#else程序段2#endif含義是如果指定的標(biāo)識符沒有被#define定義過,則編譯程序段1,否則編譯程序段2。3#if表達式程序段1#else程序段2#endif它的含義是如果指定的表達式的值為真,則編譯程序段1,否則編譯程序段2。步驟三課堂提問討論步驟四課堂小結(jié)宏定義、文件包含步驟五布置作業(yè)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第34頁。

《C程序設(shè)計》教案《C程序設(shè)計》教案全文共49頁,當(dāng)前為第34頁。王克剛講授21、掌握指針的基本概念,變量訪問方式2、掌握指針變量定義、賦值、引用。3、掌握指針作為函數(shù)參數(shù)。4、掌握掌握指針與數(shù)組的聯(lián)系指針的基本概念;指針變量定義、賦值、引用指針作為函數(shù)參數(shù)指針的基本概念指針與數(shù)組的聯(lián)系多媒體演示圖示例題第18講教學(xué)內(nèi)容及過程設(shè)計步驟一引言內(nèi)存空間或變量的地址-指針存放地址的變量(地址變量)-指針變量步驟二講授一、地址和指針的概念內(nèi)存、內(nèi)存地址-物理存儲器的概念(補充)變量、變量名、變量的地址、變量值-高級語言的存儲器概念指針、變量的指針、指針變量系統(tǒng)訪問變量的兩種方式直接訪問-按變量名、按地址(本質(zhì)按地址)間接訪問《C程序設(shè)計》教案全文共49頁,當(dāng)前為第35頁。在C語言中,將地址形象化地稱為“指針”。意思是通過它能找到以它為地址的內(nèi)存單元。一個變量的地址稱為該變量的“指針”。如果有一個變量專門用來存放另一變量的地址(即指針),則它稱為“指針變量”?!禖程序設(shè)計》教案全文共49頁,當(dāng)前為第35頁。二、變量的指針和指向變量的指針變量1、指針變量的定義定義指針變量的一般形式為:基類型*指針變量名說明:(1)指針變量基類型-指針變量指向數(shù)據(jù)的類型(2)指針變量存放地址值,本身占用空間2字節(jié)2、指針變量的引用兩個有關(guān)的運算符:&:取地址運算符。*:指針運算符(或稱“間接訪問”運算符)。3、指針變量作為函數(shù)參數(shù)函數(shù)的參數(shù)不僅可以是整型、實型、字符型等數(shù)據(jù),還可以是指針類型。它的作用是將一個變量的地址傳送到另一個函數(shù)中。三、數(shù)組的指針和指向數(shù)組的指針變量數(shù)組的指針是指數(shù)組的起始地址,數(shù)組元素的指針是數(shù)組元素的地址。引用數(shù)組元素可以用下標(biāo)法(如a[3]),也可以用指針法,即通過指向數(shù)組元素的指針找到所需的元素。使用指針法能使目標(biāo)程序質(zhì)量高(占內(nèi)存少,運行速度快)。1、指向數(shù)組元素的指針定義一個指向數(shù)組元素的指針變量的方法,與以前介紹的指向變量的指針變量相同。2、通過指針引用數(shù)組元素有定義inta[10],*p=&a;則如果p的初值為&a[0],則:(1)p+i和a+i就是a[i]的地址。(2)*(p+i)或*(a+i)是p+i或a+i所指向的數(shù)組元素,即a[i]。(3)指向數(shù)組的指針變量也可以帶下標(biāo),如p[i]與*(p+i)等價。根據(jù)以上敘述,引用一個數(shù)組元素,可以用:①下標(biāo)法,如a[i]形式。②指針法,如*(a+i)或*(p+i)(4)當(dāng)指針指向一串連續(xù)的存儲單元時,可以對指針進行加上或減去一個整數(shù),這種操作稱為指針的移動。例如p++;或p--;都可以使指針移動。移動指針后,指針不應(yīng)超出數(shù)組元素的范圍。(5)指針不允許進行乘、除運算,移動指針時,不允許加上或減去一個非整數(shù),對指向同一串連續(xù)存儲單元的兩個指針只能進行相減操作。步驟三課堂提問討論步驟四課堂小結(jié)指針的基本概念;指針變量定義、賦值、引用指針作為函數(shù)參數(shù)步驟五布置作業(yè)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第36頁。

《C程序設(shè)計》教案《C程序設(shè)計》教案全文共49頁,當(dāng)前為第36頁。第19講王克剛講授21、掌握用數(shù)組名作函數(shù)參數(shù)2、了解指向多維數(shù)組的指針和指針變量3、掌握字符串的指針和指向字符串的指針變量字符串的指針和指向字符串的指針變量指向多維數(shù)組的指針和指針變量多媒體演示圖示例題教學(xué)內(nèi)容及過程設(shè)計步驟一引言上節(jié)課介紹了指針變量的定義及其賦值。一個變量有地址,一個數(shù)組包含若干元素,每個數(shù)組元素都在內(nèi)存中占用存儲單元,它們都有相應(yīng)的地址。指針變量既然可以指向變量,當(dāng)然也可以指向數(shù)組和數(shù)組元素(把數(shù)組起始地址或某一元素的地址放到一個指針變量中)。步驟二講授-指針基礎(chǔ)一、數(shù)組的指針和指向數(shù)組的指針變量3、用數(shù)組名作函數(shù)參數(shù)在C語言中,調(diào)用函數(shù)時虛實結(jié)合的方法都是采用“值傳遞”方式,當(dāng)用變量名作為函數(shù)參數(shù)時傳遞的是變量的值,當(dāng)用數(shù)組名作為函數(shù)參數(shù)時,由于數(shù)組名代表的是數(shù)組起始地址,因此傳遞的值是數(shù)組首地址,所以要求形參為指針變量。實參數(shù)組后代表一個固定的地址,或者說是指針型常量,而形參數(shù)組并不是一個固定的地址值。作為指針變量,在函數(shù)調(diào)用開始時,它的值等于實參數(shù)組起始地址,但在函數(shù)執(zhí)行期間,它可以再被賦值。《C程序設(shè)計》教案全文共49頁,當(dāng)前為第37頁。4、指向多維數(shù)組的指針和指針變量《C程序設(shè)計》教案全文共49頁,當(dāng)前為第37頁。設(shè)已定義二維數(shù)組a:inta[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};(1)a是二維數(shù)組名,是二維數(shù)組的起始地址(設(shè)地址為2000)。也可以說,a指向a數(shù)組第0行,a也是0行首地址。(2)a+1是a數(shù)組第1行首地址,或者說a+1指向第1行(地址為2008)。(3)a[0],a[1],a[2]是二維數(shù)組中三個一維數(shù)組(即三行)的名字,因此它們也是地址(分別是0行,1行,2行的首地址)。(4)a[i]+j是i行j列元素的地址,*(a[i]+j)是i行j列元素的值。如a[0]+2和*(a[0]+2)分別是0行2列元素的地址和元素的值。(5)a[i]與*(a+i)無條件等價,這兩種寫法可以互換。如a[2]和*(a+2)都是2行首地址,即2行0列元素的地址,即&a[2][0]。(6)a[i][j],*(a[i]+j),*(*(a+i)+j)都是i行j列元素的值。(7)區(qū)別行指針與列指針的概念。例如a+1和a[1]都代表地址2008。但a+1是行指針,它指向一個一維數(shù)組。a[1](即*(a+1))是列指針,它指向一個元素,它是1行0列元素的地址。(8)可以定義指向一維數(shù)組的指針變量,如:int(*p)[4];/*稱p為行指針*/二、字符串的指針和指向字符串的指針變量1、字符串的表示形式(1)用字符數(shù)組實現(xiàn)(2)用字符指針實現(xiàn)2、對使用字符指針變量與字符數(shù)組的討論主要有以下幾點:(1)字符數(shù)組由若干個元素組成,每個元素中存放一個字符,而字符指針變量中存放的是地址(字符串的首地址),決不是將字符串放到字符指針變量中。(2)對字符數(shù)組只能對各個元素賦值,不能對字符數(shù)組賦值。而對字符指針變量,可以賦值,取得的是字符串的首地址。(3)在定義一個數(shù)組時,在編譯時即已分配內(nèi)存單元,有固定的地址。而定義一個字符指針變量時,給指針變量分配內(nèi)存單元,在其中可以存放一個地址值,也就是說,該指針變量可以指向一個字符型數(shù)據(jù),但如果未對它賦以一個地址值,則它并未具體指向哪一個字符數(shù)據(jù)。(4)指針變量的值是可以改變的。(5)用指針變量指向一個格式字符串,可以用它代替printf函數(shù)中的格式字符串。3、字符串指針作函數(shù)參數(shù)將一個字符串從一個函數(shù)傳遞到另一個函數(shù),可以用地址傳遞的辦法,即用字符數(shù)組名或用指向字符串的指針變量作參數(shù)。和前面介紹的數(shù)組一樣,函數(shù)的首部有三種說明形式,而且形參也是指針變量。在被調(diào)用的函數(shù)中可以改變字符串的內(nèi)容,在主調(diào)函數(shù)中可以得到改變了的字符串。步驟三課堂提問討論步驟四課堂小結(jié)字符串的指針和指向字符串的指針變量步驟五布置作業(yè)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第38頁。

《C程序設(shè)計》教案《C程序設(shè)計》教案全文共49頁,當(dāng)前為第38頁。第20講王克剛講授21、掌握函數(shù)的指針和指向函數(shù)的指針變量2、了解返回指針值的函數(shù)3、了解指針數(shù)組和指向指針的指針函數(shù)的指針和指向函數(shù)的指針變量指針數(shù)組和指向指針的指針多媒體演示圖示例題教學(xué)內(nèi)容及過程設(shè)計步驟一引言復(fù)習(xí)指針基本概念,指針變量定義、初始化、引用。本節(jié)介紹指針變量的應(yīng)用-數(shù)組的指針。數(shù)組:相同類型元素構(gòu)成的有限、有序的序列。數(shù)組元素的指針-數(shù)組元素的地址數(shù)組的指針-數(shù)組的地址,數(shù)組的起始地址,第一個元素的地址(首地址)。C語言用數(shù)組名代表數(shù)組的起始地址(首地址)。例如:inta[10];數(shù)組的指針-a或&a[0],步驟二講授一、函數(shù)的指針和指向函數(shù)的指針變量1、用函數(shù)指針變量調(diào)用函數(shù)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第39頁??梢杂弥羔樧兞恐赶蛘妥兞?、字符串、數(shù)組,也可以指向一個函數(shù)。一個函數(shù)在編譯時被分配給一個入口地址。這個入口地址就稱為函數(shù)的指針。可以用一個指針變量指向函數(shù),然后通過該指針變量調(diào)用此函數(shù)。說明:《C程序設(shè)計》教案全文共49頁,當(dāng)前為第39頁。指向函數(shù)的指針變量的一般定義形式為:數(shù)據(jù)類型標(biāo)識符(*指針變量名)(類型參數(shù)l,類型參數(shù)2…);2、把指向函數(shù)的指針變量作函數(shù)參數(shù)函數(shù)的指針變量也可以作為參數(shù),以便實現(xiàn)函數(shù)地址的傳遞,也就是將函數(shù)名傳給形參。二、返回指針值的函數(shù)一個函數(shù)不僅可以帶回簡單類型的數(shù)據(jù),而且可以帶回指針型的數(shù)據(jù),即地址。三、指針數(shù)組和指向指針的指針1、指針數(shù)組的概念一個數(shù)組,其元素均為指針類型數(shù)據(jù),稱為指針數(shù)組,也就是說,指針數(shù)組中的每一個元素都是指針變量,指針數(shù)組的定義形式為:類型標(biāo)識符*數(shù)組名[數(shù)組長度說明]2、指向指針的指針指針變量也有地址,這地址可以存放在另一個指針變量中。如果變量p中存放了指針變量q的地址,那末p就指向指針變量q。指向指針數(shù)據(jù)的指針變量,簡稱為指向指針的指針。定義一個指向某種數(shù)據(jù)類型的指針數(shù)據(jù)的指針變量,形式如下:類型**指針變量名;3、main函數(shù)的命令行參數(shù)實際上,main函數(shù)可以有參數(shù),例如:main(intargc,char**argv)argc和argv就是main函數(shù)的形參。main函數(shù)是由系統(tǒng)調(diào)用的,當(dāng)處于操作命令狀態(tài)下,輸入main所在的文件名(經(jīng)過編譯、聯(lián)接后得到的可執(zhí)行文件名),系統(tǒng)就調(diào)用main函數(shù)。它的實參從命令行得到。命令行的一般形式為:命令名參數(shù)1參數(shù)2…參數(shù)n步驟三課堂提問討論步驟四課堂小結(jié)函數(shù)的指針和指向函數(shù)的指針變量步驟五布置作業(yè)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第40頁。

《C程序設(shè)計》教案《C程序設(shè)計》教案全文共49頁,當(dāng)前為第40頁。第21講王克剛講授210-6指向結(jié)構(gòu)體類型數(shù)據(jù)的指針掌握結(jié)構(gòu)體類型、變量的定義及初始化,結(jié)構(gòu)體變量的引用了解結(jié)構(gòu)體數(shù)組,結(jié)構(gòu)體指針。結(jié)構(gòu)體類型、變量的定義及初始化,結(jié)構(gòu)體變量的引用結(jié)構(gòu)體數(shù)組,結(jié)構(gòu)體指針多媒體演示圖示例題教學(xué)內(nèi)容及過程設(shè)計步驟一引言例子:新生入學(xué)登記表步驟二講授一、概述二、定義結(jié)構(gòu)體類型變量的方法1.先聲明結(jié)構(gòu)體類型再定義變量名聲明一個結(jié)構(gòu)體類型的一般形式為:struct結(jié)構(gòu)體名{成員表列};對各成員都應(yīng)進行類型聲明,即類型名成員名2.在聲明類型的同時定義變量這種形式的定義的一般形式為:struct結(jié)構(gòu)體名{成員表列《C程序設(shè)計》教案全文共49頁,當(dāng)前為第41頁。}變量名表列;《C程序設(shè)計》教案全文共49頁,當(dāng)前為第41頁。3.直接定義結(jié)構(gòu)類型變量其一般形式為:struct{成員表列}變量名表列;即不出現(xiàn)結(jié)構(gòu)體名。三、結(jié)構(gòu)體變量的引用引用結(jié)構(gòu)體變量中成員的方式為:結(jié)構(gòu)體變量名.成員名四、結(jié)構(gòu)體變量的初始化和其他類型變量一樣,對結(jié)構(gòu)體變量可以在定義時指定初始值。五、結(jié)構(gòu)體數(shù)組1、定義結(jié)構(gòu)體數(shù)組和定義結(jié)構(gòu)體變量的方法相仿,只需說明其為數(shù)組即可。2、結(jié)構(gòu)體數(shù)組的初始化定義數(shù)組時,元素個數(shù)可以不指定,即寫成以下形式:數(shù)組名[]={…},{…},{…};當(dāng)然,數(shù)組的初始化也可以用以下形式:先聲明結(jié)構(gòu)體類型,然后定義數(shù)組為該結(jié)構(gòu)體類型,在定義數(shù)組時初始化。從以上可以看到,結(jié)構(gòu)體數(shù)組初始化的一般形式是在定義數(shù)組的后面加上:={初值表列};3、結(jié)構(gòu)體數(shù)組應(yīng)用舉例通過簡單的例子來說明結(jié)構(gòu)體數(shù)組的定義和引用。六、指向結(jié)構(gòu)體類型數(shù)據(jù)的指針1、指向結(jié)構(gòu)體變量的指針以下三種形式等價:①結(jié)構(gòu)體變量.成員名②(*p).成員名③p->成員名2、指向結(jié)構(gòu)體數(shù)組的指針可以使用指向數(shù)組或數(shù)組元素的指針和指針變量。同樣,對結(jié)構(gòu)體數(shù)組及其元素也可以用指針或指針變量來指向。3、用結(jié)構(gòu)體變量和指向結(jié)構(gòu)體的指針作函數(shù)參數(shù)將一個結(jié)構(gòu)體變量的值傳遞給另一個函數(shù),有3種方法:(1)用結(jié)構(gòu)體變量的成員作參數(shù)。(2)用結(jié)構(gòu)體變量作實參。(3)用指向結(jié)構(gòu)體變量(或數(shù)組)的指針作實參,將結(jié)構(gòu)體變量(或數(shù)組)的地址傳給形參。步驟三課堂提問討論步驟四課堂小結(jié)結(jié)構(gòu)體類型、變量的定義及初始化,結(jié)構(gòu)體變量的引用步驟五布置作業(yè)《C程序設(shè)計》教案全文共49頁,當(dāng)前為第42頁。

《C程序設(shè)計》教案全文共49頁,當(dāng)前為第42頁。第22講王克剛講授2的定義及引用的定義及引用鏈表的建立、輸出、插入和刪除多媒體演示圖示例題教學(xué)內(nèi)容及過程設(shè)計步驟一引言C語言定義的數(shù)據(jù)類型有固定的類型說明符、數(shù)據(jù)長度及數(shù)據(jù)組織和存儲形式,程序設(shè)計者可在程序中直接用它們來定義數(shù)據(jù)對象。然而在實際應(yīng)用中只有這些數(shù)據(jù)類型是不夠的,人們常需要定義一種新的數(shù)據(jù)類型來滿足問題求解的需要。為了滿足這類問題的需要,C語言允許用戶自定義和種不同的數(shù)據(jù)類型,并用它們來定義與之相關(guān)的對象步驟二講授一、用指針處理鏈表1、鏈表概述2、處理動態(tài)鏈表所需的函數(shù)鏈表結(jié)構(gòu)是動態(tài)地分配存儲的,即在需要時才開辟一個結(jié)點的存儲單元。(1)malloc函數(shù)(2)calloc函數(shù)(3)free函數(shù)注意:以前的C版本提供的malloc和calloc函數(shù)得到的是指向字符型數(shù)據(jù)的指針。ANSIC提供的malloc和calloc函數(shù)規(guī)定為void*類型。3、鏈表的建立、輸出、插入和刪除《C程序設(shè)計》教案全文共49頁,當(dāng)前為第43頁。(1)建立鏈表《C程序設(shè)計》教案全文共49頁,當(dāng)前為第43頁。所謂建立鏈表是指從無到有地建立起一個鏈表,即一個一個地輸入各結(jié)點數(shù)據(jù),并建立起前后相連接的關(guān)系。(2)輸出鏈表(3)對鏈表的插入步驟如下:a)查找插入位置;b)插入新結(jié)點,即新結(jié)點與插入點前后的結(jié)點連接。(4)對鏈表的刪除步驟如下:a)查找刪除結(jié)點的位置;b)刪除結(jié)點,即將該結(jié)點的前一個結(jié)點與后一個結(jié)點連接。二、共用體1、共用體的概念定義共用體類型變量的一般形式為:union共用體名{成員表列}變量表列;結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和。每個成員分別占有其自己的內(nèi)存單元。2、共用體變量的引用方式只有先定義了共用體變量才能引用它。不能引用共用體變量

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論