C语言概述课件_第1页
C语言概述课件_第2页
C语言概述课件_第3页
C语言概述课件_第4页
C语言概述课件_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C語言概述返回目錄開始下一章1.1結構化的程式設計的基本方法結構化程式設計的步驟:首先要從具體問題中抽象出一個適當的數學模型,然後設計一個解此數學模型的演算法(Algorithm),最後編出程式、進行測試、調整直至得到最終解答。尋求數學模型的實質是分析問題,從中提取操作的對象,並找出這些操作對象之間含有的關係,然後用數學的語言加以描述。1.2數據結構與演算法眾所周知,二十世紀四十年代,電子數字電腦問世的直接原因是解決彈道學的計算問題。早期,電子電腦的應用範圍,幾乎只局限於科學和工程的計算,其處理的對象是純數值性的資訊,通常,人們把這類問題稱為數值計算。近三十年來,電子電腦的發展異常迅猛,這不僅表現在電腦本身運算速度不斷提高、資訊存儲量日益擴大、價格逐步下降,更重要的是電腦廣泛地應用於情報檢索、企業管理、系統工程等方面,已遠遠超出了科技計算的範圍,而滲透到人類社會活動的一切領域。與此相應,電腦的處理對象也從簡單的純數值性資訊發展到非數值性的和具有一定結構的資訊。

一、基本概念和術語1.數據

數據是人們利用文字符號、數字符號以及其他規定的符號對現實世界的事物及其活動所做的描述。在電腦科學中,數據的含義非常廣泛,我們把一切能夠輸入到電腦中並被電腦程式處理的資訊,包括文字、表格、圖象等,都稱為數據。例如,一個個人書庫管理程式所要處理的數據可能是一張如表1-1所示的表格。表1-1個人書庫2.結點結點也叫數據元素,它是組成數據的基本單位。在程式中通常把結點作為一個整體進行考慮和處理。例如,在表1-1所示的個人書庫中,為了便於處理,把其中的每一行(代表一本書)作為一個基本單位來考慮,故該數據由10個結點構成。一般情況下,一個結點中含有若干個字段(也叫資料項目)。例如,在表1-1所示的表格數據中,每個結點都有登錄號、書號、書名、作者、出版社和價格等六個字段構成。字段是構成數據的最小單位。3.邏輯結構結點和結點之間的邏輯關係稱為數據的邏輯結構。在表1-1所示的表格數據中,各結點之間在邏輯上有一種線性關係,它指出了10個結點在表中的排列順序。根據這種線性關係,可以看出表中第一本書是什麼書,第二本書是什麼書,等等。4.存儲結構數據在電腦中的存儲表示稱為數據的存儲結構。在表1-1所示的表格數據在電腦中可以有多種存儲表示,例如,可以表示成數組,存放在記憶體中;也可以表示成文件,存放在磁片上,等等。5.數據結構(DataStructure)數據結構是研究數據元素(DataElement)之間抽象化的相互關係和這種關係在電腦中的存儲表示(即所謂數據的邏輯結構和物理結構),並對這種結構定義相適應的運算,設計出相應的演算法,而且確保經過這些運算後所得到的新結構仍然是原來的結構類型。為了敘述上的方便和避免產生混淆,通常我們把數據的邏輯結構統稱為數據結構,把數據的物理結構統稱為存儲結構(StorageStructure)。6.數據類型數據類型是指程式設計語言中各變數可取的數據種類。數據類型是高級程式設計語言中的一個基本概念,它和數據結構的概念密切相關。一方面,在程式設計語言中,每一個數據都屬於某種數據類型。類型明顯或隱含地規定了數據的取值範圍、存儲方式以及允許進行的運算。可以認為,數據類型是在程式設計中已經實現了的數據結構。另一方面,在程式設計過程中,當需要引入某種新的數據結構時,總是借助編程語言所提供的數據類型來描述數據的存儲結構。

二、演算法1、演算法的概念簡單地說就是解決特定問題的方法(關於演算法的嚴格定義,在此不作討論)。特定的問題可以是數值的,也可以是非數值的。解決數值問題的演算法叫做數值演算法,科學和工程計算方面的演算法都屬於數值演算法,如求解數值積分,求解線性方程組、求解代數方程、求解微分方程等。解決非數值問題的演算法叫做非數值演算法,數據處理方面的演算法都屬於非數值演算法。例如各種排序演算法、查找演算法、插入演算法、刪除演算法、遍曆演算法等。數值演算法和非數值演算法並沒有嚴格的區別。一般說來,在數值演算法中主要進行算術運算,而在非數值演算法中主要進行比較和邏輯運算。另一方面,特定的問題可能是遞歸的,也可能是非遞歸的,因而解決它們的演算法就有遞歸演算法和非遞歸演算法之分。從理論上講,任何遞歸演算法都可以通過迴圈,堆疊等技術轉化為非遞歸演算法。

2、演算法的特點演算法是執行特定計算的有窮過程。這個過程有5個特點:

1.動態有窮:當執行一個演算法時,不論是何種情況,在經過了有限步驟後,這個演算法一定要終止。

