第二章順序結(jié)構(gòu)程序設(shè)計_第1頁
第二章順序結(jié)構(gòu)程序設(shè)計_第2頁
第二章順序結(jié)構(gòu)程序設(shè)計_第3頁
第二章順序結(jié)構(gòu)程序設(shè)計_第4頁
第二章順序結(jié)構(gòu)程序設(shè)計_第5頁
已閱讀5頁,還剩189頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二章

順序結(jié)構(gòu)程序設(shè)計內(nèi)容簡介程序結(jié)構(gòu)分為順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)三種。用這三種基本結(jié)構(gòu)可以實現(xiàn)任何復(fù)雜的算法。順序結(jié)構(gòu)是三種基本程序結(jié)構(gòu)中最簡單的一種。它是按照程序代碼書寫的先后順序來執(zhí)行的,程序自始至終只沿著一個方向執(zhí)行。語句A語句B語句C順序結(jié)構(gòu)流程圖內(nèi)容簡介順序結(jié)構(gòu)由于程序流程過于單一,所以不能實現(xiàn)復(fù)雜的算法,一般只用于編寫一些不需要對流程進(jìn)行控制的簡單程序。本章將重點介紹整型、實型和字符型三大基本數(shù)據(jù)類型的使用方法。2.1C語言源程序結(jié)構(gòu)C語言源程序結(jié)構(gòu):1.一個C語言源程序可以由一個或多個源文件組成。

2.每個源文件可由一個或多個函數(shù)組成,函數(shù)是構(gòu)成C源程序的基本單位。

2.1C語言源程序結(jié)構(gòu)3.

main函數(shù)可以位于源程序的任何位置。但是,不管main函數(shù)位于源程序的開頭、中間,還是末尾,程序是都從main函數(shù)開始執(zhí)行,并且在main函數(shù)中結(jié)束,即main函數(shù)是整個程序的入口和出口。課堂練習(xí)1、C源程序的基本單位是___________。2、一個C源程序應(yīng)至少包括一個___________函數(shù)。3、在一個C源程序中,注釋部分兩側(cè)的分界符分別為_______和_______。4、一個C程序的執(zhí)行是從_______開始的,到_______結(jié)束的。5、C語言規(guī)定:在一個源程序中,main函數(shù)的位置()。A.必須在最開始B.必須在系統(tǒng)調(diào)用的庫函數(shù)后面

C.可以任意D.必須在最后課堂練習(xí)

2.2最簡單的C程序【例2.1】在屏幕上輸出“IloveCprogramm.”voidmain(){printf("IloveCprogramm.");}運(yùn)行程序2.2最簡單的C程序【例2.2】在屏幕上輸出圣誕樹的圖案。運(yùn)行程序數(shù)據(jù)類型C數(shù)據(jù)類型基本類型構(gòu)造類型指針類型空類型void定義類型typedef字符類型char枚舉類型enum整型實型單精度型float雙精度型double數(shù)組結(jié)構(gòu)體struct共用體union短整型short長整型long整型int2.3整型數(shù)據(jù)整型數(shù)據(jù)是不包含小數(shù)部分的數(shù)值型數(shù)據(jù),分為整型常量和整型變量兩種。常量:在整個程序運(yùn)行期間其值都不會發(fā)生變化變量:在程序運(yùn)行期間其值會發(fā)生改變2.3.1整型常量常量分為字面常量和符號常量。字面常量可以直接看出其數(shù)值符號常量則是用一個標(biāo)識符代表一個數(shù)值

字面整型常量(整常數(shù))十進(jìn)制整數(shù):由數(shù)字0~9和正負(fù)號表示.如123,-456,0八進(jìn)制整數(shù):由數(shù)字0開頭,后跟數(shù)字0~7表示.如0123,011十六進(jìn)制整數(shù):由0x開頭,后跟0~9,a~f,A~F表示.如0x123,0Xffmain(){printf(“%d\n”,123);}main(){printf(“%d\n”,0123);}main(){printf(“%d\n”,0x123);}2.3.1整型常量2.3.1整型常量(2)符號常量的定義格式:#define標(biāo)識符數(shù)值如:#defineN10N表示符號常量名,代表數(shù)值10。例符號常量舉例#definePRICE30main(){intnum,total;num=10;total=num*PRICE;printf("total=%d",total);}運(yùn)行結(jié)果:total=3002.3.1整型常量符號常量使用注意事項:①定義符號常量這一行屬于預(yù)處理命令,不是C語句,末尾不加分號。②符號常量名通常用大寫字母表示。2.3.2整型變量分類整型變量分為三大類:基本整型、短整型和長整型。根據(jù)有無符號位,每一大類整型數(shù)據(jù)又可以分為有符號和無符號兩種類型。因此,C語言整型變量分為六種類型。2.3.2整型變量分類整型變量類型長度取值范圍有符號基本整型2字節(jié)-32768~32767(-215~215-1)無符號基本整型2字節(jié)0~65535(0~216-1)有符號短整型2字節(jié)-32768~32767(-215~215-1)無符號短整型2字節(jié)0~65535(0~216-1)有符號長整型4字節(jié)-231~231-1無符號長整型4字節(jié)0~232-12.3.2整型變量分類對于整型常量,如果其值在-32768~32767之間,則認(rèn)為它是int類型,如果超出這個范圍,但在-231~231-1之間,則認(rèn)為是長整型。整型常量后面加上字母u或U,則認(rèn)為是unsignedint型。如,-3u是無符號整型常量。整型常量后面加上l或L,則認(rèn)為是長整型。如,0L是長整型常量。2.3.3整型變量定義變量的兩個要素(1)變量名

每個變量都必須有變量名,變量名實際上是一個符號地址。在對程序進(jìn)行編譯連接時系統(tǒng)會給每個變量名分配一個內(nèi)存地址。(2)變量值

在程序運(yùn)行過程中,變量值存儲在內(nèi)存中,系統(tǒng)通過變量名來引用變量的值。2.3.3整型變量定義變量名2000H34a變量值內(nèi)存地址inta;a=34;2.3.3整型變量定義有符號基本整型:[signed]int變量名;無符號基本整型:unsigned[int]變量名;有符號短整型:[signed]short[int]變量名;無符號短整型:

unsignedshort[int]變量名;有符號長整型:[signed]long[int]變量名;無符號長整型:

