材料機(jī)電11級C語言第三章_第1頁
材料機(jī)電11級C語言第三章_第2頁
材料機(jī)電11級C語言第三章_第3頁
材料機(jī)電11級C語言第三章_第4頁
材料機(jī)電11級C語言第三章_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、3.1 3.2 3.3 3.4 C語言語句概述語言語句概述 字符數(shù)據(jù)的輸入輸出字符數(shù)據(jù)的輸入輸出 格式化輸入輸出函數(shù)格式化輸入輸出函數(shù) 順序結(jié)構(gòu)程序設(shè)計(jì)舉例順序結(jié)構(gòu)程序設(shè)計(jì)舉例 本章主要內(nèi)容本章主要內(nèi)容 第三章第三章 順序結(jié)構(gòu)程序設(shè)計(jì)順序結(jié)構(gòu)程序設(shè)計(jì) 問題:一年有春夏秋冬四季,按序執(zhí)行,做事亦問題:一年有春夏秋冬四季,按序執(zhí)行,做事亦 有先后順序,那么有先后順序,那么C C語言在編寫程序時(shí)可以采語言在編寫程序時(shí)可以采 用這樣的順序結(jié)構(gòu)嗎?用這樣的順序結(jié)構(gòu)嗎? 按程序書寫的前后順序依次按序執(zhí)行按程序書寫的前后順序依次按序執(zhí)行。 C C語言同樣提供了這種最簡單的語言同樣提供了這種最簡單的 程序設(shè)計(jì)

2、結(jié)構(gòu):順序結(jié)構(gòu)。程序設(shè)計(jì)結(jié)構(gòu):順序結(jié)構(gòu)。 本章要點(diǎn)本章要點(diǎn) 本章難點(diǎn)本章難點(diǎn) n C語言的基本語句語言的基本語句 n 字符輸入輸出函數(shù)字符輸入輸出函數(shù) n 格式化輸入輸出函數(shù)格式化輸入輸出函數(shù) 3-1 C語言語句語言語句 概述概述 C語言語句的概述語言語句的概述 通過前兩二章的學(xué)習(xí)可以看出,一個(gè)通過前兩二章的學(xué)習(xí)可以看出,一個(gè)C語言語言 程序可以由若干個(gè)源程序文件組成,這些源程序程序可以由若干個(gè)源程序文件組成,這些源程序 文件可以單獨(dú)編譯,經(jīng)連接而形成可執(zhí)行文件。文件可以單獨(dú)編譯,經(jīng)連接而形成可執(zhí)行文件。 一個(gè)源文件可以由若干個(gè)函數(shù)和編譯命令組成。一個(gè)源文件可以由若干個(gè)函數(shù)和編譯命令組成。 而

3、一個(gè)函數(shù)則由數(shù)據(jù)定義和執(zhí)行語句組成。而一個(gè)函數(shù)則由數(shù)據(jù)定義和執(zhí)行語句組成。 從上述兩章的示例中可知,程序應(yīng)該包括數(shù)從上述兩章的示例中可知,程序應(yīng)該包括數(shù) 據(jù)描述(由數(shù)據(jù)定義部分來實(shí)現(xiàn))和數(shù)據(jù)操作據(jù)描述(由數(shù)據(jù)定義部分來實(shí)現(xiàn))和數(shù)據(jù)操作 (由語句來實(shí)現(xiàn))。數(shù)據(jù)描述主要定義數(shù)據(jù)結(jié)構(gòu)(由語句來實(shí)現(xiàn))。數(shù)據(jù)描述主要定義數(shù)據(jù)結(jié)構(gòu) (用數(shù)據(jù)類型表示)和數(shù)據(jù)初值。數(shù)據(jù)操作的任(用數(shù)據(jù)類型表示)和數(shù)據(jù)初值。數(shù)據(jù)操作的任 務(wù)是對已提供的數(shù)據(jù)進(jìn)行加工,它是通過使用各務(wù)是對已提供的數(shù)據(jù)進(jìn)行加工,它是通過使用各 種語句來實(shí)現(xiàn)。種語句來實(shí)現(xiàn)。 C語言的語句分類語言的語句分類 根據(jù)功能,根據(jù)功能,C語言的語句可以分為以下

4、語言的語句可以分為以下 幾類。幾類。 簡單語句簡單語句 包括表達(dá)式語句、函數(shù)調(diào)用語句。包括表達(dá)式語句、函數(shù)調(diào)用語句。 空語句空語句 復(fù)合語句復(fù)合語句 流程控制語句流程控制語句 包括結(jié)構(gòu)化語句(條件語句、循環(huán)語句)、包括結(jié)構(gòu)化語句(條件語句、循環(huán)語句)、 非結(jié)構(gòu)化造句和非限定轉(zhuǎn)向語句。非結(jié)構(gòu)化造句和非限定轉(zhuǎn)向語句。 一、簡單語句一、簡單語句 1. 表達(dá)式語句表達(dá)式語句 由一個(gè)表達(dá)式加上一個(gè)分號構(gòu)成表達(dá)式語由一個(gè)表達(dá)式加上一個(gè)分號構(gòu)成表達(dá)式語 句。最典型的是賦值表達(dá)式構(gòu)成賦值語句。句。最典型的是賦值表達(dá)式構(gòu)成賦值語句。 例如:例如: a=3 是一個(gè)賦值表達(dá)式是一個(gè)賦值表達(dá)式 而而 a=3; 則是一

5、條賦值語句則是一條賦值語句 可以看到一個(gè)表達(dá)式的最后加上一個(gè)分號可以看到一個(gè)表達(dá)式的最后加上一個(gè)分號 就成了一個(gè)語句。一個(gè)語句必須在最后出現(xiàn)分就成了一個(gè)語句。一個(gè)語句必須在最后出現(xiàn)分 號,它是號,它是C語句的結(jié)束標(biāo)志,是語句中不可缺語句的結(jié)束標(biāo)志,是語句中不可缺 少的一部分。少的一部分。 表達(dá)式語句可分為運(yùn)算符表達(dá)式語句、賦值表達(dá)式語句可分為運(yùn)算符表達(dá)式語句、賦值 語句,其作用是計(jì)算表達(dá)式或改變變量的值。語句,其作用是計(jì)算表達(dá)式或改變變量的值。 例:例: 表達(dá)式表達(dá)式 語句語句 i=i+1 i=i+1; i+ i+; x+y x+y; 2. 函數(shù)調(diào)用語句函數(shù)調(diào)用語句 由一次函數(shù)調(diào)用加上一個(gè)分號

