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