C程序設(shè)計:第三章 數(shù)據(jù)類型、運算符與表達式_第1頁
C程序設(shè)計:第三章 數(shù)據(jù)類型、運算符與表達式_第2頁
C程序設(shè)計:第三章 數(shù)據(jù)類型、運算符與表達式_第3頁
C程序設(shè)計:第三章 數(shù)據(jù)類型、運算符與表達式_第4頁
C程序設(shè)計:第三章 數(shù)據(jù)類型、運算符與表達式_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 第三章 數(shù)據(jù)類型、運算符與表達式 3.1 c的數(shù)據(jù)類型 32 常量與變量321 常量和符號常量 在程序運行過程中,其值不能被改變的量稱為常量。常量區(qū)分為不同的類型如 12、0、-3為整型常量,4.6、-1.23為實型常量,a、d為字符常量。1.符號常量的定義與使用先定義后使用2.符號常量名要大寫322 變量 其值可以改變的量稱為變量。一個變量應(yīng)該有一個名字,在內(nèi)存中占據(jù)一定的存儲單元.1.標(biāo)識符:用來標(biāo)識變量名、符號常量名、函數(shù)名、數(shù)組名、類型名、文件名的有效字符序列稱為標(biāo)識符(identifier) 簡單地說,標(biāo)識符就是一個名字。 2. C語言規(guī)定標(biāo)識符只能由字母、數(shù)字和下劃線三種字符組成