6、構(gòu)成一個(gè)語句。由一次函數(shù)調(diào)用加上一個(gè)分號構(gòu)成一個(gè)語句。 其作用主要是完成特定的任務(wù)。其作用主要是完成特定的任務(wù)。 函數(shù)調(diào)用語句的一般格式:函數(shù)調(diào)用語句的一般格式: 函數(shù)名函數(shù)名( (參數(shù)列表參數(shù)列表);); 例:例: printf(“Hello!n”); getchar(); clrscr( ); 3. 空語句空語句 其形式為:其形式為: ; 目的:不做任何操作,常用于循環(huán)結(jié)構(gòu)中目的:不做任何操作,常用于循環(huán)結(jié)構(gòu)中 某種滿足條件的需要。如延時(shí)的作用或用來某種滿足條件的需要。如延時(shí)的作用或用來 作被轉(zhuǎn)向點(diǎn),或者構(gòu)成空循環(huán)。作被轉(zhuǎn)向點(diǎn),或者構(gòu)成空循環(huán)。 二、復(fù)合語句二、復(fù)合語句 用一對花括號用一對

7、花括號 把多個(gè)語句括起來的語把多個(gè)語句括起來的語 句序列就構(gòu)成一個(gè)復(fù)合語句。在語法上相當(dāng)句序列就構(gòu)成一個(gè)復(fù)合語句。在語法上相當(dāng) 于一條語句。于一條語句。 例:例: i+; j+=i; printf(“%dn”,j); 在在C語言中,一對花括號語言中,一對花括號“ ”不僅可用作函不僅可用作函 數(shù)體的開頭和結(jié)尾的標(biāo)志,也可用作復(fù)合語句的開數(shù)體的開頭和結(jié)尾的標(biāo)志,也可用作復(fù)合語句的開 頭和結(jié)尾的標(biāo)志。程序中,在出現(xiàn)單語句的地方可頭和結(jié)尾的標(biāo)志。程序中,在出現(xiàn)單語句的地方可 以出現(xiàn)復(fù)合語句。用一對花括號把若干語句括起來以出現(xiàn)復(fù)合語句。用一對花括號把若干語句括起來 構(gòu)成一個(gè)語句組,一個(gè)復(fù)合語句在語法上等

8、同于一構(gòu)成一個(gè)語句組,一個(gè)復(fù)合語句在語法上等同于一 個(gè)單語句,在一對花括號內(nèi)的語句數(shù)量不限。并且個(gè)單語句,在一對花括號內(nèi)的語句數(shù)量不限。并且 在復(fù)合語句內(nèi),不僅可以有執(zhí)行語句,還可以有定在復(fù)合語句內(nèi),不僅可以有執(zhí)行語句,還可以有定 義部分,但定義部分應(yīng)該出現(xiàn)在可執(zhí)行語句的前面。義部分,但定義部分應(yīng)該出現(xiàn)在可執(zhí)行語句的前面。 應(yīng)當(dāng)特別注意的是,在復(fù)合語句的花括號應(yīng)當(dāng)特別注意的是,在復(fù)合語句的花括號“”“” 后不能加分號。后不能加分號。 復(fù)合語句在書寫時(shí)采用向右縮進(jìn)的方式,復(fù)合語句在書寫時(shí)采用向右縮進(jìn)的方式, 其中的多個(gè)語句相對于花括號向右縮進(jìn)一個(gè)制其中的多個(gè)語句相對于花括號向右縮進(jìn)一個(gè)制 表位。

9、表位。 n說明語句說明語句 變量定義或說明變量定義或說明 數(shù)據(jù)類型定義數(shù)據(jù)類型定義 函數(shù)聲明等語句函數(shù)聲明等語句 n可執(zhí)行語句:用來向計(jì)算機(jī)發(fā)出操作指令??蓤?zhí)行語句:用來向計(jì)算機(jī)發(fā)出操作指令。 簡單語句簡單語句 表達(dá)式語句:表達(dá)式語句:表達(dá)式;表達(dá)式;例:例: i+; 函數(shù)調(diào)用語句函數(shù)調(diào)用語句 控制語句控制語句 空語句:只有分號空語句:只有分號“;”組成的語句,程序執(zhí)組成的語句,程序執(zhí) 行時(shí)不產(chǎn)生任何動(dòng)作。行時(shí)不產(chǎn)生任何動(dòng)作。 復(fù)合語句:把多個(gè)語句用括號復(fù)合語句:把多個(gè)語句用括號“”括起來組成括起來組成 的一個(gè)語句的一個(gè)語句 1 1)條件判斷語句:)條件判斷語句:ifif語句、語句、switc

10、hswitch語句等語句等 ; 2) 2) 循環(huán)執(zhí)行語句:循環(huán)執(zhí)行語句:do-whiledo-while語句、語句、whilewhile語語 句、句、forfor語句;語句; 3) 3) 轉(zhuǎn)向語句:轉(zhuǎn)向語句:breakbreak語句、語句、gotogoto語句、語句、 continuecontinue語句、語句、returnreturn語句。語句。 C語言中各種語句有:語言中各種語句有: 三、字符輸入輸出函數(shù)三、字符輸入輸出函數(shù) C語言無語言無I/O(輸入輸入/輸出輸出)語句,語句,I/O操作由函數(shù)實(shí)現(xiàn)操作由函數(shù)實(shí)現(xiàn), 因此應(yīng)通過預(yù)處理命令因此應(yīng)通過預(yù)處理命令 #include ,將輸入,將輸

11、入/輸輸 出的庫函數(shù)包含進(jìn)來,才可以調(diào)用此類函數(shù)。出的庫函數(shù)包含進(jìn)來,才可以調(diào)用此類函數(shù)。 C語言中輸入輸出字符時(shí),除在語言中輸入輸出字符時(shí),除在scanf()函數(shù)中指定函數(shù)中指定 %c格式輸入字符和在格式輸入字符和在printf()函數(shù)中指定函數(shù)中指定%c格式輸出格式輸出 字符外,還可以采用字符外,還可以采用C語言提供的專門的字符輸入輸出語言提供的專門的字符輸入輸出 函數(shù)。函數(shù)。 1. 單個(gè)字符的輸出函數(shù)單個(gè)字符的輸出函數(shù)putchar()函數(shù)函數(shù) putchar()函數(shù)的格式:函數(shù)的格式: putchar(ch); 其中其中ch可以是一個(gè)字符變量或常量,也可以是一可以是一個(gè)字符變量或常量,

12、也可以是一 個(gè)轉(zhuǎn)義字符。個(gè)轉(zhuǎn)義字符。 putchar()函數(shù)的作用:向終端輸出一個(gè)字符。函數(shù)的作用:向終端輸出一個(gè)字符。 說明說明 putchar()函數(shù)只能用于單個(gè)字符的輸出,且一函數(shù)只能用于單個(gè)字符的輸出,且一 次只能輸出一個(gè)字符。另外,從功能角度來看,次只能輸出一個(gè)字符。另外,從功能角度來看, printf()函數(shù)可以完全代替函數(shù)可以完全代替putchar()函數(shù)。函數(shù)。 在程序中使用在程序中使用putchar()函數(shù),務(wù)必牢記:在程函數(shù),務(wù)必牢記:在程 序(或文件)的開頭加上編譯預(yù)處理命令(也稱包含序(或文件)的開頭加上編譯預(yù)處理命令(也稱包含 命令),即:命令),即: #includ

