C語言程序設(shè)計(jì)第一章_第1頁
C語言程序設(shè)計(jì)第一章_第2頁
C語言程序設(shè)計(jì)第一章_第3頁
C語言程序設(shè)計(jì)第一章_第4頁
C語言程序設(shè)計(jì)第一章_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C C語言程序設(shè)計(jì)語言程序設(shè)計(jì)第1章 C語言基礎(chǔ) 熟練掌握:C程序的基本結(jié)構(gòu)、C程序的編譯環(huán)境。 掌握:運(yùn)行一個(gè)簡單的C語言程序。 了解:程序與程序設(shè)計(jì)語言、C語言的發(fā)展、C語言的標(biāo)準(zhǔn)及特點(diǎn)。 1.1 程序與程序設(shè)計(jì)語言 1.1.1 計(jì)算機(jī)與程序 計(jì)算機(jī)是怎樣工作的呢?它又是如何懂得人的語言的呢?計(jì)算機(jī)是“聰明傻瓜”,不告訴它怎樣干它什么也不會(huì)干,告訴它怎樣干它會(huì)干得很好。 這就要使計(jì)算機(jī)明白一個(gè)個(gè)的命令,它就會(huì)按照你的命令去干。這種給計(jì)算機(jī)的命令,稱為指令;指令是計(jì)算機(jī)要執(zhí)行的一種基本操作命令,是對(duì)計(jì)算機(jī)進(jìn)行程序控制的最小單位。指令由操作碼和操作數(shù)構(gòu)成,分別表示何種操作和存儲(chǔ)地址。 一連串的

2、計(jì)算機(jī)指令的集合,叫作程序。程序即遵循一定規(guī)則完成指定工作的代碼。程序算法數(shù)據(jù)結(jié)構(gòu)程序設(shè)計(jì)方法語言工具和環(huán)境。 所謂程序,就是要計(jì)算機(jī)完成某一任務(wù)所規(guī)定的一系列動(dòng)作或步驟。沒有程序和程序設(shè)計(jì),計(jì)算機(jī)將不能做任何事情,即程序(軟件)是計(jì)算機(jī)的必要組成部分。1.1.2 計(jì)算機(jī)語言 1. 機(jī)器語言機(jī)器語言 機(jī)器語言是最底層的計(jì)算機(jī)語言,是用二進(jìn)制代碼指令表達(dá)的計(jì)算機(jī)語言,能被計(jì)算機(jī)硬件直接識(shí)別并執(zhí)行,由操作碼和操作數(shù)組成,如指令00111110,00000111。機(jī)器語言程序編寫的難度較大且不容易移植,即針對(duì)一種計(jì)算機(jī)編寫的機(jī)器語言程序不能在另一種計(jì)算機(jī)上運(yùn)行。 機(jī)器語言被稱為第一代計(jì)算機(jī)語言。2.

3、 匯編語言匯編語言 匯編語言是用助記符代替操作碼,用地址符代替操作數(shù)的一種面向機(jī)器的低級(jí)語言,一條匯編指令對(duì)應(yīng)一條機(jī)器指令。例如,用“ADD”代表加法,“MOV”代表數(shù)據(jù)傳遞等等,這樣一來,人們很容易讀懂并理解程序在干什么,糾錯(cuò)及維護(hù)都變得方便了,這種程序設(shè)計(jì)語言就稱為匯編語言,即第二代計(jì)算機(jī)語言。由于匯編語言采用了助記符,它比機(jī)器語言易于修改、編寫、閱讀,但用匯編遠(yuǎn)編寫的程序(稱為匯編語言源程序)機(jī)器不能直接執(zhí)行,必須使用匯編程序把它翻譯成機(jī)器語言即目標(biāo)程序后,才能被機(jī)器理解、執(zhí)行,這個(gè)編譯的過程稱為匯編。 匯編語言同樣十分依賴于機(jī)器硬件,移植性不好,但效率仍十分高,針對(duì)計(jì)算機(jī)特定硬件而編制

