c 程序設計基礎第一章c 初步_第1頁
c 程序設計基礎第一章c 初步_第2頁
c 程序設計基礎第一章c 初步_第3頁
c 程序設計基礎第一章c 初步_第4頁
c 程序設計基礎第一章c 初步_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、c+程序設計基礎程序設計基礎第第1章章 c+初步初步北京郵電大學信通院北京郵電大學信通院方莉方莉2第一章第一章 c+c+入門入門vc+c+語言是一門優(yōu)秀的程序設計語言,在計語言是一門優(yōu)秀的程序設計語言,在計算機科學領域中有著廣泛的應用算機科學領域中有著廣泛的應用。v本章學習:本章學習: c+c+語言的發(fā)展史語言的發(fā)展史 開發(fā)開發(fā)c+c+程序的步驟程序的步驟 第一個第一個c+c+程序程序3第一章第一章 c+c+入門入門 1.1 1.1 程序設計語言的發(fā)展程序設計語言的發(fā)展1 1.2 1.2 面向過程的程序設計面向過程的程序設計2 1.3 1.3 面向?qū)ο蟮某绦蛟O計面向?qū)ο蟮某绦蛟O計3 1.4 c

2、+1.4 c+的誕生的誕生4 1.5 1.5 程序開發(fā)過程程序開發(fā)過程5 1.6 1.6 最簡單的最簡單的c+c+程序程序6 1.7 1.7 內(nèi)存的表示和使用內(nèi)存的表示和使用74第一章第一章 c+c+入門入門 1.1 1.1 程序設計語言的發(fā)展程序設計語言的發(fā)展1 1.2 1.2 面向過程的程序設計面向過程的程序設計2 1.3 1.3 面向?qū)ο蟮某绦蛟O計面向?qū)ο蟮某绦蛟O計3 1.4 c+1.4 c+的誕生的誕生4 1.5 1.5 程序開發(fā)過程程序開發(fā)過程5 1.6 1.6 最簡單的最簡單的c+c+程序程序6 1.7 1.7 內(nèi)存的表示和使用內(nèi)存的表示和使用71.1 1.1 程序設計語言的發(fā)展程

3、序設計語言的發(fā)展v 計算機程序計算機程序 計算機的工作是用程序來控制的;計算機的工作是用程序來控制的; 程序是指令的集合;程序是指令的集合; 指令是計算機可以識別的命令。指令是計算機可以識別的命令。61.1 1.1 程序設計語言的發(fā)展程序設計語言的發(fā)展v機器語言機器語言簡單的簡單的“0 0”和和“1 1”的組合,與硬件相關。的組合,與硬件相關。v匯編語言匯編語言 將機器語言映射為一些可以被人們讀懂的助記將機器語言映射為一些可以被人們讀懂的助記符,如符,如“addadd”、“subsub”等,與硬件相關。等,與硬件相關。v高級語言高級語言接近自然語言,與硬件無關。接近自然語言,與硬件無關。71.

4、1 1.1 程序設計語言的發(fā)展程序設計語言的發(fā)展v高級語言:高級語言: 1 1、面向過程的語言、面向過程的語言 basicbasic、pascalpascal、c c 2 2、面向?qū)ο蟮恼Z言、面向?qū)ο蟮恼Z言 c+c+、javajava 81.1 1.1 程序設計語言的發(fā)展程序設計語言的發(fā)展v例如:要向屏幕打印一個例如:要向屏幕打印一個“a a”字符字符 1 1、basicbasic語言:語言: print print “a a” 2 2、pascalpascal語言:語言:writeln(writeln(a a); ); 3 3、c c語言:語言: printf(printf(“a a”) )

