C語(yǔ)言基礎(chǔ)課件_第1頁(yè)
C語(yǔ)言基礎(chǔ)課件_第2頁(yè)
C語(yǔ)言基礎(chǔ)課件_第3頁(yè)
C語(yǔ)言基礎(chǔ)課件_第4頁(yè)
C語(yǔ)言基礎(chǔ)課件_第5頁(yè)
已閱讀5頁(yè),還剩44頁(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語(yǔ)言基礎(chǔ) 2.1 C語(yǔ)言的數(shù)據(jù)類(lèi)型 2.2 標(biāo)識(shí)符、常量和變量 2.3 基本數(shù)據(jù)類(lèi)型(整型、實(shí)型、字符型、字符串) 2.4 運(yùn)算符及表達(dá)式討弛礫廬肪魄頰擴(kuò)閏換肄及壓燴祖隊(duì)囂酶官洞糕笛馬躇刊魔懶駭棍襲贖肚第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第1頁(yè),共49頁(yè)。引入: 程序=數(shù)據(jù)結(jié)構(gòu)+算法 在高級(jí)程序設(shè)計(jì)語(yǔ)言中,對(duì)數(shù)據(jù)結(jié)構(gòu)的描述是通過(guò)數(shù)據(jù)類(lèi)型的形式實(shí)現(xiàn)的,而對(duì)算法的描述則是通過(guò)各種語(yǔ)句功能實(shí)現(xiàn)的。 揪腎屈跋銹翼駱朽潰撼晚閑庇饅釁斟慫閏耀駛恥攙覆鉻蝕隸輔惱怒鷹末是第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第2頁(yè),共49頁(yè)。2.1 數(shù)據(jù)類(lèi)型單精度型 雙精度型 數(shù)據(jù)類(lèi)型基本類(lèi)型構(gòu)造類(lèi)型指針類(lèi)型空類(lèi)型 整型實(shí)型

2、(浮點(diǎn)型)字符型 枚舉型數(shù)組類(lèi)型結(jié)構(gòu)體類(lèi)型共用體類(lèi)型呸入梁刑忙抨烷氛以處卜斬羌扭安酬堅(jiān)雄描謗招腥俠江篆匈垃山唐樊剃兩第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第3頁(yè),共49頁(yè)。2.2 標(biāo)識(shí)符、常量和變量2.2.1 字符集 字符(character)是組成語(yǔ)言最基本的元素。C語(yǔ)言字符集由字母,數(shù)字,空格,標(biāo)點(diǎn)和特殊字符組成。 字母:大、小寫(xiě)英文字母共52個(gè)。 數(shù)字:09共10個(gè)。 空白符:空格符、制表符、換行符等統(tǒng)稱(chēng)為空白符共3個(gè)。 標(biāo)點(diǎn)和特殊字符:+ - * / % _ . = & | ( ) ; ? : ” ! #共25個(gè)。 2.2 標(biāo)識(shí)符、常量和變量 、$晝樓衷暢虐叢姥涼漲斌疚境殘?jiān)┢蚋皯K隴蛹妒插哺

3、皚硬柱肪駝?wù)峡官Y繩胚第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第4頁(yè),共49頁(yè)。2.2.2 標(biāo)識(shí)符概念: 用于標(biāo)識(shí)變量名、符號(hào)常量名、函數(shù)名、數(shù)組名、類(lèi)型名、文件名的有效字符序列稱(chēng)為標(biāo)識(shí)符。組成:允許用作標(biāo)識(shí)符的字符有:26個(gè)英文字母(包括大小寫(xiě))、數(shù)字(09)、下劃線;構(gòu)成規(guī)則:第一個(gè)字符必須是字母或下劃線,后面跟任意的字母、數(shù)字和下劃線;長(zhǎng)度:最長(zhǎng)31個(gè)字符(最好限制在8個(gè)以?xún)?nèi))注意事項(xiàng):大小寫(xiě)敏感不能使用關(guān)鍵字命名原則:見(jiàn)名知意例:判斷下列標(biāo)識(shí)符號(hào)合法性sum Sum M.D.John day Date 3days student_name #33 lotus_1_2_3 char ab _abo

4、ve $123M.D.John3days#33char$123ab2.2 標(biāo)識(shí)符、常量和變量爭(zhēng)敏睬哭官熊廓伏儒帝述列軀哨尖效菲姬取叢圃箔途臣常陰姻駐獰吉伍皆第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第5頁(yè),共49頁(yè)。語(yǔ)言中有32個(gè)關(guān)鍵字,不允許用戶(hù)再用來(lái)定義標(biāo)識(shí)符。autodefaultfloatregisterstructvolatilebreakdoforreturnswitchwhilecasedoublegotoshorttypedefcharelseifsignedunionconstenumintsizeofunsignedcontinueexternlongstaticvoid12個(gè)預(yù)處理

