第二章 數(shù)據(jù)類型、運(yùn)算符及表達(dá)式_第1頁
第二章 數(shù)據(jù)類型、運(yùn)算符及表達(dá)式_第2頁
第二章 數(shù)據(jù)類型、運(yùn)算符及表達(dá)式_第3頁
第二章 數(shù)據(jù)類型、運(yùn)算符及表達(dá)式_第4頁
第二章 數(shù)據(jù)類型、運(yùn)算符及表達(dá)式_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

C語言程序設(shè)計(jì)第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式C語言程序設(shè)計(jì)本章重點(diǎn)內(nèi)容一、C語言數(shù)據(jù)類型

二、標(biāo)識符、常量和變量三、C運(yùn)算符和表達(dá)式四、不同類型數(shù)據(jù)的轉(zhuǎn)換C語言程序設(shè)計(jì)基本類型構(gòu)造類型指針類型空類型整型實(shí)型(浮點(diǎn)型)數(shù)據(jù)類型字符型char枚舉類型單精度實(shí)型數(shù)據(jù)類型

float雙精度實(shí)型double整型

int長整型long

短整型無符號整型數(shù)組類型結(jié)構(gòu)體類型共用體類型一、數(shù)據(jù)類型C語言程序設(shè)計(jì)類型名類型符占用字節(jié)有符號短整型[signed]short[int]2無符號短整型unsignedshort[int]2有符號基本整型[signed]int4無符號基本整型unsigned[int]4有符號長整型[signed]long[int]4無符號長整型unsignedlong[int]41整型數(shù)據(jù)1)整型數(shù)據(jù)的類型C語言程序設(shè)計(jì)2)整型數(shù)據(jù)在內(nèi)存中的存放形式整型數(shù)據(jù)在內(nèi)存中是以二進(jìn)制形式存放的。機(jī)器內(nèi)部,整型數(shù)據(jù)是以補(bǔ)碼表示的。正數(shù):其補(bǔ)碼和原碼相同。負(fù)數(shù):其補(bǔ)碼為:該數(shù)的絕對值的二進(jìn)制數(shù)按位取反加1。100011000000000001110011111111110111101111111111-35取反加1最高位最高位是符號位,其為0時(shí)是正數(shù),為1時(shí)是負(fù)數(shù)。C語言程序設(shè)計(jì)2實(shí)型數(shù)據(jù)1)實(shí)型數(shù)據(jù)的類型類型符占用字節(jié)有效數(shù)字float46~7double815~16longdouble1218~19C語言程序設(shè)計(jì)2)實(shí)型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)格式C語言程序設(shè)計(jì)3字符型數(shù)據(jù)1)字符型數(shù)據(jù)表示一個(gè)ASCII字符。類型符:char,占用一個(gè)字節(jié)。C語言程序設(shè)計(jì)

在內(nèi)存中,字符數(shù)據(jù)并不是把字符本身放到內(nèi)存單元中,而是將該字符的相應(yīng)ASCII碼(二進(jìn)制的形式)放到存儲(chǔ)單元中。

A6501000001a9701100001ASCII二進(jìn)制如:有兩個(gè)字符型數(shù)據(jù)‘A’和‘a(chǎn)’2)字符型數(shù)據(jù)在內(nèi)存中的存儲(chǔ)格式C語言程序設(shè)計(jì)

提示:因?yàn)樵趦?nèi)存中,字符數(shù)據(jù)以ASCII碼存儲(chǔ),它的存儲(chǔ)形式與整數(shù)的存儲(chǔ)形式類似,因此字符型數(shù)據(jù)和整數(shù)數(shù)據(jù)可以通用??梢曰ハ噘x值,也可參與任何整數(shù)運(yùn)算。C語言程序設(shè)計(jì)(一)標(biāo)識符

標(biāo)識符用來標(biāo)識變量名、符號常量名、函數(shù)名、

類型名和文件名。

C語言規(guī)定標(biāo)識符只能由字母(A~Z,a~z)、

數(shù)字(0~9)、下劃線(_)組成,并且其第一個(gè)字符

必須是字母或下劃線。注意:(1)C語言中,標(biāo)識符區(qū)分大小寫。(2)命名應(yīng)盡量有相應(yīng)的意義,以便于閱讀理解。

(3)關(guān)鍵字不能用作用戶自定義的標(biāo)識符。

