第3章順序控制結(jié)構(gòu)_第1頁
第3章順序控制結(jié)構(gòu)_第2頁
第3章順序控制結(jié)構(gòu)_第3頁
第3章順序控制結(jié)構(gòu)_第4頁
第3章順序控制結(jié)構(gòu)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第三章 順序控制結(jié)構(gòu)3.1 3.1 字符輸入輸出函數(shù)字符輸入輸出函數(shù)3.2 3.2 格式輸入輸出函數(shù)格式輸入輸出函數(shù)在使用標(biāo)準(zhǔn)在使用標(biāo)準(zhǔn)I/OI/O庫函數(shù)時(shí),要用預(yù)編譯命庫函數(shù)時(shí),要用預(yù)編譯命令令“#“#include”include”將將“stdio.h”(standardstdio.h”(standard input & output)input & output)頭文件包含到用戶的源頭文件包含到用戶的源程序中。即程序中。即 # #include include 常用的標(biāo)準(zhǔn)輸入輸出函數(shù)有兩種:用于字常用的標(biāo)準(zhǔn)輸入輸出函數(shù)有兩種:用于字符輸入輸出的函數(shù)符輸入輸出的函數(shù)( (g

2、etchar/putchargetchar/putchar) );用于格式輸入輸出的函數(shù)用于格式輸入輸出的函數(shù)( (scanf/printfscanf/printf) )。1 1、字符輸出函數(shù)、字符輸出函數(shù)putcharputchar 作用:作用:向標(biāo)準(zhǔn)輸出設(shè)備輸出一個(gè)字符,向標(biāo)準(zhǔn)輸出設(shè)備輸出一個(gè)字符,例如:例如:putchar(cputchar(c);); c c可以是字符變量或整型變量。字符輸可以是字符變量或整型變量。字符輸出不僅可以輸出一般字符,也可以輸出出不僅可以輸出一般字符,也可以輸出控制字符,如控制字符,如putchar(nputchar(n);輸出輸出一個(gè)換行符。一個(gè)換行符。 i

3、nclude main() char a, b, c; a=N;b=o;c=062; putchar(a); putchar(b); putchar(.); putchar(c); 運(yùn)行結(jié)果如下:運(yùn)行結(jié)果如下: No.22 2、字符輸入函數(shù)、字符輸入函數(shù)getchargetchar 作用:作用:向標(biāo)準(zhǔn)輸出設(shè)備輸入一個(gè)字符,向標(biāo)準(zhǔn)輸出設(shè)備輸入一個(gè)字符,該函數(shù)沒有參數(shù),其函數(shù)值就是從輸入該函數(shù)沒有參數(shù),其函數(shù)值就是從輸入設(shè)備得到的字符。函數(shù)調(diào)用的一般形式設(shè)備得到的字符。函數(shù)調(diào)用的一般形式為:為: getchargetchar()()#include main()char c1,c2;c1=getc

4、har();c2=getchar();putchar(c1);putchar(c2);運(yùn)行情況如下:運(yùn)行情況如下: xy xy注意:不能按如下形注意:不能按如下形式輸入式輸入 x y1 1、格式輸出函數(shù)、格式輸出函數(shù)printfprintf 作用:作用:向標(biāo)準(zhǔn)輸出設(shè)備輸出若干個(gè)任意類型的向標(biāo)準(zhǔn)輸出設(shè)備輸出若干個(gè)任意類型的數(shù)據(jù)。數(shù)據(jù)。 一般格式:一般格式: printfprintf(格式控制,輸出參數(shù)表列);格式控制,輸出參數(shù)表列); 格式說明,由和格式符組成如%d, %f等。普通字符,原樣輸出,它可以是一般字符,也可以是轉(zhuǎn)義字符。是需要輸出的一些對(duì)象,可以是常量、變量或表達(dá)式。 printf

5、(“a=%d, b=%d, a+b=%dnCONST:%dn ”, a, b, a+b,8) 如果如果a、b的值分別為的值分別為5、20,則輸出結(jié)果為:,則輸出結(jié)果為:a=5, b=20,a+b=25CONST:8如果要以普通字符的形式輸出字符如果要以普通字符的形式輸出字符,則只,則只需要連續(xù)使用兩個(gè)字符即可,此時(shí)并不構(gòu)成需要連續(xù)使用兩個(gè)字符即可,此時(shí)并不構(gòu)成格式控制。例如:格式控制。例如: printf(“%d%dn”, 8);則輸出結(jié)果為:則輸出結(jié)果為: d%8 0 m.n l和和h 格式字符格式字符格式說明的起始符號(hào)格式說明的起始符號(hào)指定左對(duì)齊輸出指定左對(duì)齊輸出指定空位填指定空位填0指定

