《C語(yǔ)言概述》PPT課件.ppt_第1頁(yè)
《C語(yǔ)言概述》PPT課件.ppt_第2頁(yè)
《C語(yǔ)言概述》PPT課件.ppt_第3頁(yè)
《C語(yǔ)言概述》PPT課件.ppt_第4頁(yè)
《C語(yǔ)言概述》PPT課件.ppt_第5頁(yè)
已閱讀5頁(yè),還剩42頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1,C語(yǔ)言程序設(shè)計(jì),課程目標(biāo),掌握必須的C語(yǔ)言的語(yǔ)法特征; 掌握結(jié)構(gòu)化程序設(shè)計(jì)方法的基本知識(shí); 掌握使用C語(yǔ)言進(jìn)行程序設(shè)計(jì)的一般步驟; 掌握模塊化程序設(shè)計(jì)的編程方法與技巧; 熟悉使用VC6.0開(kāi)發(fā)環(huán)境進(jìn)行C語(yǔ)言編程、調(diào)試、運(yùn)行等各個(gè)環(huán)節(jié)的基本操作。,2,3,參考書(shū)目,譚浩強(qiáng) C程序設(shè)計(jì)(第四版) 清華大學(xué)出版社 錢(qián)能 C+程序設(shè)計(jì)教程清華大學(xué)出版社 ,4,課程安排,總課時(shí)72=上課48+上機(jī)24 總成績(jī)=平時(shí)成績(jī)30%+考試成績(jī)70% 平時(shí)成績(jī)包括作業(yè)、上機(jī)、到勤,5,章節(jié)安排,第二章 C語(yǔ)言概述 第三章 基本數(shù)據(jù)類(lèi)型和數(shù)據(jù)運(yùn)算 第四章 常用庫(kù)函數(shù) 第五章 C程序結(jié)構(gòu)及控制語(yǔ)句 第六章 數(shù)組

2、第七章 函數(shù) 第八章 預(yù)處理命令 第九章 指針 第十章 結(jié)構(gòu)體與共用體 第十一章 文件,6,學(xué)習(xí)方法,多練習(xí),掌握基本概念 多讀程序,學(xué)習(xí)編程方法和技巧 多剖析范例,積累編程經(jīng)驗(yàn) 多上機(jī)實(shí)踐,加強(qiáng)動(dòng)手能力,學(xué)完C語(yǔ)言,我們可以做什么? 演示程序人事管理系統(tǒng)Demo.exe,7,學(xué)完C語(yǔ)言,后面該學(xué)什么? C+ C語(yǔ)言:結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言 C+語(yǔ)言:面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,8,9,C+程序員之路,標(biāo)準(zhǔn)模板庫(kù),活動(dòng)模板庫(kù),10,用武之地,圖形系統(tǒng),大型游戲,圖文處理系列,11,第2章 C語(yǔ)言概述,12,學(xué)習(xí)目標(biāo),了解C語(yǔ)言發(fā)展的歷史。 了解C語(yǔ)言程序的組成以及特點(diǎn)。 熟悉C語(yǔ)言程序的開(kāi)發(fā)過(guò)程。

3、重點(diǎn)掌握使用VC6編寫(xiě)控制臺(tái)程序的方法、工具和步驟。,13,第2章 C語(yǔ)言概述,程序設(shè)計(jì)語(yǔ)言的發(fā)展史 C語(yǔ)言簡(jiǎn)史 C語(yǔ)言的特點(diǎn) C程序介紹 C語(yǔ)言的上機(jī)步驟,14,程序設(shè)計(jì)語(yǔ)言的發(fā)展史,機(jī)器語(yǔ)言: 由計(jì)算機(jī)硬件系統(tǒng)可以識(shí)別的二進(jìn)制指令組成的語(yǔ)言稱(chēng)為機(jī)器語(yǔ)言。 計(jì)算機(jī)發(fā)展的初期,軟件工程師們只能用機(jī)器語(yǔ)言來(lái)編寫(xiě)程序。這一階段,在人類(lèi)的自然語(yǔ)言和計(jì)算機(jī)編程語(yǔ)言之間存在著巨大的鴻溝。 匯編語(yǔ)言: 匯編語(yǔ)言將機(jī)器指令映射為一些可以被人讀懂的助記符,如ADD、SUB等。 此時(shí)編程語(yǔ)言與人類(lèi)自然語(yǔ)言間的鴻溝略有縮小,但仍與人類(lèi)的思維相差甚遠(yuǎn)。因?yàn)樗某橄髮哟翁?,程序員需要考慮大量的機(jī)器細(xì)節(jié)。,15,程序

