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