二、標(biāo)識符、常量與變量C語言程序設(shè)計(jì)常量是在程序運(yùn)行過程中,其值不發(fā)生改變的量。1.直接常量如:12,65.2,‘B’,“Study”等。2.符號常量(宏常量)用標(biāo)識符表示的常量稱為符號常量。宏常量是有宏定義編譯處理命令定義的,宏定義的一般形式為:

#define標(biāo)識符字符串 #definePI3.1415926(二)常量C語言程序設(shè)計(jì)1)整型常量的表示

十進(jìn)制數(shù)1856-8

八進(jìn)制數(shù)以0開頭。如0126。十六進(jìn)制數(shù)以0x開頭。如0x1237。1.整型常量C語言程序設(shè)計(jì)2)整型常量的類型確定一個(gè)整數(shù),如果其值在–32768~32767

,C認(rèn)為是shortint型。一個(gè)整數(shù),如果其值超過了–32768~32767

,而在-2147483648~+2147483647之間,C認(rèn)為是int型。一個(gè)整常數(shù)其后面加一個(gè)u或U,C認(rèn)為是unsignedint型。一個(gè)整常數(shù)其后面加一個(gè)l或L,C認(rèn)為是longint型。C語言程序設(shè)計(jì)1)

實(shí)型常量的表示(1)十進(jìn)制小數(shù)形式。由數(shù)字和小數(shù)點(diǎn)組成(必須有小數(shù)點(diǎn))如0.123.12323.0.0等。注意:5是整型常量;5.0是實(shí)型常量。(2)指數(shù)形式。123*103

可以寫成123e3或123E3。注意E前面必須有數(shù)字,E后面必須是整數(shù)。一般寫成規(guī)范格式1.23E+05

2.實(shí)型常量C語言程序設(shè)計(jì)實(shí)型常量隱含按雙精度型處理。單精度型常量由常量值后跟F或f表示。長雙精度型常量由常量值后跟L或l表示。2)整型常量的類型確定C語言程序設(shè)計(jì)字符含義字符含義‘\n’‘\r’‘\0’‘\t’‘\v’‘\b’‘\f’換行回車但不換行空字符水平制表垂直制表退格走紙換頁‘\a’‘\”’‘\’’‘\\’‘\?’‘\ddd’‘\xhh’響鈴報(bào)警雙引號單引號反斜杠問號1~3位八進(jìn)制ASCII碼值代表的字符1~2位十六進(jìn)制ASCII碼值代表的字符1.字符常量:用單引號括起來的一個(gè)字符。如:‘A’

‘8’2.轉(zhuǎn)義字符常量:以“\”開頭的字符序列。3.字符型常量C語言程序設(shè)計(jì)4.字符串常量

由一對雙引號括起的字符序列稱為字符串常量,例如:

“Howdoyoudo?”

“china”

“8”C規(guī)定以字符‘\0’作為字符串結(jié)束的標(biāo)志,因此,在內(nèi)存中字符串常量所占字節(jié)數(shù)為實(shí)際字符個(gè)數(shù)+1

注意:不要把字符常量和字符串常量混淆。”a”是字符串常量,‘a(chǎn)’是字符常量,C語言程序設(shè)計(jì)

1.什么是變量變量:在程序運(yùn)行過程中,其值可以被改變的量稱為變量。變量的實(shí)質(zhì)是一個(gè)存儲(chǔ)數(shù)據(jù)的內(nèi)存單元。變量具有三個(gè)要素:變量名、數(shù)據(jù)類型和變量的值。變量名是變量的名字,用標(biāo)識符來標(biāo)識,變量存儲(chǔ)的數(shù)據(jù)就是變量的值,數(shù)據(jù)類型決定了變量所占字節(jié)的多少。(三)

變量C語言程序設(shè)計(jì)2.變量的定義變量定義的基本語法格式為:

變量類型名

變量名列表;如:

inti,j,k;/*定義i,j,k為整型變量*/

doublex1,x2;/*定義x1,x2為雙精度實(shí)型變量*/

floatf1,f2;/*定義f1,f2為單精度實(shí)型變量*/charc1,c2;/*定義c1,c2為字符型變量*/注意:c語言規(guī)定:變量必須先定義后使用。C語言程序設(shè)計(jì)

