清華大學(xué)C語言教程第1章_第1頁
清華大學(xué)C語言教程第1章_第2頁
清華大學(xué)C語言教程第1章_第3頁
清華大學(xué)C語言教程第1章_第4頁
清華大學(xué)C語言教程第1章_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C語言程序設(shè)計(jì)基礎(chǔ)教程第一章 C語言概述第一節(jié)第一節(jié) C語言發(fā)展史語言發(fā)展史第二節(jié)第二節(jié) C語言特點(diǎn)語言特點(diǎn)第三節(jié)第三節(jié) C程序上機(jī)操作程序上機(jī)操作第四節(jié)第四節(jié) Turbo C簡介簡介第五節(jié)第五節(jié) C程序基本結(jié)構(gòu)程序基本結(jié)構(gòu)本章小結(jié)本章小結(jié)習(xí)題一習(xí)題一C語言程序設(shè)計(jì)基礎(chǔ)教程自計(jì)算機(jī)誕生以來,人們編寫系統(tǒng)軟件主要是使用匯編語言,但是由于匯編語言編寫的程序?qū)τ?jì)算機(jī)硬件的依賴太強(qiáng),程序可讀性和可移植性較差。為了改進(jìn)匯編語言的這些不足,就需要改用高級(jí)語言,而一般的高級(jí)語言又不具備匯編語言能夠直觀地實(shí)現(xiàn)對(duì)硬件操作的特點(diǎn)。在這種情況下,就需要一種第一節(jié) C語言發(fā)展史C語言程序設(shè)計(jì)基礎(chǔ)教程同時(shí)具有高級(jí)語言特

2、性和低級(jí)語言特性的語言,于是C語言就應(yīng)運(yùn)而生了。C語言是一種典型的高級(jí)語言,它把高級(jí)語言的基本結(jié)構(gòu)與低級(jí)語言的高效實(shí)用性結(jié)合起來,一方面它在計(jì)算機(jī)程序語言研究方面具有一定的價(jià)值;另一方面它對(duì)整個(gè)計(jì)算機(jī)工業(yè)和應(yīng)用的發(fā)展起到了推動(dòng)作用,因而C語言的設(shè)計(jì)者獲得了計(jì)算機(jī)科學(xué)界的最高獎(jiǎng)圖靈獎(jiǎng)。C語言已成為當(dāng)今世界最有發(fā)展前途的計(jì)算機(jī)高級(jí)語言之一。C語言的發(fā)展經(jīng)歷了以下幾個(gè)階段:C語言程序設(shè)計(jì)基礎(chǔ)教程(1)1967年,英國劍橋大學(xué)的M.Richards在CPL(Combined Programming Language)語言的基礎(chǔ)上,實(shí)現(xiàn)并推出了BCPL(Basic Combined Programmin

3、g Language)語言。(2)1970年,美國貝爾實(shí)驗(yàn)室的K.Thompson以BCPL語言為基礎(chǔ),設(shè)計(jì)了B語言,他用B語言在PDP7機(jī)上實(shí)現(xiàn)了第一個(gè)實(shí)驗(yàn)性的UNIX操作系統(tǒng)。C語言程序設(shè)計(jì)基礎(chǔ)教程(3)1972年,美國貝爾實(shí)驗(yàn)室的Dennis M.Ritchie在B語言的基礎(chǔ)上,克服其諸多缺點(diǎn),設(shè)計(jì)了C語言。(4)1973年,美國貝爾實(shí)驗(yàn)室的K.Thompson和Dennis M.Ritchie合作,用C語言在PDP11機(jī)上重新改寫了UNIX操作系統(tǒng)。此后C語言作為UNIX操作系統(tǒng)上的標(biāo)準(zhǔn)系統(tǒng)開發(fā)語言,越來越多地被人們接受和應(yīng)用。C語言程序設(shè)計(jì)基礎(chǔ)教程(5)在以后數(shù)年中,C語言多次做了改

