c語(yǔ)言課件(共76張課件)_第1頁(yè)
c語(yǔ)言課件(共76張課件)_第2頁(yè)
c語(yǔ)言課件(共76張課件)_第3頁(yè)
c語(yǔ)言課件(共76張課件)_第4頁(yè)
c語(yǔ)言課件(共76張課件)_第5頁(yè)
已閱讀5頁(yè),還剩71頁(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)介

程序指令C語(yǔ)言中的基本元素標(biāo)識(shí)符關(guān)鍵字常量運(yùn)算符分隔符等定義:用戶自行定義的符號(hào),用來(lái)標(biāo)識(shí)變量、常量、函數(shù)、標(biāo)號(hào)等組成:只能由字母、數(shù)字、下劃線(_)組成,且第一個(gè)字符必須是字母或下劃線大小寫敏感不能使用關(guān)鍵詞長(zhǎng)度:最長(zhǎng)32個(gè)字符命名原則:見名知意不宜混淆如l與I,o與0常用大寫字母表示常量標(biāo)識(shí)符,變量等其他類型標(biāo)識(shí)符用小寫字母表示系統(tǒng)內(nèi)部使用了一些用下劃線開頭的標(biāo)識(shí)符,建議定義標(biāo)識(shí)符時(shí)盡量不用下劃線開頭,以防止沖突例:判斷下列標(biāo)識(shí)符號(hào)合法性sumSumM.D.JohndayDate3daysstudent_name#33lotus_1_2_3chara>b_above$1233days#33char$123a>b標(biāo)識(shí)符

關(guān)鍵字 由系統(tǒng)預(yù)先定義的標(biāo)識(shí)符稱“關(guān)鍵字”,C語(yǔ)言關(guān)鍵字32個(gè),如表2-1所示。(1)類型說(shuō)明符(2)語(yǔ)句定義符(3)預(yù)處理命令字用戶定義的任何名字不得與關(guān)鍵詞沖突數(shù)據(jù)類型總表C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void定義類型typedef字符類型char枚舉類型enum整型浮點(diǎn)型單精度型float雙精度型double數(shù)組結(jié)構(gòu)struct共用union短整型short長(zhǎng)整型long整型int數(shù)據(jù)類型決定:1.數(shù)據(jù)占內(nèi)存字節(jié)數(shù)2.數(shù)據(jù)取值范圍3.其上可進(jìn)行的操作數(shù)據(jù)類型類型符號(hào)關(guān)鍵詞數(shù)的表示范圍所占位數(shù)整型字符型浮點(diǎn)型有無(wú)(signed)int16-32768~32767(signed)short16-32768~32767(signed)long32-2147483648~214748364716unsigned

int0~65535320~4294967295unsigned

longunsigned

short160~65535有float32±3.4e-38~3.4e38有double64±1.7e-308~1.7e308有char8-128~127無(wú)unsignedchar80~255說(shuō)明:數(shù)據(jù)類型所占字節(jié)數(shù)隨機(jī)器硬件不同而不同,上表以IBMPC機(jī)為例基本數(shù)據(jù)類型

printf(“%s”,“ABC”);s=‘!’+‘G’/*s=33+71;*/1%10=scanf(“%c”,&ch);則1234a,‘a(chǎn)’b,123c則3a,4bfloatx,y=8.占字節(jié)數(shù)隨機(jī)器不同而不同,一般占一個(gè)機(jī)器字運(yùn)算對(duì)象類型不同時(shí)轉(zhuǎn)換例3=x-2*y;//逗號(hào)表達(dá)式,表達(dá)式值18,x=3//W,W轉(zhuǎn)義字符:反斜線后面跟一個(gè)字符或一個(gè)代碼值表示浮點(diǎn)型例如:、、0.5E7(等于0.5*107)、、-2.8E-2(等于-2.8*10-2)等均為合法的實(shí)數(shù)。注意,必須有小數(shù)點(diǎn)。標(biāo)準(zhǔn)C允許浮點(diǎn)數(shù)使用后綴。后綴為“f”或“F”即表示該數(shù)為浮點(diǎn)數(shù)。所以說(shuō),在表示的時(shí)候,你后面加不加F其實(shí)是一樣的。如356f和356.是等價(jià)的。

一般用大寫字母是宏定義預(yù)處理命令,不是C語(yǔ)句整型常量

請(qǐng)點(diǎn)擊:

浮點(diǎn)型常量

請(qǐng)點(diǎn)擊:

字符常量

請(qǐng)點(diǎn)擊:字符串常量

