版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第第3 3章章 數(shù)據(jù)的運算與輸入輸出數(shù)據(jù)的運算與輸入輸出本章主要內(nèi)容:本章主要內(nèi)容:l運算符和表達(dá)式概述運算符和表達(dá)式概述l算術(shù)運算符和算術(shù)表達(dá)式算術(shù)運算符和算術(shù)表達(dá)式 l賦值運算符和賦值表達(dá)式賦值運算符和賦值表達(dá)式 l關(guān)系運算符和關(guān)系表達(dá)式關(guān)系運算符和關(guān)系表達(dá)式 l邏輯運算符和邏輯表達(dá)式邏輯運算符和邏輯表達(dá)式 l條件運算符和條件表達(dá)式條件運算符和條件表達(dá)式 l逗號運算符和逗號表達(dá)式逗號運算符和逗號表達(dá)式l數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換 l數(shù)據(jù)的輸入、輸出數(shù)據(jù)的輸入、輸出 3.13.1運算符和表達(dá)式概述運算符和表達(dá)式概述 運算(即操作)是對數(shù)據(jù)的加工,被運算的對象運算(即操作)是對數(shù)據(jù)的加工,被運算
2、的對象數(shù)據(jù)稱數(shù)據(jù)稱為運算量或操作數(shù)。一個表達(dá)式包含一個或多個操作,操作為運算量或操作數(shù)。一個表達(dá)式包含一個或多個操作,操作的對象稱為操作數(shù),而操作本身是通過運算符的對象稱為操作數(shù),而操作本身是通過運算符( (也稱操作符也稱操作符) )體現(xiàn)的。體現(xiàn)的。 表達(dá)式表達(dá)式:用來計算值的式子用來計算值的式子.一個表達(dá)式由運算符和運一個表達(dá)式由運算符和運算對象組成算對象組成. C語言運算符按其功能分類語言運算符按其功能分類:算術(shù)運算符、關(guān)系運:算術(shù)運算符、關(guān)系運算符、邏輯運算符、逗號運算符、位運算符、賦值算符、邏輯運算符、逗號運算符、位運算符、賦值運算符等。運算符等。 運算對象運算對象:常量常量,變量變量
3、,函數(shù)函數(shù),表達(dá)式表達(dá)式. C語言提供有豐富的運算符,構(gòu)成多種表達(dá)式,主語言提供有豐富的運算符,構(gòu)成多種表達(dá)式,主要有:算術(shù)表達(dá)式、賦值表達(dá)式、關(guān)系表達(dá)式、邏要有:算術(shù)表達(dá)式、賦值表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式、條件表達(dá)式、逗號表達(dá)式。輯表達(dá)式、條件表達(dá)式、逗號表達(dá)式。 3.23.2算術(shù)運算符和算術(shù)表達(dá)式算術(shù)運算符和算術(shù)表達(dá)式3.2.13.2.1算術(shù)運算符算術(shù)運算符1.1.基本算術(shù)運算符基本算術(shù)運算符: : + - * / %(求余(求余) 說明說明:(1) /(除運算除運算):若參加運算的對象為兩個整數(shù)若參加運算的對象為兩個整數(shù),結(jié)果結(jié)果仍為整數(shù)仍為整數(shù).(向下取整向下取整,不進(jìn)行四舍五入不
4、進(jìn)行四舍五入).若其中之若其中之一為負(fù)數(shù)一為負(fù)數(shù),則結(jié)果視機器系統(tǒng)而定則結(jié)果視機器系統(tǒng)而定,但多數(shù)采用但多數(shù)采用“向零取整向零取整”. (2)%(求余運算求余運算):要求參加運算的數(shù)據(jù)均為要求參加運算的數(shù)據(jù)均為整數(shù)整數(shù).2.自增自減運算符:使變量的值增加一個單位或減少一自增自減運算符:使變量的值增加一個單位或減少一個單位。個單位。算符算符:+ 自加自加 -自減自減用法:用法: +i; -i; 前置運算前置運算:在使用在使用i之前之前,先使先使i的值加的值加1或減或減1. i+; i-; 后置運算后置運算:先使用先使用i的值的值,再使再使i的值加的值加1或減或減1.例:例:int i=2,j;
5、j=+i; j=i+;注注::(1)+,-運算符只能用于變量運算符只能用于變量,不能用于表達(dá)式不能用于表達(dá)式. 例例: +5 5+ (a+b)+均為錯誤的表達(dá)式均為錯誤的表達(dá)式.(2)+和和- - 的結(jié)合方向是自右至左的結(jié)合方向是自右至左,其優(yōu)先級高于其優(yōu)先級高于加、減、乘、除,與負(fù)號屬同一優(yōu)先級加、減、乘、除,與負(fù)號屬同一優(yōu)先級 。 例:例:int j=5,k; k=-j+;(3)前置和后置要使用正確。如果僅是為了對變量前置和后置要使用正確。如果僅是為了對變量的值進(jìn)行加的值進(jìn)行加1或減或減1,那么語句,那么語句i+; 與與+i;效果效果一樣,語句一樣,語句i-;與與i;效果一樣。當(dāng)自加和自減
6、效果一樣。當(dāng)自加和自減運算出現(xiàn)在表達(dá)式中時,前置和后置運算效果運算出現(xiàn)在表達(dá)式中時,前置和后置運算效果不同;不同; 【例例3.1】自增、自減運算符前置、后置形式的差異程序自增、自減運算符前置、后置形式的差異程序示例。示例。 #include int main(void) int k,x,y; k=10; x=k+;y=+k; printf(k=%d,x=%d,y=%dn,k,x,y); k=10; x=-k;y=k-; printf(k=%d,x=%d,y=%dn,k,x,y); return 0; 3. 算術(shù)運算符的優(yōu)先級與結(jié)合性算術(shù)運算符的優(yōu)先級與結(jié)合性(1) (1) 二目運算符:乘二目運
7、算符:乘( (* *) )、除、除(/)(/)、求余、求余(%)(%)的優(yōu)的優(yōu)先級相同,高于加先級相同,高于加(+)(+)、減、減(-)(-);結(jié)合方向為;結(jié)合方向為“自左至右自左至右”,即先左后右。,即先左后右。(2) (2) 一目算符:負(fù)一目算符:負(fù)(-)(-)、自增、自增(+)(+)、自減、自減(-)(-)的的優(yōu)先級相同,高于二目運算符加優(yōu)先級相同,高于二目運算符加(+)(+)、減、減(-)(-)、乘乘( (* *) )、除、除(/)(/)、求余、求余(%)(%);結(jié)合方向為;結(jié)合方向為“自右自右至左至左”,即先右后左。,即先右后左。3.2.23.2.2算術(shù)表達(dá)式算術(shù)表達(dá)式 用算術(shù)運算符
8、和括號將運算對象(常量、用算術(shù)運算符和括號將運算對象(常量、變量和函數(shù)等)連接起來的、符合語言變量和函數(shù)等)連接起來的、符合語言語法規(guī)則的式子,稱為算術(shù)表達(dá)式。如:語法規(guī)則的式子,稱為算術(shù)表達(dá)式。如: 3+a3+a* *b/2-1.5+ab/2-1.5+a 【例例3.2】程序示例。程序示例。 #include int main(void) int a=3,b=8,c=2,d; d=a+b*-c; printf(d=%dn,d); return 0; 3.3 賦值運算符和賦值表達(dá)式賦值運算符和賦值表達(dá)式1.賦值運算符:賦值運算符: = 使用格式使用格式: 變量名變量名=表達(dá)式表達(dá)式 如:如:a
9、= 3,r = x % y 注注: 賦值運算符的左邊只能是變量名或變量的地址,右邊可以賦值運算符的左邊只能是變量名或變量的地址,右邊可以是變量名、常量、函數(shù)、可求值的表達(dá)式是變量名、常量、函數(shù)、可求值的表達(dá)式。 例:例: int a=3 a=a+32. 賦值運算符的優(yōu)先級及結(jié)合方向賦值運算符的優(yōu)先級及結(jié)合方向 賦值運算符賦值運算符(包括下面將要講的復(fù)合賦值運算符包括下面將要講的復(fù)合賦值運算符)的優(yōu)先級低于算的優(yōu)先級低于算術(shù)算符的優(yōu)先級,結(jié)合方向是右結(jié)合,即從右至左進(jìn)行運算。術(shù)算符的優(yōu)先級,結(jié)合方向是右結(jié)合,即從右至左進(jìn)行運算。3 . 賦值表達(dá)式賦值表達(dá)式 (1) 由賦值運算符將一個變量和一個表
10、達(dá)式連接起來的式子稱為由賦值運算符將一個變量和一個表達(dá)式連接起來的式子稱為賦值表達(dá)式。它的一般形式為:賦值表達(dá)式。它的一般形式為: (2) 在賦值表達(dá)式的一般形式中,表達(dá)式仍可以是一個賦值表達(dá)在賦值表達(dá)式的一般形式中,表達(dá)式仍可以是一個賦值表達(dá)式式 。賦值表達(dá)式的值是被賦值后變量的值。賦值表達(dá)式的值是被賦值后變量的值。 例:例:int a,b,c; a=(b=3) a=b=c=8 a=5+(c=6) a=(b=10)/(c=2)4.復(fù)合的賦值運算符:復(fù)合的賦值運算符:+= -= /= *= %= a+=3 a=a+3 a-=10 a=a-10 a*=y+6 a=a*(y+6) a/=b+5 a
11、=a/(b+5) a%=b-6 a=a%(b-6)例例: (1)求下列表達(dá)式中求下列表達(dá)式中a的值的值 a=b=c=5 a=(b=4)+(c=6) a=(b=10)/(c=2) (2)若若a=12, 求求 a-=a*a a+=a a+=a-=a*a a +=a-=a*=a注注:賦值運算符的優(yōu)先級低于算術(shù)算符的優(yōu)先級賦值運算符的優(yōu)先級低于算術(shù)算符的優(yōu)先級.3.43.4關(guān)系運算符和關(guān)系表達(dá)式關(guān)系運算符和關(guān)系表達(dá)式3.4.13.4.1關(guān)系運算符關(guān)系運算符1.關(guān)系運算符、優(yōu)先次序及結(jié)合方向關(guān)系運算符、優(yōu)先次序及結(jié)合方向 關(guān)系運算符關(guān)系運算符: (小于小于) = (小于等于小于等于) (大于大于) =
12、(大于等于大于等于) = (等于等于) != (不等于不等于)優(yōu)先次序優(yōu)先次序: , = , , = 優(yōu)先級相同優(yōu)先級相同 = , != 優(yōu)先級相同優(yōu)先級相同,且低于前四個算符且低于前四個算符 關(guān)系算符的優(yōu)先級低于算術(shù)算符關(guān)系算符的優(yōu)先級低于算術(shù)算符,高于賦值算符高于賦值算符的優(yōu)先級的優(yōu)先級.結(jié)合方向為自左至右,即同級關(guān)系運算自左至右結(jié)合方向為自左至右,即同級關(guān)系運算自左至右算。算。 2.關(guān)系表達(dá)式關(guān)系表達(dá)式:用關(guān)系運算符將兩個用關(guān)系運算符將兩個C語言合法的表語言合法的表達(dá)式連接起來的式子達(dá)式連接起來的式子.例例: ab , a+bb+c , (a=3)(b=5) ab)(b3 的值的值: d
13、=ab d 的值的值: ab的值的值: f=abc f的值的值: (ab)=c 的值的值: a=bb)&(xy) ab&xy (a= =b)|(x= =y) a= =b|x= =y (!a) | (ab) !a |ab 2. 邏輯表達(dá)式邏輯表達(dá)式邏輯表達(dá)式:由邏輯運算符連接起來的邏輯表達(dá)式:由邏輯運算符連接起來的C合法的合法的式子。式子。邏輯表達(dá)式的值:是一個邏輯量邏輯表達(dá)式的值:是一個邏輯量“真真”或或“假假”。C語言編譯系統(tǒng)在給出邏輯運算結(jié)果時,以數(shù)語言編譯系統(tǒng)在給出邏輯運算結(jié)果時,以數(shù)值值1代表代表“真真”,以,以0代表代表“假假”,但在判斷一,但在判斷一個量是否為個量是
14、否為“真真”時,以時,以0代表代表“假假”,以非,以非0代表代表“真真”。即。即非非0即即“真真”。例:例:int a=2,b=3; a&b !a 53&8b?+a:+b);條件表達(dá)式可以嵌套,即一個條件表達(dá)式又可以條件表達(dá)式可以嵌套,即一個條件表達(dá)式又可以與另一個條件表達(dá)式組成一個新的表達(dá)式。如:與另一個條件表達(dá)式組成一個新的表達(dá)式。如: max= ab ? a: cd ? c:d 條件運算符的結(jié)合方向為條件運算符的結(jié)合方向為“自右至左自右至左”,但運算但運算順序自左至右。順序自左至右。條件運算符的優(yōu)先級高于賦值運算符條件運算符的優(yōu)先級高于賦值運算符,但低于關(guān)但低于關(guān)系算符、
15、邏輯算符和算術(shù)算符的優(yōu)先級。系算符、邏輯算符和算術(shù)算符的優(yōu)先級。例:輸入一個字符,判斷它是否大寫,如果是將它例:輸入一個字符,判斷它是否大寫,如果是將它轉(zhuǎn)換成小寫字母,如果不是不轉(zhuǎn)換,然后輸出最轉(zhuǎn)換成小寫字母,如果不是不轉(zhuǎn)換,然后輸出最后得到的字符。后得到的字符。 c=(c=A&c=Z)?(c+32):c;3.7 逗號運算符和逗號表達(dá)式逗號運算符和逗號表達(dá)式在在C語言中逗號在下列幾種情形下出現(xiàn)語言中逗號在下列幾種情形下出現(xiàn):(1)逗號作分隔符逗號作分隔符,如用于說明語句中的變量標(biāo)示符之如用于說明語句中的變量標(biāo)示符之間間. int j,k;(2)作為運算符作為運算符,構(gòu)成逗號表達(dá)式構(gòu)成逗
16、號表達(dá)式,其一般形式其一般形式: 表達(dá)式表達(dá)式1,表達(dá)式表達(dá)式2,表達(dá)式表達(dá)式3說明說明:逗號表達(dá)式的求解順序逗號表達(dá)式的求解順序:按自左至右順序求表按自左至右順序求表達(dá)式的值達(dá)式的值,整個表達(dá)式的值為最右邊表達(dá)式的值整個表達(dá)式的值為最右邊表達(dá)式的值.如如: k=10,f=50.1 f=50.1,k=10 逗號表達(dá)式中的表達(dá)式可以是算術(shù)表達(dá)式逗號表達(dá)式中的表達(dá)式可以是算術(shù)表達(dá)式,也可以也可以是賦值表達(dá)式是賦值表達(dá)式,如如 (a=3),a*4 (x=8*2,x*4),x*2 逗號運算符的優(yōu)先級最低逗號運算符的優(yōu)先級最低,低于其他所有運算符低于其他所有運算符.例例:求下列表達(dá)式的值求下列表達(dá)式的值
17、: x=(a=3,6*a) x=a=3,6*a例例:變量均為變量均為int型型,值不等于值不等于7的表達(dá)式為的表達(dá)式為( ) (A) x=y=6,x+y,x+1 (B) x=y=6,x+y,y+1 (C) x=6,x+1,y=6,x+y (D)y=6,y+1,x=y,x+1例例: main( ) int a,b,c,d=5; a=(c=3,c*d); printf(“a=%dt c*d=%dn”,a,c*d); b=c=3,c*d; printf(“a=%dt b=c=3,c*d=%dn”,b,(b=c=3,c*d);3.9數(shù)據(jù)類型轉(zhuǎn)換數(shù)據(jù)類型轉(zhuǎn)換 不同類型的數(shù)據(jù)進(jìn)行混合運算時要考慮以不同類型
18、的數(shù)據(jù)進(jìn)行混合運算時要考慮以下問題:下問題:l運算符的優(yōu)先級。運算符的優(yōu)先級。l運算符的結(jié)合方向。運算符的結(jié)合方向。l數(shù)據(jù)類型轉(zhuǎn)換。數(shù)據(jù)類型轉(zhuǎn)換。3.9.1自動轉(zhuǎn)換規(guī)則自動轉(zhuǎn)換規(guī)則(1)(1)不同數(shù)據(jù)類型的數(shù)據(jù)在賦值時的類型轉(zhuǎn)換規(guī)則不同數(shù)據(jù)類型的數(shù)據(jù)在賦值時的類型轉(zhuǎn)換規(guī)則是是“就左不就右就左不就右”,即將賦值運算符右邊表達(dá),即將賦值運算符右邊表達(dá)式的數(shù)據(jù)轉(zhuǎn)換成左邊變量的數(shù)據(jù)類型,然后進(jìn)式的數(shù)據(jù)轉(zhuǎn)換成左邊變量的數(shù)據(jù)類型,然后進(jìn)行賦值。例如:行賦值。例如: int a:int a: float b; float b; b=2/3; a=5.0/2.0; b=2/3; a=5.0/2.0; (2)
19、(2) 在同一表達(dá)式中各數(shù)據(jù)的類型不同,編譯程序在同一表達(dá)式中各數(shù)據(jù)的類型不同,編譯程序會自動進(jìn)行如下方式,將不同數(shù)據(jù)類型轉(zhuǎn)變成會自動進(jìn)行如下方式,將不同數(shù)據(jù)類型轉(zhuǎn)變成同一類型后再進(jìn)行運算。轉(zhuǎn)換規(guī)則如圖同一類型后再進(jìn)行運算。轉(zhuǎn)換規(guī)則如圖3-33-3所示:所示: 例例: int i; float f; double d; long e; 10+a+i * f- d / eint double doubledoubledouble在進(jìn)行運算時在進(jìn)行運算時,若一個算符兩側(cè)的數(shù)據(jù)類型不同若一個算符兩側(cè)的數(shù)據(jù)類型不同,則則需要進(jìn)行轉(zhuǎn)換為同一類型需要進(jìn)行轉(zhuǎn)換為同一類型,轉(zhuǎn)換規(guī)則轉(zhuǎn)換規(guī)則:將兩個不同的將兩個
20、不同的操作對象轉(zhuǎn)換為占空間較大的那種類型操作對象轉(zhuǎn)換為占空間較大的那種類型,以保不失以保不失精度精度.3.9.23.9.2強制轉(zhuǎn)換強制轉(zhuǎn)換格式格式: (類型名)(表達(dá)式)(類型名)(表達(dá)式)注注: (1)作用作用:將表達(dá)式強制轉(zhuǎn)換為指定類型將表達(dá)式強制轉(zhuǎn)換為指定類型; (2)表達(dá)式表達(dá)式:可以是單個變量或可求值的表達(dá)式可以是單個變量或可求值的表達(dá)式.例例: int a=2; float x,y=1.5; (double) a (int)(y+x) (int)y+x a=(int)y (float)(5%3) a%(int)y a%y3.103.10數(shù)據(jù)的輸入、輸出數(shù)據(jù)的輸入、輸出uC的輸入輸出
21、的輸入輸出:C本身不提供輸入輸出語句本身不提供輸入輸出語句,(在在C中輸中輸入輸出是由函數(shù)來實現(xiàn)的入輸出是由函數(shù)來實現(xiàn)的.在在C標(biāo)準(zhǔn)函數(shù)庫中提供了標(biāo)準(zhǔn)函數(shù)庫中提供了一些輸入輸出函數(shù)如一些輸入輸出函數(shù)如printf( ) scanf( )等等,它們不是它們不是C語句語句.)這樣這樣C在編譯階段不涉及硬件在編譯階段不涉及硬件,可以使編譯簡單可以使編譯簡單,在連接階段它們與源程序的目標(biāo)文件相連接在連接階段它們與源程序的目標(biāo)文件相連接,生成一生成一個可執(zhí)行的目標(biāo)程序個可執(zhí)行的目標(biāo)程序,在執(zhí)行階段調(diào)用已被連接的函在執(zhí)行階段調(diào)用已被連接的函數(shù)庫中的輸入輸出函數(shù)數(shù)庫中的輸入輸出函數(shù).u在使用在使用C語言函數(shù)
22、時語言函數(shù)時,要用預(yù)編譯命令要用預(yù)編譯命令“#include”將將有關(guān)的有關(guān)的“頭文件頭文件”包括到用戶源文件中包括到用戶源文件中.頭文件頭文件:包含包含調(diào)用函數(shù)有關(guān)信息的庫函數(shù)名調(diào)用函數(shù)有關(guān)信息的庫函數(shù)名,標(biāo)準(zhǔn)輸入輸出函數(shù)有標(biāo)準(zhǔn)輸入輸出函數(shù)有關(guān)信息在關(guān)信息在“stdio.h”中中,若程序中調(diào)用輸入輸出函數(shù)若程序中調(diào)用輸入輸出函數(shù)應(yīng)將應(yīng)將: #include “stdio.h” 或或#include 放放在程序開始在程序開始.3.10.13.10.1字符數(shù)據(jù)的輸入輸出字符數(shù)據(jù)的輸入輸出1.字符輸出函數(shù)字符輸出函數(shù)putchar () 格式格式:putchar(c) 其中其中:c可以是字符型變量
23、或整型變量或字符常量可以是字符型變量或整型變量或字符常量, 功能功能:向標(biāo)準(zhǔn)輸出設(shè)備(通常是顯示器或打印機)向標(biāo)準(zhǔn)輸出設(shè)備(通常是顯示器或打印機)輸出輸出一一個字符個字符.例例 #include “stdio.h” main( ) char a,b,c; a=B; b=O; c=Y; putchar(a); putchar(b); putchar(c ); putchar(n); putchar(A); putchar(101); putchar(65); 2 .字符輸入函數(shù)字符輸入函數(shù)getchar ()格式格式:getchar( )功能功能:從標(biāo)準(zhǔn)輸入設(shè)備(通常是鍵盤)輸入一個字符從標(biāo)準(zhǔn)輸
24、入設(shè)備(通常是鍵盤)輸入一個字符.例例: #include “stdio.h” main( ) char c; int a; c=getchar( ); putchar(c); a=getchar( ); putchar(a); 注注:getchar( )只能接只能接收一個字符收一個字符,該字符該字符可以賦給字符變量或可以賦給字符變量或整型變量整型變量,也可以不也可以不賦給任何變量賦給任何變量,作為作為表達(dá)式的一部分表達(dá)式的一部分.如如putchar(getchar( )3.10.23.10.2格式輸出函數(shù)格式輸出函數(shù)printf()printf() 1.printf()1.printf()函
25、數(shù)最簡單的用法函數(shù)最簡單的用法一般形式為:一般形式為:printf(printf(要輸出的字符串常量要輸出的字符串常量);); 【例例3.6】printf函數(shù)應(yīng)用函數(shù)應(yīng)用 #include int main(void) printf(The score of my classes are:n); printf(No.tNametScoren); printf(1tLiPingt495n); printf(2tLiuHuat465n); return 0; 2.2.格式化輸出數(shù)據(jù)格式化輸出數(shù)據(jù) 格式格式:printf(格式控制格式控制,輸出表列輸出表列) 例例: printf(“max=%d”,
26、c)功能功能:按照按照“格式控制字符串格式控制字符串”中指定的格中指定的格式,將輸出表列中諸項輸出到標(biāo)準(zhǔn)輸出式,將輸出表列中諸項輸出到標(biāo)準(zhǔn)輸出文件中文件中(通常指顯示器通常指顯示器)。 其中其中:1)格式控制是雙引號括起來的字符串格式控制是雙引號括起來的字符串,包括兩種信包括兩種信息息: 由由“%”和格式字符組成和格式字符組成,如如%d,%f,%c等等,將輸將輸出的數(shù)據(jù)轉(zhuǎn)換成指定的格式輸出出的數(shù)據(jù)轉(zhuǎn)換成指定的格式輸出; 普通字符普通字符,需要原樣輸出的字符需要原樣輸出的字符. 2)輸出表列輸出表列:要輸出的數(shù)據(jù)要輸出的數(shù)據(jù),可以是變量名可以是變量名,函數(shù)名函數(shù)名,表達(dá)式表達(dá)式例例: int a
27、=2,b=3; printf(“%d %d”,a,b); printf(“a=%d b=%d”,a,b);格式字符格式字符:d格式符格式符:用來輸出十進(jìn)制整數(shù)用來輸出十進(jìn)制整數(shù). d%d:按整型數(shù)據(jù)的實際長度輸出按整型數(shù)據(jù)的實際長度輸出 %md:按指定的長度輸出整型數(shù)據(jù)按指定的長度輸出整型數(shù)據(jù)%ld:輸出長整型數(shù)據(jù)輸出長整型數(shù)據(jù)o格式符格式符:以八進(jìn)制形式輸出整數(shù)以八進(jìn)制形式輸出整數(shù)o%o:按整型數(shù)據(jù)的八進(jìn)制的實際長度輸出按整型數(shù)據(jù)的八進(jìn)制的實際長度輸出 %mo:按指定的長度輸出整型數(shù)據(jù)的八進(jìn)制形式按指定的長度輸出整型數(shù)據(jù)的八進(jìn)制形式%lo:輸出長整型數(shù)據(jù)的八進(jìn)制形式輸出長整型數(shù)據(jù)的八進(jìn)制形式
28、x%x:按整型數(shù)據(jù)的十六進(jìn)制的實際長度輸出按整型數(shù)據(jù)的十六進(jìn)制的實際長度輸出 %mx:按指定的長度輸出整型數(shù)據(jù)的十六進(jìn)制形式按指定的長度輸出整型數(shù)據(jù)的十六進(jìn)制形式%lx:輸出長整型數(shù)據(jù)的十六進(jìn)制形式輸出長整型數(shù)據(jù)的十六進(jìn)制形式x格式符格式符:以十六進(jìn)制形式輸出整數(shù)以十六進(jìn)制形式輸出整數(shù)u格式符格式符:以無符號形式輸出十進(jìn)制整數(shù)以無符號形式輸出十進(jìn)制整數(shù)c格式符格式符:用來輸出一個字符用來輸出一個字符c%c:輸出一個字符輸出一個字符%mc:按指定的寬度輸出一個字符按指定的寬度輸出一個字符s格式符格式符:用來輸出一個字符串用來輸出一個字符串s%ms%-ms%m.ns%-m.nsf式符式符:以小數(shù)形
29、式輸出一個實數(shù)以小數(shù)形式輸出一個實數(shù)f%f:不指定寬度輸出一個實數(shù)不指定寬度輸出一個實數(shù),整數(shù)部分原樣輸整數(shù)部分原樣輸出出,并輸出并輸出6位小數(shù)位小數(shù)%-m.nf:按指定的寬度輸出數(shù)據(jù)占按指定的寬度輸出數(shù)據(jù)占m列列,其中其中n位小位小數(shù)數(shù).如果數(shù)值長度小于如果數(shù)值長度小于m,則右端補空格則右端補空格.%m.nf:按指定的寬度輸出數(shù)據(jù)占按指定的寬度輸出數(shù)據(jù)占m列列,其中其中n位小位小數(shù)數(shù).如果數(shù)值長度小于如果數(shù)值長度小于m,則左端補空格則左端補空格.3.10.33.10.3格式輸入函數(shù)格式輸入函數(shù)scanf()scanf()1.scanf( ):從終端輸入若干個數(shù)據(jù)從終端輸入若干個數(shù)據(jù). 格式格
30、式:scanf(格式控制格式控制,地址表列地址表列)功能功能:從標(biāo)準(zhǔn)輸入設(shè)備從標(biāo)準(zhǔn)輸入設(shè)備(通常是鍵盤通常是鍵盤)上,按照指定上,按照指定的格式為指定的輸入項輸入數(shù)據(jù)。的格式為指定的輸入項輸入數(shù)據(jù)。其中其中: 格式控制字符串包含格式控制字符串包含 兩種信息兩種信息: 格式控制符格式控制符:%d,%c,%f 普通字符普通字符:需要原樣輸入需要原樣輸入. 地址表列地址表列:由若干個變量地址組成由若干個變量地址組成.例例: main( ) int a,b,c; scanf(“%d%d%d”,&a,&b,&c); printf(“%d,%d,%d”,a,b,c); 2.格式說明
31、符格式說明符 %d :輸入十進(jìn)制整數(shù)輸入十進(jìn)制整數(shù) %o :輸入八進(jìn)制整數(shù)輸入八進(jìn)制整數(shù) %x :輸入十六進(jìn)制整數(shù)輸入十六進(jìn)制整數(shù) %f :輸入實數(shù)輸入實數(shù) %c :輸入字符輸入字符 % s:輸入字符串輸入字符串3. scanf( )的用法的用法連續(xù)輸入多個數(shù)據(jù)時連續(xù)輸入多個數(shù)據(jù)時,數(shù)據(jù)間用空格或回車鍵或數(shù)據(jù)間用空格或回車鍵或Tab鍵分開鍵分開; 例例: int a,b; scanf(“%d%d”,&a,&b);格式符前可加數(shù)字格式符前可加數(shù)字,指定輸入數(shù)據(jù)所占的位數(shù)指定輸入數(shù)據(jù)所占的位數(shù). 例例: int a,b; scnaf(“%2d%d”,&a,&b);
32、若輸入若輸入: 123 456 , a和和b的值分別是什么的值分別是什么? 若輸入若輸入:123456, a和和b的值分別是什么的值分別是什么?例例: main( ) int a,b,c,d; scanf(“%2d%d”,&a,&b); printf(“%dt%dn”,a,b); scanf(“%2d%4d”,&c,&d); printf(“%dt%dn”,c,d); 如果在如果在%后有一個后有一個“*”,表示跳過它對應(yīng)的列表示跳過它對應(yīng)的列數(shù)數(shù).例例: scanf(“%2d%*3d%2d”,&a,&b); 若輸入若輸入:12 234 67,a,
33、b的值分別是什么的值分別是什么?如果轉(zhuǎn)換控制字符串中有普通字符如果轉(zhuǎn)換控制字符串中有普通字符,則輸入數(shù)則輸入數(shù)據(jù)時據(jù)時,要在與此相對應(yīng)的部分要在與此相對應(yīng)的部分,輸入與此相同的輸入與此相同的字符字符 例例: scanf(“a=%db=%d”,&a,&b); 輸入輸入:a=123 b=34 scanf(“%d,%d”, &a,&b); 輸入輸入: 23,784.使用使用scanf函數(shù)應(yīng)當(dāng)注意的事項函數(shù)應(yīng)當(dāng)注意的事項(1) 在格式控制中,格式說明的類型與輸入項的類型,應(yīng)該在格式控制中,格式說明的類型與輸入項的類型,應(yīng)該是一一對應(yīng)的。是一一對應(yīng)的。(2) 在在scan
34、f函數(shù)中的格式字符前可以用一個整數(shù)指定輸入數(shù)函數(shù)中的格式字符前可以用一個整數(shù)指定輸入數(shù)據(jù)所占寬度,但不可以對實型數(shù)指定小數(shù)位的寬度。如下?lián)紝挾?,但不可以對實型?shù)指定小數(shù)位的寬度。如下面的面的scanf函數(shù)的使用就是錯誤的:函數(shù)的使用就是錯誤的:scanf(%7.2f,&a);(3) 在格式控制串中,格式說明的個數(shù)應(yīng)該與輸入項的個數(shù)在格式控制串中,格式說明的個數(shù)應(yīng)該與輸入項的個數(shù)相同。若格式說明的個數(shù)少于輸入項的個數(shù)時,相同。若格式說明的個數(shù)少于輸入項的個數(shù)時,scanf函函數(shù)結(jié)束輸入,多余的數(shù)據(jù)項并沒從終端接受新的數(shù);若格數(shù)結(jié)束輸入,多余的數(shù)據(jù)項并沒從終端接受新的數(shù);若格式說明的個
35、數(shù)多于輸入項的個數(shù)時,式說明的個數(shù)多于輸入項的個數(shù)時,scanf函數(shù)同樣也結(jié)函數(shù)同樣也結(jié)束輸入。束輸入。(4) 當(dāng)輸入的數(shù)據(jù)少于輸入項時,程序等待輸入,直到輸入當(dāng)輸入的數(shù)據(jù)少于輸入項時,程序等待輸入,直到輸入數(shù)據(jù)的個數(shù)等于輸入項的個數(shù)為止。當(dāng)輸入的數(shù)據(jù)多于輸數(shù)據(jù)的個數(shù)等于輸入項的個數(shù)為止。當(dāng)輸入的數(shù)據(jù)多于輸入項時,多余的數(shù)據(jù)并不消失,而是留作下一個輸入操作入項時,多余的數(shù)據(jù)并不消失,而是留作下一個輸入操作時的輸入數(shù)據(jù)。時的輸入數(shù)據(jù)。(5) scanf函數(shù)在調(diào)用結(jié)束后將返回一個函數(shù)值,其值等于得函數(shù)在調(diào)用結(jié)束后將返回一個函數(shù)值,其值等于得到輸入值的輸入項的個數(shù)。到輸入值的輸入項的個數(shù)。 C程序上機步驟程序上機步驟編輯源程序編輯源程序(.c)目標(biāo)程序目標(biāo)程序(.obj)可執(zhí)行程序可執(zhí)行程序(.exe)編譯編譯檢查是否有語法錯誤檢查是否有語法錯誤
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能交通系統(tǒng)留置擔(dān)保合同4篇
- 2025年度高端商務(wù)場合室內(nèi)外綠植花卉租賃服務(wù)合同4篇
- 2025版房屋租賃管理服務(wù)合同范本4篇
- 二零二五版高端住宅互換交易服務(wù)合同3篇
- 二零二五年度航空航天器研發(fā)與技術(shù)支持服務(wù)合同2篇
- 2025年度航空航天設(shè)備維護(hù)服務(wù)合同范本正規(guī)范本4篇
- 2025年度住宅樓消防設(shè)施檢測及維修合同4篇
- 2025年度拆除工程合同范本:拆除項目綜合管理協(xié)議4篇
- 2025年度網(wǎng)絡(luò)安全資金入股合作協(xié)議書制定模板
- 2025版綠色低碳林業(yè)發(fā)展林木砍伐與種植一體化承包合同4篇
- 航道整治課程設(shè)計
- SQL Server 2000在醫(yī)院收費審計的運用
- 《FANUC-Oi數(shù)控銑床加工中心編程技巧與實例》教學(xué)課件(全)
- 微信小程序運營方案課件
- 陳皮水溶性總生物堿的升血壓作用量-效關(guān)系及藥動學(xué)研究
- 安全施工專項方案報審表
- 學(xué)習(xí)解讀2022年新制定的《市場主體登記管理條例實施細(xì)則》PPT匯報演示
- 好氧廢水系統(tǒng)調(diào)試、驗收、運行、維護(hù)手冊
- 中石化ERP系統(tǒng)操作手冊
- 五年級上冊口算+脫式計算+豎式計算+方程
- 氣體管道安全管理規(guī)程
評論
0/150
提交評論