4、的匯編語言程序,能準(zhǔn)確發(fā)揮計(jì)算機(jī)硬件的功能和特長,程序精煉而質(zhì)量高,所以至今仍是一種常用而強(qiáng)有力的軟件開發(fā)工具。 匯編語言和機(jī)器語言都是面向機(jī)器的語言,稱為低級(jí)語言。 3. 高級(jí)語言高級(jí)語言 高級(jí)語言是直接面向過程的程序設(shè)計(jì)語言,它與具體的計(jì)算機(jī)的硬件無關(guān)。用高級(jí)語言編寫的源程序可以直接運(yùn)行在不同機(jī)型上,因而具有通用性。但是,計(jì)算機(jī)不能直接識(shí)別和運(yùn)行高級(jí)語言程序,必須經(jīng)過“翻譯”。所謂“翻譯”,就是由一種特殊程序把源程序轉(zhuǎn)換成目標(biāo)程序,這種特殊程序被稱為語言處理程序。高級(jí)語言的翻譯方式有兩種:一種是“編譯方式”,另一種是“解釋方式”。編譯方式是通過編譯程序?qū)⒄麄€(gè)高級(jí)語言源程序翻譯成目標(biāo)程序,再

5、經(jīng)過連接程序生成可執(zhí)行的程序(.EXE);解釋方式是通過解釋程序邊解釋邊執(zhí)行,不產(chǎn)生目標(biāo)程序。4.面向?qū)ο蟮某绦蛟O(shè)計(jì)語言面向?qū)ο蟮某绦蛟O(shè)計(jì)語言 面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,一般具有可視化、網(wǎng)絡(luò)化、多媒體等功能。目前比較流行的有Visual Basic、Visual C+、Java、Delphi、PowerBuild等。 1.1.3 高級(jí)語言程序的開發(fā)過程 程序設(shè)計(jì)就是分析問題、設(shè)計(jì)算法、編寫程序、調(diào)試程序的過程。在最初的程序設(shè)計(jì)步驟中,把解決問題的過程看成是數(shù)據(jù)被加工的過程,基于這種方法的程序設(shè)計(jì)稱為面向過程的程序設(shè)計(jì)。 C語言是面向過程的結(jié)構(gòu)化程序設(shè)計(jì)語言,它適合用自頂向下的軟件開發(fā)方法。該方法

6、采用自頂向下、逐步求精的設(shè)計(jì)方法,主要有 6個(gè)步驟:確定問題、分析問題、設(shè)計(jì)算法、實(shí)現(xiàn)算法、程序的測試與調(diào)試和程序的維護(hù)。 1.2 C語言概述1.2.1 C語言的發(fā)展 在20世紀(jì)60年代,BCPL語言是計(jì)算機(jī)軟件人員在開發(fā)系統(tǒng)軟件時(shí),作為記述語言使用的一種程序語言。1970年,美國貝爾實(shí)驗(yàn)室的Ken Thompson在軟件開發(fā)工作中,繼承和發(fā)展了BCPL語言的特點(diǎn),進(jìn)而提出了“B”語言。當(dāng)時(shí)最新型的小型計(jì)算機(jī),美國DEC公司的PDP-7型機(jī)中的UNIX操作系統(tǒng)就是使用B語言記述和開發(fā)的。但B語言過于簡單,功能有限。1972年至1973年間,美國貝爾實(shí)驗(yàn)室Dennis MRitchie在B語言的