請(qǐng)點(diǎn)擊:如#definePRICE30定義:程序運(yùn)行時(shí)其值不能改變的量分類:符號(hào)常量:用標(biāo)識(shí)符代表常量定義格式:

#define符號(hào)常量常量>例符號(hào)常量舉例(ch2_1.c)#include<>#definePRICE30main(){intnum,total;num=10;total=num*PRICE;printf("total=%d",total);}運(yùn)行結(jié)果:total=300常量

三種表示形式:十進(jìn)制整數(shù):由數(shù)字0~9和正負(fù)號(hào)表示.如32767,123,-456,0八進(jìn)制整數(shù):由數(shù)字0開頭,后跟數(shù)字0~7表示.如0123,011十六進(jìn)制整數(shù):由0x或0X開頭,后跟0~9,a~f,A~F表示.如0x123,0Xff例12與12L12為int型12L為longint型例30000為int型65536為longint型

整型常量的類型根據(jù)其值所在范圍確定其數(shù)據(jù)類型在整常量后加字母l或L,認(rèn)為它是longint型常量問題:0123=()100x123=()100Xff=()1083291255問題:0123=()100x123=()100Xff=()10整型常量(整常數(shù))

表示形式:十進(jìn)制數(shù)形式:(必須有小數(shù)點(diǎn))如0.123,.123,123.0,0.0,123.指數(shù)形式:(e或E之前必須有數(shù)字;指數(shù)必須為整數(shù))如12.3e3,123E2,1.23e4,e-5,1.2E-3.5

浮點(diǎn)常量的類型默認(rèn)double型在浮點(diǎn)常量后加字母f或F,認(rèn)為它是float型浮點(diǎn)常量(實(shí)型常量、實(shí)數(shù)或浮點(diǎn)數(shù))

e-5

定義:用單引號(hào)括起來(lái)的單個(gè)普通字符或轉(zhuǎn)義字符.

字符常量的值:該字符的ASCII碼值如‘\101’‘A’‘\012’’\n’‘\x40’’@’‘\x61’’a’‘\60’’0’‘\483’(

)‘A’’\101’’\x41’65如‘a(chǎn)’‘A’‘?’‘\n’‘\101’轉(zhuǎn)義字符:反斜線后面跟一個(gè)字符或一個(gè)代碼值表示例轉(zhuǎn)義字符舉例(ch2_2.c)main(){printf("\101\x42C\n");printf("Isay:\"Howareyou?\"\n");printf("\\CProgram\\\n");printf("Turbo\'C\'");}運(yùn)行結(jié)果:(屏幕顯示)ABCIsay:”Howareyou?”\CProgram\Turbo‘C’例main(){printf(“Y\b=\n”);}/*ch2_3.c*/運(yùn)行結(jié)果:屏幕顯示:=打印機(jī)輸出:¥字符常量

如‘A’——65,‘a(chǎn)’——97,‘0’——48,‘\n’——10

注意:’’’和’\’是不合法的字符常量<轉(zhuǎn)義字符及其含義:轉(zhuǎn)義字符含義\n\v\r\’\ddd\t\b\f\\\”\xhh轉(zhuǎn)義字符含義換行豎向跳格回車單引號(hào)3位8進(jìn)制數(shù)代表的字符橫向跳格(Tab)退格換行但不回車反斜線雙引號(hào)2位16進(jìn)制數(shù)代表的字符10

字符常量與字符串常量不同定義:用雙引號(hào)(“”)括起來(lái)的字符序列存儲(chǔ):每個(gè)字符串尾自動(dòng)加一個(gè)‘\0’作為字符串結(jié)束標(biāo)志hello\0例字符串“hello”在內(nèi)存中65650例‘a(chǎn)’“a”例空串“”\0字符串常量

概念:其值可以改變的量變量代表某個(gè)存儲(chǔ)空間及其所存儲(chǔ)的數(shù)據(jù)變量名、變量值和變量的地址

變量名:標(biāo)識(shí)變量的名字,與內(nèi)存中的某一存儲(chǔ)空間相聯(lián)系變量值:在這個(gè)存儲(chǔ)空間中存儲(chǔ)的數(shù)據(jù)變量的地址:這個(gè)存儲(chǔ)空間的首地址在程序中通過(guò)變量名來(lái)引用變量值賦值:向變量所代表的存儲(chǔ)空間傳送數(shù)據(jù)的操作。賦值操作用“=”表示

變量例:a=1;a=a+1;b=a;…...2字節(jié)&c=6300…...內(nèi)存-3變量名變量地址變量值int

c編譯程序根據(jù)變量定義為其分配指定字節(jié)的內(nèi)存單元…...地址inta=1,b=-3,c;abc2字節(jié)2字節(jié)2字節(jié)地址地址…...內(nèi)存1-3

