C語言基礎(chǔ)知識 考研復(fù)習(xí)篇_第1頁
C語言基礎(chǔ)知識 考研復(fù)習(xí)篇_第2頁
C語言基礎(chǔ)知識 考研復(fù)習(xí)篇_第3頁
C語言基礎(chǔ)知識 考研復(fù)習(xí)篇_第4頁
C語言基礎(chǔ)知識 考研復(fù)習(xí)篇_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、整理ppt1整理ppt2熱身練習(xí):熱身練習(xí):1.1.已知各變量的類型說明如下,則以下不符合已知各變量的類型說明如下,則以下不符合C C語言語法的表達式是語言語法的表達式是。int kint k,a a,b;b;unsigned long w=5;unsigned long w=5;double x=1.42;double x=1.42;A) x%(-3) A) x%(-3) B) w+=-2 B) w+=-2 C) k=(a=2 C) k=(a=2,b=3b=3,a+b)a+b) D) a+=a-=(b=4) D) a+=a-=(b=4)* *(a=3)(a=3) 整理ppt3熱身練習(xí):熱身練

2、習(xí):2.2.設(shè)設(shè)x x、y y、t t均為均為intint型變量型變量,則執(zhí)行語句則執(zhí)行語句:x=y=3;t=+x|+y;x=y=3;t=+x|+y;后后,x x 的值為的值為 , ,y y的值為的值為 。 A) A)不定值不定值 B) 4 B) 4 C) 3 C) 3 D) 8 D) 8整理ppt4熱身練習(xí):熱身練習(xí):3.3.有如下定義,若要求有如下定義,若要求a1a1,a2a2,c1c1,c2c2的值分別為的值分別為1010,2020,A A和和B B,當(dāng)從第一列開始輸入數(shù)據(jù)時,正,當(dāng)從第一列開始輸入數(shù)據(jù)時,正確的數(shù)據(jù)輸入方式是確的數(shù)據(jù)輸入方式是。int a1int a1,a2; char

3、 c1a2; char c1,c2;c2;scanf(“%d%d”scanf(“%d%d”,&a1&a1,&a2);&a2);scanf(“%c%c”scanf(“%c%c”,&c1&c1,&c2);&c2);A) 1020ABA) 1020AB B) 10 20 B) 10 20 AB ABC) 10 20AB D) 10 20 AB C) 10 20AB D) 10 20 AB 整理ppt5一、語言的特點一、語言的特點、語言簡潔、緊湊,使用方便、靈活;一共有、語言簡潔、緊湊,使用方便、靈活;一共有3232個關(guān)鍵字,個關(guān)鍵字,9

4、 9種控制語句種控制語句,主要用小寫字母表示。,主要用小寫字母表示。autobreakcasecharconstcontinuedefaultdo double else enum extern float for goto if int long register return short signed static sizeof struct switch typedef union unsigned void volatilewhile整理ppt6一、語言的特點一、語言的特點九種控制語句:九種控制語句:if()elsefor()while()dowhile()cotinuebreaksw

5、itchgotoreturn整理ppt7一、語言的特點一、語言的特點2 2、運算符豐富:共有、運算符豐富:共有3434種運算符種運算符。 算術(shù)運算符、關(guān)系運算符、邏輯運算符、位算術(shù)運算符、關(guān)系運算符、邏輯運算符、位操作運算符、賦值運算符、條件運算符、逗號操作運算符、賦值運算符、條件運算符、逗號運算符、指針運算符、求字節(jié)數(shù)運算符、特殊運算符、指針運算符、求字節(jié)數(shù)運算符、特殊運算符等。運算符等。3 3、數(shù)據(jù)結(jié)構(gòu)豐富:、數(shù)據(jù)結(jié)構(gòu)豐富: 的數(shù)據(jù)類型有:的數(shù)據(jù)類型有:整型、實型、字符型、整型、實型、字符型、數(shù)數(shù)組類型、結(jié)構(gòu)體類型、共用體類型、組類型、結(jié)構(gòu)體類型、共用體類型、指針類型、指針類型、空類型空類

