基本數(shù)據(jù)類型常量和變量_第1頁(yè)
基本數(shù)據(jù)類型常量和變量_第2頁(yè)
基本數(shù)據(jù)類型常量和變量_第3頁(yè)
基本數(shù)據(jù)類型常量和變量_第4頁(yè)
基本數(shù)據(jù)類型常量和變量_第5頁(yè)
已閱讀5頁(yè),還剩73頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

共73頁(yè)第1

頁(yè)§2-1基本數(shù)據(jù)類型C語(yǔ)言基本數(shù)據(jù)類型有五種:字符型整型單精度浮點(diǎn)型雙精度浮點(diǎn)型無(wú)值類型charintfloatdoublevoid類型說(shuō)明符一、五種基本數(shù)據(jù)類型C語(yǔ)言有四種類型修飾符:短長(zhǎng)有符號(hào)無(wú)符號(hào)shortlongsignedunsigned類型修飾符注意:類型修飾符不能單獨(dú)使用,必須與類型說(shuō)明符配合在一起使用C語(yǔ)言采用類型說(shuō)明符說(shuō)明不同的數(shù)據(jù)類型共73頁(yè)第2

頁(yè)§2-1基本數(shù)據(jù)類型(續(xù))基本數(shù)據(jù)類型的數(shù)據(jù)存儲(chǔ)格式和取值范圍:類型占用內(nèi)存單元取值范圍數(shù)據(jù)存儲(chǔ)格式

char1(8位)0~255ASCII碼

int2(16位)-32768~32767二進(jìn)制補(bǔ)碼

float4(32位)±3.4*10-38~±3.4*10387位有效數(shù)字

double8(64位)±10-308~±10308 15位有效數(shù)字二、基本數(shù)據(jù)類型的數(shù)據(jù)表示與取值范圍無(wú)法表示全體實(shí)數(shù)保存字符對(duì)應(yīng)的ASCII碼-2151000,0000,0000,0000215-10111,1111,1111,1111float:尾數(shù)24位+階數(shù)8位double:尾數(shù)52位+階數(shù)12位

共73頁(yè)第3

頁(yè)§2-1基本數(shù)據(jù)類型-intint型數(shù)的表示范圍:二進(jìn)制16bit(2Byte)000000000000000100000000000000110111111111111111=1=3int型整數(shù)的最大值int型表示數(shù)的范圍:-32768~32767例2_2021111111111111111注意:使用中要防止數(shù)據(jù)溢出=-1int型整數(shù)的最小值1000000000000000=215-1=32767=-215=-32768返回共73頁(yè)第4

頁(yè)§2-1基本數(shù)據(jù)類型-intmain(){inti;i=1;i=i*2;printf(”\ni=%d”,i);i=i*3;printf(”\ni=%d”,i);i=i*4;printf(”\ni=%d”,i);i=i*5;printf(”\ni=%d”,i);i=i*6;printf(”\ni=%d”,i);i=i*7;printf(”\ni=%d”,i);i=i*8;printf(”\ni=%d”,i);i=i*9;printf(”\ni=%d”,i);i=i*10;printf(”\ni=%d”,i);}

期望結(jié)果

i=2i=6i=24i=120i=720i=5040i=40320i=362880i=3628800

實(shí)際運(yùn)行結(jié)果

i=2i=6i=24i=120i=720i=5040i=-25216i=-30336i=24320產(chǎn)生數(shù)據(jù)溢出上溢下溢返回例C2_202共73頁(yè)第5

頁(yè)§2-1基本數(shù)據(jù)類型-float返回有效數(shù)字的意義?

二進(jìn)制7位

二進(jìn)制23位單精度實(shí)型尾數(shù)階碼2-23

<=

|尾數(shù)|

<=1-2-230.000,000,12<=|尾數(shù)|<=0.999,999,88例C2_203數(shù)的范圍的意義?2-128<=|階碼|<=21272.9*10-39<=|階碼|<=1.7*1038尾數(shù)的符號(hào)位階碼的符號(hào)位共73頁(yè)第6

頁(yè)§2-1基本數(shù)據(jù)類型(續(xù))加修飾符數(shù)據(jù)類型的數(shù)據(jù)存儲(chǔ)格式和取值范圍:

shortint<==>int<==>short signed<==>int<==>shortint<==>short類型占用內(nèi)存單元取值范圍

unsignedint2字節(jié) 0~65535

longint 4字節(jié)-2147483648~2147483647

unsignedlong4字節(jié)0~4294967295-231231-1216-1232-1共73頁(yè)第7

頁(yè)§2-2常量及其類型常量是指在程序運(yùn)行過(guò)程中只保持不變的量。計(jì)算機(jī)根據(jù)常量的書寫形式識(shí)別其數(shù)據(jù)類型共73頁(yè)第8

頁(yè)§2-2常量及其類型(續(xù))

整型常量(3種形式) 10進(jìn)制

8進(jìn)制

16進(jìn)制實(shí)型常量(2種形式)

十進(jìn)制 指數(shù)

字符常量字符串常量一、常數(shù):0

~9整型常量實(shí)例:0

~7以數(shù)字0開(kāi)頭:0

~9,A~F/a~f,以0x或0X開(kāi)頭:符號(hào)、整數(shù)、小數(shù)點(diǎn)和小數(shù):用e或E和表示指數(shù)部分實(shí)型常量實(shí)例字符常量字符串常量共73頁(yè)第9

頁(yè)§2-2常量及其類型-整型常數(shù)實(shí)例整型常量的不同表示方法:

10進(jìn)制:

100-80+123

8進(jìn)制:

010024010016進(jìn)制:

0x380x100X100XFF0xa整型常量的類型:

1.在整型表示范圍之內(nèi),根據(jù)值大小默認(rèn)類型2.在常量后面加l或L,則認(rèn)為它是longint型例如:都是longint型常量

10進(jìn)制:-123L0L432l8進(jìn)制:010L024L0100L16進(jìn)制:

0x38L0x1000L0XFFlx0a0000l返回共73頁(yè)第10

頁(yè)§2-2常量及其類型-實(shí)型常數(shù)實(shí)例實(shí)數(shù)在計(jì)算機(jī)中是近似表示的。實(shí)數(shù)只能用十進(jìn)制表示。實(shí)數(shù)有兩種書寫形式:

正負(fù)號(hào)整數(shù)部分小數(shù)點(diǎn)小數(shù)部分±小數(shù)格式:指數(shù)格式:小數(shù)格式E或e1~3位整數(shù)共73頁(yè)第11

頁(yè)§2-2常量及其類型-實(shí)型常數(shù)實(shí)例實(shí)型常量的不同表示方法:

小數(shù):1.01.+12.0-12.00.0指數(shù):1e31.8e-3-123e-6

等價(jià)于:10001.8*10-3-123*10-6

指數(shù):-.1e-3.1E-10

等價(jià)于:-0.1*10-30.1*10-10返回共73頁(yè)第12

頁(yè)§2-2常量及其類型-字符常數(shù)字符型常量:用單引號(hào)括起來(lái)的單個(gè)字符實(shí)例:’A’

’g’’#’’0’’2’’+’’,’’;’’(’’)’字符定界符:?jiǎn)我?hào)’字符型數(shù)據(jù)的存儲(chǔ)格式:ASCII碼()65103354850返回如何表示不可顯示字符?回車/退格/TAB?如何表示定界符?’’’產(chǎn)生歧異轉(zhuǎn)義符\:將\后面的字符轉(zhuǎn)換為其它含義共73頁(yè)第13

頁(yè)§2-2常量及其類型-轉(zhuǎn)義符常數(shù)字符形式功能使用舉例

\0字符串結(jié)束標(biāo)志

\n換行(ASCII碼為10) printf(”\n”);

\t橫向跳格 printf(”\t”);

\b退格

\r回車(ASCII碼為13)

\f走紙換頁(yè)

\\字符\(ASCII碼為92)’\\’

表示字符

\

\’單引號(hào) ’\’’表示字符’

\”雙引號(hào) ’\”’表示字符”

\ddd用8進(jìn)制表示字符 ’a’=’\141’’A’=’\101’

換行符’\12’

\xhh用16進(jìn)制表示字符’a’=’\x61’’A’=’\x41’

換行符’\xa’返回共73頁(yè)第14

頁(yè)§2-2常量及其類型-字符串常數(shù)字符串常量:用雙引號(hào)括起來(lái)的字符序列實(shí)例:”ThisisCstring.”

”a”

(1個(gè)空格)

””

(不含空格)串定界符:雙引號(hào)

”字符串長(zhǎng)度:字符串中包含的字符數(shù)量。返回串長(zhǎng)=17串長(zhǎng)=1串長(zhǎng)=1串長(zhǎng)=0"\t\"Name\\Address\n"串長(zhǎng)=15空串實(shí)例:"\"Cisveryeasy.\""串長(zhǎng)=17注意:字符串"a"

與字符’a’

的區(qū)別"Hesaid\"ok.\"\n"串長(zhǎng)=13共73頁(yè)第15

頁(yè)2-2常量及其類型-字符串常數(shù)字符串常量的存儲(chǔ)方式按字符串中字符從左到右的順序依次占用連續(xù)的存儲(chǔ)單元,每個(gè)字符占用1個(gè)字節(jié),存放其對(duì)應(yīng)的ASCII代碼值。

例如:字符串常量〞Iamaboy〞4920616d206120626f7400系統(tǒng)自動(dòng)在每個(gè)字符串常量的末尾追加一個(gè)零字符,作為字符串的結(jié)束共73頁(yè)第16

頁(yè)2-2常量及其類型-字符串常數(shù)表示方式:〞字符串〞

ˊ字符ˊ存儲(chǔ)方式:字符常量占1字節(jié)

字符串占長(zhǎng)度+1

字節(jié)字符常量存放在字符變量中,沒(méi)有字符串變量。字符常量可以和整數(shù)混合運(yùn)算,而字符串常量不可以字符串與字符常量的區(qū)別共73頁(yè)第17

頁(yè)§2-3符號(hào)常量-宏定義常量定義形式之一——宏定義#define

標(biāo)識(shí)符

常量

# 宏命令專用定義符號(hào)

define

命令

標(biāo)識(shí)符

宏替換名(一般采用大寫字符)二、常量定義與符號(hào)常量常量定義實(shí)例注意:符號(hào)常量與變量不同,它的值在程序運(yùn)行過(guò)程中不能改變,也不能重新賦值。用定義的一個(gè)標(biāo)識(shí)符來(lái)代表一個(gè)常量,稱為符號(hào)常量共73頁(yè)第18

頁(yè)§2-3符號(hào)常量-宏定義實(shí)例常量定義實(shí)例#defineONE1

#define

PAI

3.1415926

#define

TV

”television”

#define

MAX

10#defineTWO

ONE+ONE使用方法

a=8+2;printf(”%s”,”television”);

s=3.14159*r*r;

