版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第一章 C 語 言 概 述 第一章第一章 C C 語語 言言 概概 述述 1.1 C語言的發(fā)展簡史與特色語言的發(fā)展簡史與特色 1.2 簡單的簡單的C程序介紹程序介紹 1.3 用用C語言解決實際問題的步驟語言解決實際問題的步驟 第一章 C 語 言 概 述 1.1 C語言的發(fā)展簡史與特色語言的發(fā)展簡史與特色 1.1.1 C語言發(fā)展簡史語言發(fā)展簡史 C語言是目前世界上最廣泛使用的通用計算機語言。用它既可編寫計算機系統(tǒng)軟件,也可編寫各種應用軟件,所以在數(shù)百種計算機語言中,C語言仍然是目前最流行、最受歡迎的計算機語言。 如今, Windows已成為計算機的主要操作系統(tǒng), 相應的基于Windows的程序開
2、發(fā)多采用C+,它雖是一種面向?qū)ο蟮恼Z言, 但其核心內(nèi)容仍是標準C。 第一章 C 語 言 概 述 1.1.2 C語言的特色語言的特色 1. C與其它語言的比較與其它語言的比較 1) C與匯編語言比較 C語言允許對位、 字節(jié)和地址進行操作(指針), 這三者是計算機最基本的工作單元,在編制系統(tǒng)程序時要經(jīng)常用到, 所以它適用于寫系統(tǒng)程序。由于匯編語言是非結構化語言, 含有大量的跳轉、子程序調(diào)用以及變址, 這種結構的缺陷使得匯編語言程序難以讀懂,難以維護,也不能移植。而C語言的結構化、 模塊化克服了匯編程序難讀、難維護的缺點。 C語言又具有匯編語言的功能,目標代碼長度也差不多, 效率幾乎與匯編相近, 且
3、具有很好的可移植性。 第一章 C 語 言 概 述 2) C與其它高級語言比較 C有豐富的運算符,達34種,其中有很多運算符對應于常用的機器指令,比如+等可直接編譯成機器代碼,使用起來簡單精練。 C有多樣化的表達式類型; C的數(shù)據(jù)類型豐富,具有現(xiàn)代語言的各種數(shù)據(jù)結構。 C的數(shù)據(jù)類型有:整型,實型,字符型,數(shù)組,指針,結構體,共用體等。 C的輸入輸出使用的是數(shù)據(jù)流 C程序生成的機器代碼質(zhì)量高, 內(nèi)存占用少, 運行速度快, 程序執(zhí)行效率高。 第一章 C 語 言 概 述 2. C是結構化語言 C語言是以函數(shù)為模塊來編寫源程序的, 所以C程序是模塊化的。 C語言具有結構化的控制語句,如ifelse語句,
4、switch語句, while語句, dowhile語句,for語句等。 因此是結構化的理想語言, 符合現(xiàn)代編程風格的要求。 結構化語言的一個顯著特點是代碼和數(shù)據(jù)的分隔化, 即代碼和數(shù)據(jù)分開存貯, 互相隔離; 程序的各個部分除了必要的信息交流外, 彼此互不影響, 相互隔離。 第一章 C 語 言 概 述 3. C是編程者的語言是編程者的語言 C語言的其它主要優(yōu)點如下:語言的其它主要優(yōu)點如下: C語言簡潔、語言簡潔、 緊湊,緊湊, 使用方便靈活;使用方便靈活; 一共只有一共只有32個關鍵個關鍵字字(27個來自個來自kerninghan和和Ritchie的標準,的標準,5個由個由ANSI標準委標準委
5、員會增補員會增補), 9種控制語句,種控制語句, 它們構成了它們構成了C語言的全部指令;語言的全部指令;程序書寫形式自由,程序書寫形式自由, 壓縮了一切不必要的成分。壓縮了一切不必要的成分。 C語言很少限制、很少缺陷、模塊結構、彼此獨立的函語言很少限制、很少缺陷、模塊結構、彼此獨立的函數(shù)和一些十分緊湊的關鍵字,使得數(shù)和一些十分緊湊的關鍵字,使得C語言能達到接近匯編語語言能達到接近匯編語言的高效率和廣泛的應用范圍,所以在許多情況下它是編程言的高效率和廣泛的應用范圍,所以在許多情況下它是編程者首選的計算機語言。者首選的計算機語言。 第一章 C 語 言 概 述 4. C的的“缺點缺點” 語法限制不嚴
6、格 2) 程序設計自由度大 第一章 C 語 言 概 述 1.2 簡單的簡單的C程序介紹程序介紹 例例 1.1 打印一個語句。打印一個語句。 程序:程序: main( ) printf(A simple c program.n); 經(jīng)編譯后運行結果如下:經(jīng)編譯后運行結果如下: A simple c program. 第一章 C 語 言 概 述 例例 1.2 求兩數(shù)中的小者。求兩數(shù)中的小者。 程序:程序: main( ) /* 主函數(shù)主函數(shù) */ int a , b, c; /* 定義變量定義變量 */ scanf(%d, %d, &a, &b); /* 輸入輸入 */ c=min
7、(a, b); /* 調(diào)用函數(shù)調(diào)用函數(shù) */ printf(min=%dn, c); /* 輸出輸出 */ int min(int x, int y) /* 定義函數(shù)定義函數(shù) */ int z; /* 定義局部變量定義局部變量 */ if (xy) z=y; else z=x; return(z); /* 返回返回z值值*/ 第一章 C 語 言 概 述 經(jīng)編譯后運行如下: 14, 4 min=4再次運行: 6, 29 min=6本程序包括兩個函數(shù): 主函數(shù)main和子函數(shù)min。 第一章 C 語 言 概 述 通過上述兩個例子, 我們可以看到: (1) C程序是由函數(shù)構成的。 (2) 一個函數(shù)由
8、兩部分組成: 函數(shù)的首部和函數(shù)體。 (3) main函數(shù)通常位于程序之首, 實際上它位于程序的開頭、 最后及函數(shù)與函數(shù)之間均是合法的, 但不管在什么位置,一個C程序總是從main函數(shù)開始執(zhí)行的。 (4) C程序書寫格式自由, 一行內(nèi)可以寫幾個語句, 一個語句可以分寫在多行上。 (5) C語言本身沒有輸入輸出語句。 (6) 可以用/* */對C程序中的任何部分作注釋, 它可增加程序的可讀性。 第一章 C 語 言 概 述 1.3 用用C語言解決實際問題的步驟語言解決實際問題的步驟 1.3.1 一個實例的求解過程一個實例的求解過程 1. 問題提出問題提出 計算計算y=f(x)曲線,曲線, x軸軸(y
9、=0), x=a, x=b四條曲線所圍成的四條曲線所圍成的面積。面積。 參看圖參看圖1.1。 yxab0y=f(x)圖 1.1 計算面積 第一章 C 語 言 概 述 2. 分析問題分析問題 用戶需求:用戶需求: 計算四條曲線所圍的面積。計算四條曲線所圍的面積。 已知條件:已知條件: 四條曲線四條曲線(即即x=a, x=b, y=0, y=f(x)。 需要進行的處理:需要進行的處理: 計算面積,計算面積, 注意誤差和精度。注意誤差和精度。 需要用到的軟、硬件環(huán)境:用需要用到的軟、硬件環(huán)境:用C語言編程,在個人微機語言編程,在個人微機上運行,使用上運行,使用Turbo C編譯系統(tǒng)。編譯系統(tǒng)。 進行
10、可行性分析:進行可行性分析: 用數(shù)值計算方法完全能夠?qū)崿F(xiàn)。用數(shù)值計算方法完全能夠?qū)崿F(xiàn)。 經(jīng)過分析,經(jīng)過分析, 我們已做到心中有數(shù)。我們已做到心中有數(shù)。 第一章 C 語 言 概 述 3. 確定處理方案確定處理方案 根據(jù)實際問題選用適當?shù)臄?shù)學模型根據(jù)實際問題選用適當?shù)臄?shù)學模型(本例屬科學計本例屬科學計算算)。根據(jù)高等數(shù)學中學到的知識,我們提出的數(shù)學模。根據(jù)高等數(shù)學中學到的知識,我們提出的數(shù)學模型是型是 ,也就是在,也就是在a, b區(qū)間內(nèi)求區(qū)間內(nèi)求f(x)函數(shù)函數(shù)的定積分。的定積分。 bndxxfS)(第一章 C 語 言 概 述 4. 根據(jù)處理方案確定操作步驟根據(jù)處理方案確定操作步驟 圖 1.2 矩
11、形法求積分 yxab0y=f(x)cdf(c) f(d)第一章 C 語 言 概 述 在圖1.2中畫陰影線的小面積有 4 條邊, 第一條長度f(c), 第二條長度f(d), 第三條長度d-c,而第四條線我們采用近似的辦法: 以第一條線高度作x軸的平行線得y=f(c),則小矩形面積為(d-c)f(c);或以第二條線高度作x軸平行線得y=f(d),則小矩形面積為(d-c)f(d)。 然后將各小塊面積累加起來。以上過程歸納起來就得出了近似公式,最后得到一個操作步驟, 也就是算法,如下所示: 第一章 C 語 言 概 述 (1) 讀a, b和n(分成n塊)。 (2) 求高h=(b-a)/n。 (3) s=
12、0,面積的初始值為0。 (4) i=1,先計算第一個小面積。 (5) s=s+h*f(a+i*h),用后點計算;或s=s+h*f(a+(i-1)*h), 用前點計算, 小面積累加起來。 (6) i=i+1, 取下一個小面積。 (7) 如i=n轉(5), 否則打印s。 第一章 C 語 言 概 述 5. 根據(jù)操作步驟編寫源程序 程序: main( ) float a, b, h, s; float f(float); int i, n; scanf(%f, %f, %d, &a, &b, &n); h=(b-a)/n; s=0; i=1; while(i=n) s=s+h*
13、f(a+(i-1)*h); /* 用前點計算 */i+; printf(a=%f, b=%f, n=%d, s=%fn, a, b, n, s); 第一章 C 語 言 概 述 6. 輸入程序并上機調(diào)試 上機輸入源程序并調(diào)試,直到改正了所有的編譯錯誤和運行錯誤。 在調(diào)試過程中應該精心選擇典型數(shù)據(jù)進行測試。 本例當計算有誤差或精度不足時可加大分塊數(shù)量,或采用其它計算方法:如改為梯形法或拋物線法(即辛普生法)等。要避免因調(diào)試數(shù)據(jù)不能反映實際數(shù)據(jù)的特征而引起的計算偏差和運行錯誤。 第一章 C 語 言 概 述 7. 整理分析計算結果整理分析計算結果 圖 1.3 用計算機處理一個實際問題 分析問題確定處理
14、方案(數(shù)學模型)確定算法編寫程序上機調(diào)試運行整理結果修改數(shù)學模型修改算法修改程序第一章 C 語 言 概 述 1.3.2 算法算法 1. 什么是算法什么是算法 為解決一個問題而采取的方法和步驟,就稱為為解決一個問題而采取的方法和步驟,就稱為“算算法法”。對同一個問題,可以有不同的解題方法和步驟,也。對同一個問題,可以有不同的解題方法和步驟,也就有不同的算法。例如求就有不同的算法。例如求 可采用矩形法,梯形可采用矩形法,梯形法,辛普生法法,辛普生法(即拋物線法即拋物線法)等。為了有效地解題,不僅需等。為了有效地解題,不僅需要保證算法正確,還要考慮算法的質(zhì)量,選擇較好的算法,要保證算法正確,還要考慮
15、算法的質(zhì)量,選擇較好的算法,或進行算法的優(yōu)化?;蜻M行算法的優(yōu)化。 badxxf)(第一章 C 語 言 概 述 2. 算法的特點算法的特點一個算法,一個算法, 必須具有以下特點:必須具有以下特點: (1) 僅有有限的操作步驟,僅有有限的操作步驟, 即即“有窮性有窮性”(無死循環(huán)無死循環(huán))。 (2) 算法的每一個步驟應當是確定的,算法的每一個步驟應當是確定的, 即無即無“二義性二義性”。 (3) 有適當?shù)妮斎?,有適當?shù)妮斎耄?即有確定的條件。即有確定的條件。 (4) 有輸出結果。有輸出結果。 沒有輸出的算法是無意義的。沒有輸出的算法是無意義的。 (5) 算法中的每一個步驟都應當有效執(zhí)行算法中的每一
16、個步驟都應當有效執(zhí)行(無死語句無死語句)。 第一章 C 語 言 概 述 3. 算法的重要性算法的重要性 掌握最基本的、常用的算法是很重要的,算法設計是掌握最基本的、常用的算法是很重要的,算法設計是整個程序設計的核心。著名計算機科學家沃思整個程序設計的核心。著名計算機科學家沃思(Wirth)曾提曾提出一個公式:出一個公式: 程序程序=算法算法+數(shù)據(jù)結構。對初學者而言,數(shù)數(shù)據(jù)結構。對初學者而言,數(shù)據(jù)結構即是語言提供的各種數(shù)據(jù)類型,無大難點。這樣編據(jù)結構即是語言提供的各種數(shù)據(jù)類型,無大難點。這樣編程的任務主要是考慮算法問題,當然還要學會基本的語句程的任務主要是考慮算法問題,當然還要學會基本的語句和語法。和語法。 第一章 C 語 言 概 述 4. 算法的表示方法算法的表示方法 用自然語言表示 2) 用傳統(tǒng)流程圖表示 端點符數(shù)據(jù)輸入/出處理判斷流向線虛線連接符注釋符圖 1.4 傳統(tǒng)流程圖常用符號 第一章 C 語 言 概 述 例 1.3 求 , 用傳統(tǒng)流程圖表示,見圖1.5。 badxxf)(圖 1.5 矩形法求積分 開 始輸入a,b,nh=(b-a)/ns=0; i=1i=ns=s+h*f(a+(i-1)*h)i=i+1結 束輸出a,b,n,s第一章 C 語 言 概 述 3) 用N-S流程圖表示 例 1.4 求 ,用N-S結構化流程圖表
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年人教五四新版八年級地理下冊階段測試試卷含答案
- 2025年牛津上海版九年級地理下冊月考試卷含答案
- 2025年上教版選修3生物上冊階段測試試卷含答案
- 2025年浙教版必修3生物上冊月考試卷含答案
- 二零二五年度爬架租賃與施工安全防護方案合同4篇
- 抽沙工程合同(2篇)
- 2024版違約合同的民事起訴狀
- 2025年度柑橘滯銷產(chǎn)品“搶購”線上線下聯(lián)動合同2篇
- 二零二五版屋頂廣告位使用權租賃與管理合同3篇
- 2025年度男方房產(chǎn)無償贈與女方婚后財產(chǎn)分配合同
- 垃圾處理廠工程施工組織設計
- 天皰瘡患者護理
- 2025年蛇年新年金蛇賀歲金蛇狂舞春添彩玉樹臨風福滿門模板
- 《建筑制圖及陰影透視(第2版)》課件 4-直線的投影
- 2024-2030年中國IVD(體外診斷)測試行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 損失補償申請書范文
- 壓力與浮力的原理解析
- 鐵路損傷圖譜PDF
- 裝修家庭風水學入門基礎
- 移動商務內(nèi)容運營(吳洪貴)任務二 社群的種類與維護
- 《詩詞寫作常識 詩詞中國普及讀物 》讀書筆記思維導圖
評論
0/150
提交評論