2.確定性:演算法中的每條指令都必須是清楚的,指令無二義性。

3.輸入:具有0個或0個以上由外界提供的量。

4.輸出:產生1個或多個結果。

5.可行性:每條指令都充分基本,原則上可由人僅用筆和紙在有限的時間內也能完成。注意:演算法和程式是有區別的,即程式未必能滿足動態有窮。在本書中,我們只討論滿足動態有窮的程式,因此“演算法”和“程式”是通用的。

3、

演算法的描述方法

一個演算法可以用自然語言、數字語言或流程圖等來描述,也可以用電腦高級程式語言來描述,如Pascal語言、C語言或偽代碼等。

1.3C語言概述1.C語言的誕生與發展(1)在C語言誕生以前,系統軟體主要是用組合語言編寫的。由於組合語言程式依賴於電腦硬體,其可讀性和可移植性都很差;但一般的高級語言又難以實現對電腦硬體的直接操作(這正是組合語言的優勢),於是人們盼望有一種兼有組合語言和高級語言特性的新語言。(2)C語言是貝爾實驗室於70年代初研製出來的,後來又被多次改進,並出現了多種版本。80年代初,美國國家標準化協會(ANSI),根據C語言問世以來各種版本對C語言的發展和擴充,制定了ANSIC標準(1989年再次做了修訂)。(3)目前,在微機上廣泛使用的C語言編譯系統有MicrosoftC、TurboC、BorlandC等。雖然它們的基本部分都是相同的,但還是有一些差異,所以請大家注意自己所使用的C編譯系統的特點和規定(參閱相應的手冊)。本書選定的上機環境是TCV2.0(DOS操作系統)。

2.C語言的特點

C語言同時具有組合語言和高級語言的優勢。(1)語言簡潔、緊湊,使用方便、靈活。

(2)運算符極其豐富。(3)生成的目標代碼品質高,程式執行效率高。(4)可移植性好(較之組合語言)。(5)可以直接操縱硬體。

3.在C語言中,除實現順序、選擇和迴圈等三種基本結構的9條控制語句外,輸入輸出操作均由標準庫函數(不是C語言的組成部分)來實現。所以學習C語言,不僅要學習這9條控制語句和各種運算符,而且要學習並掌握常用標準庫函數的使用。4、C語言程式的結構與書寫規則(1)

C語言程式的總體結構

一個完整的C語言程式,是由一個main()函數(又稱主函數)和若干個其他函數結合而成的,或僅由一個main()函數構成。[案例1.1]僅由main()函數構成的C語言程式。/*案例代碼檔案名:AL1_1.C*//*功能:僅由main()函數構成的C語言程式示例*/main(){printf(“ThisisaCprogram.\n”);}程式運行結果:

ThisisaCprogram.

[案例1.2]由main()函數和1個其他函數max()構成的C語言程式。/*案例代碼檔案名:AL1_2.C*//*功能:由main()函數和1個其他函數max()構成的C語言程式示例*/intmax(intx,inty){return(x>y?x:y);}main(){intnum1,num2;

printf(“Inputthefirstintegernumber:”);

scanf(“%d”,&num1);

printf(“Inputthesecondintegernumber:”);

scanf(“%d”,&num2);

printf(“max=%d\n”,max(num1,num2));}程式運行情況:

Inputthefirstintegernumber:6←┘Inputthesecondintegernumber:9←┘max=9

[案例1.3]改寫[案例1.2],交換main()函數和max()函數的前後位置。根源程式略。程式運行情況:

Inputthefirstintegernumber:6←┘Inputthesecondintegernumber:9←┘max=91.函數是C語言程式的基本單位。main()函數的作用,相當於其他高級語言中的主程序;其他函數的作用,相當於副程式。2.C語言程式總是從main()函數開始執行。一個C語言程式,總是從main()函數開始執行,而不論其在程式中的位置。當主函數執行完畢時,亦即程式執行完畢。習慣上,將主函數main()放在最前頭。4、

根源程式書寫格式(1)所有語句都必須以分號“;”結束,函數的最後一個語句也不例外。(2)程式行的書寫格式自由,既允許1行內寫幾條語句,也允許1條語句分寫在幾行上。例如,[案例1.2]的主函數main(),也可改寫成如下所示的格式:……main(){intnum1,num2;printf(“Inputthefirstintegernumber:”);scanf(“%d”,&num1);

printf(“Inputthesecondintegernumber:”);scanf(“%d”,&num2);printf(“max=%d\n”,max(num1,num2));}如果某條語句很長,一般需要將其分寫在幾行上。(3)允許使用注釋。C語言的注釋格式為:/*……*/說明:I、“/*”和“*/”必須成對使用,且“/”和“*”、以及“*”和“/”之間不能有空格,否則都出錯。技巧:為避免遺漏必須配對使用的符號,例如注釋符號、函數體的起止識別字(花括弧)、圓括號等等,在輸入時,可連續輸入這些起止識別字,然後再在其中進行插入來完成內容的編輯。在起止識別字嵌套時,以及相距較遠時,這樣做更有必要。