2、,且第一個字符必須為字母或下劃線。下面列出的是合法的標(biāo)識符,也是合法的變量名: sum,average,_total,Class,day,month,Student_name,tan,lotus_1_2_3,BASIC,h_ng3.變量必須先定義后使用4.定義格式為:數(shù)據(jù)類型 變量名1,變量名2,變量名n; 33 整型數(shù)據(jù)331 整型常量的表示方法 ,C整常數(shù)可用以下三種形式表示: 1、十進制整數(shù)。如 123,一456,0。 2、八進制整數(shù)。以0開頭的數(shù)是八進制數(shù)。如0123表示八進制數(shù)123,即(等于十進制數(shù)8 3。-011表示八進制數(shù)-11,即十進制數(shù)-9。 3、十六進制整數(shù)。以 0 x開

3、頭的數(shù)是十六進制數(shù)。如 0 x123,代表十六進制數(shù) 12 3,即1X162X16+3=2 5 6+3 2+3=2 91。-0X12等于十進制數(shù)-18。332 整型變量 1整型數(shù)據(jù)在內(nèi)存中的存放形式 數(shù)據(jù)在內(nèi)存中是以二進制形式存放的。 int i;i=10; 2整型變量的分類 根據(jù)數(shù)值的范圍將變量定義為基本整型、短整型或長整型(12L或12l)。 1、基本整型,以int 表示。占二個字節(jié) 2、短整型,以 short int表示,或以 short表示。占二個字節(jié) 3、長整型,以 long int表示,或以 long表示。占四個字節(jié) 一個int 型變量的值的范圍為一3276832767?!盁o符號”

4、類型:對以上三類都可以加上修飾符unsigned,以指定是“無符號數(shù)”。如果加上修飾符signed,則指定是“有符號數(shù)”。隱含為有符號。歸納起來,可以用以下6種整型變量。即: 有符號基本整型 int 無符號基本整型unsigned int 有符號短整型 short int 無符號短整型 unsigned short int 有符號長整型 long int 無符號長整型 unsigned long int 3整型變量的定義溢出 34 實型數(shù)據(jù)341 實型常量的表示方法 實數(shù)(real number)又稱浮點數(shù)(floating point number) 實數(shù)有兩種表示形式: 1、十進制小數(shù)形式

5、。它由數(shù)字和小數(shù)點組成1234 2、指數(shù)形式。如123e3或123E3都代表123000。但注意字母e(或E)之前必須有數(shù)字(1位),且e后面的指數(shù)必須為整數(shù)。342 實型變量 1、實型數(shù)據(jù)在內(nèi)存中的存放形式 一個實型數(shù)據(jù)一般在內(nèi)存中占4個字節(jié),與整型數(shù)據(jù)的存儲方式不同,實型數(shù)據(jù)是按照指數(shù)形式存儲的。系統(tǒng)把一個實型數(shù)據(jù)分成小數(shù)部分和指數(shù)部分,分別存放。 2實型變量的分類 C實型變量分為:單精度(float型) 占四個字節(jié)。有效數(shù)字7位 雙精度(double型)占八個字節(jié) 長雙精度型(long double)占十六個字節(jié)3、實型變量的定義 4實型數(shù)據(jù)的舍入誤差 35 字符型數(shù)據(jù)3.5.1 字符常

6、量 C的字符常量是用單引號括起來的一個字符。如bD等都是字符常量。注意,a和“A是不同的字符常量?!稗D(zhuǎn)義字符”:意思是將反斜杠后面的字符轉(zhuǎn)換成另外的意義。如 n中的“n”不代表字母n而作為“換行”符。 *轉(zhuǎn)義字符n :換行t :跳到下一個TAB位置b :退格r :回車不換行f :換頁 :反斜杠 :單引號“ :雙引號ddd : 8進制數(shù)所代表的字符xhh :16進制數(shù)所代表的字符Printf(“101102103104x41n”);結(jié)果為:ABCDA352 字符變量 字符型變量用來存放字符常量,請注意只能放一個字符, a與“a”不同,a占一個字節(jié),“a”占二個字節(jié)353 字符數(shù)據(jù)在內(nèi)存中的存儲形

7、式及其使用方法 將一個字符常量放到一個字符變量中,實際上并不是把該字符本身放到內(nèi)存單元中去,而是將該字符的相應(yīng)的 ASCll代碼放到存儲單元中。例如字符a的 ASCll代碼為97,在內(nèi)存中實際上是以二進制形式01100001存放的,*字符數(shù)據(jù)在內(nèi)存中的存儲形式與127(0256)以內(nèi)的整型數(shù)據(jù)在內(nèi)存中的存儲形式相同%d 0127為正數(shù)%d 128256為負(fù)數(shù)354 字符串常量1、 字符常量是由一對單引號括起來的單個字符,字符串常量是一對雙引號括起來的字符序列。如, ”How do you do”,”CHINA”,”a”,”12345”都是字符串常量。可以輸出一個字符串,如 printf(”Ho

8、w do you do”)2、字符串結(jié)束標(biāo)志”,以便系統(tǒng)據(jù)此判斷字符串是否結(jié)束。C規(guī)定以字符0作為字符串結(jié)束標(biāo)志。0是一個ASCll碼為0的字符,從ASCll代碼表中可以看到ASCll碼為0的字符是“空操作字符”,即它不引起任何控制動作,也不是一個可顯示的字符。3、字符串常量占內(nèi)存字節(jié)數(shù)=字符串長度+1 36變量賦初值 程序中常需要對一些變量預(yù)先設(shè)置初值變量設(shè)置初值。C語言允許在定義變量的同時使變量初始化。如: 37 各類數(shù)值型數(shù)據(jù)間的混合運算整型、實型、字符型數(shù)據(jù)間可以混合運算。例如: 10a十1587651234*b是合法的。在進行運算時,不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進行運算。轉(zhuǎn)

9、換的規(guī)則按圖310所示。 38算術(shù)運算符和算術(shù)表達式|/ 整數(shù)相除,實數(shù)相除 2算術(shù)表達式和運算符的優(yōu)先級與結(jié)合性優(yōu)先級與數(shù)學(xué)一致結(jié)合性:左結(jié)合性:從左向右右結(jié)合性:從右向左 3強制類型轉(zhuǎn)換運算符 (類型名)(表達式)*需要說明的是在強制類型轉(zhuǎn)換時,得到一個所需類型的中間變量,原來變量的類型未發(fā)生變化。 4自增、自減運算符 作用是使變量的值增1或減1,如: +i,i=i+1 -i, i=i-1(在使用i之前,先使i的值加(減)1) i+,i-(在使用i之后,使i的值加(減)1) 注意:1、自增運算符(+)和自減運算符(-)只能用于變量,而不能用于常量或表達式2、十十和一的結(jié)合方向是“自右至左“

10、 5有關(guān)表達式使用中的問題說明(1)、i=3(i+)+(i+)+(i+)(2)、多個字符組成的運算符,自左而右組合如 ij,編譯系統(tǒng)在處理時盡可能多地(自左而右)將若干個字符組成一個運算符理解為:(I+)+j(3)、在函數(shù)printf中參數(shù)符合右結(jié)合性 39賦值運算符和賦值表達式 1、賦值運算符 2、類型轉(zhuǎn)換 如果賦值運算符兩側(cè)的類型不一致,但都是數(shù)值型或字符型時,在賦值時要進行類型轉(zhuǎn)換。 (1)、將實型數(shù)據(jù)(包括單、雙精度)賦給整型變量時,舍棄實數(shù)的小數(shù)部分(2)、將整型數(shù)據(jù)賦給單、雙精度變量時,數(shù)值不變,但以浮點數(shù)形式存儲到變量中 (3)、將一個 double型數(shù)據(jù)賦給 float變量時,

11、截取其前面 7位有效數(shù)字,但應(yīng)注意數(shù)值范圍不能溢出。(4)、字符型數(shù)據(jù)賦給整型變量時,分二種情況: (1) 、如果所用系統(tǒng)將字符處理為無符號的量或?qū)nsigned char型變量賦值,則將字符的 8位放到整型變量低 8位,高 8位補零。(2)、如果所用系統(tǒng)將字符處理為帶符號的量,若字符的最高位為0,則整型變量的高 8位為0,若字符的最高位為1,則整型變量的高 8位全為1,社稱為符號擴展。 5、將一個int、short、 long 型數(shù)據(jù)賦值給一個char變量時,只將其低8位原封不動地送到char型變量(即截斷)6、若將一個int型數(shù)據(jù)賦給一個long 型變量,數(shù)據(jù)送入低 16位,高16位進行

