版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章C語(yǔ)言入門(mén)PAGE17C語(yǔ)言簡(jiǎn)明教程PAGE14第1章C語(yǔ)言入門(mén)【本章要點(diǎn)】簡(jiǎn)單了解C語(yǔ)言的歷史與發(fā)展;掌握C語(yǔ)言程序的主要組成部分;掌握C語(yǔ)言程序的運(yùn)行過(guò)程與運(yùn)行環(huán)境(TC2.0、VC++6.0);了解C++和C#。1.1C語(yǔ)言的歷史與發(fā)展C語(yǔ)言具有功能強(qiáng)大、語(yǔ)句精少、程序簡(jiǎn)練、靈活方便、效率高、移植性好等特點(diǎn),因此使用非常廣泛,不僅在計(jì)算機(jī)軟件專業(yè)人員中被廣泛使用,而且受到廣大計(jì)算機(jī)應(yīng)用人員的青睞。與計(jì)算機(jī)語(yǔ)言有關(guān)的各類(lèi)考試中,也都將C語(yǔ)言作為考試科目之一。由此可見(jiàn),C語(yǔ)言是初學(xué)者學(xué)習(xí)計(jì)算機(jī)語(yǔ)言的首選語(yǔ)種。C語(yǔ)言是由B語(yǔ)言演變而來(lái)的,其命名源于BCPL語(yǔ)言的第二個(gè)字母。1972年,在PDP-11計(jì)算機(jī)上實(shí)現(xiàn)了最初的C語(yǔ)言,它的操作系統(tǒng)平臺(tái)是UNIX。1977年,出現(xiàn)了首個(gè)不依賴于具體機(jī)器的C語(yǔ)言編譯文本。1978年后,C語(yǔ)言得到了廣泛的移植和應(yīng)用。C語(yǔ)言的發(fā)展速度非???,其發(fā)展是以版本為標(biāo)志的。1983年,ANSI公布了ANSIC。1987年,ANSI又公布了新標(biāo)準(zhǔn)——87ANSIC。1990年,ISO將87ANSIC作為自己的標(biāo)準(zhǔn)(ISO9899—1990)。1994年,ISO修訂了C語(yǔ)言標(biāo)準(zhǔn)。發(fā)展至今,C語(yǔ)言已經(jīng)有了40年的歷史,在高級(jí)語(yǔ)言中占據(jù)著重要的地位。C語(yǔ)言有很多版本,如MC(MicroSoftC)、QC(QuickC)、TC(TurboC)、TC++(BorlandC++)、VC(VisualC)、VC++、C#等,目前被廣泛使用的有TC、TC++、VC++和C#。本書(shū)介紹的是傳統(tǒng)的C語(yǔ)言,但由于書(shū)中的程序都是在VC++6.0的環(huán)境中調(diào)試運(yùn)行的,因此書(shū)中實(shí)例的主函數(shù)前面都帶有void標(biāo)記。1.2C語(yǔ)言的簡(jiǎn)單程序下面通過(guò)幾個(gè)簡(jiǎn)單的例子,使讀者對(duì)C語(yǔ)言有一個(gè)初步的認(rèn)識(shí)。例1.1在屏幕上顯示本書(shū)的書(shū)名。程序代碼1 /*例1.1顯示本書(shū)的漢字書(shū)名*/2 #include<stdio.h>3 voidmain()4 {5 printf("C語(yǔ)言簡(jiǎn)明教程\n");6 }運(yùn)行結(jié)果C語(yǔ)言簡(jiǎn)明教程上述程序雖然簡(jiǎn)單,卻包含了C程序的幾個(gè)基本要素:注釋語(yǔ)句、預(yù)處理語(yǔ)句、主函數(shù)開(kāi)頭、函數(shù)體的開(kāi)始、函數(shù)體以及函數(shù)體的結(jié)束。下面對(duì)其進(jìn)行簡(jiǎn)單說(shuō)明。第1行:注釋語(yǔ)句。該注釋語(yǔ)句用于對(duì)程序進(jìn)行注解,以“/*”開(kāi)頭,以“*/”結(jié)束,兩者之間的內(nèi)容均為注釋的內(nèi)容。需要注意的是,TC環(huán)境下只能使用“/*”和“*/”進(jìn)行注釋,VC環(huán)境下除可以使用“/*”和“*/”進(jìn)行注釋外,還可以使用“//”進(jìn)行注釋。二者的區(qū)別在于:“//”只能注釋一行內(nèi)容;“/*”和“*/”除可以注釋一行內(nèi)容外,還可以注釋一段內(nèi)容。注釋語(yǔ)句會(huì)呈綠色顯示(在VC++6.0環(huán)境中,后同),程序不執(zhí)行注釋內(nèi)容,是“給人看的”。注釋語(yǔ)句在程序中可用12個(gè)字來(lái)概括,即“可有可無(wú),可多可少,位置不限”。第2行:預(yù)處理語(yǔ)句。表示在編譯程序之前,先執(zhí)行以“#”開(kāi)頭的代碼行,以便于其他代碼段能順利被執(zhí)行。這一點(diǎn)類(lèi)似于開(kāi)重要會(huì)議前的預(yù)備會(huì)議。在這里,include的意思是包含,它表示將其后面的文件包含進(jìn)來(lái);<stdio.h>是一個(gè)用尖括號(hào)括起來(lái)的文件名,其中,std是標(biāo)準(zhǔn)的英文縮寫(xiě),io是輸入、輸出兩個(gè)英語(yǔ)單詞的首字母,連在一起,就表示標(biāo)準(zhǔn)的輸入輸出,也就是鍵盤(pán)和顯示器,意思是從鍵盤(pán)輸入,由顯示器輸出。程序中應(yīng)根據(jù)需要選取預(yù)處理語(yǔ)句,其位置一般在程序的開(kāi)始處。第3行:主函數(shù)開(kāi)頭。其中,void表示空類(lèi)型,說(shuō)明主函數(shù)沒(méi)有數(shù)據(jù)類(lèi)型;main的意思為主、主要,即該函數(shù)為主函數(shù);一對(duì)圓括號(hào)用來(lái)括起函數(shù)的參數(shù),這里括號(hào)中為空,表示沒(méi)有參數(shù)。一個(gè)程序可以包括多個(gè)函數(shù),但只能有且必須有一個(gè)主函數(shù)。主函數(shù)之外的函數(shù)稱為其他函數(shù),其特點(diǎn)是“可有可無(wú),可多可少”。當(dāng)有多個(gè)函數(shù)時(shí),它們之間的位置關(guān)系不受限制,但程序總是從主函數(shù)處開(kāi)始執(zhí)行(無(wú)論主函數(shù)位于何處)。第4行:函數(shù)體的開(kāi)始。左花括號(hào)在程序中一般用作函數(shù)體和復(fù)合語(yǔ)句的開(kāi)始。它必須與右花括號(hào)成對(duì)使用,不能單獨(dú)出現(xiàn)。第5行:函數(shù)體。函數(shù)要完成的具體工作,需要在函數(shù)體中給出,它是語(yǔ)句的集合。本例中,函數(shù)體內(nèi)僅有一個(gè)標(biāo)準(zhǔn)輸出庫(kù)函數(shù)語(yǔ)句,其作用是在屏幕上顯示“C語(yǔ)言簡(jiǎn)明教程”幾個(gè)漢字。在這里,print是打?。达@示)的意思,f是函數(shù)(function)英語(yǔ)單詞的首字母,合在一起就表示打印輸出函數(shù)。圓括號(hào)內(nèi)是該打印函數(shù)的參數(shù),這里是用一對(duì)雙引號(hào)括起來(lái)的內(nèi)容,其中,漢字是直接打印輸出的內(nèi)容,“\n”是控制符號(hào),意思是換行。函數(shù)最后的分號(hào)是語(yǔ)句結(jié)束符號(hào)(C語(yǔ)言的語(yǔ)句用分號(hào)作為結(jié)束標(biāo)志)。第6行:函數(shù)體的結(jié)束。右花括號(hào)在程序中一般用作函數(shù)體和復(fù)合語(yǔ)句的結(jié)束。在這里,右花括號(hào)也是程序的結(jié)束。讀者可能已經(jīng)發(fā)現(xiàn),程序中所用到的字母幾乎全為小寫(xiě),這是由C語(yǔ)言系統(tǒng)規(guī)定的。另外,函數(shù)體中的語(yǔ)句在書(shū)寫(xiě)上分層次向右縮進(jìn),這是程序編寫(xiě)約定俗成的一個(gè)習(xí)慣,其目的是讓程序?qū)哟吻逦?,結(jié)構(gòu)明確。讀者應(yīng)遵守系統(tǒng)規(guī)定,養(yǎng)成良好的編程習(xí)慣。例1.2由鍵盤(pán)輸入矩形的長(zhǎng)和寬,求矩形的面積。程序代碼1 /*例1.2求矩形面積*/2 #include<stdio.h>3 voidmain()4 {5 floatl,w,s;6 printf("l=?,w=?\n");7 scanf("%f,%f",&l,&w);8 s=l*w;9 printf("s=%f\n",s);10 }運(yùn)行結(jié)果l=?,w=?5,10<回車(chē)>s=50.000000例1.2與例1.1相比,多出了定義變量、輸入數(shù)據(jù)、計(jì)算、輸出結(jié)果等內(nèi)容,使得程序能實(shí)現(xiàn)簡(jiǎn)單的運(yùn)算功能。第5行,定義變量。由于本程序是計(jì)算任意一個(gè)矩形的面積,其長(zhǎng)、寬都是不固定的,面積也是不固定的,所以用變量來(lái)代表3個(gè)參數(shù)。float的意思是浮點(diǎn),即表示實(shí)數(shù)(可能有小數(shù));l、w、s3個(gè)變量分別代表矩形的長(zhǎng)、寬及面積,其取名來(lái)自英語(yǔ)單詞的首字母和數(shù)學(xué)習(xí)慣。該變量定義語(yǔ)句必須寫(xiě)在函數(shù)體的開(kāi)頭,且只能寫(xiě)一次。這是因?yàn)?,C語(yǔ)言規(guī)定,變量必須先定義后使用,且不允許多次定義(但可以多次使用)。第6行:提示行。用來(lái)提示用戶接下來(lái)要輸入什么內(nèi)容。第7行:第8行:計(jì)算。這是一條計(jì)算矩形面積的語(yǔ)句(賦值語(yǔ)句),類(lèi)似于數(shù)學(xué)公式“s=l×w”,只不過(guò)用星號(hào)代替了乘號(hào)。第9行:輸出結(jié)果。通過(guò)printf函數(shù)輸出矩形的面積。這里的輸出函數(shù)與第6行有所不同,它的參數(shù)也有兩組:第一組是雙引號(hào)中的內(nèi)容,包括提示內(nèi)容“s=”、換行符“\n”和格式符“%f”;第二組就是輸出的對(duì)象s。例1.2比例1.1多了4條語(yǔ)句,這些語(yǔ)句在次序上必須如此,不能交換。其作用是告訴計(jì)算機(jī)先干什么,后干什么,使其嚴(yán)格按順序逐條執(zhí)行各語(yǔ)句。這充分體現(xiàn)了程序設(shè)計(jì)的宗旨——語(yǔ)句執(zhí)行的過(guò)程及順序(關(guān)鍵是順序)。例1.3調(diào)用函數(shù),計(jì)算3個(gè)整數(shù)的平均數(shù)。程序代碼1 /*例1.3求3個(gè)整數(shù)的平均數(shù)*/2 #include<stdio.h>3 /*下面的average函數(shù)用于求3個(gè)數(shù)的平均數(shù)*/4 floataverage(inta,intb,intc)5 {6 floatav;7 av=(a+b+c)/3.0;8 return(av);9 }1011 voidmain()12 {13 intx,y,z;14 floatave;15 printf("inputthreeintegersx,y,z:\n");16 scanf("%d,%d,%d",&x,&y,&z);17 ave=average(x,y,z);18 printf("ave=%f\n",ave);19 }運(yùn)行結(jié)果inputthreeintegersx,y,z:3,5,9<回車(chē)>ave=5.666667與前面兩個(gè)例子相比,例1.3又有所不同。(1)程序中包括兩個(gè)函數(shù)(庫(kù)函數(shù)除外):主函數(shù)(main)和其他函數(shù)(average)。其中,average函數(shù)為用戶自定義函數(shù),且average函數(shù)在前,main函數(shù)在后,符合其他函數(shù)“先定義,后使用”的習(xí)慣。(2)(3)數(shù)據(jù)類(lèi)型有兩種:實(shí)型(float)和整型(int)。第4~9行為average函數(shù)。下面就有關(guān)語(yǔ)句作如下說(shuō)明。第4行:定義了一個(gè)average函數(shù),其作用是計(jì)算3個(gè)數(shù)的平均數(shù)。該函數(shù)的首部由3部分組成:函數(shù)類(lèi)型(float)、函數(shù)名(average)及函數(shù)的參數(shù)(inta,intb,intc)。第6行:定義了一個(gè)用于存放平均數(shù)的變量av。因?yàn)?個(gè)數(shù)相加再除以3之后求得的平均值一般會(huì)有小數(shù),所以變量av是實(shí)型。第7行:計(jì)算平均數(shù)的語(yǔ)句。請(qǐng)注意,這里一定要用3.0,否則結(jié)果將會(huì)是整數(shù)。第8行:返回結(jié)果。return的意思是返回,av則是要返回的變量。該語(yǔ)句將變量av的值返回到主函數(shù)。第11~19行為main函數(shù)。第13行:主函數(shù)中定義了3個(gè)變量(x,y,z),與average函數(shù)中的3個(gè)參數(shù)(a,b,c)一一對(duì)應(yīng)。第14行:主函數(shù)中定義了一個(gè)用于存放結(jié)果的變量ave,與average函數(shù)中的變量av相對(duì)應(yīng)。第16行:輸入數(shù)據(jù)函數(shù)。這里用到了“%d”格式符,表示輸入的是3個(gè)十進(jìn)制整數(shù)。第17行:調(diào)用average函數(shù),將返回的結(jié)果存放在變量ave中。第18行:輸出結(jié)果函數(shù)。以上3個(gè)例子各有特點(diǎn),基本上代表了C語(yǔ)言的簡(jiǎn)單程序類(lèi)型。通過(guò)它們,讀者可對(duì)C程序有一個(gè)初步的了解。1.3C語(yǔ)言程序的主要組成部分前面學(xué)習(xí)了程序的基本結(jié)構(gòu),下面來(lái)全面介紹C語(yǔ)言程序的主要組成部分。1.3.1總體結(jié)構(gòu)一個(gè)C語(yǔ)言程序,從總體上看,是函數(shù)的序列。它由各種函數(shù)組成,包括主函數(shù)、其他函數(shù)(即用戶自定義的函數(shù))、系統(tǒng)提供的庫(kù)函數(shù)等。此外,還有注釋、預(yù)處理以及后面要學(xué)到的函數(shù)原型說(shuō)明、全局變量說(shuō)明等。它們的次序?yàn)椋鹤⑨?、預(yù)處理、函數(shù)的原型說(shuō)明、全局變量說(shuō)明和函數(shù)序列。前4類(lèi)的排列次序可調(diào)換,但函數(shù)序列必須在它們之后。注意,預(yù)處理結(jié)束時(shí)沒(méi)有分號(hào),函數(shù)原型說(shuō)明及全局變量說(shuō)明結(jié)束時(shí)必須有分號(hào);另外,函數(shù)必須以花括號(hào)結(jié)束。1.3.2構(gòu)成元素。程序中,各部分內(nèi)容以字母為主,字母以小寫(xiě)為主;還可以出現(xiàn)數(shù)字、符號(hào)、漢字等。1.3.3書(shū)寫(xiě)規(guī)定編寫(xiě)C語(yǔ)言程序時(shí),應(yīng)遵循以下書(shū)寫(xiě)規(guī)定。(1)一條語(yǔ)句可以寫(xiě)在一行,也可以寫(xiě)在多行,但必須以分號(hào)作為結(jié)束(復(fù)合語(yǔ)句除外)。(2)一行可以寫(xiě)一條語(yǔ)句,也可以寫(xiě)多條語(yǔ)句,最好寫(xiě)一條語(yǔ)句。(3)對(duì)于有結(jié)構(gòu)的語(yǔ)句,最好采用縮進(jìn)形式,這樣層次更清晰,結(jié)構(gòu)更明顯。
1.4C語(yǔ)言程序的運(yùn)行過(guò)程與運(yùn)行環(huán)境C語(yǔ)言程序在不同版本下的實(shí)現(xiàn)是不一樣的,下面分別進(jìn)行介紹。1.4.1C語(yǔ)言程序的運(yùn)行過(guò)程下面以流程圖的形式給出C語(yǔ)言程序的運(yùn)行過(guò)程,如圖1-1所示。圖1-1C語(yǔ)言程序運(yùn)行過(guò)程流程圖一個(gè)正確的C語(yǔ)言程序,其運(yùn)行過(guò)程如下:源程序編寫(xiě)完畢并存盤(pán)后,生成一個(gè)*.c或*.cpp文件(TC環(huán)境中是*.c,VC++環(huán)境中是*.cpp);在系統(tǒng)編譯正確的情況下(即第4步為N),形成*.obj文件;同樣,在連接正確的情況下(即第6步為N),形成*.exe文件;最后,執(zhí)行該*.exe文件即可。圖1-1中,步驟1、4′、6′部分需要手動(dòng)進(jìn)行,其余部分則可由系統(tǒng)自動(dòng)完成。另外,運(yùn)行程序時(shí),在VC++環(huán)境中還會(huì)自動(dòng)生成許多臨時(shí)性文件,讀者可以不去理會(huì)它們。
1.4.2VC++6.0環(huán)境目前,大多數(shù)用戶使用的都是PC機(jī),在Windows操作系統(tǒng)下安裝的C語(yǔ)言版本為VisualC++6.0(簡(jiǎn)稱VC++6.0)。一個(gè)C語(yǔ)言程序在VisualC++6.0環(huán)境中的形成與執(zhí)行過(guò)程如下:?jiǎn)?dòng)VisualC++6.0→進(jìn)入VisualC++6.0界面→編輯源程序→存盤(pán)→編譯程序→連接程序→執(zhí)行程序→查看程序運(yùn)行結(jié)果。下面,來(lái)詳細(xì)介紹一下VC++6.0環(huán)境中C語(yǔ)言程序的運(yùn)行過(guò)程。1.啟動(dòng)VC++6.0啟動(dòng)VC++6.0有兩種方法:通過(guò)菜單命令啟動(dòng)或通過(guò)快捷圖標(biāo)啟動(dòng)。選擇“開(kāi)始”→“所有程序”→MicrosoftVisualC++6.0→MicrosoftVisualC++6.0命令(見(jiàn)圖1-2),或雙擊桌面上的MicrosoftVisualC++6.0圖標(biāo)(見(jiàn)圖1-3),即可打開(kāi)MicrosoftVisualC++,其工作界面如圖1-4所示。圖1-2菜單命令啟動(dòng)圖1-3快捷圖標(biāo)啟動(dòng)圖1-4MicrosoftVisualVC++環(huán)境窗口MicrosoftVisualC++窗口中包括標(biāo)題欄、菜單欄、工具欄、工程區(qū)、編輯區(qū)、顯示區(qū)、狀態(tài)行等區(qū)域。標(biāo)題欄:顯示文件名等信息。工具欄:顯示常用的工具按鈕。工程區(qū):顯示有關(guān)工程等信息。編輯區(qū):在此輸入程序和編輯、修改程序。顯示區(qū):主要顯示出錯(cuò)信息等。狀態(tài)行:顯示當(dāng)前工作狀態(tài)。2.編輯源程序在VC++環(huán)境中編寫(xiě)源程序的方法有兩種。(1)先建法即先建此類(lèi)型的文件,然后再輸入程序代碼。在VC++6.0窗口中,選擇“文件”→“新建”命令,打開(kāi)“新建”對(duì)話框,如圖1-5所示。選擇“文件”選項(xiàng)卡,再在左側(cè)列表中選擇C++SourceFile選項(xiàng),并在“文件名”文本框中輸入要保存的文件名(擴(kuò)展名為.cpp),在“位置”文本框中輸入或選擇文件保存的路徑(如果不選,系統(tǒng)會(huì)用默認(rèn)的路徑),最后單擊“確定”按鈕即可創(chuàng)建一個(gè)空白的C++源程序。圖1-5“新建”對(duì)話框接下來(lái)將程序的代碼輸入即可。注意,中間要定時(shí)存盤(pán),最后退出之前一定要存盤(pán)。(2)后存法其操作步驟如下:?jiǎn)螕艄ぞ邫谥械摹靶陆ā卑粹o,直接進(jìn)入輸入源程序界面。輸入程序代碼,然后選擇“文件”→“另存為”命令,打開(kāi)“保存為”對(duì)話框,如圖1-6所示。在“文件名”文本框中輸入文件名(一定要給出擴(kuò)展名),然后單擊“保存”按鈕即可。圖1-6“保存為”對(duì)話框3.編譯源程序編譯源程序就是針對(duì)源程序進(jìn)行語(yǔ)法檢查。若沒(méi)有任何語(yǔ)法錯(cuò)誤和警告錯(cuò)誤,則系統(tǒng)會(huì)在顯示區(qū)給出編譯成功的提示信息,如圖1-7所示,并自動(dòng)形成一個(gè)擴(kuò)展名為.obj的目標(biāo)文件。若程序中仍存在錯(cuò)誤,則會(huì)在顯示區(qū)給出編譯不成功的提示信息,如圖1-8所示。此時(shí),只需再回到編輯狀態(tài)進(jìn)行改錯(cuò)即可。改錯(cuò)一般只改語(yǔ)法錯(cuò)誤,可以暫時(shí)不管警告錯(cuò)誤。編譯查出的錯(cuò)誤會(huì)顯示在信息顯示區(qū),是英語(yǔ)句子,讀者要仔細(xì)閱讀(在提示信息的最前面有錯(cuò)誤所在的行號(hào),照此去改錯(cuò)也是比較容易的)。大多數(shù)情況下,編譯部分總會(huì)出現(xiàn)一些錯(cuò)誤,只不過(guò)是數(shù)量的多少而已。圖1-7編譯成功的標(biāo)志圖1-8編譯不成功(有一個(gè)語(yǔ)法錯(cuò)誤)的標(biāo)志實(shí)現(xiàn)編譯的方法有3種:一是單擊工具欄中的“編譯”按鈕;二是選擇“組建”→“編譯”命令;三是按功能鍵Ctrl+F7。4.連接連接就是將語(yǔ)法無(wú)誤的程序塊組合起來(lái),形成一個(gè)完整的程序。這部分產(chǎn)生的錯(cuò)誤通常較少,如果有錯(cuò),其提示形式類(lèi)似于編譯部分。連接也叫做生成(Build),連接無(wú)誤后會(huì)生成一個(gè).exe執(zhí)行文件。→“連接”菜單命令;三是使用功能鍵F7。5.執(zhí)行執(zhí)行就是運(yùn)行連接后生成的可執(zhí)行文件。執(zhí)行的方法同樣有3種:一是單擊工具欄中的執(zhí)行按鈕;二是選擇“組建”→“執(zhí)行”菜單命令;三是按功能鍵Ctrl+F5。6.查看程序運(yùn)行結(jié)果程序執(zhí)行后,會(huì)出現(xiàn)一個(gè)對(duì)話框。此時(shí),如果程序不要求輸入數(shù)據(jù),會(huì)直接顯示出運(yùn)行的結(jié)果(見(jiàn)圖1-9);如果要求輸入數(shù)據(jù),待數(shù)據(jù)輸入完后,會(huì)將結(jié)果顯示出來(lái)(見(jiàn)圖1-10)。該過(guò)程中應(yīng)仔細(xì)觀察程序運(yùn)行得出的結(jié)果是否正確,若正確,整個(gè)過(guò)程結(jié)束;否則,應(yīng)回到編輯部分,重新修改程序,直到最終運(yùn)行結(jié)果正確為止。圖1-9執(zhí)行后不需要輸入數(shù)據(jù)的結(jié)果圖1-10執(zhí)行后需要輸入數(shù)據(jù)的結(jié)果1.4.3TC2.0環(huán)境TC(TurboC,加速C)是C的一個(gè)較好的版本,使用的人數(shù)很多,使用的時(shí)間也很長(zhǎng),至今仍有不少的用戶在使用它。TC最早是在DOS環(huán)境下運(yùn)行的,現(xiàn)在的Windows環(huán)境也能使用。下面來(lái)簡(jiǎn)單介紹一下其使用方法。該系統(tǒng)非常小,僅占用約2.3MB空間。其下層有兩個(gè)子文件夾:INCLUDE(包含)和LIB(庫(kù))。若在Windows環(huán)境中使用,會(huì)再生成一個(gè)文件夾Debug(調(diào)試)。系統(tǒng)的文件有幾十個(gè)。1.啟動(dòng)TC2.0選擇“開(kāi)始”→“所有程序”→TC2.0命令,或雙擊桌面上的TC2.0圖標(biāo),即可打開(kāi)TC2.0的窗口,如圖1-11所示。該窗口是一個(gè)DOS工作方式的界面,不能以圖形方式工作(即不能用鼠標(biāo)進(jìn)行操作)。標(biāo)題欄:顯示文件名等信息。狀態(tài)行:主要顯示光標(biāo)所在的行(Line)、列(Col)、插入(Insert)、縮進(jìn)形式(Indent)、現(xiàn)在編輯的文件名(含路徑)等信息。工作區(qū):可在此輸入、修改程序,當(dāng)運(yùn)行出現(xiàn)錯(cuò)誤時(shí),還會(huì)分出一塊區(qū)域,用于顯示錯(cuò)誤信息。提示行:功能鍵提示。菜單欄菜單欄提示行狀態(tài)行工作區(qū)標(biāo)題欄圖1-11TC的窗口2.編輯源程序在工作區(qū)中輸入C語(yǔ)言程序,編寫(xiě)完畢并確認(rèn)無(wú)誤后,選擇File→Save命令或File→Writeto命令均可將源程序存盤(pán)。如果該文件已保存過(guò)一次,也可按功能鍵F2快速存盤(pán)。3.編譯、連接、運(yùn)行通過(guò)菜單命令Run或功能鍵Ctrl+F9,可以一步編譯、連接、運(yùn)行編輯好的C程序。4.查看程序運(yùn)行結(jié)果通過(guò)菜單命令Run→Userscreen或功能鍵Alt+F5,可以查看程序的運(yùn)行結(jié)果。1.5C家族的其他主要成員C語(yǔ)言發(fā)展至今,擁有眾多的成員及不同的版本,下面來(lái)介紹一下其主要的成員:C++和C#。1.5.1C++1986年,Borland公司開(kāi)發(fā)了TurboC++,后又推出了BorlandC++。C++是在C語(yǔ)言的基礎(chǔ)上擴(kuò)充而成的,它與C語(yǔ)言最大的區(qū)別是增加了對(duì)面向?qū)ο蟪绦蛟O(shè)計(jì)的支持。下面來(lái)介紹一下C++與C的不同之處。常量:增加了常量定義,用const后帶類(lèi)型名。變量:增加了引用型變量(reference),來(lái)說(shuō)明變量的別名。變量的說(shuō)明可以分散,即可以與執(zhí)行語(yǔ)句的次序無(wú)關(guān)。源程序:文件擴(kuò)展名中增加了.cpp。頭文件:在C中的<stdio.h>基礎(chǔ)上,又增加了<iostream.h>(輸入、輸出流)。注釋:增加了“//”,用于定義語(yǔ)句。主函數(shù):main函數(shù)的前面加上了空類(lèi)型(void)。其他函數(shù):其他函數(shù)在使用之前,加了原型說(shuō)明。函數(shù)定義時(shí),形參可以省略,也可以賦初值。輸入:增加了cin語(yǔ)句,用操作符“>>”輸入,意為“取自”。輸出:增加了cout語(yǔ)句,用操作符“<<”輸出,意為“放到”。輸入、輸出中的操作符:oct表示轉(zhuǎn)換成八進(jìn)制,dec表示轉(zhuǎn)換成十進(jìn)制,hex表示轉(zhuǎn)換成十六進(jìn)制,setw用于設(shè)置輸出的寬度。作用域區(qū)分符:增加了作用域區(qū)分符(::),可以引用外部變量。自由存儲(chǔ)操作符:new和delete,用于提供動(dòng)態(tài)存儲(chǔ)分配和釋放功能。在線函數(shù):用inline來(lái)定義在線函數(shù),提高了程序的運(yùn)行效率。下面通過(guò)幾個(gè)例子來(lái)了解一下C++程序。例1.4在屏幕上顯示本書(shū)的書(shū)名(C++程序)。程序代碼1 /*例1.4顯示本書(shū)的漢字書(shū)名*/2 #include<iostream.h> //包含輸入輸出流3 voidmain()4 {5 cout<<"C語(yǔ)言簡(jiǎn)明教程";6 }運(yùn)行結(jié)果C語(yǔ)言簡(jiǎn)明教程上述程序與C程序不同的地方主要有以下幾點(diǎn)。第2行:包含的頭文件不同,在其后使用了以“//”開(kāi)頭的注釋語(yǔ)句。第3行:主函數(shù)前加了空類(lèi)型(void)。第5行:輸出使用的是cout函數(shù)。例1.5求自由落體的速度(C++的程序)。提示:計(jì)算公式為。程序代碼1 /*例1.5求自由落體的速度v*/2 #include<iostream.h>3 constfloatg=9.8;4 voidmain()5 {6 intt;7 floatv;8 cout<<"t=";9 cin>>t;10 v=g*t*t/2;11 cout<<"v="<<v<<"\n";12 }運(yùn)行結(jié)果t=5<回車(chē)>v=122.5現(xiàn)就例1.5與前面幾個(gè)程序的不同之處做一個(gè)說(shuō)明。第3行:定義常量。第6、7行:定義變量。第8行:提示信息。第9行:輸入語(yǔ)句。第10行:賦值語(yǔ)句,用于計(jì)算自由落體速度。第11行:輸出語(yǔ)句。1.5.2C#C#是由微軟開(kāi)發(fā)的新一代面向?qū)ο蟮某绦蛘Z(yǔ)言,它是從C和C++語(yǔ)言中派生出來(lái)的,因此具有C和C++的功能,又在面向?qū)ο蟪绦蛟O(shè)計(jì)、網(wǎng)頁(yè)制作等方面有著強(qiáng)大的功能。C#是為.NET量身定做的高級(jí)編程語(yǔ)言,最適合開(kāi)發(fā).NET應(yīng)用系統(tǒng)。1.C#的主要特點(diǎn)(1)具有開(kāi)創(chuàng)性C#是唯一沒(méi)有在設(shè)計(jì)思路上加入之前程序開(kāi)發(fā)語(yǔ)言遺傳特點(diǎn)的新語(yǔ)言。(2)功能強(qiáng)大C#具有C和C++的功能,又在面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP)、Web開(kāi)發(fā)等方面具有強(qiáng)大的功能。除了可以使用API,還能使用VS.NET類(lèi)庫(kù)。C#還具有JAVA的許多技術(shù)。2.C#與C、C++的主要區(qū)別(1)默認(rèn)情況下,C#在受控環(huán)境下運(yùn)行,不允許直接操作內(nèi)存,所以它沒(méi)有在C和C++中大量使用的指針。(2)C#具有面向?qū)ο缶幊陶Z(yǔ)言所應(yīng)有的一切特性,如封裝、繼承、多態(tài)等。在它的類(lèi)型系統(tǒng)中,每種類(lèi)型都可以看作為一個(gè)對(duì)象,但只允許單繼承,即一個(gè)類(lèi)不會(huì)有多個(gè)基類(lèi),這樣就避免了類(lèi)型定義的混亂。(3)C#中沒(méi)有全局常量、全局變量和全局函數(shù),它們被封裝在一個(gè)類(lèi)中。因此,用C#編寫(xiě)的代碼具有更好的可讀性,而且很少出現(xiàn)命名沖突的情況。3.C#綜述C#語(yǔ)句的主要特點(diǎn)如下所示。文件:源程序?yàn)?.cs(CSharp的縮寫(xiě)),可執(zhí)行文件為*.exe。內(nèi)容:采用小寫(xiě)字母編寫(xiě)程序語(yǔ)句,以分號(hào)(;)作為語(yǔ)句結(jié)束符。注釋:與C++相同。算術(shù)操作符、賦值操作符、邏輯操作符及各類(lèi)表達(dá)式)。程序的輸入與輸出:調(diào)用System空間下的Console(控制臺(tái))類(lèi)的兩個(gè)方法為ReadLine方法(用于行讀入)和WriteLine方法(用于行寫(xiě)出)。語(yǔ)句:賦值語(yǔ)句(=)、分支語(yǔ)句(if、if…else、switch)、循環(huán)語(yǔ)句(for、for…each、while、do…while)、跳轉(zhuǎn)語(yǔ)句(break、continue)、異常處理語(yǔ)句(try…catch、try…finally、try…catch…finally)。下面通過(guò)例子來(lái)簡(jiǎn)單認(rèn)識(shí)一下C#的程序結(jié)構(gòu)。例1.6在屏幕上顯示“歡迎使用C#語(yǔ)言!”(C#程序)。程序代碼1 usingSystem;2 classHello3 {4 publicstaticvoidMain()5 {6 Console.WriteLine("歡迎使用C#語(yǔ)言!");7 }8 }運(yùn)行結(jié)果歡迎使用C#語(yǔ)言!下面對(duì)程序作簡(jiǎn)單解釋。第1行:導(dǎo)入命名空間System。第2行:定義Hello類(lèi)。第4行:Hello類(lèi)中公共靜態(tài)無(wú)類(lèi)型的方法Main。第6行:方法Main的主體中子類(lèi)Console(是命名空間System下的)的WriteLine方法(換行輸出一串字符)。例1.7程序中輸入與輸出及變量的使用(C#程序)。程序代碼1 usingSystem;2 classHello3 {4 publicstaticvoidMain()5 {6 Console.Write("請(qǐng)輸入您的姓名:");7 Stringstr_bookName=Console.ReadLine();8 Console.WriteLine("您好!{0}",str_bookName);9 }10 }運(yùn)行結(jié)果請(qǐng)輸入您的姓名:張三豐您好!張三豐上述程序與例1.6的不同之處如下。第6行:使用了Write方法,不換行。第7行:定義了字符串變量str_bookName,用ReadLine方法輸入。第8行:輸出字符串變量str_bookName
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國(guó)海南省二手房出售行業(yè)發(fā)展監(jiān)測(cè)及投資戰(zhàn)略規(guī)劃報(bào)告
- 2024-2027年中國(guó)ETFE膜材行業(yè)市場(chǎng)全景評(píng)估及發(fā)展戰(zhàn)略規(guī)劃報(bào)告
- 2025年中國(guó)藥品標(biāo)簽印刷行業(yè)發(fā)展前景預(yù)測(cè)及投資戰(zhàn)略研究報(bào)告
- 鴕鳥(niǎo)繪畫(huà)托班課程設(shè)計(jì)
- 2025年度二零二五年度公益慈善活動(dòng)策劃合同模板
- 二零二五年度建筑腳手架租賃與安裝工程合同4篇
- 2025年度面料進(jìn)出口關(guān)稅減免采購(gòu)合同范本4篇
- 2025年度櫥柜行業(yè)人才招聘與培訓(xùn)合同4篇
- 2024版設(shè)備購(gòu)銷(xiāo)合同樣本
- 2025年度汽車(chē)銷(xiāo)售及代辦上牌服務(wù)合同4篇
- 2025年經(jīng)濟(jì)形勢(shì)會(huì)議講話報(bào)告
- 北師大版小學(xué)三年級(jí)上冊(cè)數(shù)學(xué)第五單元《周長(zhǎng)》測(cè)試卷(含答案)
- 國(guó)家安全責(zé)任制落實(shí)情況報(bào)告3篇
- 2024年度順豐快遞冷鏈物流服務(wù)合同3篇
- 六年級(jí)下冊(cè)【默寫(xiě)表】(牛津上海版、深圳版)(漢譯英)
- 合同簽訂培訓(xùn)
- 新修訂《保密法》知識(shí)考試題及答案
- 電工基礎(chǔ)知識(shí)培訓(xùn)課程
- 鐵路基礎(chǔ)知識(shí)題庫(kù)單選題100道及答案解析
- 金融AI:顛覆與重塑-深化理解AI在金融行業(yè)的實(shí)踐與挑戰(zhàn)
- 住宅樓安全性檢測(cè)鑒定方案
評(píng)論
0/150
提交評(píng)論