intarray[10];返回a=b+TWO;printf(”%s”,TV);s=PAI*r*r;intarray[MAX];共73頁(yè)第19

頁(yè)§2-3符號(hào)常量-宏定義實(shí)例main(){floatr,c,s,v;r=3;c=2*3.1415926*r;s=3.1415926*r*r;v=4*3.1415926*r*r*r/3;printf(“r=%.2f\nc=%.4f,s=%.4f,v=%.4f\n”,r,c,s,v);}#definePI3.1415926main(){floatr,c,s,v;r=3;c=2*PI*r;s=PI*r*r;v=4*PI*r*r*r/3;printf(“r=%.2f\nc=%.4f,s=%.4f,v=%.4f\n”,r,c,s,v);}共73頁(yè)第20

頁(yè)§2-3符號(hào)常量-宏定義說(shuō)明宏定義必須以#define開(kāi)頭,行末不加分號(hào)每個(gè)#define只能定義一個(gè)宏,且只占一個(gè)書寫行#define命令一般出現(xiàn)在函數(shù)的外部,其有效范圍為從開(kāi)始處到本源程序文件結(jié)束使用宏定義時(shí)可使用已定義過(guò)的宏,稱為宏定義的嵌套編譯系統(tǒng)只對(duì)程序中出現(xiàn)的宏名做簡(jiǎn)單的替換,不做語(yǔ)法檢查使用宏定義時(shí)應(yīng)注意以下幾點(diǎn):共73頁(yè)第21

頁(yè)§2-3符號(hào)常量-const定義及實(shí)例常量定義形式之二——const定義

const定義的符號(hào)常數(shù)既有類型也有值一般形式為:const數(shù)據(jù)類型標(biāo)識(shí)符=常數(shù)表達(dá)式例如:constintmax=300;

constfloatx=max+3.14;

共73頁(yè)第22

頁(yè)§2-3符號(hào)常量-const定義說(shuō)明const定義是以關(guān)鍵字const開(kāi)頭、以分號(hào)結(jié)尾的C語(yǔ)句每個(gè)const語(yǔ)句可以定義多個(gè)同類型的符號(hào)常數(shù),相互之間用逗號(hào)隔開(kāi),例如:

constintx=20,y=30;constfloata=3.5,b=4.6;const定義即可以出現(xiàn)在函數(shù)外部,也可以出現(xiàn)在函數(shù)體內(nèi)使用定義時(shí)應(yīng)注意以下幾點(diǎn):使用const定義符號(hào)常數(shù)時(shí)應(yīng)注意以下幾點(diǎn):共73頁(yè)第23

頁(yè)§2-3符號(hào)常量舉例#definePI3.1415926main(){floatc,a,s,v;constfloatRADIUS=2.5;c=2*PI*RADIUS;a=PI*RADIUS*RADIUS;s=4*a;v=4*a*RADIUS/3;printf("Circuference=%f\n",c);printf("Area=%f\n",a);printf("SurfaceArea=%f\n",s);printf("Volumn=%f\n",v);}共73頁(yè)第24

頁(yè)§2-4變量的定義及初始化變量:在程序運(yùn)行過(guò)程中允許改變的量變量代表存儲(chǔ)器中的一個(gè)位置C語(yǔ)言規(guī)定,任何變量都必須在使用前定義一、變量定義的基本概念共73頁(yè)第25

頁(yè)§2-4變量的定義及初始化-變量的定義變量定義的一般格式:[存儲(chǔ)類型]

數(shù)據(jù)類型變量列表;例如:static

inti;

charch,str;

long

k=1,m=0x12345678;doublex,y=1;可以存放哪種類型的數(shù)據(jù)變量的命名規(guī)則與標(biāo)識(shí)符相同二、變量的定義共73頁(yè)第26

頁(yè)§2-3變量與變量說(shuō)明

變量名稱:編程時(shí)使用(進(jìn)行編程)

–變量的值:程序運(yùn)行時(shí)使用(進(jìn)行運(yùn)算)

–變量地址:程序運(yùn)行時(shí),要將變量的值保存在計(jì)算機(jī)的存儲(chǔ)單元中,每個(gè)存儲(chǔ)單元都有唯一的內(nèi)存地址。變量在內(nèi)存中占據(jù)的存儲(chǔ)單元的地址就是變量的地址。二、變量的3個(gè)屬性:共73頁(yè)第27

頁(yè)§2-3變量與變量說(shuō)明變量在說(shuō)明之后,沒(méi)有固定的初始值,要先賦值(給定一個(gè)初始值),后使用。變量賦初值將變量說(shuō)明與賦初值合一,在說(shuō)明變量時(shí)同時(shí)完成。實(shí)例

charcc='a',dd='\n'; int x=10,y=-10,z; doubletry=28.5,w=1e10;三、變量賦初值共73頁(yè)第28

頁(yè)第三章運(yùn)算符一、運(yùn)算符簡(jiǎn)介按運(yùn)算類型分類

1.

算術(shù)運(yùn)算符 2.

關(guān)系運(yùn)算符

3.

邏輯運(yùn)算符4.

位運(yùn)算符

5.

賦值與賦值組合運(yùn)算符6.

自增自減運(yùn)算符

7.條件運(yùn)算

8.指針運(yùn)算

9.

其它運(yùn)算符按運(yùn)算對(duì)象的數(shù)目分類

◆單目運(yùn)算

◆雙目運(yùn)算

◆三目運(yùn)算目:進(jìn)行運(yùn)算時(shí)需要的操作數(shù)的數(shù)量共73頁(yè)第29