7、基礎(chǔ)上設(shè)計(jì)出了C語言。 早期的C 語言主要是用于UNIX系統(tǒng)。后來,C語言多次多了改進(jìn),但主要還是在貝爾實(shí)驗(yàn)室內(nèi)部使用。直到1975年UNIX第6版公布后,C語言的突出優(yōu)點(diǎn)才引起人們的普遍注意。由于語言的強(qiáng)大功能和各方面的優(yōu)點(diǎn)逐漸為人們認(rèn)識(shí),到了20世紀(jì)80年代,C開始進(jìn)入其它操作系統(tǒng),并很快在各類大、中、小和微型計(jì)算機(jī)上得到了廣泛的使用?,F(xiàn)在C語言已經(jīng)風(fēng)靡全世界,成為世界上應(yīng)用最廣泛的幾種計(jì)算機(jī)語言之一。1.2.2 C語言的標(biāo)準(zhǔn) 1990年,國際化標(biāo)準(zhǔn)組織ISO(Intrernational Standard Organization)接受了87 ANSI C為ISO C的標(biāo)準(zhǔn)(ISO 98

8、99-1990)。目前流行的C編譯系統(tǒng)都是以它為基礎(chǔ)的,但不同版本的C編譯系統(tǒng)所實(shí)現(xiàn)的語言功能和語法規(guī)則有略有差別。本書的敘述基本上以ANSI C為基礎(chǔ)。 1.2.3 C語言的特點(diǎn) C語言的主要特點(diǎn)如下:(1)簡潔、緊湊、靈活。(2)模塊化、結(jié)構(gòu)化。(3)移植性強(qiáng)。(4)C語言允許直接訪問物理地址,可以直接對(duì)硬件進(jìn)行編程操作,因此C即具有高級(jí)語言的功能,又具有低級(jí)語言的許多功能,可用來寫系統(tǒng)軟件。(5)生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。1.2.3 C語言的特點(diǎn)1.3 C程序的基本結(jié)構(gòu) 1.3.1 一個(gè)簡單的C程序 【例例1-1】 一個(gè)簡單的C程序。/* Char1_1.C:C程序舉例 */#

9、includeint main()printf(“Welcome to C class!n”); /*顯示輸出 字符 串“Welcome to C class!”*/ return 0;1.3.1 一個(gè)簡單的C程序 程序的運(yùn)行結(jié)果為: Welcome to C class! 其中,int main()指定了程序的主函數(shù),每一個(gè)C程序都必須有一個(gè)main函數(shù)。函數(shù)名是main,函數(shù)體由一對(duì)花括號(hào)括起來。在主函數(shù)內(nèi)有兩個(gè)語句,語句最后有一個(gè)分號(hào)。#include是一條預(yù)處理命令,這條命令在編譯之前預(yù)處理階段執(zhí)行。1.3.2 C1.3.2 C程序的組成程序的組成 由【例1-1】可以看到,一個(gè)C程序通

10、常由函數(shù)、語句、輸入/輸出和預(yù)處理命令等幾個(gè)基本部分組成。 1. 函數(shù) 函數(shù)必須有自己的名稱用來加以識(shí)別,但是main函數(shù)卻是不能更改名稱的。因?yàn)榫幾g器在編譯程序時(shí),會(huì)從main函數(shù)的位置開始編譯,也就是說,main函數(shù)是整個(gè)程序的入口,如果沒有這個(gè)函數(shù),就無法完成編譯工作。1.3.2 1.3.2 C程序的組成程序的組成一般函數(shù)的結(jié)構(gòu)如下: 類型修飾符 函數(shù)名(形式參數(shù)表) 函數(shù)體 其中,類型修飾符表示函數(shù)的返回值類型,函數(shù)體必須包括在左花括號(hào)“”和右花括號(hào)“”中,左花括號(hào)表示函數(shù)的起始位置,右花括號(hào)表示函數(shù)的結(jié)束位置;系統(tǒng)將通過函數(shù)名調(diào)用該函數(shù)。例如,主函數(shù)的結(jié)構(gòu)如下:int main()