4、設(shè)計(jì)語(yǔ)言的發(fā)展史,高級(jí)語(yǔ)言: 高級(jí)語(yǔ)言屏蔽了機(jī)器的細(xì)節(jié),提高了語(yǔ)言的抽象層次,程序中可以采用具有一定涵義的數(shù)據(jù)命名和容易理解的執(zhí)行語(yǔ)句。這使得在書(shū)寫(xiě)程序時(shí)可以聯(lián)系到程序所描述的具體事物。 高級(jí)語(yǔ)言:包括面向過(guò)程的高級(jí)語(yǔ)言和面向?qū)ο蟮母呒?jí)語(yǔ)言 。,16,C語(yǔ)言簡(jiǎn)史,C語(yǔ)言是由D.M.Ritchie于1972年在B語(yǔ)言的基礎(chǔ)上設(shè)計(jì)的,主要用于編寫(xiě)UNIX操作系統(tǒng)的。 1977年出現(xiàn)了可移植的C語(yǔ)言編譯程序,使得用C語(yǔ)言編寫(xiě)的UNIX系統(tǒng)可以在各種計(jì)算機(jī)上使用。隨著UNIX的廣泛應(yīng)用,C語(yǔ)言得到了普及和推廣,并最終獨(dú)立于UNIX而成為世界上應(yīng)用最廣泛的計(jì)算機(jī)語(yǔ)言之一。 1983年成立了定義C語(yǔ)言標(biāo)準(zhǔn)

5、的委員會(huì)。 1989年美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI)制訂了C語(yǔ)言標(biāo)準(zhǔn),即ANSI C。 1995年,修訂C,增加了一些庫(kù)函數(shù)。 目前廣為流行的C語(yǔ)言編譯系統(tǒng)有:Microsoft C, Borland Turbo C,Quick C, 20世紀(jì)90年代,C語(yǔ)言朝著支持面向?qū)ο?、可視化程序設(shè)計(jì)語(yǔ)言方向發(fā)展,如C+、Microsoft Visual C+,C+ Builder,,17,C語(yǔ)言的特點(diǎn),豐富的數(shù)據(jù)類(lèi)型 C具有整型、浮點(diǎn)型、字符型、數(shù)組類(lèi)型、指針類(lèi)型、結(jié)構(gòu)體類(lèi)型、共用體類(lèi)型等多種數(shù)據(jù)類(lèi)型。特別是C的指針類(lèi)型,功能強(qiáng)大、靈活方便。 結(jié)構(gòu)化的控制語(yǔ)句 C語(yǔ)言的控制結(jié)構(gòu)語(yǔ)句(if-else語(yǔ)句

6、、while語(yǔ)句、do-while語(yǔ)句、switch語(yǔ)句、for語(yǔ)句)符合結(jié)構(gòu)化程序設(shè)計(jì)要求,并且用函數(shù)作為 程序模塊,使得程序結(jié)構(gòu)清晰、可讀性好、易于調(diào)試。 運(yùn)算符種類(lèi)豐富 C語(yǔ)言具有數(shù)十種運(yùn)算符。允許直接訪問(wèn)物理地址、直接對(duì)硬件操作,提供對(duì)字節(jié)、位、內(nèi)存和寄存器操作,可以調(diào)用或嵌入?yún)R編語(yǔ)言代碼,還具有自增、自減和各種復(fù)合賦值運(yùn)算符等。C程序編譯后生成的目標(biāo)代碼質(zhì)量高、執(zhí)行效率高。 可移植性好 用C語(yǔ)言寫(xiě)的程序,基本上可以不加修改地用于各種型號(hào)的計(jì)算機(jī)和操作系統(tǒng)。,18,C語(yǔ)言的特點(diǎn),C語(yǔ)言的應(yīng)用領(lǐng)域: 數(shù)據(jù)庫(kù)管理、CAD、科學(xué)計(jì)算、圖形圖像處理、實(shí)時(shí)控制等軟件。 C語(yǔ)言缺點(diǎn): 語(yǔ)法限制不太

7、嚴(yán)格。如:缺乏數(shù)據(jù)類(lèi)型的一致性檢查和不進(jìn)行數(shù)組下標(biāo)越界檢查。,19,C語(yǔ)言的組成,20,簡(jiǎn)單的C程序介紹,#include void main() printf(Hello Worldn); ,以 # 開(kāi)始的語(yǔ)句稱(chēng)為預(yù)處理命令。不是必需的,但是如果程序有就必須在程序的開(kāi)始處。#include用于將指定的stdio.h文件包含在程序中。,以.h為后綴的文件稱(chēng)為頭文件。stdio.h文件中包含了有關(guān)輸入輸出的函數(shù)。,在屏幕上輸出“Hello world”,并換行。每個(gè)語(yǔ)句都以分號(hào)結(jié)束。,21,C程序的特點(diǎn) C程序是由一個(gè)主函數(shù)main()或一個(gè)主函數(shù)及其它函數(shù)組成。 每個(gè)函數(shù)的內(nèi)容用大括號(hào)“ ”括