6、型等。等。整理ppt8一、語言的特點一、語言的特點4 4、具有結(jié)構(gòu)化的控制語句;、具有結(jié)構(gòu)化的控制語句;5 5、語法限制不太嚴(yán)格,程序設(shè)計自由度大;、語法限制不太嚴(yán)格,程序設(shè)計自由度大;6 6、C C語言能進行位操作,能實現(xiàn)匯編語言的大部語言能進行位操作,能實現(xiàn)匯編語言的大部分功能,可以直接對硬件進行操作;分功能,可以直接對硬件進行操作;7 7、生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高;、生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高;8 8、用、用C C語言編寫的程序可移植性好。語言編寫的程序可移植性好。整理ppt9二、語言的詞匯二、語言的詞匯在語言中使用的詞匯分為六類:在語言中使用的詞匯分為六類: 標(biāo)識符:

7、標(biāo)識符:變量名、函數(shù)名、標(biāo)號等統(tǒng)稱為標(biāo)識符變量名、函數(shù)名、標(biāo)號等統(tǒng)稱為標(biāo)識符 標(biāo)識符只能是字母、數(shù)字、下劃線組成的字符串,并且第標(biāo)識符只能是字母、數(shù)字、下劃線組成的字符串,并且第一個字符必須是字母或下劃線,用戶定義的標(biāo)識符不應(yīng)一個字符必須是字母或下劃線,用戶定義的標(biāo)識符不應(yīng)與關(guān)鍵字相同。與關(guān)鍵字相同。 關(guān)鍵字:關(guān)鍵字:由語言規(guī)定的具有特定意義的字符串由語言規(guī)定的具有特定意義的字符串 運算符:運算符:與變量、函數(shù)一起組成表達式,實現(xiàn)運算功能與變量、函數(shù)一起組成表達式,實現(xiàn)運算功能 分隔符:分隔符:逗號和空格逗號和空格 常量:常量:數(shù)字常量、字符常量、字符串常量、符號常量、數(shù)字常量、字符常量、字符

8、串常量、符號常量、轉(zhuǎn)義字符轉(zhuǎn)義字符 注釋符:注釋符:“/ /* *”開頭并以開頭并以“* */”/”結(jié)尾的串結(jié)尾的串 整理ppt10三、數(shù)據(jù)類型三、數(shù)據(jù)類型數(shù)據(jù)類型數(shù)據(jù)類型基本類型基本類型構(gòu)造類型構(gòu)造類型指針類型指針類型空類型空類型整型整型實型(浮點型)實型(浮點型)字符型字符型枚舉類型枚舉類型數(shù)組類型數(shù)組類型結(jié)構(gòu)體類型結(jié)構(gòu)體類型共用體類型共用體類型單精度實型單精度實型雙精度實型雙精度實型基本整型基本整型長整型長整型短整型短整型無符號整型無符號整型整理ppt11(一)基本類型的分類及特點(一)基本類型的分類及特點 【注注】帶帶* *號表示的數(shù)據(jù)類型與機器硬件有關(guān)號表示的數(shù)據(jù)類型與機器硬件有關(guān)整

9、理ppt12(二)變量在內(nèi)存中的存放形式(二)變量在內(nèi)存中的存放形式 1 1、整型數(shù)據(jù)在內(nèi)存中以、整型數(shù)據(jù)在內(nèi)存中以補碼補碼形式存放形式存放 正數(shù):原碼即為補碼(該數(shù)的二進制數(shù))正數(shù):原碼即為補碼(該數(shù)的二進制數(shù)) 負數(shù)負數(shù):(:(1 1)取絕對值)取絕對值 (2 2)求絕對值的二進制形式)求絕對值的二進制形式 (3 3)將二進制按位取反)將二進制按位取反 (4 4)再加上)再加上1 1,可得補碼,可得補碼注意:若給出一個數(shù)在內(nèi)存中的存放形式,先看最高位來注意:若給出一個數(shù)在內(nèi)存中的存放形式,先看最高位來判斷是正負數(shù)。判斷是正負數(shù)。1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

10、 1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0-10-10在機器內(nèi)存中的存放形式在機器內(nèi)存中的存放形式整理ppt13(二)變量在內(nèi)存中的存放形式(二)變量在內(nèi)存中的存放形式 求求-10-10的補碼過程:的補碼過程:1010的原碼:的原碼:01010 01010 按位取反:按位取反:11111111111101011111111111110101再加再加1 1,得,得-10-10的補碼:的補碼:11111111111101101111111111110110整理ppt14(二)變量在內(nèi)存中的存放形式(二)變量在內(nèi)存中的存放形式 有符號整型變量:有符號整型變量:最大表示最大表示3

