![c語言程序設(shè)計(第二版) ——譚浩強(完整版).ppt_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/23/db8e6b49-907e-4c66-9228-abe61eb45441/db8e6b49-907e-4c66-9228-abe61eb454411.gif)
![c語言程序設(shè)計(第二版) ——譚浩強(完整版).ppt_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/23/db8e6b49-907e-4c66-9228-abe61eb45441/db8e6b49-907e-4c66-9228-abe61eb454412.gif)
![c語言程序設(shè)計(第二版) ——譚浩強(完整版).ppt_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/23/db8e6b49-907e-4c66-9228-abe61eb45441/db8e6b49-907e-4c66-9228-abe61eb454413.gif)
![c語言程序設(shè)計(第二版) ——譚浩強(完整版).ppt_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/23/db8e6b49-907e-4c66-9228-abe61eb45441/db8e6b49-907e-4c66-9228-abe61eb454414.gif)
![c語言程序設(shè)計(第二版) ——譚浩強(完整版).ppt_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/23/db8e6b49-907e-4c66-9228-abe61eb45441/db8e6b49-907e-4c66-9228-abe61eb454415.gif)
已閱讀5頁,還剩526頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
教材、參考書與課時安排僅供個人學(xué)習(xí)參考之用,教材C程序設(shè)計(第二版)譚浩強編著清華大學(xué)出版社參考書C語言程序設(shè)計教程譚浩強高等教育出版社C高級實用程序設(shè)計王士元清華大學(xué)出版社C程序設(shè)計試題匯編譚浩強清華大學(xué)出版社課時安排64學(xué)時,熟記C語言的基本概念熟悉TurboC的上機操作環(huán)境會讀、會編、會調(diào)試C程序?qū)W習(xí)要點熟記C語言的語法學(xué)會算法分析與算法設(shè)計,課程目的,課程要求,課前請做好預(yù)習(xí)保持課堂安靜,頭腦清醒,思維活躍認(rèn)真、獨立、按時完成并提交作業(yè)重視上機實踐,有效利用寶貴的上機時間,目錄,第1章C語言概述,C語言程序設(shè)計第一章C語言概述,1.1C語言發(fā)展歷史程序設(shè)計語言的發(fā)展,CPU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加10010000減,用助記符號描述的指令系統(tǒng),可進行地址、位操作如ADDA,B編寫系統(tǒng)軟件,直接對硬件操作,可讀性,移植性差,面向機器的語言,C語言程序設(shè)計第一章C語言概述,可讀性,移植性好,編寫應(yīng)用程序一般較難實現(xiàn)匯編語言的某些功能如:地址和位的操作,C語言兼有高級和低級語言的功能適合寫系統(tǒng)軟件和應(yīng)用軟件又稱中級語言,C語言發(fā)展過程產(chǎn)生背景ALGOL60CPL語言BCPLB語言,寫UNIX系統(tǒng)產(chǎn)生過程時間:19721973地點:美國貝爾實驗室目的:UNIX操作系統(tǒng)設(shè)計人:Ken.Thompson和Dennis.M.RitchieC標(biāo)準(zhǔn)標(biāo)準(zhǔn)C:1978年Kscanf(“%d,%d”,scanf語句中“sum=0;for(i=1;i10;i+)for(j=1;jTC.exe主控菜單文件操作FILE:NewLoadSaveWriteto編輯操作EDIT:插入/修改塊查找/替換編譯鏈接COMPILELINKMAKE執(zhí)行RUN退出TurboCAlt+xAlt+F,Q幫助HelpF1Ctrl+F1,C語言程序設(shè)計第一章C語言概述,基本操作:F10-調(diào)用主菜單F2-存盤F3-打開F1-幫助信息Alt+F9-CompileCtrl+F9-RunAlt+F5-UserScreenAlt+X-退出Tc,常用熱鍵,文本編輯:-移動光標(biāo)PgUp,PgDn-上下翻頁Ctrl+PgUp,Ctrl+PgDn-文件首尾Home行首End行尾DdeleteInsertBkspace,塊操作:Ctrl+KB-塊開始標(biāo)記Ctrl+KK-塊結(jié)束標(biāo)記Ctrl+KC-塊拷貝Ctrl+KV-塊移動Ctrl+KY-塊刪除Ctrl+KH-塊隱藏,程序調(diào)試:F8-StepoverF7-TraceintoF4-GotoCursorCtrl+F7-AddWatchCtrl+F8-ToggleBreakpointCtrl+F2-ProgramReset,窗口操作:F5-窗口縮放F6-窗口切換,C語言程序設(shè)計第一章C語言概述,課后作業(yè)預(yù)習(xí)“題解與上機指導(dǎo)”一書中P181199頁的14.314.10節(jié)P236頁實驗1教材P12:1.5、1.6、1.7、1.8題。注意:有關(guān)設(shè)計程序的作業(yè),必須經(jīng)過上機調(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è)計第二章程序的靈魂算法,2.1算法的概念為解決一個問題而采取的方法和步驟,就成為算法。例如:歌曲的樂譜,建造房子等。算法核心是解決“做什么”和“怎么做”的問題。P15頁的例2.1,求15之積。可以有多種方法,一般采用簡單和運算步驟少的。準(zhǔn)確、高效計算機算法類別數(shù)值運算算法非數(shù)值運算算法,C語言程序設(shè)計第二章程序的靈魂算法,2.2簡單算法舉例例2.1方法1:累乘方法2:用循環(huán)結(jié)構(gòu)解決,靈活、通用。例2.2通過循環(huán)選擇打印例2.3判斷閏年例2.4累加求級數(shù)的和,循環(huán)改變正負號和分母加1。例2.5判斷素數(shù),課后認(rèn)真思考,加深什么是算法的概念,C語言程序設(shè)計第二章程序的靈魂算法,2.3算法的特性有窮性在合理范圍內(nèi)可完成確定性無歧義性有零個或多個輸入從外界得到信息有一個或多個輸出問題的答案有效性每步有確定的結(jié)果,C語言程序設(shè)計第二章程序的靈魂算法,2.4怎樣表示一個算法自然語言表示2.2節(jié)例。易懂,文字冗長,易歧義性流程圖表示用流程圖符號構(gòu)成,直觀,易懂N-S流程圖表示偽代碼表示計算機語言表示,順序結(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,A1.An可以是一個簡單語句,也可以是一個基本結(jié)構(gòu),C語言程序設(shè)計第二章程序的靈魂算法,三種基本結(jié)構(gòu)的共同特點:只有一個入口;只有一個出口;結(jié)構(gòu)內(nèi)的每一部分都有機會被執(zhí)行到;結(jié)構(gòu)內(nèi)不存在“死循環(huán)”。,C語言程序設(shè)計第二章程序的靈魂算法,2.5結(jié)構(gòu)化程序設(shè)計方法結(jié)構(gòu)化程序:用三種基本結(jié)構(gòu)組成的程序基本設(shè)計思路:復(fù)雜問題分解成幾個最基本問題,再分別處理。采用的方法:自頂向下;逐步細化;模塊化設(shè)計:復(fù)雜問題按功能分成多個子模塊結(jié)構(gòu)化編碼:正確采用三種基本結(jié)構(gòu)實現(xiàn),C語言程序設(shè)計第二章程序的靈魂算法,課后作業(yè)P36頁習(xí)題:2.4、2.8(結(jié)合實驗指導(dǎo)讀懂答案)用N-S圖表示2.4題中用傳統(tǒng)流程圖求解以下問題:將一個16進制數(shù)轉(zhuǎn)化為10進制數(shù)復(fù)習(xí)二進制的基本概念“計算機文化基礎(chǔ)”一書中P2733頁,C語言程序設(shè)計第三章程序的靈魂算法,3.3整型數(shù)據(jù)整型常量(整常數(shù))的三種表示方法十進制整數(shù):由數(shù)字09和正負號表示.如123,-456,0八進制整數(shù):由數(shù)字0開頭,后跟數(shù)字07表示.如0123,011十六進制整數(shù):由0 x開頭,后跟09,af,AF表示.如0 x123,0 xff,C語言程序設(shè)計第三章程序的靈魂算法,整型變量整型數(shù)據(jù)在內(nèi)存中的存放形式數(shù)據(jù)在內(nèi)存中以二進制補碼形式存放每一個整型變量在內(nèi)存中占2個字節(jié)10的原碼反碼補碼-10的原碼取絕對值反碼補碼,整數(shù)的最左二進制位是符號位,0正、1負,C語言程序設(shè)計第三章程序的靈魂算法,整型變量的分類三類整型變量,整數(shù)類型和取值范圍,C語言程序設(shè)計第三章程序的靈魂算法,整型變量的定義先定義后使用強制類型定義inta,b;(指定變量a、b為整型)unsignedshortc,d;(指定變量c、d為無符號短整型)longe,f;(指定變量e、f為長整型),例3.2整型變量的定義與使用#includevoidmain()inta,b,c,d;unsignedu;a=12;b=-24;u=10;c=a+u;d=b+u;printf(“a+u=%d,b+u=%dn,c,d);,指定abcd為整型變量,指定u為無符號整型變量,定義放在函數(shù)開頭的聲明部分,不同類型混合運算,類型自動轉(zhuǎn)換,結(jié)果:a+u=22,b+u=-14,定義與賦值同時進行:inta=12;,C語言程序設(shè)計第三章程序的靈魂算法,整型數(shù)據(jù)的溢出此情況稱為“溢出”,運行時不報錯,編程時要注意,整型變量最大值32767,加1后是32768的補碼形式,例3.3整型數(shù)據(jù)的溢出#includevoidmain()inta,b;a=32767;b=a+1;printf(%d,%dn,a,b);,改為:longb;結(jié)果是什么?,C語言程序設(shè)計第三章程序的靈魂算法,整型常量的類型整型常量的值在-32768+32767范圍內(nèi),編譯器認(rèn)為是int類型整型常量的值超過上述范圍,而在2147483648+2147483647范圍內(nèi),編譯器認(rèn)為是long類型當(dāng)系統(tǒng)定義shortint與int占內(nèi)存長度相同,則兩種類型常量均可以賦給int和shortint型變量在整型常量后面加大寫L或小寫l,則告訴編譯器,把該整型常量作為long類型處理。例:123L、0L在整型常量后面加u,則按無符號整型方式存放,負數(shù)轉(zhuǎn)換成補碼再按無符號整型方式存放。,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ù)加減,例3.4浮點型數(shù)據(jù)的舍入誤差#includevoidmain()floata,b;a=123456.789e5;b=a+20;printf(%fn,b);,舍入誤差使1.0/3*3的結(jié)果并不等于1!,浮點型常量的類型浮點型常量一般按雙精度64位處理,數(shù)后加F或f按單精度浮點型常量不分float和double,C語言程序設(shè)計第三章程序的靈魂算法,3.5字符型數(shù)據(jù)字符常量定義:用單引號括起來的單個字符或轉(zhuǎn)義字符字符常量的值:該字符的ASCII碼值定義格式:char變量名=值轉(zhuǎn)義字符:反斜線后面跟一個字符或一個代碼值表示,如aAnt,如a97,A65n10,t9,charch=65與charch=A與char=101是等效的,C語言程序設(shè)計第三章程序的靈魂算法,例3.5轉(zhuǎn)義字符的使用#includevoidmain()printf(“abctderftgn”);printf(“htibbjk”);,C語言程序設(shè)計第三章程序的靈魂算法,字符變量存放字符常量,占用一個字節(jié),存放一個字符定義形式:賦值:charc1,c2;c1=a;c2=b;,字符數(shù)據(jù)在內(nèi)存中的存儲形式及其使用方法以二進制存放字符的ASCII碼值(0255整數(shù))與整數(shù)的存儲形式類似以字符或整數(shù)形式輸出,例3.6向字符變量賦整數(shù)#includevoidmain()charc1,c2;c1=97;c2=98;printf(“%c%cn,c1,c2);printf(“%d%dn,c1,c2);,輸出形式取決于printf函數(shù)中的格式符,格式符為“%c”時輸出的變量值為字符格式符為“%d時輸出的變量值為整數(shù),C語言程序設(shè)計第三章程序的靈魂算法,對字符數(shù)據(jù)進行算術(shù)運算實質(zhì)是對其ASCII值進行算術(shù)運算,例3.7大小寫字母的轉(zhuǎn)換#includevoidmain()charc1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(“%c%c,c1,c2);,字符型與整型間互相賦值,例:互相賦值#includevoidmain()intc1;charc2;c1=a;c2=98;c1=c1-32;c2=c2-32;printf(“%c%c,c1,c2);,小寫字母比大寫字母的ASCII碼大(32)10,C語言程序設(shè)計第三章程序的靈魂算法,字符串常量定義:用雙引號(“”)括起來的字符序列“Howdoyoudo”,“CHINA”,“a”,“$123.45”存儲:每個字符串尾自動加一個0作為字符串結(jié)束標(biāo)志,字符常量與字符串常量不同,例:charch;ch=“A”;,沒有字符串變量,只能用字符數(shù)組存放,C語言程序設(shè)計第三章程序的靈魂算法,3.6變量賦初值變量的使用:先定義,后使用變量定義位置:一般放在函數(shù)開頭變量初始化:可以在定義時賦初值,例:inta=1,b=-3,c;floatdata=3.67;charch=A;intx=1,y=1,z=1;intx=y=1;(),錯!inta=b=c=3,C語言程序設(shè)計第三章程序的靈魂算法,3.7各類數(shù)值型數(shù)據(jù)間的混合運算整型、實型、字符型數(shù)據(jù)間可以混合運算,自動轉(zhuǎn)換什么情況下發(fā)生運算轉(zhuǎn)換-不同類型數(shù)據(jù)混合運算時賦值轉(zhuǎn)換-把一個值賦給與其類型不同的變量時輸出轉(zhuǎn)換-輸出時轉(zhuǎn)換成指定的輸出格式函數(shù)調(diào)用轉(zhuǎn)換-實參與形參類型不一致時轉(zhuǎn)換運算轉(zhuǎn)換規(guī)則:不同類型數(shù)據(jù)運算時先自動轉(zhuǎn)換成同一類型,C語言程序設(shè)計第三章程序的靈魂算法,C語言程序設(shè)計第三章程序的靈魂算法,強制轉(zhuǎn)換(見P56強制類型轉(zhuǎn)換運算符部分)一般形式:(類型名)(表達式)例:(int)(x+y)(int)x+y(double)(3/2)(int)3.6說明:強制轉(zhuǎn)換得到所需類型的中間變量,原變量類型不變,例3.8#includemain()floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);結(jié)果:x=3.600000,i=3,精度損失問題,強制類型轉(zhuǎn)換運算符,表達式僅一個變量時,括號可以省略,C語言程序設(shè)計第三章程序的靈魂算法,3.8算術(shù)運算符和算術(shù)表達式,學(xué)習(xí)運算符應(yīng)注意:運算符功能與運算量關(guān)系要求運算量個數(shù)要求運算量類型運算符優(yōu)先級別結(jié)合方向結(jié)果的類型,C語言程序設(shè)計第三章程序的靈魂算法,算術(shù)運算符和算術(shù)表達式基本算術(shù)運算符:+-*/%結(jié)合方向:從左向右優(yōu)先級:-*/%-+-(2)(3)(4)說明:“-”可為單目運算符時,右結(jié)合性兩整數(shù)相除,結(jié)果為整數(shù)%要求兩側(cè)均為整型數(shù)據(jù)+-*/運算的兩個數(shù)中有一個數(shù)為實數(shù),結(jié)果是double型,例5/2=-5/2.0=,例5%2=-5%2=1%10=5%1=5.5%2,例5/2=2-5/2.0=-2.5,例5%2=1-5%2=-11%10=15%1=05.5%2(),C語言程序設(shè)計第三章程序的靈魂算法,自增、自減運算符+作用:使變量值加1或減1種類:前置+i,-i(先執(zhí)行i+1或i-1,再使用i值)后置i+,i-(先使用i值,再執(zhí)行i+1或i-1),例j=3;k=+j;j=3;k=j+;j=3;printf(“%d”,+j);j=3;printf(“%d”,j+);a=3;b=5;c=(+a)*b;a=3;b=5;c=(a+)*b;,/k=4,j=4,/k=3,j=4,/4,j=4,/3,j=4,/c=20,a=4,/c=15,a=4,C語言程序設(shè)計第三章程序的靈魂算法,幾點說明:,例-i+i=3;printf(“%d”,-i+);,-(i+),/-3,+-不能用于常量和表達式,如5+,(a+b)+-結(jié)合方向:自右向左優(yōu)先級:-+-*/%-+-(2)(3)(4)該運算符常用于循環(huán)語句中,使循環(huán)變量加減1,有關(guān)表達式使用中的問題說明不同系統(tǒng)對運算符和表達式的處理次序不同,盡可能寫通用性強的語句不要寫有歧義和不知系統(tǒng)如何執(zhí)行的程序,C語言程序設(shè)計第三章程序的靈魂算法,3.9賦值運算符和賦值表達式,簡單賦值運算符符號:=格式:變量標(biāo)識符=表達式作用:將一個數(shù)據(jù)(常量或表達式)賦給一個變量左側(cè)必須是變量,不能是常量或表達式,例a=3;d=func();c=d+2;,例3=x-2*y;a+b=3;(),C語言程序設(shè)計第三章程序的靈魂算法,賦值表達式形式:賦值表達式的值與變量值相等,且可嵌套,例:a=b=c=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2),/表達式值為5,a,b,c值為5,/b=5;a=5,/表達式值11,c=6,a=11,/表達式值10,a=10,b=4,c=6,/表達式值5,a=5,b=10,c=2,C語言程序設(shè)計第三章程序的靈魂算法,3.10逗號運算符和逗號表達式形式:表達式1,表達式2,表達式n結(jié)合性:從左向右優(yōu)先級:15,級別最低逗號表達式的值:等于表達式n的值用途:常用于循環(huán)for語句中,例a=3*5,a*4a=3*5,a*4,a+5例x=(a=3,6*3)x=a=3,6*a例a=1;b=2;c=3;printf(“%d,%d,%d”,a,b,c);printf(“%d,%d,%d”,(a,b,c),b,c);,/a=15,表達式值60,/a=15,表達式值20,/賦值表達式,表達式值18,x=18,/逗號表達式,表達式值18,x=3,/1,2,3,/3,2,3,C語言程序設(shè)計第三章程序的靈魂算法,例:逗號表達式使用main()intx,y=7;floatz=4;x=(y=y+6,y/z);printf(x=%dn,x);,本章的內(nèi)容散亂而復(fù)雜,但卻是程序設(shè)計的基礎(chǔ),要認(rèn)真看書,通過編程序才可以深入理解。,C語言程序設(shè)計第三章程序的靈魂算法,課后作業(yè)P6668頁習(xí)題:3.2,3.5(思考)3.3,3.4,3.9,3.12(寫出答案)3.6,3.10(上機驗證)上機:實驗教材:實驗2(做好上機準(zhǔn)備)預(yù)習(xí)第四、第五章,第4章最簡單的C程序設(shè)計順序程序設(shè)計,C語言程序設(shè)計第四章順序程序設(shè)計,C語言概述,賦值語句,數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn),字符數(shù)據(jù)的輸入輸出,格式輸入與輸出,順序結(jié)構(gòu)程序設(shè)計舉例,4.1C語句概述C程序結(jié)構(gòu):一個C程序可以由多個源程序文件構(gòu)成一個源程序文件由若干函數(shù)、預(yù)編譯命令及全局變量聲明部分構(gòu)成函數(shù)包括數(shù)據(jù)定義部分和執(zhí)行部分,執(zhí)行部分是C語言語句,完成對數(shù)據(jù)的操作,C語言程序設(shè)計第四章順序程序設(shè)計,C語句分為5類控制語句:共9種完成一定的控制功能,這些語句能夠根據(jù)一定的測試條件決定某些語句是否被執(zhí)行,如分支、循環(huán)、跳轉(zhuǎn)等語句。,C語言程序設(shè)計第四章順序程序設(shè)計,C語言程序設(shè)計第四章順序程序設(shè)計,空語句:只有一個“;”,什么也不做,表達式語句:由表達式加“;”組成典型的是賦值語句,由賦值表達式加分號構(gòu)成,如:y=x+1是表達式,而y=x+1;則是賦值語句。實際上函數(shù)調(diào)用語句也屬于表達式語句。,函數(shù)調(diào)用語句:由函數(shù)加“;”組成,printf(“ThisisaCprogram”);,a=3;i+;,for(i=0;i100;i+);,復(fù)合語句:用括起來的一組語句,也稱作程序塊。一般形式:,C語言程序設(shè)計第四章順序程序設(shè)計,inti=0,sum=0;while(i0)t=a;不可寫為:if(a=b;)0)t=a;,C語言程序設(shè)計第四章順序程序設(shè)計,表達式中允許出現(xiàn)運算符號、變量、數(shù)值、函數(shù),序號,語句,含義,右側(cè)表達式包括,另一種形式的賦值語句=;,C語言程序設(shè)計第四章順序程序設(shè)計,我們可以理解為:=;,只適合于整型變量,連續(xù)賦值語句,C語言程序設(shè)計第四章順序程序設(shè)計,inta,b,c;a=b=c=1;,inta=b=c=1;,4.3數(shù)據(jù)輸入輸出的概念及在C語言中的實現(xiàn),C語言程序設(shè)計第四章順序程序設(shè)計,標(biāo)準(zhǔn)輸入輸出函數(shù)putchar輸出字符,scanf格式輸入,puts輸出字符串getchar輸入字符,printf格式輸出,gets輸入字符串,所謂數(shù)據(jù)的輸入輸出是從計算機角度出發(fā)的。C語言本身沒有I/O語句,所有I/O都由函數(shù)來實現(xiàn)。C語言的標(biāo)準(zhǔn)庫函數(shù)由編譯系統(tǒng)提供的一系列函數(shù),以庫形式存放在系統(tǒng)中,不是C語言文本的組成部分。庫函數(shù)已編譯成目標(biāo)文件(.obj),在連接階段才與源程序編譯成的目標(biāo)文件相連接,生成可執(zhí)行文件。調(diào)用形式:函數(shù)名(參數(shù)表)注意在調(diào)用C語言庫函數(shù)時,需要使用編譯預(yù)處理命令#include,使相應(yīng)的頭文件包含到用戶源程序中。,#include或#include”stdio.h”,TurboC2.0可以不加#include命令,常用頭文件:stdio.h定義輸入輸出函數(shù)string.h定義字符串操作函數(shù)math.h定義sin、cos等數(shù)學(xué)函數(shù),4.4字符數(shù)據(jù)的輸入輸出putchar函數(shù)(單字符輸出函數(shù)),C語言程序設(shè)計第四章順序程序設(shè)計,輸出一個字符:,格式:putchar(字符);或putchar(字符變量);強調(diào):被輸出的單個字符必須被括起來,運行結(jié)果:BOY,/*例4.1putchar(字符)*/#includevoidmain()putchar(B);putchar(O);putchar(Y);,/*例4.1putchar(字符變量)*/#includevoidmain()chara,b,c;a=B;b=O;c=Y;putchar(a);putchar(b);putchar(c);,結(jié)果當(dāng)然還是一樣的!,輸出控制字符,C語言程序設(shè)計第四章順序程序設(shè)計,/*例putchar(控制字符)*/#includevoidmain()chara,b;a=O;b=k;putchar(a);putchar(n);putchar(b);,運行結(jié)果:Ok,輸出轉(zhuǎn)義字符,/*例putchar()含有轉(zhuǎn)義符*/#includevoidmain()chara;a=B;putchar(101);putchar(a);,運行結(jié)果:AB,getchar函數(shù)(單字符輸入函數(shù))。,C語言程序設(shè)計第四章順序程序設(shè)計,格式:getchar();強調(diào):輸入單個字符后,必須按一次回車,計算機才接受輸入的字符。,#include不能少!,/*例4.2*/#includevoidmain()charc;c=getchar();putchar(c);,運行結(jié)果:aa,4.5格式輸入與輸出printf函數(shù)(格式輸出函數(shù))printf函數(shù)的一般格式,C語言程序設(shè)計第四章順序程序設(shè)計,格式:printf(格式控制,輸出表列);,格式控制:用雙引號括起來的字符串,包含兩種信息格式說明:%修飾符格式字符,指定輸出格式普通字符:原樣輸出輸出表列:要輸出的數(shù)據(jù),可以是變量或表達式,可以沒有,多個時以“,”分隔),例:printf(“%d%d”,a,b);printf(“a=%db=%dn”,a,b);,C語言程序設(shè)計第四章順序程序設(shè)計,/*從最簡單的學(xué)起*/#includevoidmain()printf(“HelloWorld!”);,運行結(jié)果:HelloWorld!,調(diào)用printf()時可以省略#include命令!,格式字符d格式符:輸出十進制整數(shù),有3種用法%d格式:按數(shù)據(jù)實際長度輸出,數(shù)據(jù)范圍-3276832767。,C語言程序設(shè)計第四章順序程序設(shè)計,/*%d格式的printf()函數(shù)使用*/#includevoidmain()inta=3,b=4;printf(“%d%dn”,a,b);printf(“a=%d,b=%dn”,a,b);,運行結(jié)果:34a=3,b=4,格式說明決定最終輸出的格式,格式說明應(yīng)與輸出列表項個數(shù)相同,順序一致,格式說明通常用小寫字母表示,%md格式:m指定輸出字段的寬度數(shù)據(jù)位數(shù)小于m,左端補空格,反之按實際輸出。,C語言程序設(shè)計第四章順序程序設(shè)計,inta=123,b=12345;printf(“%4d%4d”,a,b);,%ld格式:輸出長整型數(shù)據(jù)可以用%mld格式指定輸出列寬,longc=135790printf(“%ldn”,c);printf(“%8ld”,c);int型數(shù)據(jù)的最大值),o格式符:八進制輸出整數(shù)是將內(nèi)存中的二進制位整個按八進制輸出,所以輸出值沒有符號??梢灾付ㄝ敵鰧挾?mo,長整型可以用%lo格式輸出。,C語言程序設(shè)計第四章順序程序設(shè)計,inta=-1;printf(“%d,%o,%8o,%x”,a,a,a,a);,輸出:-1,177777,_177777,ffff,x格式符:十六進制輸出整數(shù)同o格式符,無符號,即無負十六進制數(shù)??梢灾付ㄝ敵鰧挾?mx,長整型可以用%lx格式輸出。,C語言程序設(shè)計第四章順序程序設(shè)計,u格式符:十進制輸出unsigned型數(shù)據(jù)int型可以用%u格式輸出,unsigned型也可以用%d、%o和%x格式輸出。,例4.3無符號數(shù)據(jù)的輸出#includevoidmain()unsignedinta=65535;intb=-2;printf(“a=%d,%o,%x,%un”,a,a,a,a);printf(“b=%d,%o,%x,%un”,b,b,b,b);,運行結(jié)果:a=-1,177777,ffff,65535b=-2,177776,fffe,65534,C語言程序設(shè)計第四章順序程序設(shè)計,c格式符:輸出一個字符值在0255的整數(shù),可以用%c形式輸出為字符,例4.4字符數(shù)據(jù)的輸出#includevoidmain()charc=a;inti=97;printf(“%c,%dn”,c,c);printf(“%c,%dn”,i,i);,運行結(jié)果:a,97a,97,C語言程序設(shè)計第四章順序程序設(shè)計,s格式符:輸出一個字符串有%s,%ms,%-ms,%m.ns,%-m.ns五種用法,例4.5字符串的輸出#includevoidmain()printf(“%3s,%7.2s,%.4s,%-5.3dn”,“CHINA”,“CHINA”,“CHINA”,“CHINA”);,運行結(jié)果:CHINA,_CH,CHIN,CHI_,C語言程序設(shè)計第四章順序程序設(shè)計,f格式符:輸出實數(shù)%f格式:整數(shù)部分全部輸出,小數(shù)6位??梢杂蟹怯行?shù)字輸出,因為單精度有效位7位,雙精度16位。%m.nf格式:占m列,其中n位小數(shù),左補空格。%-m.nf格式:右補空格,例4.8%f格式輸出實數(shù)時指定小數(shù)位數(shù)#includevoidmain()flotf=123.456;printf(“%f%10f%10.2f%.2f%-10.2fn”,f,f,f,f,f);,運行結(jié)果:123.456001_123.456001_123.46_123.46_123.46_,C語言程序設(shè)計第四章順序程序設(shè)計,e格式符:指數(shù)形式輸出實數(shù)%e格式:不指定m和n,小數(shù)6位,指數(shù)部分共5位,其中e和指數(shù)符號各1位,指數(shù)值3位。%m.ne和%-m.ne格式:m、n、-的含義同前面。沒有n時,自動=6,g格式符:輸出實數(shù)可以自動根據(jù)數(shù)值大小選擇f或e格式(選列少的)不輸出無意義的零,C語言程序設(shè)計第四章順序程序設(shè)計,inta=100;printf(“%d”,a);,inta=255;printf(“%x”,a);,inta=8;printf(“%o”,a);,inta=100;printf(“%u”,a);,chara=65;printf(“%c”,a);,printf(“%s”,“ABC”);,floata=567.789;printf(“%e”,a);,floata=567.789;printf(“%f”,a);,floata=567.789;printf(“%g”,a);,printf(“%”);,100,ff,10,100,A,ABC,5.677890e+002,567.789000,567.789,%,scanf函數(shù)(格式輸入函數(shù))一般形式功能:按指定格式從鍵盤讀入數(shù)據(jù),存入地址表指定的存儲單元中,并按回車鍵結(jié)束格式控制:含義同printf函數(shù)地址表列:變量地址或字符串地址,地址間“,”分隔。強調(diào):地址列表中每一項必須以取地址運算符scanf(“%d%d%d”,輸入:3_4_5輸出:3,4,5,C語言程序設(shè)計第四章順序程序設(shè)計,例scanf(“%3d%*4d%f”,輸入12345678765.43則123k,8765.43f,例scanf(“%2d%*3d%2d”,輸入1234567則12a,67b,例scanf(“%3c%2c”,輸入abcde則ac1,dc2,例scanf(“%4d%2d%2d”,輸入19991015則1999yy,10mm,15dd,輸入分隔符的指定一般以空格、TAB或回車鍵作為分隔符輸入數(shù)據(jù)時,遇非法輸入則認(rèn)為數(shù)據(jù)結(jié)束其它字符做分隔符:格式串中兩個格式符間有其它字符,則輸入時對應(yīng)位置也要有相同的字符。,C語言程序設(shè)計第四章順序程序設(shè)計,例scanf(“%d:%d:%d”,輸入12:30:45則12h,30m,45s,例scanf(“%d%c%f”,輸入1234a123o.26則1234a,ab,123c,4.6順序結(jié)構(gòu)程序舉例,C語言程序設(shè)計第四章順序程序設(shè)計,例4.10輸入三角形邊長,求面積#include#includevoidmain()floata,b,c,s,area;scanf(%f,%f,%f,輸入:3,4,6輸出:a=3.00,b=4.00,c=6.00s=6.50area=5.33,C語言程序設(shè)計第四章順序程序設(shè)計,例4.11從鍵盤輸入大寫字母,用小寫字母輸出,#includestdio.hvoidmain()charc1,c2;c1=getchar();printf(%c,%dn,c1,c1);c2=c1+32;printf(%c,%dn,c2,c2);,輸入:A輸出:A,65a,97,C語言程序設(shè)計第四章順序程序設(shè)計,#include#includevoidmain()floata,b,c,disc,x1,x2,p,q;scanf(a=%f,b=%f,c=%f,輸入:a=1,b=3,c=2輸出:x1=-1.00 x2=-2.00,C語言程序設(shè)計第四章順序程序設(shè)計,本章要求程序的三種基本結(jié)構(gòu)及其特點。數(shù)據(jù)輸入輸出函數(shù)及其格式控制。熟悉TurboC環(huán)境的使用,頭文件和幫助系統(tǒng)的使用(ctrl+F1),課后作業(yè)P8690頁習(xí)題:4.7,4.10(思考)4.4,4.5,4.6,4.8,4.9(答案寫在作業(yè)本上)4.4,4.8,4.9(上機驗證)上機:實驗教材:實驗3(做好上機準(zhǔn)備)預(yù)習(xí)第五、六章,第5章選擇結(jié)構(gòu)程序設(shè)計,C語言程序設(shè)計第五章選擇結(jié)構(gòu)程序設(shè)計,關(guān)系運算符和關(guān)系表達式,邏輯運算符和邏輯表達式,if語句,switch語句,程序舉例,選擇結(jié)構(gòu)是三種基本結(jié)構(gòu)之一,其作用是,根據(jù)指定的條件所滿足的情況轉(zhuǎn)而執(zhí)行相應(yīng)的操作。C語言用關(guān)系表達式和邏輯表達式通過if語句實現(xiàn)雙分支選擇,用switch語句實現(xiàn)多分支選擇。,C語言程序設(shè)計第五章選擇結(jié)構(gòu)程序設(shè)計,5.1關(guān)系運算符和關(guān)系表達式“關(guān)系運算”即“比較運算,是對兩個值進行比較,比較的結(jié)果是得到真假兩種值。,A3,關(guān)系表達式,關(guān)系運算符,C語言程序設(shè)計第五章選擇結(jié)構(gòu)程序設(shè)計,關(guān)系運算符及其優(yōu)先次序C語言提供6種關(guān)系運算符種類:=!=結(jié)合方向:自左向右優(yōu)先級別:,(大于)=(大于等于)=(等于)!=(不等于),優(yōu)先級6(高),優(yōu)先級7(低),ca+b/c(a+b)ab!=c/(ab)!=ca=bc/a=(bc),關(guān)系表達式用關(guān)系運算符將兩個表達式連接起來的式子,C語言程序設(shè)計第五章選擇結(jié)構(gòu)程序設(shè)計,關(guān)系表達式的值:是邏輯值“真”或“假”,用1和0表示,ab,(a+b)(b+c),5=3,inta=3,b=2,c=1,d,f;ab(ab)=cb+cbf=abc,/表達式值1,/表達式值1,/表達式值0,/d=1,/f=0,關(guān)系運算幾點注意:,C語言程序設(shè)計第五章選擇結(jié)構(gòu)程序設(shè)計,例5278在C中是允許的,值為,0,例inti=1,j=7,a;a=i+(j%4!=0);則a=,2,例a0結(jié)果為A100結(jié)果為,1,0,結(jié)合方向自左至右,用ASCII值比較,關(guān)系運算中應(yīng)該注意,C語言程序設(shè)計第五章選擇結(jié)構(gòu)程序設(shè)計,注意區(qū)分“=”與“=”inta=0,b=1;if(a=b)printf(“aequaltob”);elseprintf(“anotequaltob”);,應(yīng)避免對實數(shù)作相等或不等于0的判斷如1.0/3.0*3.0=1.0可改寫為:fabs(1.0/3.0*3.0-1.0)b)x=20;y=10;if(xy)printf(“%d”,x);,沒有“;”,C語言程序設(shè)計第五章選擇結(jié)構(gòu)程序設(shè)計,形式二:格式:if(表達式)語句1else語句2執(zhí)行過程:,main()intx,y;x=20;y=10;if(xy)printf(“%d”,x);elseprintf(“%d”,y);,C語言程序設(shè)計第五章選擇結(jié)構(gòu)程序設(shè)計,形式三:格式:if(表達式1)語句1elseif(表達式2)語句2elseif(表達式3)語句3elseif(表達式m)語句melse語句n執(zhí)行過程:,例:if(number500)cost=0.15;elseif(number300)cost=0.1;elseif(number100)cost=0.075;elseif(number50)cost=0.05;elsecost=0;,必須有“;”,C語言程序設(shè)計第五章選擇結(jié)構(gòu)程序設(shè)計,幾點說明:if后面的表達式類型任意,if后面的語句可以是復(fù)合語句,必須要加,if(a=b,考慮下面程序的輸出結(jié)果:main()intx,y;scanf(“%d,%d”,CompileError!,后沒有“;”,C語言程序設(shè)計第五章選擇結(jié)構(gòu)程序設(shè)計,#includevoidmain()inta,b;printf(Enterintegera:);scanf(%d,例:輸入兩個數(shù)并判斷兩數(shù)是否相等,運行:Enterintegera:12Enterintegerb:12a=b,運行:Enterintegera:12Enterintegerb:9a!=b,C語言程序設(shè)計第五章選擇結(jié)構(gòu)程序設(shè)計,#includevoidmain()charc;printf(Enteracharacter:);c=getchar();if(c=0,例:判斷輸入字符種類,運行:Enteracharacter:Thecharacterisacontrolcharacter,運行:Enteracharacter:8Thecharacterisadigit,運行:Enteracharacter:DThecharacterisacapitalletter,運行:Enteracharacter:hThecharacterisalowerletter,運行:Enteracharacter:F1Thecharacterisothercharacter,C語言程序設(shè)計第五章選擇結(jié)構(gòu)程序設(shè)計,#includevoidmain()floata,b,t;scanf(%f,%f,例5.1:輸入兩個實數(shù),按由小到大的次序輸出兩數(shù),輸入:3.6,-3.2輸出:-3.20,3.60,C語言程序設(shè)計第五章選擇結(jié)構(gòu)程序設(shè)計,#includevoidmain()floata,b,c,t;scanf(%f,%f,%f,例5.2:輸入三個數(shù),按由小到大的次序輸出,輸入:3,7,1輸出:1.00,3.00,7.00,If語句的嵌套If語句中又包含一個或多個if語句稱為if語句的嵌套。實際上只要將前述if語句的形式1和2中的內(nèi)嵌語句用一個if語句代替,即成為if語句的嵌套。嵌套的if語句還可以嵌套另一個if語句,形成多重嵌套。一般形式:,C語言程序設(shè)計第五章選擇結(jié)構(gòu)程序設(shè)計,if嵌套的幾種變形,C語言程序設(shè)計第五章選擇結(jié)構(gòu)程序設(shè)計,注意:else總是與前面最近的if配對。,必要時用限定內(nèi)嵌if范圍,例:輸入兩個數(shù)并判斷其大小關(guān)系,C語言程序設(shè)計第五章
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年二手鋼琴租賃合同(2篇)
- 2025年個人試用期勞動合同樣本(三篇)
- 城市公園碎石配送保障協(xié)議
- 國際貿(mào)易攪拌車運輸協(xié)議
- 化工品物流合同安全范本
- 專業(yè)物流合同模板
- 湖南實驗室裝修合同樣本
- 產(chǎn)業(yè)扶持用地居間協(xié)議模板
- 旅游用地居間合同范本
- 會議室簡易改造合同樣本
- 初中英語人教版 八年級上冊 單詞默寫表 漢譯英
- pcs-9611d-x說明書國內(nèi)中文標(biāo)準(zhǔn)版
- 無人機航拍技術(shù)理論考核試題題庫及答案
- T∕CMATB 9002-2021 兒童肉類制品通用要求
- 工序勞務(wù)分包管理課件
- 工藝評審報告
- 中國滑雪運動安全規(guī)范
- 畢業(yè)論文-基于51單片機的智能LED照明燈的設(shè)計
- 酒廠食品召回制度
- 中職數(shù)學(xué)基礎(chǔ)模塊上冊第一章《集合》單元檢測試習(xí)題及參考答案
- 化學(xué)魯科版必修一期末復(fù)習(xí)98頁PPT課件
評論
0/150
提交評論