數據類型與運算規則課件_第1頁
數據類型與運算規則課件_第2頁
數據類型與運算規則課件_第3頁
數據類型與運算規則課件_第4頁
數據類型與運算規則課件_第5頁
已閱讀5頁,還剩59頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

北京理工大學共69頁第1

頁第三章

要點數據的描述規則數據的操作規則北京理工大學共69頁第2

頁數據是程序處理的對象就要將常量3.6、3、5,變量a、x以及運算符號等表達給計算機;

◆那么C語言如何表達這些數據?

◆C語言能夠描述哪些數據?

◆對它可以描述的那些數據能做哪些運算?

◆運算的規則是什么?

這就是本章要解決的問題。如一程序要求解右側表達式:的值北京理工大學共69頁第3

頁第三章目錄

第1節

數據與數據類型第2節

基本數據類型及其表示第3節

C的運算符與表達式概述第4節

算術運算第5節

賦值運算第6節

逗號運算第7節

混合運算中的數據類型轉換●關于數據有效位的說明北京理工大學共69頁第4

§3-1數據與數據類型數據是程序處理的對象數據類型:指的是數據的性質;

具有相同性質的數據同屬于一種數據類型。例:3、5、-9、+1000同屬于整型數3.5、-5.2、0.001同屬于實型數不同類型的數據在計算機上所需的存儲空間的大小也不同,對它們施加的操作也不同。北京理工大學共69頁第5

頁C語言的數據類型數據類型構造類型指針類型空類型(無值類型)void枚舉類型enum數組類型結構類型struct聯合類型

union基本類型整型字符型實型(浮點型)單精度實型雙精度實型返回第3章目錄北京理工大學共69頁第6

頁*§3-2基本數據類型及其表示本節介紹:

各種基本數據類型的名稱、存放的長度、表示數的范圍、

各種基本數據類型的數據的:

常量和變量的概念、常量的表示方法、

變量的說明格式、初始化、使用中的注意事項等。

重點和難點:

整型數據表示數的范圍實型數據的有效位數字符和字符串的區別轉義字符的概念北京理工大學共69頁第7

基本數據類型p43基本數據類型整型實型(浮點型)單精度實型(float)4雙精度實型(

double)8字符型(char)1基本整型(

int

)2字節短整型(short[int])2長整型(long[int])4無符號基本整型(unsigned[int])2無符號長整型(unsigned

long

[int])4無符號短整型(unsigned

short[int])2北京理工大學共69頁第8

頁一、常量與變量的概念無論什么類型的數據都存在常量和變量兩種形式常量:在程序運行中,其值保持不變的數據稱為常量在書寫程序時我們直接寫出的數據,如:

3、-3.3.6等

無論是常量還是變量都需要一塊存儲區域存放變量:在程序運行過程中,其值可以改變的數據稱為變量在程序中通過變量名引用變量,變量名和內存中的存儲單元相對應。

規定:變量必須先定義,后使用。北京理工大學共69頁第9

頁二、變量的定義格式:類型說明符變量名表;例:

inta;

intb;

intc;

floatd;

charch;等價于inta,b,c;以上定義了三個整型變量:a,b,c

一個實型變量:d

和一個字符型變量:ch北京理工大學共69頁第10

頁變量定義、使用的概念例:在程序運行過程中,其值可以改變的數據稱為變量1000HXXXmain(){inta;a=8;a=8*3;}

a=8;inta;

a=8*3;8824變量a內存數據區內存程序區北京理工大學共69頁第11

頁三、整型數據內容包括:1、整型數據的長度2、整型數據的取值范圍3、整型常量的表示方式(程序書寫時)4、整型數在內存的存儲形式北京理工大學共69頁第12

頁1、整型數據的長度(占內存的字節數)和取值范圍p43

類型類型說明符長度數的范圍基本型int

2字節-32768~32767短整型short2字節-215~215-1長整型long4字節-231~231-1無符號整型unsigned2字節0~65535215

無符號短整型unsignedshort2字節0~65535215無符號長整型unsignedlong4字節0~(232-1)

(0—4294967295)北京理工大學共69頁第13

頁整型常量的三種表示方法p4210進制:使用數字字符0~98進制:使用數字字符0~7,以0開頭16進制:使用數字字符0~9,A~F/a~f,以0x或0X開頭例整型常量的類型:根據值大小默認類型在常量后面加l或L,表示longint型

例如:123L,0L,432l

都是longint型常量3、程序書寫時整型常量的表示方式對58的不同進制表示:十八十六

580720x3A北京理工大學共69頁第14

