基本數(shù)據(jù)類型、運算符及表達(dá)式_第1頁
基本數(shù)據(jù)類型、運算符及表達(dá)式_第2頁
基本數(shù)據(jù)類型、運算符及表達(dá)式_第3頁
基本數(shù)據(jù)類型、運算符及表達(dá)式_第4頁
基本數(shù)據(jù)類型、運算符及表達(dá)式_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章根本數(shù)據(jù)類型、運算符及表達(dá)式2.1C的根本數(shù)據(jù)類型數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void數(shù)值類型字符類型char枚舉類型enum整型浮點型單精度型float雙精度型double短整型short長整型long整型int數(shù)組類型結(jié)構(gòu)體類型struct共用體類型union2.2常量與變量常量程序運行的過程中,值不能被改變的量。含義:分類:字面常量和符號常量。其中,字面常量又分為:整型常量、實型常量、字符型常量〔字符常量和字符串常量〕字面常量—整型常量形式:〔1〕十進(jìn)制整型常量:由0至9的數(shù)字組成,沒有前綴,不能以0起頭?!?〕八進(jìn)制整型常量:以0〔數(shù)字0〕為前綴,其后由0到7的數(shù)字組成,沒有小數(shù)局部?!?〕十六進(jìn)制整型常量:以0x或0X為前綴,其后由0到9的數(shù)字和A到F〔大小寫均可〕字母組成,沒有小數(shù)局部整型常量中的長整型數(shù)據(jù)可用L〔或小寫字母l〕作后綴表示。十進(jìn)制、八進(jìn)制和十六進(jìn)制三種形式字面常量—實型常量構(gòu)成:由整數(shù)局部和小數(shù)局部組成的,只有十進(jìn)制方式。形式:(1)定點數(shù)形式:它由數(shù)字和小數(shù)點組成。整數(shù)和小數(shù)局部可以省去一個,但不可兩者都省,而且小數(shù)點不能省。如:1.234,.123,123.,0.0等。(2)指數(shù)形式(或稱科學(xué)表示法):它是用整數(shù)或定點數(shù)后加e(或E)和指數(shù)來表示;指數(shù)可正可負(fù)必須為整數(shù),字母e之前必須有數(shù)字。如:1.234e3,12.34e2均合法表示1.234*103;而e3,1e2.3,.e3,e均不合法。實型常量的后綴用F/f

表示單精度型。用L/l表示長雙精度型。例:以下四個選項中,均是合法的實型常量的是——A、+2e-1-3e4.55e3B、-.91.2e-0-7.e8C、123e+14567+2e-1D、8e-4-5e+2-e3B字面常量—字符型常量分類:字符常量和字符串常量兩類。1.字符常量:用一對單引號括起來的一個字符。如:‘a(chǎn)’、‘A’、‘3’、‘?’等。特殊的轉(zhuǎn)義字符常量:是將反斜扛(\)后面的字符轉(zhuǎn)換成另外的意思。轉(zhuǎn)義字符及其含義轉(zhuǎn)義字符含義\n\v\r\a\‘\ddd\t\b\f\\\“\xhh轉(zhuǎn)義字符含義換行垂直制表回車響鈴單引號3位8進(jìn)制數(shù)代表的字符水平制表退格換頁反斜線雙引號2位16進(jìn)制數(shù)代表的字符2.字符串常量:用一對雙引號括起來的字符序列。如:"TheCProgrammingLanguage"字符串中可以是任一字符,包括轉(zhuǎn)義字符。當(dāng)字符串本身包括雙引號時,必須用轉(zhuǎn)義字符‘\“’表示,從而防止二義性的解釋。字面常量—字符型常量如:"\"UNIXSYSTEM\""字符串常量用連續(xù)的存儲單元存儲,每個字符占一個字節(jié),且在末尾自動加一個字符串結(jié)束符'\0'。注意:'a'和"a"的差異例:以下不合法的字符常量是——A、’\n’B、’ab’C、’\101’D、’0’B

符號常量用符號常量標(biāo)識符來代表一個常量。如:用PI代表圓周率Л,即3.1415926。優(yōu)點:①含義清楚,增加可讀性。②在需要改變一個常量是能做到“一改全改〞,增強了可維護(hù)性。用編譯預(yù)處理命令中的宏定義來定義符號常量。宏定義格式:#define標(biāo)識符字符序列每行定義一個宏定義,句末無分號。符號常量定義格式:#define符號常量標(biāo)識符常量如:#definePI3.1415926變量含義:程序運行過程中可以改變的量根本要素:變量名、類型、值。變量名:用標(biāo)識符來表示。變量的定義格式:變量類型變量名表列;變量類型:

存儲數(shù)據(jù)的類型聲明根本類型的關(guān)鍵字有:int、float、char、double可進(jìn)行修飾擴充的有:short、long、unsigned定義類型有三個含義:1、數(shù)學(xué)類型2、存儲空間3、取值范圍類型位范圍char8-128~127(-27~27-1)

unsignedchar80~255(0~28-1

)shortint16-32768~32767(-215~215-1)

unsignedshortint160to65535(0~216-1

)int32-2147483648~2147483647(-215~215-1)

unsignedint320~4294967295(0~232-1

)longint64(-263-1~263-1

)unsignedlongint640~18446744073709551615(0~264-1

)float32-3.4×1038~3.4×1038(7位有效數(shù)字

)double64-1.7×10308~1.7×10308(15位有效數(shù)字

)例:下面四個選項中,不正確的變量說明是____A.unsignedintui;B.shortintg;C.doubleintA;D.intp,j,k;C變量名表列:為同一類型變量名的列表,各變量名之間用逗號隔開。intm,M,n;/*定義m,M,n為存放整型數(shù)據(jù)的整型變量*/floata,b,c;/*定義a,b,c為存放單精度型數(shù)據(jù)的實型變量*/charc1,c2;/*定義c1,c2為存放字符型數(shù)據(jù)的字符型變量*/注意:變量必須是先定義,后使用;定義變量的聲明語句必須放在本程序任何可執(zhí)行語句之前或所在函數(shù)的可執(zhí)行語句之前;在同一函數(shù)內(nèi),不能定義同名變量,而在不同函數(shù)中可以定義同名變量,互不影響。變量除了具有數(shù)據(jù)類型外,還有存儲類型,變量的作用域與生存期等。變量的值含義:存儲的數(shù)據(jù)值。給變量賦值的途徑:1、用賦值運算符“=〞給變量賦初值a、在定義變量的同時直接賦值;如:inta=3;floatf=3.56;b、先定義變量,再賦值;如:inta;floatf;a=3;f=3.45;c、可以給變量局部賦值如:inta,b,c=3;2、用scanf()從鍵盤讀入數(shù)據(jù);如:inti;scanf(“%d〞,&i);

3、在程序執(zhí)行中,用賦值語句動態(tài)的改變變量的值。如:inti=9;intj;j=i-1;j=j+1;注意:假設(shè)對變量只定義而沒有賦值,那么該變量的值是隨機的。2.4運算符及表達(dá)式1、按功能分為:(1)算術(shù)運算符+-*/%++--(2)關(guān)系運算符>>=<<===!=(3)邏輯運算符!&&||(4)位運算符<<>>~∣∧&(5)賦值運算符=復(fù)合賦值運算符(6)條件運算符?:(7)逗號運算符,(8)指針運算符*和&(9)求字節(jié)數(shù)運算符sizeof(10)強制類型轉(zhuǎn)換運算符〔類型標(biāo)識符〕(11)分量運算符·→(12)下標(biāo)運算符[](13)其它函數(shù)名()2.運算符按其連接運算對象的個數(shù)可分為:〔1〕單目運算符〔僅對一個運算對象進(jìn)行操作〕!~++---〔取負(fù)號〕〔類型標(biāo)識符〕*&sizeof〔2〕雙目運算符〔該運算符連接兩個運算對象〕+-*/%<<=>>===!=<<>>&|∧&&||=復(fù)合賦值運算符〔3〕三目運算符〔該運算符連接三個運算對象〕?:〔4〕其它()[]·->3.按優(yōu)先級及結(jié)合性優(yōu)先級:標(biāo)志運算符在表達(dá)式中的運算順序。結(jié)合性:優(yōu)先級相同時,按從左到右或從右到左的結(jié)合順序確定運算符的計算順序。分為二類:〔1〕從右到左:單目、三目和賦值運算符〔2〕從左到右:其它運算符算術(shù)運算符與算術(shù)表達(dá)式1.算術(shù)運算符單目運算符:-(取負(fù))、+(取正)雙目算術(shù)運算符:+(加)、-(減)、*(乘)、/(除)、%(余數(shù))

