簡介:教材、參考書與課時安排,教材C程序設(shè)計(第四版)譚浩強(qiáng)編著清華大學(xué)出版社參考書C語言程序設(shè)計教程譚浩強(qiáng)高等教育出版社C高級實用程序設(shè)計王士元清華大學(xué)出版社C程序設(shè)計試題匯編譚浩強(qiáng)清華大學(xué)出版社課時安排64學(xué)時,熟記C語言的基本概念熟悉TURBOC的上機(jī)操作環(huán)境會讀、會編、會調(diào)試C程序?qū)W習(xí)要點熟記C語言的語法學(xué)會算法分析與算法設(shè)計,課程目的,課程要求,課前請做好預(yù)習(xí)保持課堂安靜,頭腦清醒,思維活躍認(rèn)真、獨立、按時完成并提交作業(yè)重視上機(jī)實踐,有效利用寶貴的上機(jī)時間,目錄,,,,,,第1章C語言概述,C語言程序設(shè)計第一章C語言概述,,,11C語言發(fā)展歷史程序設(shè)計語言的發(fā)展,CPU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如10000000加10010000減,用助記符號描述的指令系統(tǒng),可進(jìn)行地址、位操作如ADDA,B編寫系統(tǒng)軟件,直接對硬件操作,可讀性,移植性差,面向機(jī)器的語言,,C語言程序設(shè)計第一章C語言概述,可讀性,移植性好,編寫應(yīng)用程序一般較難實現(xiàn)匯編語言的某些功能如地址和位的操作,C語言兼有高級和低級語言的功能適合寫系統(tǒng)軟件和應(yīng)用軟件又稱中級語言,,C語言程序設(shè)計第一章C語言概述,,,,12C語言的特點語言簡潔、緊湊、靈活運(yùn)算符豐富數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)類型豐富鏈表、樹、棧程序設(shè)計結(jié)構(gòu)化、模塊化結(jié)構(gòu)化控制語句IFELSE、WHILE、SWITCH、FOR函數(shù)作為模塊單位語法不嚴(yán)格、程序設(shè)計自由度大可以訪問內(nèi)存地址、進(jìn)行位運(yùn)算生成目標(biāo)代碼質(zhì)量高可移植性好,,,,,,,C語言程序設(shè)計第一章C語言概述,,,32個關(guān)鍵字由系統(tǒng)定義,不能重作其它定義AUTOBREAKCASECHARCONSTCONTINUEDEFAULTDODOUBLEELSEENUMEXTERNFLOATFORGOTOIFINTLONGREGISTERRETURNSHORTSIGNEDSIZEOFSTATICSTRUCTSWITCHTYPEDEFUNSIGNEDUNIONVOIDVOLATILEWHILETURBOC擴(kuò)充了11個關(guān)鍵字ASM_CS_DS_ES_SSCDECLFARHUGEINTERRUPTNEARPASCAL注意在C語言中,關(guān)鍵字都是小寫的。,邏輯運(yùn)算符ELSEZYRETURNZ},SCANF語句中“SUM0FORI1I,例/THISISTHEMAIN/OFEXAMPLE11//,,編譯預(yù)處理命令,C語言程序設(shè)計第一章C語言概述,,,14C程序的上機(jī)步驟C程序開發(fā)步驟,,FILEEXE,C語言程序設(shè)計第一章C語言概述,程序代碼的錄入,生成源程序C,語法分析查錯,翻譯生成目標(biāo)程序OBJ,與其它目標(biāo)程序或庫鏈接裝配,生成可執(zhí)行程序EXE,,,TURBOC集成開發(fā)環(huán)境配置要求UNIX,PCDOS,MSDOS,UCDOS操作系統(tǒng)硬盤容量約2M,448KRAM運(yùn)行空間安裝TURBOC創(chuàng)建子目錄INSTALL若不是可安裝盤,將文件拷貝到對應(yīng)的目錄下,,C語言程序設(shè)計第一章C語言概述,,,進(jìn)入TURBOCD\TCTCEXE?主控菜單文件操作FILENEWLOADSAVEWRITETO編輯操作EDIT插入/修改塊查找/替換編譯鏈接COMPILELINKMAKE執(zhí)行RUN退出TURBOCALTXALTF,Q幫助HELPF1CTRLF1,,,C語言程序設(shè)計第一章C語言概述,,,基本操作F10調(diào)用主菜單F2存盤F3打開F1幫助信息ALTF9COMPILECTRLF9RUNALTF5USERSCREENALTX退出TC,常用熱鍵,文本編輯????移動光標(biāo)PGUP,PGDN上下翻頁CTRLPGUP,CTRLPGDN文件首尾HOME行首END行尾DDELETEINSERTBKSPACE,塊操作CTRLKB塊開始標(biāo)記CTRLKK塊結(jié)束標(biāo)記CTRLKC塊拷貝CTRLKV塊移動CTRLKY塊刪除CTRLKH塊隱藏,程序調(diào)試F8STEPOVERF7TRACEINTOF4GOTOCURSORCTRLF7ADDWATCHCTRLF8TOGGLEBREAKPOINTCTRLF2PROGRAMRESET,窗口操作F5窗口縮放F6窗口切換,C語言程序設(shè)計第一章C語言概述,,,,課后作業(yè)預(yù)習(xí)“題解與上機(jī)指導(dǎo)”一書中P181199頁的1431410節(jié)P236頁實驗1教材P1215、16、17、18題。注意有關(guān)設(shè)計程序的作業(yè),必須經(jīng)過上機(jī)調(diào)試,C語言程序設(shè)計第一章C語言概述,,,,,,,,,算法的概念,簡單算法舉例,算法的特性,怎樣表示一個算法,第2章程序的靈魂算法,C語言程序設(shè)計第二章程序的靈魂算法,,,,結(jié)構(gòu)化程序設(shè)計方法,,C語言程序設(shè)計第二章程序的靈魂算法,,,程序包括的內(nèi)容數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)的類型和組織形式算法操作步驟的描述,NIKIKLAUSWIRTH提出,,教材認(rèn)為,,程序,算法數(shù)據(jù)結(jié)構(gòu)程序設(shè)計方法語言工具和環(huán)境,靈魂,加工對象,工具,,C語言程序設(shè)計第二章程序的靈魂算法,,,21算法的概念為解決一個問題而采取的方法和步驟,就成為算法。例如歌曲的樂譜,建造房子等。算法核心是解決“做什么”和“怎么做”的問題。P15頁的例21,求15之積。可以有多種方法,一般采用簡單和運(yùn)算步驟少的。準(zhǔn)確、高效計算機(jī)算法類別數(shù)值運(yùn)算算法非數(shù)值運(yùn)算算法,,C語言程序設(shè)計第二章程序的靈魂算法,,,22簡單算法舉例例21方法1累乘方法2用循環(huán)結(jié)構(gòu)解決,靈活、通用。例22通過循環(huán)選擇打印例23判斷閏年例24累加求級數(shù)的和,循環(huán)改變正負(fù)號和分母加1。例25判斷素數(shù),課后認(rèn)真思考,加深什么是算法的概念,,C語言程序設(shè)計第二章程序的靈魂算法,,,23算法的特性有窮性在合理范圍內(nèi)可完成確定性無歧義性有零個或多個輸入從外界得到信息有一個或多個輸出問題的答案有效性每步有確定的結(jié)果,,C語言程序設(shè)計第二章程序的靈魂算法,,,24怎樣表示一個算法自然語言表示22節(jié)例。易懂,文字冗長,易歧義性流程圖表示用流程圖符號構(gòu)成,直觀,易懂NS流程圖表示偽代碼表示計算機(jī)語言表示,順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu),,C語言程序設(shè)計第二章程序的靈魂算法,,,傳統(tǒng)流程圖流向混亂、可讀性差,所以應(yīng)該采用結(jié)構(gòu)化流程圖。結(jié)構(gòu)化程序設(shè)計基本思想任何程序都可以用三種基本結(jié)構(gòu)表示,限制使用無條件轉(zhuǎn)移語句(GOTO)結(jié)構(gòu)化程序由三種基本結(jié)構(gòu)反復(fù)嵌套構(gòu)成的程序優(yōu)點結(jié)構(gòu)清晰,易讀,提高程序設(shè)計質(zhì)量和效率,三種基本結(jié)構(gòu)順序結(jié)構(gòu),,,C語言程序設(shè)計第二章程序的靈魂算法,,,選擇結(jié)構(gòu),二分支選擇結(jié)構(gòu),多分支選擇結(jié)構(gòu),,C語言程序設(shè)計第二章程序的靈魂算法,,,循環(huán)結(jié)構(gòu),當(dāng)型循環(huán)結(jié)構(gòu),直到型循環(huán)結(jié)構(gòu),注A,B,A1AN可以是一個簡單語句,也可以是一個基本結(jié)構(gòu),,C語言程序設(shè)計第二章程序的靈魂算法,,,三種基本結(jié)構(gòu)的共同特點只有一個入口;只有一個出口;結(jié)構(gòu)內(nèi)的每一部分都有機(jī)會被執(zhí)行到;結(jié)構(gòu)內(nèi)不存在“死循環(huán)”。,,,C語言程序設(shè)計第二章程序的靈魂算法,,,25結(jié)構(gòu)化程序設(shè)計方法結(jié)構(gòu)化程序用三種基本結(jié)構(gòu)組成的程序基本設(shè)計思路復(fù)雜問題分解成幾個最基本問題,再分別處理。采用的方法自頂向下;逐步細(xì)化;模塊化設(shè)計復(fù)雜問題按功能分成多個子模塊結(jié)構(gòu)化編碼正確采用三種基本結(jié)構(gòu)實現(xiàn),,C語言程序設(shè)計第二章程序的靈魂算法,,,課后作業(yè)P36頁習(xí)題24、28(結(jié)合實驗指導(dǎo)讀懂答案)用NS圖表示24題中⑴⑵⑹用傳統(tǒng)流程圖求解以下問題將一個16進(jìn)制數(shù)轉(zhuǎn)化為10進(jìn)制數(shù)復(fù)習(xí)二進(jìn)制的基本概念“計算機(jī)文化基礎(chǔ)”一書中P2733頁,,C語言程序設(shè)計第三章程序的靈魂算法,,,31C的數(shù)據(jù)類型,數(shù)據(jù)類型決定1數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2數(shù)據(jù)取值范圍3可以進(jìn)行的操作,,C語言程序設(shè)計第三章程序的靈魂算法,,,常量和符號常量定義程序運(yùn)行過程中,其值不能被改變的量(常數(shù))分類直接常量、符號常量,32常量與變量,,C語言程序設(shè)計第三章程序的靈魂算法,,,符號常量用標(biāo)識符代表常量一般用大寫字母PRICE、PI定義格式DEFINE符號常量常量其值在作用域內(nèi)不能改變和再賦值。,例31符號常量舉例DEFINEPRICE30INCLUDEVOIDMAIN{INTNUM,TOTALNUM10TOTALNUMPRICEPRINTF“TOTALD\N“,TOTAL},符號常量的優(yōu)點是見名知意、一改全改,,C語言程序設(shè)計第三章程序的靈魂算法,,,變量定義其值可以改變的量。定義格式數(shù)據(jù)類型變量名;變量應(yīng)該有名字,并在內(nèi)存中占據(jù)一定的存儲單元。變量名和變量值有不同的含義變量名實為一個符號地址,例變量的使用MAIN{INTAA3PRINTF“AD“,A},,C語言程序設(shè)計第三章程序的靈魂算法,,,標(biāo)識符定義標(biāo)識變量名、符號常量名、函數(shù)名、數(shù)組名、文件名的字符串序列名字。命名規(guī)則只能由字母、數(shù)字、下劃線組成,且第一個字符必須是字母或下劃線大小寫字母含義不同,一般用小寫不能使用關(guān)鍵字TC允許最長32個字符,建議長度不超過8個字符使用先定義、后使用,標(biāo)識符應(yīng)該“見名知意”,如TOTAL,MAX標(biāo)識符應(yīng)該“不宜混淆”,如L與1,O與0,這些標(biāo)識符合法嗎1A、MDJOHN、123、33、TATOL、INT、MAX,,C語言程序設(shè)計第三章程序的靈魂算法,,,33整型數(shù)據(jù)整型常量(整常數(shù))的三種表示方法十進(jìn)制整數(shù)由數(shù)字09和正負(fù)號表示如123,456,0八進(jìn)制整數(shù)由數(shù)字0開頭,后跟數(shù)字07表示如0123,011十六進(jìn)制整數(shù)由0X開頭,后跟09,AF,AF表示如0X123,0XFF,,C語言程序設(shè)計第三章程序的靈魂算法,,,補(bǔ)充知識,字節(jié)和位內(nèi)存以字節(jié)為單元組成每個字節(jié)有一個地址一個字節(jié)一般由8個二進(jìn)制位組成每個二進(jìn)位的值是0或1,,C語言程序設(shè)計第三章程序的靈魂算法,,,數(shù)值的表示方法原碼、反碼和補(bǔ)碼原碼最高位為符號位,其余各位為數(shù)值本身的絕對值反碼正數(shù)反碼與原碼相同負(fù)數(shù)符號位為1,其余位對原碼取反補(bǔ)碼正數(shù)原碼、反碼、補(bǔ)碼相同負(fù)數(shù)最高位為1,其余位為原碼取反,再對整個數(shù)加1,95497161412,,C語言程序設(shè)計第三章程序的靈魂算法,,,負(fù)數(shù)補(bǔ)碼轉(zhuǎn)換成十進(jìn)制數(shù)最高位不動,其余位取反加1,例補(bǔ)碼11111001取反10000110加1100001117,,C語言程序設(shè)計第三章程序的靈魂算法,,,整型變量整型數(shù)據(jù)在內(nèi)存中的存放形式數(shù)據(jù)在內(nèi)存中以二進(jìn)制補(bǔ)碼形式存放每一個整型變量在內(nèi)存中占2個字節(jié)10的原碼反碼補(bǔ)碼10的原碼取絕對值反碼補(bǔ)碼,整數(shù)的最左二進(jìn)制位是符號位,0正、1負(fù),,C語言程序設(shè)計第三章程序的靈魂算法,,,整型變量的分類三類整型變量,整數(shù)類型和取值范圍,,C語言程序設(shè)計第三章程序的靈魂算法,,,整型變量的定義先定義后使用強(qiáng)制類型定義INTA,B(指定變量A、B為整型)UNSIGNEDSHORTC,D(指定變量C、D為無符號短整型)LONGE,F(指定變量E、F為長整型),例32整型變量的定義與使用INCLUDEVOIDMAIN{INTA,B,C,DUNSIGNEDUA12B24U10CAUDBUPRINTF“AUD,BUD\N“,C,D},指定ABCD為整型變量,指定U為無符號整型變量,定義放在函數(shù)開頭的聲明部分,不同類型混合運(yùn)算,類型自動轉(zhuǎn)換,結(jié)果AU22,BU14,定義與賦值同時進(jìn)行INTA12,,C語言程序設(shè)計第三章程序的靈魂算法,,,整型數(shù)據(jù)的溢出此情況稱為“溢出”,運(yùn)行時不報錯,編程時要注意,整型變量最大值32767,加1后是–32768的補(bǔ)碼形式,例33整型數(shù)據(jù)的溢出INCLUDEVOIDMAIN{INTA,BA32767BA1PRINTF“D,D\N“,A,B},改為LONGB;結(jié)果是什么,,C語言程序設(shè)計第三章程序的靈魂算法,,,整型常量的類型整型常量的值在3276832767范圍內(nèi),編譯器認(rèn)為是INT類型整型常量的值超過上述范圍,而在-21474836482147483647范圍內(nèi),編譯器認(rèn)為是LONG類型當(dāng)系統(tǒng)定義SHORTINT與INT占內(nèi)存長度相同,則兩種類型常量均可以賦給INT和SHORTINT型變量在整型常量后面加大寫L或小寫L,則告訴編譯器,把該整型常量作為LONG類型處理。例123L、0L在整型常量后面加U,則按無符號整型方式存放,負(fù)數(shù)轉(zhuǎn)換成補(bǔ)碼再按無符號整型方式存放。,,C語言程序設(shè)計第三章程序的靈魂算法,,,34浮點型數(shù)據(jù)浮點型常量的表示方法浮點數(shù)(FLOAT)又稱為實數(shù)(REAL)兩種表示方法十進(jìn)制小數(shù)形式必須有小數(shù)點如0123、123、1230、00、123指數(shù)形式E或E之前后必須有數(shù)字;指數(shù)必須為整數(shù)如123456E0、123456E1、123456E2、0123456E3、00123456E4等規(guī)范化指數(shù)形式只有一位非零整數(shù)的指數(shù)形式是指數(shù)的輸出形式,628E2表示628102,30824E4表示–30824104,,C語言程序設(shè)計第三章程序的靈魂算法,,,浮點型變量浮點型數(shù)據(jù)在內(nèi)存中的存放形式浮點型數(shù)據(jù)在內(nèi)存中占4個字節(jié)(32位)在內(nèi)存中分成3部分,指數(shù)為2的冪次,3141591,,,數(shù)符,小數(shù)部分,指數(shù),,,,浮點型變量的分類,FLOATX,Y(指定X、Y為單精度浮點型變量)DOUBLEZ(指定Z為雙精度浮點型變量)LONGDOUBLET;(指定T為長雙精度浮點型變量),,C語言程序設(shè)計第三章程序的靈魂算法,,,浮點型數(shù)據(jù)的舍入誤差數(shù)據(jù)超過有效位數(shù),則產(chǎn)生誤差要避免一個很大的數(shù)與一個很小的數(shù)加減,例34浮點型數(shù)據(jù)的舍入誤差I(lǐng)NCLUDEVOIDMAIN{FLOATA,BA123456789E5BA20PRINTF“F\N“,B},舍入誤差使10/33的結(jié)果并不等于1,浮點型常量的類型浮點型常量一般按雙精度64位處理,數(shù)后加F或F按單精度浮點型常量不分FLOAT和DOUBLE,,C語言程序設(shè)計第三章程序的靈魂算法,,,35字符型數(shù)據(jù)字符常量定義用單引號括起來的單個字符或轉(zhuǎn)義字符字符常量的值該字符的ASCII碼值定義格式CHAR變量名值轉(zhuǎn)義字符反斜線后面跟一個字符或一個代碼值表示,如‘A’‘A’‘\N’‘\T’,如‘A’97,‘A’65‘\N’10,‘\T’9,CHARCH65與CHARCH‘A’與CHAR‘\101’是等效的,,C語言程序設(shè)計第三章程序的靈魂算法,,,,例35轉(zhuǎn)義字符的使用INCLUDEVOIDMAIN{PRINTF“ABC\TDE\RF\TG\N”PRINTF“H\TI\B\BJK”},,C語言程序設(shè)計第三章程序的靈魂算法,,,字符變量存放字符常量,占用一個字節(jié),存放一個字符定義形式賦值CHARC1,C2C1‘A’C2‘B’,字符數(shù)據(jù)在內(nèi)存中的存儲形式及其使用方法以二進(jìn)制存放字符的ASCII碼值(0255整數(shù))與整數(shù)的存儲形式類似以字符或整數(shù)形式輸出,例36向字符變量賦整數(shù)INCLUDEVOIDMAIN{CHARC1,C2C197C298PRINTF“CC\N“,C1,C2PRINTF“DD\N“,C1,C2},輸出形式取決于PRINTF函數(shù)中的格式符,格式符為“C”時輸出的變量值為字符格式符為“D“時輸出的變量值為整數(shù),,C語言程序設(shè)計第三章程序的靈魂算法,,,對字符數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算實質(zhì)是對其ASCII值進(jìn)行算術(shù)運(yùn)算,例37大小寫字母的轉(zhuǎn)換INCLUDEVOIDMAIN{CHARC1,C2C1‘A’C2‘B’C1C132C2C232PRINTF“CC“,C1,C2},字符型與整型間互相賦值,例互相賦值INCLUDEVOIDMAIN{INTC1CHARC2C1‘A’C298C1C132C2C232PRINTF“CC“,C1,C2},小寫字母比大寫字母的ASCII碼大3210,,C語言程序設(shè)計第三章程序的靈魂算法,,,字符串常量定義用雙引號“”括起來的字符序列“HOWDOYOUDO”,“CHINA”,“A”,“12345”存儲每個字符串尾自動加一個‘\0’作為字符串結(jié)束標(biāo)志,,字符常量與字符串常量不同,例CHARCHCH“A”,沒有字符串變量,只能用字符數(shù)組存放,,C語言程序設(shè)計第三章程序的靈魂算法,,,36變量賦初值變量的使用先定義,后使用變量定義位置一般放在函數(shù)開頭變量初始化可以在定義時賦初值,例INTA1,B3,CFLOATDATA367CHARCH‘A’INTX1,Y1,Z1INTXY1(),錯INTABC3,,C語言程序設(shè)計第三章程序的靈魂算法,,,37各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算整型、實型、字符型數(shù)據(jù)間可以混合運(yùn)算,自動轉(zhuǎn)換什么情況下發(fā)生運(yùn)算轉(zhuǎn)換不同類型數(shù)據(jù)混合運(yùn)算時賦值轉(zhuǎn)換把一個值賦給與其類型不同的變量時輸出轉(zhuǎn)換輸出時轉(zhuǎn)換成指定的輸出格式函數(shù)調(diào)用轉(zhuǎn)換實參與形參類型不一致時轉(zhuǎn)換運(yùn)算轉(zhuǎn)換規(guī)則不同類型數(shù)據(jù)運(yùn)算時先自動轉(zhuǎn)換成同一類型,,C語言程序設(shè)計第三章程序的靈魂算法,
下載積分: 4 賞幣
上傳時間:2024-01-06
頁數(shù): 533
大小: 11.03(MB)
子文件數(shù):