版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
c語(yǔ)言電子教案《程序設(shè)計(jì)基礎(chǔ)》教案
第一章程序設(shè)計(jì)和C語(yǔ)言課題C語(yǔ)言概述教案號(hào)1教學(xué)目的1、了解C語(yǔ)言出現(xiàn)的歷史背景2、掌握C語(yǔ)言程序的結(jié)構(gòu)、書(shū)寫(xiě)格式和上機(jī)步驟教材分析教學(xué)重點(diǎn)C語(yǔ)言程序的結(jié)構(gòu)教學(xué)難點(diǎn)上機(jī)步驟課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一新課引入從計(jì)算機(jī)應(yīng)用基礎(chǔ)中學(xué)過(guò)的計(jì)算機(jī)語(yǔ)言及語(yǔ)言處理系統(tǒng)引出C語(yǔ)言。二講授新課一、
C語(yǔ)言出現(xiàn)的背景二、
C語(yǔ)言的特點(diǎn)1.
語(yǔ)言簡(jiǎn)潔、緊湊,使用方便、靈活;2.
運(yùn)算符豐富3.
數(shù)據(jù)類(lèi)型多(整型、實(shí)型、字符型、數(shù)組類(lèi)型、指針類(lèi)型、結(jié)構(gòu)體類(lèi)型、共用體類(lèi)等)4.
具有結(jié)構(gòu)化的控制語(yǔ)句5.
語(yǔ)法不太嚴(yán)格,自由度大既是高級(jí)語(yǔ)言,又具有低級(jí)語(yǔ)言的功能成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率可移植性好三、C語(yǔ)言程序構(gòu)成(采用程序?qū)嵗右哉f(shuō)明,并提倡良好的程序設(shè)計(jì)書(shū)寫(xiě)風(fēng)格)1.
C語(yǔ)言是由函數(shù)構(gòu)成的,至少有一個(gè)main()函數(shù);2.
每個(gè)函數(shù)由函數(shù)首部和函數(shù)體組成;函數(shù)體由說(shuō)明語(yǔ)句、執(zhí)行語(yǔ)句組成;3.
每個(gè)C程序從main()函數(shù)開(kāi)始執(zhí)行,并在main()中結(jié)束;4.
每個(gè)語(yǔ)句和數(shù)據(jù)定義的最后必須加分號(hào);5.
C程序無(wú)輸入、輸出語(yǔ)句:輸入功能由scanf()函數(shù)完成;輸出功能由printf()函數(shù)完成;可加注釋/*……*/四、上機(jī)步驟(上機(jī)環(huán)境:TurboC2.0)1.
進(jìn)入環(huán)境2.
編輯源程序3.
保存源程序4.
編譯源程序5.
執(zhí)行程序,查看結(jié)果6.退出C環(huán)境三課堂小結(jié)1、
C語(yǔ)言的構(gòu)成要素,main函數(shù)在程序中的作用2、上機(jī)操作的過(guò)程備注安排上機(jī)實(shí)驗(yàn),熟悉TC環(huán)境及簡(jiǎn)單的C語(yǔ)言程序構(gòu)成頁(yè)碼1第二章算法——程序的靈魂課題算法教案號(hào)2教學(xué)目的1、了解算法的概念2、掌握結(jié)構(gòu)化程序的三種基本結(jié)構(gòu),及算法的表示方法教材分析教學(xué)重點(diǎn)算法的表示方法教學(xué)難點(diǎn)結(jié)構(gòu)化程序的三種基本結(jié)構(gòu)課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一復(fù)習(xí)引導(dǎo)從C程序的構(gòu)成到C程序的設(shè)計(jì)過(guò)程二講授新課一個(gè)程序包括以下兩方面內(nèi)容:1.
對(duì)數(shù)據(jù)的描述。在程序中要指定數(shù)據(jù)的類(lèi)型和數(shù)據(jù)的組織形式,即數(shù)據(jù)結(jié)構(gòu);2.
對(duì)操作的描述。即算法,為解決一個(gè)問(wèn)題而采取的方法和步驟。著名計(jì)算機(jī)科學(xué)家Wirth提出一個(gè)公式:數(shù)據(jù)結(jié)構(gòu)+算法=程序一、簡(jiǎn)單的算法舉例例1:設(shè)有兩個(gè)杯子A和B,分別盛放酒和醋,要求將它們互換。S1:C←AS2:A←BS3:B←C例2:求1~100的和S1:sum←0,t←1;S2:sum←sum+tS3:t←t+1S4:若t<=100,則轉(zhuǎn)到S2,否則轉(zhuǎn)到S5;S5:輸出sum,結(jié)束。二、算法的特征1、有窮性;2、確定性;3、
有零個(gè)或多個(gè)輸入;4、
有一個(gè)或多個(gè)輸出;5、
有效性;三、算法的表示用自然語(yǔ)言表示算法–通俗易懂,但有“歧義”。用傳統(tǒng)流程圖表示算法–直觀、易懂。程序的三種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)
BABAABPAPAPAP
備注頁(yè)碼2算法——程序的靈魂課題算法教案號(hào)2教學(xué)目的1、了解算法的概念2、掌握結(jié)構(gòu)化程序的三種基本結(jié)構(gòu),及算法的表示方法教材分析教學(xué)重點(diǎn)算法的表示方法教學(xué)難點(diǎn)結(jié)構(gòu)化程序的三種基本結(jié)構(gòu)課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)3、N-S流程圖表示算法
AA
BPTFABA當(dāng)P成立A立立用偽代碼表示算法用計(jì)算機(jī)語(yǔ)言表示算法(即實(shí)現(xiàn)算法)四、結(jié)構(gòu)化程序設(shè)計(jì)方法結(jié)構(gòu)化程序設(shè)計(jì)方法強(qiáng)調(diào):
程序設(shè)計(jì)風(fēng)格和程序結(jié)構(gòu)的規(guī)范化,提倡清晰的結(jié)構(gòu):①自頂向下②逐步細(xì)化③模塊化設(shè)計(jì) ④結(jié)構(gòu)化編碼
三、課堂小結(jié)1、
程序的三種基本結(jié)構(gòu):順序、選擇、循環(huán)2、
5種描述算法的方法,關(guān)鍵是N-S圖靈活運(yùn)用三種基本結(jié)構(gòu),學(xué)會(huì)結(jié)構(gòu)化的程序設(shè)計(jì)方法四、布置作業(yè)用N-S圖表示求解以下問(wèn)題的算法:1、求10!2、將100~200之間的素?cái)?shù)打印出來(lái)3、求兩個(gè)數(shù)m,n的最大公約數(shù)
備注安排上機(jī)實(shí)驗(yàn)頁(yè)碼3最簡(jiǎn)單的C程序設(shè)計(jì)---順序程序設(shè)計(jì)課題數(shù)據(jù)類(lèi)型教案號(hào)3教學(xué)目的1、掌握C的數(shù)據(jù)類(lèi)型2、掌握整型、實(shí)型、字符型數(shù)據(jù)的常量及變量教材分析教學(xué)重點(diǎn)各種基本數(shù)據(jù)類(lèi)型的常量和變量教學(xué)難點(diǎn)不同類(lèi)型的數(shù)據(jù)在內(nèi)存中的物理存儲(chǔ)形式課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一復(fù)習(xí)引導(dǎo)上次課我們已經(jīng)學(xué)習(xí)了程序的一個(gè)方面算法,現(xiàn)在來(lái)學(xué)習(xí)另一方面數(shù)據(jù)結(jié)構(gòu)。
二講授新課
C有四種基本數(shù)據(jù)類(lèi)型,分別是整型、字符型、實(shí)型、枚舉型一、常量與變量
1、常量:在程序運(yùn)行過(guò)程中,其值不能被改變的量。 兩種形式:一般常量和符號(hào)常量1.直接常量(字面常量):整型常量:如12、0、-3等實(shí)型常量:如4.5、-1.234等字符常量:如‘a(chǎn)’、‘1’等,用單引號(hào)表示;字符串常量:如“a”、“abc”、“1”,用雙引號(hào)表示。2.符號(hào)常量:符號(hào)常量即是用一個(gè)標(biāo)識(shí)符來(lái)代替一個(gè)常量;符號(hào)常借助于預(yù)處理命令#define來(lái)實(shí)現(xiàn);
定義形式:#define標(biāo)識(shí)符字符串
如:#definePI3.1415926535說(shuō)明:①習(xí)慣上,符號(hào)常量用大寫(xiě)字母表示;②定義符號(hào)常量時(shí),不能以“;”結(jié)束;③一個(gè)#define占一行,且要從第一列開(kāi)始書(shū)寫(xiě);④一個(gè)源程序文件中可含有若干個(gè)define命令,不同的define命令中指定的“標(biāo)識(shí)符”不能相同;2、變量:在程序運(yùn)行過(guò)程中,其值會(huì)發(fā)生變化。1.每個(gè)變量必須有一個(gè)名字,變量名是標(biāo)識(shí)符。2.標(biāo)識(shí)符是用來(lái)標(biāo)識(shí)數(shù)據(jù)對(duì)象,是一個(gè)數(shù)據(jù)對(duì)象的名字。3.命名規(guī)則:以字母或下劃線開(kāi)始,后跟字符、數(shù)字或下劃線。例:x1,_average,lotus_1_2_3,#abc,1fs,M.D.Jhon4.變量名不能是關(guān)鍵字(即保留字,是C編譯程序中保留使用的標(biāo)識(shí)符。如:auto、break、char、do、else、if、int等)5.變量必須先定義再使用備注頁(yè)碼4最簡(jiǎn)單的C程序設(shè)計(jì)---順序程序設(shè)計(jì)課題數(shù)據(jù)類(lèi)型教案號(hào)3教學(xué)目的1、掌握C的數(shù)據(jù)類(lèi)型2、掌握整型、實(shí)型、字符型數(shù)據(jù)的常量及變量教材分析教學(xué)重點(diǎn)各種基本數(shù)據(jù)類(lèi)型的常量和變量教學(xué)難點(diǎn)不同類(lèi)型的數(shù)據(jù)在內(nèi)存中的物理存儲(chǔ)形式課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)二、整型數(shù)據(jù)1、整型常量的表示方法1)
十進(jìn)制如:123,-456,02)
八進(jìn)制數(shù)如:0123,-011(以0開(kāi)頭的數(shù))3)
十六進(jìn)制數(shù)如:0x123,-0x12,0xABC(以0x開(kāi)頭的)2、整型變量1)
整型數(shù)據(jù)在內(nèi)存中以二進(jìn)制形式存放,每一個(gè)整型變量在內(nèi)存中占2個(gè)字節(jié)。
例:定義整型變量i=10和j=-10的存放形式。2)整型變量的分類(lèi):基本型int、短整型short、長(zhǎng)整型long、無(wú)符號(hào)型unsigned3)
整型變量的定義
對(duì)變量的定義,一般放在函數(shù)體開(kāi)頭部分的聲明部分(也可放在函數(shù)中某一分程序內(nèi))例:#include<stdio.h>
main()
{inta,b,c,d;unsignedu;
a=12;b=-24;u=10;
c=a+u;d=b+u;
printf(“a+u=%d,b+u=%d\n”,c,d);}4)
整型數(shù)據(jù)的溢出
一個(gè)int型變量的最大允許值為32767,如果再加1,其結(jié)果不是32768,而是-32768。即“溢出”。三、實(shí)型數(shù)據(jù)1、實(shí)型常量的表示方法(1)十進(jìn)制浮點(diǎn)數(shù)
如:0.123,.456,0.0,123.,123.0
整數(shù)部分和小數(shù)部分都可省,但不能同時(shí)省(2)指數(shù)形式
如:123e3,123E3代表123×103指數(shù)部分為整常數(shù);
尾數(shù)部分可以是整常數(shù),也可以是實(shí)常數(shù);尾數(shù)部分和指數(shù)部分均不可省。E10,100.e15.2,.e5均為不合法的浮點(diǎn)數(shù)。備注頁(yè)碼5第三章最簡(jiǎn)單的C程序設(shè)計(jì)---順序程序設(shè)計(jì)課題數(shù)據(jù)類(lèi)型教案號(hào)3教學(xué)目的1、掌握C的數(shù)據(jù)類(lèi)型2、掌握整型、實(shí)型、字符型數(shù)據(jù)的常量及變量教材分析教學(xué)重點(diǎn)各種基本數(shù)據(jù)類(lèi)型的常量和變量教學(xué)難點(diǎn)不同類(lèi)型的數(shù)據(jù)在內(nèi)存中的物理存儲(chǔ)形式課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)2、實(shí)型變量(1)實(shí)型數(shù)據(jù)在內(nèi)存中的存放形式一個(gè)實(shí)型數(shù)據(jù)一般在內(nèi)存中占4個(gè)字節(jié)(32位)。實(shí)型數(shù)據(jù)是按照指數(shù)形式存儲(chǔ)的。(2)實(shí)型變量的分類(lèi):?jiǎn)尉萬(wàn)loat、雙精度double、長(zhǎng)雙精度longdouble四、字符型數(shù)據(jù)1、字符常量1)
括在一對(duì)單引號(hào)中的一個(gè)字符(單引號(hào)僅作界限符),如:‘a(chǎn)’、‘X’2
)一個(gè)字符常量占1個(gè)字節(jié),存放的是字符的ASCII碼值。3)
轉(zhuǎn)義字符:以‘\’開(kāi)頭,后跟一個(gè)約定的字符或所要表示字符的十六進(jìn)制(或者八進(jìn)制)的編碼;2、字符變量:
字符變量用來(lái)存放字符常量,只能放一個(gè)字符。例:charc1=‘a(chǎn)’,c2=‘A’;一個(gè)字符變量在內(nèi)存中占一個(gè)字節(jié)。五、字符串常量1.括在一對(duì)雙引號(hào)中的0個(gè)或多個(gè)字符組成的序列;雙引號(hào)僅作界限符;如:
“Clanguageprogramming”、“a\\n”、“#123”、“”等為字符串常量;2.字符串常量的實(shí)際存儲(chǔ):在存儲(chǔ)完字符串中的有效字符后還應(yīng)存儲(chǔ)字符串結(jié)束標(biāo)志‘\0’。六、變量賦初值在定義變量時(shí)對(duì)變量進(jìn)行賦值稱(chēng)為變量的初始化;格式:類(lèi)型說(shuō)明符變量1=值1,變量2=值2,……;如:inta=3,b=4,c=5; floatx=3.4,y=0.75; charch1=‘K’,ch2=‘P’;三課堂小結(jié)1、C的基本數(shù)據(jù)類(lèi)型int、float、double、char2、
基本數(shù)據(jù)類(lèi)型的常量表示、變量定義,及不同類(lèi)型的數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式四、布置作業(yè)練習(xí)P82:課后習(xí)題備注頁(yè)碼6第三章最簡(jiǎn)單的C程序設(shè)計(jì)---順序程序設(shè)計(jì)課題運(yùn)算符與表達(dá)式教案號(hào)4教學(xué)目的1、掌握C語(yǔ)言中的各種運(yùn)算符2、掌握運(yùn)算符的優(yōu)先級(jí)與結(jié)合性教材分析教學(xué)重點(diǎn)C語(yǔ)言中各種運(yùn)算符的使用教學(xué)難點(diǎn)混合表達(dá)式中運(yùn)算符的運(yùn)算順序課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一、講授新課用運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(數(shù)據(jù))連接起來(lái)的、符合C語(yǔ)法規(guī)則的句子稱(chēng)為表達(dá)式。優(yōu)先級(jí)是指表達(dá)式中包含多個(gè)運(yùn)算符時(shí),先進(jìn)行優(yōu)先級(jí)高的運(yùn)算符操作,然后在進(jìn)行優(yōu)先級(jí)低的運(yùn)算符操作;當(dāng)表達(dá)式中包含的幾個(gè)運(yùn)算符的優(yōu)先級(jí)全相同時(shí),由運(yùn)算符的結(jié)合性來(lái)決定他們的運(yùn)算順序。1)
從左至右2)從右至左一、算術(shù)運(yùn)算符與算術(shù)表達(dá)式1、基本的算術(shù)運(yùn)算符:+–*/%
優(yōu)先級(jí):*/%高于+–結(jié)合性:左結(jié)合性2、算術(shù)表達(dá)式:用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(操作數(shù))連接起來(lái)的、符合C語(yǔ)法規(guī)則的式子稱(chēng)為算術(shù)表達(dá)式。3、強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符:(類(lèi)型名)(表達(dá)式)4、自增、自減運(yùn)算符:++––作用是使變量的值增一或減一。二、賦值運(yùn)算符與賦值表達(dá)式簡(jiǎn)單的賦值運(yùn)算符:=除逗號(hào)表達(dá)式外,優(yōu)先級(jí)最低復(fù)合賦值運(yùn)算符:+=*=%=等賦值表達(dá)式:<變量><賦值運(yùn)算符><表達(dá)式/值>嵌套的賦值表達(dá)式三、逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式逗號(hào)運(yùn)算符:,所有運(yùn)算符中優(yōu)先級(jí)最低逗號(hào)表達(dá)式:表達(dá)式1,表達(dá)式2,……,表達(dá)式n求解過(guò)程:先求表達(dá)式1,再求表達(dá)式2,依次求下去,直到求出表達(dá)式n,整個(gè)逗號(hào)表達(dá)式的值就是表達(dá)式n的值四、各類(lèi)數(shù)值型數(shù)據(jù)間的混合運(yùn)算(P54)二、課堂小結(jié)1、
++、--運(yùn)算2、
各種運(yùn)算符的優(yōu)先級(jí)3、表達(dá)式值的求解三、布置作業(yè)練習(xí):P83習(xí)題備注安排上機(jī)實(shí)驗(yàn)頁(yè)碼7第三章最簡(jiǎn)單的C程序設(shè)計(jì)---順序程序設(shè)計(jì)課題順序程序設(shè)計(jì)教案號(hào)5教學(xué)目的1、了解C語(yǔ)句的概念及種類(lèi)、掌握C語(yǔ)言常用的輸入/出方式2、學(xué)會(huì)簡(jiǎn)單的順序程序設(shè)計(jì)教材分析教學(xué)重點(diǎn)C語(yǔ)言常用的輸入/出方式教學(xué)難點(diǎn)格式輸入輸出課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一、復(fù)習(xí)引導(dǎo)上一章介紹的常量、變量、運(yùn)算符、表達(dá)式等都是構(gòu)成程序的基本成分。本章將介紹為編寫(xiě)簡(jiǎn)單程序所必需的一些內(nèi)容。二、講授新課一、C語(yǔ)句概述1、C語(yǔ)句分類(lèi):=1\*GB3①控制語(yǔ)句:二個(gè)分支語(yǔ)句(if-else、switch),三個(gè)循環(huán)語(yǔ)句(for、while、do-while),四個(gè)轉(zhuǎn)移語(yǔ)句(continue、break、goto、return)=2\*GB3②函數(shù)調(diào)用語(yǔ)句如:printf(“Hello,world!”);=3\*GB3③表達(dá)式語(yǔ)句如:x+y;i++;a=2;a=3*5,40;=4\*GB3④空語(yǔ)句;=5\*GB3⑤復(fù)合語(yǔ)句{語(yǔ)句序列}
二、賦值語(yǔ)句:賦值語(yǔ)句是由賦值表達(dá)式加上一個(gè)分號(hào)構(gòu)成,如:b=3;
三、數(shù)據(jù)輸入輸出的概念及在C語(yǔ)言中的實(shí)現(xiàn)所謂輸入輸出是以計(jì)算機(jī)主機(jī)為主體而言的。C語(yǔ)言本身不提供輸入輸出語(yǔ)句,輸入輸出操作是通過(guò)函數(shù)調(diào)用實(shí)現(xiàn)的。要使用C語(yǔ)言庫(kù)函數(shù),應(yīng)用“#include”將有關(guān)頭文件包括到用戶(hù)源程序中。四、字符數(shù)據(jù)的輸入輸出1、字符輸出函數(shù)——putchar
語(yǔ)法:putchar(c)
語(yǔ)義:(向stdout終端)輸出一個(gè)字符;2、字符輸入函數(shù)——getchar
語(yǔ)法:getchar(),是一個(gè)無(wú)參函數(shù);
語(yǔ)義:(從stdin終端上)輸入一個(gè)字符,函數(shù)的值就是從輸入設(shè)備得到的字符。五、格式輸入輸出1、格式輸出函數(shù)——printf
語(yǔ)法:printf(“格式控制”,輸出表列);
格式控制:是用雙引號(hào)括起來(lái)的字符串,包含兩種信息:=1\*GB2⑴
普通字符和轉(zhuǎn)義字符(這類(lèi)字符總是原樣輸出)=2\*GB2⑵格式說(shuō)明:由%和格式控制符組成。如:%d,%f等;(P77)如:printf(“a=%d,b=%d”,a,b);若a、b的值分別為2和3,則輸出結(jié)果為:a=2,b=3備注頁(yè)碼8第三章最簡(jiǎn)單的C程序設(shè)計(jì)---順序程序設(shè)計(jì)課題順序程序設(shè)計(jì)教案號(hào)5教學(xué)目的1、了解C語(yǔ)句的概念及種類(lèi)、掌握C語(yǔ)言常用的輸入/出方式2、學(xué)會(huì)簡(jiǎn)單的順序程序設(shè)計(jì)教材分析教學(xué)重點(diǎn)C語(yǔ)言常用的輸入/出方式教學(xué)難點(diǎn)格式輸入輸出課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)2、格式輸入函數(shù)scanf語(yǔ)法:scanf(“格式控制”,表列);格式控制:包含三類(lèi)符號(hào)=1\*GB2⑴空白字符:(空格、Tab或\t、\n),輸入時(shí)不必一一對(duì)應(yīng);=2\*GB2⑵普通字符:(非格式轉(zhuǎn)換說(shuō)明符、非空白符、非%),輸入時(shí)必須一一對(duì)應(yīng);=3\*GB2⑶格式轉(zhuǎn)換說(shuō)明符:注意:scanf函數(shù)規(guī)定,組成輸入項(xiàng)表的輸入對(duì)象須是量;如:
scanf(“%d,%d,%d”,&a,&b,&c);
scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);①第一個(gè)輸入語(yǔ)句,正確的輸入數(shù)據(jù)流為:123,456,789<enter>,處理的結(jié)果為: 123→a,456→b,789→c②同理對(duì)第二個(gè)輸入語(yǔ)句,正確的輸入數(shù)據(jù)流應(yīng)是:a=123,b=456,c=789<enter>該輸入數(shù)據(jù)流中除123,456,789被賦給相應(yīng)變量外,其余都被丟棄六、順序結(jié)構(gòu)程序設(shè)計(jì)舉例例1:輸入三角形的三邊長(zhǎng),求三角形面積。分析:三邊為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);}備注上機(jī)實(shí)驗(yàn),學(xué)習(xí)簡(jiǎn)單的C程序設(shè)計(jì)。頁(yè)碼9第四章選擇結(jié)構(gòu)程序設(shè)計(jì) 課題選擇結(jié)構(gòu)程序設(shè)計(jì)教案號(hào)6教學(xué)目的1、掌握實(shí)現(xiàn)選擇結(jié)構(gòu)的兩種語(yǔ)句、兩個(gè)運(yùn)算符2、學(xué)會(huì)編寫(xiě)選擇結(jié)構(gòu)的程序教材分析教學(xué)重點(diǎn)關(guān)系運(yùn)算符、if-else語(yǔ)句教學(xué)難點(diǎn)嵌套if-else語(yǔ)句中的if與else匹配問(wèn)題課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一、復(fù)習(xí)引導(dǎo)上一次課已經(jīng)介紹了程序基本結(jié)構(gòu)之一,但在大多數(shù)情況下都要用到選擇結(jié)構(gòu)。
二、講授新課一、關(guān)系運(yùn)算符與關(guān)系表達(dá)式1、關(guān)系運(yùn)算符:<<=>>===!=優(yōu)先級(jí):<<=>>=高于==!=關(guān)系運(yùn)算符低于算術(shù)運(yùn)算符,高于賦值運(yùn)算符2、關(guān)系表達(dá)式:用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來(lái)的式子。關(guān)系表達(dá)式求值:關(guān)系成立,值為1;關(guān)系不成立,值為0二、雙分支選擇語(yǔ)句1、if語(yǔ)句的三種形式語(yǔ)法1:if(表達(dá)式)語(yǔ)句;語(yǔ)法2:if(表達(dá)式)語(yǔ)句1;else語(yǔ)句2;
語(yǔ)法3:if(表達(dá)式1)語(yǔ)句1;elseif(表達(dá)式2)語(yǔ)句2;elseif(表達(dá)式3)語(yǔ)句3;……else語(yǔ)句n+1;說(shuō)明:1.
if關(guān)鍵字后均為表達(dá)式(邏輯表達(dá)式、關(guān)系表達(dá)式、賦值表達(dá)式、變量等);
如:if(a=5)語(yǔ)句;if(b)語(yǔ)句;2.
條件表達(dá)式必須用括號(hào)括起來(lái),在語(yǔ)句后必須加分號(hào);
3.
滿(mǎn)足條件需執(zhí)行一組語(yǔ)句時(shí),該組語(yǔ)句必須用{}括起來(lái);
4.
if語(yǔ)句嵌套時(shí),else總是與它最靠近的未配對(duì)的if匹配;5.因?yàn)閕f語(yǔ)句執(zhí)行時(shí)總是簡(jiǎn)單地測(cè)試其中作為條件的“表達(dá)式”的值是0還是非0,便可利用這種特性來(lái)簡(jiǎn)化程序設(shè)計(jì)。如對(duì)于:if(expression!=0)完全可用if(expression)來(lái)代替;同理:if(!exp)語(yǔ)句;等價(jià)于:if(exp==0)語(yǔ)句;三、課堂小結(jié)1、關(guān)系運(yùn)算符與關(guān)系表達(dá)式2、if-else語(yǔ)句的應(yīng)用。備注頁(yè)碼10第四章選擇結(jié)構(gòu)程序設(shè)計(jì)課題選擇結(jié)構(gòu)程序設(shè)計(jì)教案號(hào)7教學(xué)目的1、掌握實(shí)現(xiàn)選擇結(jié)構(gòu)的兩種語(yǔ)句、兩個(gè)運(yùn)算符2、學(xué)會(huì)編寫(xiě)選擇結(jié)構(gòu)的程序教材分析教學(xué)重點(diǎn)switch語(yǔ)句、條件運(yùn)算符教學(xué)難點(diǎn)嵌套if-else語(yǔ)句中的if與else匹配問(wèn)題課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一、教授新課一、三目條件運(yùn)算符及其表達(dá)式1、條件運(yùn)算符:?:2、格式:e1?e2:e33、語(yǔ)義:判e1的值,為1時(shí)計(jì)算e2,否則計(jì)算e3;如:max=(a>b)?a:b等價(jià)于if(a>b)max=a;elsemax=b;4、說(shuō)明:1)
條件運(yùn)算符的結(jié)合方向自右至左
如:a>b?a:c>d?c:d等價(jià)于a>b?a:(c>d?c:d)
若inta=1,b=2,c=3,d=4;則表達(dá)式的值為_(kāi)_______2)
條件運(yùn)算符的優(yōu)先級(jí)僅高于逗號(hào)運(yùn)算符與賦值運(yùn)算符;3)
只有當(dāng)if語(yǔ)句的真假均只執(zhí)行一個(gè)賦值語(yǔ)句且給同一變量賦值時(shí),才能用條件表達(dá)式取代;如:if(a>b)max=a;elsemax=b;二、switch語(yǔ)句語(yǔ)法1:switch(表達(dá)式) {caseC1:語(yǔ)句序列1;caseC2:語(yǔ)句序列2;……caseCn:語(yǔ)句序列n;default:語(yǔ)句序列n+1;}語(yǔ)法2:switch(表達(dá)式){caseC1:語(yǔ)句序列1;break;caseC2:語(yǔ)句序列2;break;……caseCn:語(yǔ)句序列n;break;default:語(yǔ)句序列n+1;break;}說(shuō)明:(1)switch后面的()內(nèi)的表達(dá)式,ANSI標(biāo)準(zhǔn)允許他為任何類(lèi)型(2)case后的常量表達(dá)式一般不可以為實(shí)型數(shù)據(jù)。(3)當(dāng)表達(dá)式的值與某個(gè)case后面的常量表達(dá)式的值相等時(shí),就執(zhí)行此case后面的語(yǔ)句,若所有case中的常量表達(dá)式的值都與表達(dá)式的值不相等,執(zhí)行default后面語(yǔ)句。備注頁(yè)碼11第四章選擇結(jié)構(gòu)程序設(shè)計(jì)課題選擇結(jié)構(gòu)程序設(shè)計(jì)教案號(hào)7教學(xué)目的1、掌握實(shí)現(xiàn)選擇結(jié)構(gòu)的兩種語(yǔ)句、兩個(gè)運(yùn)算符2、學(xué)會(huì)編寫(xiě)選擇結(jié)構(gòu)的程序教材分析教學(xué)重點(diǎn)switch語(yǔ)句、條件運(yùn)算符教學(xué)難點(diǎn)嵌套if-else語(yǔ)句中的if與else匹配問(wèn)題課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)(5)每個(gè)case后面的常量表達(dá)式的值必須互不相同。(6)各個(gè)case與default出現(xiàn)次序不影響結(jié)果。(7)break的使用(P99)(8)多個(gè)case可以共用一組語(yǔ)句三、選擇結(jié)構(gòu)程序舉例例:求ax2+bx+c=0方程的根。分析:(1)a=0,不是二次方程。(2)b2-4ac=0,有兩個(gè)相等的實(shí)根。(3)b2-4ac>0,有兩個(gè)不等的實(shí)根。(4)b2-4ac<0,有兩個(gè)共軛的復(fù)根。N-S圖:P102二、課堂小結(jié)1、
switch語(yǔ)句2、
在編寫(xiě)程序過(guò)程中,注意分支的作用范圍,及復(fù)合語(yǔ)句的運(yùn)用。
三、布置作業(yè)1、上機(jī)作業(yè)(P112):6、82、書(shū)面作業(yè)(P111)3、7備注上機(jī)實(shí)驗(yàn),學(xué)習(xí)選擇結(jié)構(gòu)的程序設(shè)計(jì)頁(yè)碼12第五章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)課題循環(huán)結(jié)構(gòu)程序設(shè)計(jì)教案號(hào)8教學(xué)目的1、掌握三種循環(huán)語(yǔ)句的語(yǔ)法結(jié)構(gòu)2、靈活運(yùn)用循環(huán)語(yǔ)句教材分析教學(xué)重點(diǎn)三種循環(huán)語(yǔ)句while、do-while、for教學(xué)難點(diǎn)三種循環(huán)語(yǔ)句的區(qū)別課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一、引入新課問(wèn)題1:假如全班41人,欲從鍵盤(pán)上輸入每人的數(shù)學(xué)成績(jī),然后計(jì)算出平均成績(jī);問(wèn)題2:編程計(jì)算n!。重復(fù)執(zhí)行一組語(yǔ)句是程序設(shè)計(jì)要求的基本功能之一。在C語(yǔ)言中可以用以下語(yǔ)句來(lái)實(shí)現(xiàn)循環(huán):(1)if和goto(2)while(3)do-while(4)for二、講授新課一、goto語(yǔ)句及用goto構(gòu)成循環(huán)語(yǔ)法:gotolabel;其中:label是語(yǔ)句標(biāo)號(hào),它命名的規(guī)則同變量名;語(yǔ)義:使程序無(wú)條件地轉(zhuǎn)向標(biāo)號(hào)為label的語(yǔ)句去執(zhí)行;二、while語(yǔ)句
語(yǔ)法:while(exp)
循環(huán)體語(yǔ)句;語(yǔ)義:當(dāng)exp為真時(shí),執(zhí)行循環(huán)體;為假時(shí),執(zhí)行循環(huán)語(yǔ)句的后續(xù)語(yǔ)句;如:用while語(yǔ)句構(gòu)成循環(huán),求sum=1+2+…+100程序如下:main()
{inti=1,sum=0;
while(i<=100)
{sum+=i;
i++;}
printf(“%d”,sum);
}說(shuō)明:1)
循環(huán)體可以用復(fù)合語(yǔ)句;2)
在while語(yǔ)句前應(yīng)有為測(cè)試表達(dá)式(exp)中的循環(huán)控制變量賦初值的語(yǔ)句,以確保循環(huán)的正常開(kāi)始;3)循環(huán)體內(nèi)應(yīng)有改變循環(huán)控制變量的語(yǔ)句,以確保循環(huán)進(jìn)行有限次后正常結(jié)束;如:i=1;while(i<=100)
sum=sum+1;(死循環(huán))4)
while循環(huán)的特點(diǎn)是先判斷后執(zhí)行,故循環(huán)有可能一次都不被執(zhí)行;
如:i=3;
while(i<3)
printf(“i=%d\n”,i);備注頁(yè)碼13第五章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)課題循環(huán)結(jié)構(gòu)程序設(shè)計(jì)教案號(hào)8教學(xué)目的1、掌握三種循環(huán)語(yǔ)句的語(yǔ)法結(jié)構(gòu)2、靈活運(yùn)用循環(huán)語(yǔ)句教材分析教學(xué)重點(diǎn)三種循環(huán)語(yǔ)句while、do-while、for教學(xué)難點(diǎn)三種循環(huán)語(yǔ)句的區(qū)別課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)三、do-while語(yǔ)句語(yǔ)法:do循環(huán)體語(yǔ)句;while(exp);語(yǔ)義:當(dāng)exp為真時(shí),執(zhí)行循環(huán)體;為假時(shí),執(zhí)行循環(huán)語(yǔ)句的后續(xù)語(yǔ)句;如:用do-while語(yǔ)句構(gòu)成循環(huán),求sum=1+2+…+100程序如下:main()
{inti=1,sum=0;
do
{sum+=i;
i++;}
while(i<=100);
printf(“%d”,sum);
}
說(shuō)明:1)
循環(huán)體可以用復(fù)合語(yǔ)句;2)
循環(huán)控制變量在執(zhí)行do前必須賦初值;循環(huán)體內(nèi)應(yīng)有改變循環(huán)控制變量的語(yǔ)句;3)
do-while循環(huán)的特點(diǎn)是先執(zhí)行后判斷,故循環(huán)至少被執(zhí)行一次;如:i=3;
do
{sum+=i;
i++;
}while(i>10);三、課堂小結(jié)1、
while、do-whilr語(yǔ)句的語(yǔ)法結(jié)構(gòu)2、
whie與do-while區(qū)別3、
注意循環(huán)控制的范圍
備注頁(yè)碼14第五章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)課題循環(huán)結(jié)構(gòu)程序設(shè)計(jì)教案號(hào)9教學(xué)目的1、掌握三種循環(huán)語(yǔ)句的語(yǔ)法結(jié)構(gòu)2、靈活運(yùn)用循環(huán)語(yǔ)句教材分析教學(xué)重點(diǎn)三種循環(huán)語(yǔ)句while、do-while、for教學(xué)難點(diǎn)三種循環(huán)語(yǔ)句的區(qū)別課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一、復(fù)習(xí)引導(dǎo)從while和do-while語(yǔ)句中引入新的循環(huán)語(yǔ)句:for語(yǔ)句二、講授新課一、for語(yǔ)句語(yǔ)法:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)
循環(huán)體語(yǔ)句;語(yǔ)義:1、先求表達(dá)式1;2、求解表達(dá)式2,若其值為真,則執(zhí)行第三步;若為假,則結(jié)束循環(huán);3、執(zhí)行循環(huán)體中的語(yǔ)句;4、求解表達(dá)式3;5、轉(zhuǎn)回第二步繼續(xù)執(zhí)行如: for(i=1;i<=100;i++)sum=sum+i;可看成: for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值)語(yǔ)句;
說(shuō)明:(1)顯然for循環(huán)更簡(jiǎn)潔,更靈活;(2)循環(huán)體可以是復(fù)合語(yǔ)句;(3)for語(yǔ)句中的三個(gè)表達(dá)式均可以是逗號(hào)表達(dá)式,故可同時(shí)對(duì)多個(gè)變量賦初值及修改。如:for(i=0,j=1;j<n&&i<n;i++,j++)…
(4)for語(yǔ)句中三個(gè)表達(dá)式可省:二、幾種循環(huán)的比較(1)可以相互代替使用(2)while,do-while循環(huán),在while后面指定循環(huán)條件,在循環(huán)體中應(yīng)包含使循環(huán)趨向于結(jié)束的語(yǔ)句(3)凡是在while中能完成的,在for語(yǔ)句中也能完成。三、break和continue語(yǔ)句break語(yǔ)句:可以用于switch語(yǔ)句中,也可以用于循環(huán)語(yǔ)句中,當(dāng)用于循環(huán)語(yǔ)句中時(shí),用于在滿(mǎn)足條件情況下,跳出本層循環(huán)。continue語(yǔ)句:用于循環(huán)語(yǔ)句中,在滿(mǎn)足條件情況下,跳出本次循環(huán)。即跳過(guò)本次循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,接著進(jìn)行下一次的循環(huán)判斷。備注頁(yè)碼15第五章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)課題循環(huán)結(jié)構(gòu)程序設(shè)計(jì)教案號(hào)9教學(xué)目的1、掌握三種循環(huán)語(yǔ)句的語(yǔ)法結(jié)構(gòu)2、靈活運(yùn)用循環(huán)語(yǔ)句教材分析教學(xué)重點(diǎn)三種循環(huán)語(yǔ)句while、do-while、for教學(xué)難點(diǎn)三種循環(huán)語(yǔ)句的區(qū)別課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)四、循環(huán)結(jié)構(gòu)程序設(shè)計(jì)例1:用公式求π的近似值,直到最后一項(xiàng)的絕對(duì)值小于10-6為止。π/4≈1-1/3+1/5-1/7+……
#include<stdio.h>
main()
{ints=1;floatn=1.0,t=1,pi=0;
while((fabs(t))>1e-6)
{pi=pi+t;n+=2;
s=-s;t=s/n;
}
pi=pi*4;
printf(“pi=%10.6f\n”,pi);
}三、課堂小結(jié)1、
for語(yǔ)句的語(yǔ)法結(jié)構(gòu),特別是for語(yǔ)句中三個(gè)表達(dá)式的作用2、
注意循環(huán)控制的范圍
四、布置作業(yè)上機(jī)練習(xí):(P141)12、16書(shū)面練習(xí):(P140)3、5備注上機(jī)實(shí)驗(yàn),學(xué)習(xí)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)頁(yè)碼16第六章利用數(shù)組處理批量數(shù)據(jù)課題數(shù)組教案號(hào)10教學(xué)目的1、掌握一維數(shù)組的定義和引用2、掌握二維數(shù)組的定義和引用教材分析教學(xué)重點(diǎn)一維、二維數(shù)組的定義、引用、初始化教學(xué)難點(diǎn)數(shù)組的存儲(chǔ)形式,數(shù)組的首課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一、引入新課數(shù)組是有序數(shù)據(jù)的集合,數(shù)組中每一個(gè)元素都屬于同一個(gè)數(shù)據(jù)類(lèi)型。
二、講授新課一、一維數(shù)組的定義和引用定義數(shù)組,就是要:(1)規(guī)定數(shù)組的名稱(chēng),其取名規(guī)則與變量名相同;(2)規(guī)定數(shù)組的類(lèi)型,包括其數(shù)據(jù)類(lèi)型和存儲(chǔ)類(lèi)型;(3)規(guī)定數(shù)組的大小,即數(shù)組的維數(shù)及包含的數(shù)組元素的個(gè)數(shù)。數(shù)組元素就是包含在數(shù)組中的變量。1、一維數(shù)組的定義:類(lèi)型說(shuō)明符數(shù)組名[常量表達(dá)式]例如:intdata[10],number[5];
2、一維數(shù)組元素的引用數(shù)組名[下標(biāo)]例如:a[0]=a[5]+a[7]-a[2*3]一維數(shù)組在內(nèi)存中占一段連續(xù)的存儲(chǔ)空間,其首:a或&a[0]一維數(shù)組的初始化1.
在定義數(shù)組時(shí)對(duì)數(shù)組元素賦以初值;inta[10]={0,1,2,3,4,5,6,7,8,9};2.
可以只給一部分元素賦值;inta[10]={0,1,2,3,4};3.
如果想使一個(gè)數(shù)組中全部元素值為0,可簡(jiǎn)便實(shí)現(xiàn);
inta[10]={0,0,0,0,0,0,0,0,0,0};
其實(shí),對(duì)static數(shù)組不賦初值,系統(tǒng)會(huì)對(duì)所有數(shù)組元素自動(dòng)賦以0值,即上句等價(jià)于:staticinta[10];4.
C允許通過(guò)所賦初值的個(gè)數(shù)來(lái)隱含定義一維數(shù)組的大?。籭nta[]={0,1,2,3,4,5,0};相當(dāng)于inta[7]={0,1,2,3,4,5,0};二、二維數(shù)組的定義和引用1、二維數(shù)組的定義類(lèi)型說(shuō)明符數(shù)組名[常量表達(dá)式1][常量表達(dá)式2];如:intnumber[5][4];數(shù)組的存儲(chǔ)結(jié)構(gòu):以行為主序的連續(xù)空間
2、二維數(shù)組的引用:二維數(shù)組元素的表示形式為:數(shù)組名[下標(biāo)][下標(biāo)]備注頁(yè)碼17第六章利用數(shù)組處理批量數(shù)據(jù)課題數(shù)組教案號(hào)10教學(xué)目的1、掌握一維數(shù)組的定義和引用2、掌握二維數(shù)組的定義和引用教材分析教學(xué)重點(diǎn)一維、二維數(shù)組的定義、引用、初始化教學(xué)難點(diǎn)數(shù)組的存儲(chǔ)形式,數(shù)組的首課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)3、二維數(shù)組的初始化1.
分行給二維數(shù)組賦初值:如
staticinta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};2.
可以將所有數(shù)據(jù)寫(xiě)在一個(gè)花括號(hào)內(nèi),按數(shù)組排列的順序?qū)υ刭x初值;如:staticinta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};3.
如果花括號(hào)內(nèi)的初值個(gè)數(shù)少于每行中的數(shù)組元素個(gè)數(shù),則每行中后面的元素自動(dòng)賦初值0;也允許代表給每行元素賦初值的花括號(hào)的數(shù)目少于數(shù)組的行數(shù),這時(shí),后面各行的元素也自動(dòng)賦0值。4.C語(yǔ)言規(guī)定,可以用初始化的方法來(lái)隱含定義二維數(shù)組第一維的大小,即可以省略數(shù)組定義中第一個(gè)方括號(hào)中的表達(dá)式,但不能省略第二個(gè)方括號(hào)中的表達(dá)式。如:staticinta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};等價(jià)于
staticinta[][4]={1,2,3,4,5,6,7,8,9,10,11,12};
在定義時(shí)也可以只對(duì)部分元素賦初值而省略第一維長(zhǎng)度,但應(yīng)分行賦初值。如:staticinta[][4]={{0,0,3},{0},{0,10}};4、二維數(shù)組的輸入與輸出用二重循環(huán),以a[m][n]為例for(i=0;i<m;i++)for(j=0;j<n;j++){……}
三、課堂小結(jié)1、
一維數(shù)組、二維數(shù)組的定義、引用及初始化2、
一維數(shù)組、二維數(shù)組的存儲(chǔ)形式
四、布置作業(yè)上機(jī)練習(xí):(P168)2書(shū)面練習(xí):(P168)5備注上機(jī)練習(xí)頁(yè)碼18第六章利用數(shù)組處理批量數(shù)據(jù)課題字符數(shù)組教案號(hào)11教學(xué)目的1、掌握字符數(shù)組的定義、初始化、引用,及輸入與輸出2、掌握字符串處理函數(shù)教材分析教學(xué)重點(diǎn)字符數(shù)組的輸入與輸出教學(xué)難點(diǎn)字符串處理函數(shù)課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一復(fù)習(xí)引導(dǎo)從一般的一維數(shù)組、二維數(shù)組到特殊的字符數(shù)組
二講授新課一、字符數(shù)組的定義char數(shù)組名[exp];如:charc[10];二、字符數(shù)組的初始化1.
給每一個(gè)字符型數(shù)組元素依次賦給一個(gè)單字符。如:charstr[6]={‘C’,‘h’,‘i’,‘n’,‘a(chǎn)’,‘\0’};
2.直接在賦值號(hào)右邊給出字符串常量。如:charstr[6]=“China”;注意:a)
字符數(shù)組的長(zhǎng)度可以通過(guò)賦初值的方式隱含定義;如:
charstr[]={‘C’,‘h’,‘i’,‘n’,‘a(chǎn)’,‘\0’};
charstr[]=“China”;b)
如果括號(hào)中提供的初值個(gè)數(shù)(即字符個(gè)數(shù))大于數(shù)組長(zhǎng)度,則作語(yǔ)法錯(cuò)誤處理。如果初值個(gè)數(shù)小于數(shù)組長(zhǎng)度,則只將這些字符賦給數(shù)組中前面那些元素,其余的元素自動(dòng)定義為空字符(即‘\0’)。
三、字符串和字符串結(jié)束標(biāo)志字符串結(jié)束標(biāo)志是“\0”,如:
charch[]=”China”;“China”在存儲(chǔ)器中實(shí)際占用6個(gè)字節(jié):四、字符數(shù)組的輸入和輸出1、字符數(shù)組的輸出(1)用格式符“%c”控制的printf(),逐個(gè)字符輸出
(2)用格式符“%s”控制的printf();字符數(shù)組值整體輸出
(3)puts(字符數(shù)組名);字符數(shù)組值整體輸出注意:(1)puts用字符數(shù)組名,而不用數(shù)組元素名;(2)輸出的字符串中可含轉(zhuǎn)義字符;如:
staticcharstr[]=“China\nBeijing”;puts(str);(3)如果數(shù)組長(zhǎng)度大于字符串實(shí)際長(zhǎng)度,也只輸出到遇‘\0’時(shí)結(jié)束(即若一個(gè)字符數(shù)組中包含一個(gè)以上的‘\0’,則遇到第一個(gè)時(shí)輸出就結(jié)束)。如:printf(“%s\n”,“ABCD\0EFGH”);只輸出ABCD備注頁(yè)碼19第六章利用數(shù)組處理批量數(shù)據(jù)課題字符數(shù)組教案號(hào)11教學(xué)目的1、掌握字符數(shù)組的定義、初始化、引用,及輸入與輸出2、掌握字符串處理函數(shù)教材分析教學(xué)重點(diǎn)字符數(shù)組的輸入與輸出教學(xué)難點(diǎn)字符串處理函數(shù)課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)2、字符數(shù)組的輸入(1)用格式符“%s”控制的scanf();
如:staticcharstr1[5],str2[5],str3[5];
scanf(“%s%s%s”,str1,str2,str3);/*不能寫(xiě)成&str1*/
若輸入數(shù)據(jù)流為:Howareyou?str1、str2、str3分別接收到“How”、“are”、“you?”,且在各個(gè)字符串的最后自動(dòng)加‘\0’。
如果利用一個(gè)scanf函數(shù)輸入多個(gè)字符串時(shí),則以空格分隔;
(2)用gets();如:charch[16];gets(ch);注意:①gets一次只能輸入一個(gè)字符串;②自變量應(yīng)是數(shù)組名,而不能是數(shù)組元素名;③要求從鍵盤(pán)上輸入一個(gè)字符串直到遇到換行符為止,系統(tǒng)會(huì)自動(dòng)把換行符換成“\0”加在字符串末尾。與scanf不同,輸入字符串中的空格也會(huì)被接收。
五、字符串處理函數(shù)1、puts(字符數(shù)組)功能:將一個(gè)以‘\0’結(jié)束的字符序列輸出到終端;如:staticcharstr[]=“China”;puts(str);說(shuō)明:輸出的字符串中可含轉(zhuǎn)義字符。
2、gets(字符數(shù)組)功能:從終端輸入一個(gè)字符串到字符數(shù)組中,并得到一個(gè)函數(shù)值,該函數(shù)值是字符數(shù)組的起始;如:gets(str);說(shuō)明:gets與puts只能輸入或輸出一個(gè)字符串。3、strcat(字符數(shù)組1,字符數(shù)組2)功能:將字符串2接到字符串1的后而且去掉字符串1的尾空;如:staticcharstr1[30]=“YangZhou”,str2[]=“China”;printf(“%s\n”,strcat(str1,str2));說(shuō)明:①字符數(shù)組1的長(zhǎng)度需足夠大;②去掉字符串1的尾空。4、strcpy(字符數(shù)組1,字符串2)功能:將字符串2拷貝到字符數(shù)組1中去;如:staticcharstr1[10],str2[]=“China”;strcpy(str1,str2);備注頁(yè)碼20第六章利用數(shù)組處理批量數(shù)據(jù)課題字符數(shù)組教案號(hào)11教學(xué)目的1、掌握字符數(shù)組的定義、初始化、引用,及輸入與輸出2、掌握字符串處理函數(shù)教材分析教學(xué)重點(diǎn)字符數(shù)組的輸入與輸出教學(xué)難點(diǎn)字符串處理函數(shù)課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)5、strcmp(字符串1,字符串2)功能:比較字符串1和字符串2,返回:①串1=串2,返回0;②串1>串2,返回正整數(shù);③串1<串2,返回負(fù)整數(shù)。6、strlen(字符數(shù)組)功能:測(cè)試字符串的長(zhǎng)度;如:staticcharstr1[10]=“China”; printf(“%d\n”,strlen(str));說(shuō)明:不包含‘\0’在內(nèi)。特殊字符%%、\’、\\、\n代表一個(gè)字符。7、strlwr(字符串)功能:將字符串中的大寫(xiě)字母轉(zhuǎn)換成小寫(xiě)字母;8、strupr(字符數(shù)組)功能:將字符串中的小寫(xiě)字母轉(zhuǎn)換成大寫(xiě)字母。三、課堂小結(jié)1、
字符串的結(jié)束標(biāo)記2、
字符串的輸入與輸出,gets、puts3、
字符串處理函數(shù)
四、布置作業(yè)作業(yè):(P169)13備注頁(yè)碼21第六章利用數(shù)組處理批量數(shù)據(jù)課題數(shù)組教案號(hào)12教學(xué)目的學(xué)習(xí)用數(shù)組解決一些問(wèn)題教材分析教學(xué)重點(diǎn)數(shù)組應(yīng)用教學(xué)難點(diǎn)數(shù)組應(yīng)用課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一、復(fù)習(xí)舉例我們已經(jīng)學(xué)習(xí)了數(shù)組這種數(shù)據(jù)結(jié)構(gòu),但還要學(xué)會(huì)用數(shù)組來(lái)解決具體問(wèn)題。
[習(xí)題7.2]:利用選擇法對(duì)10個(gè)整數(shù)進(jìn)行由小到大排序。分析:選擇排序的基本思想如下:第i趟排序選出第i小的元素,將其與第i位上的元素進(jìn)行交換,n個(gè)元素共需進(jìn)行n-1趟。main(){inti,j,min,temp,a[11];printf(“Enterdata:\n”);for(i=1;i<=10;i++){printf(“a[%d]=”,i);scanf(“%d”,&a[i]);}printf(“\n”);for(i=1;i<=10;i++)printf(“%d”,a[i]);printf(“\n”);二、課堂小結(jié)1、
三種排序方法:冒泡排序、選擇排序、插入排序2、
字符數(shù)組或字符串的處理
三、布置作業(yè)上機(jī)作業(yè):(P168)4、6書(shū)面作業(yè):(P169)8備注上機(jī)練習(xí)數(shù)組的應(yīng)用頁(yè)碼22第七章用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)課題函數(shù)的定義、調(diào)用教案號(hào)13教學(xué)目的1、掌握函數(shù)定義的一般形式2、掌握函數(shù)調(diào)用的一般形式教材分析教學(xué)重點(diǎn)函數(shù)定義、調(diào)用的一般形式教學(xué)難點(diǎn)形式參數(shù)和實(shí)際參數(shù)課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一、復(fù)習(xí)引導(dǎo)一個(gè)C語(yǔ)言源程序可由一個(gè)主函數(shù)和若干個(gè)其他函數(shù)組成。由主函數(shù)調(diào)用其他函數(shù),其他函數(shù)也可以互相調(diào)用。二、講授新課一、概述1、一個(gè)源程序文件由一個(gè)或多個(gè)函數(shù)組成。2、一個(gè)C程序由一個(gè)或多個(gè)源程序文件組成。這樣可以分別編寫(xiě)、分別編譯,提高調(diào)度效率。序的執(zhí)行從main函數(shù)開(kāi)始,在main函數(shù)中結(jié)束整個(gè)程序的運(yùn)行。有函數(shù)都是平行的,即函數(shù)不能嵌套定義,函數(shù)可以互相調(diào)用,但不能調(diào)用main函數(shù)。用戶(hù)使用的角度看,函數(shù)有兩種:標(biāo)準(zhǔn)函數(shù)(庫(kù)函數(shù))和用戶(hù)自己定義的函數(shù)從函數(shù)的形式看,函數(shù)分為兩類(lèi):無(wú)參函數(shù)和有參函數(shù)二、函數(shù)定義的一般形式:無(wú)參函數(shù)的定義[類(lèi)型說(shuō)明符]函數(shù)名(){變量聲明部分;執(zhí)行部分;}有參函數(shù)的定義形式[類(lèi)型說(shuō)明符]函數(shù)名(形式參數(shù)列表){變量聲明部分;執(zhí)行部分;}空函數(shù)
[類(lèi)型說(shuō)明符]函數(shù)名(){}三、函數(shù)參數(shù)和函數(shù)的值形式參數(shù)和實(shí)際參數(shù):形式參數(shù):函數(shù)定義時(shí)函數(shù)名后括號(hào)中的變量實(shí)際參數(shù):函數(shù)調(diào)用時(shí)函數(shù)名后括號(hào)內(nèi)的變量名關(guān)于形式參數(shù)和實(shí)際參數(shù)的說(shuō)明:=1\*GB1⒈形式參數(shù)只有在函數(shù)被調(diào)用時(shí)才分配存儲(chǔ)單元,調(diào)用結(jié)束就釋放。=2\*GB1⒉實(shí)際參數(shù)可以是變量、常量或表達(dá)式,但要求有確定值。=3\*GB1⒊在被定義的函數(shù)中,必須指明形參類(lèi)型。=4\*GB1⒋實(shí)際參數(shù)與形式參數(shù)的類(lèi)型應(yīng)相同或賦值兼容備注頁(yè)碼23第七章用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)課題函數(shù)的定義、調(diào)用教案號(hào)13教學(xué)目的1、掌握函數(shù)定義的一般形式2、掌握函數(shù)調(diào)用的一般形式教材分析教學(xué)重點(diǎn)函數(shù)定義、調(diào)用的一般形式教學(xué)難點(diǎn)形式參數(shù)和實(shí)際參數(shù)課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)=5\*GB1⒌實(shí)參變量對(duì)形參變量的數(shù)據(jù)傳遞是“單向值傳遞”,即只由實(shí)參傳遞給形參,而不能由形參傳回給實(shí)參。2、函數(shù)返回值函數(shù)的返回值是通過(guò)函數(shù)中的return語(yǔ)句獲得的。函數(shù)返回值類(lèi)型:定義函數(shù)時(shí)應(yīng)予以指定,若不加指定,則當(dāng)作int處理,并且,定義函數(shù)時(shí),對(duì)函數(shù)返回值類(lèi)型的說(shuō)明一般應(yīng)和return語(yǔ)句中表達(dá)式的類(lèi)型保持一致。若函數(shù)值類(lèi)型與return語(yǔ)句中的表達(dá)式類(lèi)型不一致,以函數(shù)值類(lèi)型為準(zhǔn)進(jìn)行類(lèi)型轉(zhuǎn)換。函數(shù)中若沒(méi)有return語(yǔ)句,帶回的是一個(gè)不確定的、無(wú)用的值。可以用“void”定義“無(wú)類(lèi)型”四、函數(shù)的調(diào)用函數(shù)調(diào)用的一般形式:無(wú)參函數(shù)的調(diào)用形式函數(shù)名();有參函數(shù)的調(diào)用:函數(shù)名(實(shí)際參數(shù)列表);函數(shù)調(diào)用方式函數(shù)語(yǔ)句:不要求函數(shù)有返回值函數(shù)表達(dá)式:函數(shù)出現(xiàn)在一個(gè)表達(dá)式中,函數(shù)會(huì)帶回某一確定值。函數(shù)參數(shù):函數(shù)調(diào)用作為另一個(gè)函數(shù)的參數(shù)。對(duì)被調(diào)用函數(shù)的聲明和函數(shù)原型在一個(gè)函數(shù)中調(diào)用另一個(gè)函數(shù)的條件:第一,被調(diào)用函數(shù)必須存在且允許調(diào)用;第二,必須給出滿(mǎn)足函數(shù)運(yùn)行時(shí)要求的參數(shù);第三,在調(diào)用一個(gè)函數(shù)之前一般應(yīng)該對(duì)被調(diào)用函數(shù)進(jìn)行聲明。函數(shù)說(shuō)明函數(shù)類(lèi)型函數(shù)名(參數(shù)類(lèi)型1,參數(shù)類(lèi)型2,…,參數(shù)類(lèi)型n);或:函數(shù)類(lèi)型函數(shù)名(參數(shù)類(lèi)型1參數(shù)名1,參數(shù)類(lèi)型2…);三、課堂小結(jié)1、
函數(shù)的定義形式2、
形參和實(shí)參的區(qū)別3、
函數(shù)的聲明和調(diào)用四、布置作業(yè)書(shū)面作業(yè):(P218)2備注上機(jī)練習(xí)簡(jiǎn)單的函數(shù)的功能實(shí)現(xiàn)頁(yè)碼24第七章用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)課題函數(shù)的嵌套調(diào)用和遞歸調(diào)用教案號(hào)14教學(xué)目的1、掌握函數(shù)的嵌套調(diào)用和遞歸調(diào)用教材分析教學(xué)重點(diǎn)嵌套和遞歸調(diào)用教學(xué)難點(diǎn)遞歸調(diào)用課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一、教授新課一、函數(shù)的嵌套調(diào)用函數(shù)間可以相互調(diào)用主函數(shù)可以調(diào)用其他函數(shù),其他函數(shù)也可以調(diào)用除主函數(shù)以外的任何函數(shù)(含自身)函數(shù)的嵌套調(diào)用:在調(diào)用一個(gè)函數(shù)的過(guò)程中有調(diào)用了另一函數(shù)函數(shù)嵌套調(diào)用執(zhí)行過(guò)程(書(shū)本P155)舉例:例1:采用弦截發(fā)求方程根(P155~156)二、函數(shù)的遞歸調(diào)用:直接或間接調(diào)用自身的函數(shù)為遞歸函數(shù)。
一個(gè)問(wèn)題采用遞歸方法來(lái)解決時(shí)必須符合以下條件:(1)可將一個(gè)問(wèn)題轉(zhuǎn)化為具有同樣解法的規(guī)模較小的問(wèn)題;(2)必須有明確的結(jié)束條件。[例8.7]:有5個(gè)人坐在一起,問(wèn)第5個(gè)人多少歲,他說(shuō)比第4個(gè)人大2歲,問(wèn)第4個(gè)人的歲數(shù),他說(shuō)比第3個(gè)人大2歲,問(wèn)第3個(gè)人的歲數(shù),他說(shuō)比第2個(gè)人大2歲,問(wèn)第2個(gè)人,他說(shuō)比第1個(gè)人大2歲,問(wèn)第一個(gè)人,他說(shuō)是10歲。請(qǐng)問(wèn)第5個(gè)人的歲數(shù)?(P158)
程序:age(intn){intc;if(n==1)c=10;elsec=age(n-1)+2;return(c);}main(){printf(“%d”,age(5));}二、課堂小結(jié)函數(shù)的嵌套調(diào)用函數(shù)的遞歸調(diào)用備注頁(yè)碼25第七章用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)課題數(shù)組作為函數(shù)參數(shù)教案號(hào)15教學(xué)目的1、掌握數(shù)組作為函數(shù)參數(shù)的應(yīng)用(虛實(shí)結(jié)合)教材分析教學(xué)重點(diǎn)數(shù)組名作為函數(shù)參數(shù)教學(xué)難點(diǎn)虛實(shí)結(jié)合課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一、講授新課一、數(shù)組元素作為函數(shù)實(shí)際參數(shù)單向值傳遞:用賦值的方法,把實(shí)在參數(shù)的值賦給被調(diào)函數(shù)對(duì)應(yīng)的形式參數(shù)。不希望破壞調(diào)用函數(shù)中作為實(shí)際參數(shù)對(duì)象的值時(shí),使用“值傳遞”方式;注意:數(shù)組元素作為函數(shù)實(shí)參時(shí)如同簡(jiǎn)單變量。二、數(shù)組名作為函數(shù)參數(shù)此時(shí),應(yīng)分別在主調(diào)函數(shù)和被調(diào)用函數(shù)中定義數(shù)組。實(shí)參數(shù)組應(yīng)與形參數(shù)組類(lèi)型保持一致實(shí)參數(shù)組與形參數(shù)組大小可以不一值型參數(shù)組可以不指定大小,再定義數(shù)組時(shí),在數(shù)組名后面跟一個(gè)空的方括號(hào),有時(shí)為了在被調(diào)用函數(shù)中處理數(shù)組元素的需要,可以另設(shè)一個(gè)參數(shù),傳遞需要處理的數(shù)組元素的個(gè)數(shù)。用數(shù)組名作為函數(shù)實(shí)際參數(shù)時(shí),不是把數(shù)組元素的值傳遞給形式參數(shù)數(shù)組,而是把實(shí)參數(shù)組的起始傳遞給形參數(shù)組,這樣兩個(gè)數(shù)組就共用同一段存儲(chǔ)單元。這種參數(shù)傳遞有時(shí)也可以稱(chēng)為“傳遞”[例8.13]:用選擇法對(duì)數(shù)組中10個(gè)整數(shù)按由小到大排序。main(){inta[10],i;printf(“enterthearray\n”);for(i=0;i<10;i++)scanf(“%d”,&a[i]);sort(a,10);printf(“thesortedarray:\n”);for(i=0;i<10;i++)printf(“%d”,a[i]);printf(“\n”);}二、課堂小結(jié)數(shù)組作為函數(shù)參數(shù)有兩種情況:傳遞數(shù)組元素的值、傳遞數(shù)組名
三、布置作業(yè)書(shū)面作業(yè):(P218)4、5上機(jī)作業(yè):(P218)3、6備注上機(jī)練習(xí)頁(yè)碼26第七章用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)課題全局與局部變量、動(dòng)態(tài)與靜態(tài)變量教案號(hào)16教學(xué)目的1、掌握局部變量和全局變量的作用范圍2、掌握變量的存儲(chǔ)類(lèi)別,了解內(nèi)部函數(shù)和外部函數(shù)教材分析教學(xué)重點(diǎn)局部變量和全局變量、變量的存儲(chǔ)類(lèi)別教學(xué)難點(diǎn)變量的作用域和生存期課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一、復(fù)習(xí)引導(dǎo)在函數(shù)調(diào)用過(guò)程中,不僅要注意實(shí)參和形參的數(shù)據(jù)結(jié)合,而且要注意各個(gè)變量的作用域和生存期。
二、講授新課一、局部變量和全局變量1、局部變量在一個(gè)函數(shù)內(nèi)部定義的變量是內(nèi)部變量,它只在本函數(shù)范圍內(nèi)有效。
2、全局變量在函數(shù)之外定義的變量稱(chēng)為外部變量,即全局變量(全程變量)。全局變量可以為本文件中其他函數(shù)所共用。它的有效范圍為從定義變量的位置開(kāi)始到本源文件結(jié)束。
使用全局變量可以增加函數(shù)間的數(shù)據(jù)聯(lián)系;在同一源文件中,如果外部變量與局部變量同名,則在局部變量的作用范圍內(nèi)外部變量不起作用;[例8.16]:外部變量與局部變量同名inta=3,b=5;/*a,b外部變量*/max(inta,intb);/*a,b局部變量*/{intc;c=a>b?a:b;return(c);}main(){inta=8;/*a局部變量*/printf(“%d”,max(a,b));}二、變量的存儲(chǔ)類(lèi)別從變量值存在的(生存期)時(shí)間來(lái)分,可以分為:動(dòng)態(tài)存儲(chǔ)方式與靜態(tài)存儲(chǔ)方式靜態(tài)存儲(chǔ)方式:指在程序運(yùn)行期間分配固定的存儲(chǔ)空間的方式。動(dòng)態(tài)存儲(chǔ)方式:在程序運(yùn)行期間根據(jù)需要進(jìn)行動(dòng)態(tài)的分配存儲(chǔ)空間的方式。1、auto變量調(diào)用函數(shù)時(shí)系統(tǒng)自動(dòng)分配存儲(chǔ)空間,在函數(shù)調(diào)用結(jié)束時(shí)自動(dòng)釋放這些存儲(chǔ)空間,稱(chēng)這類(lèi)局部變量為自動(dòng)變量。自動(dòng)變量用關(guān)鍵字auto作存儲(chǔ)類(lèi)別的聲明。它也可省。備注頁(yè)碼27第七章用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)課題全局與局部變量、動(dòng)態(tài)與靜態(tài)變量教案號(hào)16教學(xué)目的1、掌握局部變量和全局變量的作用范圍2、掌握變量的存儲(chǔ)類(lèi)別,了解內(nèi)部函數(shù)和外部函數(shù)教材分析教學(xué)重點(diǎn)局部變量和全局變量、變量的存儲(chǔ)類(lèi)別教學(xué)難點(diǎn)變量的作用域和生存期課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)2、用static聲明局部變量函數(shù)中變量的值在函數(shù)調(diào)用結(jié)束后不消失而保留原值,在下次該函數(shù)調(diào)用時(shí),該變量已有值,即為上一次函數(shù)調(diào)用結(jié)束時(shí)的值。該局部變量為靜態(tài)局部變量。說(shuō)明:1、靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)類(lèi)別,在靜態(tài)存儲(chǔ)區(qū)內(nèi)分配存儲(chǔ)單元。在程序整個(gè)運(yùn)行期都不釋放。自動(dòng)變量屬于動(dòng)態(tài)存儲(chǔ)類(lèi)別,占動(dòng)態(tài)存儲(chǔ)區(qū)空間,函數(shù)調(diào)用結(jié)束后即釋放。2、對(duì)靜態(tài)局部變量在編譯時(shí)賦初值,程序運(yùn)行時(shí),它已有初值,以后每次調(diào)用函數(shù)時(shí)不再重新賦初值而只是保留上次函數(shù)調(diào)用結(jié)束時(shí)的值。對(duì)自動(dòng)變量賦初值,不是在編譯時(shí)進(jìn)行的,而是在函數(shù)調(diào)用時(shí)進(jìn)行,每調(diào)用一次函數(shù)重新給一次初值。3、對(duì)靜態(tài)局部變量來(lái)說(shuō),如不賦初值,編譯時(shí)自動(dòng)賦初值0或空字符。
對(duì)自動(dòng)變量來(lái)說(shuō),如不賦初值,它的值是一個(gè)不確定的值。4、雖然靜態(tài)局部變量在函數(shù)調(diào)用結(jié)束后仍然存在,但其他函數(shù)不能引用。3、register變量將局部變量的值放在CPU中的寄存器中,需要用時(shí)直接從寄存器取出參加運(yùn)算,不必再到內(nèi)存中去存取。這種變量稱(chēng)為寄存器變量。4、用extern聲明外部變量1、在一個(gè)文件內(nèi)聲明外部變量2、在多文件的程序中聲明外部變量5、用static聲明外部變量在定義外部變量時(shí),加一個(gè)static聲明,可以使此變量只能用于本文件中。注:對(duì)外部變量加或不加static聲明,都是靜態(tài)存儲(chǔ),只是作用范圍不同,都是在編譯時(shí)分配內(nèi)存的。三、內(nèi)部函數(shù)和外部函數(shù)1、內(nèi)部函數(shù)一個(gè)函數(shù)只能被本文件中其他函數(shù)所調(diào)用。即:static類(lèi)型標(biāo)識(shí)符函數(shù)名(形參表)如:staticintfun(inta,intb)
備注頁(yè)碼28第七章用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)課題全局與局部變量、動(dòng)態(tài)與靜態(tài)變量教案號(hào)16教學(xué)目的1、掌握局部變量和全局變量的作用范圍2、掌握變量的存儲(chǔ)類(lèi)別,了解內(nèi)部函數(shù)和外部函數(shù)教材分析教學(xué)重點(diǎn)局部變量和全局變量、變量的存儲(chǔ)類(lèi)別教學(xué)難點(diǎn)變量的作用域和生存期課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)2、外部函數(shù)一個(gè)函數(shù)可供其他文件調(diào)用,稱(chēng)為外部函數(shù)定義時(shí)聲明或調(diào)用時(shí)聲明,即:
externintfun(inta,intb)定義時(shí)
或externfun(inta,intb)調(diào)用時(shí)在定義時(shí),也可省寫(xiě)extern,即為外部函數(shù)三、課堂小結(jié)1、
局部變量和全局變量的作用域2、
變量的存儲(chǔ)類(lèi)別有動(dòng)態(tài)存儲(chǔ)方式和靜態(tài)存儲(chǔ)方式3、
關(guān)鍵字有auto、static、register、extern
四、布置作業(yè)書(shū)面作業(yè):(P219)17備注頁(yè)碼29第八章善于利用指針課題變量的指針與指針變量教案號(hào)17教學(xué)目的1、了解指針與的概念2、掌握指針變量的定義、引用及指針變量作為參數(shù)教材分析教學(xué)重點(diǎn)指針變量的定義、引用及指針變量作為參數(shù)教學(xué)難點(diǎn)指針變量作為參數(shù)課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一、講授新課一、與指針的概念二、變量的指針與指針變量變量的指針就是變量的。指針變量是一種特殊類(lèi)型的變量,它是用于專(zhuān)門(mén)存放的。指針變量的定義定義形式:基類(lèi)型*指針變量名;注意:指針變量前的“*”,表示改變量的類(lèi)型為指針型變量,“*”后的才是指針變量名。在定義指針變量時(shí)必須指定基類(lèi)型指針變量的引用指針變量只能存放,不要將一個(gè)整型量(或其他任何非類(lèi)型的數(shù)據(jù))賦值給一個(gè)指針變量。兩個(gè)相關(guān)運(yùn)算符:=1\*Arabic1&:取運(yùn)算符??梢垣@取某個(gè)變量的*:指針運(yùn)算符,獲取某個(gè)指針變量所值向的變量的值3關(guān)于&和*運(yùn)算符的說(shuō)明:假設(shè)已執(zhí)行pointer_1=&a;1、&*pointer_1含義是什么?&*pointer_1與&a相同,即變量a的。2、*&a的含義是什么?先進(jìn)行&a運(yùn)算,得a的,再進(jìn)行*運(yùn)算。*&a、*pointer_1及變量a等價(jià)。3、(*pointer_1)++相當(dāng)于a++。它與*pointer_1++不同。4、*pointer_1++等價(jià)于*(pointer_1++),即先進(jìn)行*運(yùn)算,得到a的值,然后使pointer_1的值改變,這樣pointer_1不再指向a了。指針變量作為函數(shù)參數(shù)函數(shù)的參數(shù)不僅可以是整型、實(shí)型、字符型等數(shù)據(jù),還可以是指針類(lèi)型,它的作用是將一個(gè)變量的傳送到另一個(gè)函數(shù)中。例10.3對(duì)輸入的兩個(gè)整數(shù)按大小順序輸出。先考察如下程序,看是否能得到預(yù)期的結(jié)果備注頁(yè)碼30第八章善于利用指針課題變量的指針與指針變量教案號(hào)17教學(xué)目的1、了解指針與的概念2、掌握指針變量的定義、引用及指針變量作為參數(shù)教材分析教學(xué)重點(diǎn)指針變量的定義、引用及指針變量作為參數(shù)教學(xué)難點(diǎn)指針變量作為參數(shù)課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)swap(intp1,intp2)
{inttemp;
temp=p1;p1=p2;p2=temp;}main()
{inta,b;
scanf(“%d,%d”,&a,&b);
if(a<b)swap(a,b);
printf(“\n%d,%d\n”,a,b);}不能得到預(yù)期的結(jié)果。改為:swap(int*p1,int*p2)
{inttemp;
temp=*p1;*p1=*p2;*p2=temp;}main()
{inta,b;int*pointer_1,*pointer_2;
scanf(“%d,%d”,&a,&b);pointer_1=&a;pointer_2=&b;
if(a<b)swap(pointer_1,pointer_2);
printf(“\n%d,%d\n”,a,b);}
注:如果想通過(guò)函數(shù)調(diào)用得到n個(gè)改變的值,可以:1、在主調(diào)函數(shù)中設(shè)n個(gè)變量,用n個(gè)指針變量指向它們;2、然后將指針變量作實(shí)參,將這n個(gè)變量的傳給所調(diào)用的函數(shù)的形參;3、通過(guò)形參指針變量,改變?cè)搉個(gè)變量的值;4、主調(diào)函數(shù)中就可以使用這些改變了值的變量。二、課堂小結(jié)本課介紹了指針與的概念,指針變量的定義、引用及作為參數(shù)的使用。指針:就是,即內(nèi)存單元的編號(hào)。指針變量:用來(lái)存放另一變量的(即指針)的變量。例如:inta=5,*p=&a;
printf(“%d”,*p);注意:運(yùn)算符*和&的用法,指針變量的自加自減運(yùn)算。
備注頁(yè)碼31第八章善于利用指針課題數(shù)組與指針教案號(hào)18教學(xué)目的掌握指針與數(shù)組的知識(shí)教材分析教學(xué)重點(diǎn)指向數(shù)組的指針變量教學(xué)難點(diǎn)指向二維數(shù)組的指針課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)一、復(fù)習(xí)引導(dǎo)上節(jié)課介紹了指針變量的定義及其賦值。一個(gè)變量有,一個(gè)數(shù)組包含若干元素,每個(gè)數(shù)組元素都在內(nèi)存中占用存儲(chǔ)單元,它們都有相應(yīng)的。指針變量既然可以指向變量,當(dāng)然也可以指向數(shù)組和數(shù)組元素(把數(shù)組起始或某一元素的放到一個(gè)指針變量中)。二、講授新課所謂數(shù)組的指針是指數(shù)組的起始,數(shù)組元素的指針是數(shù)組元素的。引用數(shù)組元素可以用下標(biāo)法(如a[3]),也可以用指針?lè)?,即通過(guò)指向數(shù)組元素的指針找到所需的元素。使用指針?lè)苁鼓繕?biāo)程序質(zhì)量高(占內(nèi)存少,運(yùn)行速度快)。一、指向一維數(shù)組的指針定義形式:
inta[10];
int*p;
p=&a[0];或p=a;含義:把數(shù)組的首賦給指針變量p。也即:int*p=&a[0];或int*p=a;
二、通過(guò)指針引用數(shù)組元素按C的規(guī)定:如果指針變量p已指向數(shù)組中的一個(gè)元素,則p+1指向同一個(gè)數(shù)組中的下一個(gè)元素(而不是簡(jiǎn)單地加1)。如果p的初值為&a[0],則:p+ia+i&a[i],即指向a數(shù)組的第i個(gè)元素。*(p+i)*(a+i)a[i]。指向數(shù)組的指針變量也可以帶下標(biāo),如p[i]與*(p+i)等價(jià)引用數(shù)組元素時(shí),可以用:1、下標(biāo)法,如:a[i]2、指針?lè)?,如?(a+i)或*(p+i)
其中,a是數(shù)組名,p是指向數(shù)組的指針備注頁(yè)碼32第八章善于利用指針課題數(shù)組與指針教案號(hào)18教學(xué)目的掌握指針與數(shù)組的知識(shí)教材分析教學(xué)重點(diǎn)指向數(shù)組的指針變量教學(xué)難點(diǎn)指向二維數(shù)組的指針課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)注意指針變量的運(yùn)算。如果p指向數(shù)組a的首個(gè)元素,則:⑴p++(或p+=1),使p指向下一元素a[1]。⑵*p++等價(jià)*(p++)。作用是先得到p指向的變量的值(即*p),然后再使p+1→p。⑶*(p++)與*(++p)不同。前者為a[0],后者為a[1]⑷(*p)++表示p指向的元素值加1,即(a[0])++⑸如果p當(dāng)前指向a數(shù)組中第i個(gè)元素,則:*(p--)相當(dāng)于a[i--],先對(duì)p進(jìn)行*運(yùn)算,再使p自減;*(++p)相當(dāng)于a[++i],先使p自加,再作*運(yùn)算。*(--p)相當(dāng)于a[--i],先使p自減,再作*運(yùn)算。三、數(shù)組名作函數(shù)參數(shù)用數(shù)組名作實(shí)參,在調(diào)用函數(shù)時(shí)是把數(shù)組的首傳送給形參。即實(shí)參數(shù)組與形參數(shù)組共占同一段內(nèi)存。如果有一個(gè)實(shí)參數(shù)組,想在函數(shù)中改變此數(shù)組的元素的值,實(shí)參與形參的對(duì)應(yīng)關(guān)系有以下4種情況:1、形參和實(shí)參都用數(shù)組名;main()
{inta[10];
f(a,10);……
}
f(intx[],intn){……}a和x指的是同一個(gè)數(shù)組
2、實(shí)參用數(shù)組名,形參用指針變量;main()
{inta[10];
f(a,10);
……}
f(int*x,intn){……}開(kāi)始時(shí),x指向a[0]
備注頁(yè)碼33第八章善于利用指針課題數(shù)組與指針教案號(hào)18教學(xué)目的掌握指針與數(shù)組的知識(shí)教材分析教學(xué)重點(diǎn)指向數(shù)組的指針變量教學(xué)難點(diǎn)指向二維數(shù)組的指針課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)3、實(shí)參形參都用指針變量;main()
{inta[10],*p;
p=a;
f(p,10);
……}
f(int*x,intn){……}實(shí)參p和形參x都指向數(shù)組a
4、實(shí)參為指針變量,形參為數(shù)組名。main()
{inta[10],*p;
p=a;
f(p,10);
……}
f(intx[],intn){……}p指向數(shù)組a,x和a共用同一段內(nèi)存單元 四、指向二維數(shù)組的指針和指針變量1、二維數(shù)組的inta[3][4];一級(jí)指針:(二維數(shù)組某一個(gè)元素的指針)a[i],*(a+i),&a[i][0]都是元素a[i][0]的。a[i]+j,*(a+i)+j,&a[i][j]都是元素a[i][j]的。二級(jí)指針:(二維數(shù)組某一行的)a+i,&a[i]是二維數(shù)組中第I行的(行號(hào)從0計(jì)算)二維數(shù)組元素的引用:下標(biāo)法:a[i][j]指針?lè)ǎ?(a[i]+j),*(*(a+i)+j)2、二維數(shù)組與指針指向二維數(shù)組元素的指針變量(一級(jí)指針變量)定義:二維數(shù)組元素類(lèi)型*指針變量名;使用過(guò)程與指向一維數(shù)組元素的指針變量基本相似,只是要注意數(shù)組越界情況。指向二維數(shù)組某一行的指針變量(二級(jí)指針變量)備注頁(yè)碼34第八章善于利用指針課題數(shù)組與指針教案號(hào)18教學(xué)目的掌握指針與數(shù)組的知識(shí)教材分析教學(xué)重點(diǎn)指向數(shù)組的指針變量教學(xué)難點(diǎn)指向二維數(shù)組的指針課時(shí)安排2教學(xué)方法講授與演示法相結(jié)合教具計(jì)算機(jī)、投影儀教學(xué)內(nèi)容及過(guò)程設(shè)計(jì)定義形式:數(shù)組元素類(lèi)型(*指針變量名)[常量表達(dá)式];含義:定義了一個(gè)指針變量,該指針變量指向一個(gè)長(zhǎng)度為常量表達(dá)式值的一維數(shù)組例如:int(*q)[4];定義了一個(gè)指針變量q,他指向一個(gè)長(zhǎng)度為4的整型數(shù)組,此時(shí),q的值是該一維數(shù)組的起始,而不是該一維數(shù)組的第一個(gè)元素的。有二維數(shù)組:inta[3][4];若有:int(*q)[4];使q指向二維數(shù)組第0行的賦值語(yǔ)句是:q=a;或q=&a[0];使q指向二維數(shù)組第i行的賦值語(yǔ)句是:q=a+i;或q=&a[i];在此前提下:二維數(shù)組元素a[i][j]可以采用*(*q+j)引用。若有:int*q;使q指向二維數(shù)組第一行第一個(gè)元素的賦值語(yǔ)句是q=a[
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度個(gè)性化定制汽車(chē)租賃合作協(xié)議2篇
- 2024年期白酒分銷(xiāo)商協(xié)議協(xié)議范本版B版
- 2024年離婚后養(yǎng)老保險(xiǎn)轉(zhuǎn)移合同
- 2025年度水果采摘園門(mén)票與產(chǎn)品組合銷(xiāo)售合同3篇
- 2022高考英語(yǔ)北京市完形填空專(zhuān)題選練及答案2
- 2024年租賃合同標(biāo)的物為5輛豪華轎車(chē)
- 智慧工地系統(tǒng)方案
- 【核動(dòng)力】2022屆高三物理一輪復(fù)習(xí)章末綜合檢測(cè)八-第8章-磁場(chǎng)-
- 2021貴陽(yáng)市高考英語(yǔ)語(yǔ)法填空、短文改錯(cuò)、閱讀類(lèi)訓(xùn)練(5)及答案
- 蘇州同心醫(yī)療器械有限公司心室輔助裝置遷建項(xiàng)目
- 2023年鞍山市海城市教育局畢業(yè)生招聘筆試真題
- 北京2025年首都醫(yī)科大學(xué)附屬北京友誼醫(yī)院招聘140人歷年參考題庫(kù)(頻考版)含答案解析
- 遼寧省撫順縣2024-2025學(xué)年九年級(jí)上學(xué)期期末物理試卷(含答案)
- 2024-2025學(xué)年安徽省合肥市巢湖市三年級(jí)數(shù)學(xué)第一學(xué)期期末達(dá)標(biāo)測(cè)試試題含解析
- 浙江省寧波市九校2023-2024學(xué)年高一上期末聯(lián)考生物試題
- 2023-2024人教版上學(xué)期小學(xué)英語(yǔ)三年級(jí)上冊(cè)期末試卷
- 冬季施工階段安全事故案例分析及對(duì)策
- 施工現(xiàn)場(chǎng)消防安全操作規(guī)程
- A4標(biāo)簽打印模板
- (完整版)工程項(xiàng)目管理組織機(jī)構(gòu)
- 工程質(zhì)量檢測(cè)內(nèi)容包括哪些?
評(píng)論
0/150
提交評(píng)論