



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C語言教程1C語言概述C語言的發(fā)展過程C語言是在70年代初問世的。ー九七八年由美國電話電報公司(AT&T)貝爾實驗室正式發(fā)表了C語言。同時由B.W.Kemighan和D.M.Ritchit合著了著名的“THECPROGRAMMINGLANGUAGE"ー書。通常簡稱為《K&R》,也有人稱之為《K&R》標準。但是,在《K&R》中并沒有定義ー個完整的標準C語言,后來由美國國家標準協(xié)會(AmericanNationalStandardsInstitute)在此基礎(chǔ)上制定了一個C語言標準,于一九八三年發(fā)表。通常稱之為ANSIC?當代最優(yōu)秀的程序設(shè)計語言早期的C語言主要是用于UNIX系統(tǒng)。由于C語言的強大功能和各方面的優(yōu)點逐漸為人們認識,到了八十年代,C開始進入其它操作系統(tǒng),并很快在各類大、中、小和微型計算機上得到了廣泛的使用,成為當代最優(yōu)秀的程序設(shè)計語言之一。C語言版本目前最流行的c語言有以下幾種:MicrosoftC或稱MSCBorlandTurboC或稱TurboCAT&TC這些C語言版本不僅實現(xiàn)了ANSIC標準,而且在此基礎(chǔ)上各自作了一些擴充,使之更加方便、完美。C語言的特點I?C語言簡潔、緊湊,使用方便、靈活。ANSICー共只有32個關(guān)鍵字:autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedstaticsizofstructswitchtypedefunionunsignedvoidvolatilewhile9種控制語句,程序書寫自由,主要用小寫字母表示,壓縮了一切不必要的成分。TurboC擴充了11個關(guān)鍵字:asm_cs_ds_es_sscdeclfarhugeinterruptnearpascal注意:在C語言中,關(guān)鍵字都是小寫的。?運算符豐富。共有34種。C把括號、賦值、逗號等都作為運算符處理。從而使C的運算類型極為豐富,可以實現(xiàn)其他髙級語言難以實現(xiàn)的運算。?數(shù)據(jù)結(jié)構(gòu)類型豐富。4?具有結(jié)構(gòu)化的控制語句。?語法限制不太嚴格,程序設(shè)計自由度大。?C語言允許直接訪問物理地址,能進行位(bit)操作,能實現(xiàn)匯編語言的大部分功能,可以直接對硬件進行操作。因此有人把它稱為中級語言。?生成目標代碼質(zhì)量高,程序執(zhí)行效率高。?與匯編語言相比,用C語言寫的程序可移植性好。但是,C語言對程序員要求也高,程序員用C寫程序會感到限制少、靈活性大,功能強,但較其他高級語言在學習上要困難ー些。面向?qū)ο蟮某绦蛟O(shè)計語言在C的基礎(chǔ)上,ー九八三年又由貝爾實驗室的BjarneStrou-strup推出了C++。C++進ー步擴充和完善了C語言,成為ー種面向?qū)ο蟮某绦蛟O(shè)計語言。C++目前流行的最新版本是BorlandC++,SymantecC++和MicrosoftVisualC++oC++提出了一些更為深入的概念,它所支持的這些面向?qū)ο蟮母拍钊菀讓栴}空間直接地映射到程序空間,為程序員提供了一種與傳統(tǒng)結(jié)構(gòu)程序設(shè)計不同的思維方式和編程方法。因而也增加了整個語言的復雜性,掌握起來有一定難度。C和C++但是,C是C++的基礎(chǔ),C++語言和C語言在很多方面是兼容的。因此,掌握了C語言,再進ー步學習C++就能以ー種熟悉的語法來學習面向?qū)ο蟮恼Z言,從而達到事半功倍的目的。簡單的C程序介紹為了說明C語言源程序結(jié)構(gòu)的特點,先看以下幾個程序。這幾個程序由簡到難,表現(xiàn)了C語言源程序在組成結(jié)構(gòu)上的特點。雖然有關(guān)內(nèi)容還未介紹,但可從這些例子中了解到組成ー個C源程序的基本部分和書寫格式。【例1.1】main(){printf("世界,您好!\n");main是主函數(shù)的函數(shù)名,表示這是ー個主函數(shù)。每ー個C源程序都必須有,且只能有一個主函數(shù)(main函數(shù))。函數(shù)調(diào)用語句,printf函數(shù)的功能是把要輸出的內(nèi)容送到顯示器去顯示。printf函數(shù)是ー個由系統(tǒng)定義的標準函數(shù),可在程序中直接調(diào)用?!纠?.2】#include<math.h>#include<stdio.h>main()(doublex,s;printf(ninputnumber:\n");scanf(n%lf\&x);s=sin(x);printf(Msineof%lfis%lf\n",x,s);)include稱為文件包含命令擴展名為.h的文件稱為頭文件定義兩個實數(shù)變量,以被后面程序使用顯示提示信息從鍵盤獲得一個實數(shù)x求X的正弦,并把它賦給變量S顯示程序運算結(jié)果main函數(shù)結(jié)束程序的功能是從鍵盤輸入ー個數(shù)X,求x的正弦值,然后輸出結(jié)果。在main。之前的兩行稱為預(yù)處理命令(詳見后面)。預(yù)處理命令還有其它幾種,這里的include稱為文件包含命令,其意義是把尖括號〇或引號"”內(nèi)指定的文件包含到本程序來,成為本程序的一部分。被包含的文件通常是由系統(tǒng)提供的,其擴展名為.h。因此也稱為頭文件或首部文件。C語言的頭文件中包括了各個標準庫函數(shù)的函數(shù)原型。因此,凡是在程序中調(diào)用一個庫函數(shù)時,都必須包含該函數(shù)原型所在的頭文件。在本例中,使用了三個庫函數(shù):輸入函數(shù)scanf,正弦函數(shù)sin,輸出函數(shù)printfosin函數(shù)是數(shù)學函數(shù),其頭文件為math.h文件,因此在程序的主函數(shù)前用include命令包含了math.h〇scanf和printf是標準輸入輸出函數(shù),其頭文件為stdio.h,在主函數(shù)前也用include命令包含了stdio.h文件。需要說明的是,C語言規(guī)定對scanf和printf這兩個函數(shù)可以省去對其頭文件的包含命令。所以在本例中也可以刪去第二行的包含命令#includevstdio.h〉。同樣,在例1.1中使用了printf函數(shù),也省略了包含命令。在例題中的主函數(shù)體中又分為兩部分,一部分為說明部分,另一部為分執(zhí)行部分。說明是指變量的類型說明。例題1.1中未使用任何變量,因此無說明部分。C語言規(guī)定,源程序中所有用到的變量都必須先說明,后使用,否則將會出錯。這ー點是編譯型高級程序設(shè)計語言的ー個特點,與解釋型的BASIC語言是不同的。說明部分是C源程序結(jié)構(gòu)中很重要的組成部分。本例中使用了兩個變量x,s,用來表示輸入的自變量和sin函數(shù)值。由于sin函數(shù)要求這兩個量必須是雙精度浮點型,故用類型說明符double來說明這兩個變量。說明部分后的四行為執(zhí)行部分或稱為執(zhí)行語句部分,用以完成程序的功能。執(zhí)行部分的第一行是輸出語句,調(diào)用printf函數(shù)在顯示器上輸出提示字符串,請操作人員輸入自變量x的值。第二行為輸入語句,調(diào)用scanf函數(shù),接受鍵盤上輸入的數(shù)并存入變量x中。第三行是調(diào)用sin函數(shù)并把函數(shù)值送到變量s中。第四行是用printf函數(shù)輸出變量s的值,即x的正弦值。程序結(jié)束。運行本程序時,首先在顯示器屏幕上給出提示串inputnumber,這是由執(zhí)行部分的第一
行完成的。用戶在提示下從鍵盤上鍵入某ー數(shù),如5,按下回車鍵,接著在屏幕上給出計算結(jié)果。輸入和輸出函數(shù)在前兩個例子中用到了輸入和輸出函數(shù)scanf和printf,在以后要詳細介紹。這里我們先簡單介紹一下它們的格式,以便下面使用。scanf和printf這兩個函數(shù)分別稱為格式輸入函數(shù)和格式輸出函數(shù)。其意義是按指定的格式輸入輸出值。因此,這兩個函數(shù)在括號中的參數(shù)表都由以下兩部分組成:“格式控制串”,參數(shù)表格式控制串是ー個字符串,必須用雙引號括起來,它表示了輸入輸出量的數(shù)據(jù)類型。各種類型的格式表示法可參閱第三章。在printf函數(shù)中還可以在格式控制串內(nèi)出現(xiàn)非格式控制字符,這時在顯示屏幕上將原文照印。參數(shù)表中給出了輸入或輸出的量。當有多個量時,用逗號間隔。例如:printf("sineof%lfis%lf\n",x,s);其中%If為格式字符,表示按雙精度浮點數(shù)處理。它在格式串中兩次現(xiàn),對應(yīng)了x和s兩個變量。其余字符為非格式字符則照原樣輸出在屏幕上。【例1.3】intmax(inta,intb); /*函數(shù)說明?/main() /?主函數(shù)?/(intx,y,z; /?變量說明?/intmax(inta,intb); /*函數(shù)說明?/printf("inputtwonumbers:\n");scanf("%d%d",&x,&y);z=max(x,y);scanf("%d%d",&x,&y);z=max(x,y);printf("maxmum=%d",z);)intmax(inta,intb)(if(a>b)retuma;elsereturnb/?輸入x,y值?//?調(diào)用max函數(shù)?//?輸出?//*定義max函數(shù)?//?把結(jié)果返回主調(diào)函數(shù)?/上面例中程序的功能是由用戶輸入兩個整數(shù),程序執(zhí)行后輸ル其中較大的數(shù)。本程序由兩個函數(shù)組成,主函數(shù)和max函數(shù)。函數(shù)之間是并列關(guān)系??蓮闹骱瘮?shù)中調(diào)用其它函數(shù)。max函數(shù)的功能是比較兩個數(shù),然后把較大的數(shù)返回給主函數(shù)。max函數(shù)是一個用戶自定義函數(shù)。因此在主函數(shù)中要給出說明(程序第三行)??梢姡诔绦虻恼f明部分中,不僅可以有變量說明,還可以有函數(shù)說明。關(guān)于函數(shù)的詳細內(nèi)容將在以后第五章介紹。在程序的每行后用/?和?/括起來的內(nèi)容為注釋部分,程序不執(zhí)行注釋部分。上例中程序的執(zhí)行過程是,首先在屏幕上顯示提示串,請用戶輸入兩個數(shù),回車后由scanf函數(shù)語句接收這兩個數(shù)送入變量x,y中,然后調(diào)用max函數(shù),并把x,y的值傳送給max函數(shù)的參數(shù)a,b。在max函數(shù)中比較a,b的大小,把大者返回給主函數(shù)的變量z,最后在屏幕上輸出z的值。C源程序的結(jié)構(gòu)特點.一個c語言源程序可以由一個或多個源文件組成。.每個源文件可由一個或多個函數(shù)組成。.ー個源程序不論由多少個文件組成,都有一個且只能有一個main函數(shù),即主函數(shù)。.源程序中可以有預(yù)處理命令(include命令僅為其中的一種),預(yù)處理命令通常應(yīng)放在源文件或源程序的最前面。.每ー個說明,每ー個語句都必須以分號結(jié)尾。但預(yù)處理命令,函數(shù)頭和花括號“}”之后不能加分號。.標識符,關(guān)鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。書寫程序時應(yīng)遵循的規(guī)則從書寫清晰,便于閱讀,理解,維護的角度出發(fā),在書寫程序時應(yīng)遵循以下規(guī)則:.ー個說明或ー個語句占一行。.用{}括起來的部分,通常表示了程序的某一層次結(jié)構(gòu)。{}?般與該結(jié)構(gòu)語句的第一個字母對齊,并單獨占一行。.低ー層次的語句或說明可比高ー層次的語句或說明縮進若干格后書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應(yīng)カ求遵循這些規(guī)則,以養(yǎng)成良好的編程風格。C語言的字符集字符是組成語言的最基本的元素。C語言字符集由字母,數(shù)字,空格,標點和特殊字符組成。在字符常量,字符串常量和注釋中還可以使用漢字或其它可表示的圖形符號。.字母小寫字母a?z共26個大寫字母A?Z共26個.數(shù)字〇?9共10個.空白符空格符、制表符、換行符等統(tǒng)稱為空白符。空白符只在字符常量和字符串常量中起作用。在其它地方出現(xiàn)時,只起間隔作用,編譯程序?qū)λ鼈兒雎圆挥?。因此在程序中使用空白符與否,對程序的編譯不發(fā)生影響,但在程序中適當?shù)牡胤绞褂每瞻追麑⒃黾映绦虻那逦院涂勺x性。.標點和特殊字符C語言詞匯在c語言中使用的詞匯分為六類:標識符,關(guān)鍵字,運算符,分隔符,常量,注釋符等。.標識符在程序中使用的變量名、函數(shù)名、標號等統(tǒng)稱為標識符。除庫函數(shù)的函數(shù)名由系統(tǒng)定義外,其余都由用戶自定義。C規(guī)定,標識符只能是字母(A?Z,a?Z)、數(shù)字(〇?9)、下劃線(一)組成的字符串,并且其第一個字符必須是字母或下劃線。以下標識符是合法的:a,x,x3,BOOK_1,sum5以下標識符是非法的:3s 以數(shù)字開頭s*T 出現(xiàn)非法字符?-3x 以減號開頭bowy-1出現(xiàn)非法字符-(減號)在使用標識符時還必須注意以下幾點:(1)標準C不限制標識符的長度,但它受各種版本的C語言編譯系統(tǒng)限制,同時也受到具體機器的限制。例如在某版本C中規(guī)定標識符前八位有效,當兩個標識符前八位相同時,則被認為是同一個標識符。(2)在標識符中,大小寫是有區(qū)別的。例如BOOK和book是兩個不同的標識符。(3)標識符雖然可由程序員隨意定義,但標識符是用于標識某個量的符號。因此,命名應(yīng)盡量有相應(yīng)的意義,以便于閱讀理解,作到“顧名思義”。.關(guān)鍵字關(guān)鍵字是由C語言規(guī)定的具有特定意義的字符串,通常也稱為保留字。用戶定義的標識符不應(yīng)與關(guān)鍵字相同。C語言的關(guān)鍵字分為以下幾類:(1)類型說明符用于定義、說明變量、函數(shù)或其它數(shù)據(jù)結(jié)構(gòu)的類型。如前面例題中用到的int,double等(2)語句定義符用于表示一個語句的功能。如例1.3中用到的ifelse就是條件語句的語句定義符。(3)預(yù)處理命令字用于表示一個預(yù)處理命令。如前面各例中用到的include。.運算符C語言中含有相當豐富的運算符。運算符與變量,函數(shù)一起組成表達式,表示各種運算功能。運算符由一個或多個字符組成。.分隔符在C語言中采用的分隔符有逗號和空格兩種。逗號主要用在類型說明和函數(shù)參數(shù)表中,分隔各個變量??崭穸嘤糜谡Z句各單詞之間,作間隔符。在關(guān)鍵字,標識符之間必須要有一個以上的空格符作間隔,否則將會出現(xiàn)語法錯誤,例如把inta;寫成inta;C編譯器會把inta當成一個標識符處理,其結(jié)果必然出錯。.常量C語言中使用的常量可分為數(shù)字常量、字符常量、字符串常量、符號常量、轉(zhuǎn)義字符等多種。在后面章節(jié)中將專門給予介紹。.注釋符C語言的注釋符是以“/*”開頭并以“*/”結(jié)尾的串。在“/*”和“*/”之間的即為注釋。程序編譯時,不對注釋作任何處理。注釋可出現(xiàn)在程序中的任何位置。注釋用來向用戶提示或解釋程序的意義。在調(diào)試程序中對行不使用的語句也可用注釋符括起來,使翻譯跳過不作處理,待調(diào)試結(jié)束后再去掉注釋符。TurboC2.0集成開發(fā)環(huán)境的使用TurboC2.0簡介和啟動我們上機實習和將來考試都是使用BorlandTurboC2.0這個版本。該系統(tǒng)是DOS操作系統(tǒng)支持下的軟件,在windows98環(huán)境下,可以在DOS窗口下運行。我們機房是在D盤根目錄下建立一個TC子目錄下安裝TurboC2.0系統(tǒng)的。TCド還建立了兩個了目錄LIB和INCLUDE,LIB子目錄中存放庫文件,INCLUDE子目錄中存放所有頭文件。在DOS環(huán)境下或在windows98的DOS窗口下運行運行TurboC2.0時,只要在TC子H錄下鍵入TC并回車即可進入TurboC2.0集成開發(fā)環(huán)境。在windows98環(huán)境下,也可以選運行菜單,然后鍵入d:\tc\tc即可,也可以在tc文件夾找到tc.exe文件,然后用鼠標雙擊該文件名也可進入TurboC2.0集成開發(fā)環(huán)境。TurboC是美國Borland公司的產(chǎn)品,Borland公司是一家專門從事軟件開發(fā)'研制的大公司。該公司相繼推出了一套Turbo系列軟件,如TurboBASIC,TurboPascal,TurboProlog,這些軟件很受用戶歡迎。該公司在1987年首次推出TurboC1.0產(chǎn)品,其中使用了全然一新的集成開發(fā)環(huán)境,即使用了一系列下拉式菜單,將文本編輯、程序編譯、連接以及程序運行一體化,大大方便了程序的開發(fā)。1988年,Borland公司又推屮?TurboCl.5版本,增加了圖形庫和文本窗口函數(shù)庫等,而TurboC2.0則是該公司1989年出版的。TurboC2.0在原來集成開發(fā)環(huán)境的基礎(chǔ)上增加了查錯功能,并可以在Tiny模式下直接生成.COM(數(shù)據(jù)、代碼、堆棧處在同一64K內(nèi)存中)文件。還可對數(shù)學協(xié)處理器(支持8087/80287/80387等)進行仿真。Borland公司后來又推出了面向?qū)ο蟮某绦蜍浖黅urboC++,它繼承發(fā)展TurboC2.0的集成開發(fā)環(huán)境,并包含了面向?qū)ο蟮幕舅枷牒驮O(shè)計方法。1991年為了適用Microsoft公司的Windows3.0版本,Borland公司又將TurboC++作了更新,即TurboC的新一代產(chǎn)品BorlandcC++也一經(jīng)問世了。TurboC2.0集成開發(fā)環(huán)境進入TurboC2.0集成開發(fā)環(huán)境中后,屏幕上顯示:editunompilerojectLine1Editptionsebuireak/watcheditunompilerojectLine1Editptionsebuireak/watchCol1InsertIndentTabFillUnindentUNONAME.CMessage-Help-zoom-switi其中頂上一行為TurboC2.0主菜單,中間窗口為編輯區(qū),接下來是信息窗口,最底下一-行為參考行。這四個窗口構(gòu)成了TurboC2.0的主屏幕,以后的編程、編譯、調(diào)試以及運行都將在這個主屏幕中進行。主菜單在TurboC2.0主屏幕頂上一行,顯示下列內(nèi)容:FileEditRunCompileProjectOptionsDebugBreak/watch除Editタト,其它各項均有子菜單,只要用Alt加上某項中第一個字母,就可進入該項的子菜單中。File菜單按Alt+F可進入File菜單,如圖:File菜單的子菜單共有9項,分別敘述如下:Load:裝入一個文件,可用類似DOS的通配符(如?.C)來進行列表選擇。也可裝入其它擴展名的文件,只要給出文件名(或只給路徑)即可。該項的熱鍵為F3,即只要按F3即可進入該項,而不需要先進入File菜單再選此項。Pick,將最近裝入編輯窗u的8個文件列成一個表讓用戶選擇,選擇后將該程序裝入編輯區(qū),并將光標置在上次修改過的地方。其熱健為Alt-F3oNew:新建文件,缺省文件名為NONAME.C,存盤時可改名。Save:將編輯區(qū)中的文件存盤,若文件名是NONAME.C時,將詢問是否更改文件名,其熱鍵為F2。Writeto:可由用戶給出文件名將編輯區(qū)中的文件存盤,若該文件已存在,則詢問要不要覆蓋。Directory:顯示目錄及目錄中的文件,并可由用戶選擇。Changedir:顯示當前默認目錄,用戶可以改變默認目錄。Osshell:暫時退出TurboC2.0到DOS提示符下,此時可以運行DOS命令,若想回到TurboC2.0中,只要在DOS狀態(tài)下鍵入EXIT即可。Quit:退出TurboC2.0,返回到DOS操作系統(tǒng)中,其熱犍為Alt+X。說明:以上各項可用光標鍵移動色棒進行選擇,回車則執(zhí)行。也可用每ー項的第一個大寫字母直接選擇。若要退到主菜單或從它的下一級菜單列表框退回均可用Esc鍵,TurboC2.0所有菜單均采用這種方法進行操作,以下不再說明。.13.4Edit菜單按Alt+E可進入編輯菜單,若再回車,則光標出現(xiàn)在編輯窗口,此時用戶可以進行文本編輯。編輯方法基本與wordstar相同,可用F1鍵獲得有關(guān)編輯方法的幫助信息。.與編輯有關(guān)的功能鍵如下:F1獲得TurboC2.0編輯命令的幫助信息;F5 擴大編輯窗口到整個屏幕;F6 在編輯窗口與信息窗ロ之間進行切換;F10 從編輯窗口轉(zhuǎn)到主菜單。.編輯命令簡介:PageUp向前翻頁PageDn向后翻頁Home 將光標移到所在行的開始End 將光標移到所在行的結(jié)尾Ctrl+Y刪除光標所在的一行Ctrl+T刪除光標所在處的一個詞Ctrl+KB設(shè)置塊開始Ctrl+KK設(shè)置塊結(jié)尾Ctrl+KV塊移動Ctrl+KC塊拷貝Ctrl+KY塊刪除Ctrl+KR讀文件Ctrl+KW存文件Ctrl+KP塊文件打印Ctrl+F!如果光標所在處為TurboC2.0庫函數(shù),則獲得有關(guān)該函數(shù)的幫助信息Ctrl+Ql查找TurboC20雙界符的后匹配符Ctrl+Q!查找TurboC2.0雙界符的前匹配符說明:TurboC2.0的雙界符包括以下幾種符號:a)花括符{和}b)尖括符〈和〉c)圓括符(和)d)方括符[和]e)注釋符/?和?/f)雙引號"g)單引號’TurboC2.0在編輯文件時還有一種功能,就是能夠自動縮進,即光標定位和上一個非空字符對齊。在編輯窗口中,Ctrl+OL為自動縮進開關(guān)的控制鍵。1.13.5Run菜單按Alt+R可進入Run菜單,該菜單有以下各項,如圖所示:Run:運行由Project/Projectname項指定的文件名或當前編輯區(qū)的文件。如果對上次編譯后的源代碼未做過修改,則直接運行到下ー個斷點(沒有斷點則運行到結(jié)束)。否則先進行編譯、連接后オ運行,其熱鍵為Ctrl+F9。Programreset:中止當前的調(diào)試,釋放分給程序的空間,其熱鍵為Ctrl+F2。Gotocursor::調(diào)試程序時使用,選擇該項可使程序運行到光標所在行。光標所在行必須為一條可執(zhí)行語句,否則提示錯誤。其熱鍵為F4。Traceinto:在執(zhí)行一條調(diào)用其它用戶定義的子函數(shù)時,若用Traceinto項,則執(zhí)行長條將跟蹤到該子函數(shù)內(nèi)部去執(zhí)行,其熱鍵為F?。Stepover:執(zhí)行當前函數(shù)的下ー?條語句,即使用戶函數(shù)調(diào)用,執(zhí)行長條也不會跟蹤進函數(shù)內(nèi)部,其熱鍵為F8。Userscreen:顯示程序運行時在屏幕上顯示的結(jié)果。其熱鍵為Alt+F5。1.13.6Compile菜單按Alt+C可進入Compile菜單,該菜單有以下幾個內(nèi)容,如圖所示:CompiletoOBJ:將一個C源文件編譯生成.OBJ目標文件,同時顯示生成的文件名。其熱鍵為Alt+F9?MakeEXEfile:此命令生成一個.EXE的文件,并顯示生成的.EXE文件名。其中.EXE文件名是下面幾項之ー:1)由Project/Projectname說明的項目文件名。2)若沒有項目文件名,則由PrimaryCfile說明的源文件。3)若以上兩項都沒有文件名,則為當前窗口的文件名。LinkEXEfile:把當前.OBJ文件及庫文件連接在ー起生成.EXE文件。Buildall:重新編譯項目里的所有文件,并進行裝配生成.EXE文件。該命令不作過時檢查(上面的幾條命令要作過時檢査,即如果目前項目里源文件的11期和時間與目標文件相同或更早,則拒絕對源文件進行編譯)。PrimaryCfile:當在該項中指定了主文件后,在以后的編譯中,如沒有項目文件名則編譯此項中規(guī)定的主C文件,如果編譯中有錯誤,則將此文件調(diào)入編輯窗口,不管目前窗口中是不是主C文件。Getinfo:獲得有關(guān)當前路徑、源文件名、源文件字節(jié)大小、編譯中的錯誤數(shù)目、可用空間等信息,如圖:
Project菜單按Alt+P可進入Project菜單,該菜單包括以下內(nèi)容,如圖所示:Projectname:項目名具有.PRJ的擴展名,其中包括將要編譯、連接的文件名。例如有一個程序由filel.c,file2.c,file3.c組成要將這3個文件編譯裝配成一個file.exe的執(zhí)行文件,可以先建立一個file.prj的項目文件,其內(nèi)容如下:filel.cfile2.cfile3.c此時將file.pij放入Projectname項中,以后進行編譯時將自動對項目文件中規(guī)定的三個源文件分別進行編譯。然后連接成file.exe文件。如果其中有些文件已經(jīng)編譯成.OBJ文件,而又沒有修改過,可直接寫上.OBJ擴展名。此時將不再編譯而只進行連接。例如:filel.objfile2.cfile3.c將不對filel.c進行編譯,而直接連接。說明:當項目文件中的每個文件無擴展名時,均按源文件對待,另外,其中的文件也可以是庫文件,但必須寫上擴展名.LIB。Breakmakeon:由用戶選擇是否在有Warining、Errors>FatalErrors時或Link之前退出Make編譯。Autodependencies:當開關(guān)置為on,編譯時將檢査源文件與對應(yīng)的.OBJ文件日期和時間,否則不進行檢查。Clearproject:清除Project/Projectname中的項目文件名。Removemessages:把錯誤信息從信息窗口中清除掉。Options菜單按Alt+O可進入Options菜單,該菜單對初學者來說要謹慎使用,該菜單有以下幾個內(nèi)容,如圖所示:1.Compiler:本項選擇又有許多子菜單,可以讓用戶選擇硬件配置、存儲模型、調(diào)試技術(shù)、代碼優(yōu)化、對話信息控制和宏定義。這些子菜単如圖所示:Model:共有Tiny,small,medium,compact,large,huge六種不同模式可由同戶選擇。Define:打開一個宏定義框,同戶可輸入宏定義。多重定義可同分號,賦值可用等號。Codegeneration:它又有許多任選項,這些任選項告訴編譯器產(chǎn)生什么樣的目標代碼。令Callingconvention可選擇C或Pascal方式傳遞參數(shù)。Instructionset可選擇8088/8086或80186/80286指令系列。Floatingpoint 可選擇仿真浮點、數(shù)學協(xié)處理器浮點或無浮點運算。Defaultchartype規(guī)定char的類型。令A(yù)lignonent規(guī)定地址對準原則。令Mergeduplicatestrings作優(yōu)化用,將堂復的字符串合并在ー起。令Standardstackframe產(chǎn)生一個標準的棧結(jié)構(gòu)。Teststackoverflow產(chǎn)生一段程序運行時檢測堆棧溢出的代碼。令Linenumber 在.OBJ文件中放進行號以供調(diào)試時用。。OBJdebuginformation在?OBJ文件中產(chǎn)生調(diào)試信息。Optimization:它又有許多任選項。?Optimizefor選擇是對程序小型化還是對程序速度進行優(yōu)化處理。令Useregistervariable用來選擇是否允許使用寄存器變量。今Registeroptimization盡可能使用寄存器變量以減少過多的取數(shù)操作。令Jumpoptimization通過去除多余的跳轉(zhuǎn)和調(diào)整循環(huán)與開關(guān)語句的辦法,壓縮代碼。Source:它又有許多任選項。identifierlength說明標識符有效字符的個數(shù),默認為32個。Nestedcomments是否允許嵌套注釋。ANSIkeywordsonly是只允許ANSI關(guān)鍵字還是也允許TurboC2.0關(guān)鍵字。Error?Errorstopafter多少個錯誤時停止編譯,默認為25個。令Warningstopafter多少個警告錯誤時停止編譯,默認為!00個。令Displaywarning令Portabilitywarning移植性警告錯誤。令A(yù)NSIViolations侵犯了ANS!關(guān)鍵字的警告錯誤。QCommonerror常見的警告錯誤。令しesscommonerror少見的警告錯誤。Names:用于改變段(segment)、組(group)和類(class)的名字,默認值為CODE,DATA,BSSo2.Linker;本菜單設(shè)置有關(guān)連接的選擇項,它有以下內(nèi)容,如圖所示:Mapfilemenu選擇是否產(chǎn)生.MAP文件。Initializesegments是否在連接時初始化沒有初始化的段。Devaultlibraries是否在連接其它編譯程序產(chǎn)生的冃標文件時去尋找其缺省庫。Graphicslibrary是否連接graphics庫中的函數(shù)。Warnduplicatesymbols當有重復符號時產(chǎn)生警告信息。Stackwarinig是否讓連接程序產(chǎn)生Nostack的警告信息。Case-sensitivelink是否區(qū)分大、小寫字。Environment:菜單規(guī)定是否對某些文件自動存盤及制表鍵和屏幕大小的設(shè)置,它有以下內(nèi)容,如圖所示:
Messagetracking:令Currentfile跟蹤在編輯窗口中的文件錯誤。令A(yù)llfiles跟蹤所有文件錯誤。令Off不跟蹤。Keepmessage:編譯前是否清除Message窗口中的信息。Configautosave:選on時,在Run,Shell或退出集成開發(fā)環(huán)境之前,如果TurboC2.0的配置被改過,則所做的改動將存入配置文件中。選。行時不存。Editautosave:是否在Run或Shell之前,自動存儲編輯的源文件。Backupfile:是否在源文件存盤時產(chǎn)生后備文件(.BAK文件)。Tabsize:設(shè)置制表鍵大小,默認為8。Zoomedwindows:將現(xiàn)行活動窗口放大至リ整個屏幕,其熱鍵為F5。Screensize設(shè)置屏幕文本大小。Directories:規(guī)定編譯、連接所需文件的路徑,有下列各項,如圖所示:
Includedirectories:包含文件的路徑,多個子目錄用";"分開。Librarydirectories:庫文件路徑,多個子目錄用";"分開。Outputdirectoried:輸出文件(.OBJ,.EXE,.MAP文件)的目錄。TurboCdirectoried:TurboC所在的目錄。Pickfilename:定義加載的pick文件名,如不定義則從currentpickfile中取。Arguments:允許用戶使用命令行參數(shù)。Saveoptions:保存所有選擇的編譯、連接、調(diào)試和項目到配置文件中,缺省的配置文件為TCCONFIGTC.Retriveoptions裝入ー個配置文件到TC中,TC將使用該文件的選擇項。1.13.9Debug菜單按Alt+D可選擇Debug菜單,該菜單主要用于查錯,它包括以下內(nèi)容,如圖所示:
EvaluateExpression要計算結(jié)果的表達式。Result顯示表達式的計算結(jié)果。Newvalue賦給新值。Callstack:該項不可接觸。而在TurboCdebuger時用于檢查堆棧情況。Findfunction在運行TurboCdebugger時用于顯示規(guī)定的函數(shù)。Refreshdisplay如果編輯窗口偶然被用戶窗口重寫了可用此恢復編輯窗口的內(nèi)容。1.13.10Break/watch菜單按Alt+B可進入Break/watch菜單,該菜單有以下內(nèi)容,如圖所示:1.Addwatch:向監(jiān)視窗口插入ー監(jiān)視表達式。Deletewatch:從監(jiān)視窗口中刪除當前的監(jiān)視表達式。Editwatch:在監(jiān)視窗口中編輯ー個監(jiān)視表達式。Removeall:watches從監(jiān)視窗口中刪除所有的監(jiān)視表達式。Togglebreakpoint:對光標所在的行設(shè)置或清除斷點。Clearallbreakpoints:清除所有斷點。Viewnextbreakpoint:將光標移動到下ー個斷點處。1.13.11TurboC2.0的配置文件所謂配置文件是包含TurboC2.0有關(guān)信息的文件,其中存有編譯、連接的選擇和路徑等信息。可以用下述方法建立TurboC2.0的配置:.建立用戶自命名的配置文件:可以從Oplions菜單中選擇Options/Saveoptions命令,將當前集成開發(fā)環(huán)境的所有配置存入一個由用戶命名的配置文件中。下次啟動TC時只要在DOS下鍵入:tc/c<用戶命名的配置文件名〉就會按這個配置文件中的內(nèi)容作為TurboC2.0的選擇。.若設(shè)置Options/Environment/Configautosave為on,則退出集成開發(fā)環(huán)境時,當前的設(shè)置會自動存放到TurboC2.0配置文件TCCONFIG.TC中。TurboC在啟動時會自動尋找這個配置文件。.用TCINST設(shè)置TurboC的有關(guān)配置,并將結(jié)果存入TC.EXE中。TurboC在啟動時,若沒有找到配置文件,則取TC.EXE中的缺省值。TOC\o"1-5"\h\z\o"CurrentDocument"C語言概述 1\o"CurrentDocument"C語言的發(fā)展過程 1\o"CurrentDocument"當代最優(yōu)秀的程序設(shè)計語言 1\o"CurrentDocument"C語言版本 1\o"CurrentDocument"C語言的特點 1\o"CurrentDocument"面向?qū)ο蟮某绦蛟O(shè)計語言 2\o"CurrentDocument"C和C++ 2\o"CurrentDocument"簡單的C程序介紹 2\o"CurrentDocument"輸入和輸出函數(shù) 4\o"CurrentDocument"C源程序的結(jié)構(gòu)特點 5\o"CurrentDocument"書寫程序時應(yīng)遵循的規(guī)則 5\o"CurrentDocument"C語言的字符集 5\o"CurrentDocument"C語言詞匯 5\o"CurrentDocument"TurboC2.0集成開發(fā)環(huán)境的使用 7TurboC2.0 簡介和啟動 7\o"CurrentDocument"TurboC2.0集成開發(fā)環(huán)境 7\o"CurrentDocument"File菜單 8\o"CurrentDocument"Edit菜單 9\o"CurrentDocument"Run菜單 10\o"CurrentDocument"Compile菜單 11\o"CurrentDocument"Project菜單 12\o"CurrentDocument"Options菜單 13\o"CurrentDocument"Debug菜單 17Break/watch菜單 18TurboC2.0的配置文件 19C語言教程C語言概述C語言的發(fā)展過程C語言是在70年代初問世的。ー九七八年由美國電話電報公司(AT&T)貝爾實驗室正式發(fā)表了C語言。同時由B.W.Kemighan和D.M.Ritchit合著了著名的“THECPROGRAMMINGLANGUAGE"ー書。通常簡稱為《K&R》,也有人稱之為《K&R》標準。但是,在《K&R》中并沒有定義ー個完整的標準C語言,后來由美國國家標準協(xié)會(AmericanNationalStandardsInstitute)在此基礎(chǔ)上制定了一個C語言標準,于一九八三年發(fā)表。通常稱之為ANSICo當代最優(yōu)秀的程序設(shè)計語言早期的C語言主要是用于UNIX系統(tǒng)。由于C語言的強大功能和各方面的優(yōu)點逐漸為人們認識,到了八十年代,C開始進入其它操作系統(tǒng),并很快在各類大、中、小和微型計算機上得到了廣泛的使用,成為當代最優(yōu)秀的程序設(shè)計語言之一。C語言版本H前最流行的c語言有以下幾種:MicrosoftC或稱MSCBorlandTurboC或稱TurboCAT&TC這些C語言版本不僅實現(xiàn)了ANSIC標準,而且在此基礎(chǔ)上各自作了一些擴充,使之更加方便、完美。C語言的特點l?C語言簡潔、緊湊,使用方便、靈活。ANSICー共只有32個關(guān)鍵字:autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedstaticsizofstructswitchtypedefunionunsignedvoidvolatilewhile9種控制語句,程序書寫自由,主要用小寫字母表示,壓縮了一切不必要的成分。TurboC擴充了11個關(guān)鍵字:asm_cs_ds_es_sscdeclfarhugeinterruptnear pascal注意:在c語言中,關(guān)鍵字都是小寫的。?運算符豐富。共有34種。C把括號、賦值、逗號等都作為運算符處理。從而使C的運算類型極為豐富,可以實現(xiàn)其他高級語言難以實現(xiàn)的運算。?數(shù)據(jù)結(jié)構(gòu)類型豐富。4?具有結(jié)構(gòu)化的控制語句。5?語法限制不太嚴格,程序設(shè)計自由度大。6?C語言允許直接訪問物理地址,能進行位(bit)操作,能實現(xiàn)匯編語言的大部分功能,可以直接對硬件進行操作。因此有人把它稱為中級語言。?生成目標代碼質(zhì)量高,程序執(zhí)行效率高。?與匯編語言相比,用C語言寫的程序可移植性好。但是,C語言對程序員要求也高,程序員用C寫程序會感到限制少、靈活性大,功能強,但較其他髙級語言在學習上要困難ー些。面向?qū)ο蟮某绦蛟O(shè)計語言在C的基礎(chǔ)上,ー九八三年又由貝爾實驗室的BjarneStrou-strup推出了C++。C++進ー步擴充和完善了C語言,成為ー種面向?qū)ο蟮某绦蛟O(shè)計語言。C++目前流行的最新版本是BorlandC++,SymantecC++和MicrosoftVisualC++。C++提出了?些更為深入的概念,它所支持的這些面向?qū)ο蟮母拍钊菀讓栴}空間直接地映射到程序空間,為程序員提供了一種與傳統(tǒng)結(jié)構(gòu)程序設(shè)計不同的思維方式和編程方法。因而也增加了整個語言的復雜性,掌握起來有一定難度。C和C++但是,C是C++的基礎(chǔ),C++語言和C語言在很多方面是兼容的。因此,掌握了C語言,再進ー步學習C++就能以ー種熟悉的語法來學習面向?qū)ο蟮恼Z言,從而達到事半功倍的目的。簡單的C程序介紹為了說明C語言源程序結(jié)構(gòu)的特點,先看以下幾個程序。這幾個程序山簡到難,表現(xiàn)了C語言源程序在組成結(jié)構(gòu)上的特點。雖然有關(guān)內(nèi)容還未介紹,但可從這些例子中了解到組成ー個C源程序的基本部分和書寫格式?!纠?.1】main()(printf("世界,您好!\n");)main是主函數(shù)的函數(shù)名,表示這是ー個主函數(shù)。每ー個C源程序都必須有,且只能有一個主函數(shù)(main函數(shù))。函數(shù)調(diào)用語句,printf函數(shù)的功能是把要輸出的內(nèi)容送到顯示器去顯示。printf函數(shù)是ー個由系統(tǒng)定義的標準函數(shù),可在程序中直接調(diào)用?!纠?include<math.h>#include<stdio.h>main()(doublex,s;printf("inputnumber:\nn);scanf(n%ir,&x);s=sin(x);printf(nsineof%lfis%lf\n';x,s);)include稱為文件包含命令擴展名為.h的文件稱為頭文件定義兩個實數(shù)變量,以被后面程序使用顯示提示信息從鍵盤獲得一個實數(shù)X求X的正弦,并把它賦給變量S顯示程序運算結(jié)果main函數(shù)結(jié)束程序的功能是從鍵盤輸入ー個數(shù)X,求x的正弦值,然后輸出結(jié)果。在main()之前的兩行稱為預(yù)處理命令(詳見后面)。預(yù)處理命令還有其它幾種,這里的include稱為文件包含命令,其意義是把尖括號。或引號””內(nèi)指定的文件包含到本程序來,成為本程序的一部分。被包含的文件通常是山系統(tǒng)提供的,其擴展名為.h。因此也稱為頭文件或首部文件。C語言的頭文件中包括了各個標準庫函數(shù)的函數(shù)原型。因此,凡是在程序中調(diào)用ー個庫函數(shù)時,都必須包含該函數(shù)原型所在的頭文件。在本例中,使用了三個庫函數(shù):輸入函數(shù)scanf,正弦函數(shù)sin,輸出函數(shù)printf。sin函數(shù)是數(shù)學函數(shù),其頭文件為math.h文件,因此在程序的主函數(shù)前用include命令包含了math.h。scanf和printf是標準輸入輸出函數(shù),其頭文件為stdio.h,在主函數(shù)前也用include命令包含了stdio.h文件。需要說明的是,C語言規(guī)定對scanf和printf這兩個函數(shù)可以省去對其頭文件的包含命令。所以在本例中也可以刪去第二行的包含命令#include<stdio.h>。同樣,在例1.1中使用了printf函數(shù),也省略了包含命令。在例題中的主函數(shù)體中又分為兩部分,一部分為說明部分,另一部為分執(zhí)行部分。說明是指變量的類型說明。例題L1中未使用任何變量,因此無說明部分。C語言規(guī)定,源程序中所有用到的變量都必須先說明,后使用,否則將會出錯。這ー點是編譯型高級程序設(shè)計語言的ー個特點,與解釋型的BASIC語言是不同的。說明部分是C源程序結(jié)構(gòu)中很重:要的組成部分。本例中使用了兩個變量x,s,用來表示輸入的自變量和sin函數(shù)值。由于sin函數(shù)要求這兩個量必須是雙精度浮點型,故用類型說明符double來說明這兩個變量。說明部分后的四行為執(zhí)行部分或稱為執(zhí)行語句部分,用以完成程序的功能。執(zhí)行部分的第一行是輸出語句,調(diào)用printf函數(shù)在顯示器上輸出提示字符串,請操作人員輸入自變量x的值。第二行為輸入語句,調(diào)用scanf函數(shù),接受鍵盤上輸入的數(shù)并存入變量x中。第三行是調(diào)用sin函數(shù)并把函數(shù)值送到變量s中。第四行是用printf函數(shù)輸出變量s的值,即x的正弦值。程序結(jié)束。運行本程序時,首先在顯示器屏幕上給出提示串inputnumber,這是由執(zhí)行部分的第一行完成的。用戶在提示下從鍵盤上鍵入某ー數(shù),如5,按下回車鍵,接著在屏幕ヒ給出計算結(jié)果。輸入和輸出函數(shù)在前兩個例子中用到了輸入和輸出函數(shù)scanty。printf,在以后要詳細介紹。這里我們先簡單介紹一下它們的格式,以便下面使用。scanf和printf這兩個函數(shù)分別稱為格式輸入函數(shù)和格式輸出函數(shù)。其意義是按指定的格式輸入輸出值。因此,這兩個函數(shù)在括號中的參數(shù)表都由以下兩部分組成:“格式控制串”,參數(shù)表格式控制串是ー個字符串,必須用雙引號括起來,它表示了輸入輸出量的數(shù)據(jù)類型。各種類型的格式表示法可參閱第三章。在printf函數(shù)中還可以在格式控制串內(nèi)出現(xiàn)非格式控制字符,這時在顯示屏幕上將原文照印。參數(shù)表中給出了輸入或輸出的量。當有多個量時,用逗號間隔。例如:printf(Msineof%lfis%lf\nM,x,s);其中%If為格式字符,表示按雙精度浮點數(shù)處理。它在格式串中兩次現(xiàn),對應(yīng)了X和S兩個變量。其余字符為非格式字符則照原樣輸出在屛幕上?!纠?.3】intmax(inta,intb);/*函數(shù)說明?/main()(intx,y,z;intmax(inta,intb);/?主函數(shù)?//?變量說明?//?函數(shù)說明?/printf("inputtwonumbers:\n");scanf(M%d%dn,&x,&y);z=max(x,y);printf(nmaxmum=%d",z);/?輸入x,y值?//?調(diào)用max函數(shù)?//?輸出?/1intmax(inta,intb)/*定義max函數(shù)?/Iif(a>b)returna;elsereturnb;/?把結(jié)果返回主調(diào)函數(shù)*/上面例中程序的功能是由用戶輸入兩個整數(shù),程序執(zhí)行后輸出其中較大的數(shù)。本程序由兩個函數(shù)組成,主函數(shù)和max函數(shù)。函數(shù)之間是并列關(guān)系??蓮闹骱瘮?shù)中調(diào)用其它函數(shù)。max函數(shù)的功能是比較兩個數(shù),然后把較大的數(shù)返回給主函數(shù)。max函數(shù)是一個用戶自定義函數(shù)。因此在主函數(shù)中要給出說明(程序第三行)。可見,在程序的說明部分中,不僅可以有變量說明,還可以有函數(shù)說明。關(guān)于函數(shù)的詳細內(nèi)容將在以后第五章介紹。在程序的每行后用/?和?/括起來的內(nèi)容為注釋部分,程序不執(zhí)行注釋部分。上例中程序的執(zhí)行過程是,首先在屏幕上顯示提示串,請用戶輸入兩個數(shù),回車后由scanf函數(shù)語句接收這兩個數(shù)送入變量x,y中,然Q調(diào)用max函數(shù),并把x,y的值傳送給max函數(shù)的參數(shù)a,b。在max函數(shù)中比較a,b的大小,把大者返回給主函數(shù)的變量z,最后在屏幕上輸出z的值。C源程序的結(jié)構(gòu)特點.一個c語言源程序可以由一個或多個源文件組成。.每個源文件可由一個或多個函數(shù)組成。.ー個源程序不論由多少個文件組成,都有一個且只能有一個main函數(shù),即主函數(shù)。.源程序中可以有預(yù)處理命令(include命令僅為其中的一種),預(yù)處理命令通常應(yīng)放在源文件或源程序的最前面。.每ー個說明,每ー個語句都必須以分號結(jié)尾。但預(yù)處理命令,函數(shù)頭和花括號“}”之后不能加分號。.標識符,關(guān)鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。書寫程序時應(yīng)遵循的規(guī)則從書寫清晰,便于閱讀,理解,維護的角度出發(fā),在書寫程序時應(yīng)遵循以下規(guī)則:.ー個說明或ー個語句占一行。.用{}括起來的部分,通常表示了程序的某一層次結(jié)構(gòu)。{}?般與該結(jié)構(gòu)語句的第一個字母對齊,并單獨占一行。.低ー層次的語句或說明可比高ー層次的語句或說明縮進若干格后書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應(yīng)カ求遵循這些規(guī)則,以養(yǎng)成良好的編程風格。C語言的字符集字符是組成語言的最基本的元素。c語言字符集由字母,數(shù)字,空格,標點和特殊字符組成。在字符常量,字符串常量和注釋中還可以使用漢字或其它可表示的圖形符號。.字母小寫字母a?z共26個大寫字母A?Z共26個.數(shù)字〇?9共10個.空白符空格符、制表符、換行符等統(tǒng)稱為空白符。空白符只在字符常量和字符串常量中起作用。在其它地方出現(xiàn)時,只起間隔作用,編譯程序?qū)λ鼈兒雎圆挥?。因此在程序中使用空白符與否,對程序的編譯不發(fā)生影響,但在程序中適當?shù)牡胤绞褂每瞻追麑⒃黾映绦虻那逦院涂勺x性。.標點和特殊字符C語言詞匯在c語言中使用的詞匯分為六類:標識符,關(guān)鍵字,運算符,分隔符,常量,注釋符等。.標識符在程序中使用的變量名、函數(shù)名、標號等統(tǒng)稱為標識符。除庫函數(shù)的函數(shù)名由系統(tǒng)定義外,其余都由用戶自定義。C規(guī)定,標識符只能是字母(A?Z,a?Z)、數(shù)字(〇?9)、下劃線(一)組成的字符串,并且其第一個字符必須是字母或下劃線。以下標識符是合法的:a,x,x3,BOOK_1,sum5以下標識符是非法的:3s 以數(shù)字開頭s*T 出現(xiàn)非法字符?-3x 以減號開頭bowy-1出現(xiàn)非法字符-(減號)在使用標識符時還必須注意以下幾點:(1)標準C不限制標識符的長度,但它受各種版本的C語言編譯系統(tǒng)限制,同時也受到具體機器的限制。例如在某版本C中規(guī)定標識符前八位有效,當兩個標識符前八位相同時,則被認為是同一個標識符。(2)在標識符中,大小寫是有區(qū)別的。例如BOOK和book是兩個不同的標識符。(3)標識符雖然可由程序員隨意定義,但標識符是用于標識某個量的符號。因此,命名應(yīng)盡量有相應(yīng)的意義,以便于閱讀理解,作到“顧名思義”。.關(guān)鍵字關(guān)鍵字是由C語言規(guī)定的具有特定意義的字符串,通常也稱為保留字。用戶定義的標識符不應(yīng)與關(guān)鍵字相同。C語言的關(guān)鍵字分為以下幾類:(1)類型說明符用于定義、說明變量、函數(shù)或其它數(shù)據(jù)結(jié)構(gòu)的類型。如前面例題中用到的int,double等(2)語句定義符用于表示一個語句的功能。如例1.3中用到的ifelse就是條件語句的語句定義符。(3)預(yù)處理命令字用于表示一個預(yù)處理命令。如前面各例中用到的include。.運算符C語言中含有相當豐富的運算符。運算符與變量,函數(shù)一起組成表達式,表示各種運算功能。運算符由一個或多個字符組成。.分隔符在C語言中采用的分隔符有逗號和空格兩種。逗號主要用在類型說明和函數(shù)參數(shù)表中,分隔各個變量??崭穸嘤糜谡Z句各單詞之間,作間隔符。在關(guān)鍵字,標識符之間必須要有一個以上的空格符作間隔,否則將會出現(xiàn)語法錯誤,例如把inta;寫成inta;C編譯器會把inta當成一個標識符處理,其結(jié)果必然出錯。.常量C語言中使用的常量可分為數(shù)字常量、字符常量、字符串常量、符號常量、轉(zhuǎn)義字符等多種。在后面章節(jié)中將專門給予介紹。.注釋符C語言的注釋符是以“/*”開頭并以“*/”結(jié)尾的串。在“/*”和“*/”之間的即為注釋。程序編譯時,不對注釋作任何處理。注釋可出現(xiàn)在程序中的任何位置。注釋用來向用戶提示或解釋程序的意義。在調(diào)試程序中對行不使用的語句也可用注釋符括起來,使翻譯跳過不作處理,待調(diào)試結(jié)束后再去掉注釋符。TurboC2.0集成開發(fā)環(huán)境的使用TurboC2.0簡介和啟動我們上機實習和將來考試都是使用BorlandTurboC2.0這個版本。該系統(tǒng)是DOS操作系統(tǒng)支持下的軟件,在windows98環(huán)境下,可以在DOS窗口下運行。我們機房是在D盤根目錄下建立一個TC子目錄下安裝TurboC2.0系統(tǒng)的。TCド還建立了兩個了目錄LIB和INCLUDE,LIB子目錄中存放庫文件,INCLUDE子目錄中存放所有頭文件。在DOS環(huán)境下或在windows98的DOS窗口下運行運行TurboC2.0時,只要在TC子H錄下鍵入TC并回車即可進入TurboC2.0集成開發(fā)環(huán)境。在windows98環(huán)境下,也可以選運行菜單,然后鍵入d:\tc\tc即可,也可以在tc文件夾找到tc.exe文件,然后用鼠標雙擊該文件名也可進入TurboC2.0集成開發(fā)環(huán)境。TurboC是美國Borland公司的產(chǎn)品,Borland公司是一家專門從事軟件開發(fā)'研制的大公司。該公司相繼推出了一套Turbo系列軟件,如TurboBASIC,TurboPascal,TurboProlog,這些軟件很受用戶歡迎。該公司在1987年首次推出TurboC1.0產(chǎn)品,其中使用了全然一新的集成開發(fā)環(huán)境,即使用了一系列下拉式菜單,將文本編輯、程序編譯、連接以及程序運行一體化,大大方便了程序的開發(fā)。1988年,Borland公司又推屮?TurboCl.5版本,增加了圖形庫和文本窗口函數(shù)庫等,而TurboC2.0則是該公司1989年出版的。TurboC2.0在原來集成開發(fā)環(huán)境的基礎(chǔ)上增加了查錯功能,并可以在Tiny模式下直接生成.COM(數(shù)據(jù)、代碼、堆棧處在同一64K內(nèi)存中)文件。還可對數(shù)學協(xié)處理器(支持8087/80287/80387等)進行仿真。Borland公司后來又推出了面向?qū)ο蟮某绦蜍浖黅urboC++,它繼承發(fā)展TurboC2.0的集成開發(fā)環(huán)境,并包含了面向?qū)ο蟮幕舅枷牒驮O(shè)計方法。1991年為了適用Microsoft公司的Windows3.0版本,Borland公司又將TurboC++作了更新,即TurboC的新一代產(chǎn)品BorlandcC++也已經(jīng)問世了。TurboC2.0集成開發(fā)環(huán)境進入TurboC2.0集成開發(fā)環(huán)境中后,屏幕上顯示:editunompilerojectLine1Editptionsebuireak/watcheditunompilerojectLine1Editptionsebuireak/watchCol1InsertIndentTabFillUnindentUNONAME.CMessage-Help-zoom-switi其中頂上一行為TurboC2.0主菜單,中間窗口為編輯區(qū),接下來是信息窗口,最底下一-行為參考行。這四個窗口構(gòu)成了TurboC2.0的主屏幕,以后的編程、編譯、調(diào)試以及運行都將在這個主屏幕中進行。主菜單在TurboC2.0主屏幕頂上一行,顯示下列內(nèi)容:FileEditRunCompileProjectOptionsDebugBreak/watch除Edit外,其它各項均有子菜單,只要用Alt加上某項中第一個字母,就可進入該項的子菜單中。File菜單按Alt+F可進入File菜單,如圖:File菜單的子菜單共有9項,分別敘述如下:Load:裝入一個文件,可用類似DOS的通配符(如?.C)來進行列表選擇。也可裝入其它擴展名的文件,只要給出文件名(或只給路徑)即可。該項的熱鍵為F3,即只要按F3即可進入該項,而不需要先進入File菜單再選此項。Pick,將最近裝入編輯窗口的8個文件列成一個表讓用戶選擇,選擇后將該程序裝入編輯區(qū),并將光標置在上次修改過的地方。其熱健為Alt-F3oNew:新建文件,缺省文件名為NONAME.C,存盤時可改名。Save:將編輯區(qū)中的文件存盤,若文件名是NONAME.C時,將詢問是否更改文件名,其熱鍵為F2。Writeto:可由用戶給出文件名將編輯區(qū)中的文件存盤,若該文件已存在,則詢問要不要覆蓋。Directory:顯示目錄及目錄中的文件,并可由用戶選擇。Changedir:顯示當前默認目錄,用戶可以改變默認目錄。Osshell:暫時退出TurboC2.0到DOS提示符下,此時可以運行DOS命令,若想回到TurboC2.0中,只要在DOS狀態(tài)下鍵入EXIT即可。Quit:退出TurboC2.0,返回到DOS操作系統(tǒng)中,其熱鍵為Alt+X。說明:以上各項可用光標鍵移動色棒進行選擇,回車則執(zhí)行。也可用每ー項的第一個大寫字母直接選擇。若要退到主菜單或從它的下一級菜單列表框退回均可用Esc鍵,TurboC2.0所有菜單均采用這種方法進行操作,以下不再說明。2.13.4Edit菜單按Alt+E可進入編輯菜單,若再回車,則光標出現(xiàn)在編輯窗口,此時用戶可以進行文本編輯。編輯方法基本與wordstar相同,可用F1鍵獲得有關(guān)編輯方法的幫助信息。.與編輯有關(guān)的功能鍵如下:F1獲得TurboC2.0編輯命令的幫助信息;F5 擴大編輯窗口到整個屏幕;F6 在編輯窗口與信息窗口之間進行切換;F10 從編輯窗口轉(zhuǎn)到主菜單。.編輯命令簡介:PageUp向前翻頁PageDn向后翻頁Home 將光標移到所在行的開始End 將光標移到所在行的結(jié)尾Ctrl+Y刪除光標所在的一行Ctrl+T刪除光標所在處的一個詞Ctrl+KB設(shè)置塊開始Ctrl+KK設(shè)置塊結(jié)尾Ctrl+KV塊移動Ctrl+KC塊拷貝Ctrl+KY塊刪除Ctrl+KR讀文件Ctrl+KW存文件Ctrl+KP塊文件打印Ctrl+F!如果光標所在處為TurboC2.0庫函數(shù),則獲得有關(guān)該函數(shù)的幫助信息Ctrl+Ql查找TurboC20雙界符的后匹配符Ctrl+Q!查找TurboC2.0雙界符的前匹配符說明:TurboC2.0的雙界符包括以下幾種符號:a)花括符{和}b)尖括符〈和〉c)圓括符(和)d)方括符[和]e)注釋符/?和?/f)雙引號"g)單引號’TurboC2.0在編輯文件時還有一種功能,就是能夠自動縮進,即光標定位和上一個非空字符對齊。在編輯窗口中,Ctrl+OL為自動縮進開關(guān)的控制鍵。2.13.5Run菜單按Alt+R可進入Run菜單,該菜單有以下各項,如圖所示:Run:運行由Project/Projectname項指定的文件名或當前編輯區(qū)的文件。如果對上次編譯后的源代碼未做過修改,則直接運行到下ー個斷點(沒有斷點則運行到結(jié)束)。否則先進行編譯、連接后オ運行,其熱鍵為Ctrl+F9。Programreset:中止當前的調(diào)試,釋放分給程序的空間,其熱鍵為Ctrl+F2。Gotocursor::調(diào)試程序時使用,選擇該項可使程序運行到光標所在行。光標所在行必須為一條可執(zhí)行語句,否則提示錯誤。其熱鍵為F4。Traceinto:在執(zhí)行一條調(diào)用其它用戶定義的子函數(shù)時,若用Traceinto項,則執(zhí)行長條將跟蹤到該子函數(shù)內(nèi)部去執(zhí)行,其熱鍵為F?。Stepover:執(zhí)行當前函數(shù)的下ー?條語句,即使用戶函數(shù)調(diào)用,執(zhí)行長條也不會跟蹤進函數(shù)內(nèi)部,其熱鍵為F8。Userscreen:顯示程序運行時在屏幕上顯示的結(jié)果。其熱鍵為Alt+F5。2.13.6Compile菜單按Alt+C可進入Compile菜單,該菜單有以下幾個內(nèi)容,如圖所示:CompiletoOBJ:將一個C源文件編譯生成.OBJ目標文件,同時顯示生成的文件名。其熱鍵為Alt+F9?MakeEXEfile:此命令生成一個.EXE的文件,并顯示生成的.EXE文件名。其中.EXE文件名是下面幾項之ー:4)由Project/Projectname說明的項目文件名。5)若沒有項目文件名,則由PrimaryCfile說明的源文件。6)若以上兩項都沒有文件名,則為當前窗口的文件名。LinkEXEfile:把當前.OBJ文件及庫文件連接在ー起生成.EXE文件。Buildall:重新編譯項目里的所有文件,并進行裝配生成.EXE文件。該命令不作過時檢查(上面的幾條命令要作過時檢査,即如果目前項目里源文件的11期和時間與目標文件相同或更早,則拒絕對源文件進行編譯)。PrimaryCfile:當在該項中指定了主文件后,在以后的編譯中,如沒有項目文件名則編譯此項中規(guī)定的主C文件,如果編譯中有錯誤,則將此文件調(diào)入編輯窗口,不管目前窗口中是不是主C文件。Getinfo!獲得有關(guān)當前路徑、源文件名、源文件字節(jié)大小、編譯中的錯誤數(shù)目、可用空間等信息,如圖:
2.13.7Project菜單按Alt+P可進入Project菜單,該菜單包括以下內(nèi)容,如圖所示:Projectname:項目名具有.PRJ的擴展名,其中包括將要編譯、連接的文件名。例如有一個程序由filel.c,file2.c,file3.c組成,要將這3個文件編譯裝配成一個file.exe的執(zhí)行文件,可以先建立一個file.prj的項目文件,其內(nèi)容如下:filel.cfile2.cfile3.c此時將file.pij放入Projectname項中,以后進行編譯時將自動對項目文件中規(guī)定的三個源文件分別進行編譯。然后連接成file.exe文件。如果其中有些文件」經(jīng)編譯成.OBJ文件,而又沒有修改過,可直接寫上.OBJ擴展名。此時將不再編譯而只進行連接。例如:filel.objfile2.cfile3.c將不對filel.c進行編譯,而直接連接。說明:當項目文件中的每個文件無擴展名時,均按源文件對待,另外,其中的文件也可以是庫文件,但必須寫上擴展名.LIB。Breakmakeon:由用戶選擇是否在有Warining、Errors>FatalErrors時或Link之前退出Make編譯。Autodependencies:當開關(guān)置為on,編譯時將檢査源文件與對應(yīng)的.OBJ文件日期和時間,否則不進行檢查。Clearproject:清除Project/Projectname中的項目文件名。Removemessages:把錯誤信息從信息窗口中清除掉。2.13.8Options菜單按Alt+O可進入Options菜單,該菜單對初學者來說要謹慎使用,該菜單有以下幾個內(nèi)容,如圖所示:8.Compiler:本項選擇又有許多子菜單,可以讓用戶選擇硬件配置、存儲模型、調(diào)試技術(shù)、代碼優(yōu)化、對話信息控制和宏定義。這些子菜単如圖所示:Model:共有Tiny,small,medium,compact,large,huge六種不同模式可由同戶選擇。Define:打開一個宏定義框,同戶可輸入宏定義。多重定義可同分號,賦值可用等號。Codegeneration:它又有許多任選項,這些任選項告訴編譯器產(chǎn)生什么樣的目標代碼。令Callingconvention可選擇C或Pascal方式傳遞參數(shù)。Instructionset可選擇8088/8086或80186/80286指令系列。Floatingpoint 可選擇仿真浮點、數(shù)學協(xié)處理器浮點或無浮點運算。Defaultchartype規(guī)定char的類型。令A(yù)lignonent規(guī)定地址對準原則。令Mergeduplicatestrings作優(yōu)化用,將堂復的字符串合并在ー起。令Standardstackframe產(chǎn)生一個標準的棧結(jié)構(gòu)。Teststackoverflow產(chǎn)生一段程序運行時檢測堆棧溢出的代碼。令Linenumber 在.OBJ文件中放進行號以供調(diào)試時用。。OBJdebuginformation在?OBJ文件中產(chǎn)生調(diào)試信息。Optimization:它又有許多任選項。?Optimizefor選擇是對程序小型化還是對程序速度進行優(yōu)化處理。令Useregistervariable用來選擇是否允許使用寄存器變量。今Registeroptimization盡可能使用寄存器變量以減少過多的取數(shù)操作。令Jumpoptimization通過去除多余的跳轉(zhuǎn)和調(diào)整循環(huán)與開關(guān)語句的辦法,壓縮代碼。Source:它又有許多任選項。identifierlength說明標識符有效字符的個數(shù),默認為32個。Nestedcomments是否允許嵌套注釋。ANSIkeywordsonly是只允許ANSI關(guān)鍵字還是也允許TurboC2.0關(guān)鍵字。Error?Errorstopafter多少個錯誤時停止編譯,默認為25個。令Warningstopafter多少個警告錯誤時停止編譯,默認為!00個。令Displaywarning令Portabilitywarning移植性警告錯誤。令A(yù)NSIViolations侵犯了ANS!關(guān)鍵字的警告錯誤。QCommonerror常見的警告錯誤。令しesscommonerror少見的警告錯誤。Names:用于改變段(segment)、組(group)和類(class)的名字,默認值為CODE,DATA,BSSo9.Linker;本菜單設(shè)置有關(guān)連接的選擇項,它有以下內(nèi)容,如圖所示:Mapfilemenu選擇是否產(chǎn)生.MAP文件。Initializesegments是否在連接時初始化沒有初始化的段。Devaultlibraries是否在連接其它編譯程序產(chǎn)生的目標文件時去尋找其缺省庫。Graphicslibrary是否連接graphics庫中的函數(shù)。Warnduplicatesymbols當有重復符號時產(chǎn)生警告信息。Stackwarinig是否讓連接程序產(chǎn)生Nostack的警告信息。Case-sensitivelink是否區(qū)分大、小寫字。Environment:菜單規(guī)定是否對某些文件自動存盤及制表鍵和屏幕大小的設(shè)置,它有以下內(nèi)容,如圖所示:
Messagetracking:令Currentfile跟蹤在編輯窗口中的文件錯誤。令A(yù)llfiles跟蹤所有文件錯誤。令Off不跟蹤。Keepmessage:編譯前是否清除Message窗口中的信息。Configautosave:選on時,在Run,Shell或退出集成開發(fā)環(huán)境之前,如果TurboC2.0的配置被改過,則所做的改動將存入配置文件中。選off時不存。Editautosave:是否在Run或Shell之前,自動存儲編輯的源文件。Backupfile:是否在源文件存盤時產(chǎn)生后備文件(.BAK文件)。Tabsize:設(shè)置制表鍵大小,默認為8。Zoomedwindows:將現(xiàn)行活動窗口放大至リ整個屏幕,其熱鍵為F5。Screensize設(shè)置屏幕文本大小。Directories:規(guī)定編譯、連接所需文件的路徑,有下列各項,如圖所示:
Includedirectories:包含文件的路徑,多個子目錄用";"分開。Librarydir
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 技術(shù)服務(wù)保密合同
- 合同范本之購房合同填寫范本模板
- 2025年度中國平煤神馬控股集團高校畢業(yè)生招聘808人筆試參考題庫附帶答案詳解
- 2025山西紅杰人才集團有限公司招聘10人筆試參考題庫附帶答案詳解
- 2024-2025學年北京通州區(qū)高三(上)期末歷史試卷(含答案)
- 2025年上半年宜春市廣播電視臺招考電視新聞主播易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽蕪湖市數(shù)據(jù)資源管理局(政務(wù)服務(wù)管理局)招聘6人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽省淮南市政府購買崗招聘92人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽省寧國市林業(yè)事業(yè)發(fā)展中心公開招聘工作人員1人易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽省農(nóng)科院引進博士研究生擬聘用人員(第二批)易考易錯模擬試題(共500題)試卷后附參考答案
- 電梯采購合同范本
- 2025年官方二手房交易協(xié)議
- 2025年山東泰山財產(chǎn)保險股份有限公司招聘筆試參考題庫含答案解析
- 2025年度珠寶店珠寶首飾設(shè)計研發(fā)合作協(xié)議
- 非遺數(shù)字化保護的可行性研究
- 農(nóng)村自建房施工合同范本(包工包料)
- 2025年復工復產(chǎn)安全開工第一課專題培訓
- 【道法】做自信的人課件 2024-2025學年統(tǒng)編版道德與法治七年級下冊
- 軍兵種基礎(chǔ)知識
- 公交車預(yù)防春困
- 法務(wù)助理實習報告
評論
0/150
提交評論