C語(yǔ)言程序設(shè)計(jì)No.3第3章數(shù)據(jù)類(lèi)型_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)No.3第3章數(shù)據(jù)類(lèi)型_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)No.3第3章數(shù)據(jù)類(lèi)型_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)No.3第3章數(shù)據(jù)類(lèi)型_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)No.3第3章數(shù)據(jù)類(lèi)型_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、C C 程序設(shè)計(jì)程序設(shè)計(jì)1主主 講講: : 劉懷亮劉懷亮E-mail:E-mail:經(jīng)濟(jì)管理學(xué)院信息管理系經(jīng)濟(jì)管理學(xué)院信息管理系C C語(yǔ)言程序設(shè)計(jì)語(yǔ)言程序設(shè)計(jì)C Programming LanguageC Programming Language 2第三章第三章 數(shù)據(jù)類(lèi)型、運(yùn)算符數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式與表達(dá)式(第(第3 3講)講)主講主講: :劉懷亮劉懷亮E-mail:E-mail:經(jīng)濟(jì)管理學(xué)院信息管理系經(jīng)濟(jì)管理學(xué)院信息管理系C C 程序設(shè)計(jì)程序設(shè)計(jì)3數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式內(nèi)容提要內(nèi)容提要:C C語(yǔ)言的基本元素和數(shù)據(jù)類(lèi)型語(yǔ)言的基本元素和數(shù)據(jù)類(lèi)型常量與變量常量與變量各種數(shù)據(jù)類(lèi)型的常量和變量各

2、種數(shù)據(jù)類(lèi)型的常量和變量變量賦初值變量賦初值各種類(lèi)型的數(shù)據(jù)間的混合運(yùn)算各種類(lèi)型的數(shù)據(jù)間的混合運(yùn)算幾種基本運(yùn)算符及其表達(dá)式幾種基本運(yùn)算符及其表達(dá)式C C 程序設(shè)計(jì)程序設(shè)計(jì)43.1 C語(yǔ)言的基本元素和數(shù)據(jù)類(lèi)型一、符號(hào)集(字符集)一、符號(hào)集(字符集)C語(yǔ)言經(jīng)常使用的基本符號(hào)共有以下五種:語(yǔ)言經(jīng)常使用的基本符號(hào)共有以下五種:(1)大寫(xiě)字母:)大寫(xiě)字母:AZ (2)小寫(xiě)字母:)小寫(xiě)字母:az (3)阿拉伯?dāng)?shù)字:)阿拉伯?dāng)?shù)字:09 (4)下劃線:)下劃線:_(5)標(biāo)點(diǎn)符號(hào)和運(yùn)算符)標(biāo)點(diǎn)符號(hào)和運(yùn)算符C C 程序設(shè)計(jì)程序設(shè)計(jì)53.1 C C語(yǔ)言的基本元素語(yǔ)言的基本元素和數(shù)據(jù)類(lèi)型和數(shù)據(jù)類(lèi)型二、標(biāo)識(shí)符二、標(biāo)識(shí)符 用

3、來(lái)標(biāo)記常量、變量、函數(shù)及文件名的字符序列。用來(lái)標(biāo)記常量、變量、函數(shù)及文件名的字符序列。 標(biāo)識(shí)符的構(gòu)成規(guī)則:標(biāo)識(shí)符的構(gòu)成規(guī)則: 以字母(大小寫(xiě)皆可)或下劃線開(kāi)頭以字母(大小寫(xiě)皆可)或下劃線開(kāi)頭 隨后可跟若干個(gè)(包括隨后可跟若干個(gè)(包括0個(gè)字母、數(shù)字、下劃線)個(gè)字母、數(shù)字、下劃線) 標(biāo)識(shí)符的長(zhǎng)度各個(gè)系統(tǒng)不同,最好不要超過(guò)標(biāo)識(shí)符的長(zhǎng)度各個(gè)系統(tǒng)不同,最好不要超過(guò)8個(gè)字符個(gè)字符 如:如:x y3 _imax ELSE X A_to_B(合法)(合法) 7x int #No bad one reinput(不合法)(不合法)注意注意1 1、區(qū)分大小寫(xiě)。如、區(qū)分大小寫(xiě)。如sumsum、SumSum是兩個(gè)不同