定義變量時(shí)應(yīng)注意:(1)變量名的命名,要遵循C語言中關(guān)于標(biāo)識符的規(guī)定。(2)在同一個(gè)函數(shù)體內(nèi),不能定義同名的兩個(gè)變量。(3)在C語言中,所有變量的定義語句必須放在函數(shù)體的最開始處。(4)可以在一個(gè)類型說明符后,定義多個(gè)相同類型的變量。各變量名之間用逗號間隔。(5)變量類型名與變量名之間至少用一個(gè)空格間隔。C語言程序設(shè)計(jì)(6)C語言中,允許在對變量定義時(shí)給其賦初值(初始化)。例如:inta=2;/*定義a為整型變量,初值為2*/

charc=’x’;/*定義c為字符型變量,初值為’x’*/inta,b=2;

/*定義a,b為整型變量,只對b賦出值為2*/注意:不能以下格式對a,b變量賦初值,

inta=b=2;

應(yīng)該分別賦初值:inta=2,b=2;C語言程序設(shè)計(jì)(7)可使用const類型修飾符用const修飾的標(biāo)識符為常量。const類型修飾符必須放在它所修飾的類型名之前。

例如:

#include<stdio.h>voidmain()

{inta=3,x,y;intconstb=586542135;a=6;x=a+b;y=b-a;printf(“X=%dY=%d\n”,x,y);}

C語言程序設(shè)計(jì)(一)

運(yùn)算符1)運(yùn)算符:能夠完成某種操作(運(yùn)算)的符號。

2)根據(jù)運(yùn)算符的運(yùn)算對象(操作數(shù))的多少,運(yùn)算符可分為:①單目(一元)運(yùn)算符i++

--i-n②雙目(二元)運(yùn)算符a+bd/e③三目(三元)運(yùn)算符

x>y?x+3:y*9(條件運(yùn)算符)三、C語言運(yùn)算符和表達(dá)式C語言程序設(shè)計(jì)優(yōu)先級運(yùn)算符操作數(shù)結(jié)合性1

()[]->.左右2!~-++--&*sizeof1右左3*/%2左右4

+-2左右5

<<>>2左右6

<<=>=>2左右7

==!=2左右8

&2左右9

^2左右10

|2左右11

&&2左右12

||2左右13

?:3右左14=*=/=%=+=-=

&=|=^=<<=>>=2右左15,2左右C語言程序設(shè)計(jì)(二)

表達(dá)式1、C表達(dá)式:由C運(yùn)算符和運(yùn)算對象構(gòu)成的式子。運(yùn)算對象可以是常量、變量、函數(shù)或表達(dá)式。

2、表達(dá)式的書寫原則(1)C語言的表達(dá)式只能采用線性的形式書寫。例如:①應(yīng)寫成1/3.0+i+j*j*j。

②應(yīng)寫成(a+b)/(c+d)*e+f。

C語言程序設(shè)計(jì)(2)C語言的表達(dá)式只能使用C語言中合法的運(yùn)算符,而且運(yùn)算符不能省略。例如:①πr2應(yīng)寫成3.14159*r*r。(3)對有些操作須調(diào)用庫函數(shù)完成,①應(yīng)寫成0.5*a*b*sin(alph)。②|x-y|應(yīng)寫成fabs(x-y)。③y+2X

應(yīng)寫成y+pow(2,x)。C語言程序設(shè)計(jì)3、表達(dá)式在求值時(shí),遵循以下規(guī)則(1)優(yōu)先級:不同優(yōu)先級的運(yùn)算符出現(xiàn)在同一表達(dá)式時(shí),按運(yùn)算符的優(yōu)先級的高低次序執(zhí)行。

例如:

d=a+b*c;/*先乘后加*/(2)結(jié)合性:是指表達(dá)式中出現(xiàn)同優(yōu)先級的操作符時(shí),該先做哪個(gè)操作符的規(guī)定。結(jié)合方向:“自左向右”、“自右向左”例如:

a+b-c從左至右d=a=b=3從右至左C語言程序設(shè)計(jì)4、表達(dá)式的分類

C語言表達(dá)式種類很多,有多種分類方法。我們一般依據(jù)運(yùn)算的特征將表達(dá)式分為:①算術(shù)表達(dá)式,如a+b*2.0-3.0/5.0②關(guān)系表達(dá)式,如x>=y,cj>=60③邏輯表達(dá)式,如(x>=2)&&(x<=8)④賦值表達(dá)式,如a=b=c=1x=0.0⑤條件表達(dá)式,如(a>b)?a:b⑥逗號表達(dá)式,如a=2,b=a*a,c=sqrt(b)C語言程序設(shè)計(jì)5、表達(dá)式值的數(shù)據(jù)類型(1)每個(gè)表達(dá)式都有一個(gè)確定的值,因而有確定的數(shù)據(jù)類型。(2)表達(dá)式的數(shù)據(jù)類型取決與最后執(zhí)行的運(yùn)算符,如:34.5+(1>6)為算術(shù)表達(dá)式,類型是double型,值34.5

