第二講基本數(shù)據(jù)計(jì)算與輸入輸出_第1頁(yè)
第二講基本數(shù)據(jù)計(jì)算與輸入輸出_第2頁(yè)
第二講基本數(shù)據(jù)計(jì)算與輸入輸出_第3頁(yè)
第二講基本數(shù)據(jù)計(jì)算與輸入輸出_第4頁(yè)
第二講基本數(shù)據(jù)計(jì)算與輸入輸出_第5頁(yè)
已閱讀5頁(yè),還剩67頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、主講主講劉少兵劉少兵共 72 頁(yè) 第 2 2 頁(yè)本本 章章 要要 點(diǎn)點(diǎn)共 72 頁(yè) 第 3 3 頁(yè)共 72 頁(yè) 第 4 4 頁(yè) 程序加工處理的對(duì)象及其結(jié)果程序加工處理的對(duì)象及其結(jié)果 數(shù)據(jù)在計(jì)算機(jī)內(nèi)部的存儲(chǔ)形式(占用的數(shù)據(jù)在計(jì)算機(jī)內(nèi)部的存儲(chǔ)形式(占用的內(nèi)內(nèi)存單元數(shù)量存單元數(shù)量、編碼方式編碼方式、取值范圍取值范圍等)等) 在程序運(yùn)行過程中在程序運(yùn)行過程中不允許不允許改變的量改變的量 在程序運(yùn)行過程中在程序運(yùn)行過程中允許允許改變的量改變的量共 72 頁(yè) 第 5 5 頁(yè)基本類型基本類型字符型字符型 charchar整型整型 intint浮點(diǎn)型浮點(diǎn)型單精度單精度 floatfloat雙精度雙精度 dou

2、bledouble指針類型指針類型構(gòu)造類型構(gòu)造類型數(shù)組數(shù)組結(jié)構(gòu)結(jié)構(gòu) structstruct聯(lián)合聯(lián)合 unionunion枚舉枚舉 enumenum無(wú)值類型無(wú)值類型第二章第二章第五章第五章第六章第六章指針類型指針類型第四章第四章共 72 頁(yè) 第 6 6 頁(yè)charcharintintfloatfloatdoubledouble類型說明符類型說明符shortshortlonglongsignedsignedunsignedunsigned類型修飾符類型修飾符注意:注意:類型修飾符類型修飾符不能不能單獨(dú)使用,必須與單獨(dú)使用,必須與類型類型說明符說明符配合在一起使用配合在一起使用C語(yǔ)言采用語(yǔ)言采用類

3、型類型說明符說明符說明不同說明不同的數(shù)據(jù)類型的數(shù)據(jù)類型共 72 頁(yè) 第 7 7 頁(yè) 類型類型 占用內(nèi)存單元占用內(nèi)存單元 取值范圍取值范圍 數(shù)據(jù)存儲(chǔ)格式數(shù)據(jù)存儲(chǔ)格式 char 1( 8char 1( 8位位) 0 ) 0 255 255 ASCIIASCII碼碼 s short int 2hort int 2(16(16位位) ) -32768 -32768 32767 32767 二進(jìn)制補(bǔ)碼二進(jìn)制補(bǔ)碼 float 4(32float 4(32位位) ) 3.43.4* *1010-38-383.43.4* *10103838 7 7位有效位有效數(shù)字?jǐn)?shù)字 double 8(64double 8(

4、64位位) ) 1010-308 -308 1010308308 15 15位位有效數(shù)字有效數(shù)字無(wú)法表示無(wú)法表示全體實(shí)數(shù)全體實(shí)數(shù)保存字符對(duì)應(yīng)保存字符對(duì)應(yīng)的的ASCII碼碼-2-215151000,0000,0000,00002 21515-1-10111,1111,1111,1111float:float:尾數(shù)尾數(shù)2424位位+ +階數(shù)階數(shù)8 8位位 double:double:尾數(shù)尾數(shù)5252位位+ +階數(shù)階數(shù)1212位位 共 72 頁(yè) 第 8 8 頁(yè)共 72 頁(yè) 第 9 9 頁(yè)i=2i=2i=6i=6i=24i=24i=120i=120i=720i=720i=5040i=5040i=i=-

5、25216-25216i=i=-30336-30336i=i=2432024320共 72 頁(yè) 第 1010 頁(yè)尾數(shù)的符號(hào)位尾數(shù)的符號(hào)位階碼的符號(hào)位階碼的符號(hào)位共 72 頁(yè) 第 1111 頁(yè) short int short int int short= int shortsigned int short int shortsigned int short int short 類型類型 占用內(nèi)存單元占用內(nèi)存單元 取值范圍取值范圍 unsigned int 2unsigned int 2字節(jié)字節(jié) 0 0 65535 65535long int long int 4 4字節(jié)字節(jié) -214748364

6、8 -2147483648 2147483647 2147483647unsigned long 4unsigned long 4字節(jié)字節(jié) 0 0 4294967295 4294967295-2-231312 23131-1-12 21616-1-12 23232-1-1共 72 頁(yè) 第 1212 頁(yè)l 整型常量整型常量(3種形式種形式)10進(jìn)制進(jìn)制 8進(jìn)制進(jìn)制16進(jìn)制進(jìn)制l實(shí)型常量實(shí)型常量(2種形式種形式)十進(jìn)制十進(jìn)制 指數(shù)指數(shù) l字符常量字符常量l字符串常量字符串常量9 9, 、或或共 72 頁(yè) 第 1313 頁(yè)共 72 頁(yè) 第 1414 頁(yè)共 72 頁(yè) 第 1515 頁(yè)共 72 頁(yè) 第