4、的標(biāo)識(shí)符!是兩個(gè)不同的標(biāo)識(shí)符!2 2、最好見(jiàn)名知意!、最好見(jiàn)名知意!如:如:student_name, student_number應(yīng)變?yōu)椋簯?yīng)變?yōu)椋?stu_name、stu_numC C 程序設(shè)計(jì)程序設(shè)計(jì)63.1 C C語(yǔ)言的基本元素語(yǔ)言的基本元素和數(shù)據(jù)類(lèi)型和數(shù)據(jù)類(lèi)型三、關(guān)鍵字三、關(guān)鍵字 也稱(chēng)保留字,在也稱(chēng)保留字,在C語(yǔ)言中有特定的含義,專(zhuān)門(mén)語(yǔ)言中有特定的含義,專(zhuān)門(mén)用作語(yǔ)言特定的成分的一類(lèi)標(biāo)識(shí)符。用作語(yǔ)言特定的成分的一類(lèi)標(biāo)識(shí)符。u保留保留 ANSI 32個(gè)個(gè) (詳見(jiàn)(詳見(jiàn)P378 附錄附錄C)u12個(gè)編譯預(yù)處理命令個(gè)編譯預(yù)處理命令 define, elif, else, endif, err

5、or, if, ifdef, ifndef, include, line, progma, undefu ()、()、“ ”、(空格)、(空格)auto, break, case, char, const, continue, default, do, double,else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while注

6、意注意所有的關(guān)鍵字都有其固定的含義,不能用作其他。所有的關(guān)鍵字都有其固定的含義,不能用作其他。所有的關(guān)鍵字都必須小寫(xiě)。所有的關(guān)鍵字都必須小寫(xiě)。如:如:else和和ELSE代表不同的含義。代表不同的含義。elseelse是關(guān)鍵字;是關(guān)鍵字;ELSEELSE是用戶(hù)自定義的標(biāo)識(shí)符。是用戶(hù)自定義的標(biāo)識(shí)符。C C 程序設(shè)計(jì)程序設(shè)計(jì)73.1 C C語(yǔ)言的基本元素和語(yǔ)言的基本元素和數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型 字符型字符型 charchar 基本類(lèi)型基本類(lèi)型 整型整型 int int 單精度單精度 floatfloat 實(shí)型實(shí)型( (浮點(diǎn)型浮點(diǎn)型) ) 雙精度雙精度 doubledouble 數(shù)組型數(shù)組型 arraya

7、rray 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型 結(jié)構(gòu)體型結(jié)構(gòu)體型 ( (含位段含位段)struct)struct 構(gòu)造類(lèi)型構(gòu)造類(lèi)型 共用體型共用體型 unionunion 枚舉型枚舉型 enumenum 自定義型自定義型 typedeftypedef 指針類(lèi)型指針類(lèi)型 (pointer)(pointer) 空類(lèi)型空類(lèi)型 voidvoid程序程序=算法算法+數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)算法處理的對(duì)象是數(shù)據(jù)算法處理的對(duì)象是數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)的組織形式數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)的組織形式數(shù)據(jù)類(lèi)型是指數(shù)據(jù)的內(nèi)在表現(xiàn)形式數(shù)據(jù)類(lèi)型是指數(shù)據(jù)的內(nèi)在表現(xiàn)形式 (代碼,存儲(chǔ),運(yùn)算)。(代碼,存儲(chǔ),運(yùn)算)。C C 程序設(shè)計(jì)程序設(shè)計(jì)83.23.2常量和變量一、

8、常量和符號(hào)常量一、常量和符號(hào)常量1 1、常量:固定值、常量:固定值 不隨程序改變不隨程序改變 常量區(qū)分不同類(lèi)型常量區(qū)分不同類(lèi)型( (表達(dá)形式表達(dá)形式) ) 如:如:1212、3.23.2、a a2 2、符號(hào)常量、符號(hào)常量 用一個(gè)標(biāo)識(shí)符代表的常量用一個(gè)標(biāo)識(shí)符代表的常量 定義方法:定義方法: define define 標(biāo)識(shí)符標(biāo)識(shí)符 常量常量# define PRICE 30#include void main ( ) int num,total; num=10; total=num*PRICE; printf(“total=%dn”,total);total300預(yù)編譯命令放預(yù)編譯命令放在函數(shù)的

9、外面在函數(shù)的外面C C 程序設(shè)計(jì)程序設(shè)計(jì)93.23.2常量和變量二、變量二、變量1、變量:其值可改變的量、變量:其值可改變的量 用標(biāo)識(shí)符(變量名)表示用標(biāo)識(shí)符(變量名)表示 在內(nèi)存中占一定存儲(chǔ)單元在內(nèi)存中占一定存儲(chǔ)單元 定義方法:定義方法: 類(lèi)型符類(lèi)型符 標(biāo)識(shí)符標(biāo)識(shí)符變量變量變量名變量名存儲(chǔ)單元存儲(chǔ)單元表示表示值值如:如:int I,j,imax; char c1,c2,s; float x,root1,root2; double y1,y2;# define PRICE 30#include void main ( ) int num,total; num=10; total=num*PRI

10、CE; printf(“total=%dn”,total);注意注意1 1、合法標(biāo)識(shí)符且見(jiàn)名知其意;、合法標(biāo)識(shí)符且見(jiàn)名知其意;2 2、先定義后使用;不定義不使用;、先定義后使用;不定義不使用;3 3、習(xí)慣上,符號(hào)常量用大寫(xiě),、習(xí)慣上,符號(hào)常量用大寫(xiě),變量名用小寫(xiě),方便區(qū)別。變量名用小寫(xiě),方便區(qū)別。C C 程序設(shè)計(jì)程序設(shè)計(jì)103.3 3.3 整型數(shù)據(jù)一、整型常量一、整型常量1、十進(jìn)制常數(shù)、十進(jìn)制常數(shù) 如:如:123、789、02、八進(jìn)制常數(shù)、八進(jìn)制常數(shù) 由由07數(shù)字組成,首字符用數(shù)字組成,首字符用0標(biāo)識(shí)。標(biāo)識(shí)。 如:如:0123 即即 (123)83、十六進(jìn)制常數(shù)、十六進(jìn)制常數(shù) 由由09,af(

11、AF)組成,最高位用組成,最高位用0 x標(biāo)識(shí)。標(biāo)識(shí)。 如:如:0 x123 即即 (123)16注意:二、八、十、十六進(jìn)制之間轉(zhuǎn)化一定掌握。注意:二、八、十、十六進(jìn)制之間轉(zhuǎn)化一定掌握。 如:如:30( ? ) 8( ? ) 16C C 程序設(shè)計(jì)程序設(shè)計(jì)113.3 3.3 整型數(shù)據(jù)一、整型常量一、整型常量1、十進(jìn)制常數(shù)、十進(jìn)制常數(shù) 如:如:123、789、02、八進(jìn)制常數(shù)、八進(jìn)制常數(shù) 由由07數(shù)字組成,首字符用數(shù)字組成,首字符用0標(biāo)識(shí)。標(biāo)識(shí)。 如:如:0123 即即 (123)83、十六進(jìn)制常數(shù)、十六進(jìn)制常數(shù) 由由09,af(AF)組成,最高位用組成,最高位用0 x標(biāo)識(shí)。標(biāo)識(shí)。 如:如:0 x1