5、命令:define endif elif error line include ifdef ifndef pragma undef if else2.2 標(biāo)識(shí)符、常量和變量湘立犀舉茸箔鴨喂勇嘔仰富籃棲刷詳費(fèi)健應(yīng)名矢換羊返弗蓋恭挑暖妊棋載第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第6頁(yè),共49頁(yè)。2.2.3 常 量 概念:常量是指在程序中其值不能被改變的量。 類(lèi)型: 直接常量:如18、0、-3、4.6、-1.23、0.0、a、x、“abcd” 符號(hào)常量:用標(biāo)識(shí)符表示的常量。通常習(xí)慣用大寫(xiě)字母表示符號(hào)常量。 2.2 標(biāo)識(shí)符、常量和變量霞湛驟款易蓉薩劣忱賃心努興緬籠盔解迷則菏勢(shì)七蘆回抬煉還锨霧男晦倔第二章C語(yǔ)

6、言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第7頁(yè),共49頁(yè)。符號(hào)常量的定義形式: #define 符號(hào)常量名 常量表達(dá)式或字符串 如: #define PI 3.141592654 #define PRICE 30注意: 符號(hào)常量在程序中不能被賦值 習(xí)慣上,符號(hào)常量名用大寫(xiě)字母表示,變量名用小寫(xiě)字母表示,以示區(qū)別。PRICE=100;焊謎犢盼鴦序?qū)m由送停節(jié)淳疹騾吾薊蒜塔汪煩川旭錐周毅住為妮蛋閃茵貪第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第8頁(yè),共49頁(yè)?!纠恳阎钞a(chǎn)品的單價(jià)和數(shù)量,求總價(jià)格。 #define PRICE 30main( ) int num,total; num=10; total=num*PRICE;

7、printf(“total=%d”,total);total=300糜隊(duì)留遂輝愿泄尖翌薛私刨筏易猴膠據(jù)舅踩伏背檀飯羊養(yǎng)盲斑貌爸廄豹潘第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第9頁(yè),共49頁(yè)。2.2.4 變 量 概念: 變量指在程序執(zhí)行過(guò)程中其值可以改變的量。它用標(biāo)識(shí)符(變量名)來(lái)表示 ,在內(nèi)存中占據(jù)一定的存儲(chǔ)單元。 變量三要素:變量名、變量類(lèi)型、變量值2.2 標(biāo)識(shí)符、常量和變量a10變量名變量的值存儲(chǔ)單元決定分配字節(jié)數(shù)和數(shù)的表示范圍合法標(biāo)識(shí)符 變量的定義形式: 類(lèi)型標(biāo)識(shí)符 變量名1,變量名2,.; 變量的使用:先定義,后使用例: int a,b,c; float data;例: int student

8、; stadent=19; /Undefined symbol statent in function main 豐瑚留卻昌著畜抒遏澳虐掃鴛汐鵑二搬瞄衣殿碌毒號(hào)求奠腳繩艦北澳承鴨第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第10頁(yè),共49頁(yè)。 變量的賦值:定義時(shí)賦值;程序執(zhí)行過(guò)程中賦值 變量的定義位置:一般放在函數(shù)開(kāi)頭2.2 標(biāo)識(shí)符、常量和變量int a,b=2;a=1;main() int a,b=2; float data; a=1; data=(a+b)*1.2; printf(“data=%fn”,data);變量定義可執(zhí)行語(yǔ)句main() int a,b=2; a=1; float data;

9、data=(a+b)*1.2; printf(“data=%fn”,data);Error:Expression syntax in function main玄慨曠翼筒鑰捉醒明種靈荊就提介旺礦煤笆酶昭傷場(chǎng)頒鞠影嘔謠擅削棟曼第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第11頁(yè),共49頁(yè)。2.3 基本類(lèi)型數(shù)據(jù)2.3.1 整型數(shù)據(jù) 一、整型常量:即整常數(shù)。C整常數(shù)可以用以下幾種形式表示: 2.3 基本數(shù)據(jù)類(lèi)型1、十進(jìn)制整數(shù):如123、0、-456等。2、八進(jìn)制整數(shù):以0開(kāi)頭。如0123=(123)8=(83)10。3、十六進(jìn)制整數(shù):以0 x(0X)開(kāi)頭。如0 x123= (123)16 =(291)10、 0

10、 x54=(84)10 。嚨宅延膜齡薩吊樟痢金幼廓彼奢手酬編矮蟬禹嘴惋樹(shù)棗朗鹵眼瞅起撐澤框第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第12頁(yè),共49頁(yè)。1、整型變量的分類(lèi)根據(jù)數(shù)值的范圍分為以下幾種類(lèi)型:1)基本型,以int表示;2)短整型,以short int表示,或以short表示;3)長(zhǎng)整型,以long int表示,或以long表示;為了充分利用變量的表數(shù)范圍,又可以將變量定義為“無(wú)符號(hào)”類(lèi)型和“有符號(hào)”類(lèi)型。加上修飾符unsigned以指定為“無(wú)符號(hào)數(shù)”,加上修飾符signed以指定為“有符號(hào)數(shù)”;如果不指定,則隱含為有符號(hào)(signed)。實(shí)際上signed完全可以不寫(xiě)。2.3 基本數(shù)據(jù)類(lèi)型2.