unsignedlong[int]變量名;方括號“[]”括起來的是可選項,在定義變量時可以省略。2.3.3整型變量定義如:inti;unsignedintu;shortk;unsignedshorts;longm;unsignedlongn;2.3.3整型變量定義變量名命名規(guī)則:(1)以字母或下劃線開頭(2)只能由字母、數(shù)字和下劃線組成(3)不能用C語言關(guān)鍵字作標(biāo)識符2.3.3整型變量定義32個關(guān)鍵字:(由系統(tǒng)定義,不能重作其它定義)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile2.3.3整型變量定義例:判斷下列標(biāo)識符號合法性sumSumM.D.JohndayDate3daysstudent_name#33lotus_1_2_3chara>b_above$123M.D.John3days#33char$123a>b2.3.3整型變量定義定義變量注意事項:所有的變量都要先定義后使用變量名嚴(yán)格區(qū)分大小寫字母變量名通常用小寫字母表示課堂練習(xí)1.以下字符列中,能作為C程序自定義標(biāo)識符的是()A.num(10)B.file_bakC.breakD.class+22.下列字符列中,不是C語言提供的合法關(guān)鍵字是()A.switchB.beginC.caseD.default2.3.4整型變量賦值在C語言中,賦值運(yùn)算符是“=”,其作用是將一個數(shù)據(jù)賦給一個變量。如:inta;a=3;2.3.4整型變量賦值也可以在定義變量的同時給變量賦初值,這種賦值方法稱為變量的初始化。如:intb=2;2.3.4整型變量賦值inta,b,c;a=b=c=5;表示定義了a、b、c三個變量,并使a,b,c的值都為5。注意:不能寫成inta=b=c=5;否則在編譯程序時會報錯,提示變量b和c沒有定義。2.3.4整型變量賦值關(guān)于變量賦值操作的注意事項:(1)C語言在運(yùn)行程序時才對變量進(jìn)行賦值操作,在編譯階段系統(tǒng)只負(fù)責(zé)給變量分配存儲空間。(2)定義變量后如果沒有對變量進(jìn)行賦值操作,則其值是不確定的。2.3.4整型變量賦值(3)對整型變量賦以小數(shù)時,只保留整數(shù)部分,小數(shù)部分被直接舍棄掉,不作四舍五入。如:inta=1.8;a中實際存儲的值為1。2.3.4整型變量賦值(4)對整型變量進(jìn)行賦值時要注意不能超出變量的取值范圍。如果所賦的值超出范圍,則不能得到正確的結(jié)果。如,int類型的取值范圍是-32768~32767,如果將32768賦給int類型的變量,則其得到的實際值為-32768,這種現(xiàn)象稱為數(shù)據(jù)溢出。2.3.4整型變量賦值以int類型為例,如果對其賦的值超過32767但又小于或等于65536,則其實際得到的值為這個數(shù)減去65536的差。如:inta=32768;,則a中實際存儲的值為32768與65536的差,即-32768如:intb=65530;,則b中實際存儲的值為65530與65536的差,即-62.3.4整型變量賦值如果對int類型的變量賦的值小于-32768但又大于或等于-65536,則其實際得到的值為這個數(shù)加上65536的和。如:intb=-65510;,則b中實際存儲的值為-65510和65536的和,即26。2.3.4整型變量賦值對于unsignedint類型的變量,其允許的取值范圍是0~65535,如果賦的值超過65535,則將該數(shù)值除以65536,得到的余數(shù)即實際存儲的值。如果賦的值是大于-65536的負(fù)整數(shù),則將這個負(fù)整數(shù)加上65536,得到的和即實際存儲的值。如:unsignedintb=-1;,則b中實際存儲的值為-1與65536的和,即65535。2.3.4整型變量賦值不同類型的整型變量可以相互賦值,但實際存儲的數(shù)值仍然由變量的取值范圍來決定。如:unsignedintb=65535;inta=b;則a中實際存儲的值為65535與65536的差,即-1。課堂練習(xí)

以下程序段運(yùn)行結(jié)果是()inti=010,j=10.5,k=65535;

printf(“%d,%d,%d\n”,i,j,k);A)10,11,65535B)8,10,0C)8,10,-1D)16,10,-32767C整型數(shù)據(jù)的輸入通過scanf函數(shù)來實現(xiàn)。2.3.5整型數(shù)據(jù)輸入scanf函數(shù)的格式:scanf(“格式控制字符串”,地址表列);格式控制串由格式字符(簡稱格式符)和普通字符組成。變量地址的表示方法為:&變量名不同類型的數(shù)據(jù)類型對應(yīng)的格式字符也不同int類型的格式符為“%d”unsignedint類型的格式符為“%u”longint的格式符為“%ld”2.3.5整型數(shù)據(jù)輸入如:inta;unsignedb;longintc;其輸入數(shù)據(jù)的格式分別為:scanf("%d",&a);scanf("%u",&b);scanf("%ld",&c);2.3.5整型數(shù)據(jù)輸入2.3.5整型數(shù)據(jù)輸入(1)“%d%d”表示按十進(jìn)制整數(shù)形式輸入兩個整數(shù)。輸入數(shù)據(jù)時,在兩個數(shù)據(jù)之間要以一個或多個空格、回車鍵、tab鍵間隔。

