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

下載本文檔

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

文檔簡介

共73頁第1

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

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

char1(8位)0~255ASCII碼

int2(16位)-32768~32767二進制補碼

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

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

共73頁第3

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

頁§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

實際運行結(jié)果

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

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

二進制7位

二進制23位單精度實型尾數(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ù)的符號位階碼的符號位共73頁第6

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

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頁第7

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

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

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

8進制

16進制實型常量(2種形式)

十進制 指數(shù)

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

~9整型常量實例:0

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

~9,A~F/a~f,以0x或0X開頭:符號、整數(shù)、小數(shù)點和小數(shù):用e或E和表示指數(shù)部分實型常量實例字符常量字符串常量共73頁第9

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

10進制:

100-80+123

8進制:

010024010016進制:

0x380x100X100XFF0xa整型常量的類型:

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

10進制:-123L0L432l8進制:010L024L0100L16進制:

0x38L0x1000L0XFFlx0a0000l返回共73頁第10

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

正負號整數(shù)部分小數(shù)點小數(shù)部分±小數(shù)格式:指數(shù)格式:小數(shù)格式E或e1~3位整數(shù)共73頁第11

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

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

等價于:10001.8*10-3-123*10-6

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

等價于:-0.1*10-30.1*10-10返回共73頁第12

頁§2-2常量及其類型-字符常數(shù)字符型常量:用單引號括起來的單個字符實例:’A’

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

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

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

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

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

\b退格

\r回車(ASCII碼為13)

\f走紙換頁

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

表示字符

\

\’單引號 ’\’’表示字符’

\”雙引號 ’\”’表示字符”

\ddd用8進制表示字符 ’a’=’\141’’A’=’\101’

換行符’\12’

\xhh用16進制表示字符’a’=’\x61’’A’=’\x41’

換行符’\xa’返回共73頁第14

頁§2-2常量及其類型-字符串常數(shù)字符串常量:用雙引號括起來的字符序列實例:”ThisisCstring.”

”a”

(1個空格)

””

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

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

與字符’a’

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

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

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

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

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

字符串占長度+1

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

頁§2-3符號常量-宏定義常量定義形式之一——宏定義#define

標識符

常量

# 宏命令專用定義符號

define

命令

標識符

宏替換名(一般采用大寫字符)二、常量定義與符號常量常量定義實例注意:符號常量與變量不同,它的值在程序運行過程中不能改變,也不能重新賦值。用定義的一個標識符來代表一個常量,稱為符號常量共73頁第18

頁§2-3符號常量-宏定義實例常量定義實例#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頁第19

頁§2-3符號常量-宏定義實例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頁第20

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

頁§2-3符號常量-const定義及實例常量定義形式之二——const定義

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

constfloatx=max+3.14;

共73頁第22

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

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

頁§2-3符號常量舉例#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頁第24

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

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

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

inti;

charch,str;

long

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

頁§2-3變量與變量說明

變量名稱:編程時使用(進行編程)

–變量的值:程序運行時使用(進行運算)

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

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

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

頁第三章運算符一、運算符簡介按運算類型分類

1.

算術(shù)運算符 2.

關(guān)系運算符

3.

邏輯運算符4.

位運算符

5.

賦值與賦值組合運算符6.

自增自減運算符

7.條件運算

8.指針運算

9.

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

◆單目運算

◆雙目運算

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

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

+加法運算12

正值運算14-減法運算12

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

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

自左向右(標記為

)共73頁第30

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

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頁第31

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

++

自增 14

–– 自減 14++和––為單目運算,只能作用于變量只能對int、char、long和指針變量進行運算功能:

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

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

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

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

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

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

y=x;

x先加1再賦值

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

x=x+1;

x先賦值再加1共73頁第33

頁§3-1運算符-自增自減運算實例實例(1)

++i;i++;

因為在表達式中沒有其它運算,結(jié)果一樣。(2)

x=1;y=++x;

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

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

在做賦值運算之前,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頁第34

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注意,以下操作是錯誤的:

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

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

z=++x;