12、23 即即 (123)16注意:注意:二、八、十、十六進(jìn)制之間轉(zhuǎn)化一定掌握。二、八、十、十六進(jìn)制之間轉(zhuǎn)化一定掌握。 如:如:30(036) 8(0 x1E) 16C C 程序設(shè)計(jì)程序設(shè)計(jì)123.3 3.3 整型數(shù)據(jù)二、整型變量二、整型變量1、整型變量在內(nèi)存中的存放形式、整型變量在內(nèi)存中的存放形式 數(shù)據(jù)在內(nèi)存中以二進(jìn)制的補(bǔ)碼表示:數(shù)據(jù)在內(nèi)存中以二進(jìn)制的補(bǔ)碼表示: 10 102、整型變量的分類(lèi)、整型變量的分類(lèi) 根據(jù)數(shù)值的范圍將變量定義為三類(lèi):根據(jù)數(shù)值的范圍將變量定義為三類(lèi): 基本整型基本整型(int)2 短整型短整型(short int)2 長(zhǎng)整型長(zhǎng)整型(long int)4為充分利用變量的表達(dá)范

13、圍,又可將變量定義為:為充分利用變量的表達(dá)范圍,又可將變量定義為: 有符號(hào)數(shù)有符號(hào)數(shù)(signed) (可省略可省略) 無(wú)符號(hào)數(shù)無(wú)符號(hào)數(shù)(unsigned)0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 01 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0符號(hào)位符號(hào)位正數(shù)原碼補(bǔ)碼相同負(fù)數(shù)補(bǔ)碼是絕對(duì)值取反加1C C 程序設(shè)計(jì)程序設(shè)計(jì)133.3 3.3 整型數(shù)據(jù)二、整型變量二、整型變量2 2、整型變量的分類(lèi)、整型變量的分類(lèi) (1)(1)有符號(hào)型有符號(hào)型 基本型:以基本型:以intint說(shuō)明,占用說(shuō)明,占用2 2字節(jié)。如:字節(jié)。如:int i,sumint i,sum 短整型

14、:以短整型:以shot shot intint或或shortshort說(shuō)明,占用說(shuō)明,占用2 2字節(jié)。字節(jié)。 如:如:short s,sumshort s,sum 長(zhǎng)整型:以長(zhǎng)整型:以long long intint或或longlong說(shuō)明,占用說(shuō)明,占用4 4字節(jié)。字節(jié)。 如:如:long l,sumlong l,sum C C 程序設(shè)計(jì)程序設(shè)計(jì)143.3 3.3 整型數(shù)據(jù)二、整型變量二、整型變量 2 2、整型變量的分類(lèi)、整型變量的分類(lèi) (2)(2)無(wú)符號(hào)型無(wú)符號(hào)型( (存放無(wú)符號(hào)的整數(shù)存放無(wú)符號(hào)的整數(shù)) ) 無(wú)符號(hào)整型:以無(wú)符號(hào)整型:以u(píng)nsigned intunsigned int或或u

15、nsignedunsigned說(shuō)明,占說(shuō)明,占 用用2 2字節(jié)。字節(jié)。 如:如: unsigned ui,sumunsigned ui,sum 無(wú)符號(hào)短整型:以無(wú)符號(hào)短整型:以u(píng)nsigned shortunsigned short說(shuō)明,占用說(shuō)明,占用2 2字節(jié)。字節(jié)。 如:如: unsigned short us,sumunsigned short us,sum 無(wú)符號(hào)長(zhǎng)整型:以無(wú)符號(hào)長(zhǎng)整型:以u(píng)nsigned longunsigned long說(shuō)明,占用說(shuō)明,占用4 4字節(jié)。字節(jié)。 如:如: unsigned long ul,sumunsigned long ul,sum P45 P45表

16、表3.23.2給出了各整型數(shù)據(jù)的取值范圍。給出了各整型數(shù)據(jù)的取值范圍。C C 程序設(shè)計(jì)程序設(shè)計(jì)153.3 3.3 整型數(shù)據(jù)二、整型變量二、整型變量整數(shù)在存儲(chǔ)單元的存儲(chǔ)情況:以整數(shù)在存儲(chǔ)單元的存儲(chǔ)情況:以13為例為例 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 10 0 0 0 0 0 0 0 0 0 0 0 1 1 0 10 0 0 0 0 0 0 0 0 0 00 0 0 000 0 0 0 0 0 0 0 0 0 0 0 1 1 0 10 0 0 0 0 0 0 0 0 0 0 0 1 1 0 10 0 0 0 0 0 0 0 0 0 00 0 0 00int型short型