整型數(shù)據(jù)輸入注意事項:如:intm,n;scanf(“%d%d”,&m,&n);2.3.5整型數(shù)據(jù)輸入以下輸入方法均為合法:①34(1個空格)②34(多個空格)③3(回車?。?/p>

4④3(tab鍵)42.3.5整型數(shù)據(jù)輸入scanf(“%d,%d”,&a,&b);(2)“格式控制字符串”中的普通字符要原樣輸入。正確輸入方法:3,4scanf(“a=%d,b=%d”,&a,&b);正確輸入方法:a=3,b=42.3.5整型數(shù)據(jù)輸入如:scanf(“%5d%5d”,&a,&b);(3)可以規(guī)定輸入數(shù)據(jù)的寬度。輸入:123456763則:a為12345,b為6763課堂練習(xí)

1、x、y、z被定義為int型變量,若從鍵盤給x、y、z輸入數(shù)據(jù),正確的輸入語句是()A.

INPUTx、y、z;B.scanf("%d%d%d",&x,&y,&z);C.scanf("%d%d%d",x,y,z);D.read("%d%d%d",&x,&y,&z);B2、若想通過以下輸入語句使a中存放整數(shù)1234,b中存放整數(shù)5,則輸入數(shù)據(jù)的形式應(yīng)該是

_______

inta,b;scanf(“a=%d□b=%d”,&a,&b);課堂練習(xí)a=1234b=52.3.6整型數(shù)據(jù)輸出整型數(shù)據(jù)通過printf函數(shù)向屏幕輸出。printf函數(shù)調(diào)用形式:

printf(格式控制串,輸出列表);2.3.6整型數(shù)據(jù)輸出輸出整型數(shù)據(jù)的格式符:(1)%d:用于輸出有符號基本整型數(shù)據(jù),即int類型數(shù)據(jù),輸出數(shù)據(jù)的范圍為-32768~32767。如:inta=12,b=-10;printf(“a=%d,b=%d\n”,a,b);輸出結(jié)果為:a=12,b=-102.3.6整型數(shù)據(jù)輸出(2)%u:用于輸出無符號基本整型類型數(shù)據(jù),即unsignedint類型數(shù)據(jù),輸出數(shù)據(jù)的范圍為0~65535。如:unsignedinta=65535;intb=-3;printf(“a=%u\n”,a);printf(“b=%u\n”,b);輸出結(jié)果:a=65535b=655332.3.6整型數(shù)據(jù)輸出(3)%ld:用于輸出長整型數(shù)據(jù),輸出范圍為-231~231-1。

對于long型數(shù)據(jù),當(dāng)整型數(shù)據(jù)的范圍超出-32768~32767時,必須用%ld格式輸出,否則會出錯。2.3.6整型數(shù)據(jù)輸出(4)%o:將基本整型數(shù)據(jù)的二進(jìn)制補(bǔ)碼轉(zhuǎn)換成八進(jìn)制形式輸出,輸出的八進(jìn)制數(shù)范圍為0~177777如:

inta=-1;printf(“%d,%o”a,a);

輸出:-1,1777772.3.6整型數(shù)據(jù)輸出(5)%x、%X:將基本整型數(shù)據(jù)的二進(jìn)制補(bǔ)碼轉(zhuǎn)換成十六進(jìn)制數(shù)輸出,輸出的十六進(jìn)制數(shù)范圍為0~ffff(或FFFF)。如:inta=-1;printf(“%x”,a);輸出結(jié)果為:ffff2.3.6整型數(shù)據(jù)輸出(6)%md和%-md:按照m列的寬度輸出int型數(shù)據(jù)(負(fù)號也占一列)。如果輸出數(shù)據(jù)的實際寬度不足m位,則用空格補(bǔ)齊m位。%md要在數(shù)據(jù)左邊補(bǔ)空格,%-md要在數(shù)據(jù)右邊補(bǔ)空格。如果輸出數(shù)據(jù)的寬度超過m位,則按實際長度輸出。2.3.6整型數(shù)據(jù)輸出如:printf(“%5d,%-5d,%3d”,12,13,12345);

輸出結(jié)果為:□□□12,13□□□,123452.3.6整型數(shù)據(jù)輸出printf函數(shù)使用注意事項(1)格式控制串中的普通字符要原樣輸出。如:inta=1,b=2;printf("a=%d,b=%d",a,b);輸出結(jié)果為:a=1,b=22.3.6整型數(shù)據(jù)輸出(2)在為整數(shù)選擇輸出格式符時要防止數(shù)據(jù)溢出。如:printf("%d,%u",65535,65536);輸出結(jié)果為:-1,02.3.6整型數(shù)據(jù)輸出(3)八進(jìn)制和十六進(jìn)制格式不會輸出負(fù)整數(shù)。如:printf("%o,%x",-1,-1);輸出結(jié)果為:177777,ffff課堂練習(xí)main(){unsigneda=65534;printf(“%d,%u,%o,%x\n”,a,a,a,a);}運(yùn)行的結(jié)果是

。A.-32768,65534,177776,ffff

B.-2,65534,177776,fffeC.-1,65534,-77777,-7fff

D.-2,65534,-77777,-7fffB2.3.7整型數(shù)據(jù)運(yùn)算整型數(shù)據(jù)常用的運(yùn)算有加、減、乘、除、模、自增、自減、復(fù)合賦值運(yùn)算等。2.3.7整型數(shù)據(jù)運(yùn)算(1)加、減、乘法運(yùn)算C語言的加、減、乘法運(yùn)算規(guī)則和數(shù)學(xué)中的加、減、乘法規(guī)則一樣。要特別注意乘法的運(yùn)算符為“*”,且C語言中乘法運(yùn)算符不能省略。如,數(shù)學(xué)表達(dá)式y(tǒng)=2x、c=ab、z=xy應(yīng)該寫成y=2*x、c=a*b、z=x*y。2.3.7整型數(shù)據(jù)運(yùn)算(2)除法運(yùn)算除法運(yùn)算符為“/”,運(yùn)算規(guī)則如下:當(dāng)被除數(shù)和除數(shù)都是整數(shù)時,商為整數(shù),如果不能被整除,則結(jié)果只保留商的整數(shù)部分,小數(shù)部分直接被舍棄掉,不作四舍五入處理。

如:10/2的商為5,185/100的商為1,1/3的商為02.3.7整型數(shù)據(jù)運(yùn)算當(dāng)被除數(shù)和除數(shù)中有一個為實數(shù)時,則商為實數(shù)。

如:124.5/10的商為12.452/5.0的商為0.41.2/4.8的商為0.252.3.7整型數(shù)據(jù)運(yùn)算(3)模運(yùn)算模運(yùn)算即求余運(yùn)算,運(yùn)算結(jié)果為被除數(shù)除以除數(shù)的余數(shù)。模運(yùn)算符為“%”。模運(yùn)算要求被除數(shù)和除數(shù)都必須是整型數(shù)據(jù),否則將報語法錯誤。如:12%5的值為2,5%8的值為5,15%2.5是錯誤的。課堂練習(xí)

inti=12,j=5,m,n,q;m=i%10;n=j%i;q=i%j; m,n,q分別為多少?2.3.7整型數(shù)據(jù)運(yùn)算(4)自增、自減運(yùn)算自增、自減運(yùn)算的功能是使變量的值增加或減少1,其運(yùn)算符為++、--

。如,對于整型變量i,i++和++i相當(dāng)于i=i+1,

i--和--i相當(dāng)于i=i-1。2.3.7整型數(shù)據(jù)運(yùn)算i++、i--稱為后綴形式,++i、--i稱為前綴形式。i++、i--表示先使用i的原值進(jìn)行運(yùn)算,之后i的值再加1或減1。++i、--i表示先將i的值加1或減1,再用i的新值參與運(yùn)算。2.3.7整型數(shù)據(jù)運(yùn)算如:inti=1,j;執(zhí)行j=i++;之后,j的值為1,i的值為2。執(zhí)行過程:先用i的原值對j做賦值操作,之后,i再加1變成2。2.3.7整型數(shù)據(jù)運(yùn)算如:inti=1,j;若執(zhí)行j=++i;,則j的值變成2,i的值也變成2。執(zhí)行過程:先將i的值加1變成2后,再將i的新值2賦給j。2.3.7整型數(shù)據(jù)運(yùn)算如:inti=1,j;執(zhí)行printf(“%d”,i++);

輸出結(jié)果為1,i的值變成2。執(zhí)行printf("%d",++i);

輸出結(jié)果為2,i的值也是2。2.3.7整型數(shù)據(jù)運(yùn)算++、--運(yùn)算注意事項:①C語言函數(shù)參數(shù)按從右往左的順序求值如:inti=1;printf("%d,%d",i++,++i);

運(yùn)行結(jié)果為:2,22.3.7整型數(shù)據(jù)運(yùn)算如:inti=1,j;若執(zhí)行printf(“%d”,(i++)+(i++));,則輸出結(jié)果為3。若執(zhí)行j=(i++)+(i++);,則j的值為2。因為賦值語句對于所有后綴形式的++、--運(yùn)算都用其原值計算,算完之后i再連續(xù)做自增或自減運(yùn)算。2.3.7整型數(shù)據(jù)運(yùn)算如:inti=1,j;若執(zhí)行語句printf(“%d”,++i+(++i));

則輸出結(jié)果為5。若執(zhí)行賦值語句j=(++i)+(++i);

則j的值為6。

因為在賦值語句中所有前綴形式的++、--運(yùn)算都用其自增或自減過后的新值進(jìn)行計算。第74頁③++、--運(yùn)算符只能用于變量,不能用于常量或表達(dá)式,5++、++(a+b)等都是非法的。④++和--的結(jié)合方向為“自右向左”,-i++相當(dāng)于-(i++)。i+++j++相當(dāng)?shù)?i++)+(j++)3.3.6整型數(shù)據(jù)計算規(guī)則如:i=3,則printf(“%d,-i++”);相當(dāng)于先將3加上負(fù)號輸出-3,再對i加1,使i變成4。2.3.7整型數(shù)據(jù)運(yùn)算例i=3;k=++i;i=3;k=i++;i=3;printf(“%d”,++i);i=3;printf(“%d”,i++);a=3;b=5;c=(++a)*b;a=3;b=5;c=(a++)*b;//k=4,i=4//k=3,i=4//4//3//c=20,a=4//c=15,a=4課堂練習(xí)1、以下程序的輸出結(jié)果是()