說明:1、整數(shù)相除結(jié)果為整數(shù),即只取商的整數(shù)局部;2、%只適合整數(shù)運算自增與自減運算符〔++與--〕說明:單目運算符,操作對象只有一個且只能是單個變量。功能:〔1〕取由該運算符構(gòu)成的表達(dá)式的值〔2〕實現(xiàn)變量(即運算對象)自身的加1或減1運算。方式:前綴方式:運算符在變量的前面,如++a或--a

先自增/自減,再引用;后綴方式:運算符在變量的后面,如a++或a--

先引用,再自增/自減。例:main〔〕{inta=3;intb=++a,c;printf〔〞%d%d\n〞,a,b〕;c=a++;printf〔〞%d%d\n〞,a,c〕;}結(jié)果:4454#include<stdio.h>main(){charc1='A',c2,c3;inti=5,j,k;c2=c1++;c3=++c1;j=i--;k=--i;printf("c1=%c,c2=%c,c3=%c\n",c1,c2,c3);printf("i=%d,j=%d,k=%d\n",i,j,k);}

結(jié)果:

c1=C,c2=A,c3=C i=3,j=5,k=3

2、算術(shù)表達(dá)式用算術(shù)運算符將運算對象連接起來,符合C語法規(guī)那么,并能說明運算過程的式子。賦值運算符與賦值表達(dá)式賦值運算符:

=一般形式:變量=表達(dá)式含義:將賦值號右邊表達(dá)式的值賦給左邊的變量。如:

x=3;y=(x+2)*3;注意:(1)先計算賦值運算符右側(cè)表達(dá)式,再賦值。(2)賦值運算符的左側(cè)必須是一個變量。如:

3=x;(x+y)=5;

/*都錯誤*/復(fù)合賦值運算符一般形式:變量=變量運算符表達(dá)式;縮寫式:變量運算符=表達(dá)式;

如:x=x+y;x+=y;x=x*(y+z);x*=y+z;

復(fù)合賦值運算符共有10種:+=〔加賦值〕-=〔減賦值〕*=〔乘賦值〕/=〔除賦值〕%=〔求余賦值〕&=〔位與賦值〕|=〔按位或賦值〕∧=〔按位異或賦值〕<<=〔左移位賦值〕>>=〔右移位賦值〕例:#include<stdio.h>main(){inta;floatb;a*=a/=(a=7)-(b=4.5);printf("a=%d,b=%f\n",a,b);}結(jié)果:a=4,b=4.500000例:intm=7,n=12;那么能得到值為3的表達(dá)式是_____

A.n%=(m%=5)B.n%=(m-m%5)C.n%=m-m%5D.(n%=m)-(m%=5)

D逗號運算符和逗號表達(dá)式一般形式:表達(dá)式1,表達(dá)式2,…,表達(dá)式n例:z=(y=(x=4*5,x*5),x+25)結(jié)果:

x=20,y=100,z=45綜合例題:intk=7;floata=2.5,b=4.7;那么表達(dá)式a+k%3*(int)(a+b)%2/4的值_____A.2.5B.2.75C.3.5D.0.0A各類數(shù)值型數(shù)據(jù)間的混合運算與類型轉(zhuǎn)換C語言規(guī)定:相同類型數(shù)據(jù)直接進(jìn)行運算,運算結(jié)果是原數(shù)據(jù)類型;不同類型的數(shù)據(jù)先轉(zhuǎn)換成同一類型,然后才可進(jìn)行運算。兩種轉(zhuǎn)換形式:(1)隱含轉(zhuǎn)換(隱式轉(zhuǎn)換);(2)強制轉(zhuǎn)換(顯式轉(zhuǎn)換〕隱含轉(zhuǎn)換1、運算轉(zhuǎn)換——不同類型數(shù)據(jù)混合運算時2、賦值轉(zhuǎn)換——把一個值賦給與其類型不同的變量時3、輸出轉(zhuǎn)換——輸出時轉(zhuǎn)換成指定的輸出格式4、函數(shù)調(diào)用轉(zhuǎn)換——實參與形參類型不一致時轉(zhuǎn)換由C語言系統(tǒng)自動完成的doublefloatlongunsignedintchar,short低高轉(zhuǎn)換規(guī)那么:注意:(1)轉(zhuǎn)換按箭頭方向不是逐步進(jìn)行,而是一步到位。(2)類型轉(zhuǎn)換只影響表達(dá)式結(jié)果,不改變原變量的類型。例

charch;inti;floatf;doubled;ch/i+f*d-(f+i)intdoubledoubledoubledouble例:以下表達(dá)式結(jié)果為整數(shù)的是_____

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論