7、1616 頁(yè)共 72 頁(yè) 第 1717 頁(yè)字符串常量:用字符串常量:用雙引號(hào)雙引號(hào)括起來(lái)的字符括起來(lái)的字符序列序列 實(shí)例:實(shí)例:”This is C string.This is C string.” ”a a” ” ” (1 1個(gè)個(gè)空格)空格) ” (不含空格)不含空格) 串定界符:串定界符:雙引號(hào)雙引號(hào) ”字符串長(zhǎng)度字符串長(zhǎng)度:字符串中包含的:字符串中包含的字符數(shù)量字符數(shù)量。tNameAddressntNameAddressnC is very easy.C is very easy. a a 與與 字符字符a a 的區(qū)別的區(qū)別 He saidHe said ok.ok. nn共 72 頁(yè)

8、 第 1818 頁(yè)l常量定義形式常量定義形式# #definedefine 標(biāo)識(shí)符標(biāo)識(shí)符 常量常量 用定義的一個(gè)用定義的一個(gè)標(biāo)識(shí)符標(biāo)識(shí)符來(lái)代表一個(gè)來(lái)代表一個(gè)常量常量,稱為稱為符號(hào)常量符號(hào)常量# # 宏命令專用定義符號(hào)宏命令專用定義符號(hào)definedefine 命令命令 標(biāo)識(shí)符標(biāo)識(shí)符宏替換名(一般采用大寫字符)宏替換名(一般采用大寫字符)共 72 頁(yè) 第 1919 頁(yè)共 72 頁(yè) 第 2020 頁(yè)l變量:變量:在程序運(yùn)行過程中在程序運(yùn)行過程中允許允許改變的量改變的量l變量的說明格式:變量的說明格式: 類型修飾符類型修飾符 類型說明符類型說明符 變量列表變量列表;l例如:例如:intint i;

