簡(jiǎn)介:第3章簡(jiǎn)單的C程序設(shè)計(jì),哈爾濱工業(yè)大學(xué)計(jì)算機(jī)學(xué)院蘇小紅SXHHITEDUCN,C語(yǔ)言大學(xué)實(shí)用教程,內(nèi)容提要,字符輸入輸出函數(shù)格式輸入輸出函數(shù),C語(yǔ)言中的語(yǔ)句,變量聲明語(yǔ)句INTX,Y表達(dá)式語(yǔ)句III1空語(yǔ)句復(fù)合語(yǔ)句{TXXYYT}控制語(yǔ)句,順序結(jié)構(gòu)程序的基本操作,如何在程序中給變量賦值賦值表達(dá)式語(yǔ)句賦值表達(dá)式;TOTALMPOW1R,N如何進(jìn)行數(shù)據(jù)的輸入輸出輸入從標(biāo)準(zhǔn)輸入設(shè)備上輸入數(shù)據(jù)到計(jì)算機(jī)內(nèi)存輸出將計(jì)算機(jī)內(nèi)存中的數(shù)據(jù)送到標(biāo)準(zhǔn)輸出設(shè)備C語(yǔ)言中輸入輸出操作通過(guò)調(diào)用標(biāo)準(zhǔn)庫(kù)函數(shù)來(lái)實(shí)現(xiàn)INCLUDE“STDIOH“在當(dāng)前目錄和TC指定的目錄中找該文件INCLUDE在由TC指定的文件目錄中找該文件,復(fù)合語(yǔ)句,在什么情況下使用復(fù)合語(yǔ)句條件語(yǔ)句和循環(huán)語(yǔ)句在語(yǔ)法上只允許帶一條語(yǔ)句當(dāng)分支和循環(huán)中需要進(jìn)行多項(xiàng)操作時(shí),{TXXYYT},被當(dāng)作一條語(yǔ)句來(lái)處理,,例31,MAIN{INTA0{INTA1PRINTF“INAD\N“,A}PRINTF“OUTAD\N“,A},INA1OUTA0,空語(yǔ)句,空語(yǔ)句有什么作用什么也不做,只表示語(yǔ)句的存在自頂向下程序設(shè)計(jì)時(shí)用在那些未完成的模塊中延時(shí)用的空循環(huán),MAIN{DATAINITIALZEDATAPROCESSDATAOUTPUT},DATAINITIALZE{},字符輸入輸出函數(shù),字符輸出函數(shù)PUTCHARCH輸出一個(gè)字符CH字符輸入函數(shù)GETCHAR無(wú)參數(shù)函數(shù)值為從輸入設(shè)備接收的字符,INCLUDEMAIN{CHARCHPRINTF“PRESSAKEYANDTHENPRESSENTER“CHGETCHARPRINTF“YOUPRESSED“PUTCHARCHPUTCHAR\N},運(yùn)行程序,PRESSAKEYANDTHENPRESSENTER,311,,,,,,,,A↙,YOUPRESSED,A,例32,該語(yǔ)句的作用是什么,格式輸出函數(shù),格式輸出函數(shù)PRINTF格式控制字符串,輸出項(xiàng)表列輸出若干個(gè)任意類型的數(shù)據(jù)PRINTF“ADBF“,A,B,函數(shù)名,輸出表列,普通字符,,,,輸出常用輸出函數(shù)PRINTF將信息送到標(biāo)準(zhǔn)輸出(一般送到屏幕或特定窗口)PRINTF格式描述串,其他參數(shù)函數(shù)調(diào)用形式函數(shù)名,括號(hào),函數(shù)參數(shù),多個(gè)參數(shù)用逗號(hào)分隔,語(yǔ)句程序基本單位,以分號(hào)為結(jié)束符PRINTF“GOODMORNING\N“一個(gè)完成輸出的語(yǔ)句,PRINTF的功能PRINTF格式描述串,其他參數(shù)第一個(gè)參數(shù)應(yīng)是字符串,可以有其他參數(shù)。如果“格式描述串”里沒(méi)有,也沒(méi)有其他參數(shù),PRINTF輸出格式描述串。,PRINTF“WELCOME\NTO\NBEIJING\N“輸出三行字符WELCOMETOBEIJING,轉(zhuǎn)換描述(描述數(shù)據(jù)的輸出轉(zhuǎn)換方式)格式串中開(kāi)始的段意義特殊(“轉(zhuǎn)換描述”)每個(gè)轉(zhuǎn)換描述說(shuō)明一參數(shù)的輸出形式(轉(zhuǎn)換方式)。特別注意()轉(zhuǎn)換描述和“其他參數(shù)”個(gè)數(shù)一致。轉(zhuǎn)換描述和對(duì)應(yīng)參數(shù)的類型必須一致。,輸出整數(shù)PRINTF”TESTDDD\N“,2,3,5,輸出長(zhǎng)整數(shù)PRINTF”TESTLDD“,3L,5,D以帶符號(hào)十進(jìn)制整數(shù)輸出O以八進(jìn)制無(wú)符號(hào)整數(shù)輸出(無(wú)前導(dǎo)0)X以十六進(jìn)制無(wú)符號(hào)整數(shù)輸出(無(wú)前導(dǎo)0X)U以十進(jìn)制無(wú)符號(hào)整數(shù)輸出C以字符形式輸出單個(gè)字符S輸出一個(gè)字符串F以小數(shù)形式輸出浮點(diǎn)數(shù)(6位小數(shù))E以標(biāo)準(zhǔn)指數(shù)形式輸出(6位小數(shù))G選用F,E中輸出寬度較小的一種格式,PRINTF格式字符,L長(zhǎng)整型整數(shù),加在D、O、X、U前LLONGDOUBLE型數(shù),加在F、E、G前M表示數(shù)據(jù)占用的最小寬度數(shù)據(jù)寬度大于M,按實(shí)際寬度輸出數(shù)據(jù)寬度小于M時(shí),補(bǔ)空格N對(duì)實(shí)數(shù)表示輸出N位小數(shù)對(duì)字符串表示最多輸出的字符個(gè)數(shù)改變輸出內(nèi)容的對(duì)齊方式缺省為右對(duì)齊,PRINTF附加格式說(shuō)明符,INCLUDEMAIN{FLOATF110015799,F21255,F317INTN1123,N245,N36PRINTF“PRINTFWITHOUTWIDTHORPRECISIONSPECIFICATIONS\N“PRINTF“F\NF\NF\N“,F1,F2,F3PRINTF“D\ND\ND\N“,N1,N2,N3PRINTF“PRINTFWITHWIDTHANDPRECISIONSPECIFICATIONS\N“PRINTF“52F\N61F\N30F\N“,F1,F2,F3PRINTF“\NM\N\N\N“,N1,N2,N3},例38,格式輸入函數(shù),格式輸入函數(shù)SCANF格式控制字符串,地址表列SCANF“D,F”,,格式輸入函數(shù),常見(jiàn)錯(cuò)誤SCANF“D,F\N”,SCANF“D,F”,A,BSCANF“72F“,,D以帶符號(hào)十進(jìn)制形式輸入整型數(shù)據(jù)O以八進(jìn)制無(wú)符號(hào)形式輸入(無(wú)前導(dǎo)0)X以十六進(jìn)制無(wú)符號(hào)形式輸入(無(wú)前導(dǎo)0X)C以字符形式輸入單個(gè)字符S輸入字符串,以非空字符開(kāi)始,遇第一個(gè)空白字符結(jié)束F以小數(shù)形式輸入浮點(diǎn)數(shù)E以標(biāo)準(zhǔn)指數(shù)形式輸入,SCANF格式字符,L加在D、O、X、U前輸入長(zhǎng)整型加在F、E前輸入雙精度型L加在F、E前輸入LONGDOUBLE型H加在D、O、X前輸入短整型M表示數(shù)據(jù)占用的寬度本輸入項(xiàng)在讀入后不賦給相應(yīng)的變量,SCANF附加格式說(shuō)明符,注調(diào)用函數(shù)PRINTF時(shí),F(xiàn)LOAT類型的參數(shù)都是轉(zhuǎn)化為DOUBLE類型后再傳遞的,所以F可以輸出DOUBLE和FLOAT兩種類型的數(shù)據(jù),不必用LF輸出DOUBLE型數(shù)據(jù)。調(diào)用函數(shù)SCANF時(shí),如果是FLOAT類型則對(duì)應(yīng)輸入轉(zhuǎn)換符為F,而DOUBLE類型的輸入轉(zhuǎn)換符為L(zhǎng)F。例FLOATXDOUBLEYSCANF“FLF”,PRINTF“XF,YF”,X,Y,INCLUDEMAIN{INTA,BPRINTF“PLEASEINPUTAANDB“SCANF“DD“,PRINTF“AD,BD,ABD\N“,A,B,AB},PLEASEINPUTAANDB,A12,B34,AB46,1234↙,例,遇空格、TAB鍵時(shí)結(jié)束,INCLUDEMAIN{INTA,BPRINTF“PLEASEINPUTAANDB“SCANF“DD“,PRINTF“AD,BD,ABD\N“,A,B,AB},PLEASEINPUTAANDB,A12,B34,AB46,12↙,例,遇回車鍵時(shí)結(jié)束,34↙,INCLUDEMAIN{INTA,BPRINTF“PLEASEINPUTAANDB“SCANF““,PRINTF“AD,BD,ABD\N“,A,B,AB},PLEASEINPUTAANDB,A12,B34,AB46,1234↙,例,遇寬度時(shí)結(jié)束,INCLUDEMAIN{INTA,BPRINTF“PLEASEINPUTAANDB“SCANF““,PRINTF“AD,BD,ABD\N“,A,B,AB},PLEASEINPUTAANDB,A12,B3,AB15,123A↙,例,遇非法輸入時(shí)結(jié)束,INCLUDEMAIN{INTA,BPRINTF“PLEASEINPUTAANDB“SCANF“D,D“,PRINTF“AD,BD,ABD\N“,A,B,AB},PLEASEINPUTAANDB,A12,B34,AB46,12,34↙,例,這里逗號(hào)需要原樣輸入,INCLUDEMAIN{INTA,BPRINTF“PLEASEINPUTAANDB“SCANF“2D“,PRINTF“AD,BD,ABD\N“,A,B,AB},PLEASEINPUTAANDB,A12,B56,AB68,123456↙,例39,跳過(guò)一個(gè)輸入項(xiàng),INCLUDEMAIN{INTA,BSCANF“DD“,PRINTF“AD,BD\N“,A,B},問(wèn)題1當(dāng)要求程序輸出結(jié)果為A12,B34時(shí),用戶應(yīng)該如何輸入數(shù)據(jù),1234↙,輸入數(shù)據(jù)的格式控制例310,INCLUDEMAIN{INTA,BSCANF“DD“,PRINTF“AD,BD\N“,A,B},問(wèn)題2當(dāng)限定用戶輸入數(shù)據(jù)以逗號(hào)為分隔符,即輸入數(shù)據(jù)格式為12,34↙時(shí),應(yīng)修改程序中的哪條語(yǔ)句怎樣修改,SCANF“D,D“,,輸入數(shù)據(jù)的格式控制例310,INCLUDEMAIN{INTA,BSCANF“DD“,PRINTF“AD,BD\N“,A,B},問(wèn)題3語(yǔ)句SCANF“DD“,修改為SCANF“AD,BD“,時(shí),用戶應(yīng)該如何輸入數(shù)據(jù),A12,B34↙,輸入數(shù)據(jù)的格式控制例310,INCLUDEMAIN{INTA,BSCANF“DD“,PRINTF“AD,BD\N“,A,B},問(wèn)題4限定用戶輸入數(shù)據(jù)為以下格式為1234↙同時(shí)要求程序輸出結(jié)果為A12,B34,SCANF““,,輸入數(shù)據(jù)的格式控制例310,INCLUDEMAIN{INTA,BSCANF“DD“,PRINTF“AD,BD\N“,A,B},問(wèn)題5限定用戶輸入數(shù)據(jù)為以下格式為12↙34↙同時(shí)要求程序輸出結(jié)果為A“12“,B“34“,SCANF“DD“,PRINTF“A\“D\“,B\“D\“\N“,A,B,輸入數(shù)據(jù)的格式控制例310,INCLUDEMAIN{INTA,BSCANF“DD“,PRINTF“AD,BD\N“,A,B},問(wèn)題6設(shè)計(jì)程序使得用戶可以以任意字符(回車、空格、制表符、逗號(hào)、其它)作為分隔符進(jìn)行數(shù)據(jù)的輸入,SCANF“DCD“,,輸入數(shù)據(jù)的格式控制例310,INCLUDEMAIN{INTDATA1,DATA2,SUMCHAROPPRINTF“PLEASEENTERTHEEXPRESSIONDATA1DATA2\N“SCANF“DCD“,PRINTF“DCDD\N“,DATA1,OP,DATA2,DATA1DATA2},PLEASEENTERTHEEXPRESSIONDATA1DATA2,第1次測(cè)試,123↙,1231293141,,,C格式符存在的問(wèn)題及其解決例311,INCLUDEMAIN{INTDATA1,DATA2,SUMCHAROPPRINTF“PLEASEENTERTHEEXPRESSIONDATA1DATA2\N“SCANF“DCD“,PRINTF“DCDD\N“,DATA1,OP,DATA2,DATA1DATA2},PLEASEENTERTHEEXPRESSIONDATA1DATA2,第2次測(cè)試,123↙,12315,C格式符存在的問(wèn)題及其解決例311,INCLUDEMAIN{INTDATA1,DATA2,SUMCHAROPPRINTF“PLEASEENTERTHEEXPRESSIONDATA1DATA2\N“SCANF“DCD“,PRINTF“DCDD\N“,DATA1,OP,DATA2,DATA1DATA2},PLEASEENTERTHEEXPRESSIONDATA1DATA2,第3次測(cè)試,123↙,12315,C格式符存在的問(wèn)題及其解決例311,INCLUDEMAIN{INTACHARBFLOATCPRINTF“PLEASEINPUTANINTEGER“SCANF“D“,PRINTF“INTEGERD\N“,APRINTF“PLEASEINPUTACHARACTER“SCANF“C“,PRINTF“CHARACTERC\N“,BPRINTF“PLEASEINPUTAFLOATNUMBER“SCANF“F“,PRINTF“FLOATF\N“,C},PLEASEINPUTANINTEGER,希望得到的運(yùn)行結(jié)果,12↙,PLEASEINPUTANCHARACTER,A↙,PLEASEINPUTAFLOATNUMBER,35↙,INTEGER12,CHARACTERA,FLOATNUMBER3500000,C格式符存在的問(wèn)題及其解決例312,INCLUDEMAIN{INTACHARBFLOATCPRINTF“PLEASEINPUTANINTEGER“SCANF“D“,PRINTF“INTEGERD\N“,APRINTF“PLEASEINPUTACHARACTER“SCANF“C“,PRINTF“CHARACTERC\N“,BPRINTF“PLEASEINPUTAFLOATNUMBER“SCANF“F“,PRINTF“FLOATF\N“,C},PLEASEINPUTANINTEGER,結(jié)果好像很奇怪嘛,12↙,PLEASEINPUTANCHARACTER,CHARACTER,PLEASEINPUTAFLOATNUMBER,35↙,INTEGER12,,FLOATNUMBER3500000,C格式符存在的問(wèn)題及其解決例312,INCLUDEMAIN{INTACHARBFLOATCPRINTF“PLEASEINPUTANINTEGER“SCANF“D“,PRINTF“INTEGERD\N“,APRINTF“PLEASEINPUTACHARACTER“SCANF“C“,PRINTF“CHARACTERC\N“,BPRINTF“PLEASEINPUTAFLOATNUMBER“SCANF“F“,PRINTF“FLOATF\N“,C},C格式符存在的問(wèn)題及其解決例312,輸入數(shù)據(jù)12后,按的回車鍵被當(dāng)作有效字符讀給字符型變量B了。,INCLUDEMAIN{INTACHARBFLOATCPRINTF“PLEASEINPUTANINTEGER“SCANF“D“,PRINTF“INTEGERD\N“,APRINTF“PLEASEINPUTACHARACTER“GETCHAR/吸收掉前面輸入整型數(shù)據(jù)后面鍵入的回車字符/SCANF“C“,PRINTF“CHARACTERC\N“,BPRINTF“PLEASEINPUTAFLOATNUMBER“SCANF“F“,PRINTF“FLOATF\N“,C},PLEASEINPUTANINTEGER,程序修改后得到的運(yùn)行結(jié)果,12↙,PLEASEINPUTANCHARACTER,A↙,PLEASEINPUTAFLOATNUMBER,35↙,INTEGER12,CHARACTERA,FLOATNUMBER3500000,C格式符存在的問(wèn)題及其解決例312,INCLUDEMAIN{INTACHARBFLOATCPRINTF“PLEASEINPUTANINTEGER“SCANF“D“,PRINTF“INTEGERD\N“,APRINTF“PLEASEINPUTACHARACTER“SCANF“1S“,/第2種解決方案/PRINTF“CHARACTERC\N“,BPRINTF“PLEASEINPUTAFLOATNUMBER“SCANF“F“,PRINTF“FLOATF\N“,C},C格式符存在的問(wèn)題及其解決例312,這里S前面的符號(hào)是數(shù)字1,不是字母L的小寫將程序的C改為1S用于讀入單個(gè)字符,由于1S完全忽略空格和回車符,可以避免回車符被作為單個(gè)字符讀入。,INCLUDEMAIN{INTDATA1,DATA2,SUMCHAROPPRINTF“PLEASEENTERTHEEXPRESSIONDATA1DATA2\N“SCANF“D1SD“,PRINTF“DCDD\N“,DATA1,OP,DATA2,DATA1DATA2},123↙,123↙,12↙↙3↙,再回頭來(lái)看例311,以任意分隔符輸入加法算式,可能嗎,這一章我們學(xué)習(xí)了,字符輸入函數(shù)GETCHAR字符輸出函數(shù)PUTCHAR格式輸入函數(shù)SCANF格式輸出函數(shù)PRINTF格式控制問(wèn)題難點(diǎn),幾點(diǎn)忠告,不要拘泥于細(xì)節(jié)不要死記硬背在使用中慢慢掌握,作業(yè),作業(yè)P6467,35,36課堂練習(xí)32,33,3413,
下載積分: 4 賞幣
上傳時(shí)間:2024-01-06
頁(yè)數(shù): 45
大?。?1.02(MB)
子文件數(shù):