版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第1章緒論 返回總目錄目錄 1.1C語(yǔ)言的發(fā)展過程 1.2C語(yǔ)言的特點(diǎn) 1.3C程序的結(jié)構(gòu)和書寫格式 1.4Visual C+ 6.0上機(jī)操作 1.5習(xí)題一 返回總目錄基本要求:)了解C語(yǔ)言的發(fā)展過程與特點(diǎn);)熟悉C語(yǔ)言程序的結(jié)構(gòu)和書寫格式;)熟悉C語(yǔ)言程序的上機(jī)調(diào)試過程。學(xué)習(xí)重點(diǎn):)C程序的結(jié)構(gòu)與書寫格式;)C程序的上機(jī)調(diào)試過程。機(jī)器語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言面向過程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000 加 10010000 減用助記符號(hào)描述的指令系統(tǒng)如 ADD A, B面向機(jī)器的語(yǔ)言程序設(shè)計(jì)是數(shù)據(jù)被加工的過程客觀世界可以分類,對(duì)象是類的實(shí)例對(duì)象是數(shù)據(jù)和方法的封
2、裝對(duì)象間通過發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計(jì)關(guān)鍵是定義類,并由類派生對(duì)象1.1C語(yǔ)言的發(fā)展過程1.1.1 計(jì)算機(jī)語(yǔ)言的發(fā)展過程 返回目錄5254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC+JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula 67Smalltalk 80BASICANSI-BASICQBASICVBFORTRAN901.1C語(yǔ)言的發(fā)展過程1.1.2 C語(yǔ)言的發(fā)展過程 產(chǎn)生過程時(shí)間:19721973地點(diǎn):美國(guó)貝爾實(shí)驗(yàn)室目的
3、:UNIX操作系統(tǒng)設(shè)計(jì)人: Ken.Thompson和Dennis.M.RitchieC標(biāo)準(zhǔn)標(biāo)準(zhǔn)C: K&R合著The C Programming LanguageANSI C: 1983年89 ANSI C: 1989年99 ANSI C: 1999年1.1C語(yǔ)言的發(fā)展過程1.1.2 C語(yǔ)言的發(fā)展過程 語(yǔ)言簡(jiǎn)潔、緊湊、靈活運(yùn)算符和數(shù)據(jù)類型豐富程序設(shè)計(jì)結(jié)構(gòu)化、模塊化生成目標(biāo)代碼質(zhì)量高可移植性好1.2C語(yǔ)言的特點(diǎn)1.2.1 C語(yǔ)言的特點(diǎn) 返回目錄32個(gè)關(guān)鍵字:(由系統(tǒng)定義,不能重作其它定義)auto break case char constcontinue default do double
4、elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolatile while1.2C語(yǔ)言的特點(diǎn)1.2.1 C語(yǔ)言的特點(diǎn) 9種控制語(yǔ)句:if( )elsefor( )while( )dowhile( )continuebreakswitchgotoreturn1.2C語(yǔ)言的特點(diǎn)1.2.1 C語(yǔ)言的特點(diǎn) 例 C語(yǔ)言與Pascal語(yǔ)言比較C語(yǔ)言 Pascal語(yǔ)言 含義 BEGIN.END 復(fù)合語(yǔ)句if(
5、e) s; IF(e) THEN s 條件語(yǔ)句int i ; VAR i:INTEGER 定義i為整型變量 int a10; VAR a:ARRAY1.10 OF INTEGER 定義整型數(shù)組aint f(); FUNCTION f():INTEGER 定義f為返值整型的函數(shù)int *p; VAR p:INTEGER 定義p為指向整型變量的指針i+= 2; i=i+2 賦值i+2ii+,+i; i=i+1 i自增值結(jié)論:C比 Pascal簡(jiǎn)練,源程序短。1.2C語(yǔ)言的特點(diǎn)1.2.1 C語(yǔ)言的特點(diǎn) 34種運(yùn)算符:算術(shù)運(yùn)算符:+ - * / % + -關(guān)系運(yùn)算符: = !=邏輯運(yùn)算符:! & |位
6、運(yùn)算符 : | &賦值運(yùn)算符:= 及其擴(kuò)展條件運(yùn)算符:?:逗號(hào)運(yùn)算符:,指針運(yùn)算符:* &求字節(jié)數(shù) :sizeof強(qiáng)制類型轉(zhuǎn)換:(類型)分量運(yùn)算符:. -下標(biāo)運(yùn)算符:其它 :( ) -1.2C語(yǔ)言的特點(diǎn)1.2.1 C語(yǔ)言的特點(diǎn) C數(shù)據(jù)類型基本類型構(gòu)造類型指針空類型(void)自定義(typedef)數(shù)值類型字符類型(char)枚舉類型(enum)整 型浮點(diǎn)型單精度型(float)雙精度型(double)短整型(short)長(zhǎng)整型(long)整型(int)數(shù)組結(jié)構(gòu)體(struct)共用體(union)1.2C語(yǔ)言的特點(diǎn)1.2.1 C語(yǔ)言的特點(diǎn) 例1.1 第一個(gè)程序 Hello,World!/*
7、LT1_1.c The first C Program*/#include main() printf(“Hello,World!n”);注釋編譯預(yù)處理函數(shù)語(yǔ)句輸出:Hello,World!1.3C程序的結(jié)構(gòu)和書寫格式1.3.1 C程序的結(jié)構(gòu) 返回目錄例1.2/* example1.2 calculate the sum of a and b*/#include /* This is the main program */main() int a,b,sum; a=10; b=24; sum=add(a,b); printf(”sum= %dn,sum);/ This function cal
8、culates the sum of x and y int add(int x,int y) int z; z=x+y; return(z);運(yùn)行結(jié)果:sum=34函數(shù)語(yǔ)句預(yù)處理命令注釋函數(shù)與主函數(shù)程序由一個(gè)或多個(gè)函數(shù)組成必須有且只能有一個(gè)主函數(shù)main()程序執(zhí)行從main開始,在main中結(jié)束,其它函數(shù)通過嵌套調(diào)用得以執(zhí)行。程序語(yǔ)句C程序由語(yǔ)句組成用“;”作為語(yǔ)句終止符注釋/* */為注釋,不能嵌套不產(chǎn)生編譯代碼編譯預(yù)處理命令例: /*This is the main /* of example1.1*/ */ 非法1.3C程序的結(jié)構(gòu)和書寫格式1.3.1 C程序的結(jié)構(gòu) 格式特點(diǎn)習(xí)慣用小寫
9、字母,大小寫敏感不使用行號(hào)可使用空行和空格常用鋸齒形書寫格式(縮進(jìn)對(duì)齊)main( ) . . . . . . .main( ) int i , j , sum; sum=0; for(i=1; i10;i+) for(j=1;j10;j+) sum+=i*j ; printf(“%dn”,sum);優(yōu)秀C程序員的編程風(fēng)格:使用TAB縮進(jìn) 對(duì)齊有足夠的注釋有合適的空行注:VC中通過設(shè)置可實(shí)現(xiàn)智能縮進(jìn)和 對(duì)齊1.3C程序的結(jié)構(gòu)和書寫格式1.3.2 C程序的書寫格式 編輯鏈接編譯執(zhí)行file.exe程序代碼的錄入,生成源程序*.c語(yǔ)法分析查錯(cuò),翻譯生成目標(biāo)程序*.obj與其它目標(biāo)程序或庫(kù)鏈接裝配,
10、生成可執(zhí)行程序*.exe 返回目錄1.4.1 C程序的開發(fā)步驟 1.4Visual C+ 6.0上機(jī)操作1.4Visual C+ 6.0上機(jī)操作1.4.2 Visual C+ 6.0軟件簡(jiǎn)介 在Visual C+ 6.0開發(fā)環(huán)境下,C程序按工程(project)進(jìn)行組織,每個(gè)工程可包括一個(gè)或多個(gè)C/CPP源文件,但只能有一個(gè)main函數(shù)。有時(shí),為了完成任務(wù)經(jīng)常需要不止一個(gè)工程。如可能要寫DLL以支持應(yīng)用程序,因此,VC中將1個(gè)或多個(gè)工程組織成一個(gè)工作區(qū)。工作區(qū)一般包括1個(gè)或多個(gè)工程,也可以是空的工作區(qū),但是不能創(chuàng)建一個(gè)沒有工作區(qū)的工程。1.4.2 Visual C+ 6.0軟件簡(jiǎn)介 所以在VC
11、+ 6.0中存在如下關(guān)系:工作區(qū)(1個(gè))工程(0個(gè)或多個(gè))C/CPP文件(0個(gè)或多個(gè))工作區(qū)信息保存在擴(kuò)展名為.dsw的文件中工程信息保存在擴(kuò)展名為.dsp的文件中1.4Visual C+ 6.0上機(jī)操作1.4.2 Visual C+ 6.0軟件簡(jiǎn)介 在VC中編輯并調(diào)試C程序主要有如下3種方式:1)創(chuàng)建一個(gè)空的工作區(qū)創(chuàng)建一個(gè)空的工程新建一個(gè)或多個(gè)c/cpp文件加入到工程編輯、編譯并調(diào)試2)創(chuàng)建一個(gè)空的工程,同時(shí)也創(chuàng)建一個(gè)工作區(qū)新建一個(gè)或多個(gè)c/cpp文件加入到工程編輯、編譯并調(diào)試3)新建一個(gè)c/cpp文件編輯編譯接受創(chuàng)建默認(rèn)工程與工作區(qū)的提示編輯、編譯并調(diào)試下面的介紹采用第2種方式。1.4Vi
12、sual C+ 6.0上機(jī)操作1.4.2 Visual C+ 6.0軟件簡(jiǎn)介 下面以例1.1為示例(例1.1源文件命名為L(zhǎng)T1_1.c)介紹在Visual C+ 6.0 IDE中建立工程并進(jìn)行C程序調(diào)試的主要操作步驟。 注意,由于Visual C+ 6.0的漢化版本很多,菜單項(xiàng)的漢化名稱不盡相同(如主菜單項(xiàng)“Build”,有的版本翻譯成“組建”,有的版本則翻譯成“編譯”,而其下拉菜單項(xiàng)中第二個(gè)子菜單項(xiàng)名也叫”Build”,有的版本翻譯成“生成”,有的翻譯成“構(gòu)件”),所以下面在介紹相應(yīng)菜單項(xiàng)名稱時(shí),用圓括號(hào)附上其英文菜單項(xiàng)名。1.4Visual C+ 6.0上機(jī)操作1.4.2 Visual C
13、+ 6.0軟件簡(jiǎn)介 1啟動(dòng)Visual C+ 6.0 IDE1.4Visual C+ 6.0上機(jī)操作1.4.2 Visual C+ 6.0軟件簡(jiǎn)介 2工程(Project)的創(chuàng)建含工作區(qū)的創(chuàng)建1.4Visual C+ 6.0上機(jī)操作1.4.2 Visual C+ 6.0軟件簡(jiǎn)介 2工程(Project)的創(chuàng)建1.4Visual C+ 6.0上機(jī)操作1.4.2 Visual C+ 6.0軟件簡(jiǎn)介 3在工程(Project)中添加并編輯源程序 1.4Visual C+ 6.0上機(jī)操作1.4.2 Visual C+ 6.0軟件簡(jiǎn)介 3在工程(Project)中添加并編輯源程序 1.4Visual C
14、+ 6.0上機(jī)操作1.4.2 Visual C+ 6.0軟件簡(jiǎn)介 4編譯過程1.4Visual C+ 6.0上機(jī)操作1.4.2 Visual C+ 6.0軟件簡(jiǎn)介 5連接過程1.4Visual C+ 6.0上機(jī)操作1.4.2 Visual C+ 6.0軟件簡(jiǎn)介 6執(zhí)行程序1.4Visual C+ 6.0上機(jī)操作1.4.2 Visual C+ 6.0軟件簡(jiǎn)介 6執(zhí)行程序 Visual C+ 6.0 IDE的重建提示信息 1.4Visual C+ 6.0上機(jī)操作1.4.3 Visual C+ 6.0程序調(diào)試 C語(yǔ)言程序的錯(cuò)誤主要包括兩大類:一類是語(yǔ)法錯(cuò)誤;一類是邏輯設(shè)計(jì)錯(cuò)誤。語(yǔ)法錯(cuò)誤是指違背了C語(yǔ)
15、言語(yǔ)法規(guī)則而導(dǎo)致的錯(cuò)誤。語(yǔ)法錯(cuò)誤分為error和warning兩種。如果程序有語(yǔ)法錯(cuò)誤,則在編譯時(shí),Visual C+ 6.0 IDE的編譯器將在輸出窗口中給出語(yǔ)法錯(cuò)誤提示信息,錯(cuò)誤提示信息一般還可以指出錯(cuò)誤發(fā)生所在位置的行號(hào)。用戶可以在輸出窗口中雙擊錯(cuò)誤提示信息或按F4鍵返回到源程序編輯窗口,并通過一個(gè)箭頭符號(hào)定位到引起錯(cuò)誤的語(yǔ)句,如下頁(yè)圖所示。 1程序調(diào)試時(shí)的常見錯(cuò)誤分類1.4Visual C+ 6.0上機(jī)操作1.4.3 Visual C+ 6.0程序調(diào)試 1程序調(diào)試時(shí)的常見錯(cuò)誤分類1.4Visual C+ 6.0上機(jī)操作1.4.3 Visual C+ 6.0程序調(diào)試 需要說明的是,編譯器
16、給出的錯(cuò)誤提示信息可能不十分準(zhǔn)確,并且一處錯(cuò)誤往往會(huì)引出若干條錯(cuò)誤提示信息,因此,修改一個(gè)錯(cuò)誤后最好馬上進(jìn)行程序的編譯或運(yùn)行。例如,在上頁(yè)圖中,錯(cuò)誤提示信息中括號(hào)內(nèi)的數(shù)字6指示錯(cuò)誤發(fā)生在第6行,指示錯(cuò)誤的箭頭也指向第6行,但實(shí)際錯(cuò)誤發(fā)生在第5行的末尾,因?yàn)榈?行的末尾少了一個(gè)分號(hào)。1程序調(diào)試時(shí)的常見錯(cuò)誤分類1.4Visual C+ 6.0上機(jī)操作1.4.3 Visual C+ 6.0程序調(diào)試 如果程序并沒有違背C語(yǔ)言的語(yǔ)法規(guī)則,編譯器也沒有提示出錯(cuò),而且程序能夠成功運(yùn)行,但程序執(zhí)行結(jié)果卻與原意不符,這類程序設(shè)計(jì)上的錯(cuò)誤被稱為邏輯設(shè)計(jì)錯(cuò)誤。這類錯(cuò)誤由于編譯器不能給我們出錯(cuò)提示,所以必須利用“調(diào)試
17、器(Debug)”對(duì)程序進(jìn)行跟蹤調(diào)試才能發(fā)現(xiàn)錯(cuò)誤。1程序調(diào)試時(shí)的常見錯(cuò)誤分類1.4Visual C+ 6.0上機(jī)操作1.4.3 Visual C+ 6.0程序調(diào)試 2程序調(diào)試時(shí)調(diào)試器(Debug)的使用1.4Visual C+ 6.0上機(jī)操作1.4.3 Visual C+ 6.0程序調(diào)試 2程序調(diào)試時(shí)調(diào)試器(Debug)的使用1.4Visual C+ 6.0上機(jī)操作1.4.3 Visual C+ 6.0程序調(diào)試 3 Debug版本和Release版本默認(rèn)情況下,Visual C+ MFC AppWizard有兩種類型的程序設(shè)置:一種是Debug版本,其中編譯和鏈接了對(duì)象文件中的調(diào)試代碼;另一種
18、是Release版本,將刪除所有的調(diào)試代碼。Debug版本通常稱為調(diào)試版本,它包含調(diào)試信息,并且不作任何優(yōu)化,便于程序員調(diào)試程序。Release版本稱為發(fā)布版本,它往往是進(jìn)行了各種優(yōu)化,使得程序在代碼大小和運(yùn)行速度上都是最優(yōu)的,以便用戶很好地使用。1.4Visual C+ 6.0上機(jī)操作1.4.3 Visual C+ 6.0程序調(diào)試 3 Debug版本和Release版本兩種版本各有自己的編譯/鏈接選項(xiàng)和資源狀況,可以使用Project Settings對(duì)話框(工程Project設(shè)置Settings)來修改。當(dāng)前工程是編譯成Debug版本還是Release版本,通過使用Set Active P
19、roject Configuration對(duì)話框(編譯Build放置可運(yùn)行配置Set Active Configuration )來設(shè)置。默認(rèn)為Debug版本。調(diào)試生成的exe文件在工程目錄下的debug或release子目錄下。當(dāng)然也可使用Project Settings對(duì)話框設(shè)置不同的目錄。1.4Visual C+ 6.0上機(jī)操作1.4.3 Visual C+ 6.0程序調(diào)試 3 Debug版本和Release版本1.4Visual C+ 6.0上機(jī)操作1.4.3 Visual C+ 6.0程序調(diào)試 4 常見錯(cuò)誤示例(1)出錯(cuò)原因:變量a事先沒有定義。1.4Visual C+ 6.0上機(jī)操作
20、1.4.3 Visual C+ 6.0程序調(diào)試 4 常見錯(cuò)誤示例(2)出錯(cuò)原因:實(shí)型變量不允許進(jìn)行“求余”運(yùn)算。 1.4Visual C+ 6.0上機(jī)操作1.4.3 Visual C+ 6.0程序調(diào)試 4 常見錯(cuò)誤示例(3)出錯(cuò)原因:a和A是兩個(gè)不同的變量名,而A沒有定義。 1.4Visual C+ 6.0上機(jī)操作1.4.3 Visual C+ 6.0程序調(diào)試 4 常見錯(cuò)誤示例(4)出錯(cuò)原因:忘記加分號(hào)。 1.4Visual C+ 6.0上機(jī)操作1.4.3 Visual C+ 6.0程序調(diào)試 4 常見錯(cuò)誤示例(5)本程序?qū)崿F(xiàn):若a與b相等,則顯示ok。編譯無錯(cuò)。本程序中a與b并不相等,但結(jié)果顯
21、示ok。錯(cuò)。a=b應(yīng)該改成a=b。此為典型的邏輯設(shè)計(jì)錯(cuò)誤。 1.4Visual C+ 6.0上機(jī)操作1.4.3 Visual C+ 6.0程序調(diào)試 4 常見錯(cuò)誤示例(6)程序的原意是先后輸入5個(gè)數(shù),每輸入一個(gè)數(shù)后再將它輸出。編譯無錯(cuò)。由于for()后多加了一個(gè)分號(hào),使循環(huán)體變?yōu)榭照Z(yǔ)句,此時(shí)只能輸入一個(gè)數(shù)并輸出它。此為典型的邏輯設(shè)計(jì)錯(cuò)誤。 1.4Visual C+ 6.0上機(jī)操作1.4.3 Visual C+ 6.0程序調(diào)試 這里我們介紹了在Visual C+ 6.0中調(diào)試C程序的一些基本知識(shí),但Visual C+ 6.0的基本操作和相關(guān)知識(shí)很多,這里就不一一介紹了,更深入的了解可以閱讀Visual C+ 6.0的相關(guān)專業(yè)書籍和網(wǎng)絡(luò)資源。更為重要的是,本工具及本課程的學(xué)習(xí)需要大量的上機(jī)實(shí)踐才能熟練掌握。1.4Visual C+ 6.0上機(jī)操作1.5習(xí)題一 單項(xiàng)選擇題 一個(gè)完整的可運(yùn)行的C源程序中 .A)可以有一個(gè)或多個(gè)主函數(shù)B)必須有且僅有一個(gè)主函數(shù)C)可以沒有主函數(shù)D)必須有主函數(shù)和其他函數(shù)構(gòu)成C語(yǔ)言源程序的基本單位是 . A)子程序 B)過程 C)文本 D)函數(shù)BD 返回目錄1.5習(xí)題一 單項(xiàng)選擇題 某C程序由一個(gè)主函數(shù)ma
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度醫(yī)療健康信息管理系統(tǒng)開發(fā)與運(yùn)維服務(wù)合同3篇
- 二零二五年度家電產(chǎn)品回收與再利用合同范本3篇
- 2024版房屋租賃協(xié)議簽訂指南一
- 二建市政工程實(shí)務(wù)-二級(jí)建造師《市政公用工程管理與實(shí)務(wù)》高分通關(guān)卷3331
- 2024年關(guān)于全區(qū)青少年禁毒知識(shí)競(jìng)賽培訓(xùn)題庫(kù)及答案
- 《榜樣9》觀后感心得體會(huì)一
- 加速無人機(jī)配送發(fā)展的路徑選擇與策略
- 2025年度社區(qū)普法工作計(jì)劃例文
- 2025年行政文員年度工作計(jì)劃2
- 2025年幼兒園教科室工作計(jì)劃
- 監(jiān)理報(bào)告范本
- 店鋪交割合同范例
- 新生兒心臟病護(hù)理查房
- 規(guī)劃設(shè)計(jì)行業(yè)數(shù)字化轉(zhuǎn)型趨勢(shì)
- 物業(yè)年終總結(jié)匯報(bào)工作
- 金色簡(jiǎn)約蛇年年終總結(jié)匯報(bào)模板
- 醫(yī)院住院病歷質(zhì)量檢查評(píng)分表(評(píng)分標(biāo)準(zhǔn))
- 12.1 擁有積極的人生態(tài)度(教學(xué)設(shè)計(jì))2024七年級(jí)道德與法治上冊(cè)
- 視聽說課程(《走遍美國(guó)》)教學(xué)方案
- 高中體育與健康-短跑教學(xué)設(shè)計(jì)學(xué)情分析教材分析課后反思
- 廠房廠區(qū)保潔方案
評(píng)論
0/150
提交評(píng)論