5、; 4 4、c+c+語言:語言: cout cout -實數(shù)的加法實數(shù)的加法 -復數(shù)的加法復數(shù)的加法1.3 1.3 面向?qū)ο蟮某绦蛟O計面向?qū)ο蟮某绦蛟O計v面向?qū)ο蟮能浖こ淌敲嫦驅(qū)ο蠓椒ㄔ谲浖こ堂嫦驅(qū)ο蟮能浖こ淌敲嫦驅(qū)ο蠓椒ㄔ谲浖こ填I域的全面應用。領域的全面應用。它包括它包括: : 面向?qū)ο蟮姆治觯嫦驅(qū)ο蟮姆治觯╫oaooa) 面向?qū)ο蟮脑O計(面向?qū)ο蟮脑O計(oodood) 面向?qū)ο蟮木幊蹋嫦驅(qū)ο蟮木幊蹋╫opoop) 面向?qū)ο蟮臏y試(面向?qū)ο蟮臏y試(ootoot) 面向?qū)ο蟮能浖S護(面向?qū)ο蟮能浖S護(oosmoosm)29第一章第一章 c+c+入門入門 1.1 1.1 程序設計

6、語言的發(fā)展程序設計語言的發(fā)展1 1.2 1.2 面向過程的程序設計面向過程的程序設計2 1.3 1.3 面向?qū)ο蟮某绦蛟O計面向?qū)ο蟮某绦蛟O計3 1.4 c+1.4 c+的誕生的誕生4 1.5 1.5 程序開發(fā)過程程序開發(fā)過程5 1.6 1.6 最簡單的最簡單的c+c+程序程序6 1.7 1.7 內(nèi)存的表示和使用內(nèi)存的表示和使用7301.4 c+1.4 c+的誕生的誕生vc+c+語言從語言從c c語言的基礎上發(fā)展起來的。語言的基礎上發(fā)展起來的。 c c語言歷史:語言歷史: 1 1、貝爾實驗室的、貝爾實驗室的dennis ritchiedennis ritchie開發(fā)開發(fā) 2 2、在、在b b語言

7、的基礎語言的基礎 3 3、作為、作為unixunix操作系統(tǒng)的開發(fā)語言操作系統(tǒng)的開發(fā)語言 優(yōu)點:優(yōu)點: 1 1、與硬件無關、與硬件無關 2 2、設計嚴謹、設計嚴謹311.4 c+1.4 c+的誕生的誕生v19781978年年,brian kernighanbrian kernighan與與dennis ritchie dennis ritchie 出版了出版了the c programming languagethe c programming language是最早的經(jīng)典是最早的經(jīng)典傳統(tǒng)傳統(tǒng)c c語言的書,很薄,只有兩百多頁,所以這本語言的書,很薄,只有兩百多頁,所以這本c c語言的圣經(jīng)又稱

8、語言的圣經(jīng)又稱k&rk&r“。v當時很快出現(xiàn)了多個不兼容的當時很快出現(xiàn)了多個不兼容的c c語言版本,因此需語言版本,因此需要制訂一種標準要制訂一種標準c c。所以。所以19881988年年,第二版第二版the c the c programming languageprogramming language,是最經(jīng)典的,是最經(jīng)典的標準標準c c的的書籍。書籍。321.4 c+1.4 c+的誕生的誕生c c語言之父語言之父dennis dennis ritchieritchie331.4 c+1.4 c+的誕生的誕生vc c語言是一門語言是一門面向過程面向過程的程序語言的程序語言

9、優(yōu)點:優(yōu)點:1 1、豐富的運算符和數(shù)據(jù)類型;、豐富的運算符和數(shù)據(jù)類型;2 2、可直接訪問內(nèi)存、可直接訪問內(nèi)存3 3、程序運行效率高、程序運行效率高4 4、可移植性好、可移植性好 缺點:缺點:1 1、類型檢查機制較弱,許多錯誤編譯時不能發(fā)現(xiàn);、類型檢查機制較弱,許多錯誤編譯時不能發(fā)現(xiàn);2 2、不支持代碼重用;、不支持代碼重用;3 3、對于大規(guī)模程序,很難控制程序的復雜性。、對于大規(guī)模程序,很難控制程序的復雜性。341.4 c+1.4 c+的誕生的誕生v c+c+語言的優(yōu)點:語言的優(yōu)點: 1 1、簡化程序復雜性、簡化程序復雜性 2 2、促進代碼重用、促進代碼重用 3 3、使用先進的面向?qū)ο蠹夹g、使