9、i; charchar ch, str; ch, str; longlong k=1, m=0 x12345678; k=1, m=0 x12345678; double x, y=1; double x, y=1;l變量說明意味著確定了:該變量變量說明意味著確定了:該變量 占用占用內(nèi)存內(nèi)存單元的數(shù)量,單元的數(shù)量, 數(shù)據(jù)在內(nèi)存的數(shù)據(jù)在內(nèi)存的表示方式表示方式, 數(shù)據(jù)的數(shù)據(jù)的取值范圍取值范圍。共 72 頁(yè) 第 2121 頁(yè)l變量的三個(gè)屬性:變量的三個(gè)屬性: 變量變量名稱名稱:編程編程時(shí)使用(進(jìn)行時(shí)使用(進(jìn)行編程編程) 變量的變量的值值:程序:程序運(yùn)行運(yùn)行時(shí)使用(進(jìn)行時(shí)使用(進(jìn)行運(yùn)算運(yùn)算) 變量變量

10、地址地址:程序運(yùn)行時(shí),要將變量的:程序運(yùn)行時(shí),要將變量的值值保保存在計(jì)算機(jī)的存儲(chǔ)單元中,每個(gè)存儲(chǔ)單元都存在計(jì)算機(jī)的存儲(chǔ)單元中,每個(gè)存儲(chǔ)單元都有唯一的有唯一的內(nèi)存地址內(nèi)存地址。變量。變量在內(nèi)存中占據(jù)的存在內(nèi)存中占據(jù)的存儲(chǔ)單元的地址儲(chǔ)單元的地址就是就是變量的地址變量的地址。l指針指針:變量的:變量的地址地址l一般一般變量:變量:存儲(chǔ)變量的存儲(chǔ)變量的值值l指針變量指針變量:保存變量地址的變量:保存變量地址的變量共 72 頁(yè) 第 2222 頁(yè)l指針變量說明:指針變量說明:數(shù)據(jù)類型數(shù)據(jù)類型 * * 變量名變量名;例例:有變量說明語(yǔ)句:有變量說明語(yǔ)句:char c=A; 若變量若變量c在在內(nèi)存中對(duì)應(yīng)的地址

11、為內(nèi)存中對(duì)應(yīng)的地址為1000; * 變量變量名稱名稱:c,類型為類型為char,占用占用1個(gè)字節(jié)個(gè)字節(jié) * 變量變量c的的值值: 字母字母A * 變量變量c的的地址地址:1000若有:若有:char * * pc;則稱指針變量則稱指針變量pc是是char型指針型指針pc=&c; / /* * & &取取c c的地址的地址 * */ /則稱則稱指針變量指針變量pc指向指向變量變量c1000 A 變 量c1001 2000 1000 變 量pc共 72 頁(yè) 第 2323 頁(yè) 變量在說明之后,沒有固定的初始值,要變量在說明之后,沒有固定的初始值,要先先賦值(給定一個(gè)初始值),賦值(給定一個(gè)初始值),

12、后后使用。使用。l變量賦初值變量賦初值 將將變量說明變量說明與與賦初值賦初值合一,在說明變量時(shí)合一,在說明變量時(shí)同時(shí)完成。同時(shí)完成。l實(shí)例實(shí)例char cc = a, dd = n ;int x = 10, y = - -10, z; double try = 28.5, w = 1e10;共 72 頁(yè) 第 2424 頁(yè)條件運(yùn)算條件運(yùn)算 指針指針運(yùn)算運(yùn)算 目目:進(jìn)行運(yùn)算時(shí)需:進(jìn)行運(yùn)算時(shí)需要的要的操作數(shù)的數(shù)量操作數(shù)的數(shù)量共 72 頁(yè) 第 2525 頁(yè)l運(yùn)算符(運(yùn)算符(雙雙目運(yùn)算符目運(yùn)算符/ /單單目運(yùn)算符)目運(yùn)算符) + + 加法運(yùn)算加法運(yùn)算 1212 正正值運(yùn)算值運(yùn)算 1414 - - 減法運(yùn)

13、算減法運(yùn)算 1212 負(fù)負(fù)值運(yùn)算值運(yùn)算 1414 * * 乘法運(yùn)算乘法運(yùn)算 1313 / / 除法運(yùn)算除法運(yùn)算 1313 % % 求余運(yùn)算求余運(yùn)算 1313l優(yōu)先級(jí)優(yōu)先級(jí):* * / % / % 同級(jí)(高),同級(jí)(高),+ + - - 同級(jí)(低)同級(jí)(低)l結(jié)合性結(jié)合性:相同優(yōu)先級(jí)運(yùn)算符進(jìn)行運(yùn)算時(shí)的次序:相同優(yōu)先級(jí)運(yùn)算符進(jìn)行運(yùn)算時(shí)的次序 自自左左向向右右共 72 頁(yè) 第 2626 頁(yè)1.1.參加運(yùn)算的對(duì)象都是參加運(yùn)算的對(duì)象都是intint型,結(jié)果截取為型,結(jié)果截取為intint型型 9%3 9%31%31%310%310%310%-310%-3-10%3-10%3-10%-3-10%-3=3=

14、3=3.3333=3.66667=0=0.5=6=0=0=1 1=1= =1 1= =-1-1= =-1-1共 72 頁(yè) 第 2727 頁(yè)l運(yùn)算符(運(yùn)算符(雙雙目運(yùn)算符目運(yùn)算符 )l優(yōu)先級(jí)優(yōu)先級(jí): = = bab)=cab=ca-b=c成立成立, 結(jié)果為結(jié)果為 1不成立不成立,結(jié)果為結(jié)果為 成立成立, 結(jié)果為結(jié)果為 1不成立不成立,結(jié)果為,結(jié)果為 結(jié)果為結(jié)果為 1與上面與上面等價(jià)等價(jià),結(jié)果為結(jié)果為 1等價(jià)等價(jià)于于( (a-b)a-b)=1 1,結(jié)果為結(jié)果為 如何判斷數(shù)學(xué)中的邏輯關(guān)系:如何判斷數(shù)學(xué)中的邏輯關(guān)系:00a a99? 0 0=a a=9 9共 72 頁(yè) 第 2929 頁(yè)l運(yùn)算符運(yùn)算符&

15、 & 邏輯與邏輯與( (雙雙目目) ) 邏輯或邏輯或( (雙雙目目) ) ! ! 邏輯非邏輯非( (單目單目) ) 共 72 頁(yè) 第 3030 頁(yè)共 72 頁(yè) 第 3131 頁(yè)l運(yùn)算符運(yùn)算符( (雙雙目目) ) ( (雙雙目目) ) ( (雙雙目目) )( (雙雙目目) ) ( (雙雙目目) )( (單單目目) )共 72 頁(yè) 第 3232 頁(yè)l實(shí)例:已知:實(shí)例:已知:intint x=7,y=10,z=1; x=7,y=10,z=1; 設(shè)字長(zhǎng)為設(shè)字長(zhǎng)為8位位 x&y = x&z = x y = y z = x y = x = x = x2 = x2 = 2 ( (0000 0111 & 00

16、00 1010 = 0010) ) 1 ( (0000 0111 & 0000 0001 = 0001) ) 15 ( (0000 0111 0000 1010 = 1111) ) 11 ( (0000 1010 0000 0001 = 1011) ) 13 ( (0000 0111 0000 1010 = 1101) ) 8 ( ( 0000 0111 ) ) = 1111 1000 7 28 ( (0000 0111 2 = 0000 0010) ) 1 ( (0000 0111 2 = 0000 0001) )共 72 頁(yè) 第 3333 頁(yè)l說明說明 關(guān)于關(guān)于:右移一位:右移一位 = =

17、 縮小縮小 1/2 1/2 關(guān)于關(guān)于:左移一位:左移一位 = = 擴(kuò)大擴(kuò)大 2 2 倍倍 關(guān)于關(guān)于: 因?yàn)椋阂驗(yàn)椋?x = x = 按位求反按位求反 = = 求反運(yùn)算求反運(yùn)算 求負(fù)求負(fù) = = 求補(bǔ)求補(bǔ) = = 求反求反 + 1 + 1 所以:所以: 求反求反 = = 求負(fù)求負(fù) 1 1 x = x = -x-x -1 -1 7 = 7 = 8 8 ( (8) = 78) = 7共 72 頁(yè) 第 3434 頁(yè)l運(yùn)算符運(yùn)算符+ l+和和 為單目運(yùn)算,只能作用于變量為單目運(yùn)算,只能作用于變量l只能對(duì)只能對(duì)intint、charchar、longlong和和指針變量指針變量進(jìn)行運(yùn)算進(jìn)行運(yùn)算l功能:功能

18、: +x x=x+1 x x=x1 ( (前綴前綴) ) x+ x=x+1 x x=x1 ( (后綴后綴) )共 72 頁(yè) 第 3535 頁(yè)l前綴與后綴的區(qū)別:前綴與后綴的區(qū)別: y=+x; x=x+1; y=x; x先先加加1再再賦值賦值 y=x+; y=x; x=x+1; x先先賦值賦值再再加加1共 72 頁(yè) 第 3636 頁(yè)共 72 頁(yè) 第 3737 頁(yè)l 注意,以下操作是錯(cuò)誤的:注意,以下操作是錯(cuò)誤的: x = +(i+j)+1; j = + (5+x); y = +x * * +x; 邏輯邏輯雖然正確雖然正確,但實(shí)際編程,但實(shí)際編程中容易產(chǎn)生誤中容易產(chǎn)生誤解,應(yīng)當(dāng)避免解,應(yīng)當(dāng)避免共

19、72 頁(yè) 第 3838 頁(yè)共 72 頁(yè) 第 3939 頁(yè)l運(yùn)算符運(yùn)算符賦值運(yùn)算:賦值運(yùn)算: = 2賦值組合運(yùn)算:賦值組合運(yùn)算:e1 op= e2 2 等于于:等于于:e1 = e1 op (e2)其中:其中:op為下列為下列10個(gè)運(yùn)算符之一個(gè)運(yùn)算符之一+ + * * / % / % | & | & e1為可以進(jìn)行賦制操作的變量為可以進(jìn)行賦制操作的變量e2為合法的表達(dá)式為合法的表達(dá)式l例:例:x += 2; x = x + 2; x * *= y+1; x = x * * ( y+1); 不等價(jià)不等價(jià) x = x * * y+1; x = 2; x = x 2;共 72 頁(yè) 第 4040 頁(yè)l運(yùn)

20、算符運(yùn)算符e1 ? e2 : e3例:例:max = (ab) ? a : b; 求變量求變量a與與b的的最大值最大值 min = (ab) ? a : b; 求變量求變量a與與b的的最小值最小值判斷判斷e1 ?執(zhí)行執(zhí)行e2執(zhí)行執(zhí)行e3成立成立不成立不成立共 72 頁(yè) 第 4141 頁(yè)l運(yùn)算符運(yùn)算符& 取變量的地址取變量的地址 14* * 取指針變量(所指向)的內(nèi)容取指針變量(所指向)的內(nèi)容 14l注意注意: 運(yùn)算符運(yùn)算符 & 和和“位與位與”運(yùn)算是同一符號(hào);運(yùn)算是同一符號(hào); 運(yùn)算符運(yùn)算符 * * 和和“乘乘”運(yùn)算是同一符號(hào)。運(yùn)算是同一符號(hào)。 只能從程序的上下文來(lái)區(qū)分運(yùn)算符只能從程序的上下文來(lái)

21、區(qū)分運(yùn)算符 & 和和運(yùn)運(yùn)算符算符 * * 的實(shí)際意義。的實(shí)際意義。共 72 頁(yè) 第 4242 頁(yè)l實(shí)例:實(shí)例:已知:已知:int x=2, y, * *px; x為一般變量,為一般變量,px為指針型變量為指針型變量 y=x * * 100; * *px=y* *10; +x; x+; px px = &x; 取變量取變量x的地址賦值給指針的地址賦值給指針px 又稱為讓又稱為讓px指向指向變量變量x x=10;若若px已經(jīng)已經(jīng)指向指向x,則可以用則可以用 * *px 代替變量代替變量 xx210 * *px = 10; 也稱為也稱為間接訪問間接訪問 y = * *px; 取指針取指針px的的內(nèi)容

22、內(nèi)容 y = * *px * * 100; x = y * * 10; + * * px (* * px)+; 括號(hào)括號(hào)不能不能省略省略 y=x; 共 72 頁(yè) 第 4343 頁(yè)l運(yùn)算符運(yùn)算符 . . 取結(jié)構(gòu)取結(jié)構(gòu)/聯(lián)合的成員聯(lián)合的成員15 通過指針通過指針取結(jié)構(gòu)取結(jié)構(gòu)/聯(lián)合的成員聯(lián)合的成員 15 ( ) 改變表達(dá)式中的優(yōu)先級(jí)關(guān)系改變表達(dá)式中的優(yōu)先級(jí)關(guān)系 15 數(shù)組下標(biāo)數(shù)組下標(biāo) 15 , 逗號(hào),表達(dá)式從左向右順序計(jì)算逗號(hào),表達(dá)式從左向右順序計(jì)算 1 (type) e 將將e的數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換為的數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換為type 14 sizeof (opr) 求求opr所占用的內(nèi)存的字節(jié)數(shù)所占用的內(nèi)

23、存的字節(jié)數(shù) 14第六章第六章第五章第五章共 72 頁(yè) 第 4444 頁(yè)l實(shí)例實(shí)例: 已知:已知:int x,y,z;int x,y,z; y = ( x=10, x+1); 答案答案:先執(zhí)行先執(zhí)行x=10,然后再執(zhí)行,然后再執(zhí)行y = x+1 y=11, x=10 z = sizeof( (int) ); 答案答案:z=2 求求int型數(shù)據(jù)占用的內(nèi)存字節(jié)數(shù)量型數(shù)據(jù)占用的內(nèi)存字節(jié)數(shù)量 z = sizeof( (x) ); 答案答案:z=2 求變量求變量x占用的內(nèi)存字節(jié)數(shù)量占用的內(nèi)存字節(jié)數(shù)量共 72 頁(yè) 第 4545 頁(yè)l按運(yùn)算符的按運(yùn)算符的優(yōu)先級(jí)優(yōu)先級(jí)分為分為15級(jí)級(jí)l按運(yùn)算符的按運(yùn)算符的結(jié)合性

24、結(jié)合性分為分為2種種自左向右自左向右結(jié)合結(jié)合 自右向左自右向左結(jié)合結(jié)合l優(yōu)先級(jí)優(yōu)先級(jí)不同不同時(shí):運(yùn)算符優(yōu)先級(jí)的時(shí):運(yùn)算符優(yōu)先級(jí)的高低高低決定了決定了進(jìn)行運(yùn)算的進(jìn)行運(yùn)算的先后次序先后次序。l優(yōu)先級(jí)優(yōu)先級(jí)相同相同時(shí):同優(yōu)先級(jí)運(yùn)算符的運(yùn)算次序時(shí):同優(yōu)先級(jí)運(yùn)算符的運(yùn)算次序由結(jié)合性決定。由結(jié)合性決定。l例如:例如:四則運(yùn)算中的四則運(yùn)算中的“先乘除,后加減先乘除,后加減”反反映了運(yùn)算符的優(yōu)先級(jí);映了運(yùn)算符的優(yōu)先級(jí);“同級(jí)運(yùn)算從左至右同級(jí)運(yùn)算從左至右”反映了乘反映了乘/除運(yùn)算(加除運(yùn)算(加/減運(yùn)算)的結(jié)合性。減運(yùn)算)的結(jié)合性。共 72 頁(yè) 第 4646 頁(yè)優(yōu)先級(jí) 運(yùn)算符 結(jié)合性 優(yōu)先級(jí) 運(yùn)算符 結(jié)合性 (

25、) 9 = = != 15 . - 8 & ! + - 7 - * & 6 ! 14 (type) sizeof 5 & 13 * / % 4 | 12 + - 3 ? : 11 = = 1 , l運(yùn)算符運(yùn)算符優(yōu)先級(jí)優(yōu)先級(jí)表表共 72 頁(yè) 第 4747 頁(yè)l已知:已知:int a=8, b=5, c=2; 計(jì)算計(jì)算下列表達(dá)式結(jié)果下列表達(dá)式結(jié)果 a / b * * b a %b * * c a * * c 2 a & c & b a | b & c ( a 3) b a ? a * c : a % c5先先 / 后后 * *6先先 % 后后 * *4先先 * * 后后 0先先 & 后后 &8先先

26、 & 后后 | 后后 00001000=111101113=1111 1110=0000 000116先先 再再 再再 ? ? : :共 72 頁(yè) 第 4848 頁(yè)# #define PRINT(x) printf(%dn, x)define PRINT(x) printf(%dn, x)main ( )main ( ) int x=3, y=2, z=1; int x=3, y=2, z=1; x = y+ = x & x = y+ = x & x - y = +zx - y = +z; ; PRINT(x); PRINT(y); PRINT(z); PRINT(x); PRINT(y);

27、PRINT(z); y y * *= z = x+(z+2); = z = x+(z+2); PRINT(x); PRINT(y); PRINT(z); PRINT(x); PRINT(y); PRINT(z); x = y = z = 1; x = y = z = 1; PRINT (-x & PRINT (-x & +y +y | z+); | z+); PRINT(x); PRINT(y); PRINT(z); PRINT(x); PRINT(y); PRINT(z); x=9; y=6; z=5; x=9; y=6; z=5; x = ( x + y ) % z = x % z + y

28、 % z ) ? 1: 0; x = ( x + y ) % z = x % z + y % z ) ? 1: 0; PRINT(x); PRINT(x); / /* * 先算先算y=xy=x結(jié)果為結(jié)果為0 0,則,則不不再再 算算&之后的表達(dá)式之后的表達(dá)式x-y=+zx-y=+z。將結(jié)果賦給將結(jié)果賦給x x,最后執(zhí)行最后執(zhí)行y+1y+1 * */ / / /* * x= x=0 0, y=, y=3 3, z=, z=1 1 * */ / / /* * 先先算算x+(z+2)x+(z+2),3 3賦給賦給z z,再再執(zhí)行執(zhí)行y y* *=z =z * */ / / /* * x= x=0 0

29、, y=, y=9 9, z=, z=3 3 * */ / / /* * x x先減先減1 1結(jié)果為結(jié)果為0 0,則跳過,則跳過&+&+y y不執(zhí)行,與不執(zhí)行,與z z進(jìn)行邏輯或運(yùn)算,再執(zhí)行進(jìn)行邏輯或運(yùn)算,再執(zhí)行z+z+,輸出結(jié)果:輸出結(jié)果:1 1 * */ / / /* * x=x=0 0, y=, y=1 1, z=, z=2 2 * */ / /* * * */ / /* * * */ / /* * * */ / /* * * */ / /* * * */ / / /* * x= x=0 0 * */ /共 72 頁(yè) 第 4949 頁(yè)# #include include main ( )