11、/* int表示該函數(shù)返回值為整型, 形式參數(shù)表為空 */ 函數(shù)體 return 0; 說明:在C語言程序中,參數(shù)部分寫為“void”或空,表示該函數(shù)沒有參數(shù),只執(zhí)行一個(gè)過程。函數(shù)的寫法有多種,在后面的章節(jié)將詳細(xì)介紹。 2. 語句 程序都是以行為單位,一行C程序的代碼就是一條語句,一個(gè)函數(shù)是由多條語句行構(gòu)成,每條語句最后都有一個(gè)分號(hào)(;)標(biāo)識(shí)。在一個(gè)函數(shù)中語句分為聲明語句和執(zhí)行語句。 1)聲明語句 #define NUM 35 /*聲明一個(gè)符號(hào)常量NUM*/ int x,y; /*聲明兩個(gè)整型變量x和y */2)執(zhí)行語句 執(zhí)行語句是在程序執(zhí)行時(shí)發(fā)出的某種動(dòng)作??蓤?zhí)行語句由操作和操作的內(nèi)容組成。

12、如: printf(welcome to C class!n); printf(%d,%dn,x,y);3.注釋部分 程序的注釋在程序的編寫過程中是非常重要的工作。一個(gè)沒有程序注釋的程序就像一個(gè)沒有使用說明書的軟件。 C的程序注釋方式如下: /注釋的內(nèi)容 或 /*注釋的內(nèi)容*/ 注釋以“/”開頭,其后是注釋文字,可一直延續(xù)到該行行尾。“/*注釋的內(nèi)容*/”是另一種方式,注釋文字夾在“/*”和“*/”之間,這樣的注釋不但可以出現(xiàn)在行尾,也可以出現(xiàn)在一行中的其他位置,還可以跨越多行。4.編譯預(yù)處理 預(yù)處理命令不是C語言的一部分,它只是用來擴(kuò)充C程序設(shè)計(jì)的環(huán)境。常用的預(yù)處理命令有兩種。 1)#inc

13、lude命令 #include命令也稱文件包含命令,其作用是將指定的文本文件引入到程序該點(diǎn)處,該文本文件包含了許多函數(shù)的定義。例如,之前提到的printf函數(shù)是C語言中實(shí)現(xiàn)輸出的函數(shù),它的定義就在“stdio.h”這個(gè)頭文件中,所以在該函數(shù)之前,必須先引入#include。 2)#define命令 #define命令用來定義一個(gè)符號(hào)常量。例如: #define PI 3.14159265.保留字和標(biāo)識(shí)符 1)保留字 所謂保留字,就是C語言中已有的具有特殊含義的字符符號(hào)。這些保留字不能用于其他目的。 2)標(biāo)識(shí)符 所謂標(biāo)識(shí)符,就是程序設(shè)計(jì)人員自己定義的表達(dá)一定含義的字符符號(hào),如函數(shù)名、變量名、常量

14、名等。標(biāo)識(shí)符是用戶自己定義的,但也必須遵循以下規(guī)則: (1)標(biāo)識(shí)符的第一個(gè)字符必須是字母或下劃線,后面可以由字母、下劃線或數(shù)字組成。 (2)C語言規(guī)定不能使用保留字作為標(biāo)識(shí)符,例如,不能將標(biāo)識(shí)符命名為int、float、 main等。但是標(biāo)識(shí)符中可以包含保留字。 (3)符號(hào)遵循見名知義原則,即一看到標(biāo)識(shí)符就清楚它所表達(dá)的含義。1.4 運(yùn)行C程序的步驟和方法1.4.1 C程序編譯環(huán)境介紹 本書采用的編譯環(huán)境是中文版Visual C+ 6.0。 Visual C+ 6.0是美國微軟公司研制開發(fā)的C+語言版本,它是一個(gè)集C+程序的編輯、編譯、調(diào)試、運(yùn)行和在線幫助等功能及可視化軟件開發(fā)功能為一體的軟件