頁(yè)§3-1運(yùn)算符-算術(shù)運(yùn)算一、算術(shù)運(yùn)算符運(yùn)算符(雙目運(yùn)算符/單目運(yùn)算符)

+加法運(yùn)算12

正值運(yùn)算14-減法運(yùn)算12

負(fù)值運(yùn)算14*乘法運(yùn)算13/除法運(yùn)算13%求余運(yùn)算13優(yōu)先級(jí):*/%同級(jí)(高),+

-同級(jí)(低)結(jié)合性:相同優(yōu)先級(jí)運(yùn)算符進(jìn)行運(yùn)算時(shí)的次序

自左向右(標(biāo)記為

)共73頁(yè)第30

頁(yè)§3-1運(yùn)算符-算術(shù)運(yùn)算實(shí)例1.參加運(yùn)算的對(duì)象都是int型,結(jié)果截取為int型10/3 11/310.0/3 11/3.1/2 1./210/5*3 10/(5*3)2.求余運(yùn)算的對(duì)象必須是整型

9%3 1%310%3 10%-3-10%3 -10%-3=3=3=3.3333=3.66667=0=0.5=6=0=0=1=1=1=-1=-1共73頁(yè)第31

頁(yè)§3-1運(yùn)算符-自增自減運(yùn)算二、自增自減運(yùn)算符運(yùn)算符(單目←)

++

自增 14

–– 自減 14++和––為單目運(yùn)算,只能作用于變量只能對(duì)int、char、long和指針變量進(jìn)行運(yùn)算功能:

++x <==>x=x+1

––x <==>x=x–1 (前綴)

x++ <==>x=x+1 x––

<==>x=x–1 (后綴)共73頁(yè)第32

頁(yè)§3-1運(yùn)算符-自增自減運(yùn)算自增(自減)有前綴和后綴之分。前綴形式:先自增(自減)再引用后綴形式:先引用再自增(自減)前綴與后綴的區(qū)別:

y=++x;<==>x=x+1;

y=x;

x先加1再賦值

y=x++;<==>y=x;

x=x+1;

x先賦值再加1共73頁(yè)第33

頁(yè)§3-1運(yùn)算符-自增自減運(yùn)算實(shí)例實(shí)例(1)

++i;i++;

因?yàn)樵诒磉_(dá)式中沒(méi)有其它運(yùn)算,結(jié)果一樣。(2)

x=1;y=++x;

結(jié)果:x=2,y=2

y=++x;<==>x=x+1;y=x;

在做賦值運(yùn)算之前,x先加1,然后將x賦給y(3)x=1;y=x++;

結(jié)果:x=2,y=1y=x++;<==>y=x;x=x+1;先將x

賦值給y,然后x

再加1共73頁(yè)第34

頁(yè)

x=3,z=3

x=3,y=6,z=3*6=18

x=3,y=6,z=2*6=12

x=3,y=6,z=3*5=15

x=3,y=6,z=2*5=10

x=4,z=4*4=16注意,以下操作是錯(cuò)誤的:

x=++(i+j)+1;j=++

(5+x);y=++x*++x;§3-1運(yùn)算符-自增自減運(yùn)算實(shí)例實(shí)例已知:intx=2,y=5,z;

z=++x;

z=++x

*

++y;

z=x++

*

++y;z=++x

*

y++;

z=x++

*

y++;z=++x

*

++x;邏輯上雖然正確,但在實(shí)際編程中容易產(chǎn)生誤解,應(yīng)當(dāng)避免共73頁(yè)第35

頁(yè)§3-1運(yùn)算符-自增自減運(yùn)算實(shí)例實(shí)例已知:inti=1,j=2,k;k=i+++j;C語(yǔ)言處理運(yùn)算符(標(biāo)識(shí)符)時(shí),遵循自左向右組合的原則,兩個(gè)‘+’號(hào)是一個(gè)運(yùn)算符,故處理成(i++)+j。k=i+++++j;不能編譯通過(guò)。原因是編譯器將前兩個(gè)‘+’處理成自增,接下來(lái)又將兩個(gè)‘+’號(hào)處理為自增,故不合語(yǔ)法。編程者可用空格或括號(hào)來(lái)表示正確的含義:k=i+++++j;

注意:一般不要用這樣的語(yǔ)句。共73頁(yè)第36

頁(yè)§3-2運(yùn)算符-賦值與賦值組合運(yùn)算三、賦值與賦值組合運(yùn)算符運(yùn)算符(雙目←)

賦值運(yùn)算: =2 賦值組合運(yùn)算:e1

op=e22

等于于:e1=e1

op(e2) 其中:op為下列10個(gè)運(yùn)算符之一+–*/%<<>>|&∧

e1為可以進(jìn)行賦制操作的變量

e2為合法的表達(dá)式例:x+=2; <==>x=x+2; x*=y+1; <==>x=x*(y+1);

不等價(jià)

x=x*y+1; x>>=2; <==>x=x>>2;共73頁(yè)第37

頁(yè)§3-3運(yùn)算符-關(guān)系運(yùn)算四、關(guān)系運(yùn)算符運(yùn)算符(雙目運(yùn)算符

)>大于10>=大于等于10<小于10<=小于等于10

==

等于 9!=不等于

9優(yōu)先級(jí):>>=<<=同級(jí)(高),!===同級(jí)(低)關(guān)系運(yùn)算的結(jié)果應(yīng)該為邏輯型“真”或“假”