11、276732767 無符號整型變量:無符號整型變量:最大表示最大表示65535 65535 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1整理ppt15(二)變量在內(nèi)存中的存放形式(二)變量在內(nèi)存中的存放形式 解決整型數(shù)據(jù)的溢出問題解決整型數(shù)據(jù)的溢出問題 如:如:int a=32767,b;int a=32767,b; b=a+1;printf(“%d”,b); b=a+1;printf(“

12、%d”,b);0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0b= -32768b= -32768整理ppt16(二)變量在內(nèi)存中的存放形式(二)變量在內(nèi)存中的存放形式 2 2、實型數(shù)據(jù)在內(nèi)存中的存放形式、實型數(shù)據(jù)在內(nèi)存中的存放形式 實型數(shù)據(jù)一般占實型數(shù)據(jù)一般占4 4個字節(jié)(個字節(jié)(3232位)內(nèi)存空間。位)內(nèi)存空間。按按指數(shù)形式指數(shù)形式存儲。實數(shù)存儲。實數(shù)3.141593.14159在內(nèi)存中

13、的存在內(nèi)存中的存放形式如下:放形式如下:+ +.314159.3141591 1類型說明符類型說明符比特數(shù)(字節(jié)數(shù))比特數(shù)(字節(jié)數(shù))有效數(shù)字有效數(shù)字?jǐn)?shù)的范圍數(shù)的范圍floatfloat3232(4 4)67671010-38-3810103838 doubledouble64(8)64(8)151615161010-308-3081010308308 long double long double 128(16)128(16)181918191010-4932-4932101049324932 整理ppt17三、數(shù)據(jù)類型三、數(shù)據(jù)類型變量變量main()main() float a; float

14、 a; double b; double b; a=3 a=333333333. .333333333;3; b=3b=333333333.3333.333333333333333333333333; ; printf(%fn%fn,a,b); printf(%fn%fn,a,b); 由于由于a a 是單精度浮點型,有效位數(shù)只有七位。而整數(shù)是單精度浮點型,有效位數(shù)只有七位。而整數(shù)已占五位,故小數(shù)二位后之后均為無效數(shù)字。已占五位,故小數(shù)二位后之后均為無效數(shù)字。 b b 是雙精度型,有效位為十六位。但是雙精度型,有效位為十六位。但Turbo C Turbo C 規(guī)定小規(guī)定小數(shù)后最多保留六位,其余部

15、分四舍五入。數(shù)后最多保留六位,其余部分四舍五入。 double d=12.3456789;printf(“%lf”,d);double d=12.3456789;printf(“%lf”,d);整理ppt18三、數(shù)據(jù)類型三、數(shù)據(jù)類型常量常量1 1、整數(shù)常量、整數(shù)常量l十進制整數(shù):帶符號,十進制整數(shù):帶符號,0 09 9組成,第一位數(shù)字為非組成,第一位數(shù)字為非零(除零外)零(除零外) -456-456l八進制整數(shù):八進制整數(shù):0 07 7組成,最高位用組成,最高位用0 0引導(dǎo)引導(dǎo) 0123=(123)0123=(123)8 8=(83)=(83)1010l十六進制整數(shù):十六進制整數(shù):0 09 9

16、及及a af f 或或 A AF F組成組成, ,最高位最高位用用0 x0 x或或0X0X引導(dǎo),引導(dǎo), 0 x123=(123)0 x123=(123)1616=(291)=(291)1010l整數(shù)常量后加字母整數(shù)常量后加字母u u或或U U表示該數(shù)為無符號型,加字表示該數(shù)為無符號型,加字母母l l或或L L表示該數(shù)為長整型表示該數(shù)為長整型 12345u 123L12345u 123L整理ppt19三、數(shù)據(jù)類型三、數(shù)據(jù)類型常量常量2 2、實型常量、實型常量 在在C C中有兩種表示方法:中有兩種表示方法:十進制小數(shù)形式:十進制小數(shù)形式:0.00.0、25.025.0、300.300.、-267.