隨機(jī)數(shù)概念:其值可以改變的量變量代表某個(gè)存儲(chǔ)空間及其所存儲(chǔ)的數(shù)據(jù)變量說(shuō)明的一般格式:

<數(shù)據(jù)類型><變量名>{,<變量名>};變量初始化:說(shuō)明時(shí)賦初值;可對(duì)被說(shuō)明變量的部分初始化例:inta,b,c;floatdata;charch1;doublez;合法標(biāo)識(shí)符例:inta=2,b,c=4;floatdata=3.67;charch=‘A’;intx=1,y=1,z=1;

變量的使用:先說(shuō)明,后使用例intstudent;stadent=19;/*Undefinedsymbol‘stadent’infunctionmain*/

變量說(shuō)明位置:一般放在函數(shù)開頭main(){inta,b=2;floatdata;a=1;data=(a+b)*1.2;printf(“data=%f\n”,data);}變量說(shuō)明可執(zhí)行語(yǔ)句main(){inta,b=2;a=1;floatdata;data=(a+b)*1.2;printf(“data=%f\n”,data);}變量決定分配字節(jié)數(shù)和數(shù)的表示范圍字符型變量字符變量存放字符ASCII碼char與int數(shù)據(jù)間可進(jìn)行算術(shù)運(yùn)算例a=‘D’;/*a=68;*/x=‘A’+5;/*x=65+5;*/s=‘!’+‘G’/*s=33+71;*/沒有字符串變量,用字符數(shù)組存放整型變量占字節(jié)數(shù)隨機(jī)器不同而不同,一般占一個(gè)機(jī)器字short≤int≤long可用sizeof(類型標(biāo)識(shí)符)測(cè)量實(shí)型變量float:占4字節(jié),提供7位有效數(shù)字double:占8字節(jié),提供15~16位有效數(shù)字<>/*ch2_4.c*/main(){intnum=3;floattotal;charch1,ch2=‘D’;total=num*PRICE;ch1=ch2-‘A’+‘a(chǎn)’;

printf(“total=%f,ch1=%c\n”,total,ch1);}宏定義變量說(shuō)明輸出結(jié)果運(yùn)行結(jié)果:total=37.500000,ch1=d例子

變量命名在C語(yǔ)言中,變量命名需要遵循一定的規(guī)則有效名稱principalcost_pricemarks_3lastnamecity無(wú)效名稱123ratecurrency$discount%zipcode變量的命名規(guī)則:變量名可以由字母、數(shù)字和_(下劃線)組合而成變量名不能包含除_以外的任何特殊字符,如:%、#、逗號(hào)、空格等變量名必須以字母或_(下劃線)開頭變量名不能包含空白字符(換行符、空格和制表符稱為空白字符)C語(yǔ)言中的某些詞(例如int和float等)稱為保留字,具有特殊意義,不能用作變量名C語(yǔ)言區(qū)分大小寫,因此變量price與變量PRICE是兩個(gè)不同的變量使用整型變量聲明:intpage_number;longintpopulation;unsignedintage;可按如下方式初始化:page_number=0;intmax_marks=100;在同一語(yǔ)句中可以聲明多個(gè)類型相同的變量:intpage_number,copies,paper_width;單精度浮點(diǎn)型float在C語(yǔ)言中用于存儲(chǔ)單精度浮點(diǎn)數(shù)float32位10-38

至10+38,7位有效數(shù)字聲明:floatselling_price;初始化:floatselling_price=11.3;selling_price=65.90;雙精度浮點(diǎn)型內(nèi)存floatdouble

64位取值范圍:10-308至1030816

位有效數(shù)字聲明:doublepressure_level;初始化:pressure_level=213.5671435568967;doubledvalue=35.4;如‘\101’‘A’‘\012’’\n’printf函數(shù)5-5//表達(dá)式值11,c=6,a=11例floatf;12L為longint型如scanf(“%d%c%f”,&a,&b,&c);longintpopulation;(d)printf("%-8d\n",1234);inta=65;printf(“%o”,a);#include<>定義:用雙引號(hào)(“”)括起來(lái)的字符序列doubled;賦值轉(zhuǎn)換規(guī)則:使賦值號(hào)右邊表達(dá)式值自動(dòng)轉(zhuǎn)換成其左邊變量的類型將參數(shù)按帶小數(shù)點(diǎn)數(shù)形式輸出,對(duì)應(yīng)參數(shù)應(yīng)是double類型,默認(rèn)情況下精確到6位小數(shù)根據(jù)其值所在范圍確定其數(shù)據(jù)類型不宜混淆如l與I,o與0在線單年齡:_____總額:_____性別:_____字符型3-1