6、輸出域?qū)捴付ㄝ敵鲇驅(qū)捴付ㄝ敵鼍戎付ㄝ敵鼍容敵鲩L(zhǎng)度修正輸出長(zhǎng)度修正指定輸出類型指定輸出類型Turbo C2.0Turbo C2.0提供的格式字符如下提供的格式字符如下: : 符號(hào)符號(hào) 作作 用用 %d 十進(jìn)制有符號(hào)整數(shù)(整數(shù)不輸出符號(hào))十進(jìn)制有符號(hào)整數(shù)(整數(shù)不輸出符號(hào))%u 十進(jìn)制無符號(hào)整數(shù)十進(jìn)制無符號(hào)整數(shù)%f 浮點(diǎn)數(shù)(隱含輸出六位小數(shù))浮點(diǎn)數(shù)(隱含輸出六位小數(shù))%s 字符串字符串%c 單個(gè)字符單個(gè)字符%p 指針的值指針的值%e,%E 指數(shù)形式的浮點(diǎn)數(shù)指數(shù)形式的浮點(diǎn)數(shù)%x,%X無符號(hào)以十六進(jìn)制表示的整數(shù)(不輸出前導(dǎo)符無符號(hào)以十六進(jìn)制表示的整數(shù)(不輸出前導(dǎo)符0X) %o 無符號(hào)以八進(jìn)制表示的整

7、數(shù)(不輸出前導(dǎo)符無符號(hào)以八進(jìn)制表示的整數(shù)(不輸出前導(dǎo)符0)%g,%G自動(dòng)選擇合適的表示法自動(dòng)選擇合適的表示法 main() long int a=-1; unsigned long u=65536; printf(“a: %d,%u,%o,%xn ”,a,a,a,a); printf(“a: %ld,%lu,%lo,%lxn ”,a,a,a,a); printf(“u:%ld,%lu,%lo,%lxn ”,u,u,u,u); 運(yùn)行結(jié)果如下:運(yùn)行結(jié)果如下:a:-1,65535,177777,ffffa:-1,4294967295,37777777777,ffffffffu:65536,65536

8、,200000,100000000 0000 0000 00011111 1111 1111 11101111 1111 1111 1111-1補(bǔ)碼補(bǔ)碼指定輸出域?qū)捴付ㄝ敵鲇驅(qū)抦.n及及 指定左對(duì)齊輸出()指定左對(duì)齊輸出() main()char c1=A; int c2=98; printf(“c1=%-3c,c2=%3cn”,c1,c2); print(“str1=%-8s,str2=%8sn”,”JXCJDX”,”JXCJDX”); print(“str3=%-8.2s,str4=%8.4sn”,”JXCJDX”,”JXCJDX”); print(“str5=%-.4s,str6=%.4

9、sn”,”information”,” information”); c1A ,c2= bstr1=JXCJDX ,str2= JXCJDXstr3=JX ,str4= JXCJstr5=info,str6=info void main() float f=123.456; printf(“%f,%10f,%10.2f,%.2f,%-10.2f.n”,f,f,f,f,f); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: 123.456001,123.456001, 123.46, 123.46,123.46 . main()float a=1.23; printf(“%08.1f”,a);指定空位填指定空位填0輸出結(jié)

10、果為:輸出結(jié)果為:000001.2用用printfprintf函數(shù)輸出時(shí),要注意以下幾點(diǎn):函數(shù)輸出時(shí),要注意以下幾點(diǎn): 1、數(shù)據(jù)類型應(yīng)與格式說明字符匹配,否則將會(huì)出、數(shù)據(jù)類型應(yīng)與格式說明字符匹配,否則將會(huì)出現(xiàn)錯(cuò)誤?,F(xiàn)錯(cuò)誤。 2、有些系統(tǒng)(如、有些系統(tǒng)(如TC)要求格式字符要用小寫字母,要求格式字符要用小寫字母,如如d不能寫成不能寫成D。 3、可以在格式控制字符串內(nèi)包含轉(zhuǎn)義字符,如可以在格式控制字符串內(nèi)包含轉(zhuǎn)義字符,如 n,t,077等。等。 4、上面介紹的上面介紹的d,o,x,u,c,s,f,e,g等字符,如用等字符,如用“”后面就作為格式符號(hào),否則作為普通字符。如:后面就作為格式符號(hào),否則作

11、為普通字符。如:printf(“c=%-3cf=%6.2fs=%s”,c,f,s); 5、如果想輸出字符如果想輸出字符,則應(yīng)在格式控制字符串則應(yīng)在格式控制字符串中用連續(xù)的兩個(gè)表示。中用連續(xù)的兩個(gè)表示。 6、不同的系統(tǒng)在實(shí)現(xiàn)格式輸出時(shí),輸出結(jié)果可能、不同的系統(tǒng)在實(shí)現(xiàn)格式輸出時(shí),輸出結(jié)果可能會(huì)有小的差異。會(huì)有小的差異。2 2、格式輸入函數(shù)、格式輸入函數(shù)scanfscanf()() 作用:作用:向標(biāo)準(zhǔn)輸出設(shè)備輸入任何類型的向標(biāo)準(zhǔn)輸出設(shè)備輸入任何類型的多個(gè)數(shù)據(jù)。多個(gè)數(shù)據(jù)。 調(diào)用的格式一般為:調(diào)用的格式一般為: scanfscanf( (格式控制,地址列表格式控制,地址列表) );格式說明,與print

12、f函數(shù)的格式說明相似。輸入流數(shù)據(jù)分割由若干個(gè)地址組成的地址,可以是變量的地址,或字符串的首地址,如&a,&b等。1 1)格式)格式說明 * m l和和h 格式字符格式字符格式說明的起始符號(hào)格式說明的起始符號(hào)賦值抑制符賦值抑制符域?qū)捳f明符域?qū)捳f明符長(zhǎng)度修正說明符長(zhǎng)度修正說明符輸入數(shù)據(jù)類型和格式輸入數(shù)據(jù)類型和格式 1.標(biāo)準(zhǔn)標(biāo)準(zhǔn)C在在scanf中,對(duì)中,對(duì)unsigned型數(shù)據(jù),可以型數(shù)據(jù),可以用用u、%d、%o或或%x格式輸入。格式輸入。 2.可以指定輸入數(shù)據(jù)所占列數(shù),系統(tǒng)自動(dòng)按可以指定輸入數(shù)據(jù)所占列數(shù),系統(tǒng)自動(dòng)按它截取所需數(shù)據(jù)。它截取所需數(shù)據(jù)。 例如例如scanf(“%3d%3d

13、”, &a,&b); 輸入輸入123456,系統(tǒng)自動(dòng)將系統(tǒng)自動(dòng)將123賦給賦給a,456賦給賦給b. 例如例如scanf(“%3c%3c”,&ch1,&ch2); 輸入輸入abcdef 把第一個(gè)字符把第一個(gè)字符a賦給賦給ch1,把第四個(gè)字符把第四個(gè)字符d賦給賦給ch2。 格式說明的幾點(diǎn)說明: 3.%后的后的“*”附加說明符,用來表示跳過它相附加說明符,用來表示跳過它相應(yīng)的數(shù)據(jù)。應(yīng)的數(shù)據(jù)。 例如:例如:scanf(“%2d %*3d %2d”,&a,&b); 如果輸入如下信息:如果輸入如下信息:12 345 67 則將則將12賦給賦給a,67賦給賦

