




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C C 程序設(shè)計程序設(shè)計1主主 講講: : 劉懷亮劉懷亮E-mail:E-mail:經(jīng)濟管理學(xué)院信息管理系經(jīng)濟管理學(xué)院信息管理系C C語言程序設(shè)計語言程序設(shè)計C Programming LanguageC Programming Language 2第三章第三章 數(shù)據(jù)類型、運算符數(shù)據(jù)類型、運算符與表達式與表達式(第(第3 3講)講)主講主講: :劉懷亮劉懷亮E-mail:E-mail:經(jīng)濟管理學(xué)院信息管理系經(jīng)濟管理學(xué)院信息管理系C C 程序設(shè)計程序設(shè)計3數(shù)據(jù)類型、運算符與表達式內(nèi)容提要內(nèi)容提要:C C語言的基本元素和數(shù)據(jù)類型語言的基本元素和數(shù)據(jù)類型常量與變量常量與變量各種數(shù)據(jù)類型的常量和變量各
2、種數(shù)據(jù)類型的常量和變量變量賦初值變量賦初值各種類型的數(shù)據(jù)間的混合運算各種類型的數(shù)據(jù)間的混合運算幾種基本運算符及其表達式幾種基本運算符及其表達式C C 程序設(shè)計程序設(shè)計43.1 C語言的基本元素和數(shù)據(jù)類型一、符號集(字符集)一、符號集(字符集)C語言經(jīng)常使用的基本符號共有以下五種:語言經(jīng)常使用的基本符號共有以下五種:(1)大寫字母:)大寫字母:AZ (2)小寫字母:)小寫字母:az (3)阿拉伯數(shù)字:)阿拉伯數(shù)字:09 (4)下劃線:)下劃線:_(5)標點符號和運算符)標點符號和運算符C C 程序設(shè)計程序設(shè)計53.1 C C語言的基本元素語言的基本元素和數(shù)據(jù)類型和數(shù)據(jù)類型二、標識符二、標識符 用
3、來標記常量、變量、函數(shù)及文件名的字符序列。用來標記常量、變量、函數(shù)及文件名的字符序列。 標識符的構(gòu)成規(guī)則:標識符的構(gòu)成規(guī)則: 以字母(大小寫皆可)或下劃線開頭以字母(大小寫皆可)或下劃線開頭 隨后可跟若干個(包括隨后可跟若干個(包括0個字母、數(shù)字、下劃線)個字母、數(shù)字、下劃線) 標識符的長度各個系統(tǒng)不同,最好不要超過標識符的長度各個系統(tǒng)不同,最好不要超過8個字符個字符 如:如:x y3 _imax ELSE X A_to_B(合法)(合法) 7x int #No bad one reinput(不合法)(不合法)注意注意1 1、區(qū)分大小寫。如、區(qū)分大小寫。如sumsum、SumSum是兩個不同
4、的標識符!是兩個不同的標識符!2 2、最好見名知意!、最好見名知意!如:如:student_name, student_number應(yīng)變?yōu)椋簯?yīng)變?yōu)椋?stu_name、stu_numC C 程序設(shè)計程序設(shè)計63.1 C C語言的基本元素語言的基本元素和數(shù)據(jù)類型和數(shù)據(jù)類型三、關(guān)鍵字三、關(guān)鍵字 也稱保留字,在也稱保留字,在C語言中有特定的含義,專門語言中有特定的含義,專門用作語言特定的成分的一類標識符。用作語言特定的成分的一類標識符。u保留保留 ANSI 32個個 (詳見(詳見P378 附錄附錄C)u12個編譯預(yù)處理命令個編譯預(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)鍵字都必須小寫。所有的關(guān)鍵字都必須小寫。如:如:else和和ELSE代表不同的含義。代表不同的含義。elseelse是關(guān)鍵字;是關(guān)鍵字;ELSEELSE是用戶自定義的標識符。是用戶自定義的標識符。C C 程序設(shè)計程序設(shè)計73.1 C C語言的基本元素和語言的基本元素和數(shù)據(jù)類型數(shù)據(jù)類型 字符型字符型 charchar 基本類型基本類型 整型整型 int int 單精度單精度 floatfloat 實型實型( (浮點型浮點型) ) 雙精度雙精度 doubledouble 數(shù)組型數(shù)組型 arraya
7、rray 數(shù)據(jù)類型數(shù)據(jù)類型 結(jié)構(gòu)體型結(jié)構(gòu)體型 ( (含位段含位段)struct)struct 構(gòu)造類型構(gòu)造類型 共用體型共用體型 unionunion 枚舉型枚舉型 enumenum 自定義型自定義型 typedeftypedef 指針類型指針類型 (pointer)(pointer) 空類型空類型 voidvoid程序程序=算法算法+數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)算法處理的對象是數(shù)據(jù)算法處理的對象是數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)的組織形式數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)的組織形式數(shù)據(jù)類型是指數(shù)據(jù)的內(nèi)在表現(xiàn)形式數(shù)據(jù)類型是指數(shù)據(jù)的內(nèi)在表現(xiàn)形式 (代碼,存儲,運算)。(代碼,存儲,運算)。C C 程序設(shè)計程序設(shè)計83.23.2常量和變量一、
8、常量和符號常量一、常量和符號常量1 1、常量:固定值、常量:固定值 不隨程序改變不隨程序改變 常量區(qū)分不同類型常量區(qū)分不同類型( (表達形式表達形式) ) 如:如:1212、3.23.2、a a2 2、符號常量、符號常量 用一個標識符代表的常量用一個標識符代表的常量 定義方法:定義方法: define define 標識符標識符 常量常量# 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è)計程序設(shè)計93.23.2常量和變量二、變量二、變量1、變量:其值可改變的量、變量:其值可改變的量 用標識符(變量名)表示用標識符(變量名)表示 在內(nèi)存中占一定存儲單元在內(nèi)存中占一定存儲單元 定義方法:定義方法: 類型符類型符 標識符標識符變量變量變量名變量名存儲單元存儲單元表示表示值值如:如: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、合法標識符且見名知其意;、合法標識符且見名知其意;2 2、先定義后使用;不定義不使用;、先定義后使用;不定義不使用;3 3、習慣上,符號常量用大寫,、習慣上,符號常量用大寫,變量名用小寫,方便區(qū)別。變量名用小寫,方便區(qū)別。C C 程序設(shè)計程序設(shè)計103.3 3.3 整型數(shù)據(jù)一、整型常量一、整型常量1、十進制常數(shù)、十進制常數(shù) 如:如:123、789、02、八進制常數(shù)、八進制常數(shù) 由由07數(shù)字組成,首字符用數(shù)字組成,首字符用0標識。標識。 如:如:0123 即即 (123)83、十六進制常數(shù)、十六進制常數(shù) 由由09,af(
11、AF)組成,最高位用組成,最高位用0 x標識。標識。 如:如:0 x123 即即 (123)16注意:二、八、十、十六進制之間轉(zhuǎn)化一定掌握。注意:二、八、十、十六進制之間轉(zhuǎn)化一定掌握。 如:如:30( ? ) 8( ? ) 16C C 程序設(shè)計程序設(shè)計113.3 3.3 整型數(shù)據(jù)一、整型常量一、整型常量1、十進制常數(shù)、十進制常數(shù) 如:如:123、789、02、八進制常數(shù)、八進制常數(shù) 由由07數(shù)字組成,首字符用數(shù)字組成,首字符用0標識。標識。 如:如:0123 即即 (123)83、十六進制常數(shù)、十六進制常數(shù) 由由09,af(AF)組成,最高位用組成,最高位用0 x標識。標識。 如:如:0 x1
12、23 即即 (123)16注意:注意:二、八、十、十六進制之間轉(zhuǎn)化一定掌握。二、八、十、十六進制之間轉(zhuǎn)化一定掌握。 如:如:30(036) 8(0 x1E) 16C C 程序設(shè)計程序設(shè)計123.3 3.3 整型數(shù)據(jù)二、整型變量二、整型變量1、整型變量在內(nèi)存中的存放形式、整型變量在內(nèi)存中的存放形式 數(shù)據(jù)在內(nèi)存中以二進制的補碼表示:數(shù)據(jù)在內(nèi)存中以二進制的補碼表示: 10 102、整型變量的分類、整型變量的分類 根據(jù)數(shù)值的范圍將變量定義為三類:根據(jù)數(shù)值的范圍將變量定義為三類: 基本整型基本整型(int)2 短整型短整型(short int)2 長整型長整型(long int)4為充分利用變量的表達范
13、圍,又可將變量定義為:為充分利用變量的表達范圍,又可將變量定義為: 有符號數(shù)有符號數(shù)(signed) (可省略可省略) 無符號數(shù)無符號數(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符號位符號位正數(shù)原碼補碼相同負數(shù)補碼是絕對值取反加1C C 程序設(shè)計程序設(shè)計133.3 3.3 整型數(shù)據(jù)二、整型變量二、整型變量2 2、整型變量的分類、整型變量的分類 (1)(1)有符號型有符號型 基本型:以基本型:以intint說明,占用說明,占用2 2字節(jié)。如:字節(jié)。如:int i,sumint i,sum 短整型
14、:以短整型:以shot shot intint或或shortshort說明,占用說明,占用2 2字節(jié)。字節(jié)。 如:如:short s,sumshort s,sum 長整型:以長整型:以long long intint或或longlong說明,占用說明,占用4 4字節(jié)。字節(jié)。 如:如:long l,sumlong l,sum C C 程序設(shè)計程序設(shè)計143.3 3.3 整型數(shù)據(jù)二、整型變量二、整型變量 2 2、整型變量的分類、整型變量的分類 (2)(2)無符號型無符號型( (存放無符號的整數(shù)存放無符號的整數(shù)) ) 無符號整型:以無符號整型:以unsigned intunsigned int或或u
15、nsignedunsigned說明,占說明,占 用用2 2字節(jié)。字節(jié)。 如:如: unsigned ui,sumunsigned ui,sum 無符號短整型:以無符號短整型:以unsigned shortunsigned short說明,占用說明,占用2 2字節(jié)。字節(jié)。 如:如: unsigned short us,sumunsigned short us,sum 無符號長整型:以無符號長整型:以unsigned longunsigned long說明,占用說明,占用4 4字節(jié)。字節(jié)。 如:如: unsigned long ul,sumunsigned long ul,sum P45 P45表
16、表3.23.2給出了各整型數(shù)據(jù)的取值范圍。給出了各整型數(shù)據(jù)的取值范圍。C C 程序設(shè)計程序設(shè)計153.3 3.3 整型數(shù)據(jù)二、整型變量二、整型變量整數(shù)在存儲單元的存儲情況:以整數(shù)在存儲單元的存儲情況:以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符號位符號位C C 程序設(shè)計程序設(shè)計163.3 3.3 整型數(shù)據(jù)二、整型變量二、整型變量 3、整型變量的定義、整型變量的定義 如:如:int a, b; long num, i, j ; unsigned short c, d;例:不同種類整型數(shù)據(jù)的運算例:不同種類整型數(shù)據(jù)的運算#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è)計程序設(shè)計173.3 3.3 整型數(shù)據(jù)三、整型常量的類型三、整型常量的類型 值在值在32 76832 768范圍內(nèi),認為是范圍內(nèi),認為是int型;型; 值在值在2 147 483 648 2 147 483 648范圍內(nèi),認范圍內(nèi),認為是為是long int型;型; 八進制、十六進制常量的類型根據(jù)數(shù)值的大小可以八進制、十六進制常量的類型根據(jù)數(shù)值的大小可以是整型、無符號整型是整型、無符號整型(065535)、長整型或無符號長、長整型或無符
19、號長整型;整型; 整數(shù)后有后綴整數(shù)后有后綴u或或U,認為是,認為是unsigned型。型。 整數(shù)后有后綴整數(shù)后有后綴l或或L,認為是,認為是long int型型(在嚴格要求類在嚴格要求類型匹配的場合有用,如函數(shù)參數(shù)調(diào)用型匹配的場合有用,如函數(shù)參數(shù)調(diào)用)。-123 123u -123l 123ul-0123 0123u -0123l 0123ul-0 x123 0 x123u -0 x123l 0 x123ulC C 程序設(shè)計程序設(shè)計183.4 3.4 實型數(shù)據(jù)一、實型常量一、實型常量 實數(shù)又稱浮點數(shù)。有兩種表示形式實數(shù)又稱浮點數(shù)。有兩種表示形式 1 1、十進制數(shù)形式、十進制數(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、類型:缺省為、類型:缺省為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è)計程序設(shè)計193.4 3.4 實型數(shù)據(jù)二、實型變量二、實型變量(取值范圍和值的精度與機器有關(guān)取值范圍和值的精度與機器有關(guān)) 單精度單精度(float型型):占:占4個字節(jié),個字節(jié),7位有效數(shù)字位有效數(shù)字 (3.4e-38 3.4e+38) 雙精度雙精度(double型型):占:占8個字節(jié),個字節(jié),1516位有效數(shù)字位有效數(shù)字 (1.7e-3.8 1.7e+3.8) long double型:占型:占10個字節(jié),個字節(jié), 1516位有效數(shù)字位有效數(shù)字 (3.4e-4932
22、1.1e+4932) 如:如:float x, y; double a, b, c;C C 程序設(shè)計程序設(shè)計203.4 3.4 實型數(shù)據(jù)三、實型數(shù)據(jù)的舍入誤差三、實型數(shù)據(jù)的舍入誤差 雖然實型數(shù)據(jù)的表示形式有兩種但在內(nèi)存中均是以指數(shù)雖然實型數(shù)據(jù)的表示形式有兩種但在內(nèi)存中均是以指數(shù)形式存放形式存放 若數(shù)據(jù)超過有效位,則被若數(shù)據(jù)超過有效位,則被 舍去,故可能產(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è)計程序設(shè)計213.5 3.5 字符型數(shù)據(jù)一、字符常量一、字符常量1、用單引號擴起來的一個字符、用單引號擴起來的一個字符如:如:a、A、b、*、2、轉(zhuǎn)義字符:特殊的字符常量,它們都以、轉(zhuǎn)義字符:特殊的字符常量,它們都以開頭。開頭。代表一個字符代表一個字符n n 換行符換行符 0 0 空值空值t t 橫向跳格橫向跳格 v v 縱向跳格縱向跳格b b 退格退格 a a 報警報警r r 回車回車 f f 走紙換頁走紙換頁 輸出反斜杠輸出反斜杠 輸出單引號輸出單引號ddd 1ddd 13 3位八進制數(shù)表示的字符
24、位八進制數(shù)表示的字符(ASCII(ASCII碼碼) ) 如:如:101101代表字符代表字符A Axhh 1xhh 12 2位十六進制數(shù)表示的字符位十六進制數(shù)表示的字符(ASCII(ASCII碼碼) ) 如:如:x41x41代表字符代表字符A A輸出格式控制輸出格式控制輸出字符輸出字符C C 程序設(shè)計程序設(shè)計223.5 3.5 字符型數(shù)據(jù)二、字符變量二、字符變量 字符變量用來存放字符,且只能存放一個字符。字符變量用來存放字符,且只能存放一個字符。 定義方法:定義方法: char c1, c2; unsigned char c3, c4; 字符型變量的賦值方法:字符型變量的賦值方法: c1=a;
25、 c2=101; c3=0 xff; c4=377;25525565AC C 程序設(shè)計程序設(shè)計233.5 3.5 字符型數(shù)據(jù)三、字符數(shù)據(jù)的存儲三、字符數(shù)據(jù)的存儲1、將一個字符常量存放到、將一個字符常量存放到一個字符變量中,是將該一個字符變量中,是將該字符的相應(yīng)的字符的相應(yīng)的ASCII代碼代碼存放到存儲單元中。存放到存儲單元中。 內(nèi)存中,內(nèi)存中,c1、c2存放形式:存放形式:例例3.6 3.6 字符的存儲與輸出字符的存儲與輸出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è)計程序設(shè)計24注意:注意:Turbo CTurbo C把字符處理成把字符處理成 帶符號的整數(shù)帶符號的整數(shù)3.5 3.5 字符型數(shù)據(jù)三、字符數(shù)據(jù)的存儲三、字符數(shù)據(jù)的存儲2、字符數(shù)據(jù)與整型數(shù)據(jù)可以、字符數(shù)據(jù)與整型數(shù)據(jù)可以 相互賦值相互賦值3、字符數(shù)據(jù)可以以字符形式、字符數(shù)據(jù)可以以字符形式 輸出,輸出, 也可以用整型數(shù)也可以用整型數(shù) 形式形式 輸出輸出字符字符a的存儲形式:的存儲形式:八進制數(shù)八進制數(shù)376(十進制為十進制為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è)計程序設(shè)計253.5 3.5 字符型數(shù)據(jù)四、字符串常量四、字符串常量1、字符串常量:用一對雙引號括起來的字符序列、字符串常量:用一對雙引號括起來的字符序列如:如:“hello”, “1999”, “a”2、字符串結(jié)束標
28、記、字符串結(jié)束標記0每個字符串常量結(jié)尾都有一個字符每個字符串常量結(jié)尾都有一個字符0(一般情況是一般情況是由系統(tǒng)自動加上由系統(tǒng)自動加上)。如:如:“XIDIAN” 在內(nèi)存中為:在內(nèi)存中為:a為一個字符,為一個字符,“a”為兩個字符為兩個字符 a “a”XIDIA N 0aa0C C 程序設(shè)計程序設(shè)計263.6 3.6 變量賦初值變量賦初值在定義變量的同時設(shè)置初值,亦稱在定義變量的同時設(shè)置初值,亦稱初始化初始化。 如:如: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;相當于:相當于:int
29、 a, b, c;c=5;C C 程序設(shè)計程序設(shè)計273.7 3.7 各類型數(shù)據(jù)間的混合運算各類型數(shù)據(jù)間的混合運算 整型整型、實型實型( (包括單、雙精度包括單、雙精度) )、字符型字符型數(shù)據(jù)間可以數(shù)據(jù)間可以混合運算混合運算 如:如:10+10+a a+1.5+8765.1234+1.5+8765.1234* *x x ( (正確正確) ) 在運算時,不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,在運算時,不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進行運算然后進行運算 轉(zhuǎn)換規(guī)則:轉(zhuǎn)換規(guī)則: 高高 double float double float long long unsigned unsigned 低低
30、int char,shortint char,shortfloatfloat型數(shù)據(jù)在運算時一型數(shù)據(jù)在運算時一律先轉(zhuǎn)換成律先轉(zhuǎn)換成doubledouble型型不同類型進行混合運算時不同類型進行混合運算時間,按照類型級別間,按照類型級別由低到由低到高高的順序轉(zhuǎn)換的順序轉(zhuǎn)換字符型和字符型和shortshort在運算時一律轉(zhuǎn)在運算時一律轉(zhuǎn)換成換成intint型型C C 程序設(shè)計程序設(shè)計283.8 3.8 算術(shù)運算符和算術(shù)表達式算術(shù)運算符和算術(shù)表達式一、一、C C的運算符:的運算符:(具體見教材(具體見教材P56P56) 算術(shù)運算符算術(shù)運算符 賦值運算符賦值運算符 關(guān)系運算符關(guān)系運算符 邏輯運算符邏輯運
31、算符 位運算符位運算符 條件運算符條件運算符 逗號運算符逗號運算符 指針運算符指針運算符 強制類型轉(zhuǎn)換運算符強制類型轉(zhuǎn)換運算符 分量運算符分量運算符 下標運算符下標運算符 其它其它(注意:教材(注意:教材P378附錄附錄D的運算符和結(jié)合性)的運算符和結(jié)合性)C C 程序設(shè)計程序設(shè)計293.8 3.8 算術(shù)運算符和算術(shù)表達式算術(shù)運算符和算術(shù)表達式一、一、C C的運算符:的運算符:(具體見教材(具體見教材P55P55) 算術(shù)運算符算術(shù)運算符 賦值運算符賦值運算符 關(guān)系運算符關(guān)系運算符 邏輯運算符邏輯運算符 位運算符位運算符 條件運算符條件運算符 逗號運算符逗號運算符 指針運算符指針運算符 強制類型
32、轉(zhuǎn)換運算符強制類型轉(zhuǎn)換運算符 分量運算符分量運算符 下標運算符下標運算符 其它其它(注意:教材(注意:教材 P365 附錄附錄III的運算符和的運算符和結(jié)合性結(jié)合性)同一級別的運算符的運算順序同一級別的運算符的運算順序?C C 程序設(shè)計程序設(shè)計303.8 3.8 算術(shù)運算符和算術(shù)表達式算術(shù)運算符和算術(shù)表達式二、算術(shù)運算符和算術(shù)表達式二、算術(shù)運算符和算術(shù)表達式 1 1、基本算術(shù)運算符、基本算術(shù)運算符(1)(1)+ +( (加法運算符,或正值運算符加法運算符,或正值運算符) ) 如:如:3+53+5、+3+3(2)(2)- -( (減法運算符,或減值運算符減法運算符,或減值運算符) ) 如:如:5
33、-35-3、-3-3(3)(3)* *( (乘法運算符乘法運算符) ) 如:如:3 3* *5 5(4)(4)/ /( (除法運算符除法運算符) ) 如:如:5/35/3、(x+y)/(a+b)(x+y)/(a+b)(5)(5)% %( (模運算符,或求余運算符模運算符,或求余運算符) ):兩側(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)先級優(yōu)先級兩個整數(shù)相除,其值為整數(shù)。兩個整數(shù)相除,其值為
34、整數(shù)。 如如5/35/3值為值為1 1除數(shù)、被除數(shù)有一個為負值時,結(jié)果除數(shù)、被除數(shù)有一個為負值時,結(jié)果“向零取整向零取整” 。 如如-5/3-5/3值為值為-1-1除數(shù)、被除數(shù)有一個為實數(shù)時,結(jié)果為除數(shù)、被除數(shù)有一個為實數(shù)時,結(jié)果為doubledouble型。型。非非1.66671.6667 -3 3 -3符號由被除數(shù)決定符號由被除數(shù)決定C C 程序設(shè)計程序設(shè)計313.8 3.8 算術(shù)運算符和算術(shù)表達式算術(shù)運算符和算術(shù)表達式2 2、算術(shù)表達式和運算符的優(yōu)先級與結(jié)合性、算術(shù)表達式和運算符的優(yōu)先級與結(jié)合性(1)(1)算術(shù)表達式:用運算符和括號將運算對象算術(shù)表達式:用運算符和括號將運算對象( (也也
35、叫操作數(shù)叫操作數(shù)) )連接起來、符合連接起來、符合C C語法規(guī)則的式子。語法規(guī)則的式子。 運算對象包括常量、變量、函數(shù)等運算對象包括常量、變量、函數(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ōu)先級和結(jié)合性運算符的優(yōu)先級和結(jié)合性 優(yōu)先級:優(yōu)先級:先先 * * / / 后后 + -+ - 結(jié)合型:結(jié)合型:左結(jié)合性左結(jié)合性,即表達式從左向右進行計算,即表達式從左向右進行計算 (詳見附錄(詳見附錄D D)C C 程序設(shè)計程序設(shè)計323.8 3.8 算術(shù)運算符
36、和算術(shù)表達式算術(shù)運算符和算術(shù)表達式3 3、強制類型轉(zhuǎn)換、強制類型轉(zhuǎn)換 可以利用強制類型轉(zhuǎn)換運算符將一個表達可以利用強制類型轉(zhuǎn)換運算符將一個表達式轉(zhuǎn)換成所需類型。式轉(zhuǎn)換成所需類型。 形式:形式:( (類型名類型名) )表達式表達式 如:如:(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é)果是?出錯?。砍鲥e???原因:要求其兩側(cè)均為整型量,所原因:要求其兩側(cè)均為整型量,所以應(yīng)改為以應(yīng)改為i=i=(int)(int)x x% %y y;(;(運算符優(yōu)先級運算符優(yōu)先級?) )C C 程序設(shè)計程序設(shè)計333.8 3.8 算術(shù)運算符和算術(shù)表達式算術(shù)運算符和算術(shù)表達式三、自增、自減運算符三、自增、自減運算符 + + i, - -i 在使用之前,先使用在使用之前,先使用i的值加的值加1或減或減1 i + +, i - - 在使用之后,使在使用之后,使i的值加的值加1或減或減1注意:注意: 自增、自減運算符只能用于自增、自減運算符只能用于變量變量,而不能,而不能用于常量或表達式
38、。如:用于常量或表達式。如:5+、-(a+b) (不合法不合法)相當于相當于i=i+1,i=i+1,但執(zhí)行的時機不同但執(zhí)行的時機不同例例: :自增自減運算自增自減運算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è)計程序設(shè)計343.9 3.9 賦值運算符和賦值表達式賦值運算符和賦值表達式一、賦值運算符一、賦值運算符“” 形式:形式:變量表達式變量表達式 作用:將表達式的值賦給變量作用:將表達式的值賦給變量 (
39、 (常量、變量是表達式的特例常量、變量是表達式的特例) ) 如:如:a=5;a=5; ave=(a+b)/10 ave=(a+b)/10二、賦值結(jié)果與類型轉(zhuǎn)換二、賦值結(jié)果與類型轉(zhuǎn)換1 1、實型數(shù)據(jù)、實型數(shù)據(jù)( (包括單、雙精度包括單、雙精度) )賦給整型變量時,舍棄實賦給整型變量時,舍棄實數(shù)的小數(shù)部分數(shù)的小數(shù)部分2 2、整型數(shù)據(jù)賦給單、雙精度變量、整型數(shù)據(jù)賦給單、雙精度變量時,數(shù)值不變,但以浮點數(shù)形式時,數(shù)值不變,但以浮點數(shù)形式存儲到變量中存儲到變量中注意:注意:與數(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è)計程序設(shè)計353.9 3.9 賦值運算符和賦值表達式賦值運算符和賦值表達式二、賦值結(jié)果與類型轉(zhuǎn)換二、賦值結(jié)果與類型轉(zhuǎn)換3 3、長度相同的有符號與無符號整型數(shù)間,原樣賦值、長度相同的有符號與無符號整型數(shù)間,原樣賦值 (但數(shù)值有時會有變化)(但數(shù)值有時會有變化)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è)計程序設(shè)計363.9 3.9 賦值運算符和賦值表達式賦值運算符和賦值表達式二、賦值結(jié)果與類型轉(zhuǎn)換二、賦值結(jié)果與類型轉(zhuǎn)換4 4、charchar、intint、longlong等類型的轉(zhuǎn)換等類型的轉(zhuǎn)換 (1)(1)“短短”數(shù)據(jù)賦給數(shù)據(jù)賦給“長長”變量變量 符號擴展:若最高位為符號
42、擴展:若最高位為1(1(負數(shù)負數(shù)) ),則變量高字節(jié)位,則變量高字節(jié)位補補1 1;反之,補;反之,補0 0。 4343號字符號字符+ + 5353 i i 254 254號字符號字符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è)計程序設(shè)計373.9 3.9 賦值運算符和賦值表達式賦值運算符和賦值表達式二、賦值結(jié)果與類型轉(zhuǎn)換二、賦值結(jié)果與類型轉(zhuǎn)換4 4、charchar、intint、longlong等類型的轉(zhuǎn)換等類型的轉(zhuǎn)換 (2)(2)“長長”數(shù)據(jù)賦給數(shù)據(jù)賦給“短短”變量變量 只將數(shù)據(jù)的低字節(jié)原封不動只將數(shù)據(jù)的低字節(jié)原封不動送到變量中送到變量中( (數(shù)據(jù)有可能有差錯數(shù)據(jù)有可能有差錯) ) 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è)計程序設(shè)計383.9 3.9 賦值運算符和賦值表達式賦值運算符和賦值表達式三、復(fù)合賦值運算符三、復(fù)合賦
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB36-T1761-2023-草珊瑚實生苗質(zhì)量分級標準-江西省
- DB36-T1681-2022-贛雜棉0906直播栽培技術(shù)規(guī)程-江西省
- DB36-T1854-2023-首席質(zhì)量官評價規(guī)范-江西省
- 第20課-明清時期社會經(jīng)濟的發(fā)展-課件-2024-2025學(xué)年統(tǒng)編版七年級歷史下冊
- 護理操作50項標準流程
- 多動癥患兒護理要點
- 計算機二級Msoffice考試的應(yīng)試技巧試題及答案
- 2025年公務(wù)員考試行測數(shù)學(xué)運算實戰(zhàn)模擬與解題技巧卷
- 廣東省惠州市惠陽區(qū)2023-2024學(xué)年九年級上學(xué)期期末考試化學(xué)試卷
- 2025年社區(qū)服務(wù)管理師考試模擬試題:社區(qū)服務(wù)規(guī)劃與實施案例分析集錦
- 杭州市2025年中考作文《勇敢自信》寫作策略與范文
- 起重機司機(限橋式)Q2特種設(shè)備作業(yè)人員資格鑒定參考試題(附答案)
- 熱點主題作文寫作指導(dǎo):古樸與時尚(審題指導(dǎo)與例文)
- 河南省洛陽市2025屆九年級下學(xué)期中考一模英語試卷(原卷)
- 2025年入團考試各科目試題及答案分析
- 電網(wǎng)工程設(shè)備材料信息參考價2025年第一季度
- 成都設(shè)計咨詢集團有限公司2025年社會公開招聘(19人)筆試參考題庫附帶答案詳解
- 2025年上海市金融穩(wěn)定發(fā)展研究中心招聘考試模擬測試
- 江蘇南京茉莉環(huán)境投資有限公司招聘筆試題庫2025
- 吸氧并發(fā)癥預(yù)防及處理
- 針刺傷預(yù)防與處理(中華護理學(xué)會團體標準)
評論
0/150
提交評論