main()

{inta=12,b=12;

printf(“%d%d\n”,--a+b,++b);

} A、2313

B、2413

C、2412

D、2312B第77頁課堂練習(xí)2、請寫出以下程序輸出結(jié)果。main(){intx=6,y;printf("x=%d\n",x); y=++x; printf("x=%d,y=%d\n",x,y);y=x--; printf("x=%d,y=%d\n",x,y);}

程序運(yùn)行結(jié)果:x=6x=7,y=7x=6,y=72.3.7整型數(shù)據(jù)運(yùn)算(5)復(fù)合賦值運(yùn)算復(fù)合賦值運(yùn)算是將賦值運(yùn)算與其他運(yùn)算相結(jié)合的運(yùn)算。算術(shù)運(yùn)算和賦值運(yùn)算相結(jié)合是最常用的復(fù)合賦值運(yùn)算,如,+=,-=,/=,*=,%=。2.3.7整型數(shù)據(jù)運(yùn)算a=a+3;

可以寫成

a+=3;a=a-3;可以寫成a-=3;a=a*3;可以寫成a*=3;a=a/(b+3);

可以寫成a/=(b+3);或a/=b+3;a=a%(b*c+3);可以寫成a%=(b*c+3);或a%=b*c+3;注意:復(fù)合賦值運(yùn)算符優(yōu)先級別低于算術(shù)運(yùn)算符2.3.7整型數(shù)據(jù)運(yùn)算如:intx=2;x+=x-=x*x;執(zhí)行復(fù)合賦值運(yùn)算后x的值為多少?課堂練習(xí)1.假定有以下變量定義:intk=7,x=12;則能使值為3的表達(dá)式是()

A、x%=(k%=5)

B、x%=(k-k%5)C、x%=k-k%5

D、(x%=k)-(k%=5)D課堂練習(xí)2.若有定義:inta=010,b=1,c=2;,順序執(zhí)行下列語句后,變量c中的值是

。 c=(a-=(b+5)); c=(a%11)+(b=1);3課堂練習(xí)3.下列程序的運(yùn)行結(jié)果是