C語(yǔ)言中沒(méi)有邏輯型,將邏輯型數(shù)值化處理,用整型1表示“真”,用整型0表示“假”。共73頁(yè)第38

頁(yè)§3-3運(yùn)算符-關(guān)系運(yùn)算實(shí)例實(shí)例邏輯表達(dá)式

7>5的值是

1,5>7的值是

0。已知:inta=13,b=2,c=1;a>b a<=b a!=b a==b (a>b)==ca>b==ca-b==c 成立,結(jié)果為1不成立,結(jié)果為

0成立,結(jié)果為1不成立,結(jié)果為0結(jié)果為1與上面等價(jià),結(jié)果為1等價(jià)于(a-b)==1,結(jié)果為0?

如何判斷數(shù)學(xué)中的邏輯關(guān)系:0≤a≤9?

0<=a<=9等價(jià)于(0<=a)<=9結(jié)果恒為1

共73頁(yè)第39

頁(yè)§3-3運(yùn)算符-邏輯運(yùn)算五、邏輯運(yùn)算符運(yùn)算符

&&邏輯與(雙目)5(→)

||邏輯或(雙目)4(→)

!邏輯非(單目)14(←)邏輯運(yùn)算關(guān)系邏輯運(yùn)算真值表ab!a!ba&&ba||b11

0

01110

010101

10

0100

110

0共73頁(yè)第40

頁(yè)§3-3運(yùn)算符-邏輯運(yùn)算式2

(y||b)&&(y

||a

)

1結(jié)果2結(jié)果例:要判斷0≤x≤9是否成立:(

0<=x

)&&(

x<=9

)

如果沒(méi)有括號(hào):0

<=

x

&&

x

<=

9

等價(jià)

結(jié)果

結(jié)果

實(shí)例:比較下列兩個(gè)邏輯表達(dá)式的執(zhí)行過(guò)程式1

y||b&&y||a共73頁(yè)第41

頁(yè)§3-4運(yùn)算符-位運(yùn)算六、位運(yùn)算符運(yùn)算符

>>

按位右移(雙目)11(→)

<<

按位左移(雙目)11(→)

&

按位與(雙目)

8(→)

按位異或(雙目)7(→)

|

按位或(雙目)

6(→)~~ 按位反(單目)

14

(←)真值表aba∧b~a~b000110 11101010111000共73頁(yè)第42

頁(yè)實(shí)例:已知:intx=7,y=10,z=1;設(shè)字長(zhǎng)為8位

x&y= x&z=x

|y=y|

z=

x^y=

~

x=

–x=x<<2=y>>2=x>>2=2(00000111

&00001010=0010) 1(00000111

&00000001=0001)15(00000111

|00001010=1111)11(00001010|00000001=1011)13(00000111

^00001010=1101)–8(

~

0000

0111)=1111

1000–728(00000111

<<2=0001

1100)2(00001010>>2=00000010)1(00000111

>>2=00000001)§3-4運(yùn)算符-位運(yùn)算共73頁(yè)第43

頁(yè)說(shuō)明關(guān)于>>:右移一位=縮小1/2關(guān)于<<:左移一位=擴(kuò)大2倍關(guān)于~: 因?yàn)椋?~

x=按位求反=求反運(yùn)算 求負(fù)=求補(bǔ)=求反+1所以: 求反=求負(fù)–1

~x=-x-1

~7=–8~(–8)=7注意:1.位運(yùn)算是對(duì)二進(jìn)制的位進(jìn)行運(yùn)算2.只能對(duì)int型、char型和long型進(jìn)行位運(yùn)算§3-4運(yùn)算符-位運(yùn)算共73頁(yè)第44

頁(yè)§3-5運(yùn)算符-條件運(yùn)算七、條件運(yùn)算符運(yùn)算符(三目←)e1

?

e2

:

e3功能:如果表達(dá)式e1成立(e1值為非0),則執(zhí)行表達(dá)式e2;否則(表達(dá)式e1不成立),執(zhí)行表達(dá)式e3例:max=(a>b)?a:b; 求變量a與b的最大值

min=(a<b)?a:b;求變量a與b的最小值判斷e1

?執(zhí)行e2執(zhí)行e3成立不成立共73頁(yè)第45

頁(yè)§3-5運(yùn)算符-逗號(hào)運(yùn)算逗號(hào)的作用

分隔符:將若干數(shù)據(jù)項(xiàng)分開(kāi)

printf("%d,%o,%x\n",-a,-a,-a);

運(yùn)算符:將若干獨(dú)立的表達(dá)式隔開(kāi),以依次計(jì)算各個(gè)表達(dá)式的值逗號(hào)運(yùn)算符是二元運(yùn)算符,優(yōu)先級(jí)最低,多個(gè)逗號(hào)出現(xiàn),結(jié)合性從左到右

順序運(yùn)算八、逗號(hào)運(yùn)算符共73頁(yè)第46

頁(yè)§3-5運(yùn)算符-逗號(hào)運(yùn)算舉例用逗號(hào)運(yùn)算符將幾個(gè)表達(dá)式連接在一起就形成了逗號(hào)表達(dá)式逗號(hào)表達(dá)式的值是逗號(hào)表達(dá)式中最右邊的一個(gè)表達(dá)式的值設(shè)inta=5;則

a=3*5,a*4,a+5a=(3*5,a*4,a+5)a=15,表達(dá)式的值為20a=10,表達(dá)式的值為10共73頁(yè)第47

頁(yè)§3-5運(yùn)算符-sizeof運(yùn)算形式:

sizeof(e);得到一個(gè)整型量(字節(jié)數(shù)),其中e可以是表達(dá)式、常量、變量名、類型名、數(shù)組名等。如:charc;x=sizeof(c);x=sizeof(int);x=1x=2九、sizeof運(yùn)算符共73頁(yè)第48

頁(yè)§3-5運(yùn)算符-其它運(yùn)算十、其它運(yùn)算符運(yùn)算符

. 取結(jié)構(gòu)/聯(lián)合的成員 15

–>通過(guò)指針取結(jié)構(gòu)/聯(lián)合的成員 15

() 改變表達(dá)式中的優(yōu)先級(jí)關(guān)系 15

[] 數(shù)組下標(biāo) 15

(type)

e將e的數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換為type

14

結(jié)構(gòu)數(shù)組共73頁(yè)第49

頁(yè)§3-5運(yùn)算符-其它運(yùn)算實(shí)例實(shí)例:已知:intx,y,z;

y=(x=10,x+1);

答案:先執(zhí)行x=10,然后再執(zhí)行y=x+1

y=11,x=10

z=sizeof(int);

答案:z=2求int型數(shù)據(jù)占用的內(nèi)存字節(jié)數(shù)量

z=sizeof(x);

答案:z=2求變量x占用的內(nèi)存字節(jié)數(shù)量共73頁(yè)第50

頁(yè)§3-6運(yùn)算符的優(yōu)先級(jí)與結(jié)合性按運(yùn)算符的優(yōu)先級(jí)分為15級(jí)按運(yùn)算符的結(jié)合性分為2種

自左向右結(jié)合自右向左結(jié)合優(yōu)先級(jí)不同時(shí):運(yùn)算符優(yōu)先級(jí)的高低決定了進(jìn)行運(yùn)算的先后次序。優(yōu)先級(jí)相同時(shí):同優(yōu)先級(jí)運(yùn)算符的運(yùn)算次序由結(jié)合性決定。例如:四則運(yùn)算中的“先乘除,后加減”反映了運(yùn)算符的優(yōu)先級(jí);“同級(jí)運(yùn)算從左至右”反映了乘/除運(yùn)算(加/減運(yùn)算)的結(jié)合性。共73頁(yè)第51

頁(yè)§3-6運(yùn)算符的優(yōu)先級(jí)與結(jié)合性運(yùn)算符優(yōu)先級(jí)表共73頁(yè)第52

頁(yè)§3-6運(yùn)算符的優(yōu)先級(jí)與結(jié)合性-實(shí)例已知:inta=8,b=5,c=2;計(jì)算下列表達(dá)式結(jié)果①a/b*b②a%b*c③a*c>>2④a&c&&b⑤a|b&c⑥~(~a>>3)⑦b>~a

?a*c

:

a%c5 先/后*6 先%后*4 先

*后>>0 先&后&&8 先&后|~后>>~00001000=11110111>>3=11111110~=0000000116 先~

再>再?:共73頁(yè)第53

頁(yè)第三章作業(yè)編寫程序,從鍵盤上輸入長(zhǎng)方體的三邊長(zhǎng)x,y,z,然后計(jì)算其表面積和體積。編寫程序,計(jì)算下列多項(xiàng)式的值并顯示結(jié)果。4x2-5x+6(設(shè)x=2.5)從鍵盤輸入一個(gè)大寫字母,要求用小寫輸出。找出比A稍大且是另一整數(shù)B的倍數(shù)的整數(shù)C,算法如下:

C=A+B-A%B共73頁(yè)第54

頁(yè)§2-6數(shù)據(jù)類型轉(zhuǎn)換不同數(shù)據(jù)類型的數(shù)據(jù)/變量進(jìn)行混合運(yùn)算時(shí),需要進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換轉(zhuǎn)換方式有兩種:“顯式的”類型轉(zhuǎn)換“隱式的”類型轉(zhuǎn)換“顯式的”類型轉(zhuǎn)換采用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符(type)“隱式的”類型轉(zhuǎn)換是C語(yǔ)言按照一定的類型轉(zhuǎn)換規(guī)則自動(dòng)進(jìn)行的轉(zhuǎn)換共73頁(yè)第55

頁(yè)§2-6數(shù)據(jù)類型轉(zhuǎn)換“隱式的”類型轉(zhuǎn)換規(guī)則1、運(yùn)算中將所有char型數(shù)據(jù)都轉(zhuǎn)換成int型,float型轉(zhuǎn)換成double型。2、低級(jí)類型服從高級(jí)類型,并進(jìn)行相應(yīng)的轉(zhuǎn)換double

floatlongunsignedint

char3、賦值運(yùn)算以賦值運(yùn)算符左邊變量的類型為準(zhǔn),即賦值運(yùn)算符右端值的類型向左邊變量的類型看齊,并進(jìn)行相應(yīng)的轉(zhuǎn)換。共73頁(yè)第56

頁(yè)§2-6數(shù)據(jù)類型轉(zhuǎn)換-實(shí)例例:inta,j,y;floatb;longd;doublec;則:y=j+'a'+a*b-c/d;其運(yùn)算次序和隱含的類型轉(zhuǎn)換為:①計(jì)算a*b,運(yùn)算結(jié)果為double型。②再計(jì)算c/d,結(jié)果為double型。③計(jì)算j+'a',結(jié)果為整型。④將第1步和第3步的結(jié)果相加,結(jié)果為double型⑤用第4步結(jié)果減第2步結(jié)果,結(jié)果為double型⑥給y賦值,先將第5步的結(jié)果double型轉(zhuǎn)換為整型(因?yàn)橘x值運(yùn)算左邊變量y為整型),截掉double型數(shù)據(jù)的小數(shù)部分,壓縮成int型。共73頁(yè)第57