17、long型0 0 0 0 0 0 0 0 0 0 0 0 1 1 01unsigned int型unsigned short型unsigned long型0 0 0 0 0 0 0 0 0 0 00 1 1 01符號(hào)位符號(hào)位C C 程序設(shè)計(jì)程序設(shè)計(jì)163.3 3.3 整型數(shù)據(jù)二、整型變量二、整型變量 3、整型變量的定義、整型變量的定義 如:如:int a, b; long num, i, j ; unsigned short c, d;例:不同種類(lèi)整型數(shù)據(jù)的運(yùn)算例:不同種類(lèi)整型數(shù)據(jù)的運(yùn)算#include Void main( )int a, b, c, d; unsigned u; a=12;

18、 b= -24; u=10; c=a+u; d=b+u; printf(“a+u=%d,b+u=%dn”,c,d);a+u= 22b+u= -12C C 程序設(shè)計(jì)程序設(shè)計(jì)173.3 3.3 整型數(shù)據(jù)三、整型常量的類(lèi)型三、整型常量的類(lèi)型 值在值在32 76832 768范圍內(nèi),認(rèn)為是范圍內(nèi),認(rèn)為是int型;型; 值在值在2 147 483 648 2 147 483 648范圍內(nèi),認(rèn)范圍內(nèi),認(rèn)為是為是long int型;型; 八進(jìn)制、十六進(jìn)制常量的類(lèi)型根據(jù)數(shù)值的大小可以八進(jìn)制、十六進(jìn)制常量的類(lèi)型根據(jù)數(shù)值的大小可以是整型、無(wú)符號(hào)整型是整型、無(wú)符號(hào)整型(065535)、長(zhǎng)整型或無(wú)符號(hào)長(zhǎng)、長(zhǎng)整型或無(wú)符

19、號(hào)長(zhǎng)整型;整型; 整數(shù)后有后綴整數(shù)后有后綴u或或U,認(rèn)為是,認(rèn)為是unsigned型。型。 整數(shù)后有后綴整數(shù)后有后綴l或或L,認(rèn)為是,認(rèn)為是long int型型(在嚴(yán)格要求類(lèi)在嚴(yán)格要求類(lèi)型匹配的場(chǎng)合有用,如函數(shù)參數(shù)調(diào)用型匹配的場(chǎng)合有用,如函數(shù)參數(shù)調(diào)用)。-123 123u -123l 123ul-0123 0123u -0123l 0123ul-0 x123 0 x123u -0 x123l 0 x123ulC C 程序設(shè)計(jì)程序設(shè)計(jì)183.4 3.4 實(shí)型數(shù)據(jù)一、實(shí)型常量一、實(shí)型常量 實(shí)數(shù)又稱(chēng)浮點(diǎn)數(shù)。有兩種表示形式實(shí)數(shù)又稱(chēng)浮點(diǎn)數(shù)。有兩種表示形式 1 1、十進(jìn)制數(shù)形式、十進(jìn)制數(shù)形式 如:如:0.

20、3450.345、.345.345、345.0345.0、0.00.0、0.0.、.0.0 2 2、指數(shù)形式、指數(shù)形式 如:如:3.45e33.45e3、3.45E3 3.45E3 表示表示3.453.4510103 3 3 3、類(lèi)型:缺省為、類(lèi)型:缺省為double;double;后綴為后綴為f f或或F F,為,為floatfloat型;后綴為型;后綴為l l或或L L,為,為long doublelong double型型注意:注意:e e前后必須有數(shù)字,前后必須有數(shù)字,e e后必須為整型數(shù)。后必須為整型數(shù)。如:如:.3e3 3e3 3.e3 3e e3 e0.3.3e3 3e3 3.e

21、3 3e e3 e0.3如:如:3.53.5表示雙精度型表示雙精度型 3.5f3.5f表示單精度型表示單精度型C C 程序設(shè)計(jì)程序設(shè)計(jì)193.4 3.4 實(shí)型數(shù)據(jù)二、實(shí)型變量二、實(shí)型變量(取值范圍和值的精度與機(jī)器有關(guān)取值范圍和值的精度與機(jī)器有關(guān)) 單精度單精度(float型型):占:占4個(gè)字節(jié),個(gè)字節(jié),7位有效數(shù)字位有效數(shù)字 (3.4e-38 3.4e+38) 雙精度雙精度(double型型):占:占8個(gè)字節(jié),個(gè)字節(jié),1516位有效數(shù)字位有效數(shù)字 (1.7e-3.8 1.7e+3.8) long double型:占型:占10個(gè)字節(jié),個(gè)字節(jié), 1516位有效數(shù)字位有效數(shù)字 (3.4e-4932

22、1.1e+4932) 如:如:float x, y; double a, b, c;C C 程序設(shè)計(jì)程序設(shè)計(jì)203.4 3.4 實(shí)型數(shù)據(jù)三、實(shí)型數(shù)據(jù)的舍入誤差三、實(shí)型數(shù)據(jù)的舍入誤差 雖然實(shí)型數(shù)據(jù)的表示形式有兩種但在內(nèi)存中均是以指數(shù)雖然實(shí)型數(shù)據(jù)的表示形式有兩種但在內(nèi)存中均是以指數(shù)形式存放形式存放 若數(shù)據(jù)超過(guò)有效位,則被若數(shù)據(jù)超過(guò)有效位,則被 舍去,故可能產(chǎn)生誤差。舍去,故可能產(chǎn)生誤差。數(shù)符數(shù)符小數(shù)小數(shù)階符階符指數(shù)指數(shù)例3-4#include Void main( ) float a, b; a=123456.789e5; b=a+20; printf(“a=%f, b=%fn”, a,b);a=