30、main ( )int x, y, z;int x, y, z; x=1; y=1; z=0; x=1; y=1; z=0; x = x x = x &y y|z;z; printf(x=%dn,x); printf(x=%dn,x); printf (%dn, x printf (%dn, x | ! !y+ & +z);y+ & +z); printf (y=%d, z=%dn, y, z); printf (y=%d, z=%dn, y, z); x = y = 1; x = y = 1; z = x z = x+ -1; -1; printf (x=%d, z=%dn, x, z);

31、printf (x=%d, z=%dn, x, z); z += -x z += -x+ + + +y;y; printf (x=%d, y=%d, z=%dn, x, y, z); printf (x=%d, y=%d, z=%dn, x, y, z); & &優(yōu)先級(jí)高,先計(jì)算優(yōu)先級(jí)高,先計(jì)算x&yx&y,結(jié)果為結(jié)果為1 1由于是由于是|運(yùn)算,故不再計(jì)算運(yùn)算,故不再計(jì)算1 1|z z。x=1x=1|優(yōu)先級(jí)最低優(yōu)先級(jí)最低, ,x=1,x=1,不再計(jì)算不再計(jì)算|右邊的算式右邊的算式, ,y y和和z z不變不變 y=1, z=0y=1, z=0 +為后綴為后綴, ,先先將將x-1x-1的值賦給的

