版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一節(jié)賦值語(yǔ)句第一節(jié)賦值語(yǔ)句第二節(jié)運(yùn)算符和表達(dá)式第二節(jié)運(yùn)算符和表達(dá)式第三節(jié)常量和變量第三節(jié)常量和變量第四節(jié)標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型第四節(jié)標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型第五節(jié)第五節(jié) 數(shù)據(jù)輸入輸出數(shù)據(jù)輸入輸出第六節(jié)順序結(jié)構(gòu)實(shí)例第六節(jié)順序結(jié)構(gòu)實(shí)例第一章的簡(jiǎn)單程序已體現(xiàn)出處理問(wèn)題的步驟的順序關(guān)系,每條語(yǔ)句按自上而下的順序依次執(zhí)行一次,這種自上而下依次執(zhí)行的程序稱為順序結(jié)構(gòu)程序。在一個(gè)程序中,所有的操作都由執(zhí)行部分來(lái)完成,而執(zhí)行部分又都是由一條條語(yǔ)句組成的。因此,先要學(xué)習(xí)C+語(yǔ)言的基本語(yǔ)句,并且在學(xué)習(xí)過(guò)程中逐步學(xué)會(huì)程序設(shè)計(jì)的基本方法。我們還是先繞過(guò)那些繁瑣的語(yǔ)法規(guī)則細(xì)節(jié),先看一些例子,然后給出語(yǔ)法以供選手們參考。第一節(jié)賦值語(yǔ)句第一節(jié)
2、賦值語(yǔ)句賦值語(yǔ)句賦值語(yǔ)句 在C+語(yǔ)言中,“=”作為賦值運(yùn)算符,而不表示“等于”判斷。賦值語(yǔ)句是由賦值表達(dá)式再加上分號(hào)構(gòu)成的表達(dá)式語(yǔ)句,它是程序中使用最多的語(yǔ)句之一。 變量=表達(dá)式;在賦值語(yǔ)句的使用中,需要注意以下幾點(diǎn):1)由于賦值運(yùn)算符“=”右邊的表達(dá)式也可以是賦值表達(dá)式,因此,下述形式 : 變量=(變量=表達(dá)式);是成立的,從而形成嵌套的情形。其展開(kāi)之后的一般形式為:變量=變量=表達(dá)式;例如,“a=b=c=d=e=5;”,它實(shí)際上等價(jià)于:e=5;d=e;c=d;b=c;a=b; 2)在進(jìn)行賦值運(yùn)算時(shí),如果賦值運(yùn)算符兩邊的數(shù)據(jù)類(lèi)型不同,系統(tǒng)將會(huì)自動(dòng)進(jìn)行類(lèi)型轉(zhuǎn)換,即將賦值運(yùn)算符右邊的數(shù)據(jù)類(lèi)型轉(zhuǎn)換
3、成左邊的變量類(lèi)型。當(dāng)左邊是整型而右邊是實(shí)型時(shí),將去掉小數(shù)部分并截取該整型對(duì)應(yīng)的有效位數(shù)。例例2.1輸入兩個(gè)正整數(shù)A和B,試交換A、B的值(使A的值等于B,B的值等于A)?!痉治觥?交換兩個(gè)變量的值方法很多,一般我們采用引入第三個(gè)變量的算法,二個(gè)變量交換,可以想像成一瓶醬油和一瓶醋進(jìn)行交換,這時(shí)容易想到拿一個(gè)空瓶子過(guò)來(lái): 將醬油倒到空瓶中; 將醋倒到醬油瓶中; 將原空瓶中的醬油倒到醋瓶中。程序如下:#include /使用cin,cout,須調(diào)用iostream庫(kù)using namespace std;int main() int a,b,c; /定義三個(gè)變量 coutab; /輸入A、B的值
4、c=a; a=b; b=c; /交換A、B的值 couta=a b=bendl; /輸出結(jié)果例2.2 圓柱體的表面積 輸入底面半徑輸入底面半徑r和高和高h(yuǎn),輸出圓柱體的表面積,保留,輸出圓柱體的表面積,保留3位小數(shù),格式見(jiàn)樣位小數(shù),格式見(jiàn)樣例。例。樣例輸入:3.5 9 樣例輸出:274.889【分析】 圓柱體的表面積由3部分組成:上底面積、下底面積和側(cè)面積。由于上下底面積相等,完整的公式可以寫(xiě)成:表面積=底面積*2+側(cè)面積。根據(jù)平面幾何知識(shí),底面積=R2,側(cè)面積=2rh。參考程序:#include /使用printf和scanf, 須調(diào)用cstdio庫(kù)#include /使用數(shù)學(xué)函數(shù)atan,
5、須調(diào)用cmath庫(kù)using namespace std; /在這個(gè)程序中可以省略這行int main() const double pi=3.1415926; /定義pi為常量 double r,h,s1,s2,s; /定義雙精度實(shí)型,float為單精度實(shí)型 scanf(%lf%lf,&r,&h); /r和h前的&符號(hào)不能漏掉,double型用%lf s1=pi*r*r; /計(jì)算底面積 s2=2*pi*r*h; /計(jì)算側(cè)面積 s=2*s1+s2; /計(jì)算總的表面積 printf(Area=%0.3lfn,s); /輸出結(jié)果保留3位小數(shù),注意用lf格式 return 0
6、;例2.3 數(shù)學(xué)中經(jīng)典的數(shù)學(xué)中經(jīng)典的“雞兔同籠雞兔同籠”問(wèn)題,已知頭共問(wèn)題,已知頭共30個(gè),腳共個(gè),腳共90只,問(wèn)籠中只,問(wèn)籠中的雞和兔各有多少只的雞和兔各有多少只?【分析】 設(shè)雞為j只,兔為t只,頭為h,腳為f,那么有: j+t=302*j+4*t=90假設(shè)籠中30 個(gè)頭全都是兔,那么都按每頭只腳計(jì)算,總腳數(shù)為(4*h),與實(shí)際腳數(shù)(f )之差為(4*h-f),如果這個(gè)差=0,則籠中全是兔(即雞為0只);如果這個(gè)差值 0,說(shuō)明多計(jì)算了腳數(shù),凡是雞都多計(jì)算了兩只腳,用它除以2就能得到雞的只數(shù),算法為: j=(4*h - f)/2 /先用腳數(shù)差值除以2算出雞的只數(shù) t=h - j /再用總頭數(shù)減
7、雞數(shù)算出免的只數(shù)注意這兩步運(yùn)算的先后順序。程序如下:#include /使用getchar()語(yǔ)句, 須調(diào)用cstdio庫(kù)#include /使用cin,cout,須調(diào)用iostream庫(kù)using namespace std;int main() int h,f,j,t; /定個(gè)變量 h=30;f=90; /賦初始值 j=(4*h-f)/2; /計(jì)算雞的只數(shù) t=h-j; /計(jì)算免的只數(shù) coutj=j t=t)、小于、小于(=)、小于等于、小于等于(=)和不等于和不等于(!=)六種。六種。3.邏輯運(yùn)算符邏輯運(yùn)算符用于邏輯運(yùn)算。包括與用于邏輯運(yùn)算。包括與(&)、或、或(|)、非、非(
8、!)三種。三種。4.位操作運(yùn)算符位操作運(yùn)算符 參與運(yùn)算的量,按二進(jìn)制位進(jìn)行運(yùn)算。包括位與參與運(yùn)算的量,按二進(jìn)制位進(jìn)行運(yùn)算。包括位與(&)、位或、位或(|)、位非、位非()、位異、位異或或()、左移、左移()六種。六種。5.賦值運(yùn)算符賦值運(yùn)算符用于賦值運(yùn)算,分為簡(jiǎn)單賦值用于賦值運(yùn)算,分為簡(jiǎn)單賦值(=)、復(fù)合算術(shù)賦值、復(fù)合算術(shù)賦值(+=,-=,*=,/=,%=)和復(fù)合位運(yùn)算和復(fù)合位運(yùn)算賦值賦值(&=,|=,=,=,,.)等幾種。等幾種。一、算術(shù)運(yùn)算符一、算術(shù)運(yùn)算符1、模運(yùn)算符、模運(yùn)算符求余的運(yùn)算符求余的運(yùn)算符“%”也稱為模運(yùn)算符,是雙目運(yùn)算符,兩個(gè)操作數(shù)都是整型數(shù)。也稱為模運(yùn)算符,
9、是雙目運(yùn)算符,兩個(gè)操作數(shù)都是整型數(shù)。a%b的值就是的值就是a除以除以b的余數(shù),的余數(shù),5%2余數(shù)為余數(shù)為1。其操作對(duì)象只能是整型數(shù),而其他四種。其操作對(duì)象只能是整型數(shù),而其他四種運(yùn)算符對(duì)運(yùn)算符對(duì)int,float,double,char都適用。都適用。2、除法運(yùn)算符、除法運(yùn)算符C+語(yǔ)言的除法運(yùn)算符有一些特殊之處,即如果語(yǔ)言的除法運(yùn)算符有一些特殊之處,即如果a、b是兩個(gè)整數(shù)類(lèi)型的變量是兩個(gè)整數(shù)類(lèi)型的變量或常量,那么或常量,那么a/b的值是的值是a除以除以b的商。例如,的商。例如, 5/2的值是的值是2,而不是,而不是2.5,而,而5.0/2或或5/2.0的值是的值是2.5。3、自增自減運(yùn)算符、自
10、增自減運(yùn)算符自增、自減運(yùn)算符用來(lái)對(duì)一個(gè)操作數(shù)進(jìn)行加自增、自減運(yùn)算符用來(lái)對(duì)一個(gè)操作數(shù)進(jìn)行加1或減或減1運(yùn)算,其結(jié)果仍然賦予該運(yùn)算,其結(jié)果仍然賦予該操作數(shù),而且參加運(yùn)算的操作數(shù)必須是變量,而不能是常量或表達(dá)式。操作數(shù),而且參加運(yùn)算的操作數(shù)必須是變量,而不能是常量或表達(dá)式。1)自增運(yùn)算符。例如,)自增運(yùn)算符。例如,x+表示在使用表示在使用x之后,使之后,使x的值加的值加1,即,即x=x+1;+x表表示使用示使用x之前,先使之前,先使x的值加的值加1,即,即x=x+1。2)自減運(yùn)算符。例如,)自減運(yùn)算符。例如,x-表示在使用表示在使用x之后,使之后,使x的值減的值減1,即,即x=x-1;-x表示表示使
11、用使用x之前,先使之前,先使x的值減的值減1,即,即x=x-1。4、復(fù)合算術(shù)賦值。例如,、復(fù)合算術(shù)賦值。例如,a+=1,相當(dāng)于相當(dāng)于a=a+1; a+=b,相當(dāng)于相當(dāng)于a=a+b。例2.4 變量自加運(yùn)算#includeusing namespace std;int main() int x,y,z1,z2; x=7; y=8; z1=y-(x+); /計(jì)算z1=1,計(jì)算后x=8 z2=y-(+x); /計(jì)算前x的值自加1,x的值為9,再與y求差 cout“z1=z1endl“z2=)、小于、小于(=)、小于等于、小于等于(n2; /n3的值為0 n3=n1b & cd等價(jià)于(ab) &
12、amp; (cd) !b=c|da等價(jià)于(!b)=c)|(dc & x+yc) & (x+y)0 & 42,由于50為真,42也為真,相與的結(jié)果也為真。2.或運(yùn)算|參與運(yùn)算的兩個(gè)量只要有一個(gè)為真,結(jié)果就為真。 兩個(gè)量都為假時(shí),結(jié)果為假。例如:50|58,由于50為真,相或的結(jié)果也就為真3.非運(yùn)算!參與運(yùn)算量為真時(shí),結(jié)果為假;參與運(yùn)算量為假時(shí),結(jié)果為真。例如:!(50)的結(jié)果為假。雖然C+編譯在給出邏輯運(yùn)算值時(shí),以“1”代表“真”,“0 ”代表“假”。 但反過(guò)來(lái)在判斷一個(gè)量是為“真”還是為“假”時(shí),以“0”代表“假”,以非“0”的數(shù)值作為“真”。例如:由于5和3均為非“0
13、”因此5&3的值為“真”,即為1。又如:5|0的值為“真”,即為1。四、位運(yùn)算符四、位運(yùn)算符運(yùn)算符運(yùn)算符含含 義義說(shuō)明說(shuō)明例子例子& &按位與按位與把參與運(yùn)算的兩個(gè)數(shù)對(duì)應(yīng)的二進(jìn)把參與運(yùn)算的兩個(gè)數(shù)對(duì)應(yīng)的二進(jìn)制位相與,只有對(duì)應(yīng)的二進(jìn)制均制位相與,只有對(duì)應(yīng)的二進(jìn)制均為為1 1時(shí),結(jié)果的對(duì)應(yīng)位才為時(shí),結(jié)果的對(duì)應(yīng)位才為1 1,否,否則為則為0 0。9&59&5中中9 9可以寫(xiě)成可以寫(xiě)成(00001001),5(00001001),5可以可以寫(xiě)成寫(xiě)成(00000101)(00000101),那么,那么9&59&5的運(yùn)算的運(yùn)算結(jié)果為結(jié)果為0000 00
14、010000 0001,輸出結(jié)果是,輸出結(jié)果是1 1。| |按位或按位或把參與運(yùn)算的兩個(gè)數(shù)對(duì)應(yīng)的二進(jìn)把參與運(yùn)算的兩個(gè)數(shù)對(duì)應(yīng)的二進(jìn)制位相或,也就是只要對(duì)應(yīng)的兩制位相或,也就是只要對(duì)應(yīng)的兩個(gè)二進(jìn)制位有一個(gè)為個(gè)二進(jìn)制位有一個(gè)為1 1時(shí),其結(jié)果時(shí),其結(jié)果就為就為1 1。9|59|5相當(dāng)于相當(dāng)于00001001|0000010100001001|00000101,運(yùn),運(yùn)算結(jié)果是算結(jié)果是0000110100001101,輸出結(jié)果是,輸出結(jié)果是1313。 按位異或按位異或把參與運(yùn)算的兩個(gè)數(shù)對(duì)應(yīng)的二進(jìn)把參與運(yùn)算的兩個(gè)數(shù)對(duì)應(yīng)的二進(jìn)制位相異或,當(dāng)對(duì)應(yīng)的二進(jìn)制位制位相異或,當(dāng)對(duì)應(yīng)的二進(jìn)制位上的數(shù)據(jù)字不相同時(shí),結(jié)果對(duì)
15、應(yīng)上的數(shù)據(jù)字不相同時(shí),結(jié)果對(duì)應(yīng)為為1 1時(shí),否則為時(shí),否則為0 0。11=011=0,10=110=1,00=000=0,01=101=19595相當(dāng)于相當(dāng)于00001001000001010000100100000101,運(yùn),運(yùn)算結(jié)果是算結(jié)果是0000110000001100,輸出結(jié)果是,輸出結(jié)果是1212。取反取反把運(yùn)算數(shù)的各個(gè)二進(jìn)制位按位求把運(yùn)算數(shù)的各個(gè)二進(jìn)制位按位求反。反。9 9相當(dāng)于相當(dāng)于(0000 1001)(0000 1001),運(yùn)算結(jié),運(yùn)算結(jié)果為果為1111 01101111 0110。左移左移把把“”左邊的運(yùn)算數(shù)的各二進(jìn)制左邊的運(yùn)算數(shù)的各二進(jìn)制位向左移若干位,位向左移若干位,
16、“”右邊的數(shù)右邊的數(shù)是指定移動(dòng)的位數(shù),高位丟棄,是指定移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)低位補(bǔ)0 0。a4a右移右移把把“”左邊的運(yùn)算數(shù)的各二進(jìn)制左邊的運(yùn)算數(shù)的各二進(jìn)制位全部右移若干位,位全部右移若干位,“”右邊的右邊的數(shù)是指定移動(dòng)的位數(shù)。數(shù)是指定移動(dòng)的位數(shù)。設(shè)設(shè)a=15a=15,a2a2表示把表示把0000111100001111右移右移為為0000 0011(0000 0011(十進(jìn)制為十進(jìn)制為3)3)。位操作運(yùn)算符位操作運(yùn)算符 參與運(yùn)算的量,按二進(jìn)制位進(jìn)行運(yùn)算。包括位與參與運(yùn)算的量,按二進(jìn)制位進(jìn)行運(yùn)算。包括位與(&)、位或、位或(|)、位非、位非()、位異或、位異或()、左移、左移()
17、六種。六種。 &,|,為兩目運(yùn)算為兩目運(yùn)算 &:1&1=1; 1&0,0&1,0&0=0; |: 1|1,1|0,0|1=1; 0|0=0; :10,01=1; 11,00=0; 移動(dòng)指定位數(shù)移動(dòng)指定位數(shù) 參與運(yùn)算的量,按二進(jìn)制位進(jìn)行運(yùn)算。包括位與參與運(yùn)算的量,按二進(jìn)制位進(jìn)行運(yùn)算。包括位與(&)、位或、位或(|)、位非、位非()、位異或、位異或()、左移、左移()六種。六種。 例如例如: a=10; cout(a2)2);二進(jìn)制二進(jìn)制a=1010,左移,左移2位即位即101000,所以,所以a=40; 右移右移2位即位即0010,所以,所
18、以a=2; 需要說(shuō)明的是,對(duì)于有符號(hào)數(shù),在右移時(shí),符號(hào)位將隨同移動(dòng)。當(dāng)操作數(shù)為正數(shù)時(shí),最高位為0,而為負(fù)數(shù)時(shí),最高位為1。最高位是補(bǔ)0或補(bǔ)1取決于編譯系統(tǒng)的規(guī)定。五、運(yùn)算的簡(jiǎn)寫(xiě)在C+語(yǔ)言中,有一些運(yùn)算可以簡(jiǎn)寫(xiě),如下表所示。算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符和賦值運(yùn)算符的優(yōu)先級(jí)如下:賦值運(yùn)算符 邏輯運(yùn)算符 關(guān)系運(yùn)算符 算術(shù)運(yùn)算符 低 高關(guān)系運(yùn)算符的結(jié)合性為:自左至右。根據(jù)以上優(yōu)先級(jí)和結(jié)合性,計(jì)算出以下表達(dá)式的結(jié)果(假設(shè)a=3,b=2,c=1) ab 表達(dá)式為真,所以表達(dá)式的值為1 (ab)=c 表達(dá)式為真,所以表達(dá)式的值為1 b+cb ab為真,所以d的值為1 f=abc ab為真,結(jié)果為1,1
19、c為假,所以f的值為0簡(jiǎn)簡(jiǎn) 寫(xiě)寫(xiě)含含 義義簡(jiǎn)簡(jiǎn) 寫(xiě)寫(xiě)含含 義義a+=ba+=ba=a+ba=a+ba&=ba&=ba=a&ba=a&ba-=ba-=ba=a-ba=a-ba|=ba|=ba=a|ba=a|ba a* *=b=ba=aa=a* *b ba=ba=ba=aba=aba/=ba/=ba=a/ba=a/ba=ba=ba=aba=a=ba=ba=aba=ab 函數(shù)名函數(shù)名格式格式功能說(shuō)明功能說(shuō)明例子例子絕對(duì)值函數(shù)絕對(duì)值函數(shù)abs(x)abs(x)求一個(gè)數(shù)求一個(gè)數(shù)x x的絕對(duì)值的絕對(duì)值abs(-5)=5abs(-5)=5自然數(shù)指數(shù)函數(shù)自然數(shù)指數(shù)函數(shù)exp(x
20、)exp(x)求實(shí)數(shù)求實(shí)數(shù)x x的自然指數(shù)的自然指數(shù)e ex xexp(1)=2.718282exp(1)=2.718282向下取整向下取整floor(x)floor(x) 求不大于實(shí)數(shù)求不大于實(shí)數(shù)x x的最大整數(shù)的最大整數(shù)floor(3.14)=3floor(3.14)=3向上取整向上取整ceil(x)ceil(x)求不小于實(shí)數(shù)求不小于實(shí)數(shù)x x的最小整數(shù)的最小整數(shù)ceil(3.14)=4ceil(3.14)=4自然對(duì)數(shù)函數(shù)自然對(duì)數(shù)函數(shù)log(x)log(x)求實(shí)數(shù)求實(shí)數(shù)x x的自然數(shù)對(duì)數(shù)的自然數(shù)對(duì)數(shù)log(1)=0log(1)=0指數(shù)函數(shù)指數(shù)函數(shù)pow(x,y)pow(x,y) 計(jì)算計(jì)算x
21、 xy y, ,結(jié)果為雙精度實(shí)數(shù)結(jié)果為雙精度實(shí)數(shù)pow(2,3)=8pow(2,3)=8隨機(jī)函數(shù)隨機(jī)函數(shù)rand()rand()產(chǎn)生產(chǎn)生0 0到到RAND-MAXRAND-MAX之間的隨機(jī)整數(shù)之間的隨機(jī)整數(shù)平方根值函數(shù)平方根值函數(shù)sqrt(x)sqrt(x)求實(shí)數(shù)求實(shí)數(shù)x x的平方根的平方根sqrt(25)=5sqrt(25)=5六、常用庫(kù)函數(shù)六、常用庫(kù)函數(shù)【上機(jī)練習(xí)】1.A+B問(wèn)題【1.3編程基礎(chǔ)之算術(shù)表達(dá)式與順序執(zhí)行01】 大部分的在線題庫(kù),都會(huì)將A+B問(wèn)題作為第一題,以幫助新手熟悉平臺(tái)的使用方法。 A+B問(wèn)題的題目描述如下:給定兩個(gè)整數(shù)A和B,輸出A+B的值。保證A、B及結(jié)果均在整型范圍
22、內(nèi)?,F(xiàn)在請(qǐng)你解決這一問(wèn)題。輸入: 一行,包含兩個(gè)整數(shù)A,B,中間用單個(gè)空格隔開(kāi)。A和B均在整型范圍內(nèi)。輸出: 一個(gè)整數(shù),即A+B的值。保證結(jié)果在整型范圍內(nèi)。樣例輸入: 1 2樣例輸出: 3【上機(jī)練習(xí)】2.計(jì)算(a+b)*c的值【1.3編程基礎(chǔ)之算術(shù)表達(dá)式與順序執(zhí)行02】 給定3個(gè)整數(shù)a、b、c,計(jì)算表達(dá)式(a+b)*c的值。輸入: 輸入僅一行,包括三個(gè)整數(shù)a、b、c, 數(shù)與數(shù)之間以一個(gè)空格分開(kāi)。(10,000a,b,c10,000)輸出: 輸出一行,即表達(dá)式的值樣例輸入: 2 3 5樣例輸出: 25【上機(jī)練習(xí)】3.計(jì)算(a+b)/c的值【1.3編程基礎(chǔ)之算術(shù)表達(dá)式與順序執(zhí)行03】 給定3個(gè)整數(shù)
23、a、b、c,計(jì)算表達(dá)式(a+b)/c的值,/是整除運(yùn)算。輸入; 輸入僅一行,包括三個(gè)整數(shù)a、b、c, 數(shù)與數(shù)之間以一個(gè)空格分開(kāi)。(10,000 a,b,c 10,000, c不等于0)輸出: 輸出一行,即表達(dá)式的值。樣例輸入: 1 1 3樣例輸出: 0【上機(jī)練習(xí)】4.帶余除法【1.3編程基礎(chǔ)之算術(shù)表達(dá)式與順序執(zhí)行04】 給定被除數(shù)和除數(shù),求整數(shù)商及余數(shù)。此題中請(qǐng)使用默認(rèn)的整除和取余運(yùn)算,無(wú)需對(duì)結(jié)果進(jìn)行任何特殊處理。輸入: 一行,包含兩個(gè)整數(shù),依次為被除數(shù)和除數(shù)(除數(shù)非零),中間用一個(gè)空格隔開(kāi)。輸出: 一行,包含兩個(gè)整數(shù),依次為整數(shù)商和余數(shù),中間用一個(gè)空格隔開(kāi)。樣例輸入: 10 3樣例輸出: 3
24、 1【上機(jī)練習(xí)】5.計(jì)算分?jǐn)?shù)的浮點(diǎn)數(shù)值【1.3編程基礎(chǔ)之算術(shù)表達(dá)式與順序執(zhí)行05】 兩個(gè)整數(shù)a和b分別作為分子和分母,既分?jǐn)?shù)a/b,求它的浮點(diǎn)數(shù)值(雙精度浮點(diǎn)數(shù),保留小數(shù)點(diǎn)后9位)。輸入: 輸入僅一行,包括兩個(gè)整數(shù)a和b。輸出: 輸出也僅一行,分?jǐn)?shù) a/b 的浮點(diǎn)數(shù)值(雙精度浮點(diǎn)數(shù),保留小數(shù)點(diǎn)后9位)。樣例輸入: 5 7樣例輸出: 0.714285714第三節(jié)常量和變量第三節(jié)常量和變量常量常量 一、常量常量是指在程序中使用的一些具體的數(shù)、字符。在程序運(yùn)行過(guò)程中,其值不能被更改。如123,145.88,m,TRUE等。1、整型常量:如3、-5、0等。 整型常量是表示整數(shù)的常量。有三種表示形式:
25、1)十進(jìn)制形式。如99、-1。 2)八進(jìn)制形式。以數(shù)字0打頭,由0-7構(gòu)成,如012,表示八進(jìn)制整數(shù)12,即12(8)。 3)十六進(jìn)制形式。以0 x打頭,如0 x12A,表示十六進(jìn)制整數(shù)12A,即12A(16)。2、實(shí)型常量:如3.1、-6.1E+2(科學(xué)記數(shù)法)。3、字符常量:是用單引號(hào)括起來(lái)的字符,如 k 、5 、%。注意:a與a表示的含義是不同的,a表示一個(gè)字符常量,a表示一個(gè)字符串。常量的定義常量的定義 一個(gè)常量可以直接調(diào)用(如124,A),也可以給常量取個(gè)名字用一個(gè)標(biāo)識(shí)符代表它,這就是符號(hào)常量。其語(yǔ)法格式為: const 符號(hào)常量=常量字串;例如:const double PI=3.
26、1415926;例2.5 輸入半徑r,求圓的周長(zhǎng)及面積。#include /調(diào)用iostream庫(kù),否則使用printf和scanf語(yǔ)句編譯出錯(cuò)using namespace std; /這個(gè)程序可省略這行const double PI=3.1415926; /PI是符號(hào)常量。代表3.1415926int main() float r,c,s; /定義實(shí)型變量 printf(r=); /顯示提示符r= scanf(%f,&r); /輸入r的值,&符號(hào)不能漏掉 c=2*PI*r; /計(jì)算圓的周長(zhǎng) s=PI*r*r; /計(jì)算圓的面積 printf(c=%.2f s=%.2fn,c,
27、s); /顯示計(jì)算結(jié)果,結(jié)果保留2位小數(shù) 程序中定義的PI代表常量3.1415926,在編譯源程序時(shí),遇到PI就用常量3.1415926代替,PI可以和常量一樣進(jìn)行運(yùn)算。C+語(yǔ)言規(guī)定,每個(gè)符號(hào)常量的定義占據(jù)一個(gè)書(shū)寫(xiě)行,而且符號(hào)常量不能被再賦值。如果在例2.5中使用以下賦值語(yǔ)句是錯(cuò)誤的。 PI=3.1415926; 習(xí)慣上,符號(hào)常量名用大寫(xiě),而變量名用小寫(xiě),以便于區(qū)別。使用符號(hào)常量的好處:1)增加了程序的可讀性。如看到例2.5程序中,見(jiàn)到PI就可知道它代表圓周率,定義符號(hào)常量名時(shí)應(yīng)該盡量使用見(jiàn)名知意的常量名。2)增加了程序的易改性。如例2.5程序中,只需改動(dòng)一處,程序中的所有PI都會(huì)自動(dòng)全部代換
28、,做到“一改全改”。變量定義變量定義變量代表了一個(gè)存儲(chǔ)單元,其中的值是可以改變的,因此稱為變量。如游戲中玩家命的條數(shù)最初為3,當(dāng)你死了一次,命減少一條,這里命的條數(shù)就是一個(gè)變量(或者說(shuō)命的條數(shù)存儲(chǔ)在一個(gè)存儲(chǔ)單元中)。一個(gè)程序中可能要使用到若干個(gè)變量,為了區(qū)別不同的變量,必須給每個(gè)變量(存儲(chǔ)單元)取一個(gè)名(稱為變量名),該變量(存貯單元)存儲(chǔ)的值稱為變量的值,變量中能夠存儲(chǔ)值的類(lèi)型為變量的類(lèi)型。例如游戲中用于存儲(chǔ)“命”的變量,在游戲程序中的存儲(chǔ)命的變量名可取為life,它的類(lèi)型為整型,游戲初始時(shí)這個(gè)變量的值為3。變量名變量名 用一個(gè)合法的標(biāo)識(shí)符代表一個(gè)變量。如n,m,rot,total 等都是合
29、法變量名。在程序中用到的變量要“先定義后使用”,變量名應(yīng)遵循自定義標(biāo)識(shí)符的命名規(guī)則,并建議使用“見(jiàn)名知義”的原則,即用一些有意義的單詞作為變量名。在C+語(yǔ)言,變量名大小寫(xiě)有區(qū)別。用來(lái)標(biāo)識(shí)變量名、符號(hào)常量名、函數(shù)名、數(shù)組名、類(lèi)型名、文件名的有效字符序列稱為標(biāo)識(shí)符。C+語(yǔ)言規(guī)定,標(biāo)識(shí)符只能由字母(包含下劃線“_”)開(kāi)頭,后面的字符可以是字母或數(shù)字。對(duì)于標(biāo)識(shí)符的長(zhǎng)度,不同的C+語(yǔ)言編譯器有不同的規(guī)定,考慮到系統(tǒng)的可移植性,建議變量名的長(zhǎng)度不要超過(guò)8個(gè)字符。例如:month、_age、s2為合法的標(biāo)識(shí)符;m.k.jack、a= -459.67)輸出: 輸出一行,包含一個(gè)實(shí)數(shù),表示對(duì)用的攝氏溫度,要求精
30、確到小數(shù)點(diǎn)后5位。樣例輸入: 41樣例輸出: 5.00000【上機(jī)練習(xí)】4.與圓相關(guān)的計(jì)算【1.3編程基礎(chǔ)之算術(shù)表達(dá)式與順序執(zhí)行09】 給出圓的半徑,求圓的直徑、周長(zhǎng)和面積。輸入圓的半徑實(shí)數(shù)r,輸出圓的直徑、周長(zhǎng)、面積,每個(gè)數(shù)保留小數(shù)點(diǎn)后4位。輸入: 輸入包含一個(gè)實(shí)數(shù)r(0 r = 10,000),表示圓的半徑。輸出: 輸出一行,包含三個(gè)數(shù),分別表示圓的直徑、周長(zhǎng)、面積,數(shù)與數(shù)之間以一個(gè)空格分開(kāi),每個(gè)數(shù)保留小數(shù)點(diǎn)后4位。樣例輸入: 3.0樣例輸出: 6.0000 18.8495 28.2743【上機(jī)練習(xí)】5.計(jì)算并聯(lián)電阻的阻值【1.3編程基礎(chǔ)之算術(shù)表達(dá)式與順序執(zhí)行10】 對(duì)于阻值為r1和r2的
31、電阻,其并聯(lián)電阻阻值公式計(jì)算如下:R = 1/(1/r1 + 1/r2)。輸入兩個(gè)電阻阻抗大小,浮點(diǎn)型。輸出并聯(lián)之后的阻抗大小,結(jié)果保留小數(shù)點(diǎn)后2位。輸入: 兩個(gè)電阻阻抗大小,浮點(diǎn)型,以一個(gè)空格分開(kāi)。輸出: 并聯(lián)之后的阻抗大小,結(jié)果保留小數(shù)點(diǎn)后2位樣例輸入: 1 2樣例輸出: 0.67第四節(jié)標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型第四節(jié)標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型C+語(yǔ)言提供了豐富的數(shù)據(jù)類(lèi)型,本節(jié)介紹幾種基本的數(shù)據(jù)類(lèi)型:整型、實(shí)型、字符型。它們都是系統(tǒng)定義的簡(jiǎn)單數(shù)據(jù)類(lèi)型,稱為標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型。整型(整型(integer) 數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型定義標(biāo)識(shí)符定義標(biāo)識(shí)符占字節(jié)數(shù)占字節(jié)數(shù)數(shù)值范圍數(shù)值范圍數(shù)值范圍數(shù)值范圍短整型短整型short intsho
32、rt int2(162(16位位) )-32768-327683276732767-2-215152 21515-1-1整型整型long intlong int4(324(32位位) )-2147483648-214748364821474836472147483647-2-231312 23131-1-1長(zhǎng)整型長(zhǎng)整型long intlong int4(324(32位位) )-2147483648-214748364821474836472147483647-2-231312 23131-1-1超長(zhǎng)整型超長(zhǎng)整型long long intlong long int8(648(64位位) )-92
33、23372036854775808-922337203685477580892233720368547758079223372036854775807-2-263632 26363-1-1無(wú)符號(hào)整型無(wú)符號(hào)整型 unsigned intunsigned int4 4( (3232位位) )0 065535655350 02 21616-1-1無(wú)符號(hào)短整型無(wú)符號(hào)短整型unsigned short unsigned short intint2(162(16位位) )0 065535655350 02 21616-1-1無(wú)符號(hào)長(zhǎng)整型無(wú)符號(hào)長(zhǎng)整型unsigned long unsigned long i
34、ntint4(324(32位位) )0 0429496729542949672950 02 23232-1-1無(wú)符號(hào)超長(zhǎng)整無(wú)符號(hào)超長(zhǎng)整型型unsigned long unsigned long long long 8(648(64位位) )0 018446744073709551615184467440737095516150 02 26464-1-1 在C+語(yǔ)言中,整型類(lèi)型標(biāo)識(shí)符為int。根據(jù)整型變量的取值范圍又可將整型變量定義為以下8種整型類(lèi)型: 表表2-2實(shí)型數(shù)取值范圍實(shí)型數(shù)取值范圍數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型定義標(biāo)識(shí)符定義標(biāo)識(shí)符數(shù)值范圍數(shù)值范圍占字節(jié)數(shù)占字節(jié)數(shù)有效位數(shù)有效位數(shù)單精度實(shí)型單精度實(shí)型f
35、loatfloat-3.4E-38-3.4E-383.4E+383.4E+384(324(32位位) )6 67 7位位雙精度實(shí)型雙精度實(shí)型doubledouble-1.7E+308-1.7E+3081.7E+3081.7E+3088(648(64位位) )15151616位位長(zhǎng)雙精度實(shí)長(zhǎng)雙精度實(shí)型型long long doubledouble-3.4E+4932-3.4E+49321.1E+49321.1E+49321212( (128128位位) )18181919位位布爾變量布爾變量boolbool真真truetrue或假或假falsefalse之一之一1(81(8位位) )字符型(字符
36、型(char) 轉(zhuǎn)義字符轉(zhuǎn)義字符含義含義nn 換行換行tt水平制表水平制表bb退格退格rr回車(chē)(不換行)回車(chē)(不換行)00空字符空字符 單引號(hào)單引號(hào)” 雙引號(hào)雙引號(hào)一個(gè)反斜杠字符一個(gè)反斜杠字符dddddd1 13位八進(jìn)制數(shù)所代表的字符位八進(jìn)制數(shù)所代表的字符xhhxhh1 12位十六進(jìn)制數(shù)所代表的字符位十六進(jìn)制數(shù)所代表的字符三、字符型字符常量有以下兩種表示法: 1、普通表示形式字符常量是由單個(gè)字符組成,所有字符采用ASCII編碼,ASCII編碼共有128個(gè)字符(表2-4)。在程序中,通常用一對(duì)單引號(hào)將單個(gè)字符括起來(lái)表示一個(gè)字符常量。如:a,A,0等。如字符A的序號(hào)是65,字符a的序號(hào)是97, 字
37、符0的序號(hào)的48。2、轉(zhuǎn)義字符表示形式。轉(zhuǎn)義字符有三種用法:表示控制字符、表示特殊字符、表示所有字符。常用的轉(zhuǎn)義字符如右表所示。ASCII編碼表見(jiàn)下圖:序號(hào)字符序號(hào)字符序號(hào)字符序號(hào)字符序號(hào)字符序號(hào)字符32空格4806480P96112p33!49165A81Q97a113q34”50266B82R98b114r35#51367C83S99c115s36$52468D84T100d116t37%53569E85U101e117u38&54670F86V102f118v3955771G87W103g119w40(56872H88X104h120 x41)57973I89Y105i121y4
38、2*58 : 74J90Z106j122z43+59;75K91107k12344,6078N94110n12647/63?79O95_111o127deL例例2.6 整型數(shù)據(jù)類(lèi)型存儲(chǔ)空間大小整型數(shù)據(jù)類(lèi)型存儲(chǔ)空間大小 分別定義int,short類(lèi)型的變量各一個(gè),并依次輸出它們的存儲(chǔ)空間大小(單位:字節(jié))。【參考程序參考程序】#includeusing namespace std;int main() int x; short y; coutsizeof(x) sizeof(y)endl; /sizeof返回一個(gè)對(duì)象或者類(lèi)型所占的內(nèi)存字節(jié)數(shù)return 0; 基于char數(shù)據(jù)的這個(gè)特點(diǎn),它可以和
39、int變量一樣做加減運(yùn)算,例2.7說(shuō)明了這種用法。例2.7 大小字母的轉(zhuǎn)換#includeusing namespace std;int main() char c1,c2; c1=a; c2=A; coutc1 c2endl; c1=c1-32; /小寫(xiě)字母轉(zhuǎn)換大寫(xiě)字母 c2=c2+32; /大寫(xiě)字母轉(zhuǎn)換小寫(xiě)字母 coutc1 c2endl; 運(yùn)行結(jié)果:a AA a 因?yàn)樗行?xiě)字母的ASCII值要比對(duì)應(yīng)大寫(xiě)字母的ASCII值大32,所以c1減去32后便得到原來(lái)字母的大寫(xiě)形式。反之,c2加上32后便得到原來(lái)字母的小寫(xiě)形式。四、數(shù)據(jù)類(lèi)型轉(zhuǎn)換C+語(yǔ)言中,不同數(shù)據(jù)類(lèi)型的運(yùn)算對(duì)象進(jìn)行混合運(yùn)算,或者需
40、要將一個(gè)表達(dá)式的結(jié)果轉(zhuǎn)換成期望的類(lèi)型時(shí),就需要依據(jù)數(shù)據(jù)類(lèi)型轉(zhuǎn)換規(guī)則進(jìn)行轉(zhuǎn)換。 1、混合運(yùn)算時(shí)的類(lèi)型轉(zhuǎn)換規(guī)則整型、實(shí)型、字符型數(shù)據(jù)間可以混合運(yùn)算。在這種情況下,需要將不一致的數(shù)據(jù)類(lèi)型轉(zhuǎn)換成一致的數(shù)據(jù)類(lèi)型,然后進(jìn)行運(yùn)算。為了保證運(yùn)算精度,系統(tǒng)在運(yùn)算時(shí)的轉(zhuǎn)換規(guī)則是將存儲(chǔ)長(zhǎng)度較短的運(yùn)算對(duì)象轉(zhuǎn)成存儲(chǔ)長(zhǎng)度較長(zhǎng)的類(lèi)型,然后再進(jìn)行處理。這種轉(zhuǎn)換是系統(tǒng)自動(dòng)進(jìn)行的,具體見(jiàn)表2-5所示。混合運(yùn)算時(shí)的類(lèi)型轉(zhuǎn)換規(guī)則 【說(shuō)明如下說(shuō)明如下】1)縱向箭頭表示必定會(huì)進(jìn)行的轉(zhuǎn)換,如float型數(shù)據(jù)必先轉(zhuǎn)換為double型數(shù)據(jù),然后與其他操作數(shù)進(jìn)行運(yùn)算。與此類(lèi)似,char型或short型數(shù)據(jù)必先轉(zhuǎn)換為int型數(shù)據(jù),然后進(jìn)行運(yùn)算。2
41、)橫向箭頭表示當(dāng)運(yùn)算對(duì)象為不同類(lèi)型數(shù)據(jù)時(shí)的轉(zhuǎn)換方向,如int型數(shù)據(jù)與unsigned型數(shù)據(jù)進(jìn)行運(yùn)算,int型轉(zhuǎn)換為unsigned型后方可進(jìn)行運(yùn)算。int型與double型進(jìn)行運(yùn)算,int型直接轉(zhuǎn)換為double型后進(jìn)行運(yùn)算,不能理解為先轉(zhuǎn)換為unsigned int型,然后轉(zhuǎn)換為long int型,最后再轉(zhuǎn)換為double型。2、賦值時(shí)的類(lèi)型轉(zhuǎn)換規(guī)則當(dāng)賦值運(yùn)算符兩側(cè)的數(shù)據(jù)類(lèi)型不同時(shí),需進(jìn)行類(lèi)型轉(zhuǎn)換,這種轉(zhuǎn)換是系統(tǒng)自動(dòng)進(jìn)行的,轉(zhuǎn)換規(guī)則如下:1)float、double型賦值給int型:直接截?cái)嘈?shù)。例如,“int i=f+0.6;”,f的值為4.0,右邊算術(shù)表達(dá)式運(yùn)算后的結(jié)果為4.6的doub
42、le型數(shù)據(jù),根據(jù)上述轉(zhuǎn)換原則,直接舍棄小數(shù),所以i的值為4。2)int、char型賦值給float、double型:補(bǔ)足有效位以進(jìn)行數(shù)據(jù)類(lèi)型轉(zhuǎn)換。例如:“float f=4;”,float為7位有效數(shù)字,所以f的值為4.0000000。3)char型(1字節(jié))賦給int型(4字節(jié)):數(shù)值賦給int型的低8位,其它位補(bǔ)0。4)long int型賦值給int型:long int型截?cái)嗟妥止?jié)給int型。5)int型賦值給long int型:賦給long int型的低16位,如果int型的最高位是0,則long int的高16位全為0;如果int型的最高位是1,則long int型的高16位全為1(稱
43、為“符號(hào)擴(kuò)展”)。6)unsigned int型賦值給int型:直接傳送數(shù)值。7)非unsigned int型賦值給位數(shù)相同的unsigned int型:直接傳送數(shù)值。3、強(qiáng)制類(lèi)型轉(zhuǎn)換 在C+語(yǔ)言中,還允許強(qiáng)制類(lèi)型轉(zhuǎn)換,即將某一數(shù)據(jù)的數(shù)據(jù)類(lèi)型轉(zhuǎn)換為指定的另一種數(shù)據(jù)類(lèi)型,強(qiáng)制類(lèi)型轉(zhuǎn)換只是臨時(shí)轉(zhuǎn)換。強(qiáng)制轉(zhuǎn)換運(yùn)算符組成的運(yùn)算表達(dá)式的一般形式為: (類(lèi)型名)(表達(dá)式) 例如:已知有變量定義“int b=7;float a=2.5,c=4.7;”,求下面算術(shù)表達(dá)式的值。 a+(int)(b/3*(int)(a+c)/2.0)%4根據(jù)運(yùn)算符的結(jié)合性規(guī)則,表達(dá)式要自左至右執(zhí)行,b/3為2,2*(int)(a
44、+c)為14,14/2.0為7.0,強(qiáng)制類(lèi)型轉(zhuǎn)換后為7,7%4為3,a的值2.5與3相加,最終結(jié)果為5.5?!旧蠙C(jī)練習(xí)】1.整型數(shù)據(jù)類(lèi)型存儲(chǔ)空間大小【1.2編程基礎(chǔ)之變量定義、賦值及轉(zhuǎn)換01】 分別定義int,short類(lèi)型的變量各一個(gè),并依次輸出它們的存儲(chǔ)空間大小(單位:字節(jié))。輸入: 無(wú)。輸出: 一行,兩個(gè)整數(shù),分別是兩個(gè)變量的存儲(chǔ)空間大小,用一個(gè)空格隔開(kāi)。2.浮點(diǎn)型數(shù)據(jù)類(lèi)型存儲(chǔ)空間大小【1.2編程基礎(chǔ)之變量定義、賦值及轉(zhuǎn)換02】 分別定義float,double類(lèi)型的變量各一個(gè),并依次輸出它們的存儲(chǔ)空間大小(單位:字節(jié))。輸入: 無(wú)。輸出: 一行,兩個(gè)整數(shù),分別是兩個(gè)變量的存儲(chǔ)空間大小,
45、用一個(gè)空格隔開(kāi)。【上機(jī)練習(xí)】3.其他數(shù)據(jù)類(lèi)型存儲(chǔ)空間大小【1.2編程基礎(chǔ)之變量定義、賦值及轉(zhuǎn)換03】 分別定義bool,char類(lèi)型的變量各一個(gè),并依次輸出它們的存儲(chǔ)空間大小(單位:字節(jié))。輸入: 無(wú)。輸出: 一行,兩個(gè)整數(shù),分別是兩個(gè)變量的存儲(chǔ)空間大小,用一個(gè)空格隔開(kāi)。4.浮點(diǎn)數(shù)向零舍入【1.2編程基礎(chǔ)之變量定義、賦值及轉(zhuǎn)換06】 輸入一個(gè)單精度浮點(diǎn)數(shù),將其向零舍入到整數(shù)。說(shuō)明:向零舍入的含義是,正數(shù)向下舍入,負(fù)數(shù)向上舍入。提示:可以使用強(qiáng)制類(lèi)型轉(zhuǎn)換來(lái)實(shí)現(xiàn)。輸入: 輸出: 一個(gè)單精度浮點(diǎn)數(shù)。 一個(gè)整數(shù),即向零舍入到整數(shù)的結(jié)果。樣例輸入: 2.3樣例輸出: 2【上機(jī)練習(xí)】5.打印ASCII碼【
46、1.2編程基礎(chǔ)之變量定義、賦值及轉(zhuǎn)換07】 輸入一個(gè)除空格以外的可見(jiàn)字符(保證在函數(shù)scanf中可使用格式說(shuō)明符%c讀入),輸出其ASCII碼。輸入: 一個(gè)除空格以外的可見(jiàn)字符。輸出: 一個(gè)十進(jìn)制整數(shù),即該字符的ASCII碼。樣例輸入: A樣例輸出: 65【上機(jī)練習(xí)】6.打印字符【1.2編程基礎(chǔ)之變量定義、賦值及轉(zhuǎn)換08】 輸入一個(gè)整數(shù),即字符的ASCII碼,保證存在對(duì)應(yīng)的可見(jiàn)字符。輸出相對(duì)應(yīng)的字符。輸入: 一個(gè)整數(shù),即字符的ASCII碼,保證存在對(duì)應(yīng)的可見(jiàn)字符。輸出: 一行,包含相應(yīng)的字符。樣例輸入: 65樣例輸出: A【上機(jī)練習(xí)】7.整型與布爾型的轉(zhuǎn)換【1.2編程基礎(chǔ)之變量定義、賦值及轉(zhuǎn)換
47、09】 將一個(gè)整型變量的值賦給一個(gè)布爾型變量,再將這個(gè)布爾型變量的值賦給一個(gè)整型變量,得到的值是多少?輸入: 一個(gè)整型范圍內(nèi)的整數(shù),即初始時(shí)整型變量的值。輸出: 一個(gè)整數(shù),經(jīng)過(guò)上述過(guò)程后得到的結(jié)果。樣例輸入: 3樣例輸出: 1【上機(jī)練習(xí)】7.整型與布爾型的轉(zhuǎn)換【1.2編程基礎(chǔ)之變量定義、賦值及轉(zhuǎn)換09】 將一個(gè)整型變量的值賦給一個(gè)布爾型變量,再將這個(gè)布爾型變量的值賦給一個(gè)整型變量,得到的值是多少?輸入: 一個(gè)整型范圍內(nèi)的整數(shù),即初始時(shí)整型變量的值。輸出: 一個(gè)整數(shù),經(jīng)過(guò)上述過(guò)程后得到的結(jié)果。樣例輸入: 3樣例輸出: 1【上機(jī)練習(xí)】8.Hello,World!的大小【1.2編程基礎(chǔ)之變量定義、賦
48、值及轉(zhuǎn)換10】 在上一章里,我們?cè)?jīng)輸出過(guò)的“Hello, World!”嗎?它雖然不是本章所涉及的基本數(shù)據(jù)類(lèi)型的數(shù)據(jù),但我們同樣可以用sizeof函數(shù)獲得它所占用的空間大小。輸入: 無(wú)。輸出: 一個(gè)整數(shù),即“Hello, World!”的大小。第五節(jié)數(shù)據(jù)輸入輸出C+語(yǔ)言中沒(méi)有提供專門(mén)的輸入輸出語(yǔ)句,所有的輸入輸出都是調(diào)用標(biāo)準(zhǔn)庫(kù)函數(shù)中的輸入輸出函數(shù)來(lái)實(shí)現(xiàn)的。在使用時(shí),應(yīng)在源程序的開(kāi)頭使用如下語(yǔ)句:#include#includeusing namespace std;C+語(yǔ)言標(biāo)準(zhǔn)函數(shù)庫(kù)提供了許多標(biāo)準(zhǔn)輸入、輸出函數(shù),本節(jié)將介紹6個(gè)最基本的輸入、輸出函數(shù):字符輸入getchar,字符輸出putch
49、ar,格式化輸入scanf,格式化輸出prinf,流輸入cin,流輸出cout。一、字符輸入函數(shù)getchar getchar函數(shù)是接收從鍵盤(pán)輸入的單個(gè)字符數(shù)據(jù)。它是一個(gè)無(wú)參函數(shù),其語(yǔ)法格式為:getchar();【說(shuō)明】1)通常把輸入的字符賦予一個(gè)字符變量,構(gòu)成賦值語(yǔ)句。例如: char ch; ch=getchar();2) getchar函數(shù)只能接受單個(gè)字符,輸入數(shù)字也按字符處理。3)輸入多于一個(gè)字符時(shí),只接收第一個(gè)字符。4) getchar函數(shù)等待用戶輸入,直到按回車(chē)鍵才結(jié)束,可用于暫停程序的運(yùn)行,直到輸入一個(gè)回車(chē)鍵。5)如果在程序中連續(xù)有兩個(gè)以上getchar()函數(shù),應(yīng)該一次性輸入
50、所需字符,最后再按回車(chē)鍵,否則會(huì)把回車(chē)作為一個(gè)字符傳給后面的getchar()函數(shù)。 例2.8 利用getchar函數(shù)接收鍵盤(pán)輸入。#include#includeusing namespace std;int main() char ch; ch=getchar(); /讀入字符 coutinput=chendl;二、字符輸出函數(shù)putchar putchar函數(shù)是字符輸出函數(shù),功能是向標(biāo)準(zhǔn)輸出設(shè)備(如顯示器)輸出單個(gè)字符數(shù)據(jù),其語(yǔ)法格式為: putchar(ch); /其中,ch為一個(gè)字符變量或常量。 例2.9 利用putchar 函數(shù)輸出字符。#include#includeusing
51、namespace std;int main() char c=B; /定義字符變量c并賦值B putchar(c); /輸出該字符 putchar(x42); /用轉(zhuǎn)義字符輸出字母B putchar(0 x42); /用16進(jìn)制ASCII碼值輸出字母B putchar(66); /用10進(jìn)制ASCII碼值輸出字母B運(yùn)行結(jié)果:BBBB三、通過(guò)三、通過(guò)cout流輸出數(shù)據(jù)流輸出數(shù)據(jù)流插入運(yùn)算符和cout結(jié)合在一起使用,可向顯示器屏幕輸出數(shù)據(jù)。格式1:功能:它把表達(dá)式的值輸出到屏幕上,該表達(dá)式可以是各種基本類(lèi)型的常量、變量或者由它們組成的表達(dá)式。輸出時(shí),程序根據(jù)表達(dá)式的類(lèi)型和數(shù)值大小,采用不同的默認(rèn)
52、格式輸出,大多數(shù)情況下可滿足要求。若要輸出多個(gè)數(shù)據(jù),可以連續(xù)使用流插入運(yùn)算符格式2:功能:將表達(dá)式的內(nèi)容一項(xiàng)接一項(xiàng)的輸出到屏幕上。 1輸出字符串和輸出變量的區(qū)別每當(dāng)我們輸出字符串常量的時(shí)候,必須用雙引號(hào)把字符串引起來(lái),以便將它和變量名明顯的區(qū)分開(kāi)來(lái)。例2.10下面兩個(gè)語(yǔ)句是不同的:cout Hello ; /打印字符串Hello到屏幕上cout Hello ; cout Hello; /把變量Hello存儲(chǔ)的內(nèi)容打印到屏幕上2如何增強(qiáng)信息的可讀性為了增強(qiáng)輸出信息的可讀性,在輸出多個(gè)數(shù)據(jù)時(shí)可以通過(guò)插入空格符,換行符或其他提示信息將數(shù)據(jù)進(jìn)行組織,以獲得更好的效果。例2.11 x=12;cout t
53、om is my friend,he is;cout x;cout years old;輸出結(jié)果為tom is my friend,he is12year old 3換行符的使用必須注意,除非我們明確指定,cout并不會(huì)自動(dòng)在其輸出內(nèi)容的末尾加換行符,因此下面的語(yǔ)句:例2.12cout This is a sentence. ;cout This is another sentence. ;將會(huì)有如下內(nèi)容輸出到屏幕:This is a sentence.This is another sentence. 雖然我們分別調(diào)用了兩次cout,兩個(gè)句子還是被輸出在同一行。所以,為了在輸出中換行,我們必
54、須插入一個(gè)換行符來(lái)明確表達(dá)這一要求,在C+中換行符可以寫(xiě)作n。cout First sentence.n;cout Second sentence.nThird sentence.; 將會(huì)產(chǎn)生如下輸出: First sentence.Second sentence.Third sentence. 另外,你也可以用操作符endl來(lái)?yè)Q行,例如:cout First sentence. endl;cout Second sentence. endl; 將會(huì)輸出:First sentence.Second sentence. 例2.13在屏幕上輸出2 34cout2 3endl;cout4;或 cou
55、t和cin結(jié)合在一起使用,可從鍵盤(pán)輸入數(shù)據(jù)。格式格式1:功能:是從鍵盤(pán)讀取一個(gè)數(shù)據(jù)并將其賦給“變量”。說(shuō)明:在使用cin輸入的時(shí)候必須考慮后面的變量類(lèi)型。如果你要求輸入一個(gè)整數(shù),在 后面必須跟一個(gè)整型變量,如果要求一個(gè)字符,后面必須跟一個(gè)字符型變量。例2.14聲明一個(gè)整型變量age然后等待用戶從鍵盤(pán)輸入到cin并將輸入值存儲(chǔ)在這個(gè)變量中。int age;cin age; 也可以連續(xù)使用,實(shí)現(xiàn)從鍵盤(pán)對(duì)多個(gè)變量輸入數(shù)據(jù)。格式格式2:這要求從鍵盤(pán)輸入的數(shù)據(jù)的個(gè)數(shù)、類(lèi)型與變量相一致。從鍵盤(pán)讀取數(shù)據(jù)時(shí),各數(shù)據(jù)之間要有分隔符,分隔符可以是一個(gè)或多個(gè)空格鍵、回車(chē)鍵等。 例2.15用cin 讓用戶輸入多個(gè)數(shù)據(jù)
56、 。cin a b; 等同于:cin a;cin b; 例2.16流讀取運(yùn)算符和cin的使用#includeusing namespace std;int main( ) char c; int i ; float x,y; coutixy; c=i; coutc=cti=in; coutx=xty=yn; return 0; 程序運(yùn)行時(shí)屏幕先顯示: enter:這時(shí)從鍵盤(pán)輸入一個(gè)整數(shù)和兩個(gè)實(shí)數(shù),中間用一個(gè)或多個(gè)空格鍵作分隔符。 如輸入65 2.3 3.5 最后屏幕顯示:c=A i=65 x=2.3 y=3.5程序中n和t都是轉(zhuǎn)義符。 n 和n效果相同,都表示換行符。t是制表符,可以理解為連續(xù)
57、輸出幾個(gè)空格。字符變量和整型變量i的值都是65,但輸出的形式不同。 五、格式化輸入函數(shù)scanfscanf函數(shù)的功能是格式化輸入任意數(shù)據(jù)列表,其一般調(diào)用格式為:scanf(格式控制符,地址列表)【說(shuō)明說(shuō)明】 1)地址列表中給出各變量的地址,可以為變量的地址,也可以為字符串的首地址。 2)格式控制符由%和格式符組成,作用是將要輸入的字符按指定的格式輸入,如%d,%c等。 格式符格式符說(shuō)說(shuō) 明明d,id,i用于輸入十進(jìn)制整數(shù)用于輸入十進(jìn)制整數(shù)u u以無(wú)符號(hào)十進(jìn)制形式輸入十進(jìn)以無(wú)符號(hào)十進(jìn)制形式輸入十進(jìn)制整數(shù)制整數(shù)o(o(字母字母) )用于輸入八進(jìn)制整數(shù)用于輸入八進(jìn)制整數(shù)x x用于輸入十六進(jìn)制整數(shù)用于
58、輸入十六進(jìn)制整數(shù)c c用于輸入單個(gè)字符用于輸入單個(gè)字符s s用于輸入字符串(非空格開(kāi)始,用于輸入字符串(非空格開(kāi)始,空格結(jié)束,字符串變量以空格結(jié)束,字符串變量以00結(jié)尾)結(jié)尾)f f用于輸入實(shí)數(shù)(小數(shù)或指數(shù)均用于輸入實(shí)數(shù)(小數(shù)或指數(shù)均可)可)e e與與f f相同(可與相同(可與f f互換)互換) 表2-6 scanf函數(shù)的格式符表2-7 scanf函數(shù)的附加格式說(shuō)明符附加格式說(shuō) 明l(字母)用于長(zhǎng)整型數(shù)(%ld、%lo、%lx)或double型實(shí)數(shù)(%lf、%le)h用于短整型數(shù)(%hd、%ho、%hx)域?qū)?一個(gè)整數(shù))指定輸入所占列寬*表示對(duì)應(yīng)輸入量不賦給一個(gè)變量 六、格式化輸出函數(shù)prin
59、tfprintf函數(shù)的功能是格式化輸出任意數(shù)據(jù)列表,其一般調(diào)用格式為:printf(格式控制符,輸出列表)【說(shuō)明】1)格式控制由輸入格式說(shuō)明和普通字符組成,必須用雙引號(hào)括起來(lái)。格式說(shuō)明由%和格式字符組成,作用是將要輸出的字符轉(zhuǎn)換為指定的格式,如%d,%c等。普通字符是在輸出時(shí)原樣輸出的字符,一般在顯示時(shí)起提示作用。 2)輸出列表是需要輸出的一組數(shù)據(jù)(可以為表達(dá)式和變量),各參數(shù)之間用“,”分開(kāi)。要求格式說(shuō)明和各輸出項(xiàng)在數(shù)量和類(lèi)型上要一一對(duì)應(yīng),否則將會(huì)出現(xiàn)意想不到的錯(cuò)誤。 表2-8 printf函數(shù)的格式符 格式符格式符說(shuō)說(shuō) 明明d(d(或或i)i)以帶符號(hào)的十進(jìn)制形式輸出整數(shù),正數(shù)的以帶符號(hào)的
60、十進(jìn)制形式輸出整數(shù),正數(shù)的(+)(+)號(hào)省略不輸出號(hào)省略不輸出u u以無(wú)符號(hào)十進(jìn)制形式輸出整數(shù)以無(wú)符號(hào)十進(jìn)制形式輸出整數(shù)x(x(或或X)X)以十六進(jìn)制無(wú)符號(hào)形式輸出整數(shù)(不輸出前導(dǎo)符以十六進(jìn)制無(wú)符號(hào)形式輸出整數(shù)(不輸出前導(dǎo)符0 x0 x)o(o(字母字母) )以八進(jìn)制無(wú)符號(hào)形式輸出整數(shù)(不輸出前導(dǎo)符數(shù)字以八進(jìn)制無(wú)符號(hào)形式輸出整數(shù)(不輸出前導(dǎo)符數(shù)字0 0)c c輸出一個(gè)字符輸出一個(gè)字符s s輸出字符串輸出字符串f f以小數(shù)形式輸出單、雙精度,隱含輸出以小數(shù)形式輸出單、雙精度,隱含輸出6 6位小數(shù)位小數(shù)e(e(或或E)E)以指數(shù)形式輸出單、雙精度,隱含輸出以指數(shù)形式輸出單、雙精度,隱含輸出6 6位小數(shù)位小數(shù)g(g(或或G)G)自動(dòng)選用自動(dòng)選用%f%f、%e%e或或%E%E格式中輸出寬度較小的一種使用格式中輸出寬度較小的一種使用 例如,對(duì)如下程序段int i=1;long j=123;printf(%d,%2d,%03d,%1d,%-4ld,%05ld,i,i,i,j
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《玻尿酸愛(ài)可附案例》課件
- Unit Three Lesson 10 I Dream of Flying(說(shuō)課稿)-2024-2025學(xué)年清華大學(xué)版(2024)英語(yǔ)三年級(jí)上冊(cè)
- 《財(cái)政支出總》課件
- 辦公室文件管理制度3篇
- 山西省大同市(2024年-2025年小學(xué)六年級(jí)語(yǔ)文)統(tǒng)編版小升初模擬(下學(xué)期)試卷及答案
- 2024年英國(guó)數(shù)學(xué)科學(xué)夏令營(yíng)合同3篇
- 《酒水知識(shí)培訓(xùn)》課件
- 蛇年新春祝福短信靈蛇賀歲春節(jié)安康祝福語(yǔ)課件
- 2024年航空航天器制造借款合同
- 2024年門(mén)窗施工協(xié)議標(biāo)準(zhǔn)文本版B版
- 電梯年終工作總結(jié)2篇
- 導(dǎo)醫(yī)接待工作的常見(jiàn)問(wèn)題與應(yīng)對(duì)策略
- 《客戶的分級(jí)》課件
- 信息技術(shù)與小學(xué)語(yǔ)文閱讀教學(xué)深度融合的策略研究
- 大連市船舶運(yùn)輸與經(jīng)濟(jì)發(fā)展的市場(chǎng)研究報(bào)告
- GB/T 2881-2023工業(yè)硅
- DB3302T 1156-2023 水利水務(wù)設(shè)施基礎(chǔ)感知點(diǎn)位設(shè)置規(guī)范
- 內(nèi)科醫(yī)生的醫(yī)患關(guān)系與患者滿意度
- 小學(xué)生低年級(jí)語(yǔ)文閱讀能力評(píng)價(jià)標(biāo)準(zhǔn)及評(píng)價(jià)辦法
- 案例:伊通河中段水環(huán)境綜合整治工程
- 仿真植物施工方案
評(píng)論
0/150
提交評(píng)論