第3次 輸入和輸出(2)_第1頁(yè)
第3次 輸入和輸出(2)_第2頁(yè)
第3次 輸入和輸出(2)_第3頁(yè)
第3次 輸入和輸出(2)_第4頁(yè)
第3次 輸入和輸出(2)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 預(yù)處理命令和常用庫(kù)函數(shù)預(yù)處理命令和常用庫(kù)函數(shù) 工作任務(wù):編寫(xiě)程序,設(shè)計(jì)如下所示菜單。工作任務(wù):編寫(xiě)程序,設(shè)計(jì)如下所示菜單。 * | -請(qǐng)輸入(請(qǐng)輸入(0-5)- | | 1-信息錄入信息錄入 | | 2-成績(jī)計(jì)算成績(jī)計(jì)算 | | 3-成績(jī)排序成績(jī)排序 | | 4-查詢(xún)成績(jī)查詢(xún)成績(jī) | | 5-修改成績(jī)修改成績(jī) | | 0-退退 出出 | * 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 1 預(yù)處理命令預(yù)處理命令 預(yù)處理命令主要包括文件包含、宏定義和條件編預(yù)處理命令主要包括文件包含、宏定義和條件編 譯,特征是行首以譯,特征

2、是行首以#開(kāi)頭。開(kāi)頭。 1、文件包含命令(、文件包含命令(# include) 作用:將另外的文件包含到本文件中。作用:將另外的文件包含到本文件中。 格式:格式:# include # include “包含文件名包含文件名” 例如:例如:# include 注:包含文件名可以是注:包含文件名可以是.c源文件或源文件或.h的源文件。的源文件。 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 2 常用的庫(kù)函數(shù)常用的庫(kù)函數(shù) 2.1 輸出函數(shù)輸出函數(shù)printf()函數(shù)函數(shù) 一般格式:一般格式:printf(格式字符串格式字符串, 輸出項(xiàng)表輸出項(xiàng)表); 例如例如: printf(radi

3、us=%7.2fnlength=%f,area=%fn, r, l, a); 格式字符串也稱(chēng)格式控制字符串或格式轉(zhuǎn)換字符串,其格式字符串也稱(chēng)格式控制字符串或格式轉(zhuǎn)換字符串,其 中可以包含下列三種字符:中可以包含下列三種字符: (1) 格式指示符:例如格式指示符:例如“%f”, “%7.2f”,等,這些字符用等,這些字符用 來(lái)控制數(shù)據(jù)的輸出格式。來(lái)控制數(shù)據(jù)的輸出格式。 (2) 轉(zhuǎn)義字符:這些字符通常用來(lái)控制光標(biāo)的位置。轉(zhuǎn)義字符:這些字符通常用來(lái)控制光標(biāo)的位置。 (3) 普通字符:除格式指示符和轉(zhuǎn)義字符之外的其他字符,普通字符:除格式指示符和轉(zhuǎn)義字符之外的其他字符, 這些字符輸出時(shí)原樣輸出這些字符

4、輸出時(shí)原樣輸出. 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 格式指示符的一般形式為:格式指示符的一般形式為: %修飾符修飾符格式字符格式字符 1、格式字符、格式字符 printf函數(shù)中常用的格式字符如表函數(shù)中常用的格式字符如表9-1所示。所示。 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 表表9-1 常用的格式字符常用的格式字符 格式格式 字符字符 說(shuō)說(shuō) 明明舉舉 例例輸出結(jié)果輸出結(jié)果 d帶符號(hào)十進(jìn)制整數(shù)格式帶符號(hào)十進(jìn)制整數(shù)格式 printf(%d, 10 );10 printf(%d, A );65 u無(wú)符號(hào)十進(jìn)制整數(shù)格式無(wú)符號(hào)十進(jìn)制整數(shù)格式 printf(

5、%u, 10 );10 printf(%u, A );65 x或或X無(wú)符號(hào)十六進(jìn)制整數(shù)格式無(wú)符號(hào)十六進(jìn)制整數(shù)格式 printf(%x, 10 );a printf(%x, A );41 printf(%X,10);A 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) o無(wú)符號(hào)八進(jìn)制整數(shù)格式無(wú)符號(hào)八進(jìn)制整數(shù)格式 printf(%o, 10 );12 printf(%o, A );101 c字符格式字符格式 printf(%c, 10 );換行換行 printf(%c, A );A f小數(shù)格式小數(shù)格式printf(%f, 1.2345);1.234500 e或或E指數(shù)格式指數(shù)格式 pri

