第二講基本數據計算與輸入輸出_第1頁
第二講基本數據計算與輸入輸出_第2頁
第二講基本數據計算與輸入輸出_第3頁
第二講基本數據計算與輸入輸出_第4頁
第二講基本數據計算與輸入輸出_第5頁
已閱讀5頁,還剩67頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

主講 劉少兵第二講數據、運算與基本輸入輸出共72頁第2

頁第二章數據、運算與基本輸入輸出基本數據類型與特點各種數據類型表示范圍常量的表示方法變量說明語句運算符與基本運算規(guī)則基本輸入輸出函數使用方法本章要點共72頁第3

頁第二章數據、運算與基本輸入輸出第一節(jié)數據與數據類型第二節(jié)常量與常量定義第三節(jié)變量與變量說明第四節(jié)基本運算第五節(jié)運算符的優(yōu)先級與結合性第六節(jié)數據類型轉換第七節(jié)數據的輸入與輸出第八節(jié)綜合舉例共72頁第4

頁§2-1數據與數據類型數據程序加工處理的對象及其結果數據類型數據在計算機內部的存儲形式(占用的內存單元數量、編碼方式、取值范圍等)常量在程序運行過程中不允許改變的量變量在程序運行過程中允許改變的量一、基本概念共72頁第5

頁§2-1數據與數據類型(續(xù))二、C語言的數據類型基本類型字符型char整型int浮點型單精度float雙精度double指針類型構造類型數組結構struct聯合union枚舉enum無值類型第二章第五章第六章指針類型第四章共72頁第6

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

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

char1(8位)0~255ASCII碼

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

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

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

共72頁第8

頁§2-1數據與數據類型-intshortint表示范圍:二進制16bit(2Byte)000000000000000100000000000000110111111111111111=1=3short整數的最大值shortint型表示數的范圍:-32768~32767例2_2021111111111111111注意:使用中要防止數據溢出=-1short整數的最小值1000000000000000=215-1=32767=-215=-32768返回共72頁第9

頁§2-1數據與數據類型-intmain(){shortinti;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);}

期望結果

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

實際運行結果

i=2i=6i=24i=120i=720i=5040i=-25216i=-30336i=24320產生數據溢出上溢下溢返回例C2_202共72頁第10

頁§2-1數據與數據類型-float返回有效數字的意義?

二進制7位

二進制23位單精度實型尾數階碼2-23

<=

|尾數|

<=1-2-230.000,000,12<=|尾數|<=0.999,999,88例C2_203數的范圍的意義?2-128<=|階碼|<=21272.9*10-39<=|階碼|<=1.7*1038尾數的符號位階碼的符號位共72頁第11

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

shortint<==>int<==>short signed<==>int<==>shortint<==>short類型占用內存單元取值范圍

unsignedint2字節(jié) 0~65535

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

unsignedlong4字節(jié)0~4294967295-231231-1216-1232-1共72頁第12

頁§2-2常數與常數定義整型常量(3種形式) 10進制

8進制 16進制實型常量(2種形式) 十進制 指數

字符常量字符串常量一、常數:0

~9整型常量實例:0

~7以數字0開頭:0

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

頁§2-2整型常數實例整型常量的不同表示方法:

10進制:

100-80+123

8進制:

010024010016進制:

0x380x100X100XFF0xa整型常量的類型:

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

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

0x38L0x1000L0XFFlx0a0000l返回共72頁第14

頁§2-2實型常數實例實型常量的不同表示方法:

10進制:1.01.+12.0-12.00.0指數:1e31.8e-3-123e-6

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

指數:-.1e-3.1E10

等價于:-0.1*10-30.1*10-10返回共72頁第15

頁§2-2常數與常數定義-字符常數字符型常量:用單引號括起來的單個字符實例:’A’

’g’

’#’

’0’

’2’

’+’

’,’

’;’

’(’

’)’字符定界符:單引號’字符型數據的存儲格式:ASCII碼(見書P207)65103354850返回如何表示不可顯示字符?回車/退格/TAB?如何表示定界符?’’’

產生歧異轉義符\:將\后面的字符轉換為其它含義共72頁第16