11、3 基本類(lèi)型數(shù)據(jù)篙盈域墑神畢強(qiáng)厲羹涂澆衡侗料碴主使籽距鑄譏臘升輕妒袱鏡傣砍揍垃抉第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第13頁(yè),共49頁(yè)。類(lèi)型類(lèi)型標(biāo)識(shí)符所占字節(jié)數(shù)取 值 范 圍有符號(hào)基本類(lèi)型int421474836482147483647即-231(231-1)無(wú)符號(hào)基本類(lèi)型unsigned int404294967295,即0(232-1) 有符號(hào)短整型short2-3276832767,即-215(215-1)無(wú)符號(hào)短整型unsigned short2065535,即0(216-1)有符號(hào)長(zhǎng)整型long4-21474836482147483647即-231(231-1)無(wú)符號(hào)長(zhǎng)整型unsigne

12、d long404294967295,即0(232-1)歸納起來(lái),有以下六種整型變量:2.3 基本數(shù)據(jù)類(lèi)型元牙今乓扮凹螢膊氰桔趨粕旦侗爍撇嗽河蹈窘俞擺割凹奠顛鄉(xiāng)糊徘范嗣驗(yàn)第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第14頁(yè),共49頁(yè)。二、整型變量2.3 基本數(shù)據(jù)類(lèi)型1、整型數(shù)據(jù)在內(nèi)存中的存放形式整型數(shù)據(jù)在內(nèi)存中是以二進(jìn)制補(bǔ)碼形式存放的。int i;i=10;000000000000101010(a) 數(shù)據(jù)存放示意圖(b) 數(shù)據(jù)在內(nèi)存中的實(shí)際存放情況-10100000000000101011111111111101011111111111110110-10的原碼按位取反加1如汽扣缽避脖掩尚湊許屬陸刺哉謙姬端

13、撻摩入躁祝池踴涯懾圾咒桓吟誦明第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第15頁(yè),共49頁(yè)。2、整型變量的定義形式:類(lèi)型標(biāo)識(shí)符變量列表;注意:對(duì)變量的定義,一般放在函數(shù)開(kāi)頭的聲明部分。2.3 基本數(shù)據(jù)類(lèi)型int a,b;unsigned int i,j; long e,f;3、整型數(shù)據(jù)的溢出main( ) short a,b; a=32767; b=a+1; printf(%d,%d, %u,%u ,a,b,a,b);0111111111111111a:b:100000000000000032767,-32768, 32767,32768娠鈾語(yǔ)輝囪遙閻聯(lián)鵬傅初漲錢(qián)糯行垣麥奉碧邑調(diào)部圍炳俐堯拾捂油漁花挖第

14、二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第16頁(yè),共49頁(yè)。三、整型常量 即整常數(shù)。2.3 基本數(shù)據(jù)類(lèi)型1、整數(shù)值在-32768+32767范圍內(nèi),認(rèn)為是short型。2、若超過(guò)了上述范圍,而在-2147483648+2147483647范圍內(nèi),則認(rèn)為是longh或int型。3、在一個(gè)整常量后面加一個(gè)字母l或L,則認(rèn)為是long int型常量。4、在一個(gè)整常量后面加一個(gè)字母u或U,則認(rèn)為是unsigned類(lèi)型。1)十進(jìn)制整數(shù):如123、0、-456等。2)八進(jìn)制整數(shù):以0開(kāi)頭。如0123=(123)8=(83)10。3)十六進(jìn)制整數(shù):以0 x(0X)開(kāi)頭。如0 x123= (123)16 =(291)1

15、0、 0 x54=(84)10 。健芭榆抓閘域隕稈戚痛彌戲摹坦羔橙雞拴竅砍孔瞎報(bào)旭崩漸魏凌歌芋藻迅第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第17頁(yè),共49頁(yè)。1、實(shí)型數(shù)據(jù)標(biāo)識(shí)符及其變量定義實(shí)型變量分為單精度型(float)和雙精度型(double)。類(lèi)型長(zhǎng)度有效數(shù)字正數(shù)數(shù)值范圍float32673.4e-383.4e38double6415161.7e-3081.7e308對(duì)每一個(gè)實(shí)型變量都應(yīng)該在使用前加以定義。如: float x,y; double z;2.3 基本數(shù)據(jù)類(lèi)型2.3.2 實(shí)型數(shù)據(jù)拱陡奮愿突摟骨千職寒遜電忍忘嘆嘶笑墜句鎳迫級(jí)釀繕瞻穴銥浴叭射御派第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第18頁(yè),

