《c語(yǔ)言基礎(chǔ)》PPT課件

上傳人:san****019 文檔編號(hào):22744022 上傳時(shí)間:2021-05-31 格式:PPT 頁(yè)數(shù):55 大?。?12KB
收藏 版權(quán)申訴 舉報(bào) 下載
《c語(yǔ)言基礎(chǔ)》PPT課件_第1頁(yè)
第1頁(yè) / 共55頁(yè)
《c語(yǔ)言基礎(chǔ)》PPT課件_第2頁(yè)
第2頁(yè) / 共55頁(yè)
《c語(yǔ)言基礎(chǔ)》PPT課件_第3頁(yè)
第3頁(yè) / 共55頁(yè)

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《《c語(yǔ)言基礎(chǔ)》PPT課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《《c語(yǔ)言基礎(chǔ)》PPT課件(55頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、C語(yǔ)言基礎(chǔ)3.1、C+語(yǔ)言的特點(diǎn)3.2、簡(jiǎn)單的C+程序3.3、C+編程簡(jiǎn)介 3.4、C+基本數(shù)據(jù)類(lèi)型 3.5、表達(dá)式3.6、C+基本語(yǔ)句 3.7、函數(shù)3.8、const修飾符 第三章 C語(yǔ)言基礎(chǔ)3.9、動(dòng)態(tài)內(nèi)存分配運(yùn)算符new和delete 3.10、作用域運(yùn)算符3.11、引用3.12、C+針對(duì)C語(yǔ)言的改進(jìn)3.13、綜合訓(xùn)練 3.1、C+語(yǔ)言的特點(diǎn)(1) C+保持與C兼容: C+=C+面向?qū)ο?2) 用C+編寫(xiě)的程序可讀性更好,代碼的結(jié)構(gòu)更加合理 (3) 生成的代碼的質(zhì)量高,運(yùn)行速度快(5) 支持面向?qū)ο蟮臋C(jī)制,可以方便的構(gòu)造出模擬現(xiàn)實(shí)問(wèn)題的實(shí)體和操作(4) 從開(kāi)發(fā)時(shí)間、費(fèi)用到軟件的可重用性、

2、可擴(kuò)充性、可維護(hù)性和可靠性等方面有了很大的提高 A、 C+編譯器可編譯C程序;B、C語(yǔ)言的庫(kù)函數(shù)和實(shí)用軟件可以用于C+中 3.2、簡(jiǎn)單的C程序1. #include 2. int add(int a,int b);3. int main()4. 5. int x,y,sum;6. cout“Enter two numbers:”x; /從鍵盤(pán)輸入變量x的值8. ciny; /從鍵盤(pán)輸入變量y的值9. sum=add(x,y); /調(diào)用函數(shù)add,將得到的值賦給變量sum10. cout“The sum is:”sumxy; 3.3、C+編程簡(jiǎn)介 頭文件主函數(shù)main()注釋新的輸入輸出語(yǔ)句C+