。main(){intx=6,y,z;x*=18+1;printf("%d,",x--);x+=y=z=11;printf("%d",x);}113,1242.3.8整型數(shù)據(jù)編程【例2.3】輸入兩個整數(shù),求這兩個整數(shù)的和、差、積、商和模并輸出計算結(jié)果。問題分析2.3.8整型數(shù)據(jù)編程程序代碼voidmain(){inta,b;printf("Pleaseinputtwointigernumbers:");scanf("%d,%d",&a,&b);printf("\n%d+%d=%d",a,b,a+b);

printf("\n%d-%d=%d",a,b,a-b);printf("\n%d*%d=%d",a,b,a*b);printf("\n%d/%d=%d",a,b,a/b);printf(“\n%d%%%d=%d”,a,b,a%b);}運(yùn)行程序2.3.8整型數(shù)據(jù)編程【例2.4】輸入一個三位整數(shù)并輸出其逆序數(shù),如輸入345,則輸出543。解題思路:先分離一個整數(shù)的百位、十位和個位數(shù)字,再將個位數(shù)乘上100、十位數(shù)乘上10,并將這兩個乘積與百位數(shù)相加,即得到這個整數(shù)的逆序數(shù)。解題關(guān)鍵在于分離百位、十位和個位數(shù)字。2.3.8整型數(shù)據(jù)編程分離百位數(shù)只要將三位整數(shù)除以100即可。因為根據(jù)除法運(yùn)算規(guī)則,被除數(shù)和除數(shù)都是整數(shù),商只截取整數(shù)部分,如,345/100的結(jié)果為3,正好是百位數(shù)。求個位數(shù)只要將數(shù)據(jù)除以10并取其余數(shù)即可。如,345%10的結(jié)果為5,即個位數(shù)。2.3.8整型數(shù)據(jù)編程分離十位數(shù)可以采取哪些方法?方法1:將數(shù)據(jù)對100求余,再將余數(shù)除以10,取商的整數(shù)部分;方法2:將數(shù)據(jù)除以10得到的商再對10求余,取其余數(shù);方法3:將數(shù)據(jù)減去百位數(shù)乘100的積,得到的差再除以10,取商的整數(shù)部分。2.3.8整型數(shù)據(jù)編程如:intnum=123,bai,shi,ge;bai=num/100;/*分離出百位數(shù)*/shi=num%100/10;/*分離出十位數(shù)*/ge=num%10;/*分離出個位數(shù)*/2.3.8整型數(shù)據(jù)編程程序代碼voidmain(){intnumber1,bai,shi,ge,number2;printf("Pleaseinputanumber(100~999):");scanf("%d",&number1);bai=number1/100;shi=number1%100/10;ge=number1%10;number2=ge*100+shi*10+bai;printf("number2is%d.",number2);}運(yùn)行程序2.3.8整型數(shù)據(jù)編程【例2.5】輸入兩個整數(shù)a,b,并交換這兩個整數(shù)的值。解題思路:常用方法:一種是中間變量法,另一種是和差法2.3.8整型數(shù)據(jù)編程方法一(中間變量法):定義一個中間變量t,先將a的值保存在t中,再將b的值賦給a,最后將t中保存的a的原值賦給b,即t=a;a=b;b=t;。如,a=3,b=5,執(zhí)行t=a;后,t的值為3,再執(zhí)行a=b;,a的值為5,最后執(zhí)行b=t;,b的值變成3。這樣就實現(xiàn)了a、b兩個值的交換。2.3.8整型數(shù)據(jù)編程方法二(和差法):先將a和b的和賦給a,再將這個和減去b的差賦給b,最后將這個和減去b的差賦給a。即執(zhí)行語句:a=a+b;b=a-b;a=a-b;如,a=3,b=5,執(zhí)行a=a+b;后,a的值為8,再執(zhí)行b=a-b;,b為3,最后執(zhí)行a=a-b;,a的值變?yōu)?減3的差,即5。該方法的缺陷為兩數(shù)的和可能會溢出。2.3.8整型數(shù)據(jù)編程程序代碼voidmain(){inta,b,t;printf("Inputtwonumbersplease:");scanf("a=%d,b=%d",&a,&b);t=a;a=b;b=t;printf("a=%d,b=%d",a,b);}運(yùn)行程序2.3.8整型數(shù)據(jù)編程【例2.6】任意輸入一個五位整數(shù),將其轉(zhuǎn)換成密碼。加密算法為:將每位數(shù)字加上5后再除以10所得的余數(shù)做為新的數(shù)字,再將第2位和第4位進(jìn)行交換,即千位數(shù)和十位數(shù)進(jìn)行交換,最終得到的數(shù)據(jù)即密碼。請同學(xué)們利用課余時間自學(xué)請編程實現(xiàn)以下功能:輸入一個三位數(shù),分離出其每位數(shù)字后,再求這三個數(shù)字的平方和。如123,三位數(shù)字平方和為1+4+9=14。課堂練習(xí)2.4實型數(shù)據(jù)實型數(shù)據(jù)也稱為實數(shù)或浮點數(shù)。實型數(shù)據(jù)包括實型常量和實型變量。2.4.1實型常量實型常量有兩種表示形式:(1)十進(jìn)制小數(shù)形式如:0.123,.123,123.,123.0,1.0都是十進(jìn)制小數(shù),小數(shù)點不可缺少。(2)指數(shù)形式如1.23e3或1.23E3都表示1.23×103注意:指數(shù)形式字母e(或E)前面必須有數(shù)字,且e后面的指數(shù)必須為整數(shù)。一個實數(shù)可以有多種指數(shù)表示形式,但只有一種規(guī)范化指數(shù)形式。規(guī)范化指數(shù)形式的特點:在字母e(或E)之前的小數(shù)部分中,小數(shù)點前面有且只有一位非零數(shù)字。如2.345e2,1.234E5都是規(guī)范化的指數(shù)形式。一個實數(shù)在用指數(shù)形式輸出時,是按規(guī)范化指數(shù)形式輸出的。2.4.1實型常量2.4.2實型變量實型變量分為單精度實型、雙精度實型和長雙精度實型三類。2.4.2實型變量類型長度有效數(shù)字位數(shù)值范圍單精度(float型)32位6~7位10-37~10+38雙精度(double型)64位15~16位10-307~10+308長雙精度型(longdouble型)128位18~19位10-4931~10+4932C語言對實型常量默認(rèn)采用雙精度進(jìn)行存儲和運(yùn)算。2.4.2實型變量實型變量定義:floatf1;doublef2;longdoublef3;2.4.3實型變量賦值

floatx,y;doublez;x=1.5;y=1.23456789123;/*前7位是準(zhǔn)確的*/z=1.234567891234567;/*前16位是準(zhǔn)確的*/2.4.4實型數(shù)據(jù)輸入scanf("格式控制字符串",地址表列);“%f”格式符用于輸入float類型的實數(shù)“%lf”格式符用于輸入double類型的實數(shù)2.4.4實型數(shù)據(jù)輸入實型數(shù)據(jù)輸入注意事項:(1)“%f%f”、“%lf%lf”與“%d%d”類似,兩個實數(shù)之間可以用空格、TAB鍵、回車鍵間隔。(2)格式符之外的普通字符要原樣輸入。2.4.4實型數(shù)據(jù)輸入(3)輸入時可以規(guī)定實數(shù)的寬度,但不能規(guī)定輸入數(shù)據(jù)的精度,即小數(shù)的位數(shù)。如:floatm,n;scanf(“%7f%7f”,&m,&n);合法scanf(“%7.2f”,&m);不合法2.4.4實型數(shù)據(jù)輸入(4)要選擇和變量類型一致的格式符進(jìn)行數(shù)據(jù)輸入,否則將不能得到正確結(jié)果。整型變量用%d格式符,float型變量用%f格式符,double型變量用%lf格式符輸入數(shù)據(jù),不要混用。2.4.4實型數(shù)據(jù)輸入如:floatg;scanf("%lf",&g);輸入123.234后將g輸出得到的結(jié)果是錯誤的。課堂練習(xí)1、下列說法正確的是()。A.輸入項可以是一個實型常量,如scanf("%f",4.8);B.只有格式控制,沒有輸入項也能進(jìn)行正確輸入,如scanf("a=%d,b=%d");C.當(dāng)輸入一個實型數(shù)據(jù)時,格式控制部分應(yīng)規(guī)定小數(shù)點后的位數(shù),如scanf("%5.3f",&f); D.當(dāng)輸入數(shù)據(jù)時,必須指明變量的地址,如 scanf("%f",&f);D課堂練習(xí)2、已有定義:floata1,a2;數(shù)據(jù)的輸入格式為:

4.5233.52根據(jù)定義和數(shù)據(jù)的輸入格式,正確的輸入語句為()A.scanf("%f%f",&a1,&a2); B.scanf("%f,%f",a1,a2);C.scanf("%4.3f,%3.2f",&a1,&a2); D.scanf("%4.3f%3.2f",a1,a2);A2.4.5實型數(shù)據(jù)輸出printf("格式控制字符串",輸出列表);①%f:整數(shù)部分全部輸出,小數(shù)部分輸出6位。②%lf:輸出雙精度實數(shù)。單精度實數(shù)的有效位數(shù)一般為7位,雙精度為16位,用%f或%lf格式輸出時,小數(shù)都占6位。2.4.5實型數(shù)據(jù)輸出③%m.nf:指定輸出的數(shù)據(jù)共占m列,其中有n位小數(shù)。如果數(shù)值長度小于m,則左端補(bǔ)空格(%-m.nf右端補(bǔ)空格)。如果實際長度超過m,則按實際長度輸出。注意:小數(shù)點占一位。2.4.5實型數(shù)據(jù)輸出如:main(){floatf=123.456;printf(“%f,%10f,%10.2f,%.2f,%-10.2f\n”,f,f,f,f,f);}2.4.5實型數(shù)據(jù)的輸出④%e以指數(shù)形式輸出實數(shù)⑤%m.ne和%-m.nen指擬輸出數(shù)據(jù)的小數(shù)位數(shù)。2.4.5實型數(shù)據(jù)輸出如:printf(“%e,%e,%e”,12345.678,0.12345,-123.456);輸出結(jié)果為:1.23457e+04,1.23450e-01,-1.23456e+02課堂練習(xí)1.以下程序運(yùn)行結(jié)果是

。(■表示空格)main(){floata=3.1415926;printf(“%f,%7f,%7.3,%-7.3f\n”,a,a,a,a);}A.3.1415926,3.141593,3.142,3.142 B.3.1415926,3.14159,3.142■■,■■3.142C.3.141593,3.141593,■■3.142,3.142■■ D.3.141593,3.14159,■■3.142,3.142■■C課堂練習(xí)2、以下程序運(yùn)行結(jié)果是

。main(){printf(“x=%.2f\n”,10/3*10.0);}A.33.333333 B.33.33C.x=33.33D.x=30.00D2.4.6實型數(shù)據(jù)編程【例2.7】已知一個三角形的三條邊長分別為a,b,c,利用海倫公式:p=(a+b+c)/2,

s=

求三角形面積。問題分析求平方根函數(shù)為sqrt(),使用格式為:sqrt(表達(dá)式),表達(dá)式可以為變量或常量表達(dá)式.2.4.6實型數(shù)據(jù)編程使用sqrt()函數(shù)時,必須在main函數(shù)之前加“#include<math.h>”。使用求整數(shù)絕對值函數(shù)abs()、求實數(shù)絕對值函數(shù)fabs()、求冪函數(shù)pow()時也要加“#include<math.h>”。2.4.6實型數(shù)據(jù)編程程序代碼#include<math.h>voidmain(){floata,b,c,p,s;printf("\nPleaseinputthreenumbers:\n");scanf("%f,%f,%f",&a,&b,&c);p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));printf("s=%.2f",s);}運(yùn)行程序2.4.6實型數(shù)據(jù)編程【例2.8】輸入一個圓的半徑,求其面積和周長,計算結(jié)果保留2位小數(shù)。問題分析本題要用到常量π,為使用方便,可以定義一個符號常量,讓它的值為π的值,這樣當(dāng)要修改π的精度時,只要修改該符號常量所對應(yīng)的值就可以做到一改全改。2.4.6實型數(shù)據(jù)編程程序代碼#definePI3.14159voidmain(){floatr,s,l;printf("inputr:\n");scanf("r=%f",&r);s=PI*r*r;l=2*PI*r;printf("r=%f,s=%.2f,l=%.2f",r,s,l);}運(yùn)行程序2.4.6實型數(shù)據(jù)編程【例2.9】編寫一個程序,將華氏溫度轉(zhuǎn)換為攝氏溫度,轉(zhuǎn)換公式為:攝氏溫度

=5/9×

(華氏溫度

-32)問題分析本題不難,但容易忽視C語言除法運(yùn)算的特點:當(dāng)除號兩邊都是整數(shù)時,運(yùn)算結(jié)果為整數(shù)。因此在表示公式時,不能直接寫成5/9*(f-32),而應(yīng)該寫成5.0/9*(f-32)或5/9.0*(f-32)。2.4.6實型數(shù)據(jù)編程

程序代碼voidmain(){floatc,f;printf("inputf:\n");scanf("f=%f",&f);c=5.0/9*(f-32);printf("f=%f,c=%.2f",f,c);}運(yùn)行程序2.5字符型數(shù)據(jù)字符型數(shù)據(jù)主要指ASCII碼(美國標(biāo)準(zhǔn)信息交換碼)字符。標(biāo)準(zhǔn)的ASCII碼表有128個字符(詳見附錄),擴(kuò)展的ASCII碼字符集有256個字符。字符型數(shù)據(jù)分為字符常量和字符變量。2.5.1字符常量字符常量分為普通字符和轉(zhuǎn)義字符兩種。(1)普通字符普通字符常量是用單引號括起來的單個字符,如:

'a

',

'$

',

'b

','c'等都是字符常量。字符常量要區(qū)分大小寫字母,如:'a'和'A'是兩個不同的字符常量。2.5.1字符常量(2)轉(zhuǎn)義字符轉(zhuǎn)義字符由一對單引號、反斜杠,再加上被轉(zhuǎn)義的字符或字符序列構(gòu)成。轉(zhuǎn)義字符所代表的含義不是反斜杠后面的字符本身所表示的含義,而是其他特殊含義。如:

'

\n'代表的含義并不是字符'n',而是表示換行操作。2.5.1字符常量常用的轉(zhuǎn)義字符:①'\n

'表示換行②'\r'表示回車,但不換行③'\b'表示退一格④'\\

'表示反斜杠⑤'\

''

表示單引號⑥'

\"'