23、12345678848.000000, b=12345678848.000000C C 程序設(shè)計(jì)程序設(shè)計(jì)213.5 3.5 字符型數(shù)據(jù)一、字符常量一、字符常量1、用單引號(hào)擴(kuò)起來(lái)的一個(gè)字符、用單引號(hào)擴(kuò)起來(lái)的一個(gè)字符如:如:a、A、b、*、2、轉(zhuǎn)義字符:特殊的字符常量,它們都以、轉(zhuǎn)義字符:特殊的字符常量,它們都以開(kāi)頭。開(kāi)頭。代表一個(gè)字符代表一個(gè)字符n n 換行符換行符 0 0 空值空值t t 橫向跳格橫向跳格 v v 縱向跳格縱向跳格b b 退格退格 a a 報(bào)警報(bào)警r r 回車(chē)回車(chē) f f 走紙換頁(yè)走紙換頁(yè) 輸出反斜杠輸出反斜杠 輸出單引號(hào)輸出單引號(hào)ddd 1ddd 13 3位八進(jìn)制數(shù)表示的字符

24、位八進(jìn)制數(shù)表示的字符(ASCII(ASCII碼碼) ) 如:如:101101代表字符代表字符A Axhh 1xhh 12 2位十六進(jìn)制數(shù)表示的字符位十六進(jìn)制數(shù)表示的字符(ASCII(ASCII碼碼) ) 如:如:x41x41代表字符代表字符A A輸出格式控制輸出格式控制輸出字符輸出字符C C 程序設(shè)計(jì)程序設(shè)計(jì)223.5 3.5 字符型數(shù)據(jù)二、字符變量二、字符變量 字符變量用來(lái)存放字符,且只能存放一個(gè)字符。字符變量用來(lái)存放字符,且只能存放一個(gè)字符。 定義方法:定義方法: char c1, c2; unsigned char c3, c4; 字符型變量的賦值方法:字符型變量的賦值方法: c1=a;

25、 c2=101; c3=0 xff; c4=377;25525565AC C 程序設(shè)計(jì)程序設(shè)計(jì)233.5 3.5 字符型數(shù)據(jù)三、字符數(shù)據(jù)的存儲(chǔ)三、字符數(shù)據(jù)的存儲(chǔ)1、將一個(gè)字符常量存放到、將一個(gè)字符常量存放到一個(gè)字符變量中,是將該一個(gè)字符變量中,是將該字符的相應(yīng)的字符的相應(yīng)的ASCII代碼代碼存放到存儲(chǔ)單元中。存放到存儲(chǔ)單元中。 內(nèi)存中,內(nèi)存中,c1、c2存放形式:存放形式:例例3.6 3.6 字符的存儲(chǔ)與輸出字符的存儲(chǔ)與輸出include void main( ) char c1, c2; c1=a; c2=b; printf(“%c %cn”, c1,c2); c1=97; c2=98; p

26、rintf(“%c %cn”, c1, c2);a ba b97011000019801100010c1c2C C 程序設(shè)計(jì)程序設(shè)計(jì)24注意:注意:Turbo CTurbo C把字符處理成把字符處理成 帶符號(hào)的整數(shù)帶符號(hào)的整數(shù)3.5 3.5 字符型數(shù)據(jù)三、字符數(shù)據(jù)的存儲(chǔ)三、字符數(shù)據(jù)的存儲(chǔ)2、字符數(shù)據(jù)與整型數(shù)據(jù)可以、字符數(shù)據(jù)與整型數(shù)據(jù)可以 相互賦值相互賦值3、字符數(shù)據(jù)可以以字符形式、字符數(shù)據(jù)可以以字符形式 輸出,輸出, 也可以用整型數(shù)也可以用整型數(shù) 形式形式 輸出輸出字符字符a的存儲(chǔ)形式:的存儲(chǔ)形式:八進(jìn)制數(shù)八進(jìn)制數(shù)376(十進(jìn)制為十進(jìn)制為254) ASCII碼字符為:碼字符為:void mai

27、n( ) int i; char c; i=a; c=97; printf(“%c,%dn”,i,i); printf(“%c,%dn”,c,c);等同于:等同于:i=97;c=a0 1 10 00 011 1 11 11 10void main( )char c;c=376;printf(“%c, %dn”,c,c);unsigned char c; -2 254C C 程序設(shè)計(jì)程序設(shè)計(jì)253.5 3.5 字符型數(shù)據(jù)四、字符串常量四、字符串常量1、字符串常量:用一對(duì)雙引號(hào)括起來(lái)的字符序列、字符串常量:用一對(duì)雙引號(hào)括起來(lái)的字符序列如:如:“hello”, “1999”, “a”2、字符串結(jié)束標(biāo)

28、記、字符串結(jié)束標(biāo)記0每個(gè)字符串常量結(jié)尾都有一個(gè)字符每個(gè)字符串常量結(jié)尾都有一個(gè)字符0(一般情況是一般情況是由系統(tǒng)自動(dòng)加上由系統(tǒng)自動(dòng)加上)。如:如:“XIDIAN” 在內(nèi)存中為:在內(nèi)存中為:a為一個(gè)字符,為一個(gè)字符,“a”為兩個(gè)字符為兩個(gè)字符 a “a”XIDIA N 0aa0C C 程序設(shè)計(jì)程序設(shè)計(jì)263.6 3.6 變量賦初值變量賦初值在定義變量的同時(shí)設(shè)置初值,亦稱(chēng)在定義變量的同時(shí)設(shè)置初值,亦稱(chēng)初始化初始化。 如:如:int a=3; float f=3.56; char c=a; int a, b, c=5; int x=1, y=1, z=1;int x=y=z=1;相當(dāng)于:相當(dāng)于:int