13、e stdio.h 或或 #include 表示要使用的函數(shù),包含在標(biāo)準(zhǔn)輸入輸出(表示要使用的函數(shù),包含在標(biāo)準(zhǔn)輸入輸出(stdio) 頭文件(頭文件(.h)中。中。(注意注意#號與號與include之間不要留空格)之間不要留空格) 舉例:舉例: 例例3-1 putchar() 函數(shù)的格式和使用方法。函數(shù)的格式和使用方法。 #include stdio.h /*編譯預(yù)處理命令:文件包含編譯預(yù)處理命令:文件包含*/ void main() char ch1=N, ch2=E, ch3=W; putchar(ch1); putchar(ch2); putchar(ch3);/*輸出輸出*/ putc

14、har(n); putchar(ch1); putchar(n); /*輸出輸出ch1的值,并換行的值,并換行*/ putchar(E); putchar(n);/*輸出字符輸出字符E,并換行并換行*/ putchar(ch3); putchar(n); 程序運(yùn)行結(jié)果如下:程序運(yùn)行結(jié)果如下: NEW N E W 2. 單個(gè)字符的輸入函數(shù)單個(gè)字符的輸入函數(shù)getchar()函數(shù)函數(shù) getchar()函數(shù)的格式:函數(shù)的格式: getchar(); getchar()函數(shù)的作用:從系統(tǒng)隱含的輸入設(shè)備函數(shù)的作用:從系統(tǒng)隱含的輸入設(shè)備 (如鍵盤)輸入一個(gè)字符。另外,從功能角度來看,(如鍵盤)輸入一個(gè)字

15、符。另外,從功能角度來看, scanf()函數(shù)可以完全代替函數(shù)可以完全代替getchar()函數(shù)。函數(shù)。 說明說明: getchar()函數(shù)只能用于函數(shù)只能用于單個(gè)字符的輸入單個(gè)字符的輸入,一次輸,一次輸 入一個(gè)字符。入一個(gè)字符。 程序中要使用程序中要使用getchar()函數(shù),必須在程序(或文函數(shù),必須在程序(或文 件)的開頭加上編譯預(yù)處理命令,即:件)的開頭加上編譯預(yù)處理命令,即: #include stdio.h 或或 #include 舉例舉例: 例例3-2 說明說明getchar()函數(shù)的格式和作用。函數(shù)的格式和作用。 #include stdio.h/*文件包含文件包含*/ voi

16、d main() char ch; printf(Please input two character: ); ch=getchar();/*輸入輸入1個(gè)字符并賦給個(gè)字符并賦給ch */ putchar(ch);putchar(n); putchar(getchar(); /*輸入一個(gè)字符并輸出輸入一個(gè)字符并輸出*/ putchar(n); 程序運(yùn)行情況如下:程序運(yùn)行情況如下: Please input two characters: ab a b 格式格式: : putcharputchar( ( chch ) ) 參數(shù)參數(shù): : chch為一個(gè)字符常量、變量或一個(gè)轉(zhuǎn)義字符為一個(gè)字符常量、變

17、量或一個(gè)轉(zhuǎn)義字符 功能:把字符功能:把字符chch輸出到顯示器上輸出到顯示器上 返返回回值:正常,為顯示的代碼值;出錯(cuò),為值:正常,為顯示的代碼值;出錯(cuò),為EOF(-1)EOF(-1) 字符輸出函數(shù)字符輸出函數(shù) 3.2 3.2 字符數(shù)據(jù)的輸入輸出字符數(shù)據(jù)的輸入輸出 #include #include main()main() char char chch=B;=B; putchar(chputchar(ch); /); /* *輸出變量的值字符輸出變量的值字符B B* */ / putchar(nputchar(n); /); /* *輸出一個(gè)換行符輸出一個(gè)換行符* */ / putchar(

18、Bputchar(B); /); /* *直接輸出字符直接輸出字符B B* */ / putchar(nputchar(n); /); /* *輸出一個(gè)換行符輸出一個(gè)換行符* */ / putchar(0 x42); / putchar(0 x42); /* *使用使用ASCIIASCII值輸出字符值輸出字符B B* */ / putchar(nputchar(n); /); /* *輸出一個(gè)換行符輸出一個(gè)換行符* */ / 運(yùn)行結(jié)果:運(yùn)行結(jié)果:B B B B B B 例3-3 格式格式: :getchargetchar( )( ) 功能:從鍵盤讀一字符功能:從鍵盤讀一字符 返返回回值:正常,

19、返回讀取的代碼值;出錯(cuò)值:正常,返回讀取的代碼值;出錯(cuò), ,返回返回EOF(-1)EOF(-1) #include #include main()main() char c; char c; c= c=getchargetchar(); (); putchar(cputchar(c);); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: 字符輸入函數(shù) 例3-4 3-3 格式化輸入格式化輸入/輸出函數(shù)輸出函數(shù) 為了讓計(jì)算機(jī)處理各種數(shù)據(jù),首先就應(yīng)該把源為了讓計(jì)算機(jī)處理各種數(shù)據(jù),首先就應(yīng)該把源 數(shù)據(jù)輸入到計(jì)算機(jī)中;計(jì)算機(jī)處理結(jié)束后,再將數(shù)據(jù)輸入到計(jì)算機(jī)中;計(jì)算機(jī)處理結(jié)束后,再將 目標(biāo)數(shù)據(jù)信息以人能夠識別的方式輸出。目標(biāo)數(shù)據(jù)信

20、息以人能夠識別的方式輸出。C語言中語言中 的輸入輸出操作,是由的輸入輸出操作,是由C語言編譯系統(tǒng)提供的庫函語言編譯系統(tǒng)提供的庫函 數(shù)來實(shí)現(xiàn)。數(shù)來實(shí)現(xiàn)。 一、格式化輸出函數(shù)一、格式化輸出函數(shù)printf printf函數(shù)是函數(shù)是C語言提供的標(biāo)準(zhǔn)輸出函數(shù),語言提供的標(biāo)準(zhǔn)輸出函數(shù), printf()函數(shù)的作用是向計(jì)算機(jī)系統(tǒng)默認(rèn)的輸出設(shè)函數(shù)的作用是向計(jì)算機(jī)系統(tǒng)默認(rèn)的輸出設(shè) 備(一般指終端或顯示器)輸出一個(gè)或多個(gè)任意備(一般指終端或顯示器)輸出一個(gè)或多個(gè)任意 類型的數(shù)據(jù)。類型的數(shù)據(jù)。 1. printf()函數(shù)的一般格式函數(shù)的一般格式 printf()函數(shù)的一般格式如下:函數(shù)的一般格式如下: print

