《c語言 概述課件》由會員分享,可在線閱讀,更多相關(guān)《c語言 概述課件(43頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、主 講:姚 蘭電 話:郵 箱:教材和參考書教材教材vC程序設(shè)計程序設(shè)計 譚浩強編著譚浩強編著 清華大學出版社清華大學出版社參考書參考書vA Book on C : Programming in C (Fourth Edition) vThe C Programming Language vThe Art and Science of C by Eric S. Roberts. 課時安排課時安排課時安排v授課授課 :40學時學時上機安排上機安排v上機地點:院樓上機地點:院樓504,數(shù)學,數(shù)學3班院樓班院樓502v上機時間:上機時間:512周周l數(shù)學:周四下午l信息:周四晚上v上機內(nèi)容:上機調(diào)試每
2、次課堂作業(yè)上機內(nèi)容:上機調(diào)試每次課堂作業(yè)計算機語言是全國高校工科類專業(yè)均開設(shè)的公共基礎(chǔ)計算機語言是全國高校工科類專業(yè)均開設(shè)的公共基礎(chǔ)課,是適應(yīng)現(xiàn)代化技術(shù)開設(shè)的課程;課,是適應(yīng)現(xiàn)代化技術(shù)開設(shè)的課程;為后續(xù)課程打下基礎(chǔ),我們后面要開設(shè)數(shù)據(jù)結(jié)構(gòu),數(shù)為后續(xù)課程打下基礎(chǔ),我們后面要開設(shè)數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)庫原理等課程會用到據(jù)庫原理等課程會用到C語言知識;語言知識;為后面考計算機等級考試,畢業(yè)找工作奠定基礎(chǔ);為后面考計算機等級考試,畢業(yè)找工作奠定基礎(chǔ);對軟件開發(fā)感興趣的,畢業(yè)后也可從事軟件開發(fā)工作對軟件開發(fā)感興趣的,畢業(yè)后也可從事軟件開發(fā)工作C語言是學習其他語言的基礎(chǔ),也是必須掌握的一門語言是學習其他語言的基礎(chǔ)
3、,也是必須掌握的一門語言。語言。為什么要學C語言?信息交流信息交流(地位平等地位平等) (有思維、推理能力)(有思維、推理能力)語法規(guī)則、句法規(guī)則靈活語法規(guī)則、句法規(guī)則靈活(可省略、顛倒可省略、顛倒)如:走,去曬太陽!如:走,去曬太陽!去曬太陽,走!去曬太陽,走!表達方式多樣表達方式多樣C語言與自然語言的比較C語言語言人人機對話機對話(命令方式命令方式) (無思維、推理能力,具有計算與邏輯(無思維、推理能力,具有計算與邏輯判斷能力)判斷能力)語法規(guī)則、句法規(guī)則固定語法規(guī)則、句法規(guī)則固定(一般不可省略、顛倒,必須按部就班一般不可省略、顛倒,必須按部就班)如:如:scanf(“%d,%d”,&a,
4、&b); x=a+b;算法多樣算法多樣自然語言自然語言本門課主要內(nèi)容C語言概述語言概述(了解了解)算法算法(了解了解)數(shù)據(jù)類型、運算符和表達式數(shù)據(jù)類型、運算符和表達式 (重點重點)順序結(jié)構(gòu)順序結(jié)構(gòu) (重點重點)選擇結(jié)構(gòu)選擇結(jié)構(gòu)(重點重點)循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) (重點重點)數(shù)組數(shù)組(重點重點)函數(shù)函數(shù)(重點重點)編譯預(yù)處理編譯預(yù)處理(了解了解)指針指針(理解理解)結(jié)構(gòu)體與共用體結(jié)構(gòu)體與共用體(了解了解)文件文件(了解了解)課程目標1.熟記熟記C語言的基本概念語言的基本概念2.熟悉熟悉TC和和Visual C+6.0的上機操作環(huán)境的上機操作環(huán)境3.會讀、會編、會調(diào)試簡單的會讀、會編、會調(diào)試簡單的C程序
5、程序課程要求課前請做好預(yù)習課前請做好預(yù)習保持課堂安靜,頭腦清醒,思維活躍保持課堂安靜,頭腦清醒,思維活躍所有作業(yè)必須所有作業(yè)必須獨立獨立完成完成作業(yè)必須經(jīng)作業(yè)必須經(jīng)上機調(diào)試通過上機調(diào)試通過重視上機實踐,有效利用寶貴的上機時間重視上機實踐,有效利用寶貴的上機時間第一章 C語言概述1.1 C語言發(fā)展歷史1.2 C語言特點1.3 簡單的C程序介紹1.4 C程序上機步驟1.1 C語言發(fā)展歷史程序設(shè)計語言的發(fā)展程序設(shè)計語言的發(fā)展機器語言匯編語言高級語言面向過程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000 加 10010000 減用助記符號描述的指令系統(tǒng)如 ADD A, B面向
6、機器的語言程序設(shè)計是數(shù)據(jù)被加工的過程客觀世界可以分類,對象是類的實例對象是數(shù)據(jù)和方法的封裝對象間通過發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計關(guān)鍵是定義類,并由類派生對象0000000000000100000000101111000001100110000100001011101111 000101100010111101111 100111100101111111000 10101101 11011111 100100110001011011111 1010111101111 0000001011111011 10111111101001010110111011111 11110000000111010
7、001011011111 0000111101111 0000001011111011 0010001111110 111101001010110111111000 101011101100010101011000001101010001011111011 1000111101111 0000001011111011 1010000000100111010000010011101Entry main,msubl2 #12,spjsb C$MAIN_ARGSmovab $CHAR_STRING_CONpushal -8(fp)pushal (r2)calls #2,readpushal -12(
8、fp)pushal 3(r2)calls #2,readmull3 -8(fp),-12(fp),-pushal 6(r2)calls #2,printclrl r0ret/* This program reads two integer numbers from the keyboard and prints their product.*/ #include int main (void)/ Local Declarations int number1;int number2;int result;/ Statements scanf(“%d”, number1);scanf(“%d”,
9、number2);result = number1 * number2;printf(“%d*%d=%dn”,numer1,number2, result);return 0;/ main 面向過程語言面向過程語言vFORTRANvCOBOLvPascalvCvAda面向?qū)ο笳Z言面向?qū)ο笳Z言vC+vJava特殊的語言特殊的語言vHTMLvPERLvSQL高級語言TIOBE編程語言排行榜http:/變化趨勢圖Combined Language(組合語言) v時間時間:19721973v地點地點:美國貝爾實驗室美國貝爾實驗室v設(shè)計人設(shè)計人: Ken.Thompson和和Dennis.M.Ritch
10、ie Thompson(左)和(左)和Ritchie(中)于(中)于1999 年年 接受當時美國總統(tǒng)克林頓授予的國家技術(shù)勛章接受當時美國總統(tǒng)克林頓授予的國家技術(shù)勛章C語言發(fā)展過程語言發(fā)展過程v目的:目的:UNIX操作系統(tǒng)操作系統(tǒng)l匯編語言程序?qū)τ嬎銠C硬件的依賴性高,可讀性和可移植性很差;l一般的高級語言雖然克服了匯編語言的一些不足,卻難以實現(xiàn)對計算機硬件的直接操作UNIX操作系統(tǒng)1969-1972主要用匯編語言編寫B(tài)語言1970缺乏豐富的數(shù)據(jù)類型,以字長編址C語言1972在B語言基礎(chǔ)上加入豐富的數(shù)據(jù)類型和強有力的數(shù)據(jù)結(jié)構(gòu)87 ANSI C1987美國國家標準化協(xié)會公布C標準ISO C1990國
11、際標準化組織采用了ANSI C標準ISO C1994國際標準化組織修訂標準目前流行的C語言編譯系統(tǒng)面向過程的:面向過程的:vMS C,Turbo C,Quick C,面向?qū)ο蟮模好嫦驅(qū)ο蟮模簐Borland C+,Turbo C+,面向?qū)ο蟮目梢暬好嫦驅(qū)ο蟮目梢暬簐Visual C+, 1.2 C語言特點語言簡潔、緊湊、靈活語言簡潔、緊湊、靈活運算符和數(shù)據(jù)類型豐富運算符和數(shù)據(jù)類型豐富程序設(shè)計結(jié)構(gòu)化、模塊化程序設(shè)計結(jié)構(gòu)化、模塊化允許直接對硬件進行操作允許直接對硬件進行操作生成目標代碼質(zhì)量高生成目標代碼質(zhì)量高可移植性好可移植性好中級語言32個關(guān)鍵字:(auto break case char
12、constcontinue default do double elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolatile while9種控制語句:if( )elsefor( )while( )dowhile( )continuebreakswitchgotoreturn例 C語言與Pascal語言比較C語言 Pascal語言 含義 BEGIN.END 復合語句if(e) s; IF(e)
13、THEN s 條件語句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簡練,源程序短。34種運算符:算術(shù)運算符:算術(shù)運算符:+ - * / % + -關(guān)系運算符:關(guān)系運算符: = !=邏輯運算符:!邏輯運算符:! & |位運算符位運算符 : | &賦值
14、運算符:賦值運算符:= 及其擴展及其擴展條件運算符:條件運算符:?:逗號運算符:逗號運算符:,指針運算符:指針運算符:* &求字節(jié)數(shù)求字節(jié)數(shù) :sizeof強制類型轉(zhuǎn)換:強制類型轉(zhuǎn)換:(類型)類型)分量運算符:分量運算符:. -下標運算符:下標運算符:其它其它 :( ) -C C數(shù)數(shù)據(jù)據(jù)類類型型基本類型基本類型構(gòu)造類型構(gòu)造類型指針類型指針類型空類型空類型void定義類型定義類型typedef數(shù)值類型數(shù)值類型字符類型字符類型char枚舉類型枚舉類型enum整整 型型浮點型浮點型單精度型單精度型float雙精度型雙精度型double短整型短整型short長整型長整型long整型整型int數(shù)組數(shù)組結(jié)
15、構(gòu)體結(jié)構(gòu)體struct共用體共用體union例1.1 第一個程序 Hello,World!/* example1.1 The first C Program*/#include main() printf(“Hello,World!”);注釋編譯預(yù)處理函數(shù)語句輸出:Hello,World!程序說明: (1)stdio.h,是C語言的標準I/O庫的頭文件。(2) main 表示主函數(shù),函數(shù)體用 和括起來 “;”為語句結(jié)束標志 。(3)printf為C語言的輸出函數(shù)。1.3 C程序格式和結(jié)構(gòu)特點例1.2 求兩數(shù)之和 /*求兩數(shù)之和求兩數(shù)之和*/#include void main( ) int a
16、,b,sum; /*聲明,定義變量為整型聲明,定義變量為整型*/ /*以下以下3行為執(zhí)行語句行為執(zhí)行語句 */ a=123; b=456; sum=a+b; printf(sum is %dn,sum);scanf( “%d,%d”, &a, &b );/* 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 calcu
17、lates the sum of x and y */int add(int x,int y) int z; z=x+y; return(z);運行結(jié)果:sum=34函數(shù)語句預(yù)處理命令注釋格式特點格式特點v習慣用習慣用小寫小寫字母,大小寫敏感字母,大小寫敏感v不使用行號,不使用行號,無程序行無程序行概念概念v可使用空行和空格可使用空行和空格v常用常用鋸齒形鋸齒形書寫格式書寫格式main( ) . . . . . . .main( ) int i , j , sum; sum=0; for(i=1; i10;i+) for(j=1;j10;j+) sum+=i*j ; printf(“%dn”,
18、sum);優(yōu)秀程序員的素質(zhì)之一: 使用TAB縮進 對齊 有足夠的注釋 有合適的空行結(jié)構(gòu)特點結(jié)構(gòu)特點v函數(shù)與主函數(shù)函數(shù)與主函數(shù)l程序由一個或多個函數(shù)組成l必須有且只能有一個主函數(shù)main()l程序執(zhí)行從main開始,在main中結(jié)束,其它函數(shù)通過調(diào)用得以執(zhí)行。v程序語句程序語句lC程序由語句組成l用“;”作為語句終止符v注釋注釋l/* */為注釋,不能嵌套l不產(chǎn)生編譯代碼例: /*This is the main /* of example1.1*/ */ 非法v編譯預(yù)處理命令編譯預(yù)處理命令1.4 C程序的上機步驟1.上機環(huán)境常用的有常用的有Turbo C 2.0、Visual C+6.0等。等
19、。 Turbo C 2.0 :DOS環(huán)境下的集成環(huán)境。環(huán)境下的集成環(huán)境。Visual C+ 6.0:支持:支持C/C+編編程程,windows環(huán)境。環(huán)境。計算機界公認的優(yōu)秀的計算機界公認的優(yōu)秀的應(yīng)用開發(fā)工具之一應(yīng)用開發(fā)工具之一 。編輯鏈接編譯執(zhí)行2. C程序開發(fā)步驟程序代碼的錄入,生成源程序*.c語法分析查錯,翻譯生成目標程序*.obj與其它目標程序或庫鏈接裝配,生成可執(zhí)行程序*.exe源程序目標程序可執(zhí)行程序內(nèi)容程序設(shè)計語言機器語言機器語言可執(zhí)行不可以不可以可以文件名后綴.c.obj.exeTC 2.0開發(fā)環(huán)境v主控菜單主控菜單l文件操作FILE :New Load Save Write t
20、ol編輯操作EDIT:插入/修改 塊 查找/替換l編譯鏈接COMPILE LINK MAKEl執(zhí)行RUNv退出退出Turbo ClAlt +xv幫助幫助HelplF1基本操作:基本操作:F2-保存保存F3-打開打開Alt+F9 -編譯編譯Ctrl+F9-運行運行Alt+F5 -查看結(jié)果查看結(jié)果v常用熱鍵常用熱鍵程序調(diào)試:程序調(diào)試:F8-Step over F7-Trace intoF4-Goto Cursor Ctrl+F7-Add WatchCtrl+F8-Toggle Breakpoint Ctrl+F2-Program Reset1、啟動、啟動Visual C+6.0應(yīng)用程序應(yīng)用程序2、建立一個新的工作空間、建立一個新的工作空間Visual C+6.0上機環(huán)境3、建立一個新的工程、建立一個新的工程4、建立源文件、建立源文件5、編輯、編輯C源文件源文件6、編譯連接應(yīng)用程序、編譯連接應(yīng)用程序7、執(zhí)行應(yīng)用程序、執(zhí)行應(yīng)用程序8、關(guān)閉工作區(qū)、關(guān)閉工作區(qū)Implementation Phase:工件區(qū)窗口工件區(qū)窗口( (workspace) )編輯窗口編輯窗口Editor輸出窗口輸出窗口( (output) )