29、 a, b, c;c=5;C C 程序設(shè)計(jì)程序設(shè)計(jì)273.7 3.7 各類(lèi)型數(shù)據(jù)間的混合運(yùn)算各類(lèi)型數(shù)據(jù)間的混合運(yùn)算 整型整型、實(shí)型實(shí)型( (包括單、雙精度包括單、雙精度) )、字符型字符型數(shù)據(jù)間可以數(shù)據(jù)間可以混合運(yùn)算混合運(yùn)算 如:如:10+10+a a+1.5+8765.1234+1.5+8765.1234* *x x ( (正確正確) ) 在運(yùn)算時(shí),不同類(lèi)型的數(shù)據(jù)要先轉(zhuǎn)換成同一類(lèi)型,在運(yùn)算時(shí),不同類(lèi)型的數(shù)據(jù)要先轉(zhuǎn)換成同一類(lèi)型,然后進(jìn)行運(yùn)算然后進(jìn)行運(yùn)算 轉(zhuǎn)換規(guī)則:轉(zhuǎn)換規(guī)則: 高高 double float double float long long unsigned unsigned 低低

30、int char,shortint char,shortfloatfloat型數(shù)據(jù)在運(yùn)算時(shí)一型數(shù)據(jù)在運(yùn)算時(shí)一律先轉(zhuǎn)換成律先轉(zhuǎn)換成doubledouble型型不同類(lèi)型進(jìn)行混合運(yùn)算時(shí)不同類(lèi)型進(jìn)行混合運(yùn)算時(shí)間,按照類(lèi)型級(jí)別間,按照類(lèi)型級(jí)別由低到由低到高高的順序轉(zhuǎn)換的順序轉(zhuǎn)換字符型和字符型和shortshort在運(yùn)算時(shí)一律轉(zhuǎn)在運(yùn)算時(shí)一律轉(zhuǎn)換成換成intint型型C C 程序設(shè)計(jì)程序設(shè)計(jì)283.8 3.8 算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符和算術(shù)表達(dá)式一、一、C C的運(yùn)算符:的運(yùn)算符:(具體見(jiàn)教材(具體見(jiàn)教材P56P56) 算術(shù)運(yùn)算符算術(shù)運(yùn)算符 賦值運(yùn)算符賦值運(yùn)算符 關(guān)系運(yùn)算符關(guān)系運(yùn)算符 邏輯運(yùn)算符邏輯運(yùn)

31、算符 位運(yùn)算符位運(yùn)算符 條件運(yùn)算符條件運(yùn)算符 逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符 指針運(yùn)算符指針運(yùn)算符 強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符 分量運(yùn)算符分量運(yùn)算符 下標(biāo)運(yùn)算符下標(biāo)運(yùn)算符 其它其它(注意:教材(注意:教材P378附錄附錄D的運(yùn)算符和結(jié)合性)的運(yùn)算符和結(jié)合性)C C 程序設(shè)計(jì)程序設(shè)計(jì)293.8 3.8 算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符和算術(shù)表達(dá)式一、一、C C的運(yùn)算符:的運(yùn)算符:(具體見(jiàn)教材(具體見(jiàn)教材P55P55) 算術(shù)運(yùn)算符算術(shù)運(yùn)算符 賦值運(yùn)算符賦值運(yùn)算符 關(guān)系運(yùn)算符關(guān)系運(yùn)算符 邏輯運(yùn)算符邏輯運(yùn)算符 位運(yùn)算符位運(yùn)算符 條件運(yùn)算符條件運(yùn)算符 逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符 指針運(yùn)算符指針運(yùn)算符 強(qiáng)制類(lèi)型

32、轉(zhuǎn)換運(yùn)算符強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符 分量運(yùn)算符分量運(yùn)算符 下標(biāo)運(yùn)算符下標(biāo)運(yùn)算符 其它其它(注意:教材(注意:教材 P365 附錄附錄III的運(yùn)算符和的運(yùn)算符和結(jié)合性結(jié)合性)同一級(jí)別的運(yùn)算符的運(yùn)算順序同一級(jí)別的運(yùn)算符的運(yùn)算順序?C C 程序設(shè)計(jì)程序設(shè)計(jì)303.8 3.8 算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符和算術(shù)表達(dá)式二、算術(shù)運(yùn)算符和算術(shù)表達(dá)式二、算術(shù)運(yùn)算符和算術(shù)表達(dá)式 1 1、基本算術(shù)運(yùn)算符、基本算術(shù)運(yùn)算符(1)(1)+ +( (加法運(yùn)算符,或正值運(yùn)算符加法運(yùn)算符,或正值運(yùn)算符) ) 如:如:3+53+5、+3+3(2)(2)- -( (減法運(yùn)算符,或減值運(yùn)算符減法運(yùn)算符,或減值運(yùn)算符) ) 如:如:5

33、-35-3、-3-3(3)(3)* *( (乘法運(yùn)算符乘法運(yùn)算符) ) 如:如:3 3* *5 5(4)(4)/ /( (除法運(yùn)算符除法運(yùn)算符) ) 如:如:5/35/3、(x+y)/(a+b)(x+y)/(a+b)(5)(5)% %( (模運(yùn)算符,或求余運(yùn)算符模運(yùn)算符,或求余運(yùn)算符) ):兩側(cè)均應(yīng)為兩側(cè)均應(yīng)為整型數(shù)據(jù)整型數(shù)據(jù) 如:如:7%47%4值為值為3 3 -7%4, 7%-4,-7%-4 -7%4, 7%-4,-7%-4的值為多少?的值為多少?注意:與數(shù)學(xué)上的區(qū)別注意:與數(shù)學(xué)上的區(qū)別 與與x+y/a+bx+y/a+bx+ya+b優(yōu)先級(jí)優(yōu)先級(jí)兩個(gè)整數(shù)相除,其值為整數(shù)。兩個(gè)整數(shù)相除,其值為

34、整數(shù)。 如如5/35/3值為值為1 1除數(shù)、被除數(shù)有一個(gè)為負(fù)值時(shí),結(jié)果除數(shù)、被除數(shù)有一個(gè)為負(fù)值時(shí),結(jié)果“向零取整向零取整” 。 如如-5/3-5/3值為值為-1-1除數(shù)、被除數(shù)有一個(gè)為實(shí)數(shù)時(shí),結(jié)果為除數(shù)、被除數(shù)有一個(gè)為實(shí)數(shù)時(shí),結(jié)果為doubledouble型。型。非非1.66671.6667 -3 3 -3符號(hào)由被除數(shù)決定符號(hào)由被除數(shù)決定C C 程序設(shè)計(jì)程序設(shè)計(jì)313.8 3.8 算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符和算術(shù)表達(dá)式2 2、算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性、算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性(1)(1)算術(shù)表達(dá)式:用運(yùn)算符和括號(hào)將運(yùn)算對(duì)象算術(shù)表達(dá)式:用運(yùn)算符和括號(hào)將運(yùn)算對(duì)象( (也也

35、叫操作數(shù)叫操作數(shù)) )連接起來(lái)、符合連接起來(lái)、符合C C語(yǔ)法規(guī)則的式子。語(yǔ)法規(guī)則的式子。 運(yùn)算對(duì)象包括常量、變量、函數(shù)等運(yùn)算對(duì)象包括常量、變量、函數(shù)等 如:如:3.143.14* *r r* *r x+sqrt(0.25r x+sqrt(0.25* *y)/(abs(a+b-3.6)y)/(abs(a+b-3.6)(2)(2)運(yùn)算符的優(yōu)先級(jí)和結(jié)合性運(yùn)算符的優(yōu)先級(jí)和結(jié)合性 優(yōu)先級(jí):優(yōu)先級(jí):先先 * * / / 后后 + -+ - 結(jié)合型:結(jié)合型:左結(jié)合性左結(jié)合性,即表達(dá)式從左向右進(jìn)行計(jì)算,即表達(dá)式從左向右進(jìn)行計(jì)算 (詳見(jiàn)附錄(詳見(jiàn)附錄D D)C C 程序設(shè)計(jì)程序設(shè)計(jì)323.8 3.8 算術(shù)運(yùn)算符

36、和算術(shù)表達(dá)式算術(shù)運(yùn)算符和算術(shù)表達(dá)式3 3、強(qiáng)制類(lèi)型轉(zhuǎn)換、強(qiáng)制類(lèi)型轉(zhuǎn)換 可以利用強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)可以利用強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符將一個(gè)表達(dá)式轉(zhuǎn)換成所需類(lèi)型。式轉(zhuǎn)換成所需類(lèi)型。 形式:形式:( (類(lèi)型名類(lèi)型名) )表達(dá)式表達(dá)式 如:如:(double) a(double) a (int)(x+y) (int)(x+y) (float)(8%5) (float)(8%5) 教材教材P57 P57 例例3.83.8注意:與注意:與(int)x+y(int)x+y不同不同只將只將x x轉(zhuǎn)換成整型,然后與轉(zhuǎn)換成整型,然后與y y相加相加又如:又如: float x; i=x%3;那么輸出的那么輸出的

37、i的結(jié)果是?的結(jié)果是?出錯(cuò)!?出錯(cuò)?。吭颍阂笃鋬蓚?cè)均為整型量,所原因:要求其兩側(cè)均為整型量,所以應(yīng)改為以應(yīng)改為i=i=(int)(int)x x% %y y;(;(運(yùn)算符優(yōu)先級(jí)運(yùn)算符優(yōu)先級(jí)?) )C C 程序設(shè)計(jì)程序設(shè)計(jì)333.8 3.8 算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符和算術(shù)表達(dá)式三、自增、自減運(yùn)算符三、自增、自減運(yùn)算符 + + i, - -i 在使用之前,先使用在使用之前,先使用i的值加的值加1或減或減1 i + +, i - - 在使用之后,使在使用之后,使i的值加的值加1或減或減1注意:注意: 自增、自減運(yùn)算符只能用于自增、自減運(yùn)算符只能用于變量變量,而不能,而不能用于常量或表達(dá)式

38、。如:用于常量或表達(dá)式。如:5+、-(a+b) (不合法不合法)相當(dāng)于相當(dāng)于i=i+1,i=i+1,但執(zhí)行的時(shí)機(jī)不同但執(zhí)行的時(shí)機(jī)不同例例: :自增自減運(yùn)算自增自減運(yùn)算include “stdio.h”void main( ) int i=0, j; j=i+; printf(“%d %dn”,i, j); i=0; j=+i; printf(“%d %dn”,i, j); 1 01 1C C 程序設(shè)計(jì)程序設(shè)計(jì)343.9 3.9 賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符和賦值表達(dá)式一、賦值運(yùn)算符一、賦值運(yùn)算符“” 形式:形式:變量表達(dá)式變量表達(dá)式 作用:將表達(dá)式的值賦給變量作用:將表達(dá)式的值賦給變量 (

39、 (常量、變量是表達(dá)式的特例常量、變量是表達(dá)式的特例) ) 如:如:a=5;a=5; ave=(a+b)/10 ave=(a+b)/10二、賦值結(jié)果與類(lèi)型轉(zhuǎn)換二、賦值結(jié)果與類(lèi)型轉(zhuǎn)換1 1、實(shí)型數(shù)據(jù)、實(shí)型數(shù)據(jù)( (包括單、雙精度包括單、雙精度) )賦給整型變量時(shí),舍棄實(shí)賦給整型變量時(shí),舍棄實(shí)數(shù)的小數(shù)部分?jǐn)?shù)的小數(shù)部分2 2、整型數(shù)據(jù)賦給單、雙精度變量、整型數(shù)據(jù)賦給單、雙精度變量時(shí),數(shù)值不變,但以浮點(diǎn)數(shù)形式時(shí),數(shù)值不變,但以浮點(diǎn)數(shù)形式存儲(chǔ)到變量中存儲(chǔ)到變量中注意:注意:與數(shù)學(xué)中的等式不同!與數(shù)學(xué)中的等式不同! 數(shù)學(xué)中數(shù)學(xué)中x=y和和y=x一樣。一樣。#include “stdio.h”void ma

40、in ( ) int i; float f; i=5.34; f=23 printf(“%d %f n”, i, f);5 23.000000C C 程序設(shè)計(jì)程序設(shè)計(jì)353.9 3.9 賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符和賦值表達(dá)式二、賦值結(jié)果與類(lèi)型轉(zhuǎn)換二、賦值結(jié)果與類(lèi)型轉(zhuǎn)換3 3、長(zhǎng)度相同的有符號(hào)與無(wú)符號(hào)整型數(shù)間,原樣賦值、長(zhǎng)度相同的有符號(hào)與無(wú)符號(hào)整型數(shù)間,原樣賦值 (但數(shù)值有時(shí)會(huì)有變化)(但數(shù)值有時(shí)會(huì)有變化)include “stdio.h”void main( ) unsigned a; int b=-1; a=b; printf(“%d%un”, b, a); a=65534u; b=a

41、; printf(“%d%un”, b, a);1 1 11 11 11 11 11 11 111 1 11 11 11 11 11 11 11ab-165535-2655341 1 11 11 11 11 11 11 101 1 11 11 11 11 11 11 10ab內(nèi)存中的處理方式內(nèi)存中的處理方式C C 程序設(shè)計(jì)程序設(shè)計(jì)363.9 3.9 賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符和賦值表達(dá)式二、賦值結(jié)果與類(lèi)型轉(zhuǎn)換二、賦值結(jié)果與類(lèi)型轉(zhuǎn)換4 4、charchar、intint、longlong等類(lèi)型的轉(zhuǎn)換等類(lèi)型的轉(zhuǎn)換 (1)(1)“短短”數(shù)據(jù)賦給數(shù)據(jù)賦給“長(zhǎng)長(zhǎng)”變量變量 符號(hào)擴(kuò)展:若最高位為符號(hào)

42、擴(kuò)展:若最高位為1(1(負(fù)數(shù)負(fù)數(shù)) ),則變量高字節(jié)位,則變量高字節(jié)位補(bǔ)補(bǔ)1 1;反之,補(bǔ);反之,補(bǔ)0 0。 4343號(hào)字符號(hào)字符+ + 5353 i i 254 254號(hào)字符號(hào)字符376376 i i #include void main ( ) char c; int i;c=43; i=c;printf(“i=%dn”,i);c=376; i=c;printf(“i=%dn”,i);00 10 10 110 0 00 00 00 00 10 10 110 0 00 00 00 00 10 10 1111 11 11 101 1 11 11 11 11 11 11 10i=43i=-2C

43、C 程序設(shè)計(jì)程序設(shè)計(jì)373.9 3.9 賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符和賦值表達(dá)式二、賦值結(jié)果與類(lèi)型轉(zhuǎn)換二、賦值結(jié)果與類(lèi)型轉(zhuǎn)換4 4、charchar、intint、longlong等類(lèi)型的轉(zhuǎn)換等類(lèi)型的轉(zhuǎn)換 (2)(2)“長(zhǎng)長(zhǎng)”數(shù)據(jù)賦給數(shù)據(jù)賦給“短短”變量變量 只將數(shù)據(jù)的低字節(jié)原封不動(dòng)只將數(shù)據(jù)的低字節(jié)原封不動(dòng)送到變量中送到變量中( (數(shù)據(jù)有可能有差錯(cuò)數(shù)據(jù)有可能有差錯(cuò)) ) L=6324232 L=6324232 a=-32760 a=-32760#include void main( )int i;long L=63242321;i=L;printf(“i=%d, L=%ldn”, i, L);0 0 00 00 00 01 10 00 00 10 00 00 00 00 00 10 001 0 00 00 00 00 00 10 00i=-32760, L=6324232C C 程序設(shè)計(jì)程序設(shè)計(jì)383.9 3.9 賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符和賦值表達(dá)式三、復(fù)合賦值運(yùn)算符三、復(fù)合賦

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論