3、源程序的組成結(jié)構(gòu): 3.3、C+編程簡(jiǎn)介現(xiàn)到類(lèi)庫(kù)中查找,再到當(dāng)前工程所在目錄查找,最后到默認(rèn)路徑查找與 “”的區(qū)別: “” 現(xiàn)到當(dāng)前工程所在目錄查找,再到類(lèi)庫(kù)中查找,最后到默認(rèn)路徑查找與 “”在用戶定義了與頭文件同名的文件時(shí)需要注意 3.3、C+編程簡(jiǎn)介/符號(hào)的注釋范圍是從/開(kāi)始到這一行結(jié)束(也就是從/符號(hào)到換行符號(hào)之間的范圍)注釋?zhuān)?/* .*/與/均可使用,但沒(méi)有/符號(hào)方便 3.3、C+編程簡(jiǎn)介試比較下面兩種輸入輸出:/*c語(yǔ)言的輸入輸出*/int a ,b ;scanf(“%d”, /輸入變量aprintf(“%d”, b ) ; /輸出變量b/*c+語(yǔ)言的輸入輸出*/int a ,b

4、; cina ; /輸入變量acoutb); 4、布爾類(lèi)型 :用于表示真、假的數(shù)據(jù)類(lèi)型布爾類(lèi)型分配1個(gè)字節(jié)的空間特殊的存放方式,使得表數(shù)范圍、精度提高僅有true(真)和false(假)兩個(gè)取值 3.4、C+基本數(shù)據(jù)類(lèi)型例如錯(cuò)誤的聲明:void a ;5、空類(lèi)型 :空類(lèi)型的作用:(1)一個(gè)是描述一個(gè)函數(shù)沒(méi)有返回值,例如: void f(int x) ; 沒(méi)有空類(lèi)型的對(duì)象或數(shù)據(jù)存在,也就是說(shuō)空類(lèi)型是不用作變量的類(lèi)型(2)描述一個(gè)指向不明類(lèi)型對(duì)象的指針,例如: void *p ; 3.4、C+基本數(shù)據(jù)類(lèi)型6、用戶自定義類(lèi)型 :用 戶 定 義 數(shù) 據(jù) 類(lèi) 型數(shù)組指針結(jié)構(gòu)體聯(lián)合類(lèi)枚舉 3.4、C+基本

5、數(shù)據(jù)類(lèi)型enum colorred, yellow, blue; /定義類(lèi)型color cl=red; /定義變量7、枚舉 :color cl=black; /錯(cuò)誤!當(dāng)一個(gè)變量只有幾個(gè)取值時(shí)使用枚舉類(lèi)型,比如:枚舉變量的值在內(nèi)存中以整型值存放比如:red為0, yellow為1, blue為2在C+中定義變量時(shí),結(jié)構(gòu)名、聯(lián)合名或枚舉名前的struct、union或enum可省略 3.5、表達(dá)式算數(shù)表達(dá)式:+ - * / % + -賦值表達(dá)式:=關(guān)系表達(dá)式 := = = !=邏輯表達(dá)式:! 函數(shù)定義1、簡(jiǎn)介函數(shù)參數(shù)函數(shù)調(diào)用 3.7、函數(shù)2、C的函數(shù)重載:當(dāng)兩個(gè)或者兩個(gè)以上的函數(shù)共用一個(gè)函數(shù)名時(shí),

6、稱(chēng)為函數(shù)重載。被重載的函數(shù)稱(chēng)為重載函數(shù) 舉例:/重載的函數(shù)類(lèi)型聲明int do_stuff(const int);int do_stuff(float);float do_stuff(const float,float);/重載函數(shù)1-重載整型變量int do_stuff(const int in_value) return in_value*in_value; 3.7、函數(shù)/重載函數(shù)2重載浮點(diǎn)型變量 int do_stuff(float in_value) return (int)(3.0*in_value);/重載函數(shù)3重載變量個(gè)數(shù),2個(gè)浮點(diǎn)型變量float do_stuff(const

7、float in1,float in2) return (in1+in2)/2.0;編譯器會(huì)根據(jù)實(shí)參的類(lèi)型來(lái)自動(dòng)確定調(diào)用哪個(gè)重載函數(shù) 3.7、函數(shù)3、C中的內(nèi)置函數(shù)(內(nèi)聯(lián)函數(shù))每當(dāng)程序中出現(xiàn)對(duì)該函數(shù)的調(diào)用時(shí),C編譯器使用函數(shù)體中的代碼替代函數(shù)調(diào)用表達(dá)式,這樣能加快代碼的執(zhí)行,減少普通函數(shù)調(diào)用的開(kāi)銷(xiāo)。在函數(shù)說(shuō)明前冠以關(guān)鍵字“inline”的函數(shù)。C的內(nèi)置函數(shù)具有與C中的宏定義#define相同的作用和相似的機(jī)理,但是消除了#define的不安全因素 3.7、函數(shù)舉例#include /定義一個(gè)類(lèi)Aclass A int inttest; public:A(); void show();void