21、fprintf(“(“格式字符串格式字符串” ” ,輸出項(xiàng)表,輸出項(xiàng)表); 例例3-5 已知圓半徑已知圓半徑radius=1.5,求圓周長和圓面積。求圓周長和圓面積。 #include void main() float radius,length,area,pi=3.1415926; radius=1.5; length=2*pi*radius;/*求圓周長求圓周長*/ area=pi*radius*radius; /*求圓面積求圓面積*/ printf(“radius=%f n”,radius);/*輸出圓半徑輸出圓半徑*/ /*輸出圓周長、面積輸出圓周長、面積*/ printf(“l(fā)en

22、gth=%7.2f ,area=%7.2f n”,length,area); 程序運(yùn)行結(jié)果如下:程序運(yùn)行結(jié)果如下: radius=1.500000 length= 9.42,area= 7.07 通過上例可以看出,調(diào)用通過上例可以看出,調(diào)用printf( )函數(shù)輸出數(shù)據(jù)時(shí),函數(shù)輸出數(shù)據(jù)時(shí), 其輸出的格式是由其輸出的格式是由printf()函數(shù)中雙號內(nèi)的格式字符串來說函數(shù)中雙號內(nèi)的格式字符串來說 明的,每個(gè)格式說明都必須用明的,每個(gè)格式說明都必須用“%”開頭,以一個(gè)格式字開頭,以一個(gè)格式字 符作為結(jié)束,在此之間可以根據(jù)需要插入符作為結(jié)束,在此之間可以根據(jù)需要插入“寬度說明寬度說明”、 左對齊符號

23、左對齊符號“-”、前導(dǎo)零號、前導(dǎo)零號“0”等。等。 格式:格式:printfprintf(“(“格式控制串格式控制串”,輸出表,輸出表列列) ) 功能:按指定格式向顯示器輸出數(shù)據(jù)功能:按指定格式向顯示器輸出數(shù)據(jù) 返返回回值:正常,返回輸出字節(jié)數(shù);出錯(cuò),返回值:正常,返回輸出字節(jié)數(shù);出錯(cuò),返回EOF(-1)EOF(-1) 輸出表輸出表列列:要輸出的數(shù)據(jù)(可以沒有,多:要輸出的數(shù)據(jù)(可以沒有,多 個(gè)時(shí)以個(gè)時(shí)以“,”分隔)分隔) 格式控制串:包含兩種信息格式控制串:包含兩種信息 格式說明:格式說明: %修飾符修飾符格式字符格式字符,用于指,用于指 定輸出格式定輸出格式 普通字符或轉(zhuǎn)義序列:原樣輸出普

24、通字符或轉(zhuǎn)義序列:原樣輸出 格式字符格式字符 格式輸出函數(shù)格式輸出函數(shù) d,i x,X o u c s e,E f g % 十六進(jìn)制無符號整數(shù)十六進(jìn)制無符號整數(shù) 不帶符號十進(jìn)制整數(shù)不帶符號十進(jìn)制整數(shù) 十進(jìn)制整數(shù)十進(jìn)制整數(shù) 指數(shù)形式浮點(diǎn)小數(shù)指數(shù)形式浮點(diǎn)小數(shù) 單一字符單一字符 字符串字符串 八進(jìn)制無符號整數(shù)八進(jìn)制無符號整數(shù) 小數(shù)形式浮點(diǎn)小數(shù)小數(shù)形式浮點(diǎn)小數(shù) e e和和f f中較短一種中較短一種 百分號本身百分號本身 int a=567;printf ( “%d”,a); int a=255;printf(“%x”,a); int a=65;printf(“%o”,a); int a=567;pri

25、ntf(“%u”,a); char a=65;printf(“%c”,a); printf(“%s”,“ABC”); float a=567.789;printf(“%e”,a); float a=567.789;printf(“%f”,a); float a=567.789;printf(“%g”,a); printf(“%”); 567 ff 101 567 A ABC 5.677890e+02 567.789000 567.789 % 說明說明 格式字符要用小寫格式字符要用小寫 格式字符與輸出項(xiàng)個(gè)數(shù)應(yīng)相同,按先后順序一一對應(yīng)格式字符與輸出項(xiàng)個(gè)數(shù)應(yīng)相同,按先后順序一一對應(yīng) 輸出轉(zhuǎn)換輸出轉(zhuǎn)換

26、:格式字符與輸出項(xiàng)類型不一致格式字符與輸出項(xiàng)類型不一致,自動(dòng)按指定格自動(dòng)按指定格 式輸出式輸出 例例 main()main() unsigned unsigned intint u=65535; u=65535; printf(”uprintf(”u=%dn,u);=%dn,u); 輸出結(jié)果:輸出結(jié)果: u=65535 /u=65535 /* *VCVC環(huán)境下環(huán)境下* */ / u=-1 u=-1 / /* *TCTC環(huán)境下環(huán)境下* */ / 例例 intint a=3,b=4; a=3,b=4; printf(“%dprintf(“%d %dn”,a,b); %dn”,a,b); print

27、f(“aprintf(“a=%d , b=%=%d , b=%dn”,a,bdn”,a,b);); 例例 intint a=3,b=4; a=3,b=4; printf(“%dprintf(“%d %dn”,a,b); %dn”,a,b); printf(“aprintf(“a=%d , b=%dn”,a,b);=%d , b=%dn”,a,b); 輸出結(jié)果輸出結(jié)果: 3 4: 3 4 a=3, b=4 a=3, b=4 11 11 11 11 11 11 11 1165535 格式字符格式字符 附加格式說明符(修飾符)附加格式說明符(修飾符) .n 對實(shí)數(shù)對實(shí)數(shù),指定小數(shù)點(diǎn)后位數(shù)指定小數(shù)點(diǎn)后

28、位數(shù)(四舍五入四舍五入) 對字符串對字符串,指定實(shí)際輸出位數(shù)指定實(shí)際輸出位數(shù) 修飾符修飾符功功 能能 m 輸出數(shù)據(jù)域?qū)捿敵鰯?shù)據(jù)域?qū)?數(shù)據(jù)長度數(shù)據(jù)長度m,左補(bǔ)空格左補(bǔ)空格;否則按實(shí)際輸出否則按實(shí)際輸出 輸出數(shù)據(jù)在域內(nèi)左對齊(缺省右對齊輸出數(shù)據(jù)在域內(nèi)左對齊(缺省右對齊) )- 指定在有符號數(shù)指定在有符號數(shù)的正數(shù)前顯示正號的正數(shù)前顯示正號(+)(+) + 輸出數(shù)值時(shí)指定左面不使用的空位置自動(dòng)填輸出數(shù)值時(shí)指定左面不使用的空位置自動(dòng)填0 0 0 在八進(jìn)制和十六進(jìn)制數(shù)前顯示前導(dǎo)在八進(jìn)制和十六進(jìn)制數(shù)前顯示前導(dǎo)0 0,0 0 x x# 在在d,o,x,ud,o,x,u前,指定輸出精度為前,指定輸出精度為lon