4、進(jìn),但它依舊是以描述和實(shí)現(xiàn)UNIX操作系統(tǒng),作為貝爾實(shí)驗(yàn)室內(nèi)部使用而存在。直到1975年,UNIX第6版公布后,C語言的優(yōu)勢才慢慢被人們注意。接著出現(xiàn)了可移植性的C語言,這不僅推動(dòng)了UNIX操作系統(tǒng)的廣泛應(yīng)用,而且C語言也迅速得到推廣。(6)1978年,Brian W.Kernighan和Dennis M.Ritchie正式出版了著名的The C Programming Language一書,該書成為C語言各種版本改進(jìn)的基礎(chǔ),因而被稱為標(biāo)準(zhǔn)C語言。C語言程序設(shè)計(jì)基礎(chǔ)教程(7)1983年,美國國家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)根據(jù)C語言的各個(gè)版本,對(duì)C語言進(jìn)行發(fā)展和擴(kuò)充,制定了新標(biāo)準(zhǔn),稱為ANSI C。(

5、8)目前流行的C語言編譯系統(tǒng)是以1990年國際標(biāo)準(zhǔn)化組織ISO制定的ISO C標(biāo)準(zhǔn)為基礎(chǔ)的。C語言程序設(shè)計(jì)基礎(chǔ)教程目前C語言廣泛應(yīng)用于事務(wù)處理、科學(xué)計(jì)算、工業(yè)控制及數(shù)據(jù)庫等領(lǐng)域。C語言能夠得到如此迅猛發(fā)展,不僅因?yàn)樗婢吡烁呒?jí)語言和匯編語言的優(yōu)點(diǎn),既適合系統(tǒng)軟件的開發(fā),又適合應(yīng)用程序的編寫,更主要的是因?yàn)樗邆湟韵聨c(diǎn)獨(dú)特優(yōu)勢:第二節(jié) C語言特點(diǎn)C語言程序設(shè)計(jì)基礎(chǔ)教程(1)應(yīng)用廣泛。不僅適合系統(tǒng)軟件的開發(fā),而且適合應(yīng)用軟件的開發(fā)。(2)語言簡潔、明了。語言本身書寫靈活、直觀,便于初學(xué)者學(xué)習(xí)和應(yīng)用。(3)語言表達(dá)能力強(qiáng)。C語言是一種面向結(jié)構(gòu)化程序設(shè)計(jì)的語言,涉及范圍廣、功能強(qiáng)。它有運(yùn)算符34種,

6、既可以直接處理字符,又可以訪問內(nèi)存物理地址,直接對(duì)計(jì)算機(jī)硬件進(jìn)行操作,這樣就能實(shí)現(xiàn)匯編語言的大部分功能。C語言程序設(shè)計(jì)基礎(chǔ)教程(4)豐富的數(shù)據(jù)結(jié)構(gòu)。C語言具有現(xiàn)代化語言的各種數(shù)據(jù)結(jié)構(gòu),如實(shí)型、整型及字符型等,而且在此基礎(chǔ)上設(shè)計(jì)者還可以創(chuàng)建很多復(fù)雜的數(shù)據(jù)結(jié)構(gòu),如鏈表、樹、堆、棧等。這些豐富的數(shù)據(jù)類型極大地增強(qiáng)了C語言的功能。(5)豐富的結(jié)構(gòu)化控制語句。C語言提供了功能強(qiáng)大的結(jié)構(gòu)化控制語句的3種基本結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。許多復(fù)雜的問題往往可以通過這3種結(jié)構(gòu)的交叉使用得以解決,便于程序結(jié)構(gòu)化,符合現(xiàn)代編程風(fēng)格的要求。C語言程序設(shè)計(jì)基礎(chǔ)教程(6)程序運(yùn)行效率高,可移植性強(qiáng)。C語言編程速

7、度快,程序可讀性高;80%以上的代碼是公共的,因而稍做修改就能移植到各種不同型號(hào)的計(jì)算機(jī)上。盡管如此,C語言也存在一定的不足,具體表現(xiàn)在運(yùn)算符和運(yùn)算優(yōu)先級(jí)過多,語法定義不嚴(yán)格,編程自由度大,編譯程序查錯(cuò)、糾錯(cuò)能力有限,給不熟練的程序員帶來了一定的困難。C語言程序設(shè)計(jì)基礎(chǔ)教程綜上所述,C語言既是成功的系統(tǒng)描述語言,又是程序設(shè)計(jì)語言,它的這種雙重性越來越多地受到設(shè)計(jì)者的青睞。目前國內(nèi)外研究和使用C語言的人日益增加,同時(shí)優(yōu)秀的C語言版本及配套的工具軟件不斷出現(xiàn),更為C語言的學(xué)習(xí)提供了廣闊的平臺(tái)。C語言程序設(shè)計(jì)基礎(chǔ)教程編寫C程序僅僅是程序設(shè)計(jì)工作中的一個(gè)環(huán)節(jié),編寫的程序需要在計(jì)算機(jī)上進(jìn)行調(diào)試運(yùn)行,直到