6、ntf(%e, 1.2345);1.234500e+000 printf(%E, 1.2345);1.234500E+000 g或或G 小數(shù)形式或指數(shù)形式,使輸出小數(shù)形式或指數(shù)形式,使輸出 寬度最小,不輸出無(wú)意義的寬度最小,不輸出無(wú)意義的0 printf(%g, 1.2345);1.2345 printf(%g, 0.000001);1e-006 printf(%G, 0.000001);1E-006 %輸出輸出%printf(%);% s輸出字符串輸出字符串printf(%s, abcde);abcde 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 2長(zhǎng)度修飾符長(zhǎng)度修飾符 長(zhǎng)度

7、修飾符長(zhǎng)度修飾符“l(fā)”加在加在%號(hào)和格式字符之間。輸出號(hào)和格式字符之間。輸出 長(zhǎng)整型數(shù)據(jù)的時(shí)候,一定要加長(zhǎng)度修飾符,否則,得長(zhǎng)整型數(shù)據(jù)的時(shí)候,一定要加長(zhǎng)度修飾符,否則,得 不到正確的顯示結(jié)果。例如:不到正確的顯示結(jié)果。例如: long x=7654321; printf(x=%ldn, x); 輸出結(jié)果為:輸出結(jié)果為:x=7654321。 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 3寬度修飾和精度修飾寬度修飾和精度修飾 可以在可以在%號(hào)和格式字符之間加入形如號(hào)和格式字符之間加入形如“m.n”(m、 n均為整數(shù)均為整數(shù))的修飾。其中,的修飾。其中,m為寬度修飾,為寬度修飾,n為

8、精度修為精度修 飾。寬度修飾用來(lái)指定數(shù)據(jù)的輸出寬度。飾。寬度修飾用來(lái)指定數(shù)據(jù)的輸出寬度。精度修飾對(duì)精度修飾對(duì) 不同的格式字符不同的格式字符,作用不同:,作用不同:對(duì)于格式字符對(duì)于格式字符f,用來(lái)指,用來(lái)指 定輸出小數(shù)位的位數(shù);定輸出小數(shù)位的位數(shù);對(duì)于格式字符對(duì)于格式字符e,用來(lái)指定輸出,用來(lái)指定輸出 有效數(shù)字的位數(shù);有效數(shù)字的位數(shù);對(duì)于格式字符對(duì)于格式字符d,用來(lái)指定必須輸出,用來(lái)指定必須輸出 的數(shù)字的個(gè)數(shù)。相關(guān)的例子如表的數(shù)字的個(gè)數(shù)。相關(guān)的例子如表9-2所示。所示。 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 表表9-2 寬度修飾和精度修飾示例寬度修飾和精度修飾示例 輸出語(yǔ)句

9、輸出語(yǔ)句輸出結(jié)果輸出結(jié)果(表示空格表示空格) printf(%5d, 42);42 printf(%5.3d, 42);042 printf(%.3d, 42);042 printf(%7.2f, 1.23456);1.23 printf(%.2f, 1.23456);1.23 printf(%10.2e, 1.23456);1.23e+000 printf(%.2e, 1.23456);1.23e+000 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 4左對(duì)齊修飾左對(duì)齊修飾 在指定了寬度修飾時(shí),如果指定寬度小于數(shù)據(jù)需在指定了寬度修飾時(shí),如果指定寬度小于數(shù)據(jù)需 要的實(shí)際寬度,則數(shù)

