語言基本教程-第三章_第1頁
語言基本教程-第三章_第2頁
語言基本教程-第三章_第3頁
語言基本教程-第三章_第4頁
語言基本教程-第三章_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

§

3.1

C的數(shù)據(jù)類型整型單精度型基本類型雙精度型數(shù)據(jù)類型構(gòu)造類型字符型

浮點型

枚舉類型數(shù)組類型結(jié)構(gòu)體類型共用體類型指針類型空類型37§

3.2

常量與變量一、常量:在程序運行過程中,其值不能被改變的量稱為常量。整型常量(整常數(shù))(

1

)

十進制整數(shù):123,-324,

0(2)八進制整數(shù):以0開頭,?0123表示(123)8(3)十六進制整數(shù):以0x開頭,?0x123表示(123)16在整型常數(shù)后添加一個“L”或“l(fā)”字母表示該數(shù)為長整型數(shù):22L,

0773L,

0xa4L浮點型常量(實數(shù))⑴十進制小數(shù)形式:由數(shù)字和小數(shù)點組成(必有小數(shù)點)。⑵指數(shù)形式:例:123e3例:

0.123

123.

.1231.2e-5注:1)字母e后必須為整數(shù)。2)e前必須有數(shù)字。字符型(用單撇號括起來的單個字符)普通字符:'a'、'b'、'A'、'>'轉(zhuǎn)義字符:以\

開頭,'\

n'、'\101'、'\x30'字符串型(

撇號括起來的字符序列)"China"字符形式功能\n換行\(zhòng)t橫向跳格(即跳到下一個輸出區(qū))\v豎向跳格\b退格\r回車\f走紙換頁\\反斜

字符“

”\'\ddd\xhh48‘\102’對應(yīng)ASCII碼(十進制數(shù))為66的字符‘B’表的字符‘\xA0’對應(yīng)的ASCII碼為160的字符‘?!袛嘞铝心男┦呛戏ǖ腃常量012、0x10、e3、0003、

3e-5、

'\n'、"x-y"、"3"、

"53"、

123e、

'ab'、5e+0

、3e2.3符號常量用標(biāo)識符表示的常量稱為符號常量,上,符號常量名用大寫。#define

PI

3.1415926main(

){

float

l,s,r;r=5;l=2*PI*r;s=PI*r*r;printf("%f,%f",l,s);}38二、變量:內(nèi)存中具有特定屬性的一個

單元命名規(guī)則:標(biāo)識符由字母、數(shù)字和下劃線三種字符組成,且第一個字符必須為字母或下劃線。說明:嚴(yán)格區(qū)分大小寫。如:sum和SUM不同系統(tǒng)規(guī)定變量名的有效字符個數(shù)不同。(3)“見名知意”。

如:name,day(

4

)

.

變量“先定義,后使用”。變量的值應(yīng)與定義的類型一致。變量名不能與關(guān)鍵字(附錄2)重名。判斷下列哪些是符合C規(guī)定的標(biāo)識符?判斷下列哪些是不符合C規(guī)定的變量名?Pad、a_10、CHAR、a#b、_int、signed

、enum、

a、

longda、

_ty、

7re、

_45f、

df34、

7ui不能與amount、

shanghai、

average、E2

、

3AB、關(guān)鍵字重名{

int

a,

b,

c,

d;unsigned

u;a=12;u=10;b=-24;c=a+u;

d=b+u;printf("a+u=%d,b+u=%d\n",c,d);}a+u=22,b+u=-14整型變量int(基本整型)——在內(nèi)存中占2個字節(jié)short[int](

短整型)long[int](長整型)unsigned(無符號數(shù))例1:main()/*P43-例3.2*/例2:main(

)/*P44-例3.3*/{

int

a,

b;a=32767b=a+1;printf(“%d,%d\n”,a,b);}32767,-32768注意溢出問題浮點型變量float(

單精度):4字節(jié),6—7位有效數(shù)字。double(雙精度):8字節(jié),15—16位有效數(shù)字。long

double(長雙精度):16字節(jié),18—19位有效數(shù)字。字符型變量char:只能存放一個字符,占1個字節(jié),存放該字符的ASCII碼。整型與字符型變量可以通用c='a';c=97;46變量的定義類型符號數(shù)的表示范圍數(shù)據(jù)類型(signed)int所占位數(shù)16整型有16-32768~32767(signed)short(signed)long32-2147483648~2147483647無unsigned

int160~65535160~65535unsigned

shortunsigned

long32有0~7位有效floatdouble3264實型字符型有有

char15位有效數(shù)字-128~127無unsigned

char880~255說明:數(shù)據(jù)類型所占字節(jié)數(shù)隨機器硬件不同而不同,上表以IBM