10、用先進的面向?qū)ο蠹夹gvbjarnebjarne出版了的經(jīng)典出版了的經(jīng)典c+c+著作著作the c+ the c+ programming language programming language ,19911991年第年第2 2版,版,19971997年第年第3 3版,版,20002000年特別版,他被譽為年特別版,他被譽為c+c+之父。之父。 351.4 c+1.4 c+的誕生的誕生 c+ c+之父之父bjarne stroustrupbjarne stroustrup36bjarne語錄語錄v1 1 不用害怕,一切都會隨著時間的推移而逐漸明不用害怕,一切都會隨著時間的推移而逐漸明朗起來。

11、朗起來。v2 2 你并不需要在知道了你并不需要在知道了c+c+的所有細節(jié)之后才能的所有細節(jié)之后才能寫出好的寫出好的c+c+程序。程序。v3 3 請?zhí)貏e關注程序設計技術,而不是各種語言特請?zhí)貏e關注程序設計技術,而不是各種語言特征。征。371.4 c+1.4 c+的誕生的誕生vc+c+語言是從語言是從c c語言發(fā)展演變而來。語言發(fā)展演變而來。vc+c+包含了整個包含了整個c c,c c是建立是建立c+c+的基礎。的基礎。vc+c+包含包含c c的所有特征、屬性、優(yōu)缺點,并添的所有特征、屬性、優(yōu)缺點,并添加了面向?qū)ο蟮闹С?。加了面向?qū)ο蟮闹С?。c+c+語言語言c c語言語言面向?qū)ο竺嫦驅(qū)ο?8第一章

12、第一章 c+c+入門入門 1.1 1.1 程序設計語言的發(fā)展程序設計語言的發(fā)展1 1.2 1.2 面向過程的程序設計面向過程的程序設計2 1.3 1.3 面向?qū)ο蟮某绦蛟O計面向?qū)ο蟮某绦蛟O計3 1.4 c+1.4 c+的誕生的誕生4 1.5 1.5 程序開發(fā)過程程序開發(fā)過程5 1.6 1.6 最簡單的最簡單的c+c+程序程序6 1.7 1.7 內(nèi)存的表示和使用內(nèi)存的表示和使用71.5 1.5 程序開發(fā)過程程序開發(fā)過程v 基本術語基本術語 源程序源程序 用源語言寫的,有待翻譯的程序用源語言寫的,有待翻譯的程序 目標程序目標程序 也稱為也稱為“結果程序結果程序”,是源程序通過翻譯程序加工,是源程序

13、通過翻譯程序加工以后所生成的程序。以后所生成的程序。 可執(zhí)行程序可執(zhí)行程序 目標程序和所用的其他資源進行鏈接,生成的可以直目標程序和所用的其他資源進行鏈接,生成的可以直接運行的程序。接運行的程序。 翻譯程序:翻譯程序: 指一個把指一個把源程序源程序翻譯成等價的翻譯成等價的目標程序目標程序的工具。的工具。1.5 1.5 程序開發(fā)過程程序開發(fā)過程v三種不同類型的翻譯程序三種不同類型的翻譯程序 匯編程序匯編程序 把用匯編語言寫成的源程序,翻譯成機器語言形式的目把用匯編語言寫成的源程序,翻譯成機器語言形式的目標程序。標程序。 編譯程序編譯程序 若源程序是用高級程序設計語言所寫,經(jīng)翻譯程序加工若源程序是

