數(shù)據(jù)類型運算符和表達式課件PPT學習教案_第1頁
數(shù)據(jù)類型運算符和表達式課件PPT學習教案_第2頁
數(shù)據(jù)類型運算符和表達式課件PPT學習教案_第3頁
數(shù)據(jù)類型運算符和表達式課件PPT學習教案_第4頁
數(shù)據(jù)類型運算符和表達式課件PPT學習教案_第5頁
已閱讀5頁,還剩81頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)類型運算符和表達式課件數(shù)據(jù)類型運算符和表達式課件第1頁/共86頁第2頁/共86頁第3頁/共86頁第4頁/共86頁第5頁/共86頁第6頁/共86頁#define PRICE 30#define NUM 12void main() . . total = NUM * PRICE; total2 = 84 * PRICE2; printf(total=%d, total); . .不會被替換= total = 12 * 30;常量符號常量第7頁/共86頁第8頁/共86頁34a變量名存儲單元(地址)變量值第9頁/共86頁第10頁/共86頁l、0 x3AB、-0 xabc第11頁/共86頁0 0 0

2、 0 0 0 0 0 0 0 1 1 0 0 1 0高地址字節(jié)低地址字節(jié)第12頁/共86頁0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 01 1 1 1 1 1 1 1 1 1 0 0 1 1 0 11 1 1 1 1 1 1 1 1 1 0 0 1 1 1 050的原碼-50的補碼取反加一第13頁/共86頁第14頁/共86頁第15頁/共86頁第16頁/共86頁void main() int i; unsigned j; i=j=-50; i=i/2; /*-25*/ j=j/2; /*32743*/1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0-50的補碼i,j

3、/ 21 1 1 1 1 1 1 1 1 1 1 0 0 1 1 10 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1i/2-25的補碼j/232743的補碼/原碼第17頁/共86頁類 型長度 (bit)取值范圍signed short int16-215 215-1unsigned short int160 216-1signed int16 or 32-215(31) 215(31)-1unsigned int16 or 320 216(32)-1signed long int32-231 231-1unsigned long int320 232-1第18頁/共86頁第19頁

4、/共86頁void main() int a;/*定義有符號基本整型變量a*/ unsigned b;/*定義無符號基本整型變量b*/ long c;/*定義有符號長整型變量c*/ a = -23;/*a的值為-23*/ b = 45;/*b的值為45*/ c = a + b;/*c的值為22*/第20頁/共86頁void main() int a = 32767; a+; /*32768?*/0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0+132767的補碼-32768的補碼第21頁/共86頁第22頁/共86頁第2

