• /  87
  • 下載費用: 9.90積分  

C程序設計教學課件作者第三版+譚浩強第3章_數據類型.ppt

'C程序設計教學課件作者第三版+譚浩強第3章_數據類型.ppt'
C語言程序設計_湖北師范學院計算機科學系 *1Hubei Normal University第三章*2Hubei Normal University 本章要點數據的描述規則數據的操作規則*3Hubei Normal University 主要內容3.1 C的數據類型3.2 常量與變量3.3 整型數據3.4 浮點型數據3.5 字符型數據 *4Hubei Normal University 主要內容3.6變量賦初值 3.7 各類數值型數據間的混合運算 3.8 算術運算符和算術表達式 3.9 賦值運算符和賦值表達式 3.10 逗號運算符和逗號表達式 *5Hubei Normal University預備知識計算機中數的表示及進制轉換數碼、基與權數碼:表示數的符號基:數碼的個數權:每一位所具有的值數制6Hubei Normal University各種進制之間的轉換二進制、八進制、十六進制轉換成十進制方法:按權相加7Hubei Normal University各種進制之間的轉換(整數)二進制、八進制、十六進制轉換成十進制方法:按權相加十進制轉換成二進制、八進制、十六進制原理:方法:連續除以基,從低到高記錄余數,直至商為0例 把十進制數59轉換成二進制數5922921427232120(59)10=(111011)21101111 1 1 0 1 1余余余余余余例 把十進制數159轉換成八進制數1598198280(159)10=(237)82 3 7 余 7余 3余 2例 把十進制數459轉換成十六進制數4591628161160(459)10=(1CB)161 C B 余11余12余 18Hubei Normal University二進制與八進制之間的轉換二進制轉換成八進制:從右向左,每3位一組(不足3位左補0),轉換成八進制八進制轉換成二進制:用3位二進制數代替每一位八進制數例 (1101001)2=(001,101,001)2=(151)8例 (246)8=(010,100,110)2=(10100110)2000 ~ 0001 ~ 1010 ~ 2011 ~ 3100 ~ 4101 ~ 5110 ~ 6111 ~ 79Hubei Normal University二進制與十六進制之間的轉換二進制轉換成十六進制:從右向左,每4位一組(不足4位左補0),轉換成十六進制十六進制轉換成二進制:用4位二進制數代替每一位十六進制數例 (11010101111101)2 =(0011,0101,0111,1101)2=(357D)16例 (4B9E)16 =(0100,1011,1001,1110)2 =(100101110011110)20000 ~ 00001 ~ 10010 ~ 20011 ~ 30100 ~ 40101 ~ 50110 ~ 60111 ~ 71000 ~ 81001 ~ 91010 ~ A1011 ~ B1100 ~ C1101 ~ D1110 ~ E1111 ~ F10Hubei Normal University§ 3.1 C的數據類型數據類型構造類型指針類型空類型(無值類型) void枚舉類型 enum數組類型結構類型 struct聯合類型 union基本類型整型 int字符型 char實型(浮點型)單精度實型 float雙精度實型 double數據類型決定:1. 數據占內存字節數2. 數據取值范圍3. 其上可進行的操作11Hubei Normal University基本數據類型類型符號關鍵字數的表示范圍所占位數整型字符型實型有無(signed)int16-32768~32767(signed)short16-32768~32767(signed)long32-2147483648~214748364716unsigned int0~65535320~4294967295unsigned longunsigned short160~65535有float323.4e-38~3.4e38有double641.7e-308~1.7e308有char8-128~127無unsigned char80~255說明:數據類型所占字節數隨機器硬件不同而不同,上表以IBM PC機為例:12Hubei Normal University §3.2 常量與變量3.2.1 常量和符號常量在程序運行過程中,其值不能被改變的量稱為常量常量區分為不同的類型:整型 100,125,-100,0實型 3.14 , 0.125,-3.789字符型 ‘a’, ‘b’,‘2’字符串 ‘a’, ‘ab’,‘1232’13Hubei Normal University例3.1 符號常量的使用 #define PRICE 30 #include void main ( ) { int num, total; num=10; total=num * PRICE; printf(″total=%d\n″,total); }說明: 程序中用#define命令行定義PRICE代表常量30,此后凡在本文件中出現的PRICE都代表30,可以和常量一樣進行運算說明:用一個標識符代表一個常量的,稱為符號常量,即以標識符形式出現的常量。符號常量的值在其作用域(在本例中為主函數)內不能改變,也不能再被賦值。 說明:如再用賦值語句給PRICE賦值是錯誤的。PRICE=40;/* 錯誤,不能給符號常量賦值*/運行結果: total=30014Hubei Normal University3.2.2 變量變量代表內存中具有特定屬性的一個存儲單元,它用來存放數據,這就是變量的值,在程序運行期間,這些值是可以改變的。變量名實際上是一個以一個名字對應代表一個地址,在對程序編譯連接時由編譯系統給每一個變量名分配對應的內存地址。從變量中取值,實際上是通過變量名找到相應的內存地址,從該存儲單元中讀取數據。15Hubei Normal University 變量命名的規定: C語言規定標識符只能由字母、數字和下劃線三種字符組成,且第一個字符必須為字母或下劃線。 例:sum,_total, month, Student_name lotus_1_2_3,BASIC, li_ling M.D.John, ¥123,3D64,a>b ?? 16Hubei Normal University編譯系統將大寫字母和小寫字母認為是兩個不同的字符。 建議變量名的長度最好不要超過8個字符。在選擇變量名和其它標識符時,應注意做到“見名知意”,即選有含意的英文單詞 (或其縮寫)作標識符。要求對所有用到的變量作強制定義,也就是“先定義,后使用” 。注意17Hube。省略部分。hort、long型數據賦給一個char型變量時,只將其低8位原封不動地送到char型變量(即截斷)。例如:int i=289;char c=′a′;c=i;c的值為33, 如果用“%c”輸出c,將得到字符“!” (其ASCII碼為33)。 72Hubei Normal University 將帶符號的整型數據(int型)賦給long型變量時,要進行符號擴展,將整型數的16位送到long型低16位中:如果int型數據為正值(符號位為0),則long型變量的高16位補0;如果int型變量為負值(符號位為1),則long型變量的高16位補1,以保持數值不改變。 反之,若將一個long型數據賦給一個int型變量,只將long型數據中低16位原封不動地送到整型變量(即截斷)。 73Hubei Normal University⑦將unsigned int型數據賦給long int型變量時,不存在符號擴展問題,只需將高位補0即可。將一個unsigned類型數據賦給一個占字節數相同的非unsigned型整型變量(例如:unsigned int ->int,unsigned long->long,unsigned short->short),將unsigned型變量的內容原樣送到非unsigned型變量中,但如果數據范圍超過相應整型的范圍,則會出現數據錯誤。74Hubei Normal University例3.9 有符號數據傳送給無符號變量。 #include void main() {unsigned a; int b=-1; a=b; printf(″%u\n″,a); } 說明:“%u”是輸出無符號數時所用的格式符。如果b為正值,且在0~32767之間,則賦值后數值不變。運行結果: 65535 75Hubei Normal University (3) 復合的賦值運算符 *=、/=、 %=、 +=、 -=, <>=, &=、 Λ=、 |= 注意:復合運算符是一個運算符,但功能上,是兩個運算符功能的組合。 例如: (1) a+=b 相當于 a=a+b a*=b 相當于 a=a*b a*=b+c 相當于 a=a*(b+c) 而不是a=a*b+c (2) 設a=12,計算表達式a+=a-=a*12和a+=a-=a*=12 的值76Hubei Normal University(4) 賦值表達式 由賦值運算符將一個變量和一個表達式連接起來的式子稱為“賦值表達式”。一般形式為: 例如: “a=5”是一個賦值表達式 77Hubei Normal University對賦值表達式求解的過程是: ①求賦值運算符右側的“表達式”的值; ②賦給賦值運算符左側的變量。例如: 賦值表達式“a=3*5”的值為15,執行表達式后變量a的值也是15。 注意: 一個表達式應該有一個值 78Hubei Normal University左值 (value) : 賦值運算符左側的標識符變量可以作為左值;而表達式就不能作為左值(如a+b);常變量也不能作為左值。 右值 (value) :出現在賦值運算符右側的表達式 左值也可以出現在賦值運算符右側,因而左值 都可以作為右值。79Hubei Normal University 賦值表達式中的“表達式”,又可以是一個賦值表達式.例如: a=(b=5) 分析:括弧內的“b=5”是一個賦值表達式,它的值等于5。執行表達式“a=(b=5)”相當于執行“b=5”和“a=b”兩個賦值表達式。 賦值運算符按照“自右而左”的結合順序,因此,“(b=5)”外面的括弧可以不要,即“a=(b=5)”和“a=b=5”等價.80Hubei Normal University請分析下面的賦值表達式∶(a=3*5)=4*3分析:先執行括弧內的運算,將15賦給a,然后執行4*3的運算,得12,再把12賦給a。最后a的值為12,整個表達式的值為12??梢钥吹健?a=3*5)出現在賦值運算符的左側,因此賦值表達式(a=3*5)是左值 注意:在對賦值表達式(a=3*5)求解后,變量a得到值15執行(a=3*5)=4*3時,實際上是將4*3的積12賦給變量a,而不是賦給3*5。不能寫成:a=3*5=4*381Hubei Normal University賦值表達式也可以包含復合的賦值運算符。 如:a+=a-=a*a分析:此賦值表達式的求解步驟如下∶① 先進行“a-=a*a”的運算, 它相當于a=a-a*a,a的值為12-144=-132。②再進行“a+=-132”的運算,相當于a=a+(-132),a的值為-132-132=-264。82Hubei Normal University§3.10 逗號運算符和逗號表達式逗號運算符:將兩個表達式連接起來,又稱為“順序求值運算符” 如:3+5,6+8 一般形式: 表達式1,表達式2求解過程: 先求解表達式1,再求解表達式2。整個逗號表達式的值是表達式2的值。 逗號表達式 的值為1483Hubei Normal University例:逗號表達式a=3*5,a*4 分析:賦值運算符的優先級別高于逗號運算符, 因此應先求解a=3*5.a的值為15,然后求解a*4,得60。整個逗號表達式的值為60。 一個逗號表達式又可以與另一個表達式組成一個新的逗號表達式 如:(a=3*5,a*4) a+5先計算出a的值等于15,再進行a*4的運算得60(但a值未變,仍為15),再進行a+5得20,即整個表達式的值為20。84Hubei Normal University逗號表達式的一般形式可以擴展為 表達式1,表達式2,表達式3,……,表達式n 它的值為表達式n的值。逗號運算符是所有運算符中級別最低的例: ① x=(a=3,6*3) ② x=a=3,6*3賦值表達式,將一個逗號表達式的值賦給x,x的值等于18 逗號表達式,包括一個賦值表達式和一個算術表達式,x的值為3,整個逗號表達式的值為18。 85Hubei Normal University注意: 并不是任何地方出現的逗號都是作為逗號運算符。例如函數參數也是用逗號來間隔的。 如: printf(“%d,%d,%d”,a,b,c);“a,b,c”并不是一個逗號表達式,它是printf函數的3個參數printf(“%d,%d,%d”,(a,b,c),b,c) “(a,b,c)”是一個逗號表達式,它的值等于c的值。 86Hubei Normal University 下課啦請同學們回去復習今天的內容做好預習87Hubei Normal University
關 鍵 詞:
教學 第三 數據 作者 程序設計 類型
 天天文庫所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:C程序設計教學課件作者第三版+譚浩強第3章_數據類型.ppt
鏈接地址: http://www.476824.live/p-51617207.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服點擊這里,給天天文庫發消息,QQ:1290478887 - 聯系我們

本站為“文檔C2C交易模式”,即用戶上傳的文檔直接賣給(下載)用戶,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有【成交的100%(原創)】。本站是網絡服務平臺方,若您的權利被侵害,侵權客服QQ:1290478887 歡迎舉報。

[email protected] 2017-2027 http://www.476824.live 網站版權所有

粵ICP備19057495號 

收起
展開
球探网即时蓝球比分 浙江体采11选5开奖结果 中正配资 天津快乐10分开奖官网 赛车游戏破解版 指南针炒股软件下载 黑龙江快乐十分玩法和奖金分配 时时彩哪个好app 福彩黑龙江36选7走势图 国内p2p理财平台跑路 贵州11选5任二追号