頁§2-2常數與常數定義-轉義符常數字符形式功能使用舉例

\0字符串結束標志

\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’返回共72頁第17

頁§2-2常數與常數定義-字符串常數字符串常量:用雙引號括起來的字符序列實例:”ThisisCstring.”

”a”

(1個空格)

””

(不含空格)

串定界符:雙引號

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

與字符’a’

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

頁§2-2常數與常數定義常量定義形式#define

標識符

常量用定義的一個標識符來代表一個常量,稱為符號常量

# 宏命令專用定義符號

define

命令

標識符

宏替換名(一般采用大寫字符)二、常數定義與符號常量常量定義實例注意:符號常量與變量不同,它的值在程序運行過程中不能改變,也不能重新賦值。共72頁第19

頁§2-2常量定義實例常量定義實例#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];共72頁第20

頁§2-3

變量與變量說明變量:在程序運行過程中允許改變的量變量的說明格式:[類型修飾符]類型說明符變量列表;例如:inti;

charch,str;

longk=1,m=0x12345678;doublex,y=1;變量說明意味著確定了:該變量占用內存單元的數量,數據在內存的表示方式,數據的取值范圍。一、變量說明的基本概念共72頁第21

頁§2-3變量與變量說明變量的三個屬性:

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

–變量地址:程序運行時,要將變量的值保存在計算機的存儲單元中,每個存儲單元都有唯一的內存地址。變量在內存中占據的存儲單元的地址就是變量的地址。指針:變量的地址一般變量:存儲變量的值指針變量:保存變量地址的變量二、指針與指針變量共72頁第22

頁§2-3變量與變量說明指針變量說明:數據類型

*變量名; 例:有變量說明語句:char

c='A';

若變量c在內存中對應的地址為1000; *變量名稱:c,類型為char,占用1個字節(jié) *變量c的值:字母’A’

*變量c的地址:1000 若有:char

*

pc; 則稱指針變量pc是char型指針

pc=&c;/*&取c的地址*/ 則稱指針變量pc指向變量c共72頁第23

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

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

頁§2-4運算符一、運算符簡介按運算類型分類1.算術運算符 2.關系運算符3.邏輯運算符4.

位運算符5.賦值與賦值組合運算符6.自增自減運算符7.條件運算

8.指針運算9.

其它運算符按運算對象的數目分類◆單目運算◆雙目運算◆三目運算目:進行運算時需要的操作數的數量共72頁第25

頁§2-4運算符-算術運算一、算術運算符運算符(雙目運算符/單目運算符)+加法運算12

正值運算14-減法運算12

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

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

自左向右(標記為

→)共72頁第26

頁§2-4運算符-算術運算實例1.參加運算的對象都是int型,結果截取為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共72頁第27

頁§2-4運算符-關系運算二、關系運算符運算符(雙目運算符

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

==

等于 9!=不等于 9優(yōu)先級:>>=<<=同級(高),!===同級(低)關系運算的結果應該為邏輯型“真”或“假”

C語言中沒有邏輯型,將邏輯型數值化處理,用整型1表示“真”,用整型0表示“假”。共72頁第28

頁§2-4運算符-關系運算實例實例邏輯表達式

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 成立,結果為1不成立,結果為

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

如何判斷數學中的邏輯關系:0≤a≤9?

0<=a<=9等價于(0<=a)<=9結果恒為1共72頁第29

頁§2-4運算符-邏輯運算三、邏輯運算符運算符

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

||邏輯或(雙目)4(→)!邏輯非(單目)14(←)邏輯運算關系邏輯運算真值表ab!a!ba&&ba||b11

0

01110

010101

10

0100

110

0共72頁第30

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

(y||

b)&&(y

||

a

)

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

0<=x

)&&(

x<=9

)

如果沒有括號:0

<=

x

&&

x

<=

9

等價

結果

結果

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

y||

b&&y||

a共72頁第31

頁§2-4運算符-位運算四、位運算符運算符

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

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

& 按位與(雙目)

8(→)

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

|

按位或(雙目)

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

14(←)真值表aba∧b~a~b000110 11101010111000共72頁第32

頁實例:已知:intx=7,y=10,z=1;設字長為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)§2-4運算符-位運算共72頁第33

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

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