10、據(jù)左邊補(bǔ)空格,補(bǔ)夠指定的寬度,要的實(shí)際寬度,則數(shù)據(jù)左邊補(bǔ)空格,補(bǔ)夠指定的寬度, 這種對(duì)齊方式稱(chēng)為這種對(duì)齊方式稱(chēng)為“右對(duì)齊右對(duì)齊”。當(dāng)然,也可以在數(shù)據(jù)。當(dāng)然,也可以在數(shù)據(jù) 的右邊補(bǔ)空格來(lái)補(bǔ)夠指定的寬度,這種對(duì)齊方式稱(chēng)為的右邊補(bǔ)空格來(lái)補(bǔ)夠指定的寬度,這種對(duì)齊方式稱(chēng)為 “左對(duì)齊左對(duì)齊”。指定左對(duì)齊的時(shí)候,使用左對(duì)齊修飾符。指定左對(duì)齊的時(shí)候,使用左對(duì)齊修飾符 “-”,例如語(yǔ)句:,例如語(yǔ)句: printf(%-7.2fn, 1.23456); 輸出結(jié)果為輸出結(jié)果為 1.23(右邊補(bǔ)三個(gè)空格右邊補(bǔ)三個(gè)空格) 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 使用說(shuō)明:使用說(shuō)明: (1) prin

11、tf()函數(shù)可以輸出常量、變量和表達(dá)式的值。函數(shù)可以輸出常量、變量和表達(dá)式的值。 但格式控制字符串中的格式指示符必須按從左到右的但格式控制字符串中的格式指示符必須按從左到右的 順序,與輸出項(xiàng)表中的每個(gè)數(shù)據(jù)一一對(duì)應(yīng),否則出錯(cuò)。順序,與輸出項(xiàng)表中的每個(gè)數(shù)據(jù)一一對(duì)應(yīng),否則出錯(cuò)。 (2) 格式字符格式字符x、e、g可以用小寫(xiě)字母,也可以用大可以用小寫(xiě)字母,也可以用大 寫(xiě)字母。使用大寫(xiě)字母時(shí),輸出數(shù)據(jù)中包含的字母也寫(xiě)字母。使用大寫(xiě)字母時(shí),輸出數(shù)據(jù)中包含的字母也 大寫(xiě)。除了大寫(xiě)。除了x、e、g格式字符外,其他格式字符必須用格式字符外,其他格式字符必須用 小寫(xiě)字母,例如,小寫(xiě)字母,例如,“%f”不能寫(xiě)成不能

12、寫(xiě)成“%F”。 (3) 格式字符緊跟在格式字符緊跟在%后面就作為格式字符,否后面就作為格式字符,否 則 將 作 為 普 通 字 符 使 用則 將 作 為 普 通 字 符 使 用 ( 原 樣 輸 出原 樣 輸 出 ) , 例 如 , 例 如 , “printf(c=%c, f=%fn, c, f);”中的第一個(gè)中的第一個(gè)c和和f都是普都是普 通字符。通字符。 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 2.2 輸入函數(shù)輸入函數(shù)scanf()函數(shù)函數(shù) scanf()函數(shù)的功能是從計(jì)算機(jī)默認(rèn)的輸入設(shè)備函數(shù)的功能是從計(jì)算機(jī)默認(rèn)的輸入設(shè)備(一般一般 指鍵盤(pán)指鍵盤(pán))向計(jì)算機(jī)主機(jī)輸入數(shù)據(jù)。向