15、開發(fā)工具,或稱開發(fā)環(huán)境、開發(fā)系統(tǒng)等。本節(jié)對(duì)其作簡單介紹,目的是讓讀者掌握編輯、編譯和運(yùn)行一個(gè)C+控制臺(tái)應(yīng)用程序(console application pragram)的簡要過程 。1.4.2 運(yùn)行一個(gè)簡單C語言程序 1.創(chuàng)建工程創(chuàng)建工程 (1)啟動(dòng)Visual C+ 6.0后,執(zhí)行“文件”“新建”命令,彈出如圖1-2所示的“新建”對(duì)話框 。 (2)在“新建”對(duì)話框中,單擊“工程”選項(xiàng)卡,在左邊的列表框中選擇“Win32 Console Application”項(xiàng)目,然后在右側(cè)的“位置”文本框中輸入保存的位置(也可單擊文本框右側(cè)的按鈕,選擇保存位置),再在“工程名稱”文本框中輸入工程名,如“p

16、roj11”。 (3)單擊“確定”按鈕,彈出如圖1-3所示的“Win32 Console Application-步驟1 共1步”對(duì)話框,采用默認(rèn)選項(xiàng),單擊“完成”按鈕。 (4)這時(shí),彈出如圖1-4所示的“新建工程信息”對(duì)話框,這里顯示新建工程類型、目錄等信息。 (5)單擊“確定”按鈕。這時(shí)已新建一個(gè)工程,工程名為“proj11”,位置在“E:XIANSHI” 下。 2.新建源文件新建源文件 在Visual C+ 6.0集成開發(fā)操作界面下,為了建立項(xiàng)目(即整個(gè)程序)中的每個(gè)程序文件和頭文件,需要執(zhí)行菜單欄中的“文件”“新建”菜單項(xiàng),在新建對(duì)話框,再切換到“文件”選項(xiàng)卡,如圖1-5所示。在“新建

17、”對(duì)話框中的列表框中,選擇“C+ Source File”文件類型項(xiàng),在文件名的文本框中,輸入文件名“例題1-2.c”,如圖1-6所示。這時(shí),“確定”按鈕由灰色變?yōu)榭捎玫暮谏?,單擊“確定”按鈕,則可新建一個(gè)C+源程序文件。 單擊“確定”按鈕,關(guān)閉該對(duì)話框,回到Visual C+ 6.0集成開發(fā)環(huán)境界面。3.編輯源文件編輯源文件 在圖1-7所示的源程序編輯界面中輸入例題1-2中的源程序代碼。4.編譯、連接、運(yùn)行程序編譯、連接、運(yùn)行程序 1) 編譯程序編譯程序 當(dāng)輸入和編輯好一個(gè)程序文件后,運(yùn)行該程序文件之前要先進(jìn)行編譯。執(zhí)行 “組建”“編譯”命令,即可編譯在編輯窗口中打開的源程序文件,生成一個(gè)擴(kuò)展名為.obj的目標(biāo)文件。通常應(yīng)首先編譯程序主文件,然后再編譯其他程序文件。 若在編譯過程中檢查出語法錯(cuò)誤,則在狀態(tài)輸出窗口顯示出產(chǎn)生錯(cuò)誤的程序行行號(hào)和錯(cuò)誤原因,以便用戶重新回到編輯窗口修改錯(cuò)誤。2)連接程序)連接程序 連接程序文件就是將一個(gè)程序中的主目標(biāo)文件與其他目標(biāo)文件和相關(guān)的庫函數(shù)文件連接起來形成一個(gè)可執(zhí)行的文件。 具體連接操作是:執(zhí)行“組建”“組建”命令即可。若連接過程沒有發(fā)現(xiàn)任何錯(cuò)誤,則表示連接成功,此時(shí)在狀態(tài)輸出窗口顯示出“0 error(s),0 warning(s)”信息,若連接過程中發(fā)現(xiàn)有錯(cuò)誤,則將在狀態(tài)輸出窗口顯示出發(fā)生錯(cuò)誤的文件、所在的行號(hào)和出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論