8、increat(int incr_num=2) inttest+=incr_num; ; /類(lèi)內(nèi)部定義的函數(shù)默/認(rèn)為內(nèi)聯(lián)函數(shù)如果沒(méi)有實(shí)參則默認(rèn)為2 3.7、函數(shù)A:A() /構(gòu)造函數(shù) inttest=1000;cout“OK?”endl; inline void A:show() /通過(guò)inline定義的內(nèi)聯(lián)函數(shù) cout“nittest=”inttestendl; /主函數(shù)void main() A test; /對(duì)象聲明 test.show(); /向A發(fā)送消息test.increat(1234); /調(diào)用類(lèi)內(nèi)部定義的內(nèi)聯(lián)函數(shù) test.show(); 3.8、const修飾符 例如: c

9、onst int START=3; /定義整型常量START const int STOP=9; /定義整型常量STOP在程序中START和STOP的值都不允許改變C+引入const修飾符(關(guān)鍵字):用于修飾常量,使用const修飾的對(duì)象在運(yùn)行過(guò)程中不允許改變。 3.8、const修飾符使用const修飾符注意事項(xiàng):(1) 常量必須在聲明時(shí)被初始化。比如:const int a;/錯(cuò)誤,沒(méi)有初始化(2) 注意分清常量指針和指向常量的指針:比如常量指針 :指向的數(shù)據(jù)可以改變,但是所指的位置是不能變的;char *const name ”chen”; char *name1=“Hi!”; name

10、=name1; /不允許!name1=H; /允許! c h e n 0name H i 0name1 3.8、const修飾符指向常量的指針:所指的對(duì)象是一個(gè)常量,不允許改變, 但可以指向其他的對(duì)象const char *name = “chen”;char *name1=“Hi!”; name=name1; /允許!name2=H; /不允許! 指向常量的常指針:所指的對(duì)象和所指的位置(即指針)都不 能改變const char *const name = “chen”; 3.8、const修飾符(3) 如果const定義的是一個(gè)整型常量,關(guān)鍵字int可以省略例如:const int LIM

11、IT100;const LIMIT100;這兩個(gè)語(yǔ)句是一樣的(4) const的作用與#define相似,但它消除了#define的不安全性,建議在可能的情況下,用const代替#define 3.8、const修飾符舉例:#include /C+輸入輸出流頭文件void print_it(const int data_value) ; /const修飾函數(shù)參數(shù)main() const int START=3; /定義整型常量STARTconst int STOP=9; /定義整型常量STOPint index; for(index=START; indexSTOP; index+) prin

12、t_it(index);return 0;void print_it(const int data_value) data_value=12; /編譯出錯(cuò) cout“The value of the index is” data_valuen; / 3.9、動(dòng)態(tài)內(nèi)存分配運(yùn)算符new和delete 1、new和delete的作用進(jìn)行內(nèi)存的分配和釋放例如:int *point1;char *point2; point1=new int; /初始化指針point1point2=new char; /重新初始化指針point2delete point1; /銷(xiāo)毀指針point1,釋放point1所指