頁(yè)§2-6數(shù)據(jù)類型轉(zhuǎn)換“顯式的”類型轉(zhuǎn)換規(guī)則——強(qiáng)制類型轉(zhuǎn)換1、強(qiáng)制類型轉(zhuǎn)換的一般規(guī)則

(類型關(guān)鍵字)(表達(dá)式)2、強(qiáng)制是一元運(yùn)算符,優(yōu)先級(jí)最高,

例如:(double)a(int)(x+y)(int)x+y3、轉(zhuǎn)換規(guī)則見(jiàn)表3-1,表3-2共73頁(yè)第58

頁(yè)§2-6數(shù)據(jù)類型轉(zhuǎn)換-實(shí)例inta=7,x=3,y=2;floatb=2.5,c=4.7,z=3.5;b+a%3*(int)(b+c)%2/4(x+y)%2+(int)b/(int)z2.51共73頁(yè)第59

頁(yè)§2-6數(shù)據(jù)類型轉(zhuǎn)換有關(guān)強(qiáng)制類型轉(zhuǎn)換的幾點(diǎn)說(shuō)明:1、在進(jìn)行強(qiáng)制類型轉(zhuǎn)換時(shí),類型關(guān)鍵字必須用括號(hào)括住,例如(int)x,不能寫成intx.2、在對(duì)一個(gè)表達(dá)式進(jìn)行強(qiáng)制類型時(shí),整個(gè)表達(dá)式也應(yīng)該用括號(hào)括住。例如,(float)(a+b)若寫成(float)a+b就只對(duì)變量a進(jìn)行了強(qiáng)制類型轉(zhuǎn)換。3、在對(duì)變量或表達(dá)式進(jìn)行了強(qiáng)制類型轉(zhuǎn)換后,并不改變變量或表達(dá)式原來(lái)的值。4、高精度數(shù)轉(zhuǎn)換為低精度數(shù)時(shí),由于會(huì)丟掉一些位,因而會(huì)造成值得改變。共73頁(yè)第60

頁(yè)第4章4.2數(shù)據(jù)的輸入與輸出輸入是指用戶借助計(jì)算機(jī)的輸入設(shè)備將數(shù)據(jù)輸入到計(jì)算機(jī)中。常見(jiàn)的輸入設(shè)備是鍵盤、鼠標(biāo)輸出是指從計(jì)算機(jī)內(nèi)部將數(shù)據(jù)輸送到用戶指定的外部輸出設(shè)備常見(jiàn)的輸出設(shè)備如顯示器、打印機(jī)、繪圖儀等C語(yǔ)言通過(guò)標(biāo)準(zhǔn)輸入/輸出庫(kù)(I/O庫(kù))提供的函數(shù)完成輸入/輸出功能共73頁(yè)第61

頁(yè)§4-2-1數(shù)據(jù)的輸入與輸出-格式輸出函數(shù)printf調(diào)用形式:printf(”控制字符串”,參數(shù)1,參數(shù)2,…,參數(shù)n)

其中:控制字符串也稱為格式說(shuō)明串,它用于描述變量的輸出方式,格式說(shuō)明的形式是:%附加格式說(shuō)明符

格式轉(zhuǎn)換字符 附加格式說(shuō)明符部分可以缺省。功能:按照控制字符串中的格式說(shuō)明依次將后面的各參數(shù)進(jìn)行轉(zhuǎn)換,排放成格式說(shuō)明中規(guī)定的格式,輸出到輸出設(shè)備上。對(duì)非格式說(shuō)明符,則按原樣輸出。共73頁(yè)第62

頁(yè)§4-2-1數(shù)據(jù)的輸入與輸出-格式輸出函數(shù)printf格式轉(zhuǎn)換字符說(shuō)明

d以十進(jìn)制形式輸出整數(shù)(正數(shù)不輸出符號(hào))

o以八進(jìn)制無(wú)符號(hào)形式輸出整數(shù)(不輸出前綴符)

x以十六進(jìn)制無(wú)符號(hào)形式輸出整數(shù)(不輸出前綴符)

u以無(wú)符號(hào)十進(jìn)制形式輸出整數(shù)

c以字符形式輸出,僅輸出一個(gè)字符

s輸出字符串

f以小數(shù)形式輸出單、雙精度數(shù)

e以標(biāo)準(zhǔn)指數(shù)形式輸出單、雙精度數(shù)

g選用%f或%e格式中輸出寬度較短的一種格式,不輸出無(wú)意義的0共73頁(yè)第63

頁(yè)§4-2-1數(shù)據(jù)的輸入與輸出-格式輸出函數(shù)printf附加說(shuō)明符說(shuō)明

l用于輸出長(zhǎng)整型數(shù)據(jù),可加在格式轉(zhuǎn)換符d,o,x,u前面

m(正整數(shù))輸出數(shù)據(jù)的最小域?qū)?n(正整數(shù))對(duì)實(shí)數(shù),表示輸出n位小數(shù);對(duì)字符串,表示截取的字符個(gè)數(shù)-輸出的數(shù)據(jù)在輸出域內(nèi)向左對(duì)齊共73頁(yè)第64

頁(yè)§4-2-1數(shù)據(jù)的輸入與輸出-格式輸出函數(shù)printf實(shí)例1:#include<stdio.h>main(){printf("ThisisaCprogram.\n");}實(shí)例2:#include<stdio.h>main(){inta=1,b=2,c=100;printf("a=%d,b=%3d,d=%3d%%\n",a,b,a*c/b);

