




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上四川警安職業學院標準教案紙課程名稱第一章 C+程序設計基礎第1講、C+程序設計基礎任課教師 授課時間09.02.23地點六多媒體授課班級06計信人數53人教學目標對面向對象的程序設計的思想有一個總體認識,掌握面向對象的基本概念、對象和類的概念,理解對象的特性;掌握C+語言的基本概念。 教學重點對象和類的概念,掌握對象的封裝性、繼承性和多態性的這三大對象的特征。熟練掌握類和對象的關系。教學難點對象的概念,封閉、繼承和多態性的理解。教學時數2節教學方法講授法、演示法、教學手段多媒體教學教學內容:一、 C+語言簡介1、C+語言的發展史 C+源于C語言,而C語言是在B語言的基
2、礎上發展起來的。 1972年美國貝爾實驗室的Dennis M.Ritchie為克服B語言的諸多不足,在B語言的基礎上重新設計了一種語言,取其第二字母C,故稱為C語言。 1980年貝爾實驗室的Bjarne Stroustrup對C語言進行了擴充,推出了“帶類的C”,多次修改后起名為C+。以后又經過不斷的改進,發展成為今 天的C+。 2、C+的編程模式結構化的程序設計 面向對象程序設計 3、C+語言的特點C+語言繼承了C語言的特點:豐富的運算符和數據類型、結構化的程序設計方法、高效的機器代碼、良好的可移植性。 C+語言擴展了C語言的功能,增加了面向對象機制。與C語言相比,C+語言的錯誤檢查機制強。
3、 二、面向對象方法的基本概念 1、對象 按照面向對象的觀點,對象(object)是現實世界中各種各樣實際存在的事物,包括有形的對象和無形的對象。對象是構成世界的一個獨立單位,它具有自己特定的屬性(attribute)(如大小、形狀和重量等)和行為(behavior)(如生長、行走、轉彎和運算等),人們通過對象的屬性和行為來認識對象。 在計算機科學中,對象是系統中用來描述客觀事物的一個實體,它是構成系統的基本單位,而系統可以看作是由一系列相互作用的對象組成。 2、類 類是面向對象語言必需提供的用戶定義的數據類型,它將具有相同狀態、操作和訪問機制的多個對象抽象成為一個對象類。 類可用公式表示: 類
4、=數據結構+對數據進行操作的函數一個對象又稱作類的一個實例(instance)。 3、消息 面向對象方法提供了對象之間的通信機制。程序由一些相互作用的對象(類)構成,對象之間的交互通過發送消息來實現。程序通過執行對象的各種行為方法,來改變對象的狀態(屬性數據),從而使該對象發生某些事件。當對象發生某些事件時,通常需向其他相關對象發送消息,請求它們作出一些處理。 消息是向某對象請求服務的一種表達方法。對象內有方法和數據,外部的用戶或對象對該對象提出的服務請求,可以稱為向該對象發送了消息。 4、對象的特征 繼承 繼承是面向對象語言的另一特性。類與類之間可以組成繼承層次,一個類的定義(子類)可以定義
5、在另一個已定義類(父類)的基礎上。子類可以繼承父類中的屬性和操作,也可以定義自己的屬性和操作。 封裝 封裝有兩個涵義:第一個涵義是,把對象的全部屬性和全部服務結合在一起,形成一個不可分割的獨立單位(即對象)。第二個涵義也稱作“信息隱蔽”,即盡可能隱蔽對象的內部細節,對外形成一個邊界(或者說形成一道屏障),只保留有限的對外接口使之與外部發生聯系。 多態性 多態性是指一個接口名稱具有多種功能三、 類的定義 C+定義類的基本形式如下:class private: ;public:;protected:;private: 只能由該類中的方法訪問,不能被該類的對象訪問. protected: 可以被該類
6、中的方法和其友元函數訪問,但不能被該類的對象訪問 public: 可以被該類中的方法和其友元函數訪問,也可以由該類的對象訪問 四、變量和常量 常量的值是始終不變的,而變量的值是可以被改變的。 常量和變量的主要區別在于:常量不占內存空間,不能為常量賦值;而變量需要占內存空間,可以給變量賦不同的值。 五、函數 函數是C+程序的構成基礎。C+程序都是由一個個函數所組成的。 C+函數有三種:主函數(即main( )函數)、C+提供的庫函數和自定義函數。六、輸入和輸出 程序從外部設備獲得數據稱為輸入(input),反之,將程序中的數據送到外部設備如屏幕、打印機等稱為程序的輸出(output)。 1、標準
7、輸出語句cout ”lets learn to write a C+ Program.”;cout endl;cout”chicken hen cock “endl;cout” ” chicken” ”hen” ”cockmyage;#includevoid main(void)int myage;cout myage;/輸入年齡(一個整數)coutmyageendl;七、預處理命令 #include 預處理命令以位于行首的符號“#”開始,C+提供的預處理有宏定義命令、文件包含命令和條件編譯命令三種。 八、命名 標識符是由程序員定義的字符串,用以命名程序中變量名、函數名、常量名和對象名等。標識
8、符由字母、數字和下劃線“_”組成。第一個字符只能以字母或下劃線開頭,而且不能是數字。 與有些語言不同,C+編譯器把大寫和小寫字母當作不同的字符,這個特征稱為“大小寫敏感”。 九、注釋 注釋是用來幫助閱讀、理解及維護程序。在編譯時,注釋部分被忽略,不產生目標代碼。C+語言提供兩種注釋方式。 一種是與C兼容的多行注釋,用/*和*/分界。另一種是單行注釋,以“/”開頭的表明本行中“/”符號后的內容是注釋。 十、C+程序的運行環境 1. Turbo C+2.C+ Builder3.Dev-C+4.Visual C+ Visual C+ 6.0在項目文件管理、調試及操作的親和力等方面上都略勝一籌。 作
9、業熟練VC+的開發環境。教學反饋四川警安職業學院標準教案紙課程名稱第二章 數據類型和表達式第2講 數據類型和表達式任課教師 授課時間09.3.02地點六多媒體授課班級07信管人數53人教學目標掌握數據類型的分類、適用范圍及表示方法;熟練掌握表達式的各種運算。教學重點數據類型的分類及其表示方法,各種運算符的運算規則教學難點數據類型之間表示方法,運算符的優先級教學時數2節教學方法講授法、演示法、實踐操作法教學手段多媒體教學教學內容:一、數據類型在C+中,數據類型分為兩大類:基本數據類型和構造數據類型。構造數據類型從基本數據類型“演變”而來,不同的演變方法構成了不同的數據類型。 (一)整形 C+的整
10、型數一般占用四個字節,也可能是兩個字節(取決與具體的計算機系統)。整型還可以通過加修飾符來改變它的長度。1、整形的分類 (1)基本型:用int來標識(2)短整型:用short int 標識,或簡寫成short(3)長整型:用long int 標識,或簡寫成long(4)無符號型:用unsigned標識。相反,不加unsigned標識,則默認是有符號的(singed)。無符號型又可與上述三種類型匹配構成以下三種形式:無符號基本型:用unsigned int或unsigned標識無符號短整型:用unsigned short標識無符號長整型:用unsigned long標識2、整形常量 整型常量即整
11、常數。C+中的整數可以用十進制、八進制和十六進制來表示。3、變量的定義變量定義的一般格式為:=,=,;例:int a,b,c; /定義a,b,c為整型變量long x1,y2; /定義x1,y2為長整型變量unsigned a1,b1; /定義a1,b1為無符號整型變量short x,y,z=6; /定義短整型變量x,y,z,對z 進行了初始化,值為6注意:允許在一個類型說明符后,定義多個相同類型的變量。各變量名之間用逗號間隔。類型說明符與變量名之間至少用一個空格間隔。最后一個變量名之后必須以“;”號結尾。允許在定義變量時同時對變量賦值以進行變量的初始化。變量定義必須放在變量使用之前,即“先定
12、義,后使用”。在函數內一般放在函數體的開頭部分。 (二)實型分類 1、單精度型:用float來標識,占4個字節2、雙精度型:用double來標識,占8個字節。3、長精度型:用long double來標識,占10個字節 實型變量的定義:實型變量定義的格式和規則與整型相同(三)字符型 1、字符型常量:普通字符;轉義字符 2、字符型變量(1)字符變量用來存儲字符常量,即單個字符。(2)字符變量的類型說明符是char。字符變量類型定義的格式和書寫規則都與整型變量相同。 3、字符串常量 字符串常量是用一對雙引號括起來的字符序列。(四)邏輯型 邏輯型也稱布爾型,它用bool來標識。邏輯型常量只有兩個值:即
13、true(真)和false(假),在C+中邏輯真是用非0來表示,而運算結果為邏輯真,是用數值1來表示,而對邏輯假,不管是參加運算,還是運算結果,都是用數值0來表示。(五)枚舉型 枚舉類型的定義:格式:enum 枚舉類型名 枚舉元素1, 枚舉元素2, ,枚舉元素n;定義語句以“;”結束,且各枚舉元素不能同名;枚舉類型名是用戶自定義的標識符;該語句定義了一個枚舉類型,且枚舉類型中含有n個枚舉常量,每個枚舉常量均有值。如果不指定枚舉元素的起始值,將自動從0開始為各個枚舉元素設置初值,后面的枚舉元素依次增1。如果指定某個枚舉元素的值,則下一個枚舉元素如果沒有指定值,就是上一個枚舉元素值加1。 二、表達
14、式l 表達式是描述數據加工的一種方法。它是由操作對象(常量、變量、函數等)和運算符組成的式子。l 表達式的類型由運算符和操作對象的類型決定。 l 表達式的求值是按運算符的優先級和結合性所規定的操作順序進行。l 優先級是指在相鄰的兩種運算符中,應先執行哪一種。l 結合性是指兩個同優先級的運算符相鄰時,應按從左向右的順序運算,還是按從右向左的順序運算。(一)運算符根據操作數的個數可將運算符分為單目、雙目和三目3類運算符。本節我們只討論算術運算符、賦值運算符、自增自減運算符、關系運算符及邏輯運算符等基本運算符1、算術運算符 +(加法)、-(減法或負號)、*(乘法)、/(除法)、%(求余數)。 算術表
15、達式 算術表達式是由算術運算符連接的式子。2、賦值運算符賦值運算符是給變量或對象賦值,它分為基本賦值運算符和復合賦值運算符 。而最后進行賦值運算的表達式,稱為賦值表達式。 簡單賦值運算符基本賦值操作“=”, 是一種雙目運算符,作用是將右操作數的值傳遞給左操作數。它的一般形式為: =復合賦值運算符3、自增自減運算符4、關系運算符5、邏輯運算符(二)運算符的優先級和綜合性 表達式的操作一般遵循以下規則: 括號內的表達式優先計算;無括號的,按優先級從高到低進行計算; 若運算符的優先級相同,按結合性進行計算。 總結:1、五種算術運算符有優先級:其中乘()、除()、求余()優先于加()和減(),當然也可
16、用括號來改變其優先級,它們的結合性是自左向右。 2、自增自減運算符的優先級優于雙目算術運算符,與+(正)和-(負)同級且它們操作順序自右向左 3、算術運算符優先于關系運算符;、=優先于= =、!=;、=同級;= =、!=也是同級,它們的結合性自左向右 4、邏輯運算符的優先級順序是:! & | 5、和其它運算符的優先級關系:! 雙目算術運算符關系運算符&|。作 業教學反饋四川警安職業學院標準教案紙課程名稱第三章 控制結構第3講 順序結構、選擇結構任課教師 授課時間09.3.9地點六多媒體授課班級06計信人數53人教學目標掌握+語句的基本知識和三種基本程序結構;掌握構成選擇結構的if,if-els
17、e和switch語句的使用教學重點if,if-else和switch語句的使用教學難點if,if-else和switch語句的使用教學時數2節教學方法講授法、實踐操作法教學手段多媒體教學教學內容:語句概述和程序結構 C+語言中的語句可分為空語句、說明語句、復合語句、表達式語句、函數調用語句和程序控制語句。一、語句概述1. 空語句 只由一個分號所構成的語句,它不執行任何動作。 例如:; ,/一般該語句是用來指明被轉向的控制點或在特殊情況下作為循環語句的循環體。/2. 說明語句 對數據結構定義和描述、對變量的定義性說明、給變量賦初值的語句。在程序執行過程中,不對數據進行操作的執行,僅向編譯程序提供
18、一些信息。說明語句可放在函數中允許出現語句的任何位置,也可以放在函數定義之外。例如:int x,y;/定義整形變量x,yfloat a,b=3.5; /定義浮點型變量a,b,并給b賦初值3.53. 表達式語句由表達式組成的語句,由一個表達式接一個分號組成。一般是描述算術運算、邏輯運算等。例如:a=a+3/表達式4. 函數調用語句在函數調用后加一個分號所構成的語句,稱為函數調用語句。例如:sin(x);5. 程序控制語句 完成一定控制功能的語句,用于控制程序中語句的執行條件和執行順序。例如:if (ab) c=a-b; /若ab,則c=a-belse c=b-a; /否則c=b-a6. 復合語句
19、由一對花括號“ ”括起來的若干語句的組合,在意義上是獨立的,被視為單獨一個語句。 凡是能用單獨一個語句的地方,都能換用復合語句。復合語句的左、右花括號標明了復合語句的開始和結束,在右花括號的后面不需要再加分號。例如:if(ab)max=a; cout a;/復合語句elsemax=b; cout b;/復合語句else max=b; cout b;/復合語句二、程序結構 一個程序或函數從它的執行行為的角度來分析,都是由三種基本結構組合而成的,即順序結構、選擇結構和循環結構。1.順序結構 按語句的先后順序依次執行,這種結構稱為順序結構。 2.選擇結構 根據某個條件,選擇執行某一個語句。 3.循環
20、結構 根據某種條件,重復執行某一語句或若干個語句。三、選擇結構 選擇結構也稱為條件分支結構。其執行流程的方式是:根據給定的條件,選擇執行兩個或兩個以上分支程序段中的某一個分支程序段。C+中可由if語句和switch語句來實現這種選擇結構。 1、條件語句 語句表達式語句是條件語句之一,它實現的功能是,根據給定的條件,決定執行兩個分支中的一個分支。 單選條件語句if ()語句 如果內嵌語句有多個操作語句,用“”將幾個語句括起來作為一個復合語句二選一條件語句一般格式為: if () 語句1 else 語句2嵌套的條件語句 條件語句中,內嵌的語句可以是任一C+的語句,當然也可以是條件語句。當條件語句的
21、內嵌語句是條件語句時,稱為嵌套的條件語句。一般格式為:if ()語句1else if ()語句2else if ()語句3else 語句n2條件運算符 ? :執行過程:先求出表達式1的值,若其為非0,則求出表達式2的值(不求表達式3的值),把該值作為運算的結果;否則求出表達式3的值(不求表達式2的值),把它作為運算的結果。3開關語句 開關語句是switch語句,它也稱為多分支選擇語句。它可以根據給定的條件,從多個分支中選擇執行一個分支的語句。格式:switch()case : case : case : default :語句n+1;執行過程:先計算條件表達式的值,從上向下依次與case后面的
22、常量表達式比較,若與某一常量表達式的值相等,就轉去執行該case后的語句,一直執行到break語句或開關語句的右花括號為止。若無相等的值,有default分支,就執行該分支后的語句,否則什么也不執行。作 業教學反饋四川警安職業學院標準教案紙課程名稱第三章 控制結構第4講 循環結構任課教師 授課時間09.3.16地點六多媒體授課班級06計信人數53人教學目標掌握構成循環結構的for,while和do.while語句的使用;能利用三種基本結構解決實際問題。教學重點for,while和do.while結構的執行過程,利用前面的順序結構,分支結構和這講的循環結構解決具體的問題。教學難點for,whil
23、e和do.while循環中對于循環體執行條件的判斷。教學時數2節教學方法講授法、實踐操作法教學手段多媒體教學教學內容:循環結構 :在進行程序設計時,常常會有一些需要重復執行的操作,可通過循環結構來實現這種重復執行的操作。例如,求s=1+2+3+100的和,在程序中不可能列出100個數再相加。一for語句 格式:for(;) 語句其中:三個表達式可以是C+中的任一符合語法規則的表達式;“語句”可以是任意C+的語句,是for的內嵌語句,把它稱為循環體。 執行過程:1)先求出表達式1的值;2)求出表達式2的值,若表達式2的值為非0,則轉去(3),否則轉去(4);3)執行語句,然后求表達式3的值,轉去
24、(2);4)結束循環,執行for的下一個語句。 說明:(1)從for語句的執行過程可知,語句執行時,先判斷循環條件,若條件滿足,才執行循環體,所以有可能循環體一次也不執行。(2)for語句的三個表達式可以是任意表達式,也可以是逗號表達式。(3)表達式之間以分號間隔;三個表達式可以部分省略或全部省略,但分號不能省略。例如:二、while語句 一般格式為:while () 語句其中:表達式是C+中的任意的表達式;語句可以是任意語句,也可以是復合語句,是while的內嵌語句,把它稱為循環體。 執行過程:1)先求出表達式的值;2)當表達式的值為非0,轉去(3),否則轉去(4);3)執行循環體語句;4)
25、結束循環,執行while的下一個語句。三、dowhile語句 一般格式為:do語句while (); 其中表達式是C+中的符合語法規則的表達式;語句可以是任意C+的語句,是內嵌語句,把它稱為循環體。執行過程:1)執行循環體語句; 2)求表達式的值;3)若表達式的值為非0,則轉去(1),否則轉去(4);4)結束循環,執行dowhile的下一個語句。四、循環的嵌套及應用作 業教學反饋四川警安職業學院標準教案紙課程名稱第四章 數組和指針第5講 一維數組和二維數組任課教師 授課時間09.3.23地點六多媒體授課班級07計信人數53人教學目標掌握一維數組的定義、賦初值以及簡單應用; 掌握一維字符數組和字
26、符串之間的關系,了解字符串的常用操作; 掌握二維數組的定義、賦初值,了解其應用。 教學重點一維數組和二維數組的定義,相關操作和應用;字符串的操作。 教學難點一維數組、二維數組賦初值、應用;字符串與字符數組的之間的關系教學時數2節教學方法講授法、演示法、實踐操作法教學手段多媒體教學教學內容:一、一維數組 (一)一維數組的定義和初始化 1、數組的定義:數組是一組元素的集合,這些元素具有相同的數據類型,并且這些元素在計算機內存中是被存放在相鄰的內存單元中的,這些元素不需要使用不同的變量名來定義,它們共享同一個名稱,并且通過它們在數組中的位置加以區分。這個共享的名稱叫做數組名。2、一維數組的定義: 在
27、使用數組前必須進行聲明,定義一維數組的格式如下: ; 例如:要定義一個整型數組用來存放全班30個學生的成績。 int cj30;/此數組包含30 個元素,這30個元素分別為:cj0、cj1、cj29,數據類型都為整型。/ 3、 初始化 當我們聲明了一個數組之后,相當于在內存中開辟了一串連續的內存單元,接下來就要往這些內存單元中存儲數據,我們把這一過程稱之為賦值。如果是第一次進行賦值,則稱之為初始化。 給數組賦值有下面幾種方法:(1)可以給每個數組元素單獨賦值: cj0=50; /可以直接賦以一具體的數據cj1=cj0; /可以把其它數組元素的值賦值給該數組元素 (2)可以對整個數組賦值如:fl
28、oat money 3=12.5,34.6,4.8;或者float money 3; money 3=12.5,34.6,4.8; 注意:這種賦值方法在使用時必須確保中給出的數據個數必須要小于或者等于數組的實際大小,否則將會出現錯誤。 在初始化時需要注意:(1)對數組賦值時,不能用一個數組對另外一個數組賦值。如:int merry3=mike3; (2)在聲明數組的時候需要說明數組的大小,除非你在同一個語句中對它進行初始化 。如:int merry =1,2,3; /說明該數組有三個元素 這種情況是錯誤的:int merry ;4、一維數組的應用(1)一維字符數組 如果數組存放的數據屬于文本,
29、我們就將這樣的數組稱為字符數組。 聲明 一維字符數組的聲明與一維整型數組的聲明類似,只是將表示類型的關鍵字換成char,格式如下 char 數組名數組大小; 例如:char array10;代表在內存中申請10個連續的存儲單元,這些存儲單元用來存放字符。 賦值如:定義一個字符數組,需要存儲的數據為:abcdchar name4;name0= a;name1= b;name2= c;name3= d; 也可以這樣寫: char name4=a, b, c, d; (2)字符串 字符串是一個以NULL(“0”)結尾的字符數組,換句話講,如果數組以NULL結尾,那么該數組就稱為字符串,簡稱為串。在實
30、際顯示中,NULL是不可顯示字符,所以不在屏幕上顯示,它只表示串的結束。 字符串的聲明同字符數組,只是在賦值上有所區別。 如:存儲字符串mike char name5=”mike”; /字符串mike實際長度為5 或 char name =”mike”;/計算機根據實際值計算出數組長度 或 char name5;/先定義數組,在逐個賦值 name0= m; name1= i; name2= k; name3= e; name4= 0; 字符串的操作 1.字符串的輸入和輸出 字符串的輸入和輸出與一般變量的輸入與輸出類似,用cin和cout實現。 2. 字符串的常用函數strlen() 求字符串的
31、長度 該函數將返回字符串中實際存儲的字符個數,0除外,假設一字符串為“miker”,串名為name,則語句 coutstrlen(name)endl;將得到結果5。strcpy ( ) 復制字符串要將一個字符串復制給另外一個字符串,不能采用以下這種方法:strcat()字符串的連接該函數是將一個字符串連接到另一個字符串的后面,得到一個新的字符串。如要將字符串customer連接到字符串amounts的后面,可以采用下列語句:注意:要保證前一個字符串的空間足夠大,否則將得不到正確結果。strcmp() 比較字符串我們經常需要比較兩個字符串,用函數strcmp( )二、二維數組 1、二維數組的定義
32、和初始化定義 一維數組在空間上,我們可以將它看作是一行或者一列,是一維的、線性的;而二維數組是包含多行多列的一個矩陣,是二維的。 聲明:聲明一個二維數組必須指出該數組包含的行數和列數。格式如下: 數組名行數列數; 賦值 我們可以在聲明二維數組的同時給予初始化,也可以在以后進行初始化,但有一點需要注意,那就是二維數組同一維數組一樣,在聲明的同時需要說明大小,除非你在同一個語句中對它進行初始化,這時也須指定列數。 由于二維數組涉及多行多列,因此在對其進行賦值時和一維數組有所不同。 例:int num32= 15,32,10,21,90,7 ; 在這個例子中,中的數據位于同一行中,由于該數組有3行,
33、所以每行數據都被括起來,而所有的行都被包括在最外層的中。 也可以寫成:int num 2= 15,32,10,21,90,7 ; 這時省略了行數,但列數不能省略。下面這種寫法就是錯的:int num = 15,32,10,21,90,7 ; /錯誤2、二維數組的應用作 業教學反饋四川警安職業學院標準教案紙課程名稱第四章 數組和指針第6講 指針任課教師 授課時間09.3.30地點六多媒體授課班級07計信人數53人教學目標掌握指針的定義和運算;掌握指針與一維數組、字符串的關系;掌握動態內存管理的方法。教學重點指針的運算;指針與一維數組和字符串之間的關系。教學難點指針的運算。指針與一維數組和字符串之
34、間的關系。教學時數2節教學方法講授法、演示法、實踐操作法教學手段多媒體教學教學內容:一、指針的定義和初始化1. 定義 什么是指針?舉例來講,如果將計算機的各個內存單元比作是一個一個的小抽屜的話,那么指針就是開啟這些小抽屜的鑰匙,換句話講,指針就是一個指示器,它告訴程序可以在在哪塊內存中找到數據。實際上,指針也是一個變量,指針中存放的是所指向的那塊內存單元的地址。 指針的定義方法如下: 指針類型 *指針名; 如:int *pname; 這個聲明語句起到的作用是:定義一個指針,該指針的名字為pname,它指向一個存放整型數據的存儲地址。需要注意的是*并不是指針名的一部分,它的作用在于說明所定義的是
35、一個指針變量,與我們前面所講的基本數據類型變量的定義相區別。又如:char *psize; float *ptr; 分別表示定義一個字符型指針變量和單精度指針變量。 2. 初始化 對指針進行初始化其實就是將某塊內存單元的地址賦值給它,但是怎么能夠知道內存單元的地址呢?&這個符號能夠幫助我們取得變量的地址。如:int tr; int *ptr=&tr;也可以這樣寫: int tr; *ptr; ptr=&tr; 該語句定義了一個指針ptr,它指向一個整型變量,該整型變量為tr。在指針變量ptr中存放的是變量tr的地址。而*ptr指向的就是變量tr中的內容。 二、指針的類型 指針是一個變量,因此指
36、針也有相關的類型。但是和普通變量不同的是,不同數據類型的指針之間的區別不是在指針的表示上,也不在指針所持有的值上,指針的類型指的是指針所指向的數據的類型,所以指針的類型必須和所指向的變量的類型相匹配。 三、指針的運算指針也可以進行加減運算,但是和普通的整數加減運算并不相同。它允許以下這些運算:1. 賦值運算 我們可以將一個變量的地址賦值給指針,如: int tr1; int *ptr=&tr1;/注意指針的類型在此處應該為整型 指針之間也可以進行相互賦值,如: int tr1; int *ptr1,*ptr2; ptr1=&tr1; ptr2=ptr1;2. 算術運算 由于指針存儲的是內存地址
37、,所以指針的算術運算針對的都是整數。最常見的算術運算是加減運算,可以對指針加1或者減1。由于指針是一個指示器,所以指針的加減運算并不僅僅是整數的加減,而在于指針所存儲的內存地址變動后,指針所指向的內存單元也產生變化。如:int tr1;int *ptr=&tr1;ptr+;3. 關系運算 指針之間可以進行比較,如果兩個指針比較結果相同,說明它們指向的是同一個變量。 四、指針和一維數組的關系 指針經常與一維數組配合使用,這樣能夠非常方便的對數組進行操作。int num3=10,20,30;int *p; p=&num0; p+的作用是使指針指向下一個元素,(*p)+的作用是使指針所指向的那個元素
38、自增1。如果將(*p)+的括號去掉,程序的最后輸出結果將會怎么樣呢?五、指針和字符串的關系使用指針操作字符串非常的方便。有如下語句:char *p=”BeiJing”; 指針p指向字符串BeiJing,那么如果要將該字符串輸出怎么操作? 語句 cout*pendl;能夠實現嗎?答案是否定的,該語句運行后得到結果是:B。 語句char *p=”BeiJing”;的作用是使指針p指向字符串,而我們已經知道字符串其實是一個以0結尾的字符數組,所以指針p就是指向字符串的第一個元素,而通過cout*pendl;輸出的就是字符串的第一個元素B。那要輸出整個字符串怎么辦呢?我們可以使用語句:coutpend
39、l; 由于在程序中使用字符串的時候,字符串會占有一個連續的空間,所以只要給出指針名即可將該指針所指向的整個字符串輸出。 如果有人問如果要輸出存儲該字符串的內存的地址,該如何做呢?下列程序可以實現:char *p=”BeiJing”;void *n;n=p;coutn; 我們可以定義一個通用指針(void指針),該指針可以指向任何類型的數據,通過n=p;可將字符串的地址賦值給void指針n. 六、動態內存管理 所謂動態內存管理,其實就是在需要的時候申請內存,而在不需要的時候釋放內存,這使得計算機的內存不會被浪費,提高使用效率。 1. 動態分配內存 使用new運算符能夠在需要的時候申請內存。new
40、運算符的語法是:=new ;說明:(1)類型可以是整型、字符型或者是浮點型等。 (2)左邊的指針變量的類型應該與右邊的變量類型匹配。2. 內存的釋放 內存使用完畢,為了節約資源需要將其釋放。可以使用delete運算符將其釋放。delete運算符的語法是: delete ;七、引用和初始化 什么是引用?引用就是引入了對象的一個同義詞,相當于給對象取個別名,通過使用別名來引用該對象進行操作。就像古人有字、號一樣。使用別名的引用的定義方法是: &別名=變量名;引用必須在定義的同時進行初始化int num=10;int &anum=num; 作 業教學反饋四川警安職業學院標準教案紙課程名稱第五章 函數
41、第7講 函數的概念、調用及參數任課教師 授課時間09.4.6地點六多媒體授課班級07計信人數53人教學目標.掌握函數的概念、定義和調用方法;理解C+函數參數傳遞的方法,掌握函數參數值傳遞的過程。掌握函數遞歸調用,理解遞歸調用的過程。教學重點函數的調用方法、形參和實參的概念,參數傳遞, 遞歸函數的編寫和調用。教學難點參數傳遞中的值傳遞,地址傳遞;遞歸函數的編寫和調用。教學時數2節教學方法講授法、演示法、實踐操作法教學手段多媒體教學教學內容:一、 函數的定義 類型說明符 函數名(形式參數表 )函數體return 合適類型數值 1、類型規定了函數返回值的類型,返回為整形時可省略;若沒有返回值,可定義
42、其類型為空。2、函數名是用戶給函數取的名字3、形參表的一般格式為: , 可省略。4、括起來的部分是函數體,定義了函數需要完成的具體操作,當函數體為空時,稱為空函數。5、C+對形參的個數沒有限制,可以是一個參數,也可以是若干個參數。例:已給某三角形的三邊長,求該三角形的面積double area(double a,double b,double c)double l,s;l=(a+b+c)/2;s=sqrt(l*(l-a)*(l-b)*(l-c);/ sqrt是開平方根函數return(s);二、函數的調用1、函數調用三種方式(1)函數調用的一般格式:函數名(實際參數表);實參表的一般格式: 實
43、參1,實參2,(2)函數表達式,要求函數有確定的返回值。(3)函數參數。函數作為一個參數的實參。如m=max(a,max(a,b);2、函數的遞歸調用和嵌套調用 函數的遞歸調用是指一個函數在定義它的函數體內,直接或間接地調用它自身。在遞歸調用中,調用函數又是被調用函數,函數將直接或間接的反復調用其自身,每調用一層就進入新的一層。關鍵:(1)、遞歸停止條件(2)、遞歸公式直接遞歸調用:函數體中直接調用該函數本身計算n! #include long power(int n)long f;if(n0) coutn0,input error!endl;else if(n= =1|n= =0) f=1;
44、else f=power(n-1)*n;return(f); main( )int n;long y;coutInput a integer number:n;y=power(n);coutn!=yendl; 間接遞歸調用即在函數f1的定義過程中調用了函數f2,而在函數f2的定義過程中又函數了f1函數。int func1(int a) int b; b=func2(a+1); /func1( )函數調用func2( )函數,間接遞歸 return(b); int func2(int c) int d; d=func1(c-1); /func2( )函數調用func1( )函數,間接遞歸 ret
45、urn(d);函數的嵌套調用C+中不能嵌套定義函數,但可以嵌套調用函數。三、函數調用中的參數傳遞1、參數傳遞方式傳值方式: 用變量或表達式作為實參的,屬于傳值調用。 實參值傳遞給形參,形參變化,實參不變。傳地址方式(指針和數組): 用數組名或地址作為實參的,屬于地址傳遞。實參和形參此時同時指向同一存儲單元。實參變化,形參變化。傳引用方式 形參即實參別名,實參變化,形參變化。2、函數的形參和實參具有以下特點:形參變量只有在函數被調用時才分配內存單元,在函數調用結束時,即刻釋放所分配的內存單元。因此,形參只有在函數內部才有效。 函數調用結束返回主調函數后則不能再使用該形參變量。實參可以是常量、變量
46、、表達式、函數調用等,無論實參是何種類型,在進行函數調用時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值、輸入等辦法使實參獲得確定值。實參和形參在數量上、類型上、順序上應嚴格一致, 否則會發生“類型不匹配”的錯誤。函數調用中發生的數據傳送是單向的。 即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 3、數組作函數參數數組元素作函數實參 同變量作實參一樣,“值傳遞”。如print(a5);數組名作為函數參數1一維數組作為函數參數1)函數定義格式: (數組名長度,)2)函數調用格式:函數名(數組名,)注:A、實參數組名后不參加。 B、傳遞的是數組的首地址,不為形參
47、分配空間。 對形參的修 改就是對實參的修改。 C、主函數中和被調函數中分別定義數組,類型需一致,大小可 一致可不一致。 D、形參數組可不指定大小,定義形參時,采用“數組名”即 可,可另設一個參數,傳遞數組元素的個數。2二維數組作為函數參數1)函數定義格式: (行長度列長度)2)函數調用格式:函數名(數組名,)3)參數傳遞方式為地址傳遞。注:形參中定義二維數組時,行長度可以省略,列長度不能省略作 業教學反饋四川警安職業學院標準教案紙課程名稱第五章 函數第8講 函數變量的作用域任課教師 授課時間09.4.13地點六多媒體授課班級07計信人數53人教學目標理解變量的作用域,能夠理解全局變量、局部變量
48、、靜態變量的概念和用法; 掌握函數原形的概念及使用方法教學重點全局變量、局部變量、靜態變量的概念,用法。函數原形的使用方法教學難點全局變量、局部變量、靜態變量的概念,用法。函數原形的使用方法教學時數2節教學方法講授法、演示法、實踐操作法教學手段多媒體教學教學內容:一、函數變量(一)變量的作用域的定義即分類。 變量在程序、函數或者程序體中的作用范圍即變量的作用域。包括以下四類作用域:1、塊作用域:從塊內變量定義到塊結束;2、文件作用域:從函數外變量定義開到文件結束。3、函數原型作用域:從原型變量定義開始到函數原型說明結束4、函數作用域:從函數開始到函數結束。(二)局部變量函數或塊內定義的變量稱為局部變量。局部變量都具有塊作用域,只能在定義它的函數或塊內使用。int f1(int a) /函數f1int b,c; int f
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年 楚雄州楚雄市緊密型醫共體編制外職工招聘考試筆試試題附答案
- 2025年 百色市那坡縣特崗教師招聘考試筆試試題附答案
- 2025年中國對焊機行業發展運行現狀及投資潛力預測報告
- 山東新建使用片堿潤滑油項目環評報告
- 中國滑輪支架行業市場發展前景及發展趨勢與投資戰略研究報告(2024-2030)
- 2025年中國螺旋錐形混合機行業發展監測及市場發展潛力預測報告
- 中國玻璃裝飾窗項目投資可行性研究報告
- 2022-2027年中國APP營銷市場運行動態及行業投資潛力預測報告
- 2025年中國六軸聯動混聯數控機床行業發展前景預測及投資戰略研究報告
- 2024-2030年中國社群商業行業發展監測及投資戰略研究報告
- 《聰明人和傻子和奴才》 課件
- 化工安全考試題庫
- Fleischner指南解讀
- 建筑工地安全生產百日攻堅行動實施方案
- 電廠度電機維修技術規范書正式
- 肥槽回填施工方案
- 年產40萬噸甲醇合成工藝設計
- 國家開放大學《管理英語3》章節測試參考答案
- DDS307電導率以說明書
- 滿語語法入門拉丁版
- 鋼琴鍵盤大譜表對照表-直接打印版(共6頁)
評論
0/150
提交評論