13、/變量的內(nèi)存空間delete point2; /釋放指針point2與C中的malloc()和free()類(lèi)似,但更好、更簡(jiǎn)單 注意:申請(qǐng)的內(nèi)存使用完后要及時(shí)的釋放,否則可能會(huì)出問(wèn)題 3.9、動(dòng)態(tài)內(nèi)存分配運(yùn)算符new和delete 2、new和delete的使用說(shuō)明(1) new可以自動(dòng)計(jì)算所要分配內(nèi)存類(lèi)型的大小,而不必要使用sizeof()(2) new可以自動(dòng)返回正確的指針類(lèi)型,不需要進(jìn)行指針類(lèi)型轉(zhuǎn)換(3) 使用new可以將分配的對(duì)象初始化。例如:int *p new int(99);struct student *p1;p1 = (struct student *) malloc(siz

14、eof (struct student);(4) 使用new可以為數(shù)組動(dòng)態(tài)分配內(nèi)存空間,這時(shí)需要在類(lèi)型名后面加上綴上數(shù)組的大小。例如: int *pi=new int10;括號(hào)不同 3.9、動(dòng)態(tài)內(nèi)存分配運(yùn)算符new和delete 關(guān)于數(shù)組使用new和delete的注意:對(duì)于數(shù)組,在用delete釋放時(shí)要在前面用括號(hào)即,如果在new時(shí)使用括號(hào),則delete時(shí)也要使用括號(hào)string *stringptr2 = new string100;delete stringptr2; / 刪除數(shù)組的分配空間野指針:所指空間被釋放后的指針,應(yīng)置為NULL 3.9、動(dòng)態(tài)內(nèi)存分配運(yùn)算符new和delete 舉

15、例:#include /C+輸入輸出流頭文件main() /主程序 int index, *point; /聲明變量 point= /初始化指針point *point=77; /改變指針point所指的變量的值 point=new int; /重新初始化指針point *point=999; coutThe value are index *point /輸出結(jié)果 n; delete point; /銷(xiāo)毀指針point1 char *c_point; /聲明指向字符的指針 3.9、動(dòng)態(tài)內(nèi)存分配運(yùn)算符new和delete c_point=new char37; /初始化指針c_point de

16、lete c_point; /釋放指c_point c_point=new charsizeof(int)+133; /重新初始化指 /針c_point delete c_point; /釋放指針c_point return 0;定義什么?多大? 3.10、作用域運(yùn)算符:1、作用域運(yùn)算符:的作用(1) 使用類(lèi)的靜態(tài)成員:classname:membername(2) 解除被隱藏全局函數(shù)或變量#include int num=1; /全局變量main() int num=2; /局部變量coutnumendl; /顯示局部變量cout:numendl; /顯示全局變量 3.11、引用(refer

17、ence)1、引用的作用定義和語(yǔ)法定義:為目標(biāo)變量其別名,使之與目標(biāo)變量地址關(guān)聯(lián) 簡(jiǎn)化指針的使用語(yǔ)法: type /聲明一個(gè)整型變量int /聲明一個(gè)引用j指向整型變量Ij=4; 不是取地址符i和j具有相同地址空間, /聲明一個(gè)整型變量 int /聲明一個(gè)引用j指向整型變量i int *k= /聲明了指向i的指針變量k/改變變量i的值 i+; /通過(guò)變量i自身加1改變變量的值 j+; /通過(guò)引用改變變量的值 (*k)+; /通過(guò)指針改變變量的值 cout=0; k-) 程序代碼段; /在這里,變量K只在for循環(huán)域中有效。 3.12、C+針對(duì)C語(yǔ)言的改進(jìn)一般原則:在大函數(shù)中,在最靠近使用變量的

18、位置說(shuō)明變量較為合理在較短的函數(shù)中,局部變量集中在函數(shù)的開(kāi)始處說(shuō)明比較好在for循環(huán)語(yǔ)句中,一般在for語(yǔ)句中說(shuō)明循環(huán)變量 3.12、C+針對(duì)C語(yǔ)言的改進(jìn)2、無(wú)名聯(lián)合C+中的一種特殊聯(lián)合,定義的聯(lián)合沒(méi)有類(lèi)型名舉例:union int i;float f;變量i和f具有相同的存儲(chǔ)地址可直接引用其數(shù)據(jù)項(xiàng),如:i20; /使用變量i 3.12、C+針對(duì)C語(yǔ)言的改進(jìn)3、強(qiáng)制類(lèi)型轉(zhuǎn)換C+引入新形式的強(qiáng)制類(lèi)型轉(zhuǎn)換C語(yǔ)言中: int i=10;float x=(float)i;C+中: int i=10;float x=float(i); /類(lèi)型名像函數(shù)名一樣使用兩種方法在C+都能夠使用,但推薦使用后面的一