14、用高級程序設計語言所寫,經(jīng)翻譯程序加工生成目標程序,那么,該翻譯程序就稱為生成目標程序,那么,該翻譯程序就稱為 編譯程序編譯程序 。1.5 1.5 程序開發(fā)過程程序開發(fā)過程v三種不同類型的翻譯程序三種不同類型的翻譯程序 解釋程序解釋程序 這也是一種翻譯程序,同樣是將高級語言源程序翻譯成這也是一種翻譯程序,同樣是將高級語言源程序翻譯成機器指令。它與編譯程序不同點就在于:它是邊翻譯邊機器指令。它與編譯程序不同點就在于:它是邊翻譯邊執(zhí)行的,即輸入一句、翻譯一句、執(zhí)行的,即輸入一句、翻譯一句、 執(zhí)行一句,直至將整執(zhí)行一句,直至將整個源程序翻譯并執(zhí)行完畢。個源程序翻譯并執(zhí)行完畢。1.5 1.5 程序開發(fā)

15、過程程序開發(fā)過程v 基本術語基本術語 鏈接程序鏈接程序 對匯編程序或目標程序與所需的其他資源進行鏈對匯編程序或目標程序與所需的其他資源進行鏈接,生成可執(zhí)行文件的程序。接,生成可執(zhí)行文件的程序。431.5 1.5 程序開發(fā)過程程序開發(fā)過程v源程序:源程序:.cpp.cpp compile(ctrl+f7) compile(ctrl+f7) v目標程序:目標程序:.obj.obj build(f7) build(f7)v可執(zhí)行程序:可執(zhí)行程序:.exe.exe1.5 1.5 程序開發(fā)過程程序開發(fā)過程v編輯編輯 將源程序輸入到計算機中,生成后綴為將源程序輸入到計算機中,生成后綴為cppcpp的磁盤文

16、件。的磁盤文件。v編譯編譯 將程序的源代碼轉(zhuǎn)換為機器語言代碼。將程序的源代碼轉(zhuǎn)換為機器語言代碼。v鏈接鏈接 將多個源程序文件以及庫中的某些文件連在一起,生成一將多個源程序文件以及庫中的某些文件連在一起,生成一個后綴為個后綴為exeexe的可執(zhí)行文件。的可執(zhí)行文件。v運行調(diào)試運行調(diào)試45第一章第一章 c+c+入門入門 1.1 1.1 程序設計語言的發(fā)展程序設計語言的發(fā)展1 1.2 1.2 面向過程的程序設計面向過程的程序設計2 1.3 1.3 面向?qū)ο蟮某绦蛟O計面向?qū)ο蟮某绦蛟O計3 1.4 c+1.4 c+的誕生的誕生4 1.5 1.5 程序開發(fā)過程程序開發(fā)過程5 1.6 1.6 最簡單的最簡單

17、的c+c+程序程序6 1.7 1.7 內(nèi)存的表示和使用內(nèi)存的表示和使用7461.6 1.6 簡單的簡單的c+c+程序程序/ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *程序文件:程序文件:ch1_1.cppch1_1.cpp程序功能:在屏幕上輸出程序功能:在屏幕上輸出hello worldhello world! !作作 者:者:xxxxxx創(chuàng)建時間:創(chuàng)建時間:xxxx年年xxxx月月xxxx日日* * * * * * * * * * * * * * * * * * * * * * * *

18、* * * * * * * * * * * * * */ / #include #include using namespace std; using namespace std; void main() void main() cout“hello world!endl; cout“hello world!endl; 注釋注釋編譯預處理編譯預處理程序主體程序主體471.6 1.6 簡單的簡單的c+c+程序程序v “注釋注釋” 是程序員為讀者作的說明,用來提高是程序員為讀者作的說明,用來提高程序的可讀性,程序的可讀性,c+c+程序在編譯過程中忽略注程序在編譯過程中忽略注釋。釋。 1 1、“/