8、得到正確的運(yùn)行結(jié)果為止。C程序的上機(jī)操作一般要經(jīng)過4個(gè)步驟,即編輯、編譯、鏈接和運(yùn)行,如圖1.3.1所示。第三節(jié) C程序上機(jī)操作C語言程序設(shè)計(jì)基礎(chǔ)教程圖1.3.1 C程序上機(jī)操作C語言程序設(shè)計(jì)基礎(chǔ)教程(1)編輯:用戶把編輯好的C程序源代碼輸入到計(jì)算機(jī),并以文本文件的形式存放在本地磁盤上(后綴為.c),例如file1.c,t.c等。編輯C程序的常見文字處理軟件有Word、EditPlus和記事本等。(2)編譯:編譯C程序是把C語言源程序編譯成用二進(jìn)制指令表示的目標(biāo)程序(后綴為.obj)。編譯過程由C編譯系統(tǒng)提供的編譯程序完成。C語言程序設(shè)計(jì)基礎(chǔ)教程(3)鏈接:鏈接C程序是用系統(tǒng)提供的鏈接程序把目

9、標(biāo)文件、庫函數(shù)和其他目標(biāo)文件鏈接裝配成可執(zhí)行的目標(biāo)程序(后綴為.exe)。(4)運(yùn)行:運(yùn)行C程序是將可執(zhí)行的目標(biāo)程序投入運(yùn)行,以獲取程序的運(yùn)行結(jié)果。C語言程序設(shè)計(jì)基礎(chǔ)教程目前在PC機(jī)上常用的C語言編譯系統(tǒng)有Borland International公司的Turbo C和Microsoft公司的Microsoft C,Quick C。下面簡單介紹Turbo C 2.0集成開發(fā)環(huán)境的使用,關(guān)于詳細(xì)的使用說明請(qǐng)參閱相關(guān)C語言上機(jī)指導(dǎo)書籍。C語言程序設(shè)計(jì)基礎(chǔ)教程Turbo C是Borland公司開發(fā)的一種運(yùn)行于DOS操作系統(tǒng)下的C語言程序開發(fā)軟件。它集編輯、編譯、鏈接和運(yùn)行于一體,具有良好的用戶界面和

10、豐富的庫函數(shù),且運(yùn)行速度快,效率高,功能強(qiáng),使用非常方便。本書中的C程序都是在Turbo C 2.0環(huán)境下實(shí)現(xiàn)的。第四節(jié) Turbo C簡介C語言程序設(shè)計(jì)基礎(chǔ)教程一、一、Turbo C 2.0的集成環(huán)境的集成環(huán)境在使用Turbo C 2.0集成開發(fā)環(huán)境前,必須先將其安裝到本地硬盤上,然后運(yùn)行系統(tǒng)盤的install安裝程序,按照提示信息逐步安裝到本地磁盤上。安裝后,Turbo C文件中包含兩個(gè)子文件,即INCLUDE文件(Turbo C系統(tǒng)頭文件)和LIB文件(Turbo C系統(tǒng)庫文件)??梢栽赥C目錄下雙擊主運(yùn)行文件TC打開Turbo C集成開發(fā)環(huán)境,如圖1.4.1所示。C語言程序設(shè)計(jì)基礎(chǔ)教程

11、圖1.4.1 Turbo C 2.0集成開發(fā)環(huán)境C語言程序設(shè)計(jì)基礎(chǔ)教程Turbo C 2.0定義了兩種屏幕狀態(tài),即開發(fā)環(huán)境和用戶屏幕,它們是相互獨(dú)立的。通常Turbo C處于開發(fā)環(huán)境,只有當(dāng)運(yùn)行用戶程序時(shí)才能進(jìn)入用戶屏幕,因而開發(fā)環(huán)境又稱為主屏幕。程序的編輯、編譯和鏈接都是在主屏幕下實(shí)現(xiàn)的,只有程序的輸入和輸出在用戶屏幕下完成。由圖1.4.1可知,Turbo C 2.0的主屏幕由4部分組成。C語言程序設(shè)計(jì)基礎(chǔ)教程1主菜單主菜單由8項(xiàng)組成,即File,Edit,Run,Compile,Project,Options,Debug和Break/watch。其中,除Edit外,其他菜單項(xiàng)都有一個(gè)下拉菜