8、起來(lái)。 printf是C語(yǔ)言中的輸出函數(shù)。 雙引號(hào)內(nèi)的字符串按原樣輸出,“n”是換行符。 每個(gè)語(yǔ)句后加“;”。,簡(jiǎn)單的C程序介紹,22,簡(jiǎn)單的C程序介紹,C語(yǔ)言三類(lèi)函數(shù)及其采用意義 第一類(lèi):主函數(shù),名為main()。每個(gè)程序中只能有 一個(gè)、也必須有一個(gè)主函數(shù)。無(wú)論主函數(shù)在什么位置, C程序總是從主函數(shù)開(kāi)始執(zhí)行。 第二類(lèi):用戶自定義函數(shù),可有可無(wú),數(shù)目不限。 第三類(lèi):C語(yǔ)言提供的庫(kù)函數(shù),例如輸出函數(shù)printf()和輸入函數(shù)scanf() 意義:函數(shù)可以簡(jiǎn)化了主函數(shù)以及實(shí)現(xiàn)模塊化程序設(shè)計(jì),23,開(kāi)發(fā)一個(gè)C程序,一般要經(jīng)歷編輯、編譯、連接和運(yùn)行四個(gè)步驟。 1.源文件的編輯 用戶通過(guò)編輯器,將自己開(kāi)

9、發(fā)的C語(yǔ)言程序輸入計(jì)算機(jī)的過(guò)程稱(chēng)為C程序源文件的編輯。編輯生成的文件以文本形式存儲(chǔ),擴(kuò)展名為“.C”,也稱(chēng)為C的源程序。 源程序文件以ASCII碼形式存儲(chǔ),不含任何格式和樣式,計(jì)算機(jī)不能直接執(zhí)行。 2.編譯 計(jì)算機(jī)把C的源程序翻譯成計(jì)算機(jī)可以識(shí)別的二進(jìn)制形式的目標(biāo)代碼文件,這個(gè)過(guò)程稱(chēng)為編譯,由C的編譯程序完成。 C的編譯程序在編譯的同時(shí),還對(duì)源程序的語(yǔ)法和程序的邏輯結(jié)構(gòu)等進(jìn)行檢查。當(dāng)發(fā)現(xiàn)錯(cuò)誤時(shí),將會(huì)列出錯(cuò)誤的位置和種類(lèi),此時(shí)需要重新編輯修改源程序。如果編輯成功則生成目標(biāo)文件,文件名同源程序文件名,擴(kuò)展名為“.obj”。 編譯生成的目標(biāo)文件,不包含程序運(yùn)行所需要的庫(kù)函數(shù)等,計(jì)算機(jī)仍然不能直接執(zhí)行

10、。,C程序的上機(jī)步驟,24,3. 連接 連接程序以將目標(biāo)程序和其它目標(biāo)程序模塊,以及系統(tǒng)提供的C庫(kù)函數(shù)等進(jìn)行連接生成可執(zhí)行文件的過(guò)程,稱(chēng)為“連接”。連接生成的可執(zhí)行文件的文件名同源程序文件名,擴(kuò)展名為“.exe”。 連接生成的可執(zhí)行文件,計(jì)算機(jī)可以直接執(zhí)行。 4. 運(yùn)行 如果運(yùn)行結(jié)果有誤,需要重新編輯源程序,再進(jìn)行編譯、連接、運(yùn)行,直到得到滿意的運(yùn)行結(jié)果。,C程序的上機(jī)步驟,25,C程序的上機(jī)步驟,26,Visual C+ 6.0環(huán)境設(shè)置,“開(kāi)始”菜單Microsoft Visual Stdio 6.0Microsoft Visual C+ 6.0 “工具”菜單“選項(xiàng)”子菜單“格式”標(biāo)簽頁(yè)?!?/p>

