程序設計與計算思維 課件 【ch02】數據類型_第1頁
程序設計與計算思維 課件 【ch02】數據類型_第2頁
程序設計與計算思維 課件 【ch02】數據類型_第3頁
程序設計與計算思維 課件 【ch02】數據類型_第4頁
程序設計與計算思維 課件 【ch02】數據類型_第5頁
已閱讀5頁,還剩25頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

程序設計與計算思維數據類型第二章案例3:求兩數之和01一、案例3:求兩數之和Prog3.1一、案例3:求兩數之和注釋:(1)inta,b,c;定義三個整型變量a、b和c,變量a、b和c是三個用于存儲整型數據的存儲單元。(2)執行a=23;,右邊23是常量,存儲在變量名a代表的存儲單元中;左邊是變量a。該語句的功能是將右邊的值傳送到左邊的存儲單元中,執行后變量a的值是23。執行printf("a=%d\n",a);,輸出:a=23。執行b=14;,執行后變量b的值是14。執行printf("b=%d\n",b);,輸出:b=14。執行c=a+b;,將變量a的值與變量b的值的和傳送到變量c的存儲單元中。執行printf("c=%d:%d+%d=%d\n",c,a,b,c);,輸出:c=37;23+14=37。(3)變量的三要素:變量名、存儲單元(地址)、值。變量處理的過程:變量名映射到存儲單元(左值映射),存儲單元映射到變量值(右值映射)。常量就是值,其本身不是存儲單元;變量代表值,其本身是一個存儲單元。Prog3.1一、案例3:求兩數之和Prog3.2運行結果如圖2.1所示。一、案例2:求兩數之和注釋:(1)&a、&b、&c表示變量a、b、c在內存中的相應地址,程序運行時對變量均是“按址訪問”,編譯系統將由變量名映射出相應存儲單元的地址。(2)執行a=23;時變量a的值將會是23,變量a的地址稱為“左值”,變量a的值23稱為“右值”。(3)常量只有“右值”,沒有地址,如圖2.2所示。Prog3.2案例4:整型數據02二、案例4:整型數據Prog4.1注釋:(1)inta;是用關鍵字int定義整型變量a,變量名a代表一個存儲單元,其地址為&a,變量a能準確描述一個整型數據。(2)sizeof(a)顯示系統分配給變量a存儲單元的長度(字節數),如圖2.3所示。(3)定義整型變量還可用關鍵字short和long。二、案例4:整型數據Prog4.2二、案例4:整型數據注釋:(1)當a=-1時,%d->%u輸出:-1一>4294967295,則變量a的形式值(邏輯值)為-1,實際存儲值為4294967295。(2)當a=1時,%d->%u輸出:1->1,則變量a的形式值(邏輯值)為1,實際存儲值也為1。(3)-1->4294967295:負數以補碼形式存儲,且原碼(形式值的二進制)與補碼(存儲值的二進制)不一致。1->1;正數的存儲形式也可以看成補碼,且原碼(形式值的二進制〉與補碼(存儲值的二進制)一致。Prog4.2二、案例4:整型數據Prog4.3運行結果如圖2.4所示。二、案例4:整型數據注釋:(1)當a=-1時,%d->%u輸出:-1->4294967295,則-1是最大的負數,其補碼對應的十進制數為4294967295,也是負數中最大的。(2)當a=-2147483647時,%d->%u輸出:1:-2147483647->2147483649,則-2147483647的補碼對應的十進制數是2147483649。當a=-2147483647時,%d->%u輸出:2:-2147483648->2147483648,則-2147483648的補碼對應的十進制數是2147483648,-2147483648是最小的負數,其補碼對應的十進制數也是最小的。(3)當a=2147483649時,%d->%u輸出:3.2147483647-->2147483647,當-2147483649<-2147483648(最小的負數)時,-2147483649已經是正數了,而且是最大的正數。這就是數據表示的“周期性”。Prog4.3二、案例4:整型數據Prog4.4運行結果如圖2.5所示。二、案例4:整型數據注釋:(1)當a=2147483647時,%d->%u輸出:1:2147483647->2147483647,則2147483647是最大的正數。(2)當a=-2147483647+1時,%d->%u輸出:2:-2147483648->2147483648,則最大的正數+1就成了最小的負數。(3)正數的原碼-補碼,負數的補碼-4294967296對應的二進制數減原碼(32位),這就是整型數據表示的“域”。Prog4.4案例5:實型數據03三、案例5:實型數據Prog5.1三、案例5:實型數據注釋:(1)floata定義單精度實型變量。(2)a=376.472;a=37.6472e1;a=3.76472e2;a=0.376472e3;這四條語句產生的“右值”相同,即“右值”相同的實數表示方法具有多樣性,如圖2.6所示。(3)實數376.472稱為實數“小數形式”表示,實數37.6472e1、3.76472e2、0.376472e3稱為實數“指數形式”表示。“指數形式”又稱為實數的“存儲形式”,格式為:尾數e階碼。Prog5.1三、案例5:實型數據Prog5.2三、案例5:實型數據注釋:(1)當a=376.472時,輸出:1:a=376.471985,輸出結果與變量a的值不一致,如圖2.7所示。這說明所有實數都是不準確的,例如,系統可以規定限值d<=1e-6為0。(2)float類型變量的精度位數少,測試長度只有7位,當輸出的位數多于7位時,前6位是準確的,如圖2.6所示。Prog5.2三、案例5:實型數據Prog5.3三、案例5:實型數據注釋:(1)doublea定義雙精度實型變量。(2)double類型變量比float類型變量的精度位數多,測試長度達到15位,如圖2.8所示為double類型實數的精度。Prog5.3案例6:字符型數據04四、案例6:字符型數據Prog6.1注釋:(1)charc定義字符型變量。(2)printf("1:c=%c\n",c);與printf(""2:c=%c\n",c);的輸出結果是相同的,如圖2.10所示,則c='A';與c=65;執行的功能相同,'A'表示字符,65(二進制數為01000001)則是字符'A'的ASCII碼值。四、案例6:字符型數據Prog6.2四、案例6:字符型數據Prog6.2注釋:(1)'A'是字符型數據的邏輯形式,'A'的ASCII碼是其存儲形式,如圖2.11所示。(2)1:A->65(ASCII),大寫英文字母A對應的ASCII碼值為65。2:a->97(ASCII),小寫英文字母a對應的ASCII碼值為97。3:a-A=32,大寫英文字母A與小寫英文字母a對應的ASCII碼值相差32。四、案例6:字符型數據Prog6.3四、案例6:字符型數據Prog6.3注釋:如圖2.13所示,大寫英文字母與小寫英文字母的ASCII碼值是有順序的,且小寫英文字母對應的ASCII碼值比大寫英文字母要大32。數字字符對應的ASCII碼值是48(字符'0'的ASCII碼值)~57(字符'9'的ASCII碼值,也是有順序的。空格(space)的ASCII碼值是32(二進制數為00100000)。四、案例6:字符型數據Prog6.4四、案例

溫馨提示

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

評論

0/150

提交評論