17、8230-267.8230等。等。 注意,必須有小數(shù)點。注意,必須有小數(shù)點。 指數(shù)形式:指數(shù)形式:meme n(n(或或mEmE n)n)表示表示 m m* *1010 n n ( (這里這里m m為非為非0 0實數(shù),實數(shù),n n為整數(shù)為整數(shù)) )。如:。如:12.312.3E-2E-2表示表示12.312.3* *1010-2-2 在在C C編譯系統(tǒng)中,將浮點型常量編譯系統(tǒng)中,將浮點型常量 作為作為雙精度雙精度來處理來處理 以下不是合法的實數(shù),請說明理由:以下不是合法的實數(shù),請說明理由:345 E7 -5 53.-E3 2.7E 345 E7 -5 53.-E3 2.7E 整理ppt20三、

18、數(shù)據(jù)類型三、數(shù)據(jù)類型常量常量3 3、字符常量、字符常量- -轉(zhuǎn)義字符轉(zhuǎn)義字符整理ppt21三、數(shù)據(jù)類型三、數(shù)據(jù)類型常量常量3 3、字符常量、字符常量- -轉(zhuǎn)義字符轉(zhuǎn)義字符ddd ddd 輸出一到三位八進制數(shù)所對應(yīng)的字符輸出一到三位八進制數(shù)所對應(yīng)的字符 xhh xhh 輸出一到兩位輸出一到兩位1616進制數(shù)所對應(yīng)的字符進制數(shù)所對應(yīng)的字符例如:例如:char a=101, b=x41;putchar(a); putchar(b);答案:答案:A AA A整理ppt22三、數(shù)據(jù)類型三、數(shù)據(jù)類型常量常量 字符常量就是一個普通整數(shù),也可參與各種字符常量就是一個普通整數(shù),也可參與各種數(shù)學(xué)運算數(shù)學(xué)運算 每個

19、字符具有一個每個字符具有一個0255之間的數(shù)值,可之間的數(shù)值,可從從ASCII表查出表查出 注意:注意:5和整數(shù)和整數(shù)5的區(qū)別的區(qū)別 5的的ASCII碼值是碼值是53 思考:思考: 6 2的值是多少?的值是多少?整理ppt23例題:小寫字母轉(zhuǎn)換為大寫字母例題:小寫字母轉(zhuǎn)換為大寫字母 #include main()char ch = b; printf(%c, %dn, ch, ch);ch = b - 32; printf(%c, %dn, ch, ch);#include main()char ch = b; printf(%c, %dn, ch, ch); ch = b - (a - A)

20、 ; printf(%c, %dn, ch, ch);b, 98B, 66b, 98B, 66整理ppt24三、數(shù)據(jù)類型三、數(shù)據(jù)類型常量常量4 4、字符串常量、字符串常量 用雙引號括住的由用雙引號括住的由0 0個或多個字符組成的字符序列個或多個字符組成的字符序列 I am a stringI am a string 表示空字符串表示空字符串 除注釋外,是唯一可以出現(xiàn)中文的地方除注釋外,是唯一可以出現(xiàn)中文的地方 C C語言內(nèi)部用語言內(nèi)部用00表示字符串的結(jié)束表示字符串的結(jié)束 xx和和xx是不同的是不同的 里定義了一系列專門的字符串處理函數(shù)里定義了一系列專門的字符串處理函數(shù) 轉(zhuǎn)義字符也可在字符串中