11、顏色”欄中: number的前景顏色為“紫紅色”; string的前景顏色為“紅色”; operator的前景顏色為“棗紅色”。 點(diǎn)擊“確定”按鈕。 該部分建議進(jìn)行設(shè)置,便于后期編寫(xiě)程序過(guò)程中的錯(cuò)誤檢查。,27,28,創(chuàng)建一個(gè)C源程序,“文件”菜單“新建”子菜單,打開(kāi)“新建”對(duì)話框。 選擇“文件”標(biāo)簽頁(yè),選擇C+ Source File一項(xiàng) 在“文件”輸入框中輸入為當(dāng)前文件所取的名字(自動(dòng)以.cpp為后綴),在“位置”處選擇將該文件保存在某個(gè)路徑下。點(diǎn)擊“確定”按鈕完成。,29,30,工作區(qū),信息輸出窗口,標(biāo)題欄,菜單欄,工具欄,31,編譯-鏈接-執(zhí)行,編譯: 執(zhí)行“組建(Build)|編譯c

12、pp1.cpp(Compile cpp1.cpp )”命令; 單擊“編譯微型條”工具欄中的“編譯”按鈕。 按快捷鍵Ctrl+F7 鏈接: 執(zhí)行“組建(Build)|組建cpp1.cpp(Build cpp1.cpp )”命令; 單擊“編譯微型條”工具欄中的“組建”按鈕。 按快捷鍵F7 執(zhí)行: 執(zhí)行“組建(Build)|執(zhí)行cpp1.cpp(Execute cpp1.cpp )”命令; 單擊“編譯微型條”工具欄中的“執(zhí)行”按鈕。 按快捷鍵Ctrl+F5,32,現(xiàn)在并不要求嚴(yán)格按照編譯-鏈接-執(zhí)行的順序。,33,C程序,一個(gè)C+程序運(yùn)行完成后,當(dāng)需要開(kāi)始建立一個(gè)新的C+程序時(shí),需要選擇“文件”菜單

13、“關(guān)閉工作區(qū)”子菜單。否則,系統(tǒng)不知道當(dāng)前哪個(gè).cpp文件是需要編譯的文件。,34,在控制臺(tái)下創(chuàng)建C語(yǔ)言源程序,VC6主界面,1、點(diǎn)擊File,選擇New菜單,彈出窗口。,2、選擇項(xiàng)目類(lèi)型。,3、完成項(xiàng)目框架。,4、重復(fù)以上步驟,建立并輸入源程序文件。,5、編譯連接程序。,6、運(yùn)行程序。,35,2.4 C程序的調(diào)試策略,試探法。通過(guò)輸出存儲(chǔ)器內(nèi)容等,從大量的現(xiàn)場(chǎng)信息中找到出錯(cuò)線索,需要消耗大量的時(shí)間和精力。 回溯法。從出錯(cuò)征兆開(kāi)始,人工沿程序的控制流程往回追蹤,直至發(fā)現(xiàn)出錯(cuò)的根源。該方法可以成功應(yīng)用于小程序的調(diào)試,但是當(dāng)程序規(guī)模變大時(shí),可能回溯的路線就會(huì)顯著增加,致使人工回溯難以進(jìn)行。 排除法

14、。基于歸納和演繹原理,采用分而治之的思想。 歸納法:從錯(cuò)誤征兆出發(fā),通過(guò)分析錯(cuò)誤之間的關(guān)系而找出故障。 演繹法:先列出所有可能成立的原因和假設(shè),然后通過(guò)測(cè)試,一一排除列舉出的原因,最后證明剩下的原因確實(shí)是錯(cuò)誤的根源。,36,2.4 C程序的調(diào)試技術(shù),輸出存儲(chǔ)器內(nèi)容。以八進(jìn)制或者十六進(jìn)制的形式輸出存儲(chǔ)器的內(nèi)容。 打印語(yǔ)句。這種方法把程序設(shè)計(jì)語(yǔ)言提供的標(biāo)準(zhǔn)打印語(yǔ)句插在源程序的各個(gè)部分,以輸出關(guān)鍵變量的值。 自動(dòng)工具。包括: 斷點(diǎn)方法。 監(jiān)視窗方法。 跟蹤方法。,37,2.4 C程序的調(diào)試VC6的調(diào)試方法,修正語(yǔ)法錯(cuò)誤 在編譯和連接的過(guò)程中,語(yǔ)法錯(cuò)誤可以由VC6自動(dòng)發(fā)現(xiàn),所以排除較為簡(jiǎn)單。在編譯過(guò)程