29、glong型型 在在e,f,ge,f,g前,指定輸出精度為前,指定輸出精度為doubledouble型型 l 例例 int a=1234; float f=123.456; char ch=a; printf(“%8d,%2dn”,a,a); printf(“%f,%8f,%8.1f,%.2f,%.2en”,f,f,f,f,f); printf(“%3cn”,ch); 運(yùn)行運(yùn)行 1234,1234 結(jié)果:結(jié)果: 123.456000,123.456000, 123.5,123.46,1.23e+02 a 例例 #include void main() static char a=Hello,w

30、orld!; printf(%sn%15sn%10.5sn%2.5sn%.3sn,a,a,a,a,a); 運(yùn)行結(jié)果:運(yùn)行結(jié)果:Hello,world! Hello,world! Hello Hello Hel 格式修飾符 m和n的應(yīng) 用舉例 例例 int a=1234; float f=123.456; static char c=“Hello,world!”; printf(“%8d,%-8dn”,a,a); printf(“%10.2f,%-10.1fn”,f,f); printf(“%10.5s,%-10.3sn”,c,c); 運(yùn)行結(jié)果:運(yùn)行結(jié)果: 1234,1234 123.46,12

31、3.5 Hello,Hel 格式修飾符格式修飾符“-”的應(yīng)用舉例的應(yīng)用舉例 例例 int a=1234; float f=123.456; printf(“%08dn”,a); printf(“%010.2fn”,f); printf(“%0+8dn”,a); printf(“0+10.2fn”,f); 例例 int a=123; printf(“%o,%#o,%X,%#Xn”,a,a,a,a); 例例 long a=65536; printf(“%d,%8ldn”,a, a); 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 /00001234

32、 /0000123.46 /000+1234 /000+123.56 /173,0173,7B,0X7B /65536, 65536 格式修飾符格式修飾符“0、+”的應(yīng)用舉例的應(yīng)用舉例 格式修飾符格式修飾符“#”的應(yīng)用舉例的應(yīng)用舉例 格式修飾符格式修飾符“l(fā)”的應(yīng)用舉例的應(yīng)用舉例 2. 格式字符串的作用格式字符串的作用 “格式字符串格式字符串”也稱也稱“轉(zhuǎn)換控制字符串轉(zhuǎn)換控制字符串”, 可以包含三種字符:可以包含三種字符: (1)格式指示符。格式指示符的一般形式如下:)格式指示符。格式指示符的一般形式如下: %標(biāo)志標(biāo)志寬度寬度.精度精度F|N|h|l類型類型 常用的類型字符如教材常用的類型字符

33、如教材P39P39頁表頁表3-13-1所示。所示。 表表3-1 3-1 printfprintf( )( )的基本格式碼的基本格式碼 格式碼格式碼輸出說明輸出說明舉舉 例例輸出結(jié)果輸出結(jié)果 d/i帶符號十進(jìn)制定點(diǎn)格式帶符號十進(jìn)制定點(diǎn)格式int a=975311;printf(“%d”,a);975310 u無符號十進(jìn)制定點(diǎn)格式無符號十進(jìn)制定點(diǎn)格式int a=975311;printf(“%u”,a);975310 o無符號八進(jìn)制定點(diǎn)格式無符號八進(jìn)制定點(diǎn)格式int a=975311;printf(“%o”,a);3560717 x/X無符號十六進(jìn)制定點(diǎn)格式無符號十六進(jìn)制定點(diǎn)格式int a=975

34、311;printf(“%x”,a);ee1cf c字符字符int a=68;printf(“%c”,a);D s字符串字符串char s=”abcde”; printf(“%s”,s);abcde f小數(shù)形式十進(jìn)制小數(shù)形式十進(jìn)制double a=123.456;printf(%f,a);123.456000 e/E科學(xué)記數(shù)法科學(xué)記數(shù)法double a=123.456;printf(%E,a);1.234560E+002 g/Gf和和e中短者,不印無效中短者,不印無效0double a=123.456;printf(%G,a);123.456 p輸出地址,格式由實(shí)現(xiàn)定義輸出地址,格式由實(shí)現(xiàn)定義

35、double a=123.456;printf(%p,0012FF74(a的地址)的地址) %printf(%);% 輸出不同類型的數(shù)據(jù),要使用不同的類型轉(zhuǎn)換輸出不同類型的數(shù)據(jù),要使用不同的類型轉(zhuǎn)換 字符。字符。 類型轉(zhuǎn)換字符類型轉(zhuǎn)換字符d以帶符號的十進(jìn)制整數(shù)形以帶符號的十進(jìn)制整數(shù)形 式輸出。式輸出。 d 以帶符號的十進(jìn)制形式輸出整數(shù)(正數(shù)不輸出符號)以帶符號的十進(jìn)制形式輸出整數(shù)(正數(shù)不輸出符號) o 以以8進(jìn)制無符號形式輸出整數(shù)(不輸出前導(dǎo)符進(jìn)制無符號形式輸出整數(shù)(不輸出前導(dǎo)符O) x(X) 以以16進(jìn)制無符號形式輸出整數(shù)(不輸出前導(dǎo)符進(jìn)制無符號形式輸出整數(shù)(不輸出前導(dǎo)符Ox) u 以無符號

36、以無符號10進(jìn)制形式輸出整數(shù)進(jìn)制形式輸出整數(shù) c 以字符形式輸出一個(gè)字符以字符形式輸出一個(gè)字符 s 輸出字符串輸出字符串 f 以小數(shù)形式輸出單、雙精度數(shù),隱含輸出以小數(shù)形式輸出單、雙精度數(shù),隱含輸出6位小數(shù)位小數(shù) e(E) 以標(biāo)準(zhǔn)指數(shù)形式輸出單、雙精度數(shù),小數(shù)位數(shù)為以標(biāo)準(zhǔn)指數(shù)形式輸出單、雙精度數(shù),小數(shù)位數(shù)為6位位 g(G) 選用選用%f或或%e格式中輸出寬度較短的一種格式格式中輸出寬度較短的一種格式 % 百分號百分號 printfprintf格式字符格式字符 例例3-6 類型轉(zhuǎn)換字符類型轉(zhuǎn)換字符 d 的使用。的使用。 #include void main() int n1=123; long

37、n2=123456; /*用用4種不同格式,輸出種不同格式,輸出int型變量型變量n1的值的值*/ printf(n1=%d,n1=%5d,n1=%-5d,n1=%2dn,n1,n1,n1,n1); /*用用3種不同格式,輸出種不同格式,輸出long型變量型變量n2的值的值*/ printf(n2=%ld,n2=%8ld,n2=%5ldn,n2,n2,n2); printf(n1=%ldn,n1); 程序運(yùn)行結(jié)果如下:程序運(yùn)行結(jié)果如下: n1=123,n1=123,n1=123,n1=123 n2=123456,n2=123456,n2=123456 n1=16908411 對于整數(shù),還可用八

38、進(jìn)制無符號形式(對于整數(shù),還可用八進(jìn)制無符號形式(%o) (注意注意:這里的這里的%o是小寫字母是小寫字母o)輸出或以十六)輸出或以十六 進(jìn)制無符號形式(進(jìn)制無符號形式(%x)輸出。對于輸出。對于unsigned型數(shù)型數(shù) 據(jù),也可用據(jù),也可用%u格式符以無符號十進(jìn)制形式輸出。格式符以無符號十進(jìn)制形式輸出。 所謂無符號形式是指,不論正數(shù)還是負(fù)數(shù),所謂無符號形式是指,不論正數(shù)還是負(fù)數(shù), 系統(tǒng)一律當(dāng)作無符號整數(shù)來輸出。系統(tǒng)一律當(dāng)作無符號整數(shù)來輸出。 例如:例如: printfprintf( (%d,%o,%x,%un%d,%o,%x,%un,-1,-1,-1,-1);,-1,-1,-1,-1); 顯

39、示結(jié)果為:顯示結(jié)果為: -1,37777777777,ffffffff,4294967295-1,37777777777,ffffffff,4294967295 注意注意: 在在TCTC下其結(jié)果為:下其結(jié)果為:-1,177777,ffff,65535-1,177777,ffff,65535 類型轉(zhuǎn)換字符類型轉(zhuǎn)換字符ff以小數(shù)形式、按系統(tǒng)默認(rèn)的以小數(shù)形式、按系統(tǒng)默認(rèn)的 寬度,輸出單精度和雙精度實(shí)數(shù)。寬度,輸出單精度和雙精度實(shí)數(shù)。 例例3-7 類型轉(zhuǎn)換字符類型轉(zhuǎn)換字符 f 的使用。的使用。 #include void main( ) float f=123.456; double d1,d2; d

40、1=1111111111111.111111111; d2=2222222222222.222222222; printf(%f,%12f,%12.2f,%-12.2f,%.2fn,f,f,f,f,f); printf(d1+d2=%fn,d1+d2); 程序運(yùn)行結(jié)果如下:程序運(yùn)行結(jié)果如下: 123.456001,123.456001,123.46,123.46 ,123.46 d1+d2=3333333333333.333010 本 例 程 序 的 輸 出 結(jié) 果 中 , 數(shù) 據(jù)本 例 程 序 的 輸 出 結(jié) 果 中 , 數(shù) 據(jù) 1 2 3 . 4 5 6 0 0 1 和和 33333333

41、33333.333010中的中的001和和010都是無意義的,因?yàn)槎际菬o意義的,因?yàn)?它們超出了有效數(shù)字的范圍。它們超出了有效數(shù)字的范圍。 對于實(shí)數(shù),也可使用格式符對于實(shí)數(shù),也可使用格式符%e,以標(biāo)準(zhǔn)指數(shù)形式輸出:以標(biāo)準(zhǔn)指數(shù)形式輸出: 尾數(shù)中的整數(shù)部分大于等于尾數(shù)中的整數(shù)部分大于等于1、小于、小于10,小數(shù)點(diǎn)占一位,尾,小數(shù)點(diǎn)占一位,尾 數(shù)中的小數(shù)部分占數(shù)中的小數(shù)部分占5位;指數(shù)部分占位;指數(shù)部分占4位(如位(如e-03),),其中其中e 占一位,指數(shù)符號占一位,指數(shù)占占一位,指數(shù)符號占一位,指數(shù)占2位,共計(jì)位,共計(jì)11位。位。 也可使用格式符也可使用格式符%g,讓系統(tǒng)根據(jù)數(shù)值的大小,自動(dòng)選擇

42、讓系統(tǒng)根據(jù)數(shù)值的大小,自動(dòng)選擇 %f或或%e格式、且不輸出無意義的零。格式、且不輸出無意義的零。 類型轉(zhuǎn)換字符類型轉(zhuǎn)換字符cc輸出一個(gè)字符(只占一列寬輸出一個(gè)字符(只占一列寬 度)。度)。 例例3-8 類型轉(zhuǎn)換字符類型轉(zhuǎn)換字符 c 的使用。的使用。 #include void main() char c=A; int i=65; printf(c=%c,%5c,%dn,c,c,c); printf(i=%d,%c,i,i); 程序運(yùn)行結(jié)果如下:程序運(yùn)行結(jié)果如下: c=A,A,65 i=65,A 需要強(qiáng)調(diào)的是:在需要強(qiáng)調(diào)的是:在C語言中,整數(shù)可以用字符形式輸出,語言中,整數(shù)可以用字符形式輸出,

43、字符數(shù)據(jù)也可以用整數(shù)形式輸出。字符數(shù)據(jù)也可以用整數(shù)形式輸出。將整數(shù)用字符形式輸出將整數(shù)用字符形式輸出 時(shí),系統(tǒng)首先求該數(shù)與時(shí),系統(tǒng)首先求該數(shù)與256的余數(shù),然后將余數(shù)作為的余數(shù),然后將余數(shù)作為ASCII 碼,轉(zhuǎn)換成相應(yīng)的字符輸出。碼,轉(zhuǎn)換成相應(yīng)的字符輸出。 類型轉(zhuǎn)換字符類型轉(zhuǎn)換字符ss輸出一個(gè)字符串。輸出一個(gè)字符串。 例例3-9 類型轉(zhuǎn)換字符類型轉(zhuǎn)換字符 s 的使用。的使用。 #include void main() printf(%s,%5s,%10s,Internet,Internet,Internet); printf(%10.5s,%-10.5s,%4.5sn,Internet,Int

44、ernet,Internet); 程序運(yùn)行結(jié)果如下:程序運(yùn)行結(jié)果如下: Internet,Internet,InternetInter,Inter ,Inter 注意:注意:系統(tǒng)輸出字符和字符串時(shí),不輸出單引號和雙引號。系統(tǒng)輸出字符和字符串時(shí),不輸出單引號和雙引號。 使用說明使用說明 printf()可以輸出常量、變量和表達(dá)式的值。但格可以輸出常量、變量和表達(dá)式的值。但格 式控制中的格式說明符,必須按從左到右的順序,與式控制中的格式說明符,必須按從左到右的順序,與 輸出項(xiàng)表中的每個(gè)數(shù)據(jù)一一對應(yīng),否則出錯(cuò)。輸出項(xiàng)表中的每個(gè)數(shù)據(jù)一一對應(yīng),否則出錯(cuò)。 例如,例如,printf(str=%s, f=%

45、d, i=%fn, Internet, 1.0 / 2.0, 3 + 5, CHINA);是錯(cuò)誤的。是錯(cuò)誤的。 格式字符格式字符x、e、g可以用小寫字母,也可以用大寫可以用小寫字母,也可以用大寫 字母。使用大寫字母時(shí),輸出數(shù)據(jù)中包含的字母也大字母。使用大寫字母時(shí),輸出數(shù)據(jù)中包含的字母也大 寫。除了寫。除了x、e、g格式字符外,其它格式字符必須用小格式字符外,其它格式字符必須用小 寫字母。寫字母。 例如,例如,%f不能寫成不能寫成%F。 )格式字符緊跟在格式字符緊跟在“%”后面就作為格式字符,后面就作為格式字符, 否則將作為普通字符使用(原樣輸出)。否則將作為普通字符使用(原樣輸出)。 例如,例