34.5+1>6為關(guān)系表達(dá)式,類型是int型,值1C語言程序設(shè)計(jì)(三)算術(shù)運(yùn)算符和算術(shù)表達(dá)式

1、算術(shù)運(yùn)算符分類單目運(yùn)算符

-負(fù)號運(yùn)算、++自增、--自減雙目運(yùn)算符

+加、-減、*乘、/除、%求余

C語言程序設(shè)計(jì)解釋:

“/”為除法運(yùn)算符。C規(guī)定如果是兩個(gè)整型數(shù)相除,其意義就是整數(shù)除,結(jié)果為int型。如至少有一個(gè)操作數(shù)為實(shí)數(shù)時(shí),其意義是實(shí)數(shù)除,結(jié)果為double型。如:5/2=25.0/2=2.5

“%”為取余運(yùn)算符。如:5%3=2注意:

1.只能對整數(shù)取余數(shù),不能對浮點(diǎn)數(shù)取余數(shù)。如表達(dá)式10.4%5是錯(cuò)誤的。

2.運(yùn)算結(jié)果的符號與左操作數(shù)相同。

-35%8=-335%-8=3C語言程序設(shè)計(jì)2、自增操作符和自減操作符

自增運(yùn)算符“++”,功能是將變量的值加1;自減運(yùn)算符“--”,功能是將變量的值減1。

“++”、“--”是對一個(gè)變量進(jìn)行簡單的加1算術(shù)運(yùn)算,運(yùn)算的結(jié)果仍賦給該變量。所以,實(shí)際上自增、自減運(yùn)算是算術(shù)運(yùn)算和賦值運(yùn)算的結(jié)合。運(yùn)算符“++”或“--”既可以作為一個(gè)變量的前綴,也可以作為一個(gè)變量的后綴。例如:++x--xx++x--前綴和后綴的區(qū)別:對一個(gè)變量,施加前綴或后綴運(yùn)算其結(jié)果是相同的,都是該變量的值加1或減1。但是,當(dāng)施加前綴或后綴運(yùn)算的變量作為表達(dá)式中其它運(yùn)算符的一個(gè)操作對象時(shí),則參與運(yùn)算的值是不同的。前綴運(yùn)算是先將該變量的值增1(或減1),然后再用該變量的值參與表達(dá)式中的其它運(yùn)算;而后綴運(yùn)算是先用該變量的值參與表達(dá)式中的其它運(yùn)算,然后將該變量的值增1(或減1)。C語言程序設(shè)計(jì)例如:

intx,a=5;x=3+(++a);表達(dá)式x=++a的運(yùn)算等價(jià)于a=a+1、x=3+a,即先把變量a的值加1,然后再把加1后的a值賦給x。執(zhí)行結(jié)果為:a的值為6,x的值也為9。

而對于intx,a=5;x=3+a++;表達(dá)式x=a++的運(yùn)算等價(jià)于x=3+a、a=a+1即先把變量a的值賦給x,然后a的值加1。執(zhí)行結(jié)果為:a的值為6,而x的值為8。

注意:

自加或自減運(yùn)算只能用于變量,不能用于常量或表達(dá)式;錯(cuò)誤:25++(i+j)++C語言程序設(shè)計(jì)3、算術(shù)表達(dá)式

表達(dá)式中含有算術(shù)運(yùn)算符的表達(dá)式

例如:a+b*2.0-3.0/5.0 x/2+y*3-6.8 x%2 x+12 a*a+b*c-6C語言程序設(shè)計(jì)(四)賦值運(yùn)算符和賦值表達(dá)式1、賦值運(yùn)算符:=賦值表達(dá)式:變量=表達(dá)式賦值運(yùn)算時(shí)先計(jì)算右邊表達(dá)式的值,然后將右邊表達(dá)式的值賦給左邊變量,并以此值作為整個(gè)賦值表達(dá)式的值。注意:賦值運(yùn)算符具有“自右向左”的結(jié)合性,賦值運(yùn)算符右邊的表達(dá)式也可以是賦值表達(dá)式:

例如:a=b=5;

等同于a=(b=5);C語言程序設(shè)計(jì)2、復(fù)合賦值運(yùn)算算術(shù)復(fù)合賦值運(yùn)算符:+=、-=、*=、/=、%=位復(fù)合賦值運(yùn)算符:&=、|=、^=、>>=、<<=