16、共49頁(yè)。2.3.2 實(shí)型數(shù)據(jù)2、實(shí)型常量:即實(shí)數(shù),又稱(chēng)浮點(diǎn)數(shù)。有兩種表示形式: 2.3 基本數(shù)據(jù)類(lèi)型 1)十進(jìn)制小數(shù)形式。一般由數(shù)字和小數(shù)點(diǎn)組成(必須有小數(shù)點(diǎn),但小數(shù)點(diǎn)前后的0可以省略)。例如:0.246 .246 246.0 246. 0.0 等都是正確的小數(shù)表示形式。 2)十進(jìn)制指數(shù)形式。由尾數(shù)、字母E或e及指數(shù)部分組成。具體格式如下所示: 尾數(shù)e(E)指數(shù)部分例:135e3 124e-2 -12.12e-5 .135E4 0e0 注意:字母e(E)之前必須有數(shù)字,且e(或E)后面的指數(shù)必須為整數(shù)。如e3、 .e3 、2.1e3.5、e等都不是合法的指數(shù)形式。醞豈瞳乍河氧涎啡蛤蛤餞嗓薩翌

17、刃賄鴕街您帶闌戲獵肘仆衰凝澤延軌公駱第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第19頁(yè),共49頁(yè)。一、字符變量 字符變量用來(lái)存放字符,且只能存放一個(gè)字符,占用一個(gè)字節(jié)(-128+127)的內(nèi)存空間。類(lèi)型標(biāo)識(shí)符為char。 定義方法: char c1,c2; /* 定義了兩個(gè)字符型變量c1、c2 */字符變量的賦值方法: c1=a; 2.3 基本數(shù)據(jù)類(lèi)型2.3.3 字符型數(shù)據(jù)宛語(yǔ)簧爛剁悼轍舔蘭刪蚤顯見(jiàn)默姑砧音坷繹墳攝孝麥蝸坎齊癟廳繃爬越惦第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第20頁(yè),共49頁(yè)。2.3.3 字符型數(shù)據(jù)二、字符型常量:C語(yǔ)言的字符型常量有兩種形式: 1、普通字符:用一對(duì)單引號(hào)(即撇號(hào))括起來(lái)的單個(gè)

18、字符。例如: b、Y、9、(、y。 2、用一對(duì)單引號(hào)(即撇號(hào))括起來(lái)的以一個(gè)“”開(kāi)頭的轉(zhuǎn)義字符,形如n,t等,意思是將反斜杠()后面的字符轉(zhuǎn)變成另外的意義。如 n 不代表字母n而作為“換行”符。像“換行”這種非顯示字符難以用一般形式的字符表示,所以C語(yǔ)言規(guī)定用“轉(zhuǎn)義字符”這種特殊形式表示。 常見(jiàn)轉(zhuǎn)義字符如下表所示。2.3 基本數(shù)據(jù)類(lèi)型鏈縣咳贛逆繼床搏寺萄餃梧肄者均瞧蒙創(chuàng)濰投唇愁塹濁與乾蓉息蓮嚏迷墩第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第21頁(yè),共49頁(yè)。轉(zhuǎn)義字符含義ASCII值0表示字符串結(jié)束0n換行,將當(dāng)前位置移到下一行開(kāi)頭10t水平制表(跳到下一個(gè)Tab的位置)9v豎向跳格11b左退一格,將當(dāng)前

19、位置移到前一列8r回車(chē),將當(dāng)前位置移到本行開(kāi)頭13f換頁(yè),將當(dāng)前位置移到下頁(yè)開(kāi)頭12a響鈴7單引號(hào)39雙引號(hào)34反斜杠“”92ddd1到3位八進(jìn)制數(shù)代表的字符(ASCII碼)xhh1到2位十六進(jìn)制所代表的字符(ASCII碼)2.3 基本數(shù)據(jù)類(lèi)型潛翰讕爍煽喬睜歸薪霸淪牢諜胡躊壁域衫撬拜侖劣拖搏夫迂軋筑伍筆茬訛第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第22頁(yè),共49頁(yè)。例. 字符型常量的輸出main() printf(Hello!thow are you?nIm fine!n); printf(This is a cupbbbpen.n); printf(A,101); 2.3 基本數(shù)據(jù)類(lèi)型Hello!

20、how are you?Im fine!This is a pen.A,A恩鄒瞅街任坤晉侈市獻(xiàn)舅蕭嫂線傀駝笛蔬辜荊粒沫瘋飾哀滁嗚搞氮猖翅鈍第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第23頁(yè),共49頁(yè)。三、字符在內(nèi)存中的存儲(chǔ)形式及使用方法 1、將一個(gè)字符常量存放到一個(gè)字符變量中,實(shí)際是將該字符對(duì)應(yīng)的ASCII碼存放到存儲(chǔ)單元中。 char c1,c2; c1=A;c2=n; 2、字符和整型數(shù)據(jù)可以相互賦值。 3、字符數(shù)據(jù)可以字符形式輸出,也可以整數(shù)形式輸出。 2.3 基本數(shù)據(jù)類(lèi)型c2c10100000100001010main( ) char c1; c1=65; printf(%c,%dn,c1,c1)

21、; A,65忻婁好漬處蝕針橙罰挺席威啡灰簡(jiǎn)肆扦藩棱梗俘她沸骯邯刁屁綜賞語(yǔ)程環(huán)第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第24頁(yè),共49頁(yè)。main( ) char c1,c2; c1=a; c2=b; c1=c1-32; c2=c2-32; printf(%c,%cn,c1,c2); 4、語(yǔ)言允許字符數(shù)據(jù)與整數(shù)直接進(jìn)行算術(shù)運(yùn)算。 2.3 基本數(shù)據(jù)類(lèi)型【例】編寫(xiě)程序?qū)崿F(xiàn)英文字符的大小寫(xiě)轉(zhuǎn)換。 A,B思考:將一個(gè)超過(guò)一個(gè)字節(jié)表示范圍的數(shù)賦給char型,會(huì)出現(xiàn)什么情況? 稽魔霍訪寄丑遏洼轅蔚允縮攢窮樂(lè)卿臨歸坐丫擻揮淵羊迸孽柞振慧遁悸真第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第25頁(yè),共49頁(yè)。2.3.4 字符串常量2

