第3章數(shù)據(jù)的運算與輸入輸出.ppt09_第1頁
第3章數(shù)據(jù)的運算與輸入輸出.ppt09_第2頁
第3章數(shù)據(jù)的運算與輸入輸出.ppt09_第3頁
第3章數(shù)據(jù)的運算與輸入輸出.ppt09_第4頁
第3章數(shù)據(jù)的運算與輸入輸出.ppt09_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第3 3章章 數(shù)據(jù)的運算與輸入輸出數(shù)據(jù)的運算與輸入輸出本章主要內容:本章主要內容:l運算符和表達式概述運算符和表達式概述l算術運算符和算術表達式算術運算符和算術表達式 l賦值運算符和賦值表達式賦值運算符和賦值表達式 l關系運算符和關系表達式關系運算符和關系表達式 l邏輯運算符和邏輯表達式邏輯運算符和邏輯表達式 l條件運算符和條件表達式條件運算符和條件表達式 l逗號運算符和逗號表達式逗號運算符和逗號表達式l數(shù)據(jù)類型轉換數(shù)據(jù)類型轉換 l數(shù)據(jù)的輸入、輸出數(shù)據(jù)的輸入、輸出 3.13.1運算符和表達式概述運算符和表達式概述 運算(即操作)是對數(shù)據(jù)的加工,被運算的對象運算(即操作)是對數(shù)據(jù)的加工,被運算

2、的對象數(shù)據(jù)稱數(shù)據(jù)稱為運算量或操作數(shù)。一個表達式包含一個或多個操作,操作為運算量或操作數(shù)。一個表達式包含一個或多個操作,操作的對象稱為操作數(shù),而操作本身是通過運算符的對象稱為操作數(shù),而操作本身是通過運算符( (也稱操作符也稱操作符) )體現(xiàn)的。體現(xiàn)的。 表達式表達式:用來計算值的式子用來計算值的式子.一個表達式由運算符和運一個表達式由運算符和運算對象組成算對象組成. C語言運算符按其功能分類語言運算符按其功能分類:算術運算符、關系運:算術運算符、關系運算符、邏輯運算符、逗號運算符、位運算符、賦值算符、邏輯運算符、逗號運算符、位運算符、賦值運算符等。運算符等。 運算對象運算對象:常量常量,變量變量

3、,函數(shù)函數(shù),表達式表達式. C語言提供有豐富的運算符,構成多種表達式,主語言提供有豐富的運算符,構成多種表達式,主要有:算術表達式、賦值表達式、關系表達式、邏要有:算術表達式、賦值表達式、關系表達式、邏輯表達式、條件表達式、逗號表達式。輯表達式、條件表達式、逗號表達式。 3.23.2算術運算符和算術表達式算術運算符和算術表達式3.2.13.2.1算術運算符算術運算符1.1.基本算術運算符基本算術運算符: : + - * / %(求余(求余) 說明說明:(1) /(除運算除運算):若參加運算的對象為兩個整數(shù)若參加運算的對象為兩個整數(shù),結果結果仍為整數(shù)仍為整數(shù).(向下取整向下取整,不進行四舍五入不

4、進行四舍五入).若其中之若其中之一為負數(shù)一為負數(shù),則結果視機器系統(tǒng)而定則結果視機器系統(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)+,-運算符只能用于變量運算符只能用于變量,不能用于表達式不能用于表達式. 例例: +5 5+ (a+b)+均為錯誤的表達式均為錯誤的表達式.(2)+和和- - 的結合方向是自右至左的結合方向是自右至左,其優(yōu)先級高于其優(yōu)先級高于加、減、乘、除,與負號屬同一優(yōu)先級加、減、乘、除,與負號屬同一優(yōu)先級 。 例:例:int j=5,k; k=-j+;(3)前置和后置要使用正確。如果僅是為了對變量前置和后置要使用正確。如果僅是為了對變量的值進行加的值進行加1或減或減1,那么語句,那么語句i+; 與與+i;效果效果一樣,語句一樣,語句i-;與與i;效果一樣。當自加和自減

6、效果一樣。當自加和自減運算出現(xiàn)在表達式中時,前置和后置運算效果運算出現(xiàn)在表達式中時,前置和后置運算效果不同;不同; 【例例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. 算術運算符的優(yōu)先級與結合性算術運算符的優(yōu)先級與結合性(1) (1) 二目運算符:乘二目運

7、算符:乘( (* *) )、除、除(/)(/)、求余、求余(%)(%)的優(yōu)的優(yōu)先級相同,高于加先級相同,高于加(+)(+)、減、減(-)(-);結合方向為;結合方向為“自左至右自左至右”,即先左后右。,即先左后右。(2) (2) 一目算符:負一目算符:負(-)(-)、自增、自增(+)(+)、自減、自減(-)(-)的的優(yōu)先級相同,高于二目運算符加優(yōu)先級相同,高于二目運算符加(+)(+)、減、減(-)(-)、乘乘( (* *) )、除、除(/)(/)、求余、求余(%)(%);結合方向為;結合方向為“自右自右至左至左”,即先右后左。,即先右后左。3.2.23.2.2算術表達式算術表達式 用算術運算符

8、和括號將運算對象(常量、用算術運算符和括號將運算對象(常量、變量和函數(shù)等)連接起來的、符合語言變量和函數(shù)等)連接起來的、符合語言語法規(guī)則的式子,稱為算術表達式。如:語法規(guī)則的式子,稱為算術表達式。如: 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 賦值運算符和賦值表達式賦值運算符和賦值表達式1.賦值運算符:賦值運算符: = 使用格式使用格式: 變量名變量名=表達式表達式 如:如:a

9、= 3,r = x % y 注注: 賦值運算符的左邊只能是變量名或變量的地址,右邊可以賦值運算符的左邊只能是變量名或變量的地址,右邊可以是變量名、常量、函數(shù)、可求值的表達式是變量名、常量、函數(shù)、可求值的表達式。 例:例: int a=3 a=a+32. 賦值運算符的優(yōu)先級及結合方向賦值運算符的優(yōu)先級及結合方向 賦值運算符賦值運算符(包括下面將要講的復合賦值運算符包括下面將要講的復合賦值運算符)的優(yōu)先級低于算的優(yōu)先級低于算術算符的優(yōu)先級,結合方向是右結合,即從右至左進行運算。術算符的優(yōu)先級,結合方向是右結合,即從右至左進行運算。3 . 賦值表達式賦值表達式 (1) 由賦值運算符將一個變量和一個表

10、達式連接起來的式子稱為由賦值運算符將一個變量和一個表達式連接起來的式子稱為賦值表達式。它的一般形式為:賦值表達式。它的一般形式為: (2) 在賦值表達式的一般形式中,表達式仍可以是一個賦值表達在賦值表達式的一般形式中,表達式仍可以是一個賦值表達式式 。賦值表達式的值是被賦值后變量的值。賦值表達式的值是被賦值后變量的值。 例:例:int a,b,c; a=(b=3) a=b=c=8 a=5+(c=6) a=(b=10)/(c=2)4.復合的賦值運算符:復合的賦值運算符:+= -= /= *= %= 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)求下列表達式中求下列表達式中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)先級低于算術算符的優(yōu)先級賦值運算符的優(yōu)先級低于算術算符的優(yōu)先級.3.43.4關系運算符和關系表達式關系運算符和關系表達式3.4.13.4.1關系運算符關系運算符1.關系運算符、優(yōu)先次序及結合方向關系運算符、優(yōu)先次序及結合方向 關系運算符關系運算符: (小于小于) = (小于等于小于等于) (大于大于) =

12、(大于等于大于等于) = (等于等于) != (不等于不等于)優(yōu)先次序優(yōu)先次序: , = , , = 優(yōu)先級相同優(yōu)先級相同 = , != 優(yōu)先級相同優(yōu)先級相同,且低于前四個算符且低于前四個算符 關系算符的優(yōu)先級低于算術算符關系算符的優(yōu)先級低于算術算符,高于賦值算符高于賦值算符的優(yōu)先級的優(yōu)先級.結合方向為自左至右,即同級關系運算自左至右結合方向為自左至右,即同級關系運算自左至右算。算。 2.關系表達式關系表達式:用關系運算符將兩個用關系運算符將兩個C語言合法的表語言合法的表達式連接起來的式子達式連接起來的式子.例例: 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. 邏輯表達式邏輯表達式邏輯表達式:由邏輯運算符連接起來的邏輯表達式:由邏輯運算符連接起來的C合法的合法的式子。式子。邏輯表達式的值:是一個邏輯量邏輯表達式的值:是一個邏輯量“真真”或或“假假”。C語言編譯系統(tǒng)在給出邏輯運算結果時,以數(shù)語言編譯系統(tǒng)在給出邏輯運算結果時,以數(shù)值值1代表代表“真真”,以,以0代表代表“假假”,但在判斷一,但在判斷一個量是否為個量是

14、否為“真真”時,以時,以0代表代表“假假”,以非,以非0代表代表“真真”。即。即非非0即即“真真”。例:例:int a=2,b=3; a&b !a 53&8b?+a:+b);條件表達式可以嵌套,即一個條件表達式又可以條件表達式可以嵌套,即一個條件表達式又可以與另一個條件表達式組成一個新的表達式。如:與另一個條件表達式組成一個新的表達式。如: max= ab ? a: cd ? c:d 條件運算符的結合方向為條件運算符的結合方向為“自右至左自右至左”,但運算但運算順序自左至右。順序自左至右。條件運算符的優(yōu)先級高于賦值運算符條件運算符的優(yōu)先級高于賦值運算符,但低于關但低于關系算符、

15、邏輯算符和算術算符的優(yōu)先級。系算符、邏輯算符和算術算符的優(yōu)先級。例:輸入一個字符,判斷它是否大寫,如果是將它例:輸入一個字符,判斷它是否大寫,如果是將它轉換成小寫字母,如果不是不轉換,然后輸出最轉換成小寫字母,如果不是不轉換,然后輸出最后得到的字符。后得到的字符。 c=(c=A&c=Z)?(c+32):c;3.7 逗號運算符和逗號表達式逗號運算符和逗號表達式在在C語言中逗號在下列幾種情形下出現(xiàn)語言中逗號在下列幾種情形下出現(xiàn):(1)逗號作分隔符逗號作分隔符,如用于說明語句中的變量標示符之如用于說明語句中的變量標示符之間間. int j,k;(2)作為運算符作為運算符,構成逗號表達式構成逗

16、號表達式,其一般形式其一般形式: 表達式表達式1,表達式表達式2,表達式表達式3說明說明:逗號表達式的求解順序逗號表達式的求解順序:按自左至右順序求表按自左至右順序求表達式的值達式的值,整個表達式的值為最右邊表達式的值整個表達式的值為最右邊表達式的值.如如: k=10,f=50.1 f=50.1,k=10 逗號表達式中的表達式可以是算術表達式逗號表達式中的表達式可以是算術表達式,也可以也可以是賦值表達式是賦值表達式,如如 (a=3),a*4 (x=8*2,x*4),x*2 逗號運算符的優(yōu)先級最低逗號運算符的優(yōu)先級最低,低于其他所有運算符低于其他所有運算符.例例:求下列表達式的值求下列表達式的值

17、: x=(a=3,6*a) x=a=3,6*a例例:變量均為變量均為int型型,值不等于值不等于7的表達式為的表達式為( ) (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ù)類型轉換數(shù)據(jù)類型轉換 不同類型的數(shù)據(jù)進行混合運算時要考慮以不同類型

18、的數(shù)據(jù)進行混合運算時要考慮以下問題:下問題:l運算符的優(yōu)先級。運算符的優(yōu)先級。l運算符的結合方向。運算符的結合方向。l數(shù)據(jù)類型轉換。數(shù)據(jù)類型轉換。3.9.1自動轉換規(guī)則自動轉換規(guī)則(1)(1)不同數(shù)據(jù)類型的數(shù)據(jù)在賦值時的類型轉換規(guī)則不同數(shù)據(jù)類型的數(shù)據(jù)在賦值時的類型轉換規(guī)則是是“就左不就右就左不就右”,即將賦值運算符右邊表達,即將賦值運算符右邊表達式的數(shù)據(jù)轉換成左邊變量的數(shù)據(jù)類型,然后進式的數(shù)據(jù)轉換成左邊變量的數(shù)據(jù)類型,然后進行賦值。例如:行賦值。例如: 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) 在同一表達式中各數(shù)據(jù)的類型不同,編譯程序在同一表達式中各數(shù)據(jù)的類型不同,編譯程序會自動進行如下方式,將不同數(shù)據(jù)類型轉變成會自動進行如下方式,將不同數(shù)據(jù)類型轉變成同一類型后再進行運算。轉換規(guī)則如圖同一類型后再進行運算。轉換規(guī)則如圖3-33-3所示:所示: 例例: int i; float f; double d; long e; 10+a+i * f- d / eint double doubledoubledouble在進行運算時在進行運算時,若一個算符兩側的數(shù)據(jù)類型不同若一個算符兩側的數(shù)據(jù)類型不同,則則需要進行轉換為同一類型需要進行轉換為同一類型,轉換規(guī)則轉換規(guī)則:將兩個不同的將兩個

20、不同的操作對象轉換為占空間較大的那種類型操作對象轉換為占空間較大的那種類型,以保不失以保不失精度精度.3.9.23.9.2強制轉換強制轉換格式格式: (類型名)(表達式)(類型名)(表達式)注注: (1)作用作用:將表達式強制轉換為指定類型將表達式強制轉換為指定類型; (2)表達式表達式:可以是單個變量或可求值的表達式可以是單個變量或可求值的表達式.例例: 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標準函數(shù)庫中提供了標準函數(shù)庫中提供了一些輸入輸出函數(shù)如一些輸入輸出函數(shù)如printf( ) scanf( )等等,它們不是它們不是C語句語句.)這樣這樣C在編譯階段不涉及硬件在編譯階段不涉及硬件,可以使編譯簡單可以使編譯簡單,在連接階段它們與源程序的目標文件相連接在連接階段它們與源程序的目標文件相連接,生成一生成一個可執(zhí)行的目標程序個可執(zhí)行的目標程序,在執(zhí)行階段調用已被連接的函在執(zhí)行階段調用已被連接的函數(shù)庫中的輸入輸出函數(shù)數(shù)庫中的輸入輸出函數(shù).u在使用在使用C語言函數(shù)

22、時語言函數(shù)時,要用預編譯命令要用預編譯命令“#include”將將有關的有關的“頭文件頭文件”包括到用戶源文件中包括到用戶源文件中.頭文件頭文件:包含包含調用函數(shù)有關信息的庫函數(shù)名調用函數(shù)有關信息的庫函數(shù)名,標準輸入輸出函數(shù)有標準輸入輸出函數(shù)有關信息在關信息在“stdio.h”中中,若程序中調用輸入輸出函數(shù)若程序中調用輸入輸出函數(shù)應將應將: #include “stdio.h” 或或#include 放放在程序開始在程序開始.3.10.13.10.1字符數(shù)據(jù)的輸入輸出字符數(shù)據(jù)的輸入輸出1.字符輸出函數(shù)字符輸出函數(shù)putchar () 格式格式:putchar(c) 其中其中:c可以是字符型變量

23、或整型變量或字符常量可以是字符型變量或整型變量或字符常量, 功能功能:向標準輸出設備(通常是顯示器或打印機)向標準輸出設備(通常是顯示器或打印機)輸出輸出一一個字符個字符.例例 #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( )功能功能:從標準輸入設備(通常是鍵盤)輸入一個字符從標準輸

24、入設備(通常是鍵盤)輸入一個字符.例例: #include “stdio.h” main( ) char c; int a; c=getchar( ); putchar(c); a=getchar( ); putchar(a); 注注:getchar( )只能接只能接收一個字符收一個字符,該字符該字符可以賦給字符變量或可以賦給字符變量或整型變量整型變量,也可以不也可以不賦給任何變量賦給任何變量,作為作為表達式的一部分表達式的一部分.如如putchar(getchar( )3.10.23.10.2格式輸出函數(shù)格式輸出函數(shù)printf()printf() 1.printf()1.printf()函

25、數(shù)最簡單的用法函數(shù)最簡單的用法一般形式為:一般形式為:printf(printf(要輸出的字符串常量要輸出的字符串常量);); 【例例3.6】printf函數(shù)應用函數(shù)應用 #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)功能功能:按照按照“格式控制字符串格式控制字符串”中指定的格中指定的格式,將輸出表列中諸項輸出到標準輸出式,將輸出表列中諸項輸出到標準輸出文件中文件中(通常指顯示器通常指顯示器)。 其中其中:1)格式控制是雙引號括起來的字符串格式控制是雙引號括起來的字符串,包括兩種信包括兩種信息息: 由由“%”和格式字符組成和格式字符組成,如如%d,%f,%c等等,將輸將輸出的數(shù)據(jù)轉換成指定的格式輸出出的數(shù)據(jù)轉換成指定的格式輸出; 普通字符普通字符,需要原樣輸出的字符需要原樣輸出的字符. 2)輸出表列輸出表列:要輸出的數(shù)據(jù)要輸出的數(shù)據(jù),可以是變量名可以是變量名,函數(shù)名函數(shù)名,表達式表達式例例: int a

27、=2,b=3; printf(“%d %d”,a,b); printf(“a=%d b=%d”,a,b);格式字符格式字符:d格式符格式符:用來輸出十進制整數(shù)用來輸出十進制整數(shù). d%d:按整型數(shù)據(jù)的實際長度輸出按整型數(shù)據(jù)的實際長度輸出 %md:按指定的長度輸出整型數(shù)據(jù)按指定的長度輸出整型數(shù)據(jù)%ld:輸出長整型數(shù)據(jù)輸出長整型數(shù)據(jù)o格式符格式符:以八進制形式輸出整數(shù)以八進制形式輸出整數(shù)o%o:按整型數(shù)據(jù)的八進制的實際長度輸出按整型數(shù)據(jù)的八進制的實際長度輸出 %mo:按指定的長度輸出整型數(shù)據(jù)的八進制形式按指定的長度輸出整型數(shù)據(jù)的八進制形式%lo:輸出長整型數(shù)據(jù)的八進制形式輸出長整型數(shù)據(jù)的八進制形式

28、x%x:按整型數(shù)據(jù)的十六進制的實際長度輸出按整型數(shù)據(jù)的十六進制的實際長度輸出 %mx:按指定的長度輸出整型數(shù)據(jù)的十六進制形式按指定的長度輸出整型數(shù)據(jù)的十六進制形式%lx:輸出長整型數(shù)據(jù)的十六進制形式輸出長整型數(shù)據(jù)的十六進制形式x格式符格式符:以十六進制形式輸出整數(shù)以十六進制形式輸出整數(shù)u格式符格式符:以無符號形式輸出十進制整數(shù)以無符號形式輸出十進制整數(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(格式控制格式控制,地址表列地址表列)功能功能:從標準輸入設備從標準輸入設備(通常是鍵盤通常是鍵盤)上,按照指定上,按照指定的格式為指定的輸入項輸入數(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 :輸入十進制整數(shù)輸入十進制整數(shù) %o :輸入八進制整數(shù)輸入八進制整數(shù) %x :輸入十六進制整數(shù)輸入十六進制整數(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); 如果在如果在%后有一個后有一個“*”,表示跳過它對應的列表示跳過它對應的列數(shù)數(shù).例例: scanf(“%2d%*3d%2d”,&a,&b); 若輸入若輸入:12 234 67,a,

33、b的值分別是什么的值分別是什么?如果轉換控制字符串中有普通字符如果轉換控制字符串中有普通字符,則輸入數(shù)則輸入數(shù)據(jù)時據(jù)時,要在與此相對應的部分要在與此相對應的部分,輸入與此相同的輸入與此相同的字符字符 例例: scanf(“a=%db=%d”,&a,&b); 輸入輸入:a=123 b=34 scanf(“%d,%d”, &a,&b); 輸入輸入: 23,784.使用使用scanf函數(shù)應當注意的事項函數(shù)應當注意的事項(1) 在格式控制中,格式說明的類型與輸入項的類型,應該在格式控制中,格式說明的類型與輸入項的類型,應該是一一對應的。是一一對應的。(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ù)應該與輸入項的個數(shù)在格式控制串中,格式說明的個數(shù)應該與輸入項的個數(shù)相同。若格式說明的個數(shù)少于輸入項的個數(shù)時,相同。若格式說明的個數(shù)少于輸入項的個數(shù)時,scanf函函數(shù)結束輸入,多余的數(shù)據(jù)項并沒從終端接受新的數(shù);若格數(shù)結束輸入,多余的數(shù)據(jù)項并沒從終端接受新的數(shù);若格式說明的個

35、數(shù)多于輸入項的個數(shù)時,式說明的個數(shù)多于輸入項的個數(shù)時,scanf函數(shù)同樣也結函數(shù)同樣也結束輸入。束輸入。(4) 當輸入的數(shù)據(jù)少于輸入項時,程序等待輸入,直到輸入當輸入的數(shù)據(jù)少于輸入項時,程序等待輸入,直到輸入數(shù)據(jù)的個數(shù)等于輸入項的個數(shù)為止。當輸入的數(shù)據(jù)多于輸數(shù)據(jù)的個數(shù)等于輸入項的個數(shù)為止。當輸入的數(shù)據(jù)多于輸入項時,多余的數(shù)據(jù)并不消失,而是留作下一個輸入操作入項時,多余的數(shù)據(jù)并不消失,而是留作下一個輸入操作時的輸入數(shù)據(jù)。時的輸入數(shù)據(jù)。(5) scanf函數(shù)在調用結束后將返回一個函數(shù)值,其值等于得函數(shù)在調用結束后將返回一個函數(shù)值,其值等于得到輸入值的輸入項的個數(shù)。到輸入值的輸入項的個數(shù)。 C程序上機步驟程序上機步驟編輯源程序編輯源程序(.c)目標程序目標程序(.obj)可執(zhí)行程序可執(zhí)行程序(.exe)編譯編譯檢查是否有語法錯誤檢查是否有語法錯誤

溫馨提示

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

最新文檔

評論

0/150

提交評論