C語言第二次作業(yè)答案課件_第1頁
C語言第二次作業(yè)答案課件_第2頁
C語言第二次作業(yè)答案課件_第3頁
C語言第二次作業(yè)答案課件_第4頁
C語言第二次作業(yè)答案課件_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、C語言第二次作業(yè)答案基本數(shù)據(jù)類型、運算符、輸入輸出函數(shù)基本數(shù)據(jù)類型、運算符、輸入輸出函數(shù)C語言第二次作業(yè)答案為什么數(shù)據(jù)要分類為什么數(shù)據(jù)要分類對數(shù)據(jù)進行分類,以便讓計算機進行相對數(shù)據(jù)進行分類,以便讓計算機進行相應的存儲和處理應的存儲和處理C語言的基本數(shù)據(jù)類型有:語言的基本數(shù)據(jù)類型有: char(字符型)(字符型) int (整型)(整型) float (實型或浮點型)(實型或浮點型) double(雙精度實型(雙精度實型)C語言第二次作業(yè)答案概念:概念:程序運行過程中其值不能被改變的量程序運行過程中其值不能被改變的量常量的分類:常量的分類:整型常量整型常量實型常量實型常量字符常量字符常量字符串常

2、量字符串常量符號常量符號常量C語言第二次作業(yè)答案整型常量即整常數(shù)整型常量即整常數(shù)1.整數(shù)整數(shù) 取值范圍:一般占一個機器字,字長取值范圍:一般占一個機器字,字長2字節(jié),字節(jié),取值范圍為取值范圍為 -32768 +32767 表示形式:表示形式: 十進制整數(shù)十進制整數(shù) 以非以非0開頭的整數(shù)開頭的整數(shù) 八進制整數(shù)八進制整數(shù) 以以0開頭的整數(shù)開頭的整數(shù) 十六進制整數(shù)十六進制整數(shù) 以以0 x或或0X開頭的整數(shù)開頭的整數(shù) 例:例:-123、456、0123、-0 x123C語言第二次作業(yè)答案2. 長整數(shù)長整數(shù) 取值范圍:占四字節(jié)取值范圍:占四字節(jié) 2147483648 +2147483647 表示形式:在

3、整數(shù)后面加字母表示形式:在整數(shù)后面加字母L或或l 例:例:456l、-0456l、0 x456l3. 關于無符號數(shù)關于無符號數(shù)若整數(shù)是無符號數(shù),整常量能表示的取值范圍若整數(shù)是無符號數(shù),整常量能表示的取值范圍將相應的擴大一倍將相應的擴大一倍C語言第二次作業(yè)答案1. 實型常量又稱浮點數(shù)常量,實型常量又稱浮點數(shù)常量,只使用十進制只使用十進制,有兩種表示形式:有兩種表示形式: 定點數(shù)形式定點數(shù)形式 由正負號、整數(shù)部分、小數(shù)點、小數(shù)部分組成由正負號、整數(shù)部分、小數(shù)點、小數(shù)部分組成 例:例:0.0、12.34、0.123、.123、-123.0 、-123. 指數(shù)形式指數(shù)形式 由正負號、整數(shù)部分、小數(shù)點、

4、小數(shù)部分、由正負號、整數(shù)部分、小數(shù)點、小數(shù)部分、E(e)后后帶或不帶正負號的整數(shù)組成帶或不帶正負號的整數(shù)組成 合法:合法:1e-5、-3.14157E+7、-28e-005、123.45E0 非法:非法:E8、3E-5.6、.e2、4e、e2. 實型常量不分單、雙精度實型常量不分單、雙精度, 都按雙精度都按雙精度double型處理型處理C語言第二次作業(yè)答案1.字符常量是用字符常量是用一對單引號一對單引號(作為定界符)括起(作為定界符)括起來的一個字符來的一個字符,字符不能是單引號字符不能是單引號 、雙引號、雙引號 “ 、反斜杠、反斜杠 。例如:。例如: A, a, 5, ?, +, !, $。

5、2.字符常量具有數(shù)值,即其字符常量具有數(shù)值,即其 ASCII 代碼值。如:代碼值。如: C = A; 與與 C = 65; 等價。等價。3.一種特殊的字符常量轉(zhuǎn)義字符一種特殊的字符常量轉(zhuǎn)義字符(見表見表3-1) 一對單引號括起來,里面是反斜線開頭,后跟一對單引號括起來,里面是反斜線開頭,后跟一個字符,如一個字符,如n。或反斜線開頭,后跟一個一到三位?;蚍葱本€開頭,后跟一個一到三位八進制數(shù),或后跟一個一到二位八進制數(shù),或后跟一個一到二位x開頭的十六進制數(shù)。開頭的十六進制數(shù)。C語言第二次作業(yè)答案符號符號ASCII值值功能功能ddd8進制數(shù)表示的進制數(shù)表示的ASCII字符字符xhh16進制數(shù)表示的進

6、制數(shù)表示的ASCII字符字符a7響鈴響鈴t9水平制表水平制表n10換行換行r13回車回車b8退格退格39單引號單引號34雙引號雙引號92反斜線反斜線00空字符空字符C語言第二次作業(yè)答案1.字符串常量一對雙引號括起來的字符系列。字符串常量一對雙引號括起來的字符系列。 例例:hello!, program, a, 123.452.存儲形式存儲形式 字符串中的每個字符占一個字節(jié),在其尾字符串中的每個字符占一個字節(jié),在其尾部自動追加一個字符部自動追加一個字符0 。 h e l l o ! 0 104 101 108 108 111 33 0C語言第二次作業(yè)答案符號常量即用一個特定的符號來代表一個常量符

7、號常量即用一個特定的符號來代表一個常量 定義:定義:#define 符號常量符號常量 常量常量(字符串)(字符串) 例:例: #define R 5.179 符號常量須符號常量須“先定義,后使用先定義,后使用”,一般用大寫字,一般用大寫字母母 例:例: #define PRICE 35 #define NUM 10 #define SUM PRICE*NUM main ( ) printf(total=%dn, SUM); 結果:結果:total=350 C語言第二次作業(yè)答案概念:概念: 在程序運行過程中,其值能被改變的量在程序運行過程中,其值能被改變的量。對所使用的變量要對所使用的變量要“先

8、定義、后使用先定義、后使用”(使用標使用標識符進行定義識符進行定義),以便編譯時為其分配相應的存),以便編譯時為其分配相應的存儲單元儲單元 。普通變量定義形式普通變量定義形式數(shù)據(jù)類型數(shù)據(jù)類型 變量名表;變量名表;例:例: int a,b; (定義兩個整數(shù)定義兩個整數(shù))分類分類整型變量、實型變量、字符型變量整型變量、實型變量、字符型變量變量初始化變量初始化C語言第二次作業(yè)答案 用來標識變量名、符號常量名、函數(shù)名、用來標識變量名、符號常量名、函數(shù)名、數(shù)組名、文件名的有效字符序列。數(shù)組名、文件名的有效字符序列。標識符必須由字母或下劃線開頭,后跟字標識符必須由字母或下劃線開頭,后跟字母或下劃線或數(shù)字,