printf("%d,%o,%x\n",-a,-a,-a);}答案:a=1,b=

2,d=

50%-1,177777,

ffff例C2_7302例C2_7303共73頁(yè)第65

頁(yè)§4-2-1數(shù)據(jù)的輸入與輸出-格式輸出函數(shù)printf實(shí)例3:#include<stdio.h>main(){charc='a';charch[]="Good-bye.";printf("%c,%3c,%3d\n",c,c,c);

printf("%s,%10s,%-8s,%-12s,%6.4s\n",ch,ch,ch,ch,ch);printf("123456789012345678901234567890\n");}答案:

a,a,97Good-bye.,Good-bye.,Good-bye.,Good-bye.,Good12345678901234567890123456789012345678901234567890例C2_7304共73頁(yè)第66

頁(yè)§4-2-1數(shù)據(jù)的輸入與輸出-格式輸出函數(shù)printf實(shí)例3:#include<stdio.h>main(){floatd=123.45;printf("%f,%9.3f,%.3f,%-9.3f\n",d,d,d,d);

printf("%e,%9.3e,%.3e,%-9.3e,%g

\n",d,d,d,d,d);

}共73頁(yè)第67

頁(yè)§4-2-1數(shù)據(jù)的輸入與輸出-格式輸出函數(shù)printf實(shí)例4:#include<stdio.h>main(){inta;floatb,c;scanf(”%2d%3f%4f”,&a,&b,&c);printf(”a=%d,b=%f,c=%f\n”,a,b,c);}輸入:12345678987654321輸出:a=12,b=345.000000,c=6789.000000例C2_7305共73頁(yè)第68

頁(yè)§4-2-1數(shù)據(jù)的輸入與輸出-格式輸入函數(shù)scanf調(diào)用形式:scanf(”控制字符串”,參數(shù)1,參數(shù)2,…,參數(shù)n)

其中:控制字符串也稱為格式說(shuō)明串,它用于描述變量的輸入方式,格式說(shuō)明的形式是:%附加格式說(shuō)明符

格式轉(zhuǎn)換字符 附加格式說(shuō)明符部分可以缺省。功能:從標(biāo)準(zhǔn)輸入設(shè)備上讀取輸入數(shù)據(jù),按格式說(shuō)明的描述將讀入的數(shù)據(jù)賦于相應(yīng)的參數(shù)。 參數(shù)部分的每個(gè)參數(shù),若為一般變量,要在變量名前加“&”(取地址運(yùn)算符),表示將輸入的數(shù)據(jù)存入變量對(duì)應(yīng)的內(nèi)存單元(地址)中。sacnf(

”%d”,&x);共73頁(yè)第69

頁(yè)§4-2-1數(shù)據(jù)的輸入與輸出-格式輸入函數(shù)scanf格式轉(zhuǎn)換字符說(shuō)明

d輸入十進(jìn)制整數(shù)

o輸入八進(jìn)制整數(shù)

x輸入十六進(jìn)制整數(shù)

c輸入單個(gè)字符

s輸入字符串

f輸入實(shí)數(shù),可為小數(shù)形式或指數(shù)形式附加格式說(shuō)明符說(shuō)明

l用于輸入長(zhǎng)整型數(shù)據(jù)及double型數(shù)據(jù)

h用于短整型數(shù)據(jù)正整數(shù)用于指定輸入數(shù)據(jù)占據(jù)的寬度*表示本輸入項(xiàng)在讀入后舍棄共73頁(yè)第70

頁(yè)§4-2-1數(shù)據(jù)的輸入與輸出-格式輸入函數(shù)scanf1:scanf("%3d%2d",&x,&y); 輸入序列:123456[ENTER]

結(jié)果:x=123,y=452:scanf("%d,%d:%f",&x,&y,&z);

輸入序列:1,2:3.5[ENTER]

結(jié)果:x=1,y=2,z=3.53:scanf("%d%d%d",&x,&y,&z);

輸入序列一:123[ENTER]

結(jié)果:x=1,y=2,z=3 輸入序列二:1[TAB]23[ENTER] 輸入序列三:1[ENTER]

23[ENTER] 結(jié)果與輸入序列一的結(jié)果一樣。共73頁(yè)第71

頁(yè)§4-2-1數(shù)據(jù)的輸入與輸出-格式輸入函數(shù)scanf4:scanf("%2d

%*2d,%2d",&x,&y);

輸入序列:1234,56[ENTER]

結(jié)果:x=12,y=56。注意:在scanf中,可以使用[ENTER]、空格或[TAB]作為數(shù)據(jù)之間的分隔符。5:scanf(”x=%d",&x);

要使x的值等于12,從鍵盤應(yīng)怎樣輸入?

正確的輸入序列:x=12[ENTER]

注意:字符x=被過(guò)濾掉了若輸入序列為:12[ENTER]錯(cuò)誤!

共73頁(yè)第72

頁(yè)§4-2-2數(shù)據(jù)的輸入與輸出-字符輸出函數(shù)putchar調(diào)用形式:

putchar(c)功能:通過(guò)標(biāo)準(zhǔn)輸出設(shè)備(顯示器)輸出變量c。例C2_7301.C:將從鍵盤輸入的一行字符復(fù)制到標(biāo)準(zhǔn)輸出。#include"stdio.h"main(){charc;c=getchar();

putchar(c); /*輸出該字符*/

}例C2_7301共73頁(yè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論