第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ù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

4、har();c2=getchar();putchar(c1);putchar(c2);運行情況如下:運行情況如下: xy xy注意:不能按如下形注意:不能按如下形式輸入式輸入 x y1 1、格式輸出函數(shù)、格式輸出函數(shù)printfprintf 作用:作用:向標準輸出設備輸出若干個任意類型的向標準輸出設備輸出若干個任意類型的數(shù)據(jù)。數(shù)據(jù)。 一般格式:一般格式: printfprintf(格式控制,輸出參數(shù)表列);格式控制,輸出參數(shù)表列); 格式說明,由和格式符組成如%d, %f等。普通字符,原樣輸出,它可以是一般字符,也可以是轉(zhuǎn)義字符。是需要輸出的一些對象,可以是常量、變量或表達式。 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òu)成需要連續(xù)使用兩個字符即可,此時并不構(gòu)成格式控制。例如:格式控制。例如: printf(“%d%dn”, 8);則輸出結(jié)果為:則輸出結(jié)果為: d%8 0 m.n l和和h 格式字符格式字符格式說明的起始符號格式說明的起始符號指定左對齊輸出指定左對齊輸出指定空位填指定空位填0指定

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

7、數(shù)(不輸出前導符無符號以八進制表示的整數(shù)(不輸出前導符0)%g,%G自動選擇合適的表示法自動選擇合適的表示法 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); 運行結(jié)果如下:運行結(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補碼補碼指定輸出域?qū)捴付ㄝ敵鲇驅(qū)抦.n及及 指定左對齊輸出()指定左對齊輸出() 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); 運行結(jié)果:運行結(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ù)輸出時,要注意以下幾點: 1、數(shù)據(jù)類型應與格式說明字符匹配,否則將會出、數(shù)據(jù)類型應與格式說明字符匹配,否則將會出現(xiàn)錯誤?,F(xiàn)錯誤。 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等字符,如用等字符,如用“”后面就作為格式符號,否則作為普通字符。如:后面就作為格式符號,否則作

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

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

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

14、給b,第二個數(shù)據(jù)第二個數(shù)據(jù)345被跳被跳過不賦給任何變量。過不賦給任何變量。 在利用現(xiàn)成的一批數(shù)據(jù)時,有時不需要其中的在利用現(xiàn)成的一批數(shù)據(jù)時,有時不需要其中的某些數(shù)據(jù),可以用此方法跳過它們。某些數(shù)據(jù),可以用此方法跳過它們。 4.輸入數(shù)據(jù)時不能規(guī)定精度。輸入數(shù)據(jù)時不能規(guī)定精度。 例如:例如:scanf(“%7.2f”,&a); 是不合法的。是不合法的。2)輸入流數(shù)據(jù)分割 A.當輸入流中數(shù)據(jù)類型與格式字符要求不符當輸入流中數(shù)據(jù)類型與格式字符要求不符時,就認為這一數(shù)據(jù)項結(jié)束。時,就認為這一數(shù)據(jù)項結(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ù)格式項中指定的域?qū)挿指畛鰯?shù)據(jù)項。根據(jù)格式項中指定的域?qū)挿指畛鰯?shù)據(jù)項。例如:例如:main() int a;floatb,c; scanf(“%2d%3f%4f”,&a,&b,&c); printf(“a=%d,b=%f,c=%f”,a,b,c); 運行結(jié)果:運行結(jié)果:

16、12345678987654321A=12,b=345.000000,c=6789.000000 C.用分割符。空格、跳格符(用分割符??崭?、跳格符(t)、)、換行符換行符(n)都是都是C語言認定的數(shù)據(jù)分割符。語言認定的數(shù)據(jù)分割符。 C語言還允許在輸入數(shù)據(jù)時使用自己指定的字符語言還允許在輸入數(shù)據(jù)時使用自己指定的字符(必須是非格式字符)來分割數(shù)據(jù)。這時應在格(必須是非格式字符)來分割數(shù)據(jù)。這時應在格式控制參數(shù)中的相應的位置上出現(xiàn)這些字符。式控制參數(shù)中的相應的位置上出現(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); 運行情況:運行情況:12345,678,976.38a=12345,b=678.000000,c=976.380000Scanf函數(shù)在執(zhí)行中應注意的問題 1)scanf函數(shù)中的格式控制應當是變量地址,函數(shù)中的格式控制應當是變量地址,而不是變量名。如而不是變量名。如scanf(“%d,%d”,a,b);是不對是不對的。的。 2)如果在格式控制字符中除了格式說明以外還)如果在格式控制字符中除了格式說明以外還有其它字符,則在輸入數(shù)據(jù)時應該輸入與這些有其它字符,則在輸入數(shù)據(jù)時應該輸入與這些字符相同的字符。字符相同

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

19、或回車換行符或跳格(Tab鍵)符。鍵)符。 B.遇寬度結(jié)束,如遇寬度結(jié)束,如3d,只取只取3列。列。 C.遇非法輸入。遇非法輸入。 如:如:scanf(“%d%c%f”,&a,&b,&c); scanf(“%c%f”,&d,&e); 若輸入:若輸入:1234a1123o.26練習 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的值,每個輸?shù)闹?,每個輸出行從第一列開始。請?zhí)羁?。出行從第一?/p>

溫馨提示

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

評論

0/150

提交評論