12、單。2編輯窗編輯窗是進(jìn)行源程序所有編輯工作的平臺(tái),它由兩部分組成,即編輯狀態(tài)提示行和編輯/修改源程序窗口。C語言程序設(shè)計(jì)基礎(chǔ)教程3信息窗信息窗用于顯示程序運(yùn)行結(jié)果的錯(cuò)誤信息和警告信息。4提示行提示行位于屏幕底層,用于說明在Turbo C 2.0集成開發(fā)環(huán)境中常用的功能鍵的含義。Turbo C 2.0集成開發(fā)環(huán)境中所有熱鍵的功能如表1.1所示。C語言程序設(shè)計(jì)基礎(chǔ)教程表1.1 Turbo C 2.0集成開發(fā)環(huán)境中所有熱鍵及功能C語言程序設(shè)計(jì)基礎(chǔ)教程二、源程序的編輯、編譯、鏈接和運(yùn)行二、源程序的編輯、編譯、鏈接和運(yùn)行在Turbo C 2.0開發(fā)環(huán)境下,不允許使用鼠標(biāo)操作,但可以通過光標(biāo)鍵,和進(jìn)行菜單

13、間的選擇,通過回車鍵選中。C語言程序設(shè)計(jì)基礎(chǔ)教程1編輯按“F10”鍵,激活主菜單,然后按“F”鍵,在彈出的下拉菜單中,選擇“File”“Load”命令,并按回車鍵,表示調(diào)用一個(gè)已經(jīng)存在的源文件,如圖1.4.2所示;選擇“File”“New”命令,并按回車鍵,表示要?jiǎng)?chuàng)建一個(gè)新C源程序。C語言程序設(shè)計(jì)基礎(chǔ)教程圖1.4.2 Turbo C源文件的調(diào)用C語言程序設(shè)計(jì)基礎(chǔ)教程2編譯、鏈接當(dāng)源程序編輯完成后,按“F10”鍵,激活主菜單,然后按“C”鍵,在彈出的下拉菜單中,選擇“Compile”“Compile to OBJ”命令,進(jìn)行編譯,如圖1.4.3所示,并生成目標(biāo)文件;然后選擇“Compile”“L

14、ink EXE file”命令,進(jìn)行鏈接操作,即可得到擴(kuò)展名為.exe的可執(zhí)行文件。一般情況下,將編譯與鏈接合并成一步進(jìn)行,可以通過選擇“Compile”“Make EXE file”命令或直接按“F9”鍵來實(shí)現(xiàn)。C語言程序設(shè)計(jì)基礎(chǔ)教程圖1.4.3 Turbo C源文件的編譯C語言程序設(shè)計(jì)基礎(chǔ)教程3運(yùn)行按“F10”鍵,激活主菜單,然后按“R”鍵,在彈出的下拉菜單中選擇“Run”“Run”命令或按“Ctrl+F9”鍵,運(yùn)行鏈接后的.exe文件。當(dāng)運(yùn)行可執(zhí)行文件時(shí),系統(tǒng)自動(dòng)切換到用戶屏幕,用戶在此將數(shù)據(jù)輸入給程序,就得到程序運(yùn)行后輸出的結(jié)果。按“F10”鍵,激活主菜單,然后按“R”鍵,在彈出的下拉

15、菜單中,選擇“Run”“User screen”命令或按“Alt+F5”鍵切換到用戶屏幕查看運(yùn)行結(jié)果,如圖1.4.4所示。C語言程序設(shè)計(jì)基礎(chǔ)教程圖1.4.4 Turbo C源文件的運(yùn)行結(jié)果C語言程序設(shè)計(jì)基礎(chǔ)教程用C語言編寫的程序稱為C程序。本節(jié)將通過一個(gè)簡單的C程序?qū)嵗?,介紹C程序的基本組成和結(jié)構(gòu),使讀者對(duì)C程序有個(gè)初步的了解。第五節(jié) C程序基本結(jié)構(gòu)C語言程序設(shè)計(jì)基礎(chǔ)教程例1.1 輸出當(dāng)前系統(tǒng)的日期和時(shí)間。程序#include/*預(yù)編譯命令*/#include/*預(yù)編譯命令*/main() /*主函數(shù)*/*主函數(shù)體開始行*/ struct date d; /*定義結(jié)構(gòu)體變量d*/struct