頁(復習)4.數制轉換10進制整數轉R進制整數以數R做除數,以10進制整數為被除數,再將所得商再做為被除數不斷的除以R,直到商為0止;其間每除以1次R都將余數寫于算式右側。最后按從下至之上的順序將余數寫下來,即是轉換后的數。24212·····026·····0·····02·····032·····1120·····1高低(24)10=(11000)2(58)10=(72)85880·····287·····7高低北京理工大學共69頁第15

頁(58)10=(3A)1658163·····1016

·····30高低北京理工大學共69頁第16

頁每位的數碼乘以該位的位權之和數制轉換R進制轉10進制以2轉10為例:(11011)2=(27)10(11011)2=(1*24+1*23+1*21+1*20)10

=(16+8+2+1)10=(27)108轉10、16轉10方法同上(1A5)16=(1*162+10*16+5)10

=(256+160+5)10=(421)10北京理工大學共69頁第17

頁數制轉換2進制整數16進制整數(1101011)2=(0110

1011)2=(6B)16(7F9)16

=(0111

1111

1001)2

2轉16的轉換方法:

第一步:從被轉換數的最后一位整數開始向左每四位

劃分為一組,高位若不足四位用0補齊。

第二步:將每組2進制數碼用一個對應的16進制數碼寫出。轉換后此高位0可以不寫出來16轉2的轉換方法:

將每個16進制數碼用其對應的4位的2進制數碼寫出。

北京理工大學共69頁第18

頁5、整型數的數據范圍及在內存的存儲形式以基本整型變量為例,有定義:inta;存儲長度16位二進制(2B)

000000000000000100000000000000110

1111111111111111000000000000000=1=3最大的負數?=-215=-32768

定點二進制補碼表示(復習)占2個字節存儲數的表示范圍:-32768~32767a=215-1=32767最大的正數?北京理工大學共69頁第19

頁整型數以二進制補碼形式存儲0000000000000001符號位:0為正,1為負正數的原、反、補碼都一樣1000000000000001-1的原碼1111111111111110111111111111111110000000000000011000000000000000北京理工大學共69頁第20

實型數據包括實型常量和實型變量兩種表示形式小數指數0.1231.23e-01實型常量只能用十進制形式表示,不能用八進制和十六進制常量占用內存空間嗎?1e3、1.8e-3、-123e-6、-.1e-3e5、1e-3.2、e、.e-03

四、實型數據

——1.實型常量的表示形式北京理工大學共69頁第21

頁類型說明符長度數的范圍有效數字單精度型float

4字節

-1038~1038

7位雙精度型double型

8字節

-10308

~10308

15位實型變量的有關規則如下:

四、實型數據

——2.實型數據的長度、表數范圍和有效位數北京理工大學共69頁第22

頁實數的有效位數例:floatf1;

f1=

123.3664

6754;只保證存入f1變量中的數據的前7位正確(有效數字為7)

北京理工大學共69頁第23

頁實數在內存的存儲形式p46實數的范圍和實數在內存的存儲形式有關,以單精度實數為例:例:0.123456*10-2數符小數指數符號指數+0.123456--2小數部分(3字節)指數部分(1字節)北京理工大學共69頁第24

頁實型數的分辨率:最小正數:10-38小于該數時處理為0

下溢最大正數:1038大于該數時提示出錯

上溢實型數在計算機內部都按指數形式存放實型數常數不區分單精度和雙精度

數的存儲結構和精度與計算機硬件特性有關超出表示范圍的數機器如何處理?北京理工大學共69頁第25

頁五、字符型數據——在內存只占1個字節字符型數據包括字符型常量和字符型變量1、字符型常量2、字符數據在內存中存儲形式3、字符串常量4、轉義字符(特殊形式的字符常量)北京理工大學共69頁第26

頁1、字符型常量用單引號括起來的一個字符是字符型常量例“a”、‘abc’

‘a’、’A’、‘1’

北京理工大學共69頁第27

頁2、字符數據在內存中存儲形式字符數據‘a’在內存中的存儲形式是:01100001字符型數據在內存占1字節,存儲的是該字符的ASCII碼例0000000001100001字符‘a’、’A’、‘1’

的ASCII值是:97、65、49數值97在內存的存儲北京理工大學共69頁第28

頁字符串常量是用雙引號括起來的一個或多個字符n個字符組成的字符串常量,占空間為n+1個字節china\03、字符串常量“a”

串長1

“ThisisCstring”

串長16

(空格)串長1

“”

(不含空格)串長0例C

中沒有

專用的字

符串變量“China”北京理工大學共69頁第29