13、計(jì)算機(jī)主機(jī)輸入數(shù)據(jù)。 scanf()函數(shù)的一般格式:函數(shù)的一般格式: scanf(格式字符串格式字符串, 輸入項(xiàng)地址表輸入項(xiàng)地址表); 例如:例如: scanf(“%d,%f, 1. 格式指示符格式指示符 格式指示符的一般形式為格式指示符的一般形式為 %【修飾符修飾符】格式字符格式字符 scanf函數(shù)中使用的格式字符如表函數(shù)中使用的格式字符如表9-3所示。所示。 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 表表9-3 常用格式字符常用格式字符 格式字符格式字符說(shuō)說(shuō) 明明 d輸入十進(jìn)制整數(shù)輸入十進(jìn)制整數(shù) o輸入八進(jìn)制整數(shù)輸入八進(jìn)制整數(shù) x輸入十六進(jìn)制整數(shù)輸入十六進(jìn)制整數(shù) u輸入無(wú)

14、符號(hào)十進(jìn)制整數(shù)輸入無(wú)符號(hào)十進(jìn)制整數(shù) c輸入一個(gè)字符輸入一個(gè)字符 f 和和e輸入小數(shù)形式或指數(shù)形式的實(shí)型數(shù)據(jù)輸入小數(shù)形式或指數(shù)形式的實(shí)型數(shù)據(jù) s輸入字符串輸入字符串 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 2寬度修飾寬度修飾 寬度修飾用來(lái)指定輸入數(shù)據(jù)所占列數(shù),例如:寬度修飾用來(lái)指定輸入數(shù)據(jù)所占列數(shù),例如: scanf(%3c, 假設(shè)輸入假設(shè)輸入“abcdefg”,則系統(tǒng)將讀取的,則系統(tǒng)將讀取的“abc”中中 的的“a”賦給變量賦給變量ch1。 3抑制修飾符抑制修飾符 抑制修飾符抑制修飾符“*”表示對(duì)應(yīng)的數(shù)據(jù)讀入后,不賦給表示對(duì)應(yīng)的數(shù)據(jù)讀入后,不賦給 相應(yīng)的變量,該變量由下一個(gè)

15、格式指示符輸入。例如:相應(yīng)的變量,該變量由下一個(gè)格式指示符輸入。例如: scanf(%2d%*2d%3d, 假設(shè)輸入假設(shè)輸入“123456789”,則系統(tǒng)將讀取,則系統(tǒng)將讀取“12”并賦并賦 值給值給num1;讀取;讀取“34”,但舍棄掉,但舍棄掉(“*”的作用的作用);讀取;讀取 “567”并賦值給并賦值給num2。 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 4長(zhǎng)度修飾符長(zhǎng)度修飾符 在輸入長(zhǎng)整型數(shù)據(jù)和雙精度實(shí)型數(shù)據(jù)時(shí),必須在輸入長(zhǎng)整型數(shù)據(jù)和雙精度實(shí)型數(shù)據(jù)時(shí),必須 使用長(zhǎng)度修飾符使用長(zhǎng)度修飾符“l(fā)”,否則,不能得到正確的輸入,否則,不能得到正確的輸入 值。例如:值。例如: l

16、ong x; double y; scanf(%ld %lf, 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 使用說(shuō)明使用說(shuō)明: 調(diào)用調(diào)用scanf()函數(shù)輸入數(shù)據(jù)時(shí),要注意以下幾點(diǎn):函數(shù)輸入數(shù)據(jù)時(shí),要注意以下幾點(diǎn): (1) 如果相鄰兩個(gè)格式指示符之間,不指定數(shù)據(jù)分如果相鄰兩個(gè)格式指示符之間,不指定數(shù)據(jù)分 隔符隔符(如逗號(hào)、冒號(hào)等如逗號(hào)、冒號(hào)等),則相應(yīng)的兩個(gè)輸入數(shù)據(jù)之間至,則相應(yīng)的兩個(gè)輸入數(shù)據(jù)之間至 少用一個(gè)少用一個(gè)空格空格分開(kāi),或者用分開(kāi),或者用Tab鍵鍵分開(kāi),或者輸入一個(gè)分開(kāi),或者輸入一個(gè) 數(shù)據(jù)后,按數(shù)據(jù)后,按回車(chē)回車(chē),然后再輸入下一個(gè)數(shù)據(jù)。例如:,然后再輸入下一個(gè)數(shù)據(jù)。例

17、如: scanf(%d%d, 假設(shè)給假設(shè)給num1輸入輸入10,給,給num2輸入輸入20,則正確的,則正確的 輸入操作為輸入操作為1020 或者:或者: 10 20 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) (2) 格式字符串中出現(xiàn)的格式字符串中出現(xiàn)的普通字符普通字符(包括轉(zhuǎn)義字符形包括轉(zhuǎn)義字符形 式的字符式的字符),務(wù)必,務(wù)必原樣輸入原樣輸入。例如:。例如: scanf(num1=%d,num2=%d, 假設(shè)給假設(shè)給num1輸入輸入10,給,給num2輸入輸入20,正確的輸,正確的輸 入操作為入操作為 num1=10,num2=20 另外,另外,scanf()函數(shù)中,對(duì)于

18、格式字符串內(nèi)的轉(zhuǎn)義函數(shù)中,對(duì)于格式字符串內(nèi)的轉(zhuǎn)義 字符字符(如:如:n),系統(tǒng)并不把它當(dāng)轉(zhuǎn)義字符來(lái)解釋?zhuān)瑥亩?,系統(tǒng)并不把它當(dāng)轉(zhuǎn)義字符來(lái)解釋?zhuān)瑥亩?產(chǎn)生一個(gè)控制操作,產(chǎn)生一個(gè)控制操作,而是將其視為普通字符,所以也而是將其視為普通字符,所以也 要原樣輸入。要原樣輸入。例如:例如: scanf(num1=%d,num2=%dn, 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) (3) 輸入數(shù)據(jù)時(shí),遇到以下情況時(shí)系統(tǒng)認(rèn)為該數(shù)據(jù)輸入數(shù)據(jù)時(shí),遇到以下情況時(shí)系統(tǒng)認(rèn)為該數(shù)據(jù) 輸入結(jié)束。輸入結(jié)束。 遇到空格,或者回車(chē)鍵,或者遇到空格,或者回車(chē)鍵,或者Tab鍵。鍵。 遇到輸入域?qū)挾冉Y(jié)束。例如遇到輸入域

19、寬度結(jié)束。例如%3d,只取三列。,只取三列。 遇到非法輸入。例如,在輸入數(shù)值數(shù)據(jù)時(shí),遇遇到非法輸入。例如,在輸入數(shù)值數(shù)據(jù)時(shí),遇 到字母等非數(shù)值符號(hào)到字母等非數(shù)值符號(hào)(數(shù)值符號(hào)僅由數(shù)字字符數(shù)值符號(hào)僅由數(shù)字字符09、小、小 數(shù)點(diǎn)和正負(fù)號(hào)構(gòu)成數(shù)點(diǎn)和正負(fù)號(hào)構(gòu)成)。 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) (4) 使用格式說(shuō)明符使用格式說(shuō)明符“%c”輸入單個(gè)字符時(shí),空格輸入單個(gè)字符時(shí),空格 和回車(chē)或和回車(chē)或tab等均作為有效字符被輸入。例如:等均作為有效字符被輸入。例如: scanf(%c%c%c, printf(ch1=%c,ch2=%c,ch3=%cn,ch1,ch2,ch3);

20、 假設(shè)輸入:假設(shè)輸入:AB ,則系統(tǒng)將字母,則系統(tǒng)將字母“A”賦值給賦值給 ch1,空格賦值給,空格賦值給ch2,“B”賦值給賦值給ch3。 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 3、單個(gè)字符的輸入、單個(gè)字符的輸入/輸出函數(shù)輸出函數(shù) C語(yǔ)言還提供了語(yǔ)言還提供了putchar()和和getchar()函數(shù),專(zhuān)門(mén)函數(shù),專(zhuān)門(mén) 用來(lái)輸出用來(lái)輸出/輸入單個(gè)字符。輸入單個(gè)字符。 每調(diào)用每調(diào)用putchar()函數(shù)一次,就向顯示器輸出一個(gè)函數(shù)一次,就向顯示器輸出一個(gè) 字符,它的調(diào)用形式如下:字符,它的調(diào)用形式如下: putchar(ch); 其中,其中,ch是字符變量或是字符常量,是字

21、符變量或是字符常量, 例如:例如: putchar(Y); 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 每調(diào)用每調(diào)用getchar()函數(shù)一次,就從鍵盤(pán)接收一個(gè)字函數(shù)一次,就從鍵盤(pán)接收一個(gè)字 符,它的調(diào)用形式如下:符,它的調(diào)用形式如下: ch=getchar( ); getchar()函數(shù)是一個(gè)無(wú)參函數(shù),但調(diào)用函數(shù)是一個(gè)無(wú)參函數(shù),但調(diào)用getchar() 函數(shù)時(shí),后面的括號(hào)不能省略。函數(shù)時(shí),后面的括號(hào)不能省略。getchar()函數(shù)從鍵盤(pán)函數(shù)從鍵盤(pán) 接收一個(gè)字符作為它的返回值。接收一個(gè)字符作為它的返回值。 在輸入時(shí),空格、回車(chē)等都將作為字符讀入,而在輸入時(shí),空格、回車(chē)等都將作為

22、字符讀入,而 且,只有在用戶輸入回車(chē)鍵時(shí),讀入才開(kāi)始執(zhí)行。且,只有在用戶輸入回車(chē)鍵時(shí),讀入才開(kāi)始執(zhí)行。 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 【例例1】 以下程序先從鍵盤(pán)接收一個(gè)字符,然后顯示在顯以下程序先從鍵盤(pán)接收一個(gè)字符,然后顯示在顯 示器上。示器上。 /*程序功能:?jiǎn)蝹€(gè)字符的輸入與輸出程序功能:?jiǎn)蝹€(gè)字符的輸入與輸出*/ #include “stdio.h” (必須加)(必須加) main( ) char ch; ch=getchar( ); putchar(ch); putchar(n); 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 3數(shù)據(jù)類(lèi)型轉(zhuǎn)換數(shù)

23、據(jù)類(lèi)型轉(zhuǎn)換 在在C語(yǔ)言中,整型、實(shí)型和字符型數(shù)據(jù)間可以混語(yǔ)言中,整型、實(shí)型和字符型數(shù)據(jù)間可以混 合運(yùn)算合運(yùn)算(因?yàn)樽址麛?shù)據(jù)與整型數(shù)據(jù)可以通用因?yàn)樽址麛?shù)據(jù)與整型數(shù)據(jù)可以通用)。 如果一個(gè)運(yùn)算符兩側(cè)的操作數(shù)的數(shù)據(jù)類(lèi)型不同,如果一個(gè)運(yùn)算符兩側(cè)的操作數(shù)的數(shù)據(jù)類(lèi)型不同, 則系統(tǒng)按則系統(tǒng)按“先轉(zhuǎn)換,后運(yùn)算先轉(zhuǎn)換,后運(yùn)算”的原則,首先將數(shù)據(jù)自的原則,首先將數(shù)據(jù)自 動(dòng)轉(zhuǎn)換成同一類(lèi)型,然后在同一類(lèi)型數(shù)據(jù)間進(jìn)行運(yùn)算。動(dòng)轉(zhuǎn)換成同一類(lèi)型,然后在同一類(lèi)型數(shù)據(jù)間進(jìn)行運(yùn)算。 數(shù)據(jù)類(lèi)型轉(zhuǎn)換規(guī)則如圖數(shù)據(jù)類(lèi)型轉(zhuǎn)換規(guī)則如圖2-3所示。所示。 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 圖圖3-3 數(shù)據(jù)類(lèi)型轉(zhuǎn)換規(guī)則數(shù)

