




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C
語言程序設(shè)計(jì)物理與電子科學(xué)學(xué)院第2章 基本數(shù)據(jù)類型2.1數(shù)據(jù)類型介紹2.2整型數(shù)據(jù)2.3浮點(diǎn)型數(shù)據(jù)2.4算術(shù)運(yùn)算符與算術(shù)表達(dá)式2.5賦值運(yùn)算符與賦值表達(dá)式2.1數(shù)據(jù)類型介紹
數(shù)據(jù)類型反映數(shù)據(jù)的存儲方式、取值范圍、存儲空間大小及運(yùn)算方式。不同類型的數(shù)據(jù)在內(nèi)存中的存儲方式、取值范圍、存儲空間大小及運(yùn)算方式是不同的。C程序中常量、變量、表達(dá)式的值和函數(shù)值等數(shù)據(jù)都有明確的類型。
幾個重要的概念:
(1)數(shù)據(jù)的存儲方式。
(2)數(shù)據(jù)的取值范圍。
(3)數(shù)據(jù)的存儲空間大小。
(4)數(shù)據(jù)的運(yùn)算方式和類型轉(zhuǎn)換。2.2整型數(shù)據(jù)數(shù)據(jù)類型關(guān)鍵字存儲空間大小取值范圍有符號字符型[signed]char1字節(jié)-128—127(-27——27-1)無符號字符型unsignedchar1字節(jié)0—255(0—28-1)有符號短整型[signed]short[int]2字節(jié)-32768—32767(-215——215-1)無符號短整型unsignedshort[int]2字節(jié)0—65535(0—216-1)有符號基本整型[signed]int4字節(jié)-231——231-1無符號基本整型unsignedint4字節(jié)0—232-1有符號長整型[signed]long[int]4字節(jié)-231—231-1無符號長整型unsignedlong[int]4字節(jié)0—232-1有符號雙長整型[signed]longlong[int]8字節(jié)-263—263-1無符號雙長整型unsignedlonglong[int]8字節(jié)0—264-1注:VC系統(tǒng)不支持這兩種類型的數(shù)據(jù)整型型數(shù)據(jù)類型分類整型數(shù)據(jù)存儲方式無符號整型數(shù)據(jù)在內(nèi)存中以其二進(jìn)制數(shù)形式存放,只能存放0和正整數(shù)。有符號整型數(shù)據(jù)在內(nèi)存中以二進(jìn)制補(bǔ)碼的形式存放,最高位為符號位,可以存放負(fù)整數(shù)、0和正整數(shù)。存儲空間大小和有無符號決定整型數(shù)據(jù)的取值范圍。正整數(shù)的補(bǔ)碼為其二進(jìn)制數(shù),負(fù)整數(shù)求補(bǔ)碼的步驟:(1)先取該數(shù)的絕對值; (2)然后以二進(jìn)制形式表示; (3)再對其按位取反; (4)然后加1。 例如:-10取補(bǔ)碼過程(以4字節(jié)為例)(1)先取該數(shù)的絕對值10(2)然后以二進(jìn)制形式表示00000000000000000000000000001010(3)再對其取反;11111111111111111111111111110101(4)然后加1。11111111111111111111111111110110例如:內(nèi)存中存儲形式如下,以4字節(jié)為例,若按有符號方式存儲,求該數(shù)大小(換算為十進(jìn)制數(shù)):11111111111111111111111111111111(1)先減111111111111111111111111111111110(2)再按位取反00000000000000000000000000000001(3)再換算為十進(jìn)制數(shù)1(4)再加負(fù)號-1整型常量1.整型常量的三種進(jìn)制
(1)十進(jìn)制。如123,-123
(2)八進(jìn)制,以0開頭。如0123,-0123
(3)十六進(jìn)制,以0x或0X開頭,如0x123,-0x123
補(bǔ)充知識:二進(jìn)制、八進(jìn)制、十六進(jìn)制和十進(jìn)制之間的相互轉(zhuǎn)換。2.整型常量類型的確定
(1)默認(rèn)原則——按照數(shù)值所在范圍確定類型
在VC系統(tǒng)中,int型數(shù)據(jù)和long型數(shù)據(jù)的字節(jié)數(shù)和取值范圍相同。當(dāng)一個整數(shù)的值在十進(jìn)制數(shù)范圍(-215—215-1
)之內(nèi),一般被看成int型(有符號)或long型(有符號),在內(nèi)存中占4個字節(jié)。超過這個范圍,一般被看成longlong型(有符號),在內(nèi)存中占8個字節(jié)。
(2)后綴字母標(biāo)識
用l或L表示long型。如123L(long型)
用ll或LL表示longlong型。(注:VC系統(tǒng)不支持longlong型)
用u或U表示unsigned型,如123u(unsignedint型)字符型常量
1.字符型常量的表示
(1)對于可打印字符,除單引號和反斜杠字符外,均可用一對單引號括起來直接使用。
如:'a'、'0'等
(2)所有字符均可用轉(zhuǎn)義字符表示。用轉(zhuǎn)義字符形式來表示字符常量也必須用一對單引號括起來。
如:'\n'、'\141'、'\x61'等
注:ASCII碼表參考教材附錄C(307頁)字符形式含義ASCII代碼\n\t\b\r\f\a\\\’\”\ddd\xhh換行,將當(dāng)前位置移到下一行開頭水平制表(跳到下一個Tab位置)退格,將當(dāng)前位置移到前一列回車,將當(dāng)前位置移到本行開頭換頁,將當(dāng)前位置移到下頁開頭發(fā)出鈴聲代表一個反斜杠字符\代表一個單撇號字符’
代表一個雙撇號字符”1-3位八進(jìn)制數(shù)代表的字符1-2位十六進(jìn)制數(shù)代表的字符1098131279239342.字符型常量在內(nèi)存中的存儲方式
字符型常量在內(nèi)存中以其ASCII碼值的二進(jìn)制數(shù)表示,VC系統(tǒng)將字符型常量看成int型,在內(nèi)存中占4個字節(jié)。
例如:'a'、'\141'、'\x61'、97、0141、0x61在VC系統(tǒng)中沒有任何區(qū)別,均為int型常量,只是書寫方式不同而已。其在內(nèi)存中的存儲形式均為:00000000000000000000000001100001
因此,字符型常量本質(zhì)上就是整型常量。字符串常量
1.字符串常量的表示
用一對雙引號擴(kuò)去來的零個和多個字符序列即可表示字符串常量。字符序列可以是普通字符或轉(zhuǎn)義字符。字符串中的每個字符均不可再用單引號括起來,但轉(zhuǎn)義字符的反斜杠不可丟失。
如:""、""、"a"、"hello"、"WelcometoC!\n"等。雙引號內(nèi)無字符雙引號內(nèi)為空格字符
2.字符串常量在內(nèi)存中的存儲方式字符串中的字符數(shù)稱為該字符串的長度,字符串常量在內(nèi)存中存儲時(shí),每個字符占1個字節(jié),根據(jù)字符串長度可以確定存儲空間大小。另外,字符串常量在存儲時(shí)系統(tǒng)自動在字符串的末尾加一個字符串結(jié)束標(biāo)志,該結(jié)束標(biāo)志位轉(zhuǎn)義字符'\0',它在內(nèi)存中占1個字節(jié),其ASCII碼值為0,含義為“空操作”,即不產(chǎn)生任何動作,只起到標(biāo)志作用。如"a"在內(nèi)存中占2個字節(jié),存放形式為:0110000100000000整型數(shù)據(jù)格式輸出
1.printf函數(shù)的基本格式intprintf(格式控制字符串,輸出表達(dá)式1,輸出表達(dá)式2,……)
(1)關(guān)于格式控制字符串
普通字符→原樣輸出
轉(zhuǎn)義字符→根據(jù)轉(zhuǎn)義字符含義執(zhí)行相應(yīng)的輸出
格式說明字段→與輸出表達(dá)式一一對應(yīng),按照該格式對輸出表達(dá)式的數(shù)值進(jìn)行轉(zhuǎn)換并輸出。
格式說明字段詳細(xì)介紹參見教材43-47頁(2)關(guān)于整型數(shù)據(jù)的格式說明字段%d或%i:帶符號的十進(jìn)制形式輸出%u:無符號的十進(jìn)制形式輸出%o:無符號的八進(jìn)制形式輸出%x或%X:無符號的十六進(jìn)制形式輸出%c:字符形式輸出前綴修飾:-(左對齊)域?qū)捫揎棧簄(n為正整數(shù)),當(dāng)n小于數(shù)字位數(shù)時(shí)不受域?qū)捈s束。(3)關(guān)于輸出表達(dá)式輸出表達(dá)式可以使常量、變量或表達(dá)式,輸出時(shí)計(jì)算順序是從右到左。格式說明字段應(yīng)與輸出表達(dá)式值的類型保持一致。2.例:以下程序段輸出結(jié)果inta=97;charb='a';printf("%d,%o,%x,%c\n",a,a,a,a);printf("%d,%o,%x,%c\n",b,b,b,b);printf("%a=%1d\n",a);printf("%a=%5d\n",a);printf("%a=%-5d\n",a);整型數(shù)據(jù)格式輸入
1.scanf函數(shù)的基本格式intscanf(格式控制字符串,地址1,地址2,……)(1)關(guān)于地址參數(shù)地質(zhì)參數(shù)一般用求地址運(yùn)算符“&”對變量運(yùn)算得到的。(2)關(guān)于整型數(shù)據(jù)的格式說明字段
%d:輸入帶符號的十進(jìn)制數(shù)(3)數(shù)值數(shù)據(jù)流的分割默認(rèn)分割:空格、Tab鍵分割、回車鍵分割;字符分割:根據(jù)格式字符串要求。2.例:以下程序段輸出結(jié)果inta,b;scanf("%d%d",&a,&b);printf("a=%d,b=%d\n",a,b);scanf("a=%d,b=%d",&a,&b);printf("a=%d,b=%d\n",a,b);整型變量(含字符型變量)
1.整型變量的定義
整型變量必須先定義后使用,定義整型變量時(shí)必須制定類型和變量名,系統(tǒng)在內(nèi)存中為該變量分配一定大小的存儲空間。整型變量值的取值范圍和存儲方式由變量類型決定。變量類型一旦確定即不可更改。2.整型變量賦值類型轉(zhuǎn)換
將不同于變量類型的數(shù)據(jù)賦給變量時(shí),系統(tǒng)根據(jù)變量類型對該數(shù)據(jù)進(jìn)行轉(zhuǎn)換。轉(zhuǎn)換時(shí)可能會改變存儲方式或丟失數(shù)據(jù)。
3.常見的整型變量賦值類型轉(zhuǎn)換(1)將有符號的整型數(shù)據(jù)賦給無符號整型變量轉(zhuǎn)換方式:將有符號的數(shù)據(jù)按照無符號數(shù)據(jù)存儲方式存儲并賦值。如:unsignedinti;i=-10;printf("i=%u\n",i);輸出結(jié)果為:i=4294967286因?yàn)?10在內(nèi)存中形式為:11111111111111111111111111110110按照無符號數(shù)據(jù)存儲方式存儲,該數(shù)值即為4294967286。
(2)將超過整型變量范圍的整型數(shù)據(jù)賦給整型變量
轉(zhuǎn)換方式:根據(jù)整型變量的字節(jié)數(shù)將該整型數(shù)據(jù)在內(nèi)存中存儲的二進(jìn)制數(shù)的低字節(jié)數(shù)值賦給整型變量。
如:chari;i=257;printf("i=%d\n",i);
輸出結(jié)果為:i=1
因?yàn)?57在內(nèi)存中形式為:00000000000000000000000100000001
而char型變量i在內(nèi)存中只占1個字節(jié),因此將低字節(jié)的8位二進(jìn)制數(shù)00000001賦給i,i的值即為1。再如:unsignedchari;i=-257;printf("i=%u\n",i);輸出結(jié)果為:i=255因?yàn)?257在內(nèi)存中形式為:11111111111111111111111011111111而unsignedchar型變量i在內(nèi)存中只占1個字節(jié),因此將低字節(jié)的8位二進(jìn)制數(shù)11111111賦給i,i的值即為255。(3)將實(shí)數(shù)賦給整型變量轉(zhuǎn)換方式:現(xiàn)將該實(shí)數(shù)的小數(shù)部分去掉取整后,再根據(jù)前面的兩條規(guī)則轉(zhuǎn)換賦值。如:inti;i=10.8;printf("i=%d\n",i);輸出結(jié)果為:i=10再如:unsignedinti;i=-10.8;printf("i=%u\n",i);輸出結(jié)果為:i=4294967286
(4)使用規(guī)則:整型變量在定義的時(shí)候一定要考慮到可能的取值范圍和符號,避免類型不匹配強(qiáng)行賦值導(dǎo)致的數(shù)據(jù)丟失或錯誤,整型變量可以在定義的同時(shí)賦值(初始化)。
2.3浮點(diǎn)型數(shù)據(jù)數(shù)據(jù)類型關(guān)鍵字存儲空間大小取值范圍單精度浮點(diǎn)型float4字節(jié)|3.4e-38|~|3.4e+38|雙精度浮點(diǎn)型double8字節(jié)|1.7e-308|~|1.7e+308|長雙精度浮點(diǎn)型longdouble10字節(jié)|1.2e-4932|~|1.2e+4932|浮點(diǎn)型數(shù)據(jù)類型分類浮點(diǎn)型數(shù)據(jù)存儲方式浮點(diǎn)型數(shù)據(jù)在浮點(diǎn)型是存放,存儲空間大小由類型決定。其中有符號位占1位,數(shù)字部分(尾數(shù))和指數(shù)(階碼)所占位數(shù)由類型決定。符號位尾數(shù)位階碼位浮點(diǎn)型數(shù)據(jù)有效數(shù)字和精度數(shù)據(jù)類型關(guān)鍵字有效數(shù)字和精度單精度浮點(diǎn)型float大約7位十進(jìn)制數(shù),7位精度雙精度浮點(diǎn)型double16或17位十進(jìn)制數(shù),7位精度長雙精度浮點(diǎn)型longdouble18位十進(jìn)制數(shù),7位精度注:VC系統(tǒng)不支持這種類型的數(shù)據(jù)浮點(diǎn)型常量1.浮點(diǎn)型常量類型C語言中,所有浮點(diǎn)型常量默認(rèn)為double型。若在數(shù)字后加后綴f或F則為float型,加后綴l或L則為double型。2.浮點(diǎn)型常量的表示(1)小數(shù)形式必須有小數(shù)點(diǎn)。如:3.143.0.0(2)指數(shù)形式e或E前面必須有數(shù)字,e或E后面必須為整數(shù)。如:3e2(=300.0)-3.14E-2(=0.0314)浮點(diǎn)型數(shù)據(jù)格式輸出1.浮點(diǎn)型數(shù)據(jù)的格式說明字段%f:小數(shù)形式輸出十進(jìn)制數(shù),小數(shù)點(diǎn)后默認(rèn)保留6位%e或%E:以科學(xué)計(jì)數(shù)法輸出十進(jìn)制數(shù),輸出結(jié)果e或E前面的數(shù)小數(shù)點(diǎn)后默認(rèn)保留6位前綴修飾:-(左對齊)域?qū)捫揎棧簃.n(m和n均為正整數(shù)),m表示輸出域?qū)挘琻表示小數(shù)點(diǎn)后數(shù)字位數(shù)。數(shù)值寬度大于域?qū)抦時(shí)不受其約束。但小數(shù)點(diǎn)后的數(shù)字受域?qū)抧約束,小數(shù)位按保留n位后的數(shù)字四舍五入。2.例:以下程序段輸出結(jié)果floata=3.14;doubleb=-3.14e-2;printf("a=%f\n",a);printf("b=%f\n",b);printf("a=%e\n",a);printf("b=%e\n",b);printf("a=%15.2f\n",a);printf("a=%-15.2f\n",a);printf("a=%15.2e\n",a);printf("a=%-15.2e\n",a);浮點(diǎn)型數(shù)據(jù)格式輸入1.浮點(diǎn)型數(shù)據(jù)的格式說明字段%f:給float型變量輸入帶符號的十進(jìn)制實(shí)數(shù)%lf:給double型變量輸入帶符號的十進(jìn)制實(shí)數(shù)2.輸入的浮點(diǎn)型數(shù)據(jù)可以是小數(shù)形式或指數(shù)形式浮點(diǎn)型變量1.浮點(diǎn)型變量的定義和初始化2.浮點(diǎn)型變量賦值類型轉(zhuǎn)換(1)將整型數(shù)據(jù)賦給浮點(diǎn)型變量,系統(tǒng)自動將整型數(shù)據(jù)的存儲方式變?yōu)楦↑c(diǎn)型存儲方式。(2)將double型數(shù)據(jù)賦給float型變量,系統(tǒng)會警告但能正常運(yùn)行,但可能會丟失數(shù)據(jù)精度。2.4算術(shù)運(yùn)算符與算術(shù)表達(dá)式運(yùn)算符名稱運(yùn)算對象功能優(yōu)先級*乘任何兩個實(shí)數(shù)或整數(shù)求兩數(shù)之積3/除任何實(shí)數(shù)或整數(shù),但右操作數(shù)不可為0求兩數(shù)之商3%模兩個整數(shù),但右操作數(shù)不可為0求整除的余數(shù)3+加任何兩個實(shí)數(shù)或整數(shù)求兩數(shù)之和4-減任何兩個實(shí)數(shù)或整數(shù)求兩數(shù)之差4++自增變量變量值增加12--自減變量變量值減少12算術(shù)運(yùn)算符分類(1)兩個整數(shù)相除的結(jié)果為整數(shù)。如5/3的結(jié)果值為1,舍去小數(shù)部分。(2)如果除數(shù)或被除數(shù)中有一個為負(fù)值,舍入方向不固定。例如,-5/3,有的系統(tǒng)中得到的結(jié)果為-1,在有的系統(tǒng)中則得到結(jié)果為-2。(3)VC++采取“向零取整”的方法。如5/3=1,-5/3=-1,取整后向零靠攏。(4)%運(yùn)算符要求參加運(yùn)算的運(yùn)算對象(即操作數(shù))為整數(shù),結(jié)果也是整數(shù)。如8%3,結(jié)果為2。(5)字符型數(shù)據(jù)與整型數(shù)據(jù)進(jìn)行運(yùn)算,就是把字符的ASCII代碼與整型數(shù)據(jù)進(jìn)行運(yùn)算。幾點(diǎn)說明算術(shù)表達(dá)式值的類型算術(shù)表達(dá)式值的類型由運(yùn)算對象決定。
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 向英雄致敬(教學(xué)設(shè)計(jì))-2023-2024學(xué)年五年級下冊綜合實(shí)踐活動滬科黔科版
- 15女媧補(bǔ)天 教學(xué)設(shè)計(jì)-2024-2025學(xué)年語文四年級上冊統(tǒng)編版
- 第15課《梅嶺三章》教學(xué)設(shè)計(jì) 2024-2025學(xué)年統(tǒng)編版語文七年級上冊
- 第5課 動蕩變化中的春秋時(shí)期(教學(xué)設(shè)計(jì))-2024-2025學(xué)年七年級歷史上冊素養(yǎng)提升教學(xué)設(shè)計(jì)(統(tǒng)編版2024)
- 第12課 宋元時(shí)期的都市和文化 教學(xué)設(shè)計(jì)-2023-2024學(xué)年浙江省部編版歷史與社會七年級下冊
- 孩子與父母(教學(xué)設(shè)計(jì))2023-2024學(xué)年人教鄂教版科學(xué)五年級上冊
- 7《生命最寶貴》(教學(xué)設(shè)計(jì))統(tǒng)編版道德與法治三年級上冊
- Module 5(教學(xué)設(shè)計(jì))-2024-2025學(xué)年外研版(三起)英語五年級上冊
- Unit 1 The secrets of happiness Developing ideas 教學(xué)設(shè)計(jì) 2024-2025學(xué)年外研版七年級英語下冊
- 6 花兒草兒真美麗 教學(xué)設(shè)計(jì)-2023-2024學(xué)年道德與法治一年級下冊統(tǒng)編版
- 自動化腹膜透析(APD)的臨床應(yīng)用課件
- 中國滑雪運(yùn)動安全規(guī)范
- DG-TJ 08-2343-2020 大型物流建筑消防設(shè)計(jì)標(biāo)準(zhǔn)
- 學(xué)前兒童發(fā)展心理學(xué)(第3版-張永紅)教學(xué)課件1754
- 2022牛排消費(fèi)趨勢報(bào)告
- TPM╲t4Step Manul(三星TPM絕密資料)
- 細(xì)菌群體感應(yīng)系統(tǒng)及其應(yīng)用課件
- 《農(nóng)產(chǎn)品質(zhì)量安全檢測》PPT課件
- 司法鑒定程序通則(試行)
- 橋梁墩柱模板驗(yàn)收標(biāo)準(zhǔn)
- 通達(dá)信指標(biāo)——江恩輪
評論
0/150
提交評論