16、time t; /*定義結(jié)構(gòu)體變量t*/getdate(&d); /*獲取當(dāng)前系統(tǒng)的日期*/C語言程序設(shè)計(jì)基礎(chǔ)教程gettime(&t);/*獲取當(dāng)前系統(tǒng)的時(shí)間*/function(d,t); /*調(diào)用子函數(shù)function*/function(x,y) /*子函數(shù)function*/struct date x; /*定義結(jié)構(gòu)體變量x*/struct time y; /*定義結(jié)構(gòu)體變量y*/puts(“Now”); /*字符串?dāng)?shù)據(jù)輸出*/C語言程序設(shè)計(jì)基礎(chǔ)教程printf(“Date:%d-%d-%dn”,x.da_year,x.da_mon,x.da_day);/*日期格式輸

17、出*/printf(“Time:%d-%d-%dn”,y.ti_hour,y.ti_min,y.ti_sec);/*時(shí)間格式輸出*/ 輸出C語言程序設(shè)計(jì)基礎(chǔ)教程分析本程序主函數(shù)main()中首先定義了兩個(gè)結(jié)構(gòu)體變量d和t;然后調(diào)用系統(tǒng)日期函數(shù)getdate和時(shí)間函數(shù)gettime,得到當(dāng)前系統(tǒng)的日期和時(shí)間;最后調(diào)用子函數(shù)function。在子函數(shù)function中,首先定義了兩個(gè)形參x和y的數(shù)據(jù)類型;然后調(diào)用字符串輸出函數(shù)puts和格式輸出函數(shù)printf,輸出當(dāng)前系統(tǒng)的日期和時(shí)間。注意在使用C語言標(biāo)準(zhǔn)庫函數(shù)時(shí),需要用預(yù)編譯命令“#include”將有關(guān)的“頭文件”包含在用戶源文件中,在頭文件

18、中包含了與所用函數(shù)有關(guān)的信息。C語言程序設(shè)計(jì)基礎(chǔ)教程一、一、C程序基本組成程序基本組成從例1.1可以看出,一個(gè)完整的C程序應(yīng)該由以下幾個(gè)部分組成:main() /*主函數(shù)*/變量定義執(zhí)行語句組子函數(shù)名1(參數(shù)) /*子函數(shù)1*/C語言程序設(shè)計(jì)基礎(chǔ)教程變量定義執(zhí)行語句組子函數(shù)名2(參數(shù)) /*子函數(shù)2*/變量定義執(zhí)行語句組C語言程序設(shè)計(jì)基礎(chǔ)教程一個(gè)完整的C程序應(yīng)符合以下幾點(diǎn):(1)在C語言中,每個(gè)程序都由一個(gè)(且僅有一個(gè))主函數(shù)main()和若干個(gè)子函數(shù)組成,其中主函數(shù)是一個(gè)特殊的函數(shù),它是程序啟動(dòng)的唯一入口;子函數(shù)是由用戶自定義的,可以缺省。(2)函數(shù)由函數(shù)說明和函數(shù)體兩部分組成。函數(shù)說明是對(duì)函數(shù)名、函數(shù)類型、形式參數(shù)等的定義和說明,在函數(shù)運(yùn)行時(shí)不起作用;函數(shù)體包括對(duì)變量的定義和執(zhí)行程序兩部分,用大括號(hào)括起來。C語言程序設(shè)計(jì)基礎(chǔ)教程(3)C程序書寫格式自由。一條語句可以寫在一行上,也可以寫在多行上;一行內(nèi)可以寫一條語句,也可以寫多條語句。(4)在C語言中,可以在任何位置添加注釋文字,以提高程序的可讀性。C語言中的注釋是以“/*”開始,以“*/”結(jié)束的。注釋可以獨(dú)立成行,也可以跨行,注釋對(duì)一個(gè)程序的正常編譯和運(yùn)行不產(chǎn)生任何影響,因此在程序中添加注釋是編程的好習(xí)慣。C語言程序設(shè)計(jì)基礎(chǔ)教程二、標(biāo)準(zhǔn)庫函數(shù)二、標(biāo)準(zhǔn)庫函數(shù)標(biāo)準(zhǔn)庫函數(shù)是由C編譯系統(tǒng)提供的一些有用的功能函數(shù),一般存

溫馨提示

  • 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)論