24、據(jù)類(lèi)型轉(zhuǎn)換規(guī)則 doublefloat long unsigned intchar, short低 高 說(shuō)明:說(shuō)明: (1) 橫向向左的箭頭,表橫向向左的箭頭,表 示必須的轉(zhuǎn)換。示必須的轉(zhuǎn)換。 char和和short型必須轉(zhuǎn)換型必須轉(zhuǎn)換 成成int型,型,float型必須轉(zhuǎn)換型必須轉(zhuǎn)換 成成double型。型。 (2) 縱向向上的箭頭,表縱向向上的箭頭,表 示不同類(lèi)型的轉(zhuǎn)換方向。示不同類(lèi)型的轉(zhuǎn)換方向。 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 例如,例如,int型與型與double型數(shù)據(jù)進(jìn)行混合運(yùn)算,則先型數(shù)據(jù)進(jìn)行混合運(yùn)算,則先 將將int型數(shù)據(jù)轉(zhuǎn)換成型數(shù)據(jù)轉(zhuǎn)換成double

25、型,然后在兩個(gè)同類(lèi)型的數(shù)型,然后在兩個(gè)同類(lèi)型的數(shù) 據(jù)間進(jìn)行運(yùn)算,結(jié)果為據(jù)間進(jìn)行運(yùn)算,結(jié)果為double型。型。 注意:注意:箭頭方向只表示數(shù)據(jù)類(lèi)型由低到高轉(zhuǎn)換,不要箭頭方向只表示數(shù)據(jù)類(lèi)型由低到高轉(zhuǎn)換,不要 理解為理解為int型先轉(zhuǎn)換成型先轉(zhuǎn)換成unsigned型,再轉(zhuǎn)換成型,再轉(zhuǎn)換成long型,型, 最后轉(zhuǎn)換成最后轉(zhuǎn)換成double型。型。 除自動(dòng)轉(zhuǎn)換外,除自動(dòng)轉(zhuǎn)換外,C語(yǔ)言也允許強(qiáng)制轉(zhuǎn)換。數(shù)據(jù)類(lèi)型語(yǔ)言也允許強(qiáng)制轉(zhuǎn)換。數(shù)據(jù)類(lèi)型 強(qiáng)制轉(zhuǎn)換的一般格式為強(qiáng)制轉(zhuǎn)換的一般格式為(要轉(zhuǎn)換成的數(shù)據(jù)類(lèi)型要轉(zhuǎn)換成的數(shù)據(jù)類(lèi)型)(被轉(zhuǎn)換被轉(zhuǎn)換 的表達(dá)式的表達(dá)式)其中,當(dāng)被轉(zhuǎn)換的表達(dá)式是一個(gè)簡(jiǎn)單表達(dá)式其中,當(dāng)被轉(zhuǎn)換的