46、如,“printf(”c=%c, f=%fn“, c, f);”中的第一個(gè)中的第一個(gè)c 和和f,都是普通字符。都是普通字符。 (2)轉(zhuǎn)義字符轉(zhuǎn)義字符 printf()函數(shù)中的函數(shù)中的n就是轉(zhuǎn)義字符,輸出時(shí)產(chǎn)生一個(gè)就是轉(zhuǎn)義字符,輸出時(shí)產(chǎn)生一個(gè) “換行換行”操作。操作。 (3)普通字符普通字符除格式指示符和轉(zhuǎn)義字符之外的其它字除格式指示符和轉(zhuǎn)義字符之外的其它字 符。格式字符串中的普通字符,原樣輸出。符。格式字符串中的普通字符,原樣輸出。 例如:例如: printf(radius=%fn, radius);語句中的語句中的radius=, printf(length=%7.2f,area=%7.2f

47、n, length,area);語句中的語句中的 length=、area=等都是普通字符。等都是普通字符。 (4)寬度(長度修飾符)寬度(長度修飾符) 長度修飾符加在長度修飾符加在%和格式字符之間,對于長整型數(shù)一定和格式字符之間,對于長整型數(shù)一定 要加要加l(long);h可用于短整型可用于短整型(short)或無符號短整型數(shù)的輸或無符號短整型數(shù)的輸 出。出。 (5)精度(輸出數(shù)據(jù)所占的寬度)精度(輸出數(shù)據(jù)所占的寬度) 當(dāng)使用當(dāng)使用%d、%c、%f、%e、格式說明時(shí),輸出數(shù)據(jù)格式說明時(shí),輸出數(shù)據(jù) 所占的寬度由系統(tǒng)決定(通常取數(shù)據(jù)本身的寬度,不加空所占的寬度由系統(tǒng)決定(通常取數(shù)據(jù)本身的寬度,不

48、加空 格),并采用右對齊的形式。也可以用以下的方法來控制格),并采用右對齊的形式。也可以用以下的方法來控制 輸出數(shù)據(jù)所占的寬度。輸出數(shù)據(jù)所占的寬度。 在在%與格式字符之間插入一個(gè)整數(shù)來指定輸出的寬度,與格式字符之間插入一個(gè)整數(shù)來指定輸出的寬度, 但注意不能用變量。如果指定的輸出寬度不夠,并不影響但注意不能用變量。如果指定的輸出寬度不夠,并不影響 數(shù)據(jù)的完整輸出,系統(tǒng)會(huì)代之以隱含的輸出寬度;如果指數(shù)據(jù)的完整輸出,系統(tǒng)會(huì)代之以隱含的輸出寬度;如果指 定的寬度多于數(shù)據(jù)實(shí)際所需寬度,數(shù)據(jù)右對齊,左邊補(bǔ)以定的寬度多于數(shù)據(jù)實(shí)際所需寬度,數(shù)據(jù)右對齊,左邊補(bǔ)以 空格??崭?。 例如:例如: 輸出語句輸出語句 輸