21、使用轉(zhuǎn)義字符也可在字符串中使用整理ppt25實踐挑戰(zhàn):實踐挑戰(zhàn):1 1、設(shè):、設(shè):char char * *s=“ta017bc”;s=“ta017bc”;則則strlen(s)strlen(s)的值為(的值為( )。)。(0404南師大)南師大)2 2、在一個、在一個3232位系統(tǒng)中(如位系統(tǒng)中(如Windows XPWindows XP),),若定義若定義char char * *s=010010010n;s=010010010n;則則sizeof(s)sizeof(s)的值為(的值為( ),),strlen(s)strlen(s)的值為(的值為( )答案:答案:1 1、5 52 2、2

22、29 9整理ppt26sizeof sizeof 到底是什么?到底是什么? C C語言的關(guān)鍵字,語言的關(guān)鍵字,并非函數(shù)并非函數(shù) 計算計算類型類型占用的占用的字節(jié)數(shù)字節(jié)數(shù) 兩種語法形式兩種語法形式 sizeof( sizeof(類型類型) ) 結(jié)果為結(jié)果為類型類型占用的字節(jié)數(shù)占用的字節(jié)數(shù) sizeof( sizeof(表達式表達式) ) 結(jié)果為結(jié)果為表達式值所屬類型表達式值所屬類型占用的字節(jié)數(shù)占用的字節(jié)數(shù) 一般都使用一般都使用sizeofsizeof( (變量名變量名) ) 整理ppt27strlen( )到底是什么? strlen( )strlen( )是函數(shù),返回字符串中所包是函數(shù),返回字符

23、串中所包含的字符個數(shù)。含的字符個數(shù)。 注:統(tǒng)計時不包括注:統(tǒng)計時不包括00 兩種語法形式兩種語法形式 strlen( strlen(字符串字符串) ) 如:如:strlen(“abcd”);strlen(“abcd”); strlen( strlen(字符指針變量字符指針變量) ); char char * *s=“abc; stelen(s);s=“abc; stelen(s);整理ppt28三、數(shù)據(jù)類型三、數(shù)據(jù)類型常量常量宏常量宏常量 也稱符號常量也稱符號常量 一般采用全大寫字母表示一般采用全大寫字母表示 宏定義不是語句,而是一種編譯預(yù)處理命令宏定義不是語句,而是一種編譯預(yù)處理命令 格式如

24、下:格式如下: #define #define 標(biāo)識符標(biāo)識符 字符串字符串使用時,將使用時,將標(biāo)識符標(biāo)識符用用字符串字符串完全替換完全替換整理ppt29正確的實例:計算圓的周長和面積正確的實例:計算圓的周長和面積 #include #define PI 3.14159#define R 5.3main()printf(area = %fn, PI * R * R);printf(circumference = %fn, 2 * PI * R);area = 88.247263circumference = 33.300854相當(dāng)于執(zhí)行相當(dāng)于執(zhí)行#include main()printf(are

25、a = %fn, 3.14159 * 5.3 * 5.3);printf(circumference = %fn, 2 * 3.14159 * 5.3);整理ppt30錯誤實例錯誤實例 :計算圓的周長和面積:計算圓的周長和面積 #include #define PI 3.14159;#define R 5.3;main()printf(area = %fn, PI * R * R);printf(circumference = %fn, 2 * PI * R);相當(dāng)于執(zhí)行相當(dāng)于執(zhí)行#include main()printf(area = %fn, 3.14159;*5.3;*5.3;);pri

26、ntf(circumference = %fn, 2*3.14159;*5.3;);整理ppt31實踐挑戰(zhàn):實踐挑戰(zhàn):3 3、在、在C C語言中,宏定義語言中,宏定義#define PI 3.14159#define PI 3.14159中,用宏名中,用宏名PIPI代替了一個()(南師大代替了一個()(南師大0606)A.A.單精度數(shù)單精度數(shù)B.B.雙精度數(shù)雙精度數(shù)C.C.字符序列字符序列D.D.常量常量答案:答案:C C整理ppt32枚舉(枚舉(Enumeration)常量)常量 enum weeks SUN, MON, TUE, WED, THU, FRI, SAT;/*聲明了一個枚舉類型

27、聲明了一個枚舉類型*/ enum weeks today; /*用上面類型定義變量用上面類型定義變量*/ today = TUE; /*變量變量today只能在上面定義的范只能在上面定義的范圍內(nèi)取值圍內(nèi)取值*/ enum response no, yes, none; enum response answer; answer = yes; enum response no = -1, yes = 1, none = 0; 整理ppt33四、運算符四、運算符 常見的運算符常見的運算符 算術(shù)運算符算術(shù)運算符 賦值運算符賦值運算符 類型強轉(zhuǎn)(強制類型轉(zhuǎn)換)類型強轉(zhuǎn)(強制類型轉(zhuǎn)換) 關(guān)系運算符關(guān)系運算

28、符 邏輯運算符邏輯運算符 增和減增和減 位運算符位運算符整理ppt34四、運算符四、運算符 運算符有三個屬性:運算符有三個屬性: 運算元數(shù):最少運算元數(shù):最少1 1個,最多個,最多3 3個個 - -1; 31; 3 2 2? ?3 3: :2 2 優(yōu)先級:優(yōu)先級: 結(jié)合性:結(jié)合性:即指運算符與運算元的結(jié)即指運算符與運算元的結(jié)合方向合方向, ,用于指導(dǎo)同級的運算用于指導(dǎo)同級的運算 表達式:表達式:運算元與運算符的組合式運算元與運算符的組合式 a a* *b b/ /c c- -2.22.2+ +AA簡化后的優(yōu)先級:簡化后的優(yōu)先級:1一級運算符一級運算符 2單變量運算符單變量運算符 3算術(shù)運算符算