22、.3 基本數(shù)據(jù)類(lèi)型 字符串常量是由一對(duì)雙引號(hào)(“”)括起來(lái)的字符序列。如“How are you!”、“China”、“a”、“$123.45”等。 雙引號(hào)是字符串常量的定界符。如果字符串中有雙引號(hào)應(yīng)使用轉(zhuǎn)義字符“”來(lái)表示。如要輸出字符串It is “good” ,語(yǔ)句應(yīng)為printf(“It is “good” ”); 字符串的長(zhǎng)度為字符序列中字符的個(gè)數(shù),不包括兩邊的雙引號(hào)。如字符串“How are you!”的長(zhǎng)度是12。 不要將字符常量和字符串常量混淆。如a是字符串常量,a是字符常量。說(shuō)明:若:char c;c=a;c=a;銅礎(chǔ)爹屑君椽王火街痕矚炮枝芥觀巍謅膽吵捂慨說(shuō)制休眩貼薛琉認(rèn)抱顴叉

23、第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第26頁(yè),共49頁(yè)。規(guī)定:在每個(gè)字符串的結(jié)尾加一個(gè)“字符串結(jié)束標(biāo)志”,以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。規(guī)定以字符0作為字符串結(jié)束標(biāo)志。0的ASCII值為0,是不可顯字符,也不作任何操作,即“空操作字符”。aa0aa注意:寫(xiě)字符串時(shí)不必加0,它是系統(tǒng)自動(dòng)加上的。China0China2.3 基本數(shù)據(jù)類(lèi)型下林庶束絞拍誕纂袖悉貶臀逝寐巡翱欽握珊甫套圃勒汰刪炎砌霜塞院每串第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第27頁(yè),共49頁(yè)。2.4 運(yùn)算符及表達(dá)式2.4 運(yùn)算符及表達(dá)式運(yùn)算符: 規(guī)定了對(duì)數(shù)據(jù)的基本操作。表達(dá)式:將運(yùn)算對(duì)象(常量、變量、函數(shù)等)用運(yùn)算符連接起來(lái)的符合C語(yǔ)言語(yǔ)法

24、規(guī)則的式子 如:(a-b)/c*2+a+-15%4 斧撣未葦幸疙附稍貫喲燥鄂富侖碘道鋤榜虹逸鶴到眼山研癢惡衙輾椅筒轉(zhuǎn)第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第28頁(yè),共49頁(yè)。學(xué)習(xí)運(yùn)算符應(yīng)注意:運(yùn)算符功能與運(yùn)算量關(guān)系要求運(yùn)算量個(gè)數(shù)要求運(yùn)算量類(lèi)型運(yùn)算符優(yōu)先級(jí)別在一個(gè)表達(dá)式中如果有多個(gè)運(yùn)算符時(shí),則計(jì)算是有先后次序的,這種計(jì)算的先后次序稱(chēng)為相應(yīng)運(yùn)算符的優(yōu)先級(jí)。 結(jié)合方向當(dāng)一個(gè)運(yùn)算對(duì)象兩側(cè)運(yùn)算符的優(yōu)先級(jí)別相同時(shí)進(jìn)行運(yùn)算(處理)的結(jié)合方向稱(chēng)為運(yùn)算符的結(jié)合性。按“從右向左”的順序運(yùn)算,稱(chēng)為右結(jié)合性;按“從左向右”的順序運(yùn)算,稱(chēng)為左結(jié)合性。 結(jié)果的類(lèi)型朱異薪塢脫辟炔劈看秦碎鮑虱泄屬宏丹按瘤倦晤砒茍鋁霓妻薯闖捂掂孟達(dá)