49、出結(jié)果輸出結(jié)果 printf(“%dn”,42); 42 printf(“%5dn”,42); 42 printf(“%fn”,123.45); 123.450000 printf(“%12fn”,123.45); 123.450000 printf(“%5fn”,123.45); 123.450000 對于對于float或或double類型的實(shí)型數(shù)可以用類型的實(shí)型數(shù)可以用“%m.nf”的形式的形式 在指定寬度的同時(shí)來指定小數(shù)位的位數(shù),其中,在指定寬度的同時(shí)來指定小數(shù)位的位數(shù),其中,m和和n均均 為整數(shù),為整數(shù),m用以指定輸出數(shù)據(jù)總的所占寬度,用以指定輸出數(shù)據(jù)總的所占寬度,n用以指定用以指定

50、小數(shù)的位數(shù),即精度。小數(shù)的位數(shù),即精度。 也可以用也可以用“%.mf”的形式來指定小數(shù)位的位數(shù),這時(shí)輸?shù)男问絹碇付ㄐ?shù)位的位數(shù),這時(shí)輸 出數(shù)據(jù)的寬度由系統(tǒng)決定。若指定出數(shù)據(jù)的寬度由系統(tǒng)決定。若指定“%.0f”,則不輸出小則不輸出小 數(shù)點(diǎn)和小數(shù)部分。數(shù)點(diǎn)和小數(shù)部分。 例如:例如: 輸出語句輸出語句 輸出結(jié)果輸出結(jié)果 printf(“%7.2fn”,123.5678); 123.57 printf(“%.2fn”,123.5678); 123.57 printf(“%.0fn”,123.5678); 124 (6)標(biāo)志標(biāo)志: 用以指定輸出數(shù)據(jù)的對齊方式。用以指定輸出數(shù)據(jù)的對齊方式。 (7)處理其他

51、類型的修飾說明符處理其他類型的修飾說明符 3.輸出項(xiàng)表輸出項(xiàng)表 輸出項(xiàng)表是可選的。如果要輸出的數(shù)據(jù)不止輸出項(xiàng)表是可選的。如果要輸出的數(shù)據(jù)不止1個(gè),相鄰個(gè),相鄰 2個(gè)數(shù)據(jù)之間用逗號分開。下面的個(gè)數(shù)據(jù)之間用逗號分開。下面的printf()函數(shù)都是合法的:函數(shù)都是合法的: (1)printf(I am a student.n); (2)printf(%d,3+2); (3)printf(a=%f b=%5dn, a, a+3); 必須強(qiáng)調(diào):必須強(qiáng)調(diào):“格式字符串格式字符串”中的格式指示符,必須與中的格式指示符,必須與“輸輸 出項(xiàng)表出項(xiàng)表”中、輸出項(xiàng)的數(shù)據(jù)類型一致,否則會(huì)引起輸出錯(cuò)中、輸出項(xiàng)的數(shù)據(jù)類型

52、一致,否則會(huì)引起輸出錯(cuò) 誤。誤。 二、格式化輸入二、格式化輸入scanf()函數(shù)函數(shù) 在程序中給計(jì)算機(jī)提供數(shù)據(jù),可以用賦在程序中給計(jì)算機(jī)提供數(shù)據(jù),可以用賦 值語句,也可以用輸入函數(shù)。在值語句,也可以用輸入函數(shù)。在C語言中,語言中, 可使用可使用scanf()函數(shù),通過鍵盤輸入,給計(jì)算函數(shù),通過鍵盤輸入,給計(jì)算 機(jī)同時(shí)提供一個(gè)或多個(gè)任意的數(shù)據(jù)。機(jī)同時(shí)提供一個(gè)或多個(gè)任意的數(shù)據(jù)。 1. scanf()函數(shù)的一般格式函數(shù)的一般格式 scanfscanf(“(“格式字符串格式字符串”, ”, 輸入項(xiàng)首地址輸入項(xiàng)首地址 表表);); 函數(shù)功能:用來從外部輸入設(shè)備向計(jì)算機(jī)主函數(shù)功能:用來從外部輸入設(shè)備向計(jì)算