表示雙引號2.5.1字符常量⑦

'\t'表示跳到下一個制表位。每個制表位包含8列,第一個制表位是1~8列,第二個制表位是9~16列,第三個制表位為17~24列,以此類推。如,printf("abc\tdef");,表示輸出“abc”三個字符之后,光標(biāo)跳到第9列,從第9列起再輸出“def”,輸出結(jié)果為“abc□□□□□def”2.5.1字符常量⑧

'\ddd'表示1到3位八進(jìn)制數(shù)所代表的ASCII碼值所對應(yīng)的字符,d的取值范圍為0~7。如,'

\123'表示的十進(jìn)制ASCII碼值為1×82+2×81+3×80=83,表示的字符是'

S

'。'\7'代表的是ASCII碼值為7的字符,'\67'代表的是ASCII碼值為6×81+7×80=55的阿拉伯?dāng)?shù)字字符'7

'

'\018'、'\79'等都是非法的轉(zhuǎn)義字符。2.5.1字符常量⑨'\xhh'表示1到2位十六進(jìn)制數(shù)所代表的ASCII碼值所對應(yīng)的字符。其中,x是十六進(jìn)制的標(biāo)志,h代表一個十六進(jìn)制數(shù)字。h的取值范圍是0~9、a~f(或A~F),a相當(dāng)于十進(jìn)制數(shù)10,b相當(dāng)于11,以此類推,f相當(dāng)于15。如,'\xa2'表示的是ASCII碼值為 10×161+2×160=162的字符。2.5.1字符常量⑩'\0'表示的是ASCII碼值為0的字符,它是一個空字符,不代表任何含義,在屏幕上也無法輸出。注意區(qū)分'\0'與'0':

'0'是一個普通的阿拉伯?dāng)?shù)字字符,它的ASCII碼為48,可以在屏幕上輸出一個“0”字符。課堂練習(xí)以下程序輸出結(jié)果為

。

main(){clrscr();printf("■■ab■c\tde\rf\n");printf("hijk\tL\bM\n");}運(yùn)行結(jié)果:f■ab■c■■dehijk■■■■M2.5.2字符串常量字符串常量是指用一對雙引號括起來的多個字符序列,如:"LiMing"、"Hello"。字符串常量在機(jī)器內(nèi)存儲時,系統(tǒng)會自動在其末尾加一個字符串結(jié)束標(biāo)志

'\0',即空字符。字符串結(jié)束標(biāo)志不會在屏幕上輸出,但在內(nèi)存中要占用一個字節(jié)的存儲空間。2.5.2字符串常量字符串的長度是指該字符串中第一個空字符之前所有字符的個數(shù),又稱作有效字符個數(shù),不包括雙引號。2.5.2字符串常量如:字符串“HelloWorld”的長度為11但在內(nèi)存中要占用12個字節(jié)的存儲空間,因為空字符也要占一個字節(jié)。2.5.2字符串常量字符串常量和字符常量的區(qū)別:(1)字符常量由單引號括起來,字符串常量由雙引號括起來。

如:'a'是字符常量,而"a"是字符串常量。(2)字符常量只能包含一個字符,而字符串常量可以包含多個字符。2.5.2字符串常量(3)字符常量只占一個字節(jié)的內(nèi)存空間,而字符串常量占用的字節(jié)數(shù)等于其長度再加上1,因為字符串結(jié)束標(biāo)記空字符('\0')也要占用一個字節(jié)的存儲空間。如:字符常量'a'在內(nèi)存中占一個字節(jié),而字符串常量"a"在內(nèi)存中占兩個字節(jié)。2.5.2字符串常量求字符串長度注意事項:(1)求字符串長度要注意的是遇到第一個空字符時,字符串就已經(jīng)結(jié)束,其后面的字符不能記入長度如:字符串"abcd\0edfgdg"的長度為4,因為第一個空字符'\0'前面只有4個字符。2.5.2字符串常量(2)當(dāng)字符串常量中包含轉(zhuǎn)義字符'\ddd'時,求字符串的長度時要特別注意d必須是介于0~7之間的數(shù)字,因為'\ddd'表示的是由1到3個0~7之間的數(shù)字所構(gòu)成的八進(jìn)制數(shù)。2.5.2字符串常量如:字符串"abcdef\1ghijkl"、"abcdef\12ghijkl"、"abcdef\127ghijkl"的長度均為13,其中,'\1'、

'\12'、'\127'都算1個字符。但是字符串"abcdef\18ghijkl"的長度為14,因為8>7,所以18不能構(gòu)成一個八進(jìn)制數(shù),所以只能將'\1'和'8'當(dāng)作兩個字符看待。2.5.2字符串常量字符串常量的輸出方法:(1)printf(字符串常量);

如:printf("helloworld!");(2)puts(字符串常量);

如:puts("helloworld!");2.5.2字符串常量(3)printf("%s",字符串常量);“%s”是輸出字符串的格式符。

如:printf("%s","helloworld!");2.5.2字符串常量(4)printf("%ms",字符串常量);按指定長度m輸出字符串,如果字符串長度大于m,則將字符串全部輸出,若小于m,則左補(bǔ)空格(%-ms右補(bǔ)空格)。2.5.2字符串常量(5)printf("%m.ns",字符串常量);"%m.ns"表示截取字符串左邊n個字符,并按照m列的寬度顯示出來。如果n<m,則在字符串左邊補(bǔ)空格,反之則按實際長度輸出。如:printf("%10.5s","helloworld!");輸出:□□□□□hello2.5.2字符串常量(6)printf("%-m.ns",字符串常量);功能與"%m.ns"類似,不同的是當(dāng)n<m時,在字符串右邊補(bǔ)空格2.5.3字符變量定義字符變量在內(nèi)存中占一個字節(jié)的存儲空間,其中存放的是字符所對應(yīng)的ASCII碼,是一個整數(shù)。字符變量分為有符號和無符號兩種。2.5.3字符變量定義有符號的字符變量定義格式為:[signed]char變量名;signed可以省略。如:chara;charb,c;2.5.3字符變量定義無符號的字符變量定義格式為:unsignedchar變量名;如:unsignedchard;2.5.4字符變量賦值字符變量可以用普通字符、轉(zhuǎn)義字符或ASCII碼值(即整數(shù))給其賦值。如:charc1;對于c1可以有以下幾種賦值形式:c1='a';c1='\123';c1=56;2.5.4字符變量賦值字符變量和整型變量可以通用。字符變量可以用整型數(shù)據(jù)對其賦值,也可以用整數(shù)形式將其輸出。整型變量也可以用字符型數(shù)據(jù)對其賦值,也可以用字符形式輸出。2.5.5字符數(shù)據(jù)輸入