II、注釋的位置,可以單占1行,也可以跟在語句的後面。

III、如果1行寫不下,可另起1行繼續寫。

IV、注釋中允許使用漢字。在非中文操作系統下,看到的是一串亂碼,但不影響程式運行。

1.4TurboCV2.0的基本操作1.運行一個C語言程式的一般過程2.TC的啟動、退出與命令菜單3.編輯並保存一個C語言根源程式4.編譯、連接──單個根源程式檔5.運行與查看結果6.編輯下一個新的根源程式

1.運行一個C語言程式的一般過程

Turbo

C是一個集根源程式編輯、編譯、連接、運行與調試於一體、用菜單驅動的集成軟體環境。運行一個C語言程式的一般過程:(1)啟動TC,進入TC集成環境。(2)編輯(或修改)根源程式。(3)編譯。如果編譯成功,則可進行下一步操作;否則,返回(2)修改根源程式,再重新編譯,直至編譯成功。(4)連接。如果連接成功,則可進行下一步操作;否則,根據系統的錯誤提示,進行相應修改,再重新連接,直至連接成功。(5)運行。通過觀察程式運行結果,驗證程式的正確性。如果出現邏輯錯誤,則必須返回(2)修改根源程式,再重新編譯、連接和運行,直至程式正確。(6)退出TC集成環境,結束本次程式運行。

2.TC的啟動、退出與命令菜單

(1)啟動TurboC:

tc←┘[畫面演示]啟動TurboC後,其主菜單條橫向排列在螢幕頂端,並被啟動,其中File主項成為當前項。主菜單的下麵,是Edit(編輯)窗口和Message(消息)窗口。兩個窗口中,頂端橫線為雙線顯示的,表示該窗口是活動窗口。編輯窗口的頂端為狀態行,其中:.Line1Col1:顯示游標所在的行號和列號,即游標位置。.Insert:表示編輯狀態處於“插入”。當處於“改寫”狀態時,此處為空白。.d:NONAME.C:顯示當前正在編輯的檔案名。顯示為“NONAME.C”時,表示用戶尚未給檔命名。螢幕底端是7個功能鍵的說明,以及NumLock鍵的狀態(顯示“NUM”時,表示處於“數字鍵”狀態;空白,表示“控制鍵”狀態)。

(2)命令菜單的使用

1)按下功能鍵F10,啟動主菜單。如果主菜單已經被啟動,則直接轉下一步。

2)用左、右方向鍵移動光帶,定位於需要的主項上,然後再按回車鍵,打開其子菜單(縱向排列)。

3)用上、下方向鍵移動光帶,定位於需要的子項上,回車即可。執行完選定的功能後,系統自動關閉菜單。注意:菜單啟動後,又不使用,可再按F10/Esc鍵關閉,返回原來狀態。

(3)退出TurboC

退出TC有兩種方法:

1)菜單法:File|Quit(先選擇File主項,再選擇並執行Quit子項)

2)快捷鍵法:Alt+“X”(先按下Alt鍵並保持,再按字母鍵X,然後同時放開)

3.編輯並保存一個C語言根源程式

(1)啟動主菜單,選擇並執行File|Load項(快捷鍵鍵:F3)。(2)在“LoadFileName”窗口,輸入根源程式檔案名。檔案名的輸入有兩種方法:直接輸入和選擇輸入。1)直接輸入按照檔案名的組成字串,逐個字元輸入即可。如果是已經存在的檔,系統就在編輯窗口顯示該檔的內容,可供編輯、修改。如果是新檔,則給出一個空白編輯窗口,可供輸入新的根源程式。如果該檔不在當前目錄下,則需要冠以路徑名和(或)盤符。2)選擇檔(僅適用於已經存在的根源程式檔)

①空回車,打開當前目錄下、尾碼為.C的所有檔的檔案名窗口。

②用上、下、左、右方向鍵,將光帶定位於所需的檔案名上。

③按回車鍵。

(3)常用編輯操作在編輯根源程式過程中,隨時都可以按F2鍵(或File|Save),將當前編輯的檔存盤,然後繼續編輯。這是一個良好的習慣!關於線上幫助:在任何窗口(或狀態)下,按F1鍵啟動活動窗口(或狀態)的線上幫助:.下一頁──PageDown,返回上一頁──PageUp.關閉線上幫助、返回原窗口(或狀態)──Esc.返回前一個線上幫助屏──Alt+F1(無論線上幫助是否被啟動).返回線上幫助索引──F1:啟動線上幫助後,再按F1,則返回線上幫助索引,以便查詢其他類別線上幫助資訊。.查詢庫函數的線上幫助資訊──^F1:將游標移到需要查詢函數名的首字元上,然後鍵入^F1,即可獲得該庫函數的線上幫助資訊。注:為簡化描述,用“^”代表“Ctrl”鍵。^Fn就是Ctrl+Fn,下同。

4.編譯、連接──單個根源程式檔

選擇並執行Compile|MakeEXEFile項(快捷鍵:F9),則TC將自動完成對當前正在編輯的根源程式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论