32、值賦給z,z,再再計(jì)算計(jì)算x+ x+ x=2, z=0 x=2, z=0等價(jià)于等價(jià)于z+=(-(x+)+(z+=(-(x+)+(+y)y)x=3, z=0, y=2x=3, z=0, y=2實(shí)例實(shí)例共 72 頁(yè) 第 5050 頁(yè)l不同數(shù)據(jù)類型的數(shù)據(jù)不同數(shù)據(jù)類型的數(shù)據(jù)/ /變量進(jìn)行混合運(yùn)算時(shí),需變量進(jìn)行混合運(yùn)算時(shí),需要進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換要進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換l轉(zhuǎn)換方式有兩種:轉(zhuǎn)換方式有兩種:“顯式的顯式的”類型轉(zhuǎn)換類型轉(zhuǎn)換“隱式的隱式的”類型轉(zhuǎn)換類型轉(zhuǎn)換l“顯式的顯式的”類型轉(zhuǎn)換采用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符類型轉(zhuǎn)換采用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符( (type)type)l“隱式的隱式的”類型轉(zhuǎn)換是語(yǔ)言按照一定的類型

33、類型轉(zhuǎn)換是語(yǔ)言按照一定的類型轉(zhuǎn)換規(guī)則自動(dòng)進(jìn)行的轉(zhuǎn)換轉(zhuǎn)換規(guī)則自動(dòng)進(jìn)行的轉(zhuǎn)換共 72 頁(yè) 第 5151 頁(yè)l“隱式的隱式的”類型轉(zhuǎn)換規(guī)則類型轉(zhuǎn)換規(guī)則 1 1、運(yùn)算中將所有、運(yùn)算中將所有charchar型數(shù)據(jù)都轉(zhuǎn)換成型數(shù)據(jù)都轉(zhuǎn)換成intint型,型,floatfloat型轉(zhuǎn)換成型轉(zhuǎn)換成doubledouble型。型。 2 2、低級(jí)類型服從高級(jí)類型,并進(jìn)行相應(yīng)的轉(zhuǎn)、低級(jí)類型服從高級(jí)類型,并進(jìn)行相應(yīng)的轉(zhuǎn)換換doubledouble floatfloatlonglongunsignedunsignedintint char char 3 3、賦值賦值運(yùn)算以賦值運(yùn)算符運(yùn)算以賦值運(yùn)算符左邊左邊變量的類型為變量

34、的類型為準(zhǔn),即賦值運(yùn)算符右端值的類型向左邊變量準(zhǔn),即賦值運(yùn)算符右端值的類型向左邊變量的類型看齊,并進(jìn)行相應(yīng)的轉(zhuǎn)換。的類型看齊,并進(jìn)行相應(yīng)的轉(zhuǎn)換。共 72 頁(yè) 第 5252 頁(yè)例:例:intint a,j,y; a,j,y; floatfloat b; b; longlong d; d; doubledouble c; c;則:則: y = j + y = j + a a + a + a * * b - c / d; b - c / d;其運(yùn)算次序和隱含的類型轉(zhuǎn)換為:其運(yùn)算次序和隱含的類型轉(zhuǎn)換為:計(jì)算計(jì)算a a* *b b,運(yùn)算結(jié)果為運(yùn)算結(jié)果為doubledouble型。型。再計(jì)算再計(jì)算c/dc

35、/d,結(jié)果為結(jié)果為doubledouble型。型。計(jì)算計(jì)算j+j+a a,結(jié)果為整型。結(jié)果為整型。將第將第1 1步和第步和第3 3步的結(jié)果相加,結(jié)果為步的結(jié)果相加,結(jié)果為doubledouble型型用第用第4 4步結(jié)果減第步結(jié)果減第2 2步結(jié)果,結(jié)果為步結(jié)果,結(jié)果為doubledouble型型給給y y賦值,先將第步的結(jié)果賦值,先將第步的結(jié)果doubledouble型轉(zhuǎn)換為型轉(zhuǎn)換為整型(因?yàn)橘x值運(yùn)算左邊變量整型(因?yàn)橘x值運(yùn)算左邊變量y y為整型),為整型),截掉截掉doubledouble型數(shù)據(jù)的小數(shù)部分,壓縮成型數(shù)據(jù)的小數(shù)部分,壓縮成intint型。型。共 72 頁(yè) 第 5353 頁(yè)共 72