14、給b,第二個(gè)數(shù)據(jù)第二個(gè)數(shù)據(jù)345被跳被跳過不賦給任何變量。過不賦給任何變量。 在利用現(xiàn)成的一批數(shù)據(jù)時(shí),有時(shí)不需要其中的在利用現(xiàn)成的一批數(shù)據(jù)時(shí),有時(shí)不需要其中的某些數(shù)據(jù),可以用此方法跳過它們。某些數(shù)據(jù),可以用此方法跳過它們。 4.輸入數(shù)據(jù)時(shí)不能規(guī)定精度。輸入數(shù)據(jù)時(shí)不能規(guī)定精度。 例如:例如:scanf(“%7.2f”,&a); 是不合法的。是不合法的。2)輸入流數(shù)據(jù)分割 A.當(dāng)輸入流中數(shù)據(jù)類型與格式字符要求不符當(dāng)輸入流中數(shù)據(jù)類型與格式字符要求不符時(shí),就認(rèn)為這一數(shù)據(jù)項(xiàng)結(jié)束。時(shí),就認(rèn)為這一數(shù)據(jù)項(xiàng)結(jié)束。 例如:例如:main() int a; char b; float c; printf(“

15、input a b c:”); scanf(“%d%c%f”,&a,&b,&c); printf(“a=%d,b=%c,c=%f”,a,b,c); 一次執(zhí)行結(jié)果:一次執(zhí)行結(jié)果:input a,b,c:1234r1234.567a=1234,b=r,c=1234.567017 B.根據(jù)格式項(xiàng)中指定的域?qū)挿指畛鰯?shù)據(jù)項(xiàng)。根據(jù)格式項(xiàng)中指定的域?qū)挿指畛鰯?shù)據(jù)項(xiàng)。例如:例如:main() int a;floatb,c; scanf(“%2d%3f%4f”,&a,&b,&c); printf(“a=%d,b=%f,c=%f”,a,b,c); 運(yùn)行結(jié)果:運(yùn)行結(jié)果:

16、12345678987654321A=12,b=345.000000,c=6789.000000 C.用分割符。空格、跳格符(用分割符??崭瘛⑻穹╰)、)、換行符換行符(n)都是都是C語言認(rèn)定的數(shù)據(jù)分割符。語言認(rèn)定的數(shù)據(jù)分割符。 C語言還允許在輸入數(shù)據(jù)時(shí)使用自己指定的字符語言還允許在輸入數(shù)據(jù)時(shí)使用自己指定的字符(必須是非格式字符)來分割數(shù)據(jù)。這時(shí)應(yīng)在格(必須是非格式字符)來分割數(shù)據(jù)。這時(shí)應(yīng)在格式控制參數(shù)中的相應(yīng)的位置上出現(xiàn)這些字符。式控制參數(shù)中的相應(yīng)的位置上出現(xiàn)這些字符。 例如:例如:main() int a; float b,c; scanf(“%d,%f,%f”,&a,&

17、;b,&c); printf(“a=%d,b=%f,c=%fn”,a,b,c); 運(yùn)行情況:運(yùn)行情況:12345,678,976.38a=12345,b=678.000000,c=976.380000Scanf函數(shù)在執(zhí)行中應(yīng)注意的問題 1)scanf函數(shù)中的格式控制應(yīng)當(dāng)是變量地址,函數(shù)中的格式控制應(yīng)當(dāng)是變量地址,而不是變量名。如而不是變量名。如scanf(“%d,%d”,a,b);是不對(duì)是不對(duì)的。的。 2)如果在格式控制字符中除了格式說明以外還)如果在格式控制字符中除了格式說明以外還有其它字符,則在輸入數(shù)據(jù)時(shí)應(yīng)該輸入與這些有其它字符,則在輸入數(shù)據(jù)時(shí)應(yīng)該輸入與這些字符相同的字符。字符相同

18、的字符。 例如:例如:scanf(“%d:%d:%d”,&a,&b,&c); 輸入時(shí)只能用以下形式:輸入時(shí)只能用以下形式: 10:35:36 3)在用)在用“c”格式輸入字符時(shí),空格字符和回車格式輸入字符時(shí),空格字符和回車換行符等都作為有效字符輸入。換行符等都作為有效字符輸入。 例如:例如:scanf(“%c%c%c”,&c1,&c2,&c3); 如輸入:如輸入:a b c 4)在輸入數(shù)值數(shù)據(jù)(整型或?qū)嵭停r(shí),遇以下情)在輸入數(shù)值數(shù)據(jù)(整型或?qū)嵭停r(shí),遇以下情況時(shí)該數(shù)據(jù)認(rèn)為結(jié)束。況時(shí)該數(shù)據(jù)認(rèn)為結(jié)束。 A. 遇空格符,或回車換行符或跳格(遇空格符,

19、或回車換行符或跳格(Tab鍵)符。鍵)符。 B.遇寬度結(jié)束,如遇寬度結(jié)束,如3d,只取只取3列。列。 C.遇非法輸入。遇非法輸入。 如:如:scanf(“%d%c%f”,&a,&b,&c); scanf(“%c%f”,&d,&e); 若輸入:若輸入:1234a1123o.26練習(xí) 1、若變量已正確說明為、若變量已正確說明為float類型,要通過語句類型,要通過語句scanf(“%f %f %f”,&a, &b, &c);給給a賦予賦予10.0,b 賦予賦予22.0,c賦予賦予33.0,不正確的輸入形式是:,不正確的輸入形式是: A)10 B)10.0,22.0,33.0 22 33 C)10.0 D)10 22 22.0 33.0 33 2、有以下程序段:、有以下程序段: int n1=10, n2=20; printf(“_”, n1, n2); 要求按以下格式輸出要求按以下格式輸出n1和和n2的值,每個(gè)輸?shù)闹?,每個(gè)輸出行從第一列開始。請(qǐng)?zhí)羁?。出行從第一?/p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論