26、表達(dá)式是一個(gè)簡(jiǎn)單表達(dá)式 時(shí),外面的一對(duì)原括號(hào)可以省略。時(shí),外面的一對(duì)原括號(hào)可以省略。 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 例如:例如: (double)a /*將變量將變量a的值轉(zhuǎn)換成的值轉(zhuǎn)換成double型,等價(jià)于型,等價(jià)于(double)(a)*/ (int)(x+y) /*將將x+y的結(jié)果轉(zhuǎn)換成的結(jié)果轉(zhuǎn)換成int型型*/ (float)5/2 /*將將5轉(zhuǎn)換成實(shí)型,再除以轉(zhuǎn)換成實(shí)型,再除以2(=2.5),等價(jià)于,等價(jià)于(float)(5)/2*/ (float)(5/2) /*將將5整除整除2的結(jié)果轉(zhuǎn)換成實(shí)型的結(jié)果轉(zhuǎn)換成實(shí)型(2.0)*/ 情境情境1 1:學(xué)生成績(jī)

27、輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 練練 習(xí)習(xí) 1、當(dāng)運(yùn)行以下程序時(shí),在鍵盤(pán)上從第一列開(kāi)始輸入、當(dāng)運(yùn)行以下程序時(shí),在鍵盤(pán)上從第一列開(kāi)始輸入 9876543210 ,則程序的輸出結(jié)果是:(,則程序的輸出結(jié)果是:( ) main( ) int a; float b, c; scanf(“%2d%3f%4f”, printf(“na=%d,b=%f,c=%fn”,a,b,c); 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 2、若變量、若變量x=5.16894;以下程序段的輸出結(jié)果是:;以下程序段的輸出結(jié)果是: printf(“%fn”,(int)(x*1000+0.5)/(float

28、)1000); 3、以下程序段的輸出是:、以下程序段的輸出是: float a=3.1415; printf( “|%6.0f | n” , a); printf( “|%10.5f |n”, 12345.678); 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 4、若有以下程序段,其輸出結(jié)果是:、若有以下程序段,其輸出結(jié)果是: int a=0 ,b=0, c=0; c=(a -=a-5), (a=b, b+3); printf( “%d, %d, %d”, a,b,c); 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 5、若變量已正確說(shuō)明,要求語(yǔ)句、若變量已正確說(shuō)明,要求語(yǔ)句 scanf(“ a=%f,b=%f”,給給a賦值賦值3.12、給、給b賦值賦值9.0, 則正確的輸入形式是:則正確的輸入形式是: 情境情境1 1:學(xué)生成績(jī)輸入輸出設(shè)計(jì):學(xué)生成績(jī)輸入輸出設(shè)計(jì) 作業(yè):作業(yè): 1、編寫(xiě)程序,輸入一個(gè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論