29、術(shù)運算符 4位運算符位運算符 5關(guān)系運算符關(guān)系運算符 6位邏輯運算符位邏輯運算符 7邏輯運算符邏輯運算符 8條件運算符條件運算符 9賦值運算符賦值運算符 10逗號運算符逗號運算符高低整理ppt35四、運算符四、運算符基本的算術(shù)運算符基本的算術(shù)運算符操作符操作符作用作用舉例舉例- -減、單目取負減、單目取負3-2,-43-2,-4+ +加、單目取正加、單目取正3+2,+43+2,+4* *乘乘3 3* *2 2/ /除除3/23/2% %求余或取模(求余或取模(兩側(cè)均應(yīng)為整型數(shù)兩側(cè)均應(yīng)為整型數(shù))6%46%4+加加1 1+a,a+a,a+-減減1 1-a,a-a,a-v當(dāng)兩個整數(shù)相除時,其結(jié)果為整

30、數(shù),即舍去小數(shù)部分。當(dāng)兩個整數(shù)相除時,其結(jié)果為整數(shù),即舍去小數(shù)部分。如:如:10/3=310/3=3;整理ppt36四、運算符四、運算符 賦值運算符及賦值表達式賦值運算符及賦值表達式簡單的賦值運算符用簡單的賦值運算符用“=”=”表示表示 屬于雙目運算符屬于雙目運算符 優(yōu)先級較低,僅高于逗號優(yōu)先級較低,僅高于逗號 具有右結(jié)合性具有右結(jié)合性由由“= ”= ”連接的式子稱為賦值表達式連接的式子稱為賦值表達式 功能功能是計算表達式的值再賦予左邊的變量是計算表達式的值再賦予左邊的變量 a=b=c=5a=b=c=5可理解為可理解為 a=(b=(c=5)a=(b=(c=5) 賦值表達式的值賦值表達式的值就是

31、就是“=”=”號右側(cè)的值號右側(cè)的值 x=(a=5)+(b=8)x=(a=5)+(b=8) 整理ppt37四、運算符四、運算符 復(fù)合的賦值運算符復(fù)合的賦值運算符 在賦值符在賦值符“=”=”之前加上其它二目運算符可構(gòu)成復(fù)之前加上其它二目運算符可構(gòu)成復(fù)合賦值符。如合賦值符。如+=,-=,+=,-=,* *=,=,=,%=,=,&=,=,|=,%=,=,&=,=,|= 例如:例如: a+=5 a+=5 等價于等價于a=a+5a=a+5 x x* *=y+7 =y+7 等價于等價于x=xx=x* *(y+7)(y+7) r%=p r%=p 等價于等價于r=r%pr=r%p 能提高編譯效率

32、并產(chǎn)生質(zhì)量較高的目標(biāo)代碼能提高編譯效率并產(chǎn)生質(zhì)量較高的目標(biāo)代碼 整理ppt38自動類型轉(zhuǎn)換自動類型轉(zhuǎn)換 相同類型數(shù)據(jù)的運算結(jié)果,還是該類型相同類型數(shù)據(jù)的運算結(jié)果,還是該類型 不同類型數(shù)據(jù)的運算結(jié)果,是兩種類型中取值范圍不同類型數(shù)據(jù)的運算結(jié)果,是兩種類型中取值范圍大的那種大的那種 doubledouble floatfloat longlong intint shortshort charchardoublefloatlongunsignedintchar,short低高整理ppt39自動類型轉(zhuǎn)換自動類型轉(zhuǎn)換 取值取值范圍小范圍小的類型的類型賦值賦值給取值給取值范圍大范圍大的類型是的類型是安全安

33、全的的 double d; float f=1.5; d=f; double d; float f=1.5; d=f; 反之是不安全的反之是不安全的 若大類型的值在小類型能容納的范圍之內(nèi),則平安無事若大類型的值在小類型能容納的范圍之內(nèi),則平安無事 double d=1.5; float f; f=d;double d=1.5; float f; f=d;若若浮點數(shù)轉(zhuǎn)為整數(shù),會丟失小數(shù)部分,非四舍五入浮點數(shù)轉(zhuǎn)為整數(shù),會丟失小數(shù)部分,非四舍五入 int i; float f=1.64; i=f;(i int i; float f=1.64; i=f;(i的值為的值為1)1) 反之,轉(zhuǎn)換后的結(jié)果必然

34、是錯誤的,具體結(jié)果與機器和反之,轉(zhuǎn)換后的結(jié)果必然是錯誤的,具體結(jié)果與機器和實現(xiàn)方式有關(guān)實現(xiàn)方式有關(guān) double d=123.456789e100; float f; f=d;double d=123.456789e100; float f; f=d;整理ppt40Example: int x = 10;float y;y = (float)x;x10y?10.000000 消除從大到小的警告消除從大到小的警告x = (x = (intint)y;)y; 通過下面方式把表達式的值轉(zhuǎn)為任意類型通過下面方式把表達式的值轉(zhuǎn)為任意類型( (類型類型) )表達式表達式強制類型轉(zhuǎn)換強制類型轉(zhuǎn)換整理ppt4

35、1Example: int total, number;float average;average = total / number;total15number2average?7.000000兩個整數(shù)運算的結(jié)果兩個整數(shù)運算的結(jié)果還是整數(shù),不是浮點數(shù)還是整數(shù),不是浮點數(shù)強制類型轉(zhuǎn)換強制類型轉(zhuǎn)換整理ppt42Example: int total, number;float average;average = (float)total / number;total15number2average?7.500000強制類型轉(zhuǎn)換強制類型轉(zhuǎn)換整理ppt43增一和減一運算符增一和減一運算符 n+n+,n

36、n-,+n+n,-n-n +讓參與運算的變量加讓參與運算的變量加1 1,-讓參與運算的讓參與運算的變量減變量減1 1 作為作為后綴后綴(postfix)(postfix)運算符時,先取運算符時,先取n n的值,的值,然后加然后加/ /減減1 1整理ppt44 n+n+,n n-,+n+n,-n-n +讓參與運算的變量加讓參與運算的變量加1 1,-讓參與運算讓參與運算的變量減的變量減1 1 作為作為后綴后綴( (postfixpostfix) )運算符時,先取運算符時,先取n n的值,的值,然后加然后加/ /減減1 1 作為作為前綴前綴(prefix)(prefix)運算符時,先加運算符時,先加

37、/ /減減1 1,然后取然后取n n的值的值增一和減一運算符增一和減一運算符整理ppt45例如例如:j = +i - 2i5等價于:等價于:j? 46增一和減一運算符增一和減一運算符整理ppt46例如:例如:j = i+ - 2i5等價于:等價于: j? 36增一和減一運算符增一和減一運算符整理ppt47例:輸出結(jié)果和變量例:輸出結(jié)果和變量a的值?的值?int a=3;printf(%d,-a+);a3等價于:等價于: printf(%d,-a);a = a + 1;4增一和減一運算符增一和減一運算符整理ppt48例題:例題:main() int i=5,j=5,p,q; p=(i+)+(i+

38、)+(i+); q=(+j)+(+j)+(+j); printf(%d,%d,%d,%d,p,q,i,j);解析:解析:對對p=(i+)+(i+)+(i+)p=(i+)+(i+)+(i+)應(yīng)理解為三個應(yīng)理解為三個i i相加,故相加,故P P值為值為1515。然后。然后i i再自增再自增1 1三次三次相當(dāng)于加相當(dāng)于加3 3故故i i的最后值為的最后值為8 8。而對于而對于q q的值則不然,的值則不然,q=(+j)+(+j)+(+j)q=(+j)+(+j)+(+j)應(yīng)理解為應(yīng)理解為q q先自增先自增1 1,再參與運算,由于,再參與運算,由于q q自增自增1 1三次后值三次后值為為8 8,三個,三個8 8相加的和為相加的和為2424,j j的最后值的最后值仍為仍為8 8。整理ppt49四、運算符四、運算符 逗號運算符和逗號表達式逗號運算符和逗號表達式 功能是把兩個表達式連接起來組成一個表達功能是把兩個表達式連接起來組成一個表達式,式, 稱為逗號表達式。稱為逗號表達式。 其一般形式為:其一般形式為: 表達式表達式1 1,表達式,表達式2 2 分別求兩個表達式的值,并以表達式分別求兩個表達式的值,并以表達式2 2的值作為整的值作為整個逗號表達式的值。個逗號表達式的值。 如:如:int a=2,b=4,c=6,x

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論