專升本C語言C02數據類型ppt課件_第1頁
專升本C語言C02數據類型ppt課件_第2頁
專升本C語言C02數據類型ppt課件_第3頁
專升本C語言C02數據類型ppt課件_第4頁
專升本C語言C02數據類型ppt課件_第5頁
已閱讀5頁,還剩21頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、C程序設計二、數據類型 二、數據類型 2.1 數據類型 基本類型 整型 短整型short 整型 int 長整型 long 實型 單精度型 float 雙精度型 double 字符型 char 枚舉類型 enum 構造類型 數組 結構體 struct 共用體 union 指針類型 空類型 void 二、數據類型 2.1 數據類型2.2各種類型數據的存儲空間 下面這個C程序可以測試各種數據類型的存儲空間main()printf(short:%d n,sizeof(short);printf(int:%d n,sizeof(int);printf(long:%d n,sizeof(long);pri

2、ntf(float:%d n,sizeof(float);printf(double:%d n,sizeof(double);printf(char:%dn,sizeof(char);short:1 int:2 long:4 float:4 double:8char:1二、數據類型 2.1 數據類型2.2各種類型數據的存儲空間 short:2 int:2 long:4 float:4 double:8char:1數的范圍:按10位二進制1000近似估算。int的范圍:065535 -3276832767說明下面的語句是否正確:int a=80000;int b=-32700;二、數據類型 2.

3、1 數據類型2.2各種類型數據的存儲空間 short:2 int:2 long:4 float:4 double:8char:1數的范圍:按10位二進制1000近似估算。int的范圍:065535 -3276832767長整型的范圍比整型的范圍大16倍嗎?double與float相比區別是什么?大2的16次方精度高很多二、數據類型 2.1 數據類型2.2各種類型數據的存儲空間 2.3常量1各種類型的常量表示 整型常量:十進制,如2545,-98八進制,以數字0開頭,如025 十六進制,以0 x或0X開頭,如0 xf9A 以下哪個數最大?89 073 0 x5a0 x5a二、數據類型 2.1 數

4、據類型2.2各種類型數據的存儲空間 2.3常量1各種類型的常量表示 整型常量:十進制,如2545,-98八進制,以數字0開頭,如025 十六進制,以0 x或0X開頭,如0 xf9A 長整型常量:后加l或L,如-12l,-0 xaeL,065645545L注意12和12L的區別:12:00000000 0000110012L:00000000000000000000000000001100 二、數據類型 2.1 數據類型2.2各種類型數據的存儲空間 2.3常量1各種類型的常量表示 整型常量:十進制,如2545,-98八進制,以數字0開頭,如025 十六進制,以0 x或0X開頭,如0 xf9A 長

5、整型常量:整型常量后加l或L,如-12l,-0 xaeL,065645545L實型常量:不分單雙精度,全部是雙精度,不能用八進制和十六進制表示。如 34.5,.345,345.,1e2,1.5e-6以下常量錯在什么地方?0950a92b3.56L3.4e1.25.e八進制不會有9八進制不會有a十進制不會有b實型常量不帶LE后面必須是整數E后面必須有數二、數據類型 2.1 數據類型2.2各種類型數據的存儲空間 2.3常量1各種類型的常量表示 2有符號整數與無符號整數 有符號數signed int a; 等同于int a;有符號整數最高位最左邊一位表示數的符號,0為正,1為負。有符號整型的范圍是-

6、215215-1一個有符號長整型的范圍是-231231-1 二、數據類型 2.1 數據類型2.2各種類型數據的存儲空間 2.3常量1各種類型的常量表示 2有符號整數與無符號整數 有符號整數signed int a; 無符號整數unsigned int a; 無符號整數則不留符號位,所有的位都表示大小,因此一個無符號整型的范圍是0216-1一個無符號長整型的范圍是0232-1 二、數據類型 2.1 數據類型2.2各種類型數據的存儲空間 2.3常量1各種類型的常量表示 2有符號整數與無符號整數 3字符常量字符常量:字符用單引號,如e,9字符在計算機中以ASCII碼表示,如A存儲為01000001,

7、即65,r存儲為01110010,即114因此字符就相當于整數。 已知字符u的ASCII碼值為117,以下程序輸出什么?main()char x=u;int y;y=x-5;printf(%d,%c,y,y);輸出112,p二、數據類型 2.1 數據類型2.2各種類型數據的存儲空間 2.3常量1各種類型的常量表示 2有符號整數與無符號整數 3字符常量字符常量:字符用單引號,如e,9字符在計算機中以ASCII碼表示,如A存儲為01000001,即65,r存儲為01110010,即114因此字符就相當于整數。 是不是整數65與字符A就沒有區別呢?有:A存儲為01000001,65存儲為000000

8、0001000001二、數據類型 2.1 數據類型2.2各種類型數據的存儲空間 2.3常量1各種類型的常量表示 2有符號整數與無符號整數 3字符常量轉義字符:遇到時不是直接作為字符,而是要跟后面的字符連起來一起作為一個字符。對于大多數字符,如a與a一樣。但有些字符不一樣,如n與n 幾個需要記住的特殊字符:換行:n橫行跳格:t回車:r:二、數據類型 2.1 數據類型2.2各種類型數據的存儲空間 2.3常量1各種類型的常量表示 2有符號整數與無符號整數 3字符常量 任意一個字符還可以表示如下:ddd ddd是一個13位的8進制數xhh hh是一個12位的十六進制數空字符:ASCII碼值為0的字符,

9、記為0 如 U , U, 125 , x55 完全等效。下面哪些是合法的字符常量,哪些是不合法的字符常量?/u px g 35693 xa 二、數據類型 2.1 數據類型2.2各種類型數據的存儲空間 2.3常量1各種類型的常量表示 2有符號整數與無符號整數 3字符常量4字符串常數用雙引號括起來的0至多個字符序列字符串存儲時系統自動在末尾加空字符0字符串的長度:字符串中的字符個數,不包括空字符。 字符串的存儲: 0w: w 0i am: i a m 0 字符串i am的長度為4二、數據類型 2.1 數據類型2.2各種類型數據的存儲空間 2.3常量1各種類型的常量表示 2有符號整數與無符號整數 3

10、字符常量4字符串常數用雙引號括起來的0至多個字符序列字符串存儲時系統自動在末尾加空字符0字符串的長度:字符串中的字符個數,不包括空字符。 求字符串 nyu76r的長度 長度為6 二、數據類型 2.1 數據類型2.2各種類型數據的存儲空間 2.3常量1各種類型的常量表示 2有符號整數與無符號整數 3字符常量4字符串常數用雙引號括起來的0至多個字符序列字符串存儲時系統自動在末尾加空字符0字符串的長度:字符串中的字符個數,不包括空字符。 以下語句輸出什么?printf(%d,sizeof(nk); 輸出3 二、數據類型 2.1 數據類型2.2各種類型數據的存儲空間 2.3常量1各種類型的常量表示 2

11、有符號整數與無符號整數 3字符常量4字符串常數用雙引號括起來的0至多個字符序列字符串存儲時系統自動在末尾加空字符0字符串的長度:字符串中的字符個數,不包括空字符。 例:找出下列常量哪些是錯誤的kp 0 kp p konkp kon二、數據類型 2.1 數據類型2.2各種類型數據的存儲空間 2.3常量1各種類型的常量表示 2有符號整數與無符號整數 3字符常量4字符串常數5符號常量以下是用一個符號來代表常量的兩種形式:const int abc=-62;#define yu 12.632這里abc,yu都是常量,不是變量以下程序段有什么問題?const int x=7;x+;printf(%d,x

12、);x是常量,不能自加二、數據類型 2.4 數據類型轉換1)數據類型按以下順序級別提升:char,short,int,long,float,double2int轉為long時,高位加0,值保持不變。long轉為int時,截去高位。3實數轉為整數時,舍去小數部分。整數轉為實型數時,小數為0。double轉為float時,四舍五入。例:以下運算數據如何進行轉換?char型+int型double型+ long型long型+float型double型+short型char型+short型intdoublefloatdoubleshort二、數據類型 2.4 數據類型轉換1)數據類型按以下順序級別提升:

13、char,short,long,float,double2int轉為long時,高位加0,值保持不變。long轉為int時,截去高位。3實數轉為整數時,舍去小數部分。整數轉為實型數時,小數為0。double轉為float時,四舍五入。例:進行如下語句后,各變量的值是多少?int a,b;long x,y;float u,v;double s,t;a=0 x12345678L;x=0 x78;u=6.123456789;s=6.123;b=-6.698;v=8;0 x56780 x786.1234576.123-68.0二、數據類型 2.4 數據類型轉換4)運算符兩端數據類型不一時,低級別轉為高

14、級別,然后運算。5實型數運算時全部轉為double型6如果賦值時類型不符,右邊表達式的值算出以后,要轉化為左邊變量的類型,再賦值給左邊的變量。7輸出時如果類型不符,要將表達式的值按輸出格式轉換。(不可靠)例:以下各表達式的值是多少?2.3-3/22.3-3./22-3/22-3./21.30.810.5二、數據類型 2.4 數據類型轉換4)運算符兩端數據類型不一時,低級別轉為高級別,然后運算。5實型數運算時全部轉為double型6如果賦值時類型不符,右邊表達式的值算出以后,要轉化為左邊變量的類型,再賦值給左邊的變量。7輸出時如果類型不符,要將表達式的值按輸出格式轉換。 (不可靠)例:程序輸出什么?main()int a;float b;a=5.6;b=a/2;a=a/b+b/3;b=(a+b)/2;printf(a=%d,b=%f,a,b);52.032.5二、數據類型 2.4 數據類型轉換4)運算符兩端數據類型不一時,低級別轉為高級別,然后運算。5實型數運算時全部轉為double型6如果賦值時類型不符,右邊表達式的值算出以后,要轉化為左邊變量的類型,再賦值給左邊的變量。7

溫馨提示

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

評論

0/150

提交評論