9、字母區(qū)分大小寫。母或下劃線或數(shù)字,字母區(qū)分大小寫。標識符的長度(字符個數(shù))無統(tǒng)一規(guī)定,標識符的長度(字符個數(shù))無統(tǒng)一規(guī)定,隨系統(tǒng)而不同,一般只能識別前隨系統(tǒng)而不同,一般只能識別前8個字符。個字符。選擇標識符時,提倡使用有意義的英文單選擇標識符時,提倡使用有意義的英文單詞,注意做到詞,注意做到“見名知義見名知義”關鍵字關鍵字是由語言規(guī)定的具有特定意義的是由語言規(guī)定的具有特定意義的字符串,通常也稱為字符串,通常也稱為保留字保留字 ,不允許作標,不允許作標識符(見附錄)識符(見附錄)C語言第二次作業(yè)答案數(shù)據(jù)類型數(shù)據(jù)類型所占位數(shù)所占位數(shù)數(shù)數(shù) 值值 范范 圍圍int,short16-3276832767

10、 (-215 215-1)long int32-21474836482147483647(-231 231-1)unsigned int160 65535 ( 0 216-1 )unsigned short160 65535 ( 0 216-1 )unsigned long320 4294967295 ( 0 232-1)數(shù)據(jù)類型說明符:int,short,longmain() int a,b,s; scanf(“%d %d”,&a,&b); s=a+b; printf(“%d”,s); 輸入:11 22 輸出:33C語言第二次作業(yè)答案 main() float x,y; x=

11、111111.111; y=222222.222; printf(%fn,x+y); 運行結果為運行結果為 333333.328125數(shù)據(jù)類型所占位數(shù)數(shù)值范圍有效數(shù)字float3210-37 103867double6410-307 103081516long double12810-4931 1049321819數(shù)據(jù)類型說明符數(shù)據(jù)類型說明符 :float,doubleC語言第二次作業(yè)答案 一個字符變量在內(nèi)存中一個字符變量在內(nèi)存中占一個字節(jié)占一個字節(jié) 將一個字符常量賦值給一個字符變量,將一個字符常量賦值給一個字符變量,實際上是把該字符的實際上是把該字符的 ASCII 代碼放到代碼放到字符變量對