一般形式:

變量☆=表達(dá)式符。

等價(jià)于:

變量=變量☆表達(dá)式

☆代表任一雙目算術(shù)運(yùn)算符或位運(yùn)算

C語言程序設(shè)計(jì)例如:inta=3;a+=2;等價(jià)于a=a+2floatx=1.2,y=2.1;y*=x+3.4;等價(jià)于y=y*(x+3.4)(4)inta=1,b=2;b/=a+=1;等價(jià)于b=b/(a=a+1)C語言程序設(shè)計(jì)(五)關(guān)系運(yùn)算符和關(guān)系表達(dá)式一、關(guān)系運(yùn)算符:<、>、<=、>=、==、!=<、<=、>、>=的優(yōu)先級相同,==、!=的優(yōu)先級相同,前者的優(yōu)先級高于后者。二、關(guān)系表達(dá)式關(guān)系表達(dá)式的運(yùn)算結(jié)果是一個(gè)邏輯量,即“真”或“假”,關(guān)系表達(dá)式所表達(dá)的關(guān)系如果成立,其值為“真”;若不成立,其值為“假”。如:X>=60在C語言中沒有邏輯類型,而是用1代表“真”,用0代表“假”。所以關(guān)系表達(dá)式的值,不是0,就是1,其類型是int型。

C語言程序設(shè)計(jì)(六)邏輯運(yùn)算符與邏輯表達(dá)式1、邏輯運(yùn)算符!邏輯非&&邏輯與

||邏輯或2、邏輯表達(dá)式及其意義

&&:兩操作數(shù)同為真時(shí)結(jié)果為真

!:取反

||:兩操作數(shù)只要有一個(gè)為真時(shí)結(jié)果就為真

C語言程序設(shè)計(jì)3、優(yōu)先級:!>&&>||&&和||運(yùn)算符的優(yōu)先級低于算術(shù)運(yùn)算符和關(guān)系運(yùn)算符,而高于賦值運(yùn)算符。4、操作數(shù)是邏輯量C語言在進(jìn)行邏輯運(yùn)算時(shí),把所有的運(yùn)算對象都看做是邏輯量,如果其值為0,則為假,非0則為真。邏輯表達(dá)式的運(yùn)算結(jié)果仍然是邏輯量(0或1)如:(6+5)&&-8結(jié)果為1

!5結(jié)果為0

6||0結(jié)果為1C語言程序設(shè)計(jì)

(七)條件運(yùn)算符和條件表達(dá)式1、語法形式:

<表達(dá)式1>?<表達(dá)式2>:<表達(dá)式3>意義:如果表達(dá)式1的值為真,條件表達(dá)式的結(jié)果為表達(dá)式2的值;如果表達(dá)式1的值為假,條件表達(dá)式的結(jié)果為表達(dá)式3的值;C語言程序設(shè)計(jì)#include<stdio.h>Voidmain(){intx;scanf(″%d″,&x);

x>0?printf(″%s″,″正數(shù)″):printf(″%s″,″負(fù)數(shù)″);}例:判斷整數(shù)的正負(fù)。C語言程序設(shè)計(jì)注意:結(jié)合方向“自右向左”

a>b?a:c>d?c:d相當(dāng)于a>b?a:(c>d?c:d)C語言程序設(shè)計(jì)(八)逗號運(yùn)算符和逗號表達(dá)式1、逗號運(yùn)算是雙目運(yùn)算,一般形式如下:表達(dá)式1,表達(dá)式2逗號表達(dá)式的的求解過程是:先求解表達(dá)式1,再求解表達(dá)式2,整個(gè)表達(dá)式的值是表達(dá)式2的值。逗號表達(dá)式的的求解過程是:先求解表達(dá)式1,再求解表達(dá)式2,整個(gè)表達(dá)式的值是表達(dá)式2的值。如:q=(a=2,a*6)先計(jì)算a=2,再計(jì)算a*6,并以此作為整個(gè)表達(dá)式的值,表達(dá)式的值為12。C語言程序設(shè)計(jì)#include<stdio.h>voidmain(){inti,j,k;i=1;j=2;k=3;printf(“%d%d%d\n”,i,j,k);}#include<stdio.h>voidmain(){inti,j,k;i=1,j=2,k=3;printf(“%d%d%d\n”,i,j,k);}三個(gè)賦值語句一個(gè)逗號表達(dá)式語

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論