19、/” 用來注釋一行說明,在用來注釋一行說明,在“/ /”之后的文字直到換之后的文字直到換行都為注釋。一般用來對于程序中行都為注釋。一般用來對于程序中難懂的代碼難懂的代碼進行說明進行說明。 2 2、 “/ /* *”和和“* */ /” 用來注釋一段說明,在用來注釋一段說明,在“/ /* *”和和“* */ /”之間的部之間的部分,不管多長都為注釋。分,不管多長都為注釋。481.6 1.6 簡單的簡單的c+c+程序程序v 所有以所有以“# #”開頭的代碼,稱為開頭的代碼,稱為編譯預處理編譯預處理。 v 例:例:#include #include 每次啟動編譯器時,先運行預處理器,預處理器找到每次

20、啟動編譯器時,先運行預處理器,預處理器找到所有以所有以“# #”開頭的代碼行進行處理。開頭的代碼行進行處理。 includeinclude是一條是一條預處理指令預處理指令,意思是,意思是“后面跟的是一個后面跟的是一個文件名,請找到該文件并將其加入。文件名,請找到該文件并將其加入?!?iostreamiostream是系統(tǒng)定義的一個是系統(tǒng)定義的一個“頭文件頭文件”,它設置了,它設置了c+c+的的i/oi/o相關環(huán)境,并定義了輸入輸出流對象相關環(huán)境,并定義了輸入輸出流對象coutcout和和cincin等。等。491.6 1.6 簡單的簡單的c+c+程序程序v using namespace st

21、d;using namespace std; 1998 1998年批準的標準年批準的標準c+c+使用使用namespacenamespace命名空間標準。命名空間標準。 iostreamiostream是一個標準函數(shù)庫,是一個標準函數(shù)庫,coutcout是標準庫函數(shù)提供的是標準庫函數(shù)提供的一個對象,標準庫函數(shù)在一個對象,標準庫函數(shù)在namespacenamespace說明書中被指定為說明書中被指定為“stdstd”。因此這句代碼的意思是。因此這句代碼的意思是使用標準命名空間使用標準命名空間stdstd中中的函數(shù)。的函數(shù)。501.6 1.6 簡單的簡單的c+c+程序程序v正式的程序從代碼正式的程

22、序從代碼“void main()void main()”開始,它包含一開始,它包含一個名為個名為main()main()的函數(shù),也稱為的函數(shù),也稱為主函數(shù)主函數(shù)。每個。每個c+c+程序程序有且僅有有且僅有一個一個main()main()函數(shù),程序在開始運行函數(shù),程序在開始運行時會自動調(diào)用時會自動調(diào)用main()main()函數(shù)。函數(shù)。v main()main()前面的前面的voidvoid表示函數(shù)的返回值的類型,意表示函數(shù)的返回值的類型,意味著程序執(zhí)行結束后味著程序執(zhí)行結束后無需向操作系統(tǒng)返回無需向操作系統(tǒng)返回。函數(shù):是指能實現(xiàn)一個或多個功能的代碼塊函數(shù):是指能實現(xiàn)一個或多個功能的代碼塊。51

23、1.6 1.6 簡單的簡單的c+c+程序程序v 所有的函數(shù)都以左大括號所有的函數(shù)都以左大括號 開始,右大括號開始,右大括號 結束,結束,在大括號在大括號 之間的部分稱為函數(shù)體。之間的部分稱為函數(shù)體。v coutcout“hello world!hello world!”endl;endl; 1 1、coutcout:標準輸出流對象,:標準輸出流對象, 2 2、: 插入操作符可以連續(xù)使用插入操作符可以連續(xù)使用 3 3、endlendl:代表換行符:代表換行符 意思是使用意思是使用coutcout將將“”后面的內(nèi)容打印在屏幕上。后面的內(nèi)容打印在屏幕上。v在函數(shù)體的每一句代碼后面都有一個分號在函數(shù)體