12、應的內(nèi)存單元中去字符變量對應的內(nèi)存單元中去 字符數(shù)據(jù)與整型數(shù)據(jù)的存儲形式相類似,字符數(shù)據(jù)與整型數(shù)據(jù)的存儲形式相類似,可以相互賦值或混合運算,可以相互賦值或混合運算,一個字符數(shù)一個字符數(shù)據(jù)既可以以字符形式輸出,也可以整數(shù)據(jù)既可以以字符形式輸出,也可以整數(shù)形式輸出形式輸出.數(shù)據(jù)類型說明符:數(shù)據(jù)類型說明符:charC語言第二次作業(yè)答案 例例1 1: main()main() char a, b; char a, b; a=a; b=b; a=a; b=b; printf printf(%c %cn,(%c %cn, a, b); a, b); printf( printf(%d %dn%d %dn,

13、 a, b);, a, b); 例例2 2: main()main() int a ; char b; int a ; char b; a=a; b=98; a=a; b=98; printf(%c %cn, a, b); printf(%c %cn, a, b); printf(%d %dn, a, b); printf(%d %dn, a, b); 運行結果:a b 97 98C語言第二次作業(yè)答案定義變量時僅為變量分配內(nèi)存,并不對這部分內(nèi)定義變量時僅為變量分配內(nèi)存,并不對這部分內(nèi)存進行清空操作,分配作變量的內(nèi)存中的原值被存進行清空操作,分配作變量的內(nèi)存中的原值被保留,且其值無法確定。因此,

14、變量在參與運算保留,且其值無法確定。因此,變量在參與運算前應前應初始化初始化,賦予初值,以免產(chǎn)生邏輯錯誤。,賦予初值,以免產(chǎn)生邏輯錯誤。C語言規(guī)定,可以在定義變量的同時給變量賦初值。語言規(guī)定,可以在定義變量的同時給變量賦初值。例如:例如:int a=2,c=3; float pi=3.14; char c1=a,c2=9;如果要對如果要對n個同類型的變量賦相同的初始值,也要個同類型的變量賦相同的初始值,也要分別賦值。分別賦值。 例如:例如: int a=10,b=10,c=10;錯誤!C語言第二次作業(yè)答案運算符是告訴編譯程序執(zhí)行特定算術或邏運算符是告訴編譯程序執(zhí)行特定算術或邏輯操作的符號輯操作

15、的符號算術運算符和算術表達式算術運算符和算術表達式賦值運算符和賦值表達式賦值運算符和賦值表達式關系運算符和關系表達式關系運算符和關系表達式邏輯運算符和邏輯表達式邏輯運算符和邏輯表達式條件運算符和條件表達式條件運算符和條件表達式逗號運算符和逗號表達式逗號運算符和逗號表達式C語言第二次作業(yè)答案指針運算符指針運算符*sizeof運算符運算符位運算符位運算符*不同類型數(shù)據(jù)之間的轉(zhuǎn)換不同類型數(shù)據(jù)之間的轉(zhuǎn)換運算符優(yōu)先級和結合性運算符優(yōu)先級和結合性表達式和表達式語句表達式和表達式語句(如何按照條件寫表達式如何按照條件寫表達式)C語言第二次作業(yè)答案1. 加、減、乘、除和取余運算符:加、減、乘、除和取余運算符:

16、+ 、-、*、/、%除號除號/ - 當兩個整型數(shù)相除時,結果為整數(shù)(商的整數(shù)當兩個整型數(shù)相除時,結果為整數(shù)(商的整數(shù)部分)部分) - 當被除數(shù)和除數(shù)只要有一個是實型數(shù)時,結果當被除數(shù)和除數(shù)只要有一個是實型數(shù)時,結果為實數(shù)的商。為實數(shù)的商。取余號取余號 %l只能對整型數(shù)運算。只能對整型數(shù)運算。l比如取整數(shù)的個位數(shù):比如取整數(shù)的個位數(shù):53%10是是3,取整數(shù)的十位數(shù)取整數(shù)的十位數(shù)1253/10%10是是5C語言第二次作業(yè)答案2. 自增、自減運算符:自增、自減運算符:+、- 用法用法 - 前置運算前置運算: +或或-用在變量之前,先將變量的用在變量之前,先將變量的值增值增1或減或減1,再將該變量的