19、種形式 本章小結(jié)不同的頭文件不同的注釋形式不同的輸入輸出語(yǔ)句增加了布爾類(lèi)型 函數(shù)重載、內(nèi)聯(lián)函數(shù)增加了const修飾符不同的動(dòng)態(tài)內(nèi)存分配運(yùn)算符new和delete 作用域運(yùn)算符:引用 本章小結(jié) 引用是C+中獨(dú)有的特性,引用的目的主要用在函數(shù)的參數(shù)傳遞中,解決了大對(duì)象傳遞效率和空間不如意的問(wèn)題。相比指針,它有表達(dá)清晰的優(yōu)點(diǎn),不允許聲明引用數(shù)組,返回引用的時(shí)候,要注意局部對(duì)象返回的危險(xiǎn)。 為了適應(yīng)C引入的類(lèi)的概念,類(lèi)對(duì)象的建立是分配空間,構(gòu)造結(jié)構(gòu)和初始化三部分,因此引入了new和delete進(jìn)行堆空間的分配和釋放。 綜合訓(xùn)練題目:編寫(xiě)C+風(fēng)格的程序,實(shí)現(xiàn)求m,n兩個(gè)正整數(shù)的最大公約數(shù)和最小公倍數(shù)分析

20、:只要求出最大公約數(shù)即可,因?yàn)椋?最小公倍數(shù)=mn最大公約數(shù)最大公約數(shù)的計(jì)算可用歐幾里德算法(也稱(chēng)輾轉(zhuǎn)相除法):(1)求兩個(gè)數(shù)(m、n)相除的余數(shù)r(r=m%n mn) ;(2)當(dāng)余數(shù)r不為零時(shí),m取n的值,n取r的值,返回(1)(3)輸出最后的除數(shù)n,就是最大公約數(shù)m=9、n=6r=m%n=3 m=6, n=3 r=m%n=6%3=0 n=3 綜合訓(xùn)練#include /頭文件,包含C+特有輸入輸出流int fun(int c,int d); /函數(shù)fun用來(lái)求最大公約數(shù)void main() /主函數(shù) int m,n,e,d; /定義一些用到的一些變量 coutm; /輸入m couten

21、dl; /輸出換行 coutn; /輸入n coutendl; /輸出換行 e=fun(m,n); /調(diào)用函數(shù)fun求最大公約數(shù) d=m*n/e; /利用最大公約數(shù)求最小公倍數(shù) cout“ 最大公約數(shù)為:”eendl; /輸出最大公約數(shù) cout 最小公倍數(shù)為:dendl; /輸出最小公倍數(shù) 綜合訓(xùn)練int fun(int c, int d) /函數(shù)fun的定義 int r; r=c%d; /以下幾行都是輾轉(zhuǎn)相除法的步驟 while(r!=0) c=d; d=r; r=c%d; return d; 綜合訓(xùn)練總結(jié):(1)輸入輸出符號(hào)cin和cout非常方便, 推薦使用(2)在C+中經(jīng)常先聲明所有要用到的函數(shù),在主函數(shù)后一個(gè)一個(gè)定義這些函數(shù),這樣做可以讓程序容易被讀懂(3)將各種功能封裝到函數(shù)中去,在主函數(shù)中對(duì)函數(shù)調(diào)用。這樣主函數(shù)只出現(xiàn)輸入輸出結(jié)構(gòu)等語(yǔ)句,顯得干凈利落。(4)在輸入一個(gè)數(shù)前加一句提示語(yǔ)句 作業(yè)題 11、15、18、19

展開(kāi)閱讀全文
溫馨提示:
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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!