5、3頁/共86頁第24頁/共86頁第25頁/共86頁5第26頁/共86頁1 1 0 1 1 0 0 1 1 0 1 1 0 0 1 0指數(shù)部分e小數(shù)部分f符號sesfv2). 1 () 1(第27頁/共86頁第28頁/共86頁類 型長度 (bit) 有效數(shù)字絕對值范圍float326710-371038double64151610-30710308long double128181910-4931104932第29頁/共86頁float a=123456.789e5, b;b = a + 20; /*b=12345678920?*/printf(a=%fnb=%fn, a, b);運行結(jié)果 a=

6、12345678848.000000 b=12345678848.000000n思考:1.0/3*3=?第30頁/共86頁第31頁/共86頁第32頁/共86頁l舉例,n、t、123、x3A第33頁/共86頁void main() char c1, c2; /*定義字符型變量c1和c2*/ c1 = a; /*c1的值為a*/ c2 = 2; /*c2的值為2*/第34頁/共86頁01100001c1=a(ASCII=97)00110010c1=2(ASCII=50)第35頁/共86頁時才有意義第36頁/共86頁void main() char c; int i, j; c = 97;/*c =

7、 a*/ i = c + 20;/*i = 117*/ j = 2;/*j = 50*/ printf(%c, %dn, c, c); /*a, 97*/第37頁/共86頁第38頁/共86頁字符常量和字符串常量是不同類型的數(shù)據(jù)l例如,a與a是不同的l不能把一個字符串賦值給一個字符型變量第39頁/共86頁llaT E S T 084 69 83 84 000a 0009700第40頁/共86頁賦值第41頁/共86頁doublelongunsignedintfloatchar, short高高低低第42頁/共86頁第43頁/共86頁第44頁/共86頁第45頁/共86頁/*先算加減,后算乘除*/第4

8、6頁/共86頁第47頁/共86頁第48頁/共86頁第49頁/共86頁第50頁/共86頁第51頁/共86頁第52頁/共86頁第53頁/共86頁運算符名稱舉例說明+正值運算符(正號)+b值不變-負值運算符(負號)-d取相反數(shù)+加法運算符a+3加法-減法運算符c-4減法*乘法運算符a*3乘法/除法運算符c/d除法%模運算符e%4求余數(shù)、取模第54頁/共86頁第55頁/共86頁l舉例,-5/3(=-1?-2?)模運算符的兩個操作數(shù)都必須是整數(shù)l負數(shù)模運算結(jié)果的符號沒有規(guī)定l舉例,5%3(=2)、-5%3(=-2?1?)第56頁/共86頁第57頁/共86頁float x=2.8, y=3.7, z;in

9、t a, b, c, d=5, e=2;a=(int)x+y;/* a=5, 2+3.7 = 5 */b=(int)(x+y); /* b=6, (int)(6.5) */c=(int)x;printf(x=%f, c=%dn, x, c);/* x=2.800000, c=2 */z=(float)d/e; /* z=2.5 */第58頁/共86頁l+和-只能用于變量,不能用于常量和表達式l+和-的結(jié)合方向是“自右向左”第59頁/共86頁int i=3, j, a, b=1, c=2;j = +i;/* i=i+1, j=i, i=4, j=4 */j = i+;/* j=i, i=i+1,

10、 i=5, j=4 */j = -i+;/* -(i+), i=6, j=-5 */j = i+*2;/* (i+)*2, i=7, j=12 */a = (b+c)+;/* 非法! */a = 34+;/* 非法! */j = +i+;/* 非法! */第60頁/共86頁調(diào)用函數(shù)時,實參的求值順序沒有規(guī)定li=3; printf(%d,%dn, i, i+);/* 3,3? 4,3? */第61頁/共86頁第62頁/共86頁第63頁/共86頁第64頁/共86頁第65頁/共86頁l若失敗,返回EOF (End of File)第66頁/共86頁int c, i;putchar(a);/* 輸出

11、a */putchar(n);/* 輸出換行符 */putchar(101);/* 輸出e */putchar(101);/* 輸出A */c = 1000;i = putchar(c);/* 輸出,i=232 */第67頁/共86頁l第68頁/共86頁int c;c = getchar();/* 輸入a后回車 */putchar(c);/* 輸出a */c = getchar();/* 是否需要輸入? */printf(c=%dn, c);/* 輸出c=? 10 */c = getchar();/* 輸入abcd后回車 */putchar(c);/* 輸出a */putchar(getcha

12、r(); /* 輸出b */第69頁/共86頁l若成功,返回輸出的字節(jié)數(shù),包括換行符l若失敗,返回EOF (End of File)第70頁/共86頁第71頁/共86頁printf(a=%d b=%d, a, b);格式說明普通字符輸出列表輸出結(jié)果a=3 b=4第72頁/共86頁格式字符說 明d, i有符號十進制整數(shù),正數(shù)不輸出符號o無符號八進制整數(shù),不輸出前導0 x, X無符號十六進制整數(shù),不輸出前導0 x或0Xu無符號十進制整數(shù)c轉(zhuǎn)換為無符號字符型,以此為ASCII碼輸出一個字符s輸出字符串,直到遇到0或達到指定寬度f小數(shù)形式單、雙精度數(shù),缺省精度為6位小數(shù)e, E以規(guī)范化指數(shù)形式輸出浮點

13、數(shù),缺省精度為6位小數(shù)g, G以f(F)和e(E)兩種格式中較短的一種輸出%輸出一個%第73頁/共86頁格式字符說 明h有符號或無符號短整型l有符號或無符號長整型L長雙精度型m一個正整數(shù),輸出數(shù)據(jù)的最小寬度n一個正整數(shù),輸出的小數(shù)位數(shù)或字符串截取個數(shù) 分隔m和n-輸出的數(shù)字或字符向左靠齊+輸出的數(shù)字一直帶符號,即正號也輸出0輸出的數(shù)字不滿規(guī)定寬度時,用前導0填充 有符號數(shù)字如果沒有輸出符號,則前面加一個空格#八進制和十六進制數(shù)加前綴,浮點數(shù)格式也有所改變第74頁/共86頁int i=1234; float f=-56.78;printf(i=%+6d, i);/* i= +1234 */pri

14、ntf(%c, i);/* */printf(%#08x, i); /* 0 x0004d2 */printf(%10.5E, f);/* -5.67800E+01 */printf(%7.4f%, f);/* -56.7800% */printf(%+6.3G, f);/* -56.8 */printf(%-6.3s, Hello); /* Hel */第75頁/共86頁l返回輸入并賦值的數(shù)據(jù)項的個數(shù)第76頁/共86頁符,可以用%1sl如規(guī)定了最大寬度,且輸入數(shù)據(jù)超出寬度,則按寬度截取數(shù)據(jù)第77頁/共86頁格式字符說 明d有符號十進制整數(shù)i有符號整數(shù),可以是八進制(帶前導0)或十六進制(帶前

15、導0 x或或0X)o有符號八進制整數(shù),可以帶或不帶前導0 x, X有符號十六進制整數(shù),可以帶或不帶前導0 x或0Xu無符號十進制整數(shù)c輸入一個字符,包括空白字符s輸入無空白字符的字符串,不需要用括起來f,e,E,g,G 浮點數(shù),可以用小數(shù)形式或指數(shù)形式%輸入一個%第78頁/共86頁格式字符說 明h有符號或無符號短整型l有符號或無符號長整型或雙精度型L長雙精度型m一個正整數(shù),輸入數(shù)據(jù)的最大寬度*需要輸入數(shù)據(jù),但是在賦值時被跳過第79頁/共86頁int i, j;char c;scanf(%d%d, &i, &j); /* 2 3 or 23 or 23 */scanf(i=%d, j=%d, &i, &j); /* i=2, j=3 or i=2,j=3 */scanf(%d%c%d, &i, &c, &j); /* 2 a 3 = i=2, c= , j出錯 */ /* 2a 3 = i=2, c=a, j=3 */第80頁/共86頁334rV第81頁/共86頁#include #defin

溫馨提示

  • 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

提交評論