z=++x

*

++y;

z=x++

*

++y;z=++x

*

y++;

z=x++

*

y++;z=++x

*

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

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

注意:一般不要用這樣的語句。共73頁第36

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

賦值運算: =2 賦值組合運算:e1

op=e22

等于于:e1=e1

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

e1為可以進行賦制操作的變量

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

不等價

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

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

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

==

等于 9!=不等于

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

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

頁§3-3運算符-關(guān)系運算實例實例邏輯表達式

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é)果為1等價于(a-b)==1,結(jié)果為0?

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

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

共73頁第39

頁§3-3運算符-邏輯運算五、邏輯運算符運算符

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

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

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

0

01110

010101

10

0100

110

0共73頁第40

頁§3-3運算符-邏輯運算式2

(y||b)&&(y

||a

)

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

0<=x

)&&(

x<=9

)

如果沒有括號:0

<=

x

&&

x

<=

9

等價

結(jié)果

結(jié)果

實例:比較下列兩個邏輯表達式的執(zhí)行過程式1

y||b&&y||a共73頁第41

頁§3-4運算符-位運算六、位運算符運算符

>>

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

<<

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

&

按位與(雙目)

8(→)

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

|

按位或(雙目)

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

14

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

頁實例:已知:intx=7,y=10,z=1;設(shè)字長為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運算符-位運算共73頁第43

頁說明關(guān)于>>:右移一位=縮小1/2關(guān)于<<:左移一位=擴大2倍關(guān)于~: 因為: ~

x=按位求反=求反運算 求負=求補=求反+1所以: 求反=求負–1

~x=-x-1

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

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

?

e2

:

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

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

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

頁§3-5運算符-逗號運算逗號的作用

分隔符:將若干數(shù)據(jù)項分開

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

運算符:將若干獨立的表達式隔開,以依次計算各個表達式的值逗號運算符是二元運算符,優(yōu)先級最低,多個逗號出現(xiàn),結(jié)合性從左到右

順序運算八、逗號運算符共73頁第46

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

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

頁§3-5運算符-sizeof運算形式:

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

頁§3-5運算符-其它運算十、其它運算符運算符

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

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

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

[] 數(shù)組下標 15

(type)

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

14

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

頁§3-5運算符-其它運算實例實例:已知: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頁第50

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

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

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

頁§3-6運算符的優(yōu)先級與結(jié)合性-實例已知:inta=8,b=5,c=2;計算下列表達式結(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頁第53

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

C=A+B-A%B共73頁第54

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

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

floatlongunsignedint

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

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

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

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

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

頁§2-6數(shù)據(jù)類型轉(zhuǎn)換-實例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頁第59

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

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

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

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

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

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

d以十進制形式輸出整數(shù)(正數(shù)不輸出符號)

o以八進制無符號形式輸出整數(shù)(不輸出前綴符)

x以十六進制無符號形式輸出整數(shù)(不輸出前綴符)

u以無符號十進制形式輸出整數(shù)

c以字符形式輸出,僅輸出一個字符

s輸出字符串

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

e以標準指數(shù)形式輸出單、雙精度數(shù)

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

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

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

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

頁§4-2-1數(shù)據(jù)的輸入與輸出-格式輸出函數(shù)printf實例1:#include<stdio.h>main(){printf("ThisisaCprogram.\n");}實例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頁第65

頁§4-2-1數(shù)據(jù)的輸入與輸出-格式輸出函數(shù)printf實例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頁第66

頁§4-2-1數(shù)據(jù)的輸入與輸出-格式輸出函數(shù)printf實例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頁第67

頁§4-2-1數(shù)據(jù)的輸入與輸出-格式輸出函數(shù)printf實例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頁第68

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

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

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

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

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

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

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

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

c輸入單個字符

s輸入字符串

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

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

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

頁§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頁第71

頁§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=被過濾掉了若輸入序列為:12[ENTER]錯誤!

共73頁第72

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

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

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

}例C2_7301共73頁

溫馨提示

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

評論

0/150

提交評論