53、機(jī)主 機(jī)輸入數(shù)據(jù)。機(jī)輸入數(shù)據(jù)。 舉例:舉例: 例例3-10 已知圓柱體的底半徑已知圓柱體的底半徑radius=1.5,高高h(yuǎn)igh=2.0, 求其體積。求其體積。 #include void main() float radius=1.5, high=2.0, pi=3.14159, vol; vol=pi*radius*radius*high; /*求體積求體積*/ printf(“vol=%7.2fn”,vol); /*輸出求出的體積輸出求出的體積*/ 上例中圓柱體的底半徑上例中圓柱體的底半徑radius和高和高h(yuǎn)igh均在編均在編 輯程序時(shí)就已經(jīng)固定,若需計(jì)算底半徑和高為其輯程序時(shí)就已經(jīng)

54、固定,若需計(jì)算底半徑和高為其 他值的圓柱體的體積時(shí),則需要重新修改程序,他值的圓柱體的體積時(shí),則需要重新修改程序, 所以這種數(shù)據(jù)的輸入方式使得程序不通用。如果所以這種數(shù)據(jù)的輸入方式使得程序不通用。如果 程序改用格式輸入函數(shù),則可以改變這種不足。程序改用格式輸入函數(shù),則可以改變這種不足。 格式輸入函數(shù)格式輸入函數(shù) 格式格式: : scanfscanf(“(“格式控制串格式控制串”,地址,地址列列表)表) 功能:按指定格式從鍵盤讀入數(shù)據(jù),存入地址功能:按指定格式從鍵盤讀入數(shù)據(jù),存入地址列列表指定的表指定的 存儲(chǔ)單元中存儲(chǔ)單元中, ,并按回車鍵結(jié)束并按回車鍵結(jié)束 返返回回值:正常,返回輸入數(shù)據(jù)個(gè)數(shù)值

55、:正常,返回輸入數(shù)據(jù)個(gè)數(shù) 地址表:變量的地址,常用取地址運(yùn)算符地址表:變量的地址,常用取地址運(yùn)算符); 輸入:輸入:10 10 則則 a=10a=10 例例 scanf(“%x”,); 輸入:輸入:11 11 則則 a=17a=17 附加格式說明符(修飾符)附加格式說明符(修飾符) l l 修飾符修飾符 功功 能能 h h m m * * 用于用于d,o,xd,o,x前,指定輸入為前,指定輸入為shortshort型整數(shù)型整數(shù) 用于用于d,o,xd,o,x前,指定輸入為前,指定輸入為longlong型整數(shù)型整數(shù) 用于用于e,fe,f前,指定輸入為前,指定輸入為doubledouble型實(shí)數(shù)型實(shí)

56、數(shù) 指定輸入數(shù)據(jù)寬度,遇空格或不可轉(zhuǎn)換字符則結(jié)束指定輸入數(shù)據(jù)寬度,遇空格或不可轉(zhuǎn)換字符則結(jié)束 抑制符,指定輸入項(xiàng)讀入后不賦給變量抑制符,指定輸入項(xiàng)讀入后不賦給變量 例例 scanf(“%4d%2d%2d”,scanf(“%4d%2d%2d”, 輸入輸入 19991015 19991015 則則19991999yyyy, 10 , 10 mm, 15 mm, 15 dddd 例例 scanf(“%3d%scanf(“%3d%* *4d%f”,4d%f”, 輸入輸入 12345678765.43 12345678765.43 則則123123k, 8765.43k, 8765.43f f 例例 s

57、canf(“%2dscanf(“%2d % %* *3d3d %2d”,%2d”, 輸入輸入 12 12 345345 6767 則則1212a, 67a, 67b b 例例 scanf(“%3c%2c”,scanf(“%3c%2c”, 輸入輸入 abcdeabcde 則則aac1, d c1, d c2c2 輸入分隔符的指定輸入分隔符的指定 一般以空格、一般以空格、TAB或回車鍵作為分隔符或回車鍵作為分隔符 其它字符做分隔符:格式串中兩個(gè)格式符間其它字符做分隔符:格式串中兩個(gè)格式符間 字符字符 例例 scanf(“%d%o%x”,); printf(“aprintf(“a=%d,b=%d,c

58、=%dn”,a,b,c);=%d,b=%d,c=%dn”,a,b,c); 輸入輸入 123 123 123 123 123 123 輸出輸出 a=123,b=83,c=291a=123,b=83,c=291 例例 scanf(“%d:%d:%d”,); 輸入輸入 12:30:45 12:30:45 則則12 12 h, 30 h, 30 m, 45 m, 45 s s 例例 scanf(“%d,%d”, ; 輸入輸入 a=12,b=24,c=36 a=12,b=24,c=36 說明:說明: 用用“%c”格式符時(shí),空格和轉(zhuǎn)義字符作為有效字符輸格式符時(shí),空格和轉(zhuǎn)義字符作為有效字符輸 入入 如如 s

59、canf(“%c%c%c”,scanf(“%c%c%c”, 若輸入若輸入a a b b c c 則則a ac1, c1, c2, b c2, b c3c3 輸入數(shù)據(jù)時(shí),遇以下情況認(rèn)為該數(shù)據(jù)結(jié)束:輸入數(shù)據(jù)時(shí),遇以下情況認(rèn)為該數(shù)據(jù)結(jié)束: 遇空格、遇空格、TAB、或回車或回車 遇寬度結(jié)束遇寬度結(jié)束 遇非法輸入遇非法輸入 如如 scanf(“%d%c%f”,); 若輸入若輸入12341234a123o.26 a123o.26 則則 1234 1234 a, a a, a b, 123 b, 123 c c 輸入函數(shù)留下的輸入函數(shù)留下的“垃圾垃圾”: 例例 intint x; x; char char

60、chch; ; scanf(“%d”,); chch= =getchargetchar();(); printf(“xprintf(“x=%=%d,chd,ch=%=%dn”,x,chdn”,x,ch);); 執(zhí)行:執(zhí)行:123123 輸出:輸出:x=123,ch=10 x=123,ch=10 例例 intint x; x; char char chch; ; scanf(“%d”,); scanf(“%c”,); printf(“xprintf(“x=%=%d,chd,ch=%=%dn”,x,chdn”,x,ch);); 執(zhí)行:執(zhí)行:123123 輸出:輸出:x=123,ch=10 x=12

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論