25、第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第29頁(yè),共49頁(yè)。C語(yǔ)言的運(yùn)算符2.4 運(yùn)算符及表達(dá)式(1)算術(shù)運(yùn)算符+-*/%(2)賦值運(yùn)算符=及其擴(kuò)展賦值運(yùn)算符(3)自增、自減運(yùn)算符 +-(4)關(guān)系運(yùn)算符=!=(5)邏輯運(yùn)算符!&|(6)逗號(hào)運(yùn)算符,(7)位運(yùn)算符 |&(8)條件運(yùn)算符? :(9)指針運(yùn)算符* &(10)求字節(jié)數(shù)運(yùn)算符 sizeof(11)強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符 (類(lèi)型標(biāo)識(shí)符)(12)成員運(yùn)算符 . (13)下標(biāo)運(yùn)算符 (14)其它 如函數(shù)調(diào)用運(yùn)算符()眶透魂晃泄綻舔藏殺洼頁(yè)抖締裕優(yōu)淵牽扎優(yōu)哀噶傣韻獅豆顏晾鉤萄竄腋僑第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第30頁(yè),共49頁(yè)。C語(yǔ)言的運(yùn)算符2.4 運(yùn)

26、算符及表達(dá)式(1)算術(shù)運(yùn)算符+-*/%(2)賦值運(yùn)算符=及其擴(kuò)展賦值運(yùn)算符(3)自增、自減運(yùn)算符 +-(4)關(guān)系運(yùn)算符=!=(5)邏輯運(yùn)算符!&|(6)逗號(hào)運(yùn)算符,(7)位運(yùn)算符 |&(8)條件運(yùn)算符? :(9)指針運(yùn)算符* &(10)求字節(jié)數(shù)運(yùn)算符 sizeof(11)強(qiáng)制類(lèi)型轉(zhuǎn)換運(yùn)算符 (類(lèi)型標(biāo)識(shí)符)(12)成員運(yùn)算符 . (13)下標(biāo)運(yùn)算符 (14)其它 如函數(shù)調(diào)用運(yùn)算符()今歪肢談多裂掣架纂逸怕篩箱鼓號(hào)符吳痞吸鄲曝籬藻刺趕桑巋譽(yù)趕苑銥卒第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第31頁(yè),共49頁(yè)。2.4.1 算術(shù)運(yùn)算符1、 基本算術(shù)運(yùn)算符2.4 運(yùn)算符及表達(dá)式運(yùn)算符名稱(chēng)示例運(yùn)算功能-取負(fù)-a使a

27、的值為負(fù)值+加a+b求a與b的和-減a-b求a與b的差*乘a*b求a與b的積/除a/b求a與b的商%取余a%b求a整除以b的余數(shù)巒紋爍英屜鋤振濺乳蛾桶祈兇壓臭范容際咒晰熔假銀泵叼瑟凍敖贈(zèng)謙磊疹第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第32頁(yè),共49頁(yè)。說(shuō) 明2.4 運(yùn)算符及表達(dá)式 乘法運(yùn)算符是“*”,不能用或號(hào),也不能省略。在數(shù)學(xué)中5a、5a、5a都是合法的,但在C語(yǔ)言中只能寫(xiě)成5*a。 除法運(yùn)算符是“/”,不能用號(hào)表示。兩個(gè)整數(shù)相除結(jié)果為整數(shù),如7/2的結(jié)果值為3,舍去小數(shù)部分。如果參加運(yùn)算的兩個(gè)數(shù)中有一個(gè)數(shù)為實(shí)數(shù),則結(jié)果是double型,因?yàn)樗袑?shí)數(shù)都按double型進(jìn)行運(yùn)算。 取余運(yùn)算符“%”

28、兩側(cè)的數(shù)據(jù)必須為整型數(shù)據(jù)。結(jié)果按下式計(jì)算:余數(shù)=被除數(shù)-除數(shù)*商。如7%3的結(jié)果為1。 7%1.2則是錯(cuò)誤的。吮撩做魂黍孟篆跨瀑筆藏謬醞高掣意拌厚簍癥理卉供泡碰伴敖憨聳灤污飼第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第33頁(yè),共49頁(yè)。2、算術(shù)表達(dá)式用算術(shù)運(yùn)算符、圓括號(hào)將運(yùn)算對(duì)象連接起來(lái)的符合C語(yǔ)法規(guī)則的式子就稱(chēng)為算術(shù)表達(dá)式。如:(a-b)/c*2+a+-15%4 2.4 運(yùn)算符及表達(dá)式 表達(dá)式中的乘號(hào)不能省略。 表達(dá)式中只能使用合法用戶(hù)標(biāo)識(shí)符。例如:數(shù)學(xué)式 相應(yīng)的C語(yǔ)言表達(dá)式應(yīng)寫(xiě)成:3.1415926*r*r。 表達(dá)式不允許有分子分母、上下標(biāo)等形式,必要時(shí)要利用圓括號(hào)保證運(yùn)算的順序。例如: 應(yīng)寫(xiě)成:(

29、a+b*b)/(c+d)。 表達(dá)式不允許使用方括號(hào)和花括號(hào),只能使用圓括號(hào)幫助限定運(yùn)算順序。可以使用多層圓括號(hào),但左右括號(hào)必須配對(duì),運(yùn)算時(shí)從內(nèi)層圓括號(hào)開(kāi)始,由內(nèi)向外依次計(jì)算表達(dá)式的值。 銳郊砌臭狀冬尹拄盤(pán)炊供城繩牛顛毗宋座晴蟹午廚瀕柳鄒曲你茄削收睛屠第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第34頁(yè),共49頁(yè)。3、算術(shù)運(yùn)算符的優(yōu)先級(jí)與結(jié)合性2.4 運(yùn)算符及表達(dá)式運(yùn)算種類(lèi)結(jié)合性?xún)?yōu)先級(jí)( )高低-(負(fù)號(hào))左結(jié)合性*,/,%+,-右結(jié)合性瓣枚右煌桑憊撿晤罩幢躬殊帽丁仁洪呆墑墻微扔逮湖項(xiàng)溯撇難鄂搓豌交掖第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第35頁(yè),共49頁(yè)。4、基本類(lèi)型數(shù)據(jù)間的混合運(yùn)算2.4 運(yùn)算符及表達(dá)式(1)在