24、的每一句代碼后面都有一個分號“; ;”表表示一個示一個c+c+語句的結束。語句的結束。521.6 1.6 簡單的簡單的c+c+程序程序v操作步驟操作步驟1 1、新建一個工程、新建一個工程 1) 1) 啟動啟動vc+ 6.0vc+ 6.0(或(或vc2005vc2005) 2)2)新建一個項目,選擇新建一個項目,選擇“win32win32控制臺應用程序控制臺應用程序”,空項,空項目目 3) 3) 編寫源程序編寫源程序2 2、編譯和連接、編譯和連接 編譯:編譯:compile(ctrl+f7)compile(ctrl+f7) 鏈接:鏈接:build(f7)build(f7)3 3、運行、運行 使用

25、的命令:使用的命令:ctrl+f5ctrl+f553程序編譯環(huán)境和簡單設計及調(diào)試程序編譯環(huán)境和簡單設計及調(diào)試v編譯環(huán)境:編譯環(huán)境:vc+ 6.0vc+ 6.0v文件的建立文件的建立1 1、工程的建立、工程的建立file-new-projects-win32 console applicationfile-new-projects-win32 console application調(diào)試運行調(diào)試運行 2 2、文件的建立、文件的建立file -new-files-c+ source filefile -new-files-c+ source file 3 3、 調(diào)試、運行調(diào)試、運行 1.1 1.1

26、程序設計語言的發(fā)展程序設計語言的發(fā)展1 1.2 1.2 面向過程的程序設計面向過程的程序設計2 1.3 1.3 面向?qū)ο蟮某绦蛟O計面向?qū)ο蟮某绦蛟O計3 1.4 c+1.4 c+的誕生的誕生4 1.5 1.5 程序開發(fā)過程程序開發(fā)過程5 1.6 1.6 最簡單的最簡單的c+c+程序程序6 1.7 1.7 內(nèi)存的表示和使用內(nèi)存的表示和使用7第一章第一章 c+c+入門入門1.7 1.7 內(nèi)存的抽象表示和使用內(nèi)存的抽象表示和使用v內(nèi)存的抽象表示內(nèi)存的抽象表示 每個存儲單元可以存放一個字節(jié)(每個存儲單元可以存放一個字節(jié)(8 bit8 bit)數(shù)據(jù),每個內(nèi))數(shù)據(jù),每個內(nèi)存單元有一個存單元有一個唯一的地址唯

27、一的地址。 101100106781.7 1.7 內(nèi)存的抽象表示和使用內(nèi)存的抽象表示和使用v操作系統(tǒng)一般會把內(nèi)存劃分區(qū)域來使用,便于管操作系統(tǒng)一般會把內(nèi)存劃分區(qū)域來使用,便于管理,比如理,比如代碼區(qū)、數(shù)據(jù)區(qū)代碼區(qū)、數(shù)據(jù)區(qū) 等。等。v被編譯成機器碼的被編譯成機器碼的程序程序在執(zhí)行時就會被復制到內(nèi)在執(zhí)行時就會被復制到內(nèi)存的存的代碼區(qū)代碼區(qū)。v數(shù)據(jù)區(qū)分為:數(shù)據(jù)區(qū)分為: 棧區(qū)棧區(qū),也叫堆棧區(qū),用于存放程序函數(shù)中的,也叫堆棧區(qū),用于存放程序函數(shù)中的局部變量局部變量。 全局變量和靜態(tài)變量區(qū)全局變量和靜態(tài)變量區(qū), 是長期存放數(shù)據(jù)的區(qū)域。是長期存放數(shù)據(jù)的區(qū)域。 常量區(qū)常量區(qū):一般是存放字符串常量的地方。:一般是存放字符串常量的地方。 堆區(qū)堆區(qū):在程序執(zhí)行過程中申請內(nèi)存要在堆區(qū)分配空間。:在程序執(zhí)行過程中申請內(nèi)存要在堆區(qū)分配空間。1.7 1.7 內(nèi)存的抽象表示和使用內(nèi)存的抽象表示和使用/ /例例1-2 1-2 顯示不同數(shù)據(jù)的地址顯示不同數(shù)據(jù)的地址#include #include using namespace std;using namespace std;int a=10;in

溫馨提示

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

評論

0/150

提交評論