36、 頁(yè) 第 5454 頁(yè)l調(diào)用形式:調(diào)用形式: c = c = getchar( )getchar( )l功能:功能:從標(biāo)準(zhǔn)輸入設(shè)備從標(biāo)準(zhǔn)輸入設(shè)備( (鍵盤鍵盤) )上取上取一個(gè)一個(gè)字符作字符作為函數(shù)值返回。為函數(shù)值返回。l例例: # #include stdio.hinclude stdio.h main ( ) main ( ) char c; char c; c = c = getchargetchar( );( ); putcharputchar(c); /(c); /* * 輸出字符變量輸出字符變量c c的值的值 * */ / l運(yùn)行程序,如果從鍵盤輸入:運(yùn)行程序,如果從鍵盤輸入:a

37、aENTERENTER則輸出為:則輸出為: a a如果從鍵盤輸入:如果從鍵盤輸入: abcabcENTERENTER則輸出也為:則輸出也為: a a共 72 頁(yè) 第 5555 頁(yè)l調(diào)用形式:調(diào)用形式:scanf( (”控制字符串控制字符串”, ,參數(shù)參數(shù)1 1, ,參數(shù)參數(shù)2 2, , , ,參數(shù)參數(shù)n n) )其中:控制字符串也稱為其中:控制字符串也稱為格式說明串格式說明串,它用于描述變,它用于描述變量的輸入方式,格式說明的形式是:量的輸入方式,格式說明的形式是:附加格式說明符附加格式說明符 格式轉(zhuǎn)換字符格式轉(zhuǎn)換字符附加格式說明符附加格式說明符部分可以缺省。部分可以缺省。l功能:功能:從標(biāo)準(zhǔn)

38、輸入設(shè)備上讀取輸入數(shù)據(jù),按格式說明從標(biāo)準(zhǔn)輸入設(shè)備上讀取輸入數(shù)據(jù),按格式說明的描述將讀入的數(shù)據(jù)賦于相應(yīng)的參數(shù)。的描述將讀入的數(shù)據(jù)賦于相應(yīng)的參數(shù)。 參數(shù)部分的每個(gè)參數(shù),若為一般變量,要在變量名參數(shù)部分的每個(gè)參數(shù),若為一般變量,要在變量名前加前加“& &”(取地址運(yùn)算符),表示將輸入的數(shù)據(jù)存(取地址運(yùn)算符),表示將輸入的數(shù)據(jù)存入變量對(duì)應(yīng)的內(nèi)存單元(地址)中。入變量對(duì)應(yīng)的內(nèi)存單元(地址)中。scanfscanf ( ( ”%d%d”, , & &x x ) ); ;共 72 頁(yè) 第 5656 頁(yè)格式轉(zhuǎn)換字符格式轉(zhuǎn)換字符 說說 明明 d d 輸入輸入十十進(jìn)制整數(shù)進(jìn)制整數(shù) o o 輸入輸入八八進(jìn)制整數(shù)進(jìn)制