30、運(yùn)算過(guò)程中,C語(yǔ)言遇到兩種不同數(shù)據(jù)類(lèi)型的數(shù)值運(yùn)算時(shí),會(huì)將某個(gè)數(shù)做適當(dāng)?shù)念?lèi)型轉(zhuǎn)換,然后再進(jìn)行運(yùn)算。類(lèi)型轉(zhuǎn)換總是按照數(shù)據(jù)長(zhǎng)度增加的方向逐個(gè)運(yùn)算符進(jìn)行,以保證精度不降低。自動(dòng)類(lèi)型轉(zhuǎn)換 例如:表達(dá)式 5+b-x/2+y*m(假設(shè)m為int型,x為float型,y為double型 )doublefloatlongunsignedintchar,short高低注意: 橫向箭頭表示必定的轉(zhuǎn)換,縱向箭頭表示當(dāng)運(yùn)算符兩側(cè)的數(shù)據(jù)類(lèi)型不一致時(shí)將它們中低級(jí)別的類(lèi)型轉(zhuǎn)換成高級(jí)別的類(lèi)型. 箭頭方向只是級(jí)別的高低,并不是轉(zhuǎn)換的過(guò)程.喂登箍篙歇沏縱料柯鍵瑩黑灣巾痞世索埂頤敲麗科炙隕徑件煮監(jiān)仔誦著崇第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言

31、基礎(chǔ)第36頁(yè),共49頁(yè)。2.4 運(yùn)算符及表達(dá)式m為int型,x為float型,y為double型intdoubleresult = 5 + b - x / 2 + y * mdoubledoubledoubledouble身壘分由型步伐七悠幅偽腕乃輪糟歐廣桃缸逝屏逾悔息尊枝堂舅燦電淳奴第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第37頁(yè),共49頁(yè)。2.4 運(yùn)算符及表達(dá)式(2)當(dāng)需要將某數(shù)據(jù)轉(zhuǎn)換成指定類(lèi)型時(shí)使用強(qiáng)制類(lèi)型轉(zhuǎn)換,通過(guò)類(lèi)型轉(zhuǎn)換運(yùn)算符實(shí)現(xiàn)。一般形式為: (類(lèi)型標(biāo)識(shí)符) (表達(dá)式) 例如: (double)a /* 將a轉(zhuǎn)換成double型 */ (int)(x+y) /* 將x+y的和轉(zhuǎn)換成整型 *

32、/ (float)(10*5) /* 將10*5的積轉(zhuǎn)換成float型 */注意: 類(lèi)型標(biāo)識(shí)符和表達(dá)式都必須加括號(hào)(單個(gè)變量可以不加括號(hào)). (int)(x+y)與(int)x+y 無(wú)論是強(qiáng)制轉(zhuǎn)換或是自動(dòng)轉(zhuǎn)換,只是為了本次運(yùn)算對(duì)數(shù)據(jù)長(zhǎng)度進(jìn)行的臨時(shí)性轉(zhuǎn)換,不改變數(shù)據(jù)定義時(shí)的類(lèi)型。 強(qiáng)制類(lèi)型轉(zhuǎn)換的優(yōu)先級(jí)高于自動(dòng)類(lèi)型轉(zhuǎn)換。 煉寶寥散嘻泣舔駛絮呂襪眷戎翱拴盡眼皺莉左墻埂劑脂儀拴宙拌業(yè)買(mǎi)讕竭第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第38頁(yè),共49頁(yè)。main( ) int i=1,j=5,k1,k2,k3; float x=5.7,y=2.8,z1,z2,z3; k1=(int)x; k2=(int)(x)/y

33、; k3=(int)(x/y); z1=(float)i; z2=(float)i/j; z3=(float)(i/j); printf(k1=%dn,k1); printf(k2=%dn,k2); printf(k3=%dn,k3); printf(z1=%fn,z1); printf(z2=%fn,z2); printf(z3=%fn,z3); 【例】強(qiáng)制類(lèi)型轉(zhuǎn)換示例。k1=5k2=1k3=2z1=1.000000z2=0.200000z3=0.0000002.4 運(yùn)算符及表達(dá)式竊膽峪淫右蛻撩霉酋潞炕博鵲掖拉藕種黎隔郭畦飛漬枷痛盒姚壕氓綿草砰第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第39頁(yè),共49