15、中,會(huì)在輸出窗口中列出所有錯(cuò)誤項(xiàng),每個(gè)錯(cuò)誤項(xiàng)都給出其所在的文件名、行號(hào)及其錯(cuò)誤編號(hào)。將光標(biāo)移到錯(cuò)誤編號(hào)上,按F1鍵,可啟動(dòng)MSDN(Microsoft Developer Network)顯示錯(cuò)誤的內(nèi)容,從而幫助用戶理解錯(cuò)誤產(chǎn)生的原因。,38,2.4 C程序的調(diào)試VC6的調(diào)試方法,設(shè)置斷點(diǎn) 所謂斷點(diǎn),就是告訴調(diào)試器在何處暫時(shí)中斷程序的運(yùn)行,以便查看程序的狀態(tài)以及瀏覽和修改變量值等。VC6用于調(diào)試的斷點(diǎn)有: 位置斷點(diǎn):指示程序運(yùn)行中斷的代碼行號(hào)。 數(shù)據(jù)斷點(diǎn):當(dāng)某個(gè)表達(dá)式的值為真或者改變數(shù)值時(shí)中斷程序的執(zhí)行。 條件斷點(diǎn):是上述兩種斷點(diǎn)的綜合,當(dāng)表達(dá)式的值為真或者改變數(shù)值時(shí),在指定位置處中斷程序的運(yùn)

16、行。,39,2.4 C程序的調(diào)試VC6的調(diào)試方法,啟用調(diào)試器 選擇“Build”“Start Debug”“Go”啟動(dòng)調(diào)試器。程序開(kāi)始運(yùn)行在Debug狀態(tài)下時(shí),一個(gè)小箭頭指向即將執(zhí)行的代碼,而且“Build”菜單變?yōu)椤癉ebug”菜單,主要有: Step Over:運(yùn)行當(dāng)前箭頭指向的代碼,而且只運(yùn)行一行代碼。 Step Into:如果當(dāng)前箭頭指向的代碼是一個(gè)函數(shù)調(diào)用,則進(jìn)入該函數(shù)進(jìn)行單步執(zhí)行。 Step Out:如果當(dāng)前箭頭指向的代碼在一個(gè)函數(shù)內(nèi),則使程序運(yùn)行至函數(shù)返回處。 Run to Cursor:使程序運(yùn)行到光標(biāo)所指向的代碼處。,40,2.4 C程序的調(diào)試VC6的調(diào)試方法,查看和修改變量

17、的值 借助“View”“Debug Windows”用于顯示調(diào)試信息。,41,/*- 程序2.C : 求兩數(shù)之和 -*/ #include /* 包含輸入輸出頭文件 */ void main( ) /* 定義主函數(shù) */ int a,b,sum; /* 定義整數(shù)變量a、b、sum */ a=123; /* 給a賦值 */ b=456; /* 給b賦值 */ sum=a+b; /* 令sum=a+b */ printf(sum is %dn,sum);/* 輸出a、b的和sum */ ,輸出:sum is 579,42,關(guān)于程序2.C,/*/表示注釋部分。 注釋內(nèi)容可以是漢字、英語(yǔ)或是拼音。 注

18、釋是給人看的,對(duì)編譯和運(yùn)行不起作用。 注釋可以加在程序的任何位置。 也可用/表示注釋?zhuān)瑔涡凶⑨尅?int a,b,sum; 是聲明部分。 “%d”是用來(lái)指定輸入輸出時(shí)的數(shù)據(jù)類(lèi)型和格式。 “%d”表示“以十進(jìn)制整數(shù)形式輸出”。printf函數(shù)中括弧內(nèi)最右端sum是要輸出的變量,輸出的具體位置就是在“%d”的位置。,43,C程序是由函數(shù)構(gòu)成的,函數(shù)是C程序的基本單位。一個(gè)C源程序至少包含一個(gè)main函數(shù),也可以包含一個(gè)main函數(shù)和若干個(gè)其他函數(shù)。 一個(gè)C程序總是從main函數(shù)開(kāi)始執(zhí)行的,而不論main函數(shù)在整個(gè)程序中的位置如何。main函數(shù)可以在程序的最前面,也可以在程序的最后,或在程序中間。,關(guān)于以上程序的幾點(diǎn)小結(jié):,44,3. C程序的書(shū)寫(xiě)格式自由,一行內(nèi)可以寫(xiě)幾條語(yǔ)句,一條語(yǔ)句也可以寫(xiě)在多行上。注意運(yùn)用換行符“”。 4. 每條語(yǔ)句用“;”來(lái)結(jié)束。 5. 輸入輸出操作由庫(kù)函數(shù)scanf和printf來(lái)完成。 6. 可以用/*/對(duì)C程序的任何部分作注釋。,關(guān)于以上程序的幾點(diǎn)小結(jié):,45,程序舉例,求長(zhǎng)為3、寬為5的矩形面積。 #include void main() float l=3,w=5,area; area=l*w; printf(narea=%fn,area); ,46,程序舉例,#inc

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論