39、整數(shù) x x 輸入輸入十六十六進(jìn)制整數(shù)進(jìn)制整數(shù) c c 輸入輸入單個(gè)單個(gè)字符字符 s s 輸入字符輸入字符串串 f f 輸入輸入實(shí)數(shù)實(shí)數(shù),可為小數(shù)形式或指數(shù)形式,可為小數(shù)形式或指數(shù)形式附加格式說明符附加格式說明符 說說 明明 l l 用于輸入用于輸入長(zhǎng)整型長(zhǎng)整型數(shù)據(jù)及數(shù)據(jù)及doubledouble型數(shù)據(jù)型數(shù)據(jù) h h 用于用于短短整型數(shù)據(jù)整型數(shù)據(jù)正整數(shù)正整數(shù) 用于指定輸入數(shù)據(jù)占據(jù)的寬度用于指定輸入數(shù)據(jù)占據(jù)的寬度 * * 表示本輸入項(xiàng)在讀入后舍棄表示本輸入項(xiàng)在讀入后舍棄共 72 頁(yè) 第 5757 頁(yè):scanf (scanf (%3d%3d%2d%2d, , &x&x, , &y&y););輸入

40、序列:輸入序列:123456123456 ENTERENTER結(jié)果:結(jié)果:x=1x=12323,y=y=4545:scanf (scanf (%d%d, ,%d%d: :%f%f, , &x&x, , &y&y, , &z&z););輸入序列:輸入序列:1 1, ,2 2: :3.53.5 ENTERENTER結(jié)果:結(jié)果:x=x=1 1,y=y=2 2,z=z=3.53.5:scanf (scanf (%d%d%d%d%d%d, , &x&x, , &y&y, , &z&z););輸入序列一:輸入序列一:1 12 23 3 ENTERENTER結(jié)果:結(jié)果:x=x=1 1,y=y=2 2,z=z

41、=3 3輸入序列二:輸入序列二:11TAB2 3TAB2 3ENTERENTER輸入序列三:輸入序列三:1 1 ENTERENTER 2 32 3ENTERENTER結(jié)果與輸入序列一的結(jié)果一樣。結(jié)果與輸入序列一的結(jié)果一樣。共 72 頁(yè) 第 5858 頁(yè):scanf (scanf (%2d%2d % %* *2d2d,%2d, ,%2d, &x&x, &y);, &y);輸入序列:輸入序列:12 12 34,34,5656 ENTERENTER結(jié)果:結(jié)果:x=x=1212,y=56y=56。注意注意: 在在scanfscanf中,可以使用中,可以使用 ENTERENTER 、空格空格或或 TAB

42、TAB作為數(shù)據(jù)之間的作為數(shù)據(jù)之間的分隔符分隔符。5 5:scanf (scanf (”x=x=%d%d, , &x&x);); 要使要使x x的的值等于值等于1212,從鍵盤應(yīng)怎樣輸入?,從鍵盤應(yīng)怎樣輸入? 正確正確的輸入序列:的輸入序列:x=x=1212ENTERENTER 注意注意:字符:字符 x= x= 被過濾掉了被過濾掉了 若輸入序列為:若輸入序列為:1212 ENTERENTER錯(cuò)誤!錯(cuò)誤!共 72 頁(yè) 第 5959 頁(yè)l調(diào)用形式:調(diào)用形式: putcharputchar( c )( c )l功能:功能:通過標(biāo)準(zhǔn)輸出設(shè)備通過標(biāo)準(zhǔn)輸出設(shè)備( (顯示器顯示器) )輸出變量輸出變量c c。

43、l例例C2_7301.CC2_7301.C:將從鍵盤輸入的一行字符復(fù)制到將從鍵盤輸入的一行字符復(fù)制到標(biāo)準(zhǔn)輸出。標(biāo)準(zhǔn)輸出。 # #include stdio.hinclude stdio.hmain ( )main ( ) char c; char c; c= getchar( ); c= getchar( ); whilewhile ( c != ( c != nn ) ) putcharputchar(c); (c); / /* * 輸出該字符輸出該字符 * */ / c=getchar( ); c=getchar( ); / /* * 再取下一輸入字符再取下一輸入字符 * */ / 共 7

44、2 頁(yè) 第 6060 頁(yè)l調(diào)用形式:調(diào)用形式:printf (”控制字符串控制字符串”,參數(shù)參數(shù)1,參數(shù)參數(shù)2,參數(shù)參數(shù)n)其中:控制字符串也稱為格式說明串,它用于其中:控制字符串也稱為格式說明串,它用于描述變量的輸出方式,格式說明的形式是:描述變量的輸出方式,格式說明的形式是:附加格式說明符附加格式說明符 格式轉(zhuǎn)換字符格式轉(zhuǎn)換字符附加格式說明符附加格式說明符部分可以缺省。部分可以缺省。l功能:功能:按照控制字符串中的格式說明依次將后按照控制字符串中的格式說明依次將后面的各參數(shù)進(jìn)行轉(zhuǎn)換,排放成格式說明中規(guī)定面的各參數(shù)進(jìn)行轉(zhuǎn)換,排放成格式說明中規(guī)定的格式,輸出到輸出設(shè)備上。對(duì)的格式,輸出到輸出設(shè)

