數(shù)據(jù)類型及其輸入輸出.ppt
《數(shù)據(jù)類型及其輸入輸出.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)類型及其輸入輸出.ppt(53頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第二章數(shù)據(jù)類型及輸入輸出,內(nèi)蒙古科技大學(xué)實(shí)訓(xùn)中心,本節(jié)重點(diǎn),數(shù)據(jù)類型常量與變量不同類型的數(shù)據(jù)的輸入輸出,引入——數(shù)據(jù)類型,1、數(shù)據(jù)是程序處理的基本對(duì)象。2、程序中數(shù)據(jù)分為變量或常量。3、每個(gè)變量或常量都有確定的數(shù)據(jù)類型。4、每種數(shù)據(jù)類型都有確定的存儲(chǔ)長度、取值范圍及允許的操作。5、程序中所有數(shù)據(jù)必須指定其數(shù)據(jù)類型。,常量,在程序中,常量是指常數(shù)或其值不能被改變的量。1、直接常量:如:12,123.5,1.23E7,‘a(chǎn)’,’A’,’8’,“hello”,“a”2、符號(hào)常量,即用一個(gè)標(biāo)識(shí)符代表一個(gè)常量。一般用大寫字母表示。符號(hào)常量在其作用域內(nèi)不能改變,也不能再被賦值。定義符號(hào)常量的方法如:#definePI3.14159,#definePI3.1415926voidmain(){floatr,c,s;r=2;c=2*PI*r;s=PI*r*r;printf(“c=%f,s=%f”,c,s);},常量的類型,1、整型常量有三種表示方法:十進(jìn)制整數(shù)123,-784八進(jìn)制整數(shù)0123=十六進(jìn)制整數(shù)八進(jìn)制和十六進(jìn)制只能表示無符號(hào)整數(shù)長整數(shù)表示為:123l123L無符號(hào)整數(shù)表示為:123u,常量分為:整型常量、實(shí)型常量、字符常量、字符串常量,2、實(shí)型常量,也稱浮點(diǎn)數(shù)。兩種表示方法:(1)十進(jìn)制小數(shù)形式由數(shù)字和小數(shù)點(diǎn)組成(必須有小數(shù)點(diǎn))1.123,3.1415;(2)指數(shù)形式123e5,123E5都表示但是1.23E7為規(guī)范化的指數(shù)形式。輸出指數(shù)形式的數(shù)據(jù)時(shí),按規(guī)范化的指數(shù)形式輸出。(即小數(shù)點(diǎn)左邊應(yīng)有一位非零數(shù)字),3、字符常量(Characterconstants)由一對(duì)單引號(hào)括起的單個(gè)字符,稱為字符常量。如:‘a(chǎn)’,‘9’,‘+’,\b退格\’單引號(hào)\n換行\(zhòng)ddd1-3位八進(jìn)制數(shù)\t制表符\xhh1-2位十六進(jìn)制數(shù)\\反斜杠字符\a響鈴\”雙引號(hào)\r回本行開頭,,轉(zhuǎn)義字符(EscapeSequences)表示控制字符或具有特定用途的字符。,在內(nèi)存中,字符數(shù)據(jù)并不是把字符本身放到內(nèi)存單元中,而是將該字符的相應(yīng)ASCII碼(二進(jìn)制的形式)放到存儲(chǔ)單元中。,如:有兩個(gè)字符型數(shù)據(jù)‘A’和‘a(chǎn)’,4、字符串常量(StringLiterals)由一對(duì)雙引號(hào)括起的字符序列稱為字符串常量,例如:“Howdoyoudo?”“china”C規(guī)定以字符‘\0’作為字符串結(jié)束的標(biāo)志。在內(nèi)存中所占字節(jié)數(shù)為實(shí)際字符個(gè)數(shù)+1如字符串常量“china”在內(nèi)存中存儲(chǔ)形式如下:,變量,1、定義:其值可以改變的量稱為變量。程序中的變量必須先定義后使用。2、變量的定義、賦值(初始化);intsum;chara,b;floatr,s,l;doublex,y;定義了變量后,變量并沒有值,需要給其賦值。也可以在定義變量的同時(shí)給出初值,對(duì)變量進(jìn)行初始化。例如:①inti;i=9;/*先定義整型變量i,然后賦初值9*/,②floatr=1.5;/*定義實(shí)型變量r的同時(shí),賦其初值1.5*/③charanswer=‘y’;/*同上*/④也可以使被定義的變量的一部分賦初值。如inta,b,c=5;表示定義a,b,c為整型變量,并且對(duì)c進(jìn)行初始化,使c值為5。注意:如對(duì)幾個(gè)變量同時(shí)賦初值為5,應(yīng)寫成inta=5,b=5,c=5;或者inta,b,c;a=b=c=5;,,,而不能寫成inta=b=c=5;,3、對(duì)變量名的要求。變量名要做到“見名知意”,不要使用簡單的字符作變量名,以增加程序的可讀性。變量名一般用小寫字母表示,長度與所用系統(tǒng)有關(guān)(c,合法標(biāo)識(shí)符,非法標(biāo)識(shí)符,變量的類型,變量分為:整型變量、實(shí)型變量、字符型變量1、整型變量⑴存放形式整形變量在內(nèi)存中以二進(jìn)制的形式存放的,一個(gè)整形變量在內(nèi)存中占2個(gè)字節(jié)。,10,變量i(inti=10;),,變量在內(nèi)存中的實(shí)際存放情況,機(jī)器內(nèi)部,數(shù)值是以補(bǔ)碼表示的。正數(shù):其補(bǔ)碼和原碼相同。負(fù)數(shù):其補(bǔ)碼為:該數(shù)的絕對(duì)值的二進(jìn)制數(shù)按位取反加1。,-35,取反,加1,最高位,最高位是符號(hào)位,其為0時(shí)是正數(shù),為1時(shí)是負(fù)數(shù)。,,⑵分類根據(jù)數(shù)值的范圍可以把變量定義成基本類型、短整型和長整型。①基本類型:用int標(biāo)識(shí)②短整型:用shortint標(biāo)識(shí)(short)③長整型:用標(biāo)識(shí)(long)進(jìn)一步修飾,修飾符(無符號(hào)數(shù))signed(有符號(hào)數(shù))如果既不指定unsigned也不指定signed則隱含為有符號(hào)數(shù)(signed),signed可以不寫。,例:unsignedlonginta,b;,ANSI標(biāo)準(zhǔn)定義的整數(shù)類型,2、實(shí)型變量類型(內(nèi)存中字節(jié)數(shù))有效數(shù)字float(4字節(jié))6~7位double(8字節(jié))15~16位longdouble(16字節(jié))18~19位定義方法:(單精度)float變量名(雙精度)double變量名,,,,,3、字符型變量①定義方法:char變量名列表charc1,c2,c3;②取值范圍--ASCII碼字符集中的字符。charc1,c2;c1=‘e’;c2=‘3’注意:字符串常量不能被賦值到字符變量中,因?yàn)樽址兞恐荒苋菁{一個(gè)字符。,區(qū)別:‘a(chǎn)’“a”,數(shù)據(jù)的輸入和輸出,C語言中,在stdio.h頭文件中定義了標(biāo)準(zhǔn)輸入輸出函數(shù)。1、printf()函數(shù)格式:printf(“格式控制字符串”,輸出項(xiàng)列表);功能:將輸出項(xiàng)按給定的控制格式輸出。例如:printf(“%f”,sum);2、scanf()函數(shù)格式:scanf(“格式控制字符串”,輸入項(xiàng)列表);功能:將輸入項(xiàng)按給定的控制格式輸入。例如:scanf(“%d%d”,,#includevoidmain(){charch=’a’;inta=65;floatx=123.456;printf(”%c,%d,%3c\n”,ch,ch,ch);printf(”%c%d%3d\n”,a,a,a);printf(”%f,%-7.2f,%10.4f\n”,x,x,x);},輸出結(jié)果是:a,97,__aA65_65123.456001,123.46_,__123.4560,例1:,#includevoidmain(){inta,b;charch1,ch2;floatf,r;scanf(“%d%d”,},輸入時(shí):125785ab23.456,612.97,例2:,本節(jié)重點(diǎn),掌握運(yùn)算符的使用確定表達(dá)式的類型、值不同類型的數(shù)據(jù)的轉(zhuǎn)換,運(yùn)算符,一、運(yùn)算符:能夠完成某種操作(運(yùn)算)的符號(hào)。二、根據(jù)運(yùn)算符的運(yùn)算對(duì)象(操作數(shù))的多少,運(yùn)算符可分為:①單目(一元)運(yùn)算符i++--n②雙目(二元)運(yùn)算符a+bd/e③三目(三元)運(yùn)算符x>y?x+3:y*9(條件運(yùn)算符),表達(dá)式,一、C表達(dá)式:由C運(yùn)算符和運(yùn)算對(duì)象構(gòu)成的式子。運(yùn)算對(duì)象可以是常量、變量、函數(shù)或表達(dá)式。二、表達(dá)式的書寫原則(1)C語言的表達(dá)式只能采用線性的形式書寫。例如:①應(yīng)寫成1/3+i+j*j*j。②應(yīng)寫成(a+b)/(c+d)*e+f。,(2)C語言的表達(dá)式只能使用C語言中合法的運(yùn)算符和操作數(shù),對(duì)有些操作必須調(diào)用庫函數(shù)完成,而且運(yùn)算符不能省略。例如:①πr2應(yīng)寫成3.14159*r*r。②應(yīng)寫成0.5*a*b*sin(alph)。③|x-y|應(yīng)寫成fabs(x-y)。④y+2X應(yīng)寫成y+pow(2,x)。,#include,三、表達(dá)式在求值時(shí),遵循以下規(guī)則(1)優(yōu)先級(jí):不同優(yōu)先級(jí)的運(yùn)算符出現(xiàn)在同一表達(dá)式時(shí),按運(yùn)算符的優(yōu)先級(jí)的高低次序執(zhí)行。例如:d=a+b*c;/*先乘后加*/(2)結(jié)合性:是指表達(dá)式中出現(xiàn)同優(yōu)先級(jí)的操作符時(shí),該先做哪個(gè)操作符的規(guī)定。結(jié)合方向:“自左向右”、“自右向左”例如:a+b-c從左至右d=a=b=3從右至左,四、表達(dá)式的分類C語言表達(dá)式種類很多,有多種分類方法。我們一般依據(jù)運(yùn)算的特征將表達(dá)式分為:①算術(shù)表達(dá)式,如a+b*2.0-3.0/5.0。②關(guān)系表達(dá)式,如x>=y,關(guān)系表達(dá)式可以認(rèn)為是邏輯表達(dá)式的特殊情況。③邏輯表達(dá)式,如(x>=2)j的值為3(首先將i的原值賦給j,然后i自身再加1)j=++i;j的值為4(i自身先加1,然后再將加1后的值賦給j),#includevoidmain(){inti,j,k;i=3;j=i++;k=++i;printf(“i=%d,j=%d,k=%d\n”,i,j,k);},范例:,輸出結(jié)果:i=5,j=3,k=5,2、在表達(dá)式中如果有2個(gè)以上的“+”或“-”連寫在一起,則編譯器首先識(shí)別前面兩個(gè)+或-為自增或自減操作符。例如:,在使用自增或自減運(yùn)算符時(shí)注意如下幾個(gè)問題:,1、自加或自減運(yùn)算只能用于變量,不能用于常量或表達(dá)式;錯(cuò)誤:25++(i+j)++例如-i++,只能理解為-(i++)。因?yàn)?-i)++為表達(dá)式,表達(dá)式是不能自加自減的。,i=3;j=-i++;printf(“%d”,j);,輸出結(jié)果應(yīng)為-3,而不是是-4。,inta=1,b=5,c;c=a+b;c=a+++b;c=a++b;,正確:c=6,錯(cuò)誤:++不是雙目運(yùn)算符,正確:a+++b,3、表達(dá)式中包含有自增、自減運(yùn)算時(shí),容易出錯(cuò),務(wù)請(qǐng)小心。如有:i=1;則:,類似上面分析,應(yīng)為3,當(dāng)然表達(dá)式計(jì)算完成后i的值同樣改變?yōu)?。,(++i)+(++i)+(++i)的值為多少呢?是9(=2+3+4)嗎?不對(duì)!,計(jì)算時(shí)先對(duì)整個(gè)表達(dá)式掃描,i先自增3次,由1→2→3→4,如此計(jì)算結(jié)果為4+4+4,等于12。,(i++)+(i++)+(i++)的值又是多少呢?,賦值運(yùn)算符和賦值表達(dá)式,1、賦值運(yùn)算符:=使用方法:變量=表達(dá)式賦值運(yùn)算時(shí)先計(jì)算右邊表達(dá)式的值,然后將右邊表達(dá)式的值賦給左邊變量,并以此值作為整個(gè)賦值表達(dá)式的值。(1)賦值運(yùn)算的優(yōu)先級(jí)為第14級(jí),次低。如:inti,a,b,c,p;i=3+5%2;/*先計(jì)算3+5%2,得到4,然后將4賦給i*/。p=(a+b)/c;p=a+b/c;,(2)理解以下兩賦值表達(dá)式的含義:y=5;n=5;x=y(tǒng);n=n+1;(3)賦值運(yùn)算符具有“自右向左”的結(jié)合性,賦值運(yùn)算符右邊的表達(dá)式也可以是賦值表達(dá)式:例如:a=b=5;等同于a=(b=5);,,,2、復(fù)合賦值運(yùn)算算術(shù)復(fù)合賦值運(yùn)算符:+=、-=、*=、/=、%=位復(fù)合賦值運(yùn)算符:scanf(″%d″,},例:判斷整數(shù)的正負(fù)。,逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式,一、逗號(hào)運(yùn)算是雙目運(yùn)算,一般形式如下:表達(dá)式1,表達(dá)式2先計(jì)算表達(dá)式1,再計(jì)算表達(dá)式2,并以此作為整個(gè)表達(dá)式的值。如:a=2,a*6,先計(jì)算a=2,再計(jì)算a*6,并以此作為整個(gè)表達(dá)式的值,表達(dá)式的值為12。,二、逗號(hào)運(yùn)算的優(yōu)先級(jí)最低,結(jié)合自左向右。逗號(hào)表達(dá)式的更一般使用形式為:表達(dá)式1,表達(dá)式2,表達(dá)式3,……,表達(dá)式n先計(jì)算表達(dá)式1,再計(jì)算表達(dá)式2,再計(jì)算表達(dá)式3,…,再計(jì)算表達(dá)式n的值,并以此作為整個(gè)表達(dá)式的值。如:表達(dá)式x=a=3,6*x,6*a,a+x的值為。逗號(hào)運(yùn)算又稱順序求值運(yùn)算。,6,#includevoidmain(){inti,j,k;i=1,j=2,k=3;printf(“%d%d%d\n”,i,j,k);},#includevoidmain(){inti,j,k;i=1;j=2;k=3;printf(“%d%d%d\n”,i,j,k);},并不是任何地方出現(xiàn)的逗號(hào)都是逗號(hào)運(yùn)算符,例如:printf(“%d%d%d\n”,i,j,k);(是參數(shù)分隔符),如果寫成:printf(“%d%d%d\n”,(i,j,k),j,k);相當(dāng)于:printf(“%d%d%d\n”,k,j,k);,求字節(jié)數(shù)運(yùn)算,運(yùn)算符:sizeof(數(shù)據(jù)類型標(biāo)識(shí)符)或sizeof(表達(dá)式)求字節(jié)數(shù)運(yùn)算是單目運(yùn)算,操作數(shù)可以是類型名,也可以是變量、表達(dá)式,用以求得相應(yīng)類型或數(shù)據(jù)所占的字節(jié)數(shù)。此運(yùn)算的優(yōu)先級(jí)與取地址運(yùn)算優(yōu)先級(jí)相同。例如:sizeof(float)值為4,單精度類型占4個(gè)字節(jié)sizeof(2*3)值為2,算術(shù)表達(dá)式2*3是int型,數(shù)據(jù)的類型轉(zhuǎn)換,一、系統(tǒng)自動(dòng)進(jìn)行的類型轉(zhuǎn)化由系統(tǒng)自動(dòng)完成類型轉(zhuǎn)換,轉(zhuǎn)換的規(guī)則如下:intunsignedlongdouble↑↑short,charfloat縱向箭頭方向表示必定要進(jìn)行的轉(zhuǎn)換,short型、char型數(shù)據(jù)必定先轉(zhuǎn)換成int型,float型數(shù)據(jù)必定先轉(zhuǎn)換成double型,再進(jìn)行運(yùn)算。橫向箭頭方向表示類型自動(dòng)轉(zhuǎn)換的方向。由低向高轉(zhuǎn)換,int型最低,double型最高。,,,,二、賦值時(shí)的類型轉(zhuǎn)換(1)將實(shí)型數(shù)據(jù)賦給整型變量時(shí),舍棄實(shí)數(shù)的小數(shù)部分。如:inti;i=1.23;/*結(jié)果i的值為1*/(2)將整型數(shù)據(jù)賦給單、雙精度型變量時(shí),數(shù)值大小不變,但以浮點(diǎn)形式存儲(chǔ)到變量中。(3)將字符型數(shù)據(jù)賦給整型變量時(shí),由于字符數(shù)據(jù)只占一個(gè)字節(jié),而整型變量為兩個(gè)字節(jié),將字符的數(shù)據(jù)放整型變量的低8位,而對(duì)整型變量的高8位進(jìn)行擴(kuò)充。,(4)將基本整型數(shù)據(jù)賦給長整型變量時(shí),基本整型數(shù)據(jù)放長整型變量低16位,高16位用符號(hào)位擴(kuò)充。反之將長整型數(shù)據(jù)賦給整型變量時(shí),只需將長整型數(shù)據(jù)的低16位原封不動(dòng)送整型變量中。(5)將無符號(hào)整型數(shù)據(jù)賦給長整型變量時(shí),不存在符號(hào)擴(kuò)展的問題,只需將高位補(bǔ)0即可。將無符號(hào)整型數(shù)據(jù)賦給一個(gè)占字節(jié)數(shù)相同的整型變量時(shí),將無符號(hào)整型數(shù)據(jù)原樣送整型變量中,并將最高位當(dāng)作符號(hào)位,如果數(shù)據(jù)超出相應(yīng)的整型范圍,將產(chǎn)生數(shù)據(jù)錯(cuò)誤。如果將整型數(shù)據(jù)賦給占字節(jié)數(shù)相同的無符號(hào)整型變量,也是原樣照賦,最高位作數(shù)值處理。,三、強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換通過類型轉(zhuǎn)換運(yùn)算進(jìn)行。格式:(類型名)(表達(dá)式)功能:將表達(dá)式的類型強(qiáng)制轉(zhuǎn)換成類型名指定的類型。如:floatx=5.2,y=6.3;intz;z=(int)(x+y);(int)(x+y)將表達(dá)式x+y的值強(qiáng)制轉(zhuǎn)換成整型強(qiáng)制類型轉(zhuǎn)換在將高類型轉(zhuǎn)換為低類型時(shí),數(shù)據(jù)精度受損,是一種不安全的轉(zhuǎn)換。強(qiáng)制類型轉(zhuǎn)換是暫時(shí)性的,一次性的,并不永久改變所轉(zhuǎn)換表達(dá)式的類型。如:inta=7;doubleb;b=(double)a+5;(double)a為雙精度,a依然為整型量。,作業(yè),課本40頁習(xí)題補(bǔ)充:課本21頁轉(zhuǎn)義字符的使用及其含義。,謝謝大家!,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 數(shù)據(jù)類型 及其 輸入輸出
鏈接地址:http://www.820124.com/p-3269522.html