~x=-x-1

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

頁§2-4運算符-自增自減運算五、自增自減運算符運算符(單目←)

++

自增 14

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

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

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

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

<==>x=x–1 (后綴)共72頁第35

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

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

y=x;

x先加1再賦值

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

x=x+1;

x先賦值再加1共72頁第36

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

++i;i++;

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

x=1;y=++x;

結果:x=2,y=2

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

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

結果:x=2,y=1y=x++;<==>y=x;x=x+1;先將x

賦值給y,然后x

再加1共72頁第37

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;§2-4運算符-自增自減運算實例實例已知:intx

=

2,y

=

5,z;

z=++x;

z=++x

*

++y;

z=x++

*

++y;z=++x

*

y++;

z=x++

*

y++;z=++x

*

++x;邏輯雖然正確,但實際編程中容易產生誤解,應當避免共72頁第38

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

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

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

賦值運算: =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;共72頁第40

頁§2-4運算符-條件運算七、條件運算符運算符(三目←)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成立不成立共72頁第41

頁§2-4運算符-指針運算八、指針運算符運算符(單目

←)

&取變量的地址 14

*

取指針變量(所指向)的內容 14注意:運算符&和“位與”運算是同一符號;運算符*和“乘”運算是同一符號。只能從程序的上下文來區(qū)分運算符&和運算符*

的實際意義。共72頁第42

頁§2-4運算符-指針運算實例實例:已知:intx=2,y,*px;x為一般變量,px為指針型變量

y=x*100;

*px=y*10;

++x;

x++;px

px=&x; 取變量x的地址賦值給指針px

又稱為讓px指向變量x

x=10;若px已經指向x,則可以用*px代替變量xx210<==>

*px=10;也稱為間接訪問<==>y=*px;取指針px的內容<==>

y=*px

*100;<==>x=y*10;<==>++

*

px<==>(*

px)++;

括號不能省略

y=x; 共72頁第43

頁§2-4運算符-其它運算九、其它運算符運算符

. 取結構/聯合的成員 15

–>通過指針取結構/聯合的成員 15

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

[] 數組下標 15

, 逗號,表達式從左向右順序計算

1

(type)

e將e的數據類型強制轉換為type

14

sizeof(opr) 求opr所占用的內存的字節(jié)數 14第六章第五章共72頁第44

頁§2-4運算符-其它運算實例實例:已知: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型數據占用的內存字節(jié)數量

z=sizeof(x);

答案:z=2求變量x占用的內存字節(jié)數量共72頁第45

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

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

頁§2-5運算符的優(yōu)先級與結合性運算符優(yōu)先級表共72頁第47

頁§2-5實例已知:inta=8,b=5,c=2;計算下列表達式結果①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 先~

再>再?:共72頁第48

頁#definePRINT(x)printf("%d\n",x)main(){intx=3,y=2,z=1;x=y++>=x&&x-y==++z;

PRINT(x);PRINT(y);PRINT(z);y*=z=x+(z+2);PRINT(x);PRINT(y);PRINT(z);x=y=z=1;PRINT(--x&&++y||z++);

PRINT(x);PRINT(y);PRINT(z);x=9;y=6;z=5;x=((x+y)%z>=x%z+y%z)?1:0;

PRINT(x); }

/*先算y>=x結果為0,則不再算&&之后的表達式x-y==++z。將結果賦給x,最后執(zhí)行y+1*/

/*x=0,y=3,z=1*//*先算x+(z+2),3賦給z,再執(zhí)行y*=z*//*x=0,y=9,z=3*//*x先減1結果為0,則跳過&&++y不執(zhí)行,與z進行邏輯或運算,再執(zhí)行z++,輸出結果:1*/

/*x=0,y=1,z=2*//*┃①┃┃┃③┃┃④┃━┳━*//*┗┳┛②┃┗┳┛⑤┗┳┛┃*//*┗━┳━┛⑥┗━┳━┛┃*//*┗━━━┳━━━┛⑦┃*//*┗━━━━━━━━━┛*/

/*x=0*/例C2_4003共72頁第49