45、備上。對(duì)非格式說明符非格式說明符,則按則按原樣輸出原樣輸出。共 72 頁(yè) 第 6161 頁(yè)格式轉(zhuǎn)換字符格式轉(zhuǎn)換字符 說說 明明 d d 以十進(jìn)制形式輸出整數(shù)以十進(jìn)制形式輸出整數(shù)( (正數(shù)不輸出符號(hào)正數(shù)不輸出符號(hào)) ) o o 以八進(jìn)制無(wú)符號(hào)形式輸出整數(shù)以八進(jìn)制無(wú)符號(hào)形式輸出整數(shù)( (不輸出前綴符不輸出前綴符) ) x x 以十六進(jìn)制無(wú)符號(hào)形式輸出整數(shù)以十六進(jìn)制無(wú)符號(hào)形式輸出整數(shù)( (不輸出前綴符不輸出前綴符) ) u u 以無(wú)符號(hào)十進(jìn)制形式輸出整數(shù)以無(wú)符號(hào)十進(jìn)制形式輸出整數(shù) c c 以字符形式輸出,僅輸出一個(gè)字符以字符形式輸出,僅輸出一個(gè)字符 s s 輸出字符串輸出字符串 f f 以小數(shù)形式輸

46、出單、雙精度數(shù)以小數(shù)形式輸出單、雙精度數(shù) e e 以標(biāo)準(zhǔn)指數(shù)形式輸出單、雙精度數(shù)以標(biāo)準(zhǔn)指數(shù)形式輸出單、雙精度數(shù) g g 選用選用% %f f或或% %e e格式中輸出寬度較短的一種格式,格式中輸出寬度較短的一種格式, 不輸出無(wú)意義的不輸出無(wú)意義的共 72 頁(yè) 第 6262 頁(yè)共 72 頁(yè) 第 6363 頁(yè)l實(shí)例:實(shí)例: # #include include main( ) main( ) printf (This is a C program.n); printf (This is a C program.n); l實(shí)例:實(shí)例: # #include include main( )main(

47、) int a=1, b=2, c=100; int a=1, b=2, c=100; printf( printf( a=a=%d%d, b=, b=%3d%3d, d=, d=%3d%3d%nn , ,a a, , b b, ,a a* *c/bc/b);); printf(printf( % %d d, %, %o o, %, %x xnn , -a, -a, -a);, -a, -a, -a); 答案:答案:a=1, b= 2, d= 50% -1, 177777, ffff共 72 頁(yè) 第 6464 頁(yè)l實(shí)例:實(shí)例: # #include include main ( )main (

48、 ) char c= char c=a a; ; char ch =Good-bye.; char ch =Good-bye.; printf(% printf(%c c,%,%3c3c,%,%3d3dn, n, c c, , c c, , c c);); printf(printf(%s%s, ,%10s%10s, ,%-8s%-8s, ,%-12s%-12s, ,%6.4s%6.4sn,n,ch,ch,ch,ch,ch);ch,ch,ch,ch,ch); printf(123456789012345678901234567890n); printf(12345678901234567890

49、1234567890n); 答案:答案: a a, , a a, , 9797Good-bye.Good-bye., , Good-bye.,Good-bye.,Good-bye.Good-bye., ,Good-bye.Good-bye. , , Good Good1234567891234567890 0123456789012345678901 12345678902345678901 12345678901232345678901234 4567890567890共 72 頁(yè) 第 6565 頁(yè)l實(shí)例實(shí)例4 4: #include main( ) int a; int a; float

50、b,c; float b,c; scanf ( scanf (”%2d%2d%3f%3f%4f%4f”, , &a&a, , &b&b, , &c&c);); printf( printf(”a=%d,b=%f,c=%fna=%d,b=%f,c=%fn”,a,b,c);,a,b,c); 輸入:輸入:12345678987654321輸出:輸出:a=12, b=345.000000, c=6789.000000共 72 頁(yè) 第 6666 頁(yè)l1 1、運(yùn)算符有優(yōu)先級(jí),在運(yùn)算符有優(yōu)先級(jí),在C C語(yǔ)言中關(guān)于運(yùn)算符語(yǔ)言中關(guān)于運(yùn)算符優(yōu)先級(jí)的正確敘述是優(yōu)先級(jí)的正確敘述是 。 A) A) 邏輯邏輯運(yùn)算符高于運(yùn)

51、算符高于算術(shù)算術(shù)運(yùn)算符,運(yùn)算符,算術(shù)算術(shù)運(yùn)算運(yùn)算符高于符高于關(guān)系關(guān)系運(yùn)算符運(yùn)算符 B) B) 算術(shù)算術(shù)運(yùn)算符高于運(yùn)算符高于關(guān)系關(guān)系運(yùn)算符,運(yùn)算符,關(guān)系關(guān)系運(yùn)算運(yùn)算符高于符高于邏輯邏輯運(yùn)算符運(yùn)算符 C) C) 算術(shù)算術(shù)運(yùn)算符高于運(yùn)算符高于邏輯邏輯運(yùn)算符,運(yùn)算符,邏輯邏輯運(yùn)算運(yùn)算符高于符高于關(guān)系關(guān)系運(yùn)算符運(yùn)算符 D) D) 關(guān)系關(guān)系運(yùn)算符高于運(yùn)算符高于邏輯邏輯運(yùn)算符,運(yùn)算符,邏輯邏輯運(yùn)算運(yùn)算符高于符高于算術(shù)算術(shù)運(yùn)算符運(yùn)算符l答案:答案:B B共 72 頁(yè) 第 6767 頁(yè)l2 2、在以下關(guān)于在以下關(guān)于C C語(yǔ)言的不嚴(yán)格的敘述中,語(yǔ)言的不嚴(yán)格的敘述中,錯(cuò)誤錯(cuò)誤的是的是 A)A)大大寫字母和寫字母和小小寫字母的意義相同寫字母的意義相同 B)B)有些有些不同不同類型的變量可以在一個(gè)表達(dá)式中運(yùn)算類型的變量可以在一個(gè)表達(dá)式中運(yùn)算 C)C)在賦值表達(dá)式中等號(hào)在賦值表

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論