為字符變量輸入數(shù)據(jù)主要有兩種方式:

scanf函數(shù)和getchar函數(shù)。2.5.5字符數(shù)據(jù)輸入1.scanf函數(shù)scanf函數(shù)輸入字符數(shù)據(jù)的格式符為“%c”。如:chara;scanf("%c",&a);2.5.5字符數(shù)據(jù)輸入scanf函數(shù)也可以按指定寬度來接收字符。如:chara,b;scanf("%3c%3c",&a,&b);如果從鍵盤上輸入“abcdef”,則變量a中存放的字符是'a',變量b中存放的字符則是'd'。2.5.5字符數(shù)據(jù)輸入輸入字符注意事項:輸入字符時空格、回車和TAB鍵都會被當(dāng)作有效字符予以接收。2.5.5字符數(shù)據(jù)輸入如:chara,b,c;scanf("%c%c%c",&a,&b,&c);如果輸入的數(shù)據(jù)是“A□B□C”(□表示空格),則變量a中存放的是'A',而變量b中存放的字符則是空格,變量c中存放的則是'B'。2.5.5字符數(shù)據(jù)輸入2.getchar函數(shù)getchar函數(shù)用于從鍵盤輸入一個字符。getchar()是一個無參數(shù)的函數(shù),使用時括號里面必須是空的。如:

charc;c=getchar();2.5.6字符數(shù)據(jù)輸出字符數(shù)據(jù)輸出也有兩種方法:

printf函數(shù)和putchar函數(shù)。2.5.6字符數(shù)據(jù)輸出1.printf函數(shù)printf函數(shù)輸出字符的格式符為“%c”如:chara='b';printf("a=%c",a);

輸出結(jié)果為:a=bprintf("%c",'A');

輸出結(jié)果為:Aprintf("%c",97);

輸出結(jié)果為:a

2.5.6字符數(shù)據(jù)輸出字符型數(shù)據(jù)也可以用整數(shù)形式輸出。如:printf("%d",'A');表示輸出大寫字母'A'的ASCII碼值652.5.6字符數(shù)據(jù)輸出2.putchar函數(shù)putchar函數(shù)的功能是向屏幕或其他輸出設(shè)備輸出一個字符。使用的格式為:putchar(變量名、常量或表達(dá)式);2.5.6字符數(shù)據(jù)輸出如:charc='E';putchar(c);/*輸出變量c中存放的字符'E'*/putchar('a');/*輸出小寫字母'a'*/putchar(65);/*輸出ASCII碼值為65的字符'A'*/putchar(97);/*輸出ASCII碼值為97的字符'a'*/2.5.6字符數(shù)據(jù)輸出使用getchar和putchar函數(shù)注意事項:(1)在使用getchar()和putchar()函數(shù)時,要在main函數(shù)之前加“#include<stdio.h>”(2)getchar和putchar函數(shù)一次只能輸入或輸出一個字符,并且不能控制輸出的格式。課堂練習(xí)1、已知字母A的ASCII碼為65。以下程序運(yùn)行后的輸出結(jié)果是()main(){chara,b;a='A'+'5'-'3';b=a+'6'-'2';printf("%d%c\n",a,b);}A.66D B.CF C.67GD.C101C課堂練習(xí)2、以下程序的輸出結(jié)果是()main(){charc1='6',c2='0';printf("%c,%c,%d,%d\n",c1,c2,c1-c2,c1+c2);}A.因輸出格式不合法,輸出出錯信息 B.6,0,6,102 C.6,0,7,6 D.6,0,5,7B課堂練習(xí)3、字符串常量“abc123\01de\n”的長度是()

A.10 B.4 C.6 D.114、ch為字符型變量,以下賦值語句錯誤的是()

A.ch='\';B.ch=62+3;C.ch='a';D.ch='\xaa';AA課堂練習(xí)5、定義c為字符型變量,則下列語句中正確的是()

A)c='97';B)c="97";C)c=97;D)c="a";

6、以下程序運(yùn)行后的輸出結(jié)果是()

main()

{charm;

m='B'+32;printf("%c\n",m);

}Cb2.5.7字符數(shù)據(jù)編程【例2.10】任意輸入一個大寫的英文字母,將其轉(zhuǎn)換成小寫字母并輸出。問題分析:一對大小寫字母的ASCII碼值相差32,小寫字母比大寫字母大32。因此,要將大寫字母轉(zhuǎn)換成小寫字母,只要將其ASCII碼值加上32即可。2.5.7字符數(shù)據(jù)編程程序代碼#include<stdio.h>voidmain(){charc;c=getchar();c+=32;putchar(c);}運(yùn)行程序該程序可以簡化成一句話:#include<stdio.h>voidmain(){putchar(getchar()+32);}2.6各種數(shù)據(jù)類型混合運(yùn)算整型、實型、字符型數(shù)據(jù)間可以進(jìn)行混合運(yùn)算。例如,7+1.5*'A'-28。在進(jìn)行運(yùn)算時,不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同—類型,然后進(jìn)行運(yùn)算。轉(zhuǎn)換的方法有兩種:一種是自動轉(zhuǎn)換,另一種是強(qiáng)制轉(zhuǎn)換。2.6.1自動類型轉(zhuǎn)換在C語言中,有兩種情況下會發(fā)生自動類型轉(zhuǎn)換,一種是不同數(shù)據(jù)類型之間的混合運(yùn)算,另一種是賦值運(yùn)算符兩邊的數(shù)據(jù)類型不同時。不同數(shù)據(jù)類型進(jìn)行混合運(yùn)算時,由編譯系統(tǒng)自動完成類型轉(zhuǎn)換。2.6.1自動類型轉(zhuǎn)換橫向箭頭表示必須進(jìn)行的轉(zhuǎn)換。即char和short必須轉(zhuǎn)換成int,float必須轉(zhuǎn)換成double,然后才能參與運(yùn)算。自動類型轉(zhuǎn)換規(guī)則縱向箭頭表示數(shù)據(jù)類型的轉(zhuǎn)換方向,但不是轉(zhuǎn)換步驟。如,int類型和long型數(shù)據(jù)作運(yùn)算,則將int類型的數(shù)據(jù)轉(zhuǎn)換成long型后再作計算。2.6.1自動類型轉(zhuǎn)換如:charch;inti;floatx;doublez;表達(dá)式ch*i+(i

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論