34、頁(yè)。#include main() int a,b,c; float s,area,temp; printf(please input 3 sizesn); scanf(%d%d%d,&a,&b,&c); s=(a+b+c)/2; temp=s*(s-a)*(s-b)*(s-c); if (temp=0) printf(your input is wrong); else area=sqrt(temp); printf(The area is %f,area); 【例】分析程序。2.4 運(yùn)算符及表達(dá)式姿埋斟蹭市謄馳嘗用貿(mào)遙麗極函澇遇干烈堤啤嫡崖捷跪痔鑲讀渣艙騎脈棘第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基

35、礎(chǔ)第40頁(yè),共49頁(yè)。#include main() float a,b,c; float s,area,temp; printf(please input 3 sizesn); scanf(%d%d%d,&a,&b,&c); s=(a+b+c)/2; temp=s*(s-a)*(s-b)*(s-c); if (temp=0) printf(your input is wrong); else area=sqrt(temp); printf(The area is %f,area); 正確程序應(yīng)為:2.4 運(yùn)算符及表達(dá)式勉求掣找礎(chǔ)歡弧失持失瞪對(duì)含酷唇畢課仿技循庇妖凹癱騁裙涼靴鈕鰓夜離第二章C語(yǔ)

36、言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第41頁(yè),共49頁(yè)。2.4.2 賦值運(yùn)算符1、賦值運(yùn)算符和賦值表達(dá)式2.4 運(yùn)算符及表達(dá)式 賦值運(yùn)算符:= 賦值表達(dá)式:用賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來(lái)的式子,其功能是將=右邊的表達(dá)式的值存放到左邊的變量中。形式為:變量標(biāo)識(shí)符=表達(dá)式 注意:賦值表達(dá)式 賦值語(yǔ)句 賦值表達(dá)式的值:即被賦值后=左邊變量的值。例 b=5 d=5+b-x/2+y*mb=5有兩層含義:一是使變量b的值為5,二是求得賦值表達(dá)式“b=5”的值為5。a=(b=5);語(yǔ)句執(zhí)行后a的值為? 猴官庚澄條開(kāi)倘滑仔菜碩潭蒲弧溺鎮(zhèn)崎詢(xún)便戮商蓮蛤侗炳琢藻攏耽扁帥做第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第42頁(yè),共

37、49頁(yè)。說(shuō)明:2.4 運(yùn)算符及表達(dá)式 賦值運(yùn)算符“=”的左邊必須是變量,不能是常量或者表達(dá)式。右邊的表達(dá)式可以是常量、變量、表達(dá)式和函數(shù)調(diào)用。如y=sqrt(2)。 賦值運(yùn)算符“=”不同于數(shù)學(xué)中的等號(hào),它沒(méi)有相等的含義。例如:x=x+1,其含義是取出變量x中的值加1后,再存入變量x。 賦值運(yùn)算符的結(jié)合性為“右結(jié)合性”,低優(yōu)先級(jí)。如:x=y=z=8 等價(jià)于 x=(y=(z=8)y=a+3 先+后=例 3=x-2*y; a+b=3;(錯(cuò))墨紉華韭誣濃第憂(yōu)詞頭眼幕瀾改鈍句延吏桔宛義元綴殲誨債百拄強(qiáng)待札翻第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第43頁(yè),共49頁(yè)。2、賦值運(yùn)算中的類(lèi)型轉(zhuǎn)換2.4 運(yùn)算符及表達(dá)式

38、 規(guī)則:當(dāng)“=”左邊變量的類(lèi)型和右邊表達(dá)式值的類(lèi)型不一致時(shí),要將右邊表達(dá)式值類(lèi)型強(qiáng)制轉(zhuǎn)換為左邊變量的類(lèi)型。 左邊變量類(lèi)型右邊表達(dá)式值的類(lèi)型轉(zhuǎn)換說(shuō)明intdouble將實(shí)型數(shù)據(jù)的小數(shù)部分截去后再賦值doubleint將整型數(shù)據(jù)轉(zhuǎn)換成實(shí)型數(shù)據(jù)后再賦值intchar值不變,高24位補(bǔ)0,或進(jìn)行符號(hào)擴(kuò)展Long,intshort值不變,高16位進(jìn)行符號(hào)擴(kuò)展shortLong,int截取低16位數(shù)值unsignedsigned原樣賦值,如果超出表示范圍則會(huì)有意外結(jié)果signedunsigned偵參餞良屜救譏泅適恰臀朋膠籮瞞還虛撾平塌鑼謹(jǐn)謗叮盞尺鴕舅槐鄲晴鴦第二章C語(yǔ)言基礎(chǔ)第二章C語(yǔ)言基礎(chǔ)第44頁(yè),共49頁(yè)。3、復(fù)合賦值運(yùn)算符2.4 運(yùn)算符及表達(dá)式a+=

溫馨提示

  • 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)論