有些以“\”開頭的特殊字符稱為轉義字符4、轉義字符(特殊形式的字符常量)\n

換行\t

橫向跳格\r

回車\\

反斜杠\dddddd表示1到3位八進制數字\xhhhh表示1到2位十六進制數字例:‘\60’即‘0’,是字符0的八進制表示,其十進制

ASCII碼是48

‘\105’即‘E’,是字符E的八進制表示,其十進制

ASCII碼是69

‘\x61’即‘a’,是字符a的十六進制表示,其十進制

ASCII碼是97北京理工大學共69頁第30

頁main(){chara,b,c;intd;a='\5';b='\60';c=’A';d=1089;printf("a=%cb=%cc=%dd=%c\n",a,b,c,d);printf(“a=%db=%d\n",a,b);getch();}按整數輸出C00000100

01000001d6500110000b=‘\60‘在計算機中的存儲北京理工大學共69頁第31

頁思考:*字符串

“w\11”的存儲占幾個字節?

w\11*字符串“w\11\0good”占幾個字節?3字節北京理工大學共69頁第32

頁定義形式char占存儲空間一個變量1字節2、字符型變量一個字符變量只能包含一個字符例main(){charc;c=‘c’;printf(“%c”,c);}運行結果:c題目中有幾個c,哪些是等價的?北京理工大學共69頁第33

頁六、符號常量符號常量的定義#definePRICE30價格main()

{intnum,total;total=num*PRICE;

printf(“%d\n”,total);}北京理工大學共69頁第34

頁在定義變量時為其指定值初始化方法:inta=5;inta,b,c=5;inta=5,b=5,c=5;inta=5,b=a;c=b;

1.定義變量的同時為

其初始化2.初始化不是在編譯時

進行,而是在程序運行

時完成的七、變量的初始化inta=b=c=5;

返回第3章目錄北京理工大學共69頁第35

頁運算分量對數據進行運算的符號被加工的數據+表達式運算符§3-3

C的運算符與表達式概述

一、認識C中的運算符和表達式X=5+b*c進入3-4節返回第3章目錄北京理工大學共69頁第36

頁表達式的值:表達式的運算結果C中的運算符算術運算符賦值運算符關系運算符邏輯運算符位運算逗號運算符條件運算符…...表達式:

由運算符和運算分量

構成的運算式子C的運算符與表達式概述(續)運算分量:

常量、

變量、

函數調用、

表達式北京理工大學共69頁第37

頁C的運算符與表達式概述(續)學習運算符應掌握的要點運算符的種類與功能運算符與運算分量的關系個數類型A+B(a>b)

?

a:b目不同類型的變量,所占存儲空間、數的表示范圍、有效位和允許的操作不同單目運算雙目運算三目運算北京理工大學共69頁第38

頁C的運算符與表達式概述(續)優先級:

運算符的執行順序

結合性:相同優先級的多個運算符的運算順序運算結果的類型X=5+8‘a’>100a+b-c5>7>2a=b=5結果?左結合右結合整型邏輯型130北京理工大學共69頁第39

頁§3-4算術運算一、算術運算符和算術表達式+、-

正/負運算*、/、%

乘/除/求余+、-

加/減運算單目右結合雙目左結合算術運算符運算對象個數優先級結合性低高返回第3章目錄北京理工大學共69頁第40

頁★除運算:若除數和被除數都是整數,商取整數。10/3、11/3結果均為:31/2結果為:010.0/3 結果為:3.3333…1./2結果為:5.0★求余運算的對象必須是整型。10%3結果為:19%3結果為:0

10%–3結果為:1

-10%3結果為:-1-10%-3結果為:-1北京理工大學共69頁第41

頁已知:

inti=3;longe=4;

floatf=1.5;doubled=2.0;表達式:10+97+i*f-d/e

的運算結果是?

107+4.5

-0.5

111.5

-0.5

111.0運算:算術表達式運算例北京理工大學共69頁第42

二、變量自增、自減運算(變量自身加/減1)

i=i+1

i++先使用變量i的值,再加1++i

先加1,再使用變量i的值

i=i-1

i--先使用變量i

的值,再減1--i

先減1,再使用變量i

的值

變量自增/自減運算符:++

/--

只能用于變量,不能用于表達式和常量例:(i+k)++;--3;

北京理工大學共69頁第43

頁自加/自減運算規則例1輸出:main(){inti;i=3;printf(“%d”,i++);printf(“%d”,i);

i=3;printf(“%d”,++i);printf(“%d”,i);}輸出:輸出:輸出:3444北京理工大學共69頁第44

頁自加/自減運算規則例2main(){inta,b,s;a=5;b=5;

s=a+++

b;

s=++a+

b;s=--a+

b;s=a--+

b;s=a+

b;

}運行分析abs5

+

5

=>S6

5107

+

5

=>S6

+

5

=>S6

+

5

=>S5

+

5

=>S7

51265115

5115510計算中語句執行結束后北京理工大學共69頁第45

頁自加/自減運算符的優先級和結合性優先級:高于雙目算術運算符結合性:從右向左a+++b等價于a+++b(a++)+b、a+++ba+(++b)++a+++b等價于不等價于++a+(++b)語法錯誤等價于++a+--b++a+(--b)北京理工大學共69頁第46

頁i=2;k=i+++i+++i++;i=2;k=++i+(++i)+(++i);i=?k=?515i所在的語句執行完再自增i=?k=?56例main(){inti,k;

i=2;

k=i+++i+++i;printf(“k=%d,i=%d\n\n",k,i);

i=2;k=i+++i+++i;printf(“k=%d,i=%d\n\n",k,i);

i=2;

k=i+++i+++i;printf(“k=%d,i=%d\n",k,i);i=2;

k=i+(++i)+(++i);printf(“k=%d,i=%d\n",k,i);}執行結果北京理工大學共69頁第48

頁LT3_NADD1.c思考計算下列每行表達式后,i和k的值是?n=2;i=2;k=i+++i+++n++;i=2;k=++i+(++i)+--n;i=2;k=++i;i=2;k=i++;K=?,i=?,n=?K=?,i=?,n=?K=?,i=?K=?,i=?執行程序看結果北京理工大學共69頁第49

頁§3-5賦值運算二、簡單賦值運算一、賦值表達式和賦值運算符四、賦值運算中的類型轉換五、復合賦值運算三、賦值運算符的優先級和結合性返回第3章目錄北京理工大學共69頁第50

頁一、賦值表達式和賦值運算符將表達式的值賦給變量1.賦值表達式的格式:<變量名><賦值運算符><表達式>2.功能:3.賦值

運算符:簡單賦值運算符:復合賦值運算符包括:★a)所有的算術運算符與“

=”結合

例:*=、/=

、+=、-=、%=北京理工大學共69頁第51

二、簡單賦值運算例:x=5;y=x+10;由簡單賦值運算符構成的賦值表達式北京理工大學共69頁第52

頁三、賦值運算符的優先級和結合性賦值運算的優先級:(14)賦值運算的結合性:比算術運算低X=y=5;右結合:從右向左是所有運算符中除了逗號運算符外,

它的運算級別最低北京理工大學共69頁第53

頁四、賦值運算中的類型轉換可以將一個實型數據賦值給一個整型變量,也可將一個整型數據賦值給一個實型變量intx,x=5.3;x的值為5floaty,y=5;y的值為5.0例可以將一個字符型數據賦值給一個整型變量,也可以將一個整型數據賦值給一個字符型變量例接受賦值的變量類型決定了運算結果的存儲類型intx;x=‘A’;等效于x=65;charch=65;等效于ch=‘A’;北京理工大學共69頁第54

頁charch;intx;ch=‘A’;

ch0100000100000000

x01000001X=ch;/*等效于x=65;*//*等效于ch=65;*/65北京理工大學共69頁第55

頁整型與字符型可互相賦值,通用計算

main(){intI;charC;I=’a’;C=97;

Printf(“I=%d,

%c\nC=%d,

%c\n”,I,I,C,C);}輸出結果:I=97,aC=97,a北京理工大學共69頁第56

五、復合(組合)的賦值運算

(*=、/=

、+=、-=、%=)x=x+3等同于x+=3例:x=x+nx=x-nx=x*nx=x/nx=x%nx+=nx-=nx*=nx/=nx%=nX與n均為整數A*=B+A-->A=A*(B+A)保證將表達式的值賦給一變量北京理工大學共69頁第57

頁賦值運算舉例有:inta,b,c,d,e;a=2,b=5,c=6,d=10;a+=b;b-=c;c*=d;d/=a;a%=c;

7,-1,60,1商0余7例運算結束后a,b,c,d變量的值分別是:北京理工大學共69頁第58

頁§3-6逗號運算一、逗號運算符:,表達式1,表達式2,表達式3,……表達式n逗號表達式的功能:從左至右順序求解每一個

表達式,表達式n的值是整

個逗號表達式的值.優先級(15),逗號運算符的優先級最低結合性:左結合返回第3章目錄二、逗號表達式的格式:北京理

溫馨提示

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

評論

0/150

提交評論