12、符號擴展。若將一個 long型數(shù)據(jù)賦給一個int 型變量,只將 long型數(shù)據(jù)中低 16位原封不動地送到整型變量(截斷).7、若將一個unsigned int型數(shù)據(jù)賦給一個long int型變量,數(shù)據(jù)送入低 16位,高16位補0,不進行符號擴展。8、若將一個signed 型數(shù)據(jù)賦給一個unsign型變量,符號位照賦 3復(fù)合的賦值運算符(自反賦值運算符M1=10,m2=10,m3=10,m4=10 求m1,m2,m3,m4及表達式的值a=12逗號運算符與逗號表達式35,68稱為逗號表達式,又稱為“順序求值運算符”。逗號表達式的一般形式為 a=3a=3*5,a*4表達式的值為60,a為15(a=3

13、*5,a*4),a+5 表達式的值為多少?20習(xí)題1、下列四組C語言標(biāo)識符中,正確的一組是_。A.name cchar _abc A23B.abc?d 5byte usa ABC.-AB3C Double _hii3 integerD._Asdf char short_tt bb2、經(jīng) char w; int x ; float y; double z; 說明后,表達式w * x + z y 的數(shù)據(jù)類型是_。Afloat B.char C.int D.double 3、已知ch是字符型變量,以下不正確的賦值語句是_。Ach=a; B.ch=a;Cch=141; D. ch=x61;4、字符串B

14、BB123Xbbt的長度為_。A.8 B.17 C.14 D.10 5、C語言中,int 占2 個字節(jié),則long 類型數(shù)據(jù)占_個字節(jié)。A.1 B.2 C.4 D.86、以下_是c語言提供的合法數(shù)據(jù)類型關(guān)鍵字。AFloat Bunsigned Cinteger DChar7、以下程序的輸出結(jié)果是_。main()int a = 1,b = 2,c = 3,k;k=a + + + b + + + c + + ;printf(n%d, %d, %d, %d,a,b,c,k) ;A.1,2,3,6 B.2,3,4,6C.1,3,3,7 D.1,3,3,6 8、下面標(biāo)識符中,合法的用戶標(biāo)識符為。 (A)for (B) tt-2 (C) long (D)num_19、下列變量說明中,正確的是。 (A)float : a,b,c; (B) int a;b;c; (C) double a,b; (D)int a,b,10、先用下列語句定義變量:int c; 然后要將97賦給變量c,則下列語句中正確的是。 (A)c=a (B) c=”a” (C) c=”97” (D) C=9711、執(zhí)行下列語句的結(jié)果為。 i=3; k=(i+)+(+i)+(i+); printf(“%d,”,k

溫馨提示

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

最新文檔

評論

0/150

提交評論