PC機為例:43例3:main(

){

char/*P50-例3.6*/c1,c2;C1=97;C2=98;printf("%

c,printf("%d,%c\n",c1,c2);%d\n",c1,c2);}50a,b97,98例4:main(

)/*P50-例3.7*/{

char

c1,c2;c1='a';c2='b';c1=c1-32;c2=c2-32;printf("%

c,%c\n",c1,c2);}A,B☆字符與字符串的區(qū)別(1).字符有常量與變量(2).C語言中只有字符串常量(3).C語言中用字符數(shù)組存放字符串(4).'a'與"a"在內(nèi)存中的存放形式不同char

c

1

='

a';

√char

c1="a";×\0a'a'"a"a§

3.6

變量賦初值在定義變量的同時直接賦值(初始化)。例int

a=3;√floatf=3.56;√char

c='a';√int

a,b,c=5;√int

a=b=c=3;×int

a=3,b=3,c=3;

√注意!變量賦初值是在程序運行時完成的。在執(zhí)行部分給變量賦值用賦值語句int

a,

b,

c;float

d;a=b=c=3;d=0.3;用輸入函數(shù)int

a;float

b;scanf("%d%f",&a,&b);§

3.7

各類數(shù)值型數(shù)據(jù)的混合運算整型、實型(單、雙精度)、字符型數(shù)據(jù)間可以混合運算。高低double←float↑long↑unsigned↑int←char,short←:為必定的轉(zhuǎn)換§

3.8

運算符和表達式一.C運算符簡介+-

*

/

%>

<

==

>=

<=

!=!

&& |

|~

| ^

&=及其擴展賦值運算符算術(shù)運算符關(guān)系運算符邏輯運算符位運算符

》賦值運算符條件運算符

?

:逗號運算符

,8)指針運算符

*

&求字節(jié)數(shù)運算符

sizeof強制類型轉(zhuǎn)換運算符

( 類型)分量運算符下標(biāo)運算符其它·

→[

]如函數(shù)調(diào)用運算符()55二.算術(shù)運算符和算術(shù)表達式算術(shù)運算符:+

*

/

%屬性:雙目、左結(jié)合、優(yōu)先級(同數(shù)學(xué))*:不能省略/:

若/號兩邊都是整型時,結(jié)果也為整型,%:求?;蚯笥噙\算,要求兩邊的操作數(shù)必須是整型。所有符號寫成一行,如:(1/2+5)-9C語言中只有圓括號,可以嵌套使用,但左、右括號必須匹配。應(yīng)避免兩個運算符并置。如a*b/-c應(yīng)該為a*b/(-c)。由于兩個整數(shù)相除結(jié)果仍為整數(shù),所以要得到實數(shù)結(jié)果需轉(zhuǎn)換成實數(shù)運算。如

5/12應(yīng)該寫成5.0/12或5/12.0。上下角標(biāo)不能直接寫,需轉(zhuǎn)換。數(shù)學(xué)函數(shù)(p371)的自變量要寫在括號里。將數(shù)學(xué)表達式轉(zhuǎn)換為C語言表達式1

sin(25)

X

2

cos(30)2MNR

TF

Gx

2

y

e3

x

xF=G*M*N/(R+T)1.0/2*sin(25*3.14/180)+X*X*cos(30*3.14/180)sqrt(x+2*y)-exp(3*x)+fabs(x)三.強制類型轉(zhuǎn)換運算符一般形式:(類型名)(表達式)(

int)

x

(int)(x+y)

(int)x+y例:(float)5/3類型。main(

){

float

x;int i

;x=3.6;i=(

int)

x;printf("x=%f,i=%

d",

x,

i

)

;}x=3.600000,

i=3值為1.666667(float)(5/3)

值為1.000000屬性:單目、左結(jié)合得到的類型是中間結(jié)果,最后不改變原四.自增、自減運算符++i,--i(先使i

的值加(減)1,再使用i

的值)

i++,i--(先使用i

的值,再使i

的值加(減)1)屬性:單目、右結(jié)合只能用于變量,而不能用于常量或表達式。一般為整型變量++5,5--,(a+b)++(×)例

main(

)y);{int

i=3,

j=3,

k, s

,

x, y

;k=i++;s=++i;5,1x=j--;3,5,3,1y=--

j;printf("%d,%d\n",i, j

)

;printf("%d,%d,%d,%d",k, s

,

x,}§

3.9

賦值運算符和賦值表達式1、一般形式:變量標(biāo)識符=表達式2、類型轉(zhuǎn)換(P59)實型→整型整型→實型舍棄小數(shù)。補充小數(shù)。雙精度→單精度

截取前面7位有效數(shù)字。注意不可溢出。單精度→雙精度

補充小數(shù)部分字符型→整型整型→字符型字符數(shù)據(jù)放到低8位中。低8位送到字符數(shù)據(jù)中。無符號→有符號

擴展符號位。如:x+=yx*=y+3?

x=x+y?

x=x*(y+3)按照在內(nèi)存中的

形式直接傳送。長→短:將低字節(jié)中的數(shù)據(jù)直接賦給短的短→長:短的數(shù)據(jù)直接放到長的低字節(jié)中,高字節(jié)補零或按符號位擴展。3、復(fù)合賦值運算符運算符:+=

、

-=、

*=、

/=、

%=、<<=

、>>=、

&=、

^=

、

|=功能:

變量

運算符=表達式?

變量

=

變量

運算符

表達式屬性:雙目、右結(jié)合左側(cè)必須是變量賦值轉(zhuǎn)換規(guī)則:使賦值號右邊表達式值自動轉(zhuǎn)換成其左邊變量的類型。4、賦值表達式:變量=表達式a+=aa-=2a/=a+aa*=2+3a%=(n%=2)a+=a-=a*=a//a=20//a=8//a=0//a=50//a=0//a=0寫出表達式運算后a的值,設(shè)原來

P68-3.12a=10,n=3,且均為整型§3.10

逗號運算符一般形式:表達式1,表達式2,……,表達式n屬性:左結(jié)合、優(yōu)先級最低逗號表達式的值:等于表達式n的值用途:常用于循環(huán)for語句中注意:并不是任何地方出現(xiàn)的逗號都是作為逗號運算符,例如,函數(shù)參數(shù)也是用逗號來間隔的:printf("%d,%d,%d",a,b,c);1、a=3*5,a*4

//a=15,表達式值60a=3*5,a*4,a+5

//a=15,表達式值202、x=(a=3,6*3)//賦值表達式,x=18,表達式值18x=a=3,6*a

//逗號表達式,x

溫馨提示

  • 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

提交評論