頁#include<stdio.h>main(){intx,y,z;x=1;y=1;z=0;x=x&&y||z;printf("x=%d\n",x);printf("%d\n",x||

!y++&&++z);printf("y=%d,z=%d\n",y,z);x=y=1;z=x++-1;printf("x=%d,z=%d\n",x,z);z+=-x+++++y;printf("x=%d,y=%d,z=%d\n",x,y,z);}&&優(yōu)先級高,先計算x&&y,結果為1由于是||運算,故不再計算1||z。x=1||優(yōu)先級最低,x=1,不再計算||右邊的算式,y和z不變y=1,z=0

++為后綴,先將x-1的值賦給z,再計算x++

x=2,z=0等價于z+=(-(x++))+(++y)

x=3,z=0,y=2實例例C2_4002共72頁第50

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

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

floatlongunsignedint

char3、賦值運算以賦值運算符左邊變量的類型為準,即賦值運算符右端值的類型向左邊變量的類型看齊,并進行相應的轉換。共72頁第52

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

頁§2-7數據的輸入與輸出輸入是指用戶借助計算機的輸入設備將數據輸入到計算機中。常見的輸入設備是鍵盤、鼠標輸出是指從計算機內部將數據輸送到用戶指定的外部輸出設備常見的輸出設備如顯示器、打印機、繪圖儀等C語言通過標準輸入/輸出庫(I/O庫)提供的函數完成輸入/輸出功能共72頁第54

頁§2-7字符輸入函數getchar調用形式:

c=getchar()功能:從標準輸入設備(鍵盤)上取一個字符作為函數值返回。例:#include"stdio.h"main(){charc;c=getchar();

putchar(c);/*輸出字符變量c的值*/}運行程序,如果從鍵盤輸入: a[ENTER] 則輸出為: a 如果從鍵盤輸入: abc[ENTER] 則輸出也為: a共72頁第55

頁§2-7格式輸入函數scanf調用形式:scanf(”控制字符串”,參數1,參數2,…,參數n) 其中:控制字符串也稱為格式說明串,它用于描述變量的輸入方式,格式說明的形式是:%附加格式說明符

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

(

”%d”,&x);共72頁第56

頁§2-7格式輸入函數scanf格式轉換字符說明

d輸入十進制整數

o輸入八進制整數

x輸入十六進制整數

c輸入單個字符

s輸入字符串

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

l用于輸入長整型數據及double型數據

h用于短整型數據正整數用于指定輸入數據占據的寬度*表示本輸入項在讀入后舍棄共72頁第57

頁§2-7格式輸入函數scanf1:scanf("%3d%2d",&x,&y); 輸入序列:123456[ENTER]

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

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

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

輸入序列一:123[ENTER]

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

23[ENTER] 結果與輸入序列一的結果一樣。共72頁第58

頁§2-7格式輸入函數scanf4:scanf("%2d

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

輸入序列:1234,56[ENTER]

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

要使x的值等于12,從鍵盤應怎樣輸入?

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

注意:字符x=被過濾掉了

若輸入序列為:12[ENTER]錯誤!共72頁第59

頁§2-7字符輸出函數putchar調用形式:

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

while(c!=’\n’)

{

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

c=getchar();/*再取下一輸入字符*/

}

}例C2_7301共72頁第60

頁§2-7格式輸出函數printf調用形式:printf(”控制字符串”,參數1,參數2,…,參數n)

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

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

頁§2-7格式輸出函數printf格式轉換字符說明

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

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

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

u以無符號十進制形式輸出整數

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

s輸出字符串

f以小數形式輸出單、雙精度數

e以標準指數形式輸出單、雙精度數

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

頁§2-7格式輸出函數printf附加說明符說明

l用于輸出長整型數據,可加在格式轉換符d,o,x,u前面

m(正整數)輸出數據的最小域寬.n(正整數)對實數,表示輸出n位小數;對字符串,表示截取的字符個數-輸出的數據在輸出域內向左對齊共72頁第63

頁§2-7格式輸出函數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共72頁第64

頁§2-7格式輸出函數printf實例3:#include<stdio.h>main(){charc='a';charch[]="Good-bye.";pri

溫馨提示

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

評論

0/150

提交評論