2398340'M'數(shù)值型字符型int/floatchar字符型3-2'''5''p''$'

有效的字符型值"2"'2'正確'2'+'2'=4

值符號(hào)值符號(hào)值符號(hào)0空字符44,91[32空格45-92\33!46.93]34"47/94^35#48~570~9

95-36$58:96`37%59;97~122a~z38&60<123{39'61=124|40(62>125}41)63?126~42*64@127DEL(Delete鍵)43+65~90A~Z

C運(yùn)算符算術(shù)運(yùn)算符:+-*/%++--關(guān)系運(yùn)算符:<<===>>=!=邏輯運(yùn)算符:!&&||位運(yùn)算符:<<>>~|^&賦值運(yùn)算符:=及其復(fù)合賦值運(yùn)算符條件運(yùn)算符:?:逗號(hào)運(yùn)算符:,指針運(yùn)算符:*&求字節(jié)數(shù):sizeof強(qiáng)制類型轉(zhuǎn)換:(類型)分量運(yùn)算符:.->下標(biāo)運(yùn)算符:[]其它:()等運(yùn)算符和表達(dá)式運(yùn)算符功能與運(yùn)算量關(guān)系要求運(yùn)算量個(gè)數(shù)要求運(yùn)算量類型運(yùn)算符優(yōu)先級(jí)別一個(gè)運(yùn)算量的兩側(cè)有不同的運(yùn)算符,先執(zhí)行“優(yōu)先級(jí)別”高的運(yùn)算結(jié)合方向一個(gè)運(yùn)算量的兩側(cè)有兩個(gè)相同優(yōu)先級(jí)別的運(yùn)算符,則按結(jié)合方向順序處理。兩種:自左向右的結(jié)合方向(左結(jié)合性)自右向左的結(jié)合方向(右結(jié)合性)結(jié)果的類型學(xué)習(xí)運(yùn)算符應(yīng)注意基本算術(shù)運(yùn)算符:+-(減號(hào))

*/%

+-*/%雙目運(yùn)算符結(jié)合方向:+-*/%自左向右;優(yōu)先級(jí):

*/%>+-(減號(hào))(13)(12)

說(shuō)明:兩整數(shù)相除,結(jié)果為整數(shù),舍小數(shù)部分;否則為double型%要求兩側(cè)均為整型數(shù)據(jù)例5/2=-5/2.0=例5%2=-5%2=1%10=

5%1=5.5%2算術(shù)運(yùn)算符和算術(shù)表達(dá)式21-110(

)說(shuō)明:++--不能用于常量和表達(dá)式,如5++,(a+b)++++--結(jié)合方向:

自右向左

優(yōu)先級(jí):-

++-->*/%>+-

(14)(13)(12)自增、自減運(yùn)算符++--作用:使變量值加1或減1種類:前置++i,--i(先執(zhí)行i+1或i-1,再使用i值)后置i++,i--(先使用i值,再執(zhí)行i+1或i-1)算術(shù)運(yùn)算符和算術(shù)表達(dá)式自增、自減運(yùn)算符++--作用:使變量值加1或減1種類:前置++i,--i(先執(zhí)行i=i+1或i=i-1,再使用i值)后置i++,i--(先使用i值,再執(zhí)行i=i+1或i=i-1)例j=3;k=++j;j=3;k=j++;a=3;b=5;c=(++a)*b;a=3;b=5;c=(a++)*b;j=j+1;k=j;//k=4,j=4k=j;j=j+1;//k=3,j=4//c=20,a=4//c=15,a=4算術(shù)運(yùn)算符和算術(shù)表達(dá)式表達(dá)式是由常量、變量、函數(shù)和運(yùn)算符組合起來(lái)的式子。一個(gè)表達(dá)式有一個(gè)值及其類型,它們等于計(jì)算表達(dá)式所得結(jié)果的值和類型。表達(dá)式求值按運(yùn)算符的優(yōu)先級(jí)和結(jié)合性規(guī)定的順序進(jìn)行。單個(gè)的常量、變量、函數(shù)可以看作是表達(dá)式的特例。

a+b(a*2)/c(x+r)*8-(a+b)/7++isin(x)+sin(y)(++i)-(j++)+(k--)算術(shù)運(yùn)算符和算術(shù)表達(dá)式表達(dá)式3-1Sumnum1num2操作數(shù)運(yùn)算符表達(dá)式Z=(X*2)+(5–Y)

表達(dá)式3-2操作數(shù)操作數(shù)表達(dá)式表達(dá)式表達(dá)式運(yùn)算符簡(jiǎn)單賦值運(yùn)算符符號(hào):=格式:

<變量>=<表達(dá)式>作用:將<表達(dá)式>的值賦給<變量>復(fù)合賦值運(yùn)算符種類:+=-=*=/=%=《=》=&=^=|=含義:

var1op=exp1

var1=var1opexp1a+=3a=a+3x*=y+8x=x*(y+8)x%=3x=x%3例a=3;d=func();c=d+2;賦值運(yùn)算符和表達(dá)式變量

表達(dá)式;賦值運(yùn)算符Height=177.5;Weight=78;Gender=

’m’;x=a+b;w=sin(a)+sin(b);y=i++-j;最簡(jiǎn)單的運(yùn)算符:復(fù)合賦值運(yùn)算符運(yùn)算符表達(dá)式計(jì)算結(jié)果(假設(shè)X=10)+=X+=5X=X+515-=X-=5X=X-55*=X*=5X=X*550/=X/=5X=X/52%=X%=5X=X%50賦值表達(dá)式是表達(dá)式,則可嵌套,其值就是被賦值后變量的值結(jié)合方向:自右向左優(yōu)先級(jí):

2左側(cè)必須是數(shù)值變量、結(jié)構(gòu)成員、間接指針和數(shù)組分量中的一個(gè),不能是常量或其它表達(dá)式賦值轉(zhuǎn)換規(guī)則:使賦值號(hào)右邊表達(dá)式值自動(dòng)轉(zhuǎn)換成其左邊變量的類型例3=x-2*y;a+b=3;

例inti;i=2.56;//結(jié)果i=2;例:a=b=c=5a=(b=5)a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)//表達(dá)式值為5,a,b,c值為5//表達(dá)式值5,b=5;a=5//表達(dá)式值11,c=6,a=11//表達(dá)式值10,a=10,b=4,c=6//表達(dá)式值5,a=5,b=10,c=2賦值運(yùn)算符說(shuō)明(1):例floatf;inti;i=10;f=i;則

例:inta=2;a%=4-1;a=12;a+=a-=a*a//a=-264等價(jià)于a=a+(a=a-(a*a))賦值表達(dá)式是表達(dá)式,則可嵌套.其值就是被賦值后變量的值結(jié)合方向:自右向左優(yōu)先級(jí):

2左側(cè)必須是變量,不能是常量或表達(dá)式賦值轉(zhuǎn)換規(guī)則:使賦值號(hào)右邊表達(dá)式值自動(dòng)轉(zhuǎn)換成其左邊變量的類型賦值運(yùn)算符說(shuō)明(2)://a=2形式:<表達(dá)式1>,<表達(dá)式2>,……,<表達(dá)式n>結(jié)合性:從左向右優(yōu)先級(jí):1逗號(hào)表達(dá)式的值:等于<表達(dá)式n>的值例a=3*5,a*4a=3*5,a*4,a+5例x=(a=3,6*3)x=a=3,6*a//a=15,表達(dá)式值60//a=15,表達(dá)式值20//賦值表達(dá)式,表達(dá)式值18,x=18//逗號(hào)表達(dá)式,表達(dá)式值18,x=3逗號(hào)運(yùn)算符和表達(dá)式例:/*ch2_5.c*/#include<>main(){intx,y=7;floatz=4;x=(y=y+6,y/z);printf("x=%d\n",x);}運(yùn)行結(jié)果:x=3逗號(hào)運(yùn)算符和表達(dá)式【練習(xí)】main(){inta=2,b=4,c=6,x,y;y=(x=a+b),(b+c);printf("y=%d,x=%d",y,x);}隱式轉(zhuǎn)換什么情況下發(fā)生運(yùn)算轉(zhuǎn)換不同類型數(shù)據(jù)混合運(yùn)算時(shí)賦值轉(zhuǎn)換把一個(gè)值賦給與其類型不同的變量時(shí)輸出轉(zhuǎn)換輸出時(shí)轉(zhuǎn)換成指定的輸出格式函數(shù)調(diào)用轉(zhuǎn)換實(shí)參與形參類型不一致時(shí)轉(zhuǎn)換運(yùn)算轉(zhuǎn)換規(guī)則:不同類型數(shù)據(jù)運(yùn)算時(shí)先自動(dòng)轉(zhuǎn)換成同一類型類型轉(zhuǎn)換doublefloatlongunsignedintchar,short低高說(shuō)明:必定的轉(zhuǎn)換運(yùn)算對(duì)象類型不同時(shí)轉(zhuǎn)換charch;inti;floatf;doubled;ch/i+f*d-(f+i)intintdoubledoubledoubledoubledoubledouble例【例】main(){inta,b=322;floatx,y=8.88;charc1='k',c2;a=y;x=b;a=c1;c2=b;printf("%d,%f,%d,%c",a,x,a,c2);}【例2】main(){floatPI=3.14159;ints,r=5;s=r*r*PI;printf("s=%d\n",s);}

一般形式:(類型名)<表達(dá)式>

例:(int)(x+y)(int)x+y(double)(3/2)(int)3.6說(shuō)明:強(qiáng)制轉(zhuǎn)換得到所需類型的中間變量,原變量類型不變

例main(){floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);}結(jié)果:x=3.600000,i=3較高類型向較低類型轉(zhuǎn)換時(shí)可能發(fā)生精度損失問題

顯式轉(zhuǎn)換(強(qiáng)制轉(zhuǎn)換)優(yōu)先級(jí):14結(jié)合性:從右向左例:floatb=1.1234567;printf(“b=%f\n”,b);/*四舍五入*/結(jié)果:注意不同數(shù)據(jù)類型的表示范圍

例3:main(){floatf=5.75;printf("(int)f=%d,f=%f\n",(int)f,f);}數(shù)據(jù)輸出格式:intputchar(charch)參數(shù):ch為字符常量、變量或表達(dá)式功能:把字符ch輸出到顯示器上返回值:正常,為輸出的字符ch;出錯(cuò),為EOF(-1)C語(yǔ)言無(wú)I/O語(yǔ)句,I/O操作由標(biāo)準(zhǔn)I/O函數(shù)實(shí)現(xiàn)

字符輸出函數(shù)

#include<>【例】輸出單個(gè)字符。#include<>main(){chara='B',b='o',c='y';putchar(a);putchar(b);putchar(c);}Putchar(a);putchar(‘\n’);putchar(b);putchar(‘\n’);putchar(c);putchar(‘\n’);格式:printf(控制字符串,參數(shù)1,參數(shù)2,…)功能:按控制字符串,將參數(shù)轉(zhuǎn)換成一定格式輸出返回值:正常,返回輸出字節(jié)數(shù);出錯(cuò),返回EOF(-1)參數(shù):合法的表達(dá)式,可以缺省控制字符串:包含兩種信息格式說(shuō)明:%[修飾符]轉(zhuǎn)換字符,用于指定輸出格式普通字符(包括轉(zhuǎn)義字符):原樣輸出(或執(zhí)行)格式輸出函數(shù)數(shù)據(jù)輸出輸入/輸出函數(shù)(printf/scanf)用于接受和顯示數(shù)據(jù)或信息#include<>voidmain(){ intnum; printf("請(qǐng)輸入一個(gè)數(shù):"); scanf("%d",&num); printf("\n%d的平方為%d\n",num,num*num);}輸入/輸出函數(shù)轉(zhuǎn)換字符串轉(zhuǎn)義序列dx,Xoucse,Efg十六進(jìn)制無(wú)符號(hào)整數(shù)不帶符號(hào)十進(jìn)制整數(shù)十進(jìn)制整數(shù)指數(shù)形式浮點(diǎn)數(shù)(5)單個(gè)字符字符串八進(jìn)制無(wú)符號(hào)整數(shù)小數(shù)形式浮點(diǎn)數(shù)(6)e和f中較短一種inta=567;printf(“%d”,a);inta=255;printf(“%x”,a);inta=65;printf(“%o”,a);inta=567;printf(“%u”,a);chara=65;printf(“%c”,a);printf(“%s”,“ABC”);floata=567.789;printf(“%e”,a);floata=567.789;printf(“%f”,a);floata=567.789;printf(“%g”,a);567ff101567AABC5.67789e+02說(shuō)明: 轉(zhuǎn)換字符決定數(shù)據(jù)輸出類型轉(zhuǎn)換字符與輸出項(xiàng)個(gè)數(shù)應(yīng)相同,按先后順序一一對(duì)應(yīng)輸出轉(zhuǎn)換:轉(zhuǎn)換字符與輸出項(xiàng)類型不一致,自動(dòng)按指定格式輸出轉(zhuǎn)換字符附加格式說(shuō)明符(修飾符)可缺省.n精度,對(duì)實(shí)數(shù),指定輸出n位小數(shù)(四舍五入)修飾符功能m輸出數(shù)據(jù)寬度,數(shù)據(jù)長(zhǎng)度<m,左補(bǔ)空格;否則按實(shí)際輸出按左對(duì)齊方式輸出(缺省右對(duì)齊)-輸出數(shù)值時(shí)在其左邊用0填充以達(dá)到指定或缺省數(shù)據(jù)寬度0在d,o,x,u前,指定輸出為long型在e,f,g前,指定輸出為double型l對(duì)字符串,指定截取的字符個(gè)數(shù)格式說(shuō)明:%-0m.nl<轉(zhuǎn)換字符>注意:其中不得有空格;順序不當(dāng),格式說(shuō)明會(huì)無(wú)效printf函數(shù)5-1intvisitor_count=150;printf("

%d"

,visitor_count);printf將一些信息按照指定的格式送到標(biāo)準(zhǔn)輸出(顯示器)"

%d"

visitor_count將按指定的格式顯示該變量的值轉(zhuǎn)換字符串說(shuō)明%d將參數(shù)按整數(shù)形式轉(zhuǎn)換輸出,對(duì)應(yīng)參數(shù)應(yīng)是int類型%ld將參數(shù)按長(zhǎng)整數(shù)形式轉(zhuǎn)換輸出,對(duì)應(yīng)參數(shù)應(yīng)是long類型%c輸出一個(gè)字符,對(duì)應(yīng)參數(shù)應(yīng)該是一個(gè)字符%s輸出一個(gè)字符串,對(duì)應(yīng)參數(shù)應(yīng)該是一個(gè)字符串%f將參數(shù)按帶小數(shù)點(diǎn)數(shù)形式輸出,對(duì)應(yīng)參數(shù)應(yīng)是double類型,默認(rèn)情況下精確到

6位小數(shù)printf函數(shù)5-2intvisitor_count=150;printf("

%d"

,visitor_count);輸出結(jié)果:150printf函數(shù)5-3intsalary=5500;printf("

%10d"

,salary);輸出結(jié)果:5500輸出結(jié)果的左邊顯示了6個(gè)空格"

%10d"printf函數(shù)5-4floatcircumference=78.53;printf("

%f"

,circumference);輸出結(jié)果:默認(rèn)情況下精確到六位小數(shù)9.4786789;printf函數(shù)5-5doublemercury_level=168.2251074;printf(""

,mercury_level);輸出結(jié)果:寬度,表示所有的數(shù)字和小數(shù)點(diǎn)所占的位數(shù)。不夠7位右對(duì)齊。""

精度(精確到小數(shù)點(diǎn)后多少位)例inta=1234,longb=2269978;printf(“%dA\n”,a);

printf(“%8dA\n”,a);

printf(“%-8dA\n”,a);printf(“%08dA\n”,a);printf(“%8ldA\n”,b);

整型數(shù)輸出例inta=123;printf(“%d,%o,%X\n”,a,a,a);

例//1234A//1234A//00001234A//123,173,7B例//2269978A//1234A練習(xí)#include<>main(){inta=12;longb=2269978;printf("a=%d,a=%6d,a=%-6d,a=%06d\n",a,a,a,a);printf("b=%8ld\n",b);printf("%d,%o,%x,%u\n",a,a,a,a);printf("\n");}例floatf=123.456;printf(“%f\n”,f);printf(“\n”,f);printf(“\n”,f);

printf(“\n”,f);浮點(diǎn)數(shù)輸出/*ch2_6.c*/例charc=‘W’;inti=87;printf(“%c,%d\n”,c,c);

printf(“%d,%c\n”,i,i);

printf(“%-5c,%5c\n”,c,c);

例字符輸出//W,87例//1.23e+02//87,W//W,W例printf(“%s!\n”,“123456789”);printf(“%.8s!\n”,“123456789”);printf(“%12.8s!\n”,“123456789”);printf(“%-12.8s!\n”,“123456789”);字符串輸出//123456789!//12345678!//12345678!//12345678!例

#include<>main(){printf(“%s,%12s,%8s\n”,”CLANGUAGE”,”CLANGUAGE”,”CLANGUAGE”);Printf(“%-12.8s,%12.8s\n”,”CLANGUAGE”,”CLANGUAGE”);}【例2.18】main(){inti=8;printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--);}【例2.19】main(){inti=8;printf("%d\n",++i);printf("%d\n",--i);printf("%d\n",i++);printf("%d\n",i--);printf("%d\n",-i++);printf("%d\n",-i--);}格式:intgetchar(void)功能:從鍵盤讀一個(gè)字符返回值:正常,返回讀取的字符;出錯(cuò),返回EOF(-1)字符輸入函數(shù)例/*ch2_8.c*/#include<>main(){intc;printf("Enteracharacter:");c=getchar();printf("%c>hex%x\n",c,c);}運(yùn)行結(jié)果:Enteracharacter:A

A>hex41數(shù)據(jù)輸入格式:scanf(控制字符串,參數(shù)1,參數(shù)2,…)功能:從鍵盤讀入數(shù)據(jù),按控制字符串中所指定格式來(lái)解釋它們,并將結(jié)果存到相應(yīng)參數(shù)指定的存儲(chǔ)單元中返回值:正常,返回輸入數(shù)據(jù)個(gè)數(shù);出錯(cuò)返回0參數(shù):變量的地址,它指出轉(zhuǎn)換后的輸入數(shù)據(jù)應(yīng)存儲(chǔ)的位置。常用取地址運(yùn)算符&控制字符串:包含兩種信息格式說(shuō)明:%[修飾符]轉(zhuǎn)換字符,用于指定解釋數(shù)據(jù)的格式普通字符(不能是%):輸入時(shí)原樣輸入轉(zhuǎn)換字符:d,o,x,c,s,f,e例scanf(“%d”,&a);輸入:10

則a=10例scanf(“%x”,&a);輸入:11

則a=17格式輸入函數(shù)數(shù)據(jù)輸入附加格式說(shuō)明符(修飾符)%*ml/h<轉(zhuǎn)換字符>l修飾符功能hm*用于d,o,x前,指定輸入為short型整數(shù)用于d,o,x前,指定輸入為long型整數(shù)用于e,f前,指定輸入為double型實(shí)數(shù)指定輸入數(shù)據(jù)寬度,遇空格或不可轉(zhuǎn)換字符則結(jié)束抑制符,指定輸入項(xiàng)讀入后不賦給變量例scanf(“%4d%2d%2d”,&yy,&mm,&dd);

輸入19991015

則1999

yy,10

mm,15

dd一般以空格、TAB或回車鍵作為分隔符其它字符做分隔符:格式串中兩個(gè)格式說(shuō)明間的其他字符,輸入時(shí)要原樣輸入例scanf(“%d:%d:%d”,&h,&m,&s);

輸入12:30:45

則12

h,30

m,45

s例scanf(“%d,%d”,&a,&b)

輸入3,4

則3

a,4

b例scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);

輸入a=12,b=24,c=36

輸入分隔符的指定例scanf(“%d%o%x”,&a,&b,&c);printf(“a=%d,b=%d,c=%d\n”,a,b,c);

輸入123123123

輸出a=123,b=83,c=291【例2.20】main(){inta,b,c;printf("inputa,b,c\n");scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d",a,b,c);}在輸入時(shí)要用一個(gè)以上的空格或回車鍵作為每?jī)蓚€(gè)輸入數(shù)之間的間隔。如:789或789字符型數(shù)據(jù),輸入時(shí)不能有分隔符,否則分隔符會(huì)被當(dāng)作有效字符輸入

輸入數(shù)值數(shù)據(jù)時(shí),遇以下情況認(rèn)為該數(shù)據(jù)結(jié)束:遇空格、TAB、或回車遇寬度結(jié)束遇非法輸入/*ch2_9.c*/例intx;charch;scanf(“%d”,&x);scanf(“%c”,&ch);printf(“x=%d,ch=%d\n”,x,ch);執(zhí)行:123

輸出:x=123,ch=10說(shuō)明:如scanf(“%c%c%c”,&c1,&c2,&c3);

若輸入abc

則‘a(chǎn)’

c1,‘’

c2,‘b’

c3如scanf(“%d%c%f”,&a,&b,&c);

若輸入

則1234

a,‘a(chǎn)’

b,123

c“*”符:用以表示該輸入項(xiàng),讀入后不賦予相應(yīng)的變量,即跳過(guò)該輸入值。如:scanf("%d%*d%d",&a,&b);寬度:用十進(jìn)制整數(shù)指定輸入的寬度(即字符數(shù))。如:scanf("%5d",&a);輸入:12345678長(zhǎng)度:長(zhǎng)度格式符為l和h,l表示輸入長(zhǎng)整型數(shù)據(jù)(如%ld)和雙精度浮點(diǎn)數(shù)(如%lf)。h表示輸入短整型數(shù)據(jù)。如果格式控制串中有非格式字符則輸入時(shí)也要輸入該非格式字符。如:scanf(“%d,%d,%d”,&a,&b,&c);【例2.21】main(){chara,b;printf("inputcharactera,b\n");scanf("%c%c",&a,&b);printf("%c%c\n",a,b);}例2.22】main(){chara,b;printf("inputcharactera,b\n");scanf("%c%c",&a,&b);printf("\n%c%c\n",a,b);}/*ch2_12.c*/#include<>main(){float

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論