版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1,C語言程序設(shè)計,課程目標(biāo),掌握必須的C語言的語法特征; 掌握結(jié)構(gòu)化程序設(shè)計方法的基本知識; 掌握使用C語言進(jìn)行程序設(shè)計的一般步驟; 掌握模塊化程序設(shè)計的編程方法與技巧; 熟悉使用VC6.0開發(fā)環(huán)境進(jìn)行C語言編程、調(diào)試、運行等各個環(huán)節(jié)的基本操作。,2,3,參考書目,譚浩強(qiáng) C程序設(shè)計(第四版) 清華大學(xué)出版社 錢能 C+程序設(shè)計教程清華大學(xué)出版社 ,4,課程安排,總課時72=上課48+上機(jī)24 總成績=平時成績30%+考試成績70% 平時成績包括作業(yè)、上機(jī)、到勤,5,章節(jié)安排,第二章 C語言概述 第三章 基本數(shù)據(jù)類型和數(shù)據(jù)運算 第四章 常用庫函數(shù) 第五章 C程序結(jié)構(gòu)及控制語句 第六章 數(shù)組
2、第七章 函數(shù) 第八章 預(yù)處理命令 第九章 指針 第十章 結(jié)構(gòu)體與共用體 第十一章 文件,6,學(xué)習(xí)方法,多練習(xí),掌握基本概念 多讀程序,學(xué)習(xí)編程方法和技巧 多剖析范例,積累編程經(jīng)驗 多上機(jī)實踐,加強(qiáng)動手能力,學(xué)完C語言,我們可以做什么? 演示程序人事管理系統(tǒng)Demo.exe,7,學(xué)完C語言,后面該學(xué)什么? C+ C語言:結(jié)構(gòu)化的程序設(shè)計語言 C+語言:面向?qū)ο蟮某绦蛟O(shè)計語言,8,9,C+程序員之路,標(biāo)準(zhǔn)模板庫,活動模板庫,10,用武之地,圖形系統(tǒng),大型游戲,圖文處理系列,11,第2章 C語言概述,12,學(xué)習(xí)目標(biāo),了解C語言發(fā)展的歷史。 了解C語言程序的組成以及特點。 熟悉C語言程序的開發(fā)過程。
3、重點掌握使用VC6編寫控制臺程序的方法、工具和步驟。,13,第2章 C語言概述,程序設(shè)計語言的發(fā)展史 C語言簡史 C語言的特點 C程序介紹 C語言的上機(jī)步驟,14,程序設(shè)計語言的發(fā)展史,機(jī)器語言: 由計算機(jī)硬件系統(tǒng)可以識別的二進(jìn)制指令組成的語言稱為機(jī)器語言。 計算機(jī)發(fā)展的初期,軟件工程師們只能用機(jī)器語言來編寫程序。這一階段,在人類的自然語言和計算機(jī)編程語言之間存在著巨大的鴻溝。 匯編語言: 匯編語言將機(jī)器指令映射為一些可以被人讀懂的助記符,如ADD、SUB等。 此時編程語言與人類自然語言間的鴻溝略有縮小,但仍與人類的思維相差甚遠(yuǎn)。因為它的抽象層次太低,程序員需要考慮大量的機(jī)器細(xì)節(jié)。,15,程序
4、設(shè)計語言的發(fā)展史,高級語言: 高級語言屏蔽了機(jī)器的細(xì)節(jié),提高了語言的抽象層次,程序中可以采用具有一定涵義的數(shù)據(jù)命名和容易理解的執(zhí)行語句。這使得在書寫程序時可以聯(lián)系到程序所描述的具體事物。 高級語言:包括面向過程的高級語言和面向?qū)ο蟮母呒壵Z言 。,16,C語言簡史,C語言是由D.M.Ritchie于1972年在B語言的基礎(chǔ)上設(shè)計的,主要用于編寫UNIX操作系統(tǒng)的。 1977年出現(xiàn)了可移植的C語言編譯程序,使得用C語言編寫的UNIX系統(tǒng)可以在各種計算機(jī)上使用。隨著UNIX的廣泛應(yīng)用,C語言得到了普及和推廣,并最終獨立于UNIX而成為世界上應(yīng)用最廣泛的計算機(jī)語言之一。 1983年成立了定義C語言標(biāo)準(zhǔn)
5、的委員會。 1989年美國國家標(biāo)準(zhǔn)化協(xié)會(ANSI)制訂了C語言標(biāo)準(zhǔn),即ANSI C。 1995年,修訂C,增加了一些庫函數(shù)。 目前廣為流行的C語言編譯系統(tǒng)有:Microsoft C, Borland Turbo C,Quick C, 20世紀(jì)90年代,C語言朝著支持面向?qū)ο?、可視化程序設(shè)計語言方向發(fā)展,如C+、Microsoft Visual C+,C+ Builder,,17,C語言的特點,豐富的數(shù)據(jù)類型 C具有整型、浮點型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等多種數(shù)據(jù)類型。特別是C的指針類型,功能強(qiáng)大、靈活方便。 結(jié)構(gòu)化的控制語句 C語言的控制結(jié)構(gòu)語句(if-else語句
6、、while語句、do-while語句、switch語句、for語句)符合結(jié)構(gòu)化程序設(shè)計要求,并且用函數(shù)作為 程序模塊,使得程序結(jié)構(gòu)清晰、可讀性好、易于調(diào)試。 運算符種類豐富 C語言具有數(shù)十種運算符。允許直接訪問物理地址、直接對硬件操作,提供對字節(jié)、位、內(nèi)存和寄存器操作,可以調(diào)用或嵌入?yún)R編語言代碼,還具有自增、自減和各種復(fù)合賦值運算符等。C程序編譯后生成的目標(biāo)代碼質(zhì)量高、執(zhí)行效率高。 可移植性好 用C語言寫的程序,基本上可以不加修改地用于各種型號的計算機(jī)和操作系統(tǒng)。,18,C語言的特點,C語言的應(yīng)用領(lǐng)域: 數(shù)據(jù)庫管理、CAD、科學(xué)計算、圖形圖像處理、實時控制等軟件。 C語言缺點: 語法限制不太
7、嚴(yán)格。如:缺乏數(shù)據(jù)類型的一致性檢查和不進(jìn)行數(shù)組下標(biāo)越界檢查。,19,C語言的組成,20,簡單的C程序介紹,#include void main() printf(Hello Worldn); ,以 # 開始的語句稱為預(yù)處理命令。不是必需的,但是如果程序有就必須在程序的開始處。#include用于將指定的stdio.h文件包含在程序中。,以.h為后綴的文件稱為頭文件。stdio.h文件中包含了有關(guān)輸入輸出的函數(shù)。,在屏幕上輸出“Hello world”,并換行。每個語句都以分號結(jié)束。,21,C程序的特點 C程序是由一個主函數(shù)main()或一個主函數(shù)及其它函數(shù)組成。 每個函數(shù)的內(nèi)容用大括號“ ”括
8、起來。 printf是C語言中的輸出函數(shù)。 雙引號內(nèi)的字符串按原樣輸出,“n”是換行符。 每個語句后加“;”。,簡單的C程序介紹,22,簡單的C程序介紹,C語言三類函數(shù)及其采用意義 第一類:主函數(shù),名為main()。每個程序中只能有 一個、也必須有一個主函數(shù)。無論主函數(shù)在什么位置, C程序總是從主函數(shù)開始執(zhí)行。 第二類:用戶自定義函數(shù),可有可無,數(shù)目不限。 第三類:C語言提供的庫函數(shù),例如輸出函數(shù)printf()和輸入函數(shù)scanf() 意義:函數(shù)可以簡化了主函數(shù)以及實現(xiàn)模塊化程序設(shè)計,23,開發(fā)一個C程序,一般要經(jīng)歷編輯、編譯、連接和運行四個步驟。 1.源文件的編輯 用戶通過編輯器,將自己開
9、發(fā)的C語言程序輸入計算機(jī)的過程稱為C程序源文件的編輯。編輯生成的文件以文本形式存儲,擴(kuò)展名為“.C”,也稱為C的源程序。 源程序文件以ASCII碼形式存儲,不含任何格式和樣式,計算機(jī)不能直接執(zhí)行。 2.編譯 計算機(jī)把C的源程序翻譯成計算機(jī)可以識別的二進(jìn)制形式的目標(biāo)代碼文件,這個過程稱為編譯,由C的編譯程序完成。 C的編譯程序在編譯的同時,還對源程序的語法和程序的邏輯結(jié)構(gòu)等進(jìn)行檢查。當(dāng)發(fā)現(xiàn)錯誤時,將會列出錯誤的位置和種類,此時需要重新編輯修改源程序。如果編輯成功則生成目標(biāo)文件,文件名同源程序文件名,擴(kuò)展名為“.obj”。 編譯生成的目標(biāo)文件,不包含程序運行所需要的庫函數(shù)等,計算機(jī)仍然不能直接執(zhí)行
10、。,C程序的上機(jī)步驟,24,3. 連接 連接程序以將目標(biāo)程序和其它目標(biāo)程序模塊,以及系統(tǒng)提供的C庫函數(shù)等進(jìn)行連接生成可執(zhí)行文件的過程,稱為“連接”。連接生成的可執(zhí)行文件的文件名同源程序文件名,擴(kuò)展名為“.exe”。 連接生成的可執(zhí)行文件,計算機(jī)可以直接執(zhí)行。 4. 運行 如果運行結(jié)果有誤,需要重新編輯源程序,再進(jìn)行編譯、連接、運行,直到得到滿意的運行結(jié)果。,C程序的上機(jī)步驟,25,C程序的上機(jī)步驟,26,Visual C+ 6.0環(huán)境設(shè)置,“開始”菜單Microsoft Visual Stdio 6.0Microsoft Visual C+ 6.0 “工具”菜單“選項”子菜單“格式”標(biāo)簽頁?!?/p>
11、顏色”欄中: number的前景顏色為“紫紅色”; string的前景顏色為“紅色”; operator的前景顏色為“棗紅色”。 點擊“確定”按鈕。 該部分建議進(jìn)行設(shè)置,便于后期編寫程序過程中的錯誤檢查。,27,28,創(chuàng)建一個C源程序,“文件”菜單“新建”子菜單,打開“新建”對話框。 選擇“文件”標(biāo)簽頁,選擇C+ Source File一項 在“文件”輸入框中輸入為當(dāng)前文件所取的名字(自動以.cpp為后綴),在“位置”處選擇將該文件保存在某個路徑下。點擊“確定”按鈕完成。,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程序,一個C+程序運行完成后,當(dāng)需要開始建立一個新的C+程序時,需要選擇“文件”菜單
13、“關(guān)閉工作區(qū)”子菜單。否則,系統(tǒng)不知道當(dāng)前哪個.cpp文件是需要編譯的文件。,34,在控制臺下創(chuàng)建C語言源程序,VC6主界面,1、點擊File,選擇New菜單,彈出窗口。,2、選擇項目類型。,3、完成項目框架。,4、重復(fù)以上步驟,建立并輸入源程序文件。,5、編譯連接程序。,6、運行程序。,35,2.4 C程序的調(diào)試策略,試探法。通過輸出存儲器內(nèi)容等,從大量的現(xiàn)場信息中找到出錯線索,需要消耗大量的時間和精力。 回溯法。從出錯征兆開始,人工沿程序的控制流程往回追蹤,直至發(fā)現(xiàn)出錯的根源。該方法可以成功應(yīng)用于小程序的調(diào)試,但是當(dāng)程序規(guī)模變大時,可能回溯的路線就會顯著增加,致使人工回溯難以進(jìn)行。 排除法
14、?;跉w納和演繹原理,采用分而治之的思想。 歸納法:從錯誤征兆出發(fā),通過分析錯誤之間的關(guān)系而找出故障。 演繹法:先列出所有可能成立的原因和假設(shè),然后通過測試,一一排除列舉出的原因,最后證明剩下的原因確實是錯誤的根源。,36,2.4 C程序的調(diào)試技術(shù),輸出存儲器內(nèi)容。以八進(jìn)制或者十六進(jìn)制的形式輸出存儲器的內(nèi)容。 打印語句。這種方法把程序設(shè)計語言提供的標(biāo)準(zhǔn)打印語句插在源程序的各個部分,以輸出關(guān)鍵變量的值。 自動工具。包括: 斷點方法。 監(jiān)視窗方法。 跟蹤方法。,37,2.4 C程序的調(diào)試VC6的調(diào)試方法,修正語法錯誤 在編譯和連接的過程中,語法錯誤可以由VC6自動發(fā)現(xiàn),所以排除較為簡單。在編譯過程
15、中,會在輸出窗口中列出所有錯誤項,每個錯誤項都給出其所在的文件名、行號及其錯誤編號。將光標(biāo)移到錯誤編號上,按F1鍵,可啟動MSDN(Microsoft Developer Network)顯示錯誤的內(nèi)容,從而幫助用戶理解錯誤產(chǎn)生的原因。,38,2.4 C程序的調(diào)試VC6的調(diào)試方法,設(shè)置斷點 所謂斷點,就是告訴調(diào)試器在何處暫時中斷程序的運行,以便查看程序的狀態(tài)以及瀏覽和修改變量值等。VC6用于調(diào)試的斷點有: 位置斷點:指示程序運行中斷的代碼行號。 數(shù)據(jù)斷點:當(dāng)某個表達(dá)式的值為真或者改變數(shù)值時中斷程序的執(zhí)行。 條件斷點:是上述兩種斷點的綜合,當(dāng)表達(dá)式的值為真或者改變數(shù)值時,在指定位置處中斷程序的運
16、行。,39,2.4 C程序的調(diào)試VC6的調(diào)試方法,啟用調(diào)試器 選擇“Build”“Start Debug”“Go”啟動調(diào)試器。程序開始運行在Debug狀態(tài)下時,一個小箭頭指向即將執(zhí)行的代碼,而且“Build”菜單變?yōu)椤癉ebug”菜單,主要有: Step Over:運行當(dāng)前箭頭指向的代碼,而且只運行一行代碼。 Step Into:如果當(dāng)前箭頭指向的代碼是一個函數(shù)調(diào)用,則進(jìn)入該函數(shù)進(jìn)行單步執(zhí)行。 Step Out:如果當(dāng)前箭頭指向的代碼在一個函數(shù)內(nèi),則使程序運行至函數(shù)返回處。 Run to Cursor:使程序運行到光標(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)容可以是漢字、英語或是拼音。 注
18、釋是給人看的,對編譯和運行不起作用。 注釋可以加在程序的任何位置。 也可用/表示注釋,單行注釋。 int a,b,sum; 是聲明部分。 “%d”是用來指定輸入輸出時的數(shù)據(jù)類型和格式。 “%d”表示“以十進(jìn)制整數(shù)形式輸出”。printf函數(shù)中括弧內(nèi)最右端sum是要輸出的變量,輸出的具體位置就是在“%d”的位置。,43,C程序是由函數(shù)構(gòu)成的,函數(shù)是C程序的基本單位。一個C源程序至少包含一個main函數(shù),也可以包含一個main函數(shù)和若干個其他函數(shù)。 一個C程序總是從main函數(shù)開始執(zhí)行的,而不論main函數(shù)在整個程序中的位置如何。main函數(shù)可以在程序的最前面,也可以在程序的最后,或在程序中間。,關(guān)于以上程序的幾點小結(jié):,44,3. C程序的書寫格式自由,一行內(nèi)可以寫幾條語句,一條語句也可以寫在多行上。注意運用換行符“”。 4. 每條語句用“;”來結(jié)束。 5. 輸入輸出操作由庫函數(shù)scanf和printf來完成。 6. 可以用/*/對C程序的任何部分作注釋。,關(guān)于以上程序的幾點小結(jié):,45,程序舉例,求長為3、寬為5的矩形面積。 #include void main() float l=3,w=5,area; area=l*w; printf(narea=%fn,area); ,46,程序舉例,#inc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年通信設(shè)備采購與維護(hù)合同2篇
- 電梯安裝工程2025年度技術(shù)咨詢合同6篇
- 二零二五年度論壇活動策劃服務(wù)合同模板6篇
- 二零二五版搬家服務(wù)及家居清潔維護(hù)合同3篇
- 二零二五年度廢鋼市場供應(yīng)與環(huán)保處理服務(wù)合同3篇
- 二零二五版房屋買賣及鄰里關(guān)系協(xié)調(diào)服務(wù)合同3篇
- 二零二五年度股東干股合作企業(yè)社會責(zé)任履行合同3篇
- 幼兒園2025年度食品供應(yīng)合同2篇
- 二零二五版租賃房屋改造裝修合同3篇
- 二零二五年酒店股權(quán)分割與資產(chǎn)重組咨詢合同3篇
- 2023社會責(zé)任報告培訓(xùn)講稿
- 2023核電廠常規(guī)島及輔助配套設(shè)施建設(shè)施工技術(shù)規(guī)范 第8部分 保溫及油漆
- 2025年蛇年春聯(lián)帶橫批-蛇年對聯(lián)大全新春對聯(lián)集錦
- 表B. 0 .11工程款支付報審表
- 警務(wù)航空無人機(jī)考試題庫及答案
- 空氣自動站儀器運營維護(hù)項目操作說明以及簡單故障處理
- 新生兒窒息復(fù)蘇正壓通氣課件
- 法律顧問投標(biāo)書
- 班主任培訓(xùn)簡報4篇(一)
- 成都市數(shù)學(xué)八年級上冊期末試卷含答案
- T-CHSA 020-2023 上頜骨缺損手術(shù)功能修復(fù)重建的專家共識
評論
0/150
提交評論