17、新值用于表達式中,再將該變量的新值用于表達式中 - 后置運算后置運算: +或或-用在變量之后,先將變量的用在變量之后,先將變量的值用于表達式中,再將該變量的值增值用于表達式中,再將該變量的值增1或減或減1 例:例: i=5+j-; i=5+-j; 該運算符該運算符只能用于變量,不能用于常量和表達式只能用于變量,不能用于常量和表達式 合法:合法:i+; -j; i=(j+)*5; 非法:非法:6-; i=(j*5)+;C語言第二次作業(yè)答案 例例1:main() int a=5,c; c = + a; /* a先增先增1,再運算,再運算 */ c = c + a +; /* a先運算,再增先運算,

18、再增1 */ printf (a = %d tc = %dn,a,c); 結果:結果:a = 7 c = 12 *例例2:執(zhí)行下列語句后:執(zhí)行下列語句后,輸出結果是什么輸出結果是什么? main() int a=10, b=20, c; c=+a+b-; printf( a=%d,b=%d,c=%d, a, b, c ); 結果結果:a=11,b=19,c=31C語言第二次作業(yè)答案是用算術運算符和括號將運算對象(常量、是用算術運算符和括號將運算對象(常量、變量和函數(shù)等)連接起來的、符合變量和函數(shù)等)連接起來的、符合C語法語法規(guī)則的式子,如:規(guī)則的式子,如: x+ a+b a%b n/100%1

19、0 C語言第二次作業(yè)答案1. 基本賦值運算符:基本賦值運算符: = 由由“=”連接的式子稱為賦值表達式。其一般形連接的式子稱為賦值表達式。其一般形式為:式為: 變量變量=表達式表達式 功能是:計算右邊表達式的值再賦予左邊的功能是:計算右邊表達式的值再賦予左邊的變變量。量。 例如:例如: a = 3 b = i+ + -j c=sin(x)+sin(y) 賦值運算符具有右結合性。賦值運算符具有右結合性。 a=b=c=1 可理解為:可理解為: a=(b=(c=1)C語言第二次作業(yè)答案2. 復合賦值運算符:復合賦值運算符: += 、-= 、*= 、/= 、 %= (算術運算算術運算) &=

20、、|= 、= 、= 、= (位運算位運算) 復合賦值符是在賦值符復合賦值符是在賦值符“=”之前加上其它二之前加上其它二目運算符可構成,執(zhí)行順序是:先運算,再目運算符可構成,執(zhí)行順序是:先運算,再賦值。賦值。 復合賦值表達式的一般形式為:復合賦值表達式的一般形式為: 變量變量 雙目運算符雙目運算符 = 表達式表達式 等價于:等價于: 變量變量 = 變量變量 雙目運算符雙目運算符 表達式表達式 例如:例如: a+=5 等價于等價于 a=a+5C語言第二次作業(yè)答案 x %= 8 等價于等價于 x = x % 8 n &= m 等價于等價于 n = n & m x * = y + 7

21、等價于等價于 x = x * ( y + 7 ) x = n + 1 等價于等價于 x = x 、= 、 、 b 的值為的值為0, 而而 關系表達式關系表達式 a b 的值為的值為1。C語言第二次作業(yè)答案 這里的這里的0和和1 是邏輯值,是邏輯值,它可以作為判斷的條件它可以作為判斷的條件,也可以和其它的關系表達式做邏輯運算(與、也可以和其它的關系表達式做邏輯運算(與、或、非等),也可以和其它的算術表達式做算或、非等),也可以和其它的算術表達式做算術運算術運算運用關系表達式時的注意事項運用關系表達式時的注意事項1 關系表達式中字符型數(shù)據(jù)按其關系表達式中字符型數(shù)據(jù)按其ASCII碼值參加比較運算碼值

22、參加比較運算 100 30 值為值為1 2 運算符兩邊的表達式可以是算術、字符、賦值、關系、或邏運算符兩邊的表達式可以是算術、字符、賦值、關系、或邏輯表達式。輯表達式。 例:(例:(a+x)(b+y) (x=4)=y+3 關系運算符運算時結合方向關系運算符運算時結合方向自左至右自左至右。 例:例: 若若 a = 4, b = 3, c = 2 則則 x = ( abbc ) y的值為的值為0。C語言第二次作業(yè)答案邏輯運算符邏輯運算符 用于對邏輯量進行運算,有用于對邏輯量進行運算,有3種:種: & 邏輯與:邏輯與: 操作數(shù)全真時結果才真否則為假操作數(shù)全真時結果才真否則為假 | 邏輯或:邏

23、輯或: 操作數(shù)全假時結果為假真否則為真操作數(shù)全假時結果為假真否則為真 ! 邏輯非:邏輯非: 操作數(shù)取反操作數(shù)取反 邏輯表達式邏輯表達式是用邏輯運算符聯(lián)系起來的表達式。如:是用邏輯運算符聯(lián)系起來的表達式。如: a & b; a | b; ! a ;邏輯運算符兩邊的邏輯運算符兩邊的操作數(shù)操作數(shù)認為是邏輯值。非認為是邏輯值。非0為真,為真,0為為假。假。 邏輯表達式的邏輯表達式的結果結果也是邏輯值。真為也是邏輯值。真為 1,假為,假為0。C語言第二次作業(yè)答案運用邏輯表達式的注意事項運用邏輯表達式的注意事項判斷數(shù)值是否為真時,非判斷數(shù)值是否為真時,非0代表真,代表真,0代表假代表假邏輯運算符兩

24、側(cè)的操作數(shù)不僅可以是整數(shù),也邏輯運算符兩側(cè)的操作數(shù)不僅可以是整數(shù),也可以是其他數(shù)據(jù)類型,只要該類型的數(shù)據(jù)值最可以是其他數(shù)據(jù)類型,只要該類型的數(shù)據(jù)值最終能得到終能得到0或非或非0值值邏輯表達式中,不一定對邏輯運算符兩側(cè)的表邏輯表達式中,不一定對邏輯運算符兩側(cè)的表達式都求值達式都求值 (&、|)數(shù)學上的數(shù)值區(qū)間不能直接用在數(shù)學上的數(shù)值區(qū)間不能直接用在C語言的判斷語言的判斷條件上條件上 如如:數(shù)學上的數(shù)學上的 1x10,不應寫成:,不應寫成:1x=10; 而應寫成:而應寫成:(1x)&(x=10)C語言第二次作業(yè)答案例例1:int x, y, z, w; x = y = z = -1

25、; w = (+ + x | + + y) & + + z; printf (%d, %d, %d, %dn, x, y, z, w); 輸出是什么?輸出是什么?注:注:& 前的操作數(shù)值若是假,則后面的表達式無需運算前的操作數(shù)值若是假,則后面的表達式無需運算 | 前的操作數(shù)值若是真,則后面的表達式無需運算前的操作數(shù)值若是真,則后面的表達式無需運算0, 0, -1, 0C語言第二次作業(yè)答案條件運算符(三目運算符)條件運算符(三目運算符) ? : 條件表達式的一般形式:條件表達式的一般形式: 表達式表達式1 ? 表達式表達式2 : 表達式表達式3條件表達式求值過程:條件表達式求值過

26、程:注:三個表達式的類型可以不同;表達式注:三個表達式的類型可以不同;表達式1要能得要能得到邏輯值;整個表達式值類型取表達式到邏輯值;整個表達式值類型取表達式2和表達式和表達式3中較高的類型中較高的類型表達式1取表達式2值取表達式3值TFC語言第二次作業(yè)答案例例1:執(zhí)行下列程序段后,變量:執(zhí)行下列程序段后,變量a,b,c的值和的值和 x,y的值分別是什么的值分別是什么? int x=10, y=9; int a, b, c; a=(-x=y+)?-x:+y; b=x+; c=y;8,8,10 9,10C語言第二次作業(yè)答案*例例2:請寫出下列程序的運行結果:請寫出下列程序的運行結果 main()

27、 int x=5, y=6; printf(%dn,(+x=y+)|(x=8)?-x:-y); printf(%d,%d, x, y); 結果:結果:5 5,7C語言第二次作業(yè)答案又稱順序運算符,用于把若干表達式組合成又稱順序運算符,用于把若干表達式組合成一個表達式,稱之為一個表達式,稱之為逗號表達式逗號表達式或或順序表順序表達式達式。 如:如:3+5,7+9 逗號表達式的一般形式:逗號表達式的一般形式: 表達式表達式1, 表達式表達式2, , 表達式表達式n 表示由左到右依次計算各表達式之值,逗表示由左到右依次計算各表達式之值,逗號表達式之值為號表達式之值為表達式表達式n之值之值。 如:如:

28、a=3*5, a*6 之值為之值為90C語言第二次作業(yè)答案取址運算符取址運算符& :取出內(nèi)存單元的地址:取出內(nèi)存單元的地址 例:例:p = & i; 表示變量表示變量 i 的地址賦給指針變量的地址賦給指針變量p,即指針,即指針 p 指向了變量指向了變量 i 取內(nèi)容運算符取內(nèi)容運算符* :取出指針所指向的變量的:取出指針所指向的變量的內(nèi)容內(nèi)容, 例:例: y = *p; 表示指針表示指針 p 指向的變量值賦給變量指向的變量值賦給變量 y *p = x; 表示變量表示變量x的值賦給指針所指向的變量的值賦給指針所指向的變量C語言第二次作業(yè)答案main ( )int a=10,b=8,

29、c,d,*p1,*p2;p1 = &a; p2 = &b;c = *p1+*p2; d = *p1- *p2;printf (a+b=%d n, c ); printf (a-b=%d n, d );詳細的用法見指針一章詳細的用法見指針一章C語言第二次作業(yè)答案功能:功能: 用于計算被運算對象所占字節(jié)數(shù)用于計算被運算對象所占字節(jié)數(shù)使用格式:使用格式:sizeof( 數(shù)據(jù)類型數(shù)據(jù)類型 ) 或或 sizeof( 表達式表達式 )例如:例如: sizeof(double) 值為值為8 sizeof(char) 值為值為1 float f; int i, a10; i=sizeof(f)

30、; i的值將為的值將為4 i=sizeof(a); i的值將為的值將為20C語言第二次作業(yè)答案 不同數(shù)據(jù)類型的常量、變量混合運算時,要先轉(zhuǎn)不同數(shù)據(jù)類型的常量、變量混合運算時,要先轉(zhuǎn)換成同一類型后進行運算。轉(zhuǎn)換方法有兩種:換成同一類型后進行運算。轉(zhuǎn)換方法有兩種:1. 自動轉(zhuǎn)換自動轉(zhuǎn)換 表達式運算時的轉(zhuǎn)換規(guī)則:表達式運算時的轉(zhuǎn)換規(guī)則: long double 高高 double float unsigned long int long int unsigned int int char, short int 低低C語言第二次作業(yè)答案例:10 + a+ i * f - d / e int char

31、float float double long int intfloatfloatdoubledoubleC語言第二次作業(yè)答案 賦值號兩邊的數(shù)據(jù)類型不同時的轉(zhuǎn)換規(guī)則:賦值號兩邊的數(shù)據(jù)類型不同時的轉(zhuǎn)換規(guī)則: 賦值號右邊的類型轉(zhuǎn)換成左邊的類型。當右邊賦值號右邊的類型轉(zhuǎn)換成左邊的類型。當右邊的數(shù)據(jù)類型比左邊長時,右邊的數(shù)據(jù)被截取所的數(shù)據(jù)類型比左邊長時,右邊的數(shù)據(jù)被截取所需的長度。需的長度。 見示例見示例2. 強制轉(zhuǎn)換強制轉(zhuǎn)換 形式:形式: ( 類型名類型名 ) 操作數(shù)操作數(shù) 其中其中操作數(shù)操作數(shù)可以是常量、變量或表達式??梢允浅A?、變量或表達式。 例:例: float x; ( int ) 4.5

32、/ 3 值為值為1 (int)x 取變量取變量x的整數(shù)部分的整數(shù)部分 x-(int)x 取變量取變量x的小數(shù)部分的小數(shù)部分C語言第二次作業(yè)答案 main() char c; int i; i=11361; /* 0 x2c61*/ c=i; /* 0010110001100001*/ printf(%c %d %x, c, c, c); 運行結果:a 97 61C語言第二次作業(yè)答案 優(yōu)先級優(yōu)先級:操作數(shù)兩邊有兩個運算符:操作數(shù)兩邊有兩個運算符, 首先參加優(yōu)首先參加優(yōu)先級高的運算符一側(cè)的運算。先級高的運算符一側(cè)的運算。( 附錄附錄) 結合性結合性:操作數(shù)兩側(cè)的運算符優(yōu)先級相同時,:操作數(shù)兩側(cè)的運

33、算符優(yōu)先級相同時,C規(guī)定了各種運算符的結合方向,即規(guī)定了各種運算符的結合方向,即“自左至右自左至右”或或“自右至左自右至左”。( 附錄附錄)即:運算符的結合性是規(guī)定連續(xù)幾個相同優(yōu)先級即:運算符的結合性是規(guī)定連續(xù)幾個相同優(yōu)先級的運算符的計算順序。的運算符的計算順序。 結合性為從左到右時,計算就從左到右逐個進行;結合性為從左到右時,計算就從左到右逐個進行; 結合性為從右到左時,計算就從右到左逐個進行。結合性為從右到左時,計算就從右到左逐個進行。C語言第二次作業(yè)答案 例1: y = 2 + 3 - 4 * 5 + 6 5 - 20 -15 + 6 -9 例2: 表達式 a+b+c 等價于 (a+b)

34、+c (左到右) 表達式 a=b=c 等價于 a=(b=c) (右到左) 表達式 *p+ 等價于 *(p+) (右到左) 表達式 *+p 等價于 *(+p) (右到左) 表達式 +*p 等價于 +(*p) (右到左)C語言第二次作業(yè)答案邏輯或關系表達式邏輯或關系表達式判斷某一年是否是閏年判斷某一年是否是閏年整數(shù)整數(shù)x大于大于y且小于等于且小于等于z一個整數(shù)是偶數(shù)但不能被一個整數(shù)是偶數(shù)但不能被3整除整除 寫表達式表示一個字符是一個數(shù)字寫表達式表示一個字符是一個數(shù)字寫表達式表示一個字符是一個字母寫表達式表示一個字符是一個字母數(shù)學表達式數(shù)學表達式寫一個表達式使得一個小數(shù)寫一個表達式使得一個小數(shù)x四舍

35、五入四舍五入寫一個表達式使得一個小數(shù)寫一個表達式使得一個小數(shù)x在小數(shù)點后第三位四舍五入在小數(shù)點后第三位四舍五入分別寫表達式描述一個整數(shù)分別寫表達式描述一個整數(shù)n的個位數(shù)、十位數(shù)。的個位數(shù)、十位數(shù)。寫出下面的代數(shù)式表達式寫出下面的代數(shù)式表達式y(tǒng)xyxw)(8log表達式:用運算符將運算對象連接起來得式子表達式語句:表達式以分號結束稱為表達式語句C語言第二次作業(yè)答案在語言中,所有的數(shù)據(jù)輸入輸出都是由庫在語言中,所有的數(shù)據(jù)輸入輸出都是由庫函數(shù)完成的。函數(shù)完成的。 使用語言庫函數(shù)時,要用預編譯命令使用語言庫函數(shù)時,要用預編譯命令#include 將有關將有關“頭文件頭文件”包括到源文件中。包括到源文件

36、中。使用標準輸入輸出庫函數(shù)時要用到使用標準輸入輸出庫函數(shù)時要用到 stdio.h文文件,因此源文件開頭應有以下預編譯命令:件,因此源文件開頭應有以下預編譯命令: #include 或或 #includestdio.h 對于下面介紹的對于下面介紹的printf和和scanf函數(shù),考慮到其使函數(shù),考慮到其使用頻繁,系統(tǒng)允許在使用這兩個函數(shù)時可不加用頻繁,系統(tǒng)允許在使用這兩個函數(shù)時可不加上述預編譯命令上述預編譯命令C語言第二次作業(yè)答案1. 格式輸出函數(shù)格式輸出函數(shù) printf ( ) 功能:向顯示器輸出信息功能:向顯示器輸出信息 使用形式:使用形式: printf (輸出格式輸出格式, 輸出表列輸

37、出表列); 輸出格式可由三部分組成:輸出格式可由三部分組成: 格式說明格式說明、按原樣輸出的字符按原樣輸出的字符、轉(zhuǎn)義字符、轉(zhuǎn)義字符 輸出表列是需要輸出的一些數(shù)據(jù),可以是表達式輸出表列是需要輸出的一些數(shù)據(jù),可以是表達式 例:例:int a = 123; printf (a=%dn, a);C語言第二次作業(yè)答案有多個輸出數(shù)據(jù),則:有多個輸出數(shù)據(jù),則:- 輸出表列中各輸出間用逗號分隔輸出表列中各輸出間用逗號分隔- 格式說明與輸出數(shù)據(jù)的個數(shù)相同且一一對應,格式說明與輸出數(shù)據(jù)的個數(shù)相同且一一對應,注意左右對齊符號注意左右對齊符號 如:如:int i = -5; float j = 98; printf

38、 (i = %d , j=%-10.2f n,I , j); printf (i = %d , j=%10.2f n,I , j); 輸出為:輸出為:i = -5, j=98.00 i = -5, j=98.00C語言第二次作業(yè)答案例例1: main ( ) int a = 345, b = -1; float v=3.1.415; float u=3.1416; printf (a = %d, %x, %o n, a, a, a ); printf (b = %u n, b ); printf(“%.3f,%6.3f,%-6.3f”,v,v,v,v); printf(“%f,%.3f,%6.

39、3f,%-6.3f”,u,u,u,u); 結果為:結果為: a = 345, 159, 531 b = 65535 3.141, 3.141,3.141 3.141600,3.142, 3.142,3.142 /*進位問題進位問題*/C語言第二次作業(yè)答案例例2: main ( ) printf (%3s,%7.2s,%.4s,%-5.3sn, CHINA,CHINA, CHINA, CHINA ); 結果為:結果為: CHINA, CH,CHIN,CHI 說明:說明: 當指定的輸出寬度小于輸出值本身寬度時,則指當指定的輸出寬度小于輸出值本身寬度時,則指定的輸出寬度不起作用,比如上面定的輸出寬度

40、不起作用,比如上面%3s的格式規(guī)定,的格式規(guī)定,但仍然輸出字符串但仍然輸出字符串CHINAC語言第二次作業(yè)答案2. 格式輸入函數(shù)格式輸入函數(shù) scanf( ) 功能:從鍵盤接受輸入信息功能:從鍵盤接受輸入信息 使用形式:使用形式: scanf(輸入格式輸入格式 ,地址表列地址表列); 輸入格式可由二部分組成:輸入格式可由二部分組成: 格式說明格式說明、按原樣輸入的字符按原樣輸入的字符 格式說明和輸出函數(shù)中的輸出格式相似。格式說明和輸出函數(shù)中的輸出格式相似。 地址表列由需輸入的變量的地址,地址表列由需輸入的變量的地址,或字符串首或字符串首 地址列表組成。地址列表組成。 如:如: int i; s

41、canf (%d,&i); 運行時輸入:運行時輸入:14 C語言第二次作業(yè)答案 有多個數(shù)據(jù)輸入,則:有多個數(shù)據(jù)輸入,則: 寫語句時:寫語句時: - 地址表列中各輸入變量間用地址表列中各輸入變量間用逗號逗號分隔分隔 - 格式說明與輸入變量的個數(shù)相同且一一對應格式說明與輸入變量的個數(shù)相同且一一對應 - 執(zhí)行輸入語句需要輸入數(shù)據(jù)時:執(zhí)行輸入語句需要輸入數(shù)據(jù)時:數(shù)據(jù)之間數(shù)據(jù)之間以一個或多個空格分隔以一個或多個空格分隔 比比如:如:int i, j; scanf (%d%d, &i,&j); 運行時輸入:運行時輸入:34 當雙引號中有按原樣輸入的字符,當雙引號中有按原樣輸入的字符

42、,輸入時應按原輸入時應按原 樣鍵入。樣鍵入。 如:如:scanf (a = %d, b = %d,&a, &b); 運行時輸入:運行時輸入:a = 3, b = 4 C語言第二次作業(yè)答案 用用%c格式輸入字符,則格式輸入字符,則空格和轉(zhuǎn)義字符都作為有效空格和轉(zhuǎn)義字符都作為有效字符輸入字符輸入 如:如: scanf (%c%c%c, &c1, &c2, &c3); 運行時應輸入:運行時應輸入: abc 不應輸入:不應輸入: a b c (a賦給賦給c1, 賦給賦給c2,b賦給賦給c3) 輸入實數(shù)時,不能規(guī)定輸入實數(shù)時,不能規(guī)定精度精度。 如:如:scanf

43、 (“%7.2f”, &a ); 不允許。不允許。 下面情形之一發(fā)生時下面情形之一發(fā)生時scanf語句對語句對當前變量當前變量的讀操作結束的讀操作結束1 遇到空格,回車或制表鍵遇到空格,回車或制表鍵2 寬度限制寬度限制3 不合法不匹配的輸入不合法不匹配的輸入l不合法不匹配的輸入將導致不正確的結果不合法不匹配的輸入將導致不正確的結果C語言第二次作業(yè)答案例例1:假設輸入:假設輸入 12345,abc,寫出下面程序的運行結果寫出下面程序的運行結果 main()int a;char ch;scanf(“%3d%3c”, &a,&ch);printf(“%d,%c”,a,ch); ?例例2:有如下語句:有如下語句 scanf(“%d%c%f”,&a,&b,&c);若輸入若輸入 2223a123o.12, 那么那么a,b,c的值分別是什么的值分別是什么 ?若輸入若輸入a2223asdf34, 那那a,b,c的值又分別是什么的值又分別是什么? 123,42223,a,123.000123C語言第二次作業(yè)答案1. 字符輸出函數(shù)字符輸出函數(shù) putchar ( ) 常用形式:常用形式: putchar

溫馨提示

  • 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

提交評論