《C語言程序設計》第2章數(shù)據(jù)類型、運算符與表達式.ppt
《《C語言程序設計》第2章數(shù)據(jù)類型、運算符與表達式.ppt》由會員分享,可在線閱讀,更多相關《《C語言程序設計》第2章數(shù)據(jù)類型、運算符與表達式.ppt(38頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第2章數(shù)據(jù)類型、運算符與表達式,本章要求:,掌握各種常用數(shù)據(jù)類型的數(shù)據(jù)在內存中的存放形式掌握常量的分類,變量的定義和變量名的命名規(guī)則理解指針的含義,掌握指針變量的定義及簡單應用掌握算術運算符、賦值運算符、逗號運算符及其表達式掌握各種位運算的運算規(guī)則及簡單應用掌握一些常用內部函數(shù)的使用,本章難點:不同數(shù)據(jù)類型的數(shù)據(jù)在內存中的存放形式,運算符的優(yōu)先級與結合性。,本章重點:變量與常量的概念、各種運算符與表達式,2.1C的數(shù)據(jù)類型,C語言中,數(shù)據(jù)類型可分為:基本數(shù)據(jù)類型(整型、實型、字符、枚舉類型等)構造數(shù)據(jù)類型(數(shù)組、結構體、共用體類型等)指針類型空類型注意:在程序中用到的常量與變量必須是上面的一種數(shù)據(jù)類型;正確地區(qū)分和使用不同的數(shù)據(jù)類型,可使程序運行時占用較少的內存,確保程序運行的正確性和可靠性。,2.1.2基本數(shù)據(jù)類型,基本數(shù)據(jù)類型是構成C語言的數(shù)據(jù)類型的最基本要素,包括:整型(int)實型(float和double)字符型(char)例如:int類型數(shù)據(jù)在內存中占兩個字節(jié),數(shù)據(jù)的取值范圍是-32768至32767,2.2各類數(shù)據(jù)在內存中的存放方式,計算機中只有二進制數(shù)值,如:正整數(shù):,變量:在程序運行中其存儲的值可以改變。常量:在程序運行中其值不可以改變。,,2.字符的存儲形式——ASCII碼,2.3常量,2.3.1數(shù)值常量1.整型常量在C語言中,使用的整常數(shù)有八進制、十六進制和十進制三種。(1)十進制整常數(shù):237-56801627(2)八進制整常數(shù):(前導為0)015(十進制為13)0101(十進制為65)(3)十六進制整常數(shù):(前導為0 x或0X)0X2A(十進制為42)0XA0(十進制為160),注意:若要表示長整型(long)整數(shù),在數(shù)的最后加表示長整型的后綴修飾符號字母“l(fā)”。,2.實型常量,實型也稱為浮點型。C語言中,實數(shù)只采用十進制。它有二種形式:小數(shù)形式:0.123.123123.0-123.指數(shù)形式:十進制數(shù)加e或E加價碼3.5E+8(等于3.5108)1.5E-8(等于1.510-8),正號可以省略,規(guī)范化的指數(shù)形式其值同0.15E-7,2.3.2字符常量,字符常量是用單引號括起來的一個字符:a,b,=,+,?注意:單個字符可以是字符集中任意字符。但不能是單引號()和反斜杠(\)5和5是不同的。字符按ASCII碼來存儲:字符0ASCII碼為48,字符AASCII碼為65,字符aASCII碼為97,2.3.3字符串常量,字符串常量是一對雙引號括起來的字符序列:"ABC","A","123lkdf"注意:每個字符串最后有一結束標志\0。,因此在程序中,長度為n個字符的字符串常量,在內存中占有n+1個字節(jié)的存儲空間。,2.3.4轉義字符,轉義字符以反斜線(\)開頭,后跟一個或幾個字符。\n(換行)\0(空字符NULL)\(單引號)\"(雙引號),a,b,c,d,e,fghi,a=65b=Ac=A,main(){printf(“abc\tde\bfghi\n”);printf(“a=65b=\101c=\x41\n”);},輸出結果:,2.3.5符號常量,可以使用一個符號表示一個多次常用的常量使用命令#define來定義,格式:#define符號常量名標識符常數(shù)表達式,#definePI3.14159/*定義PI為符號常量,值為3.14159*/#definePI22*PI,結尾沒有分號,說明:(1)符號常量名常常用大寫字母、變量名用小寫字母。(2)符號常量不能在其作用域范圍內重新賦值。,2.4變量,變量包括:一個名字和相應的數(shù)據(jù)類型通過名字來引用一個變量,數(shù)據(jù)類型則決定了該變量的存儲方式和在內存中占據(jù)存儲單元的大小定義:intx=20;,2.4.1變量的定義,C語言中使用的變量都要作類型強制定義,即要求“先定義,后使用”的原則。其目的:1)保證程序中變量名使用的正確性2)編譯程序為其分配相應的儲存單元3)保證運算的合法性定義形式:類型說明符變量名列表;charch/*定義ch為字符型變量*/inti,j;/*定義i,j為基本整型變量*/floatx,y,z;/*定義x,y,z單精度實型變量*/,2.4.2變量的賦初值,C語言中,當定義一個變量后,系統(tǒng)只是按定義的數(shù)據(jù)類型分配其相應的存儲單元,并不對其單元初始化,其中是一個不定值。voidmain(){intk;printf(“k=%d\n”,k);}程序運行,輸出k的值就是無意義的不定值,在不同系統(tǒng)環(huán)境下運行的結果也可能不同。,,賦初值的一般形式為:類型說明符變量1=值1,變量2=值2,…;類型說明符變量1,變量2,變量3;變量1=值1;變量2=值2;……,在說明中不允許連續(xù)賦值:,inta=b=c=5;,2.5運算符與表達式,2.4.1C語言中的運算符,算術運算符,關系運算符,邏輯運算符,位運算符,賦值運算符,條件運算符,逗號運算符,指針運算符,字節(jié)數(shù)運算符,特殊運算符,,運算符分類,2.5.2優(yōu)先級與結合性,注意的幾個問題:運算符的功能;與運算量的關系求運算量的個數(shù)求運算量的類型運算符的優(yōu)先級別運算符的結合性(也稱結合方向)運算結果的類型,單目(如取負)雙目(加減乘除)三目(如條件運算符),如求余的運算只能用于整型數(shù)據(jù),,原則:在表達式中,優(yōu)先級別較高的先于優(yōu)先級別較低的進行運算。運算符優(yōu)先級相同時,根據(jù)運算符的結合性所規(guī)定的方向處理。,a+b*c,*的優(yōu)先級高于+,相當于a+(b*c),a=b=c=5;,賦值號=的右結合性,決定a=(b=(c=5)),2.5.3算術運算符與算術表達式,1.C語言的基本算術運算符:取負–乘法*除法/求余%加法+減法–其中:當“/”被用于整數(shù)或字符時,結果取整例如:5/2結果=2,1/2的結果=05/2.0結果=2.5,1.0/2結果=0.5取負的運算為單目運算符。求余%運算要求兩個運算量均為整型數(shù)據(jù)。,2自增,自減運算符,★自增運算符:++使變量的值自增1?!镒詼p運算符:--使變量的值自減1。其中:為單目運算,要求運算對象只能是變量結合方向:為由右至左。優(yōu)先級:高于雙目運算可有以下四種形式:①++I先加1再用②i++先用再加1③--i先減1再用④i--先用再減1,main(){intx,y;x=10;y=++x;printf(“%d,%d”,x,y);},main(){intx,y;x=10;y=x++;printf(“%d,%d”,x,y);},,x,,y,10,11,11,,,x,,y,10,11,10,,程序閱讀,voidmain(){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--);},9,9,屏幕打印內容,變量i,8,8,8,9,9,8,-8,9,-9,8,,,,,,,,3算術表達式,定義:由算術運算符、括弧、內部函數(shù)及數(shù)據(jù)組成的式子。,a*a/(b*c*c-34),(x*x-5*x+26)/(x-5),,,2.5.4賦值運算符與賦值表達式,1.簡單賦值運算符與表達式其一般形式為:變量=表達式說明:計算表達式的值再賦予左邊的變量。整個賦值表達式的值為:左邊變量的值例如:x=a+b結合方向:由右至左,優(yōu)先級較低a=b=c=5可理解為:a=(b=(c=5)),加分號后x=a+b;就是賦值語句,如果賦值運算符兩邊的數(shù)據(jù)類型不相同,系統(tǒng)將自動進行類型轉換,即把賦值號右邊的類型換成左邊的類型。具體轉換規(guī)定如下:1)實型賦予整型,舍去小數(shù)部分。2)整型賦予實型,數(shù)值不變,但將以浮點形式存放,即增加小數(shù)部分(小數(shù)部分的值為0)。3)字符型賦予整型,由于字符型為一個字節(jié),整型為二個字節(jié),故將字符的ASCII碼值放到整型量的低八位中,高八位為0。4)整型賦予字符型,只把低八位賦予字符量。,并非四舍五入,2.復合賦值運算符與表達式,復合賦值符:+=,-=,*=,/=,%=,>=,b=4;y=(x=a++,x+b);,程序執(zhí)行后:a=4b=4x=3y=7,2.5.7表達式中的類型轉換,1.隱式數(shù)據(jù)類型轉換定義:不同類型常量及變量參與運算,若參與運算的兩個數(shù)據(jù)類型不同,編譯程序按照一定的規(guī)則將它們變換為同一類型的量進行運算。轉換規(guī)則:,double←float↑long↑unsigned↑int←char,short,2.強制類型轉換,強制類型轉換符()功能:強制將一個表達式結果的數(shù)據(jù)類型轉換為特定類型其一般形式為:(類型符)表達式注意:類型符和表達式都要加括號,如:(int)(x+y)(float)z無論隱式轉換、強制轉換都是臨時轉換,不改變數(shù)據(jù)的類型和值。,2.7常用庫函數(shù),#include或#include“頭文件”中聲明了C語言中大部分關于輸入輸出操作的函數(shù)中聲明的庫函數(shù)用來處理相關的數(shù)學問題中聲明了許多相當基本的函數(shù)對字符串的各種處理對字符的相關處理與在圖形界面作圖有關的處理,函數(shù)的使用方法:調用方法:函數(shù)名(參數(shù)列表)/*有參函數(shù)*/函數(shù)名/*無參函數(shù)*/說明:(1)使用庫函數(shù)要注意參數(shù)的個數(shù)及其參數(shù)的數(shù)據(jù)類型(2)要注意函數(shù)的定義域(自變量或參數(shù)的取值范圍)例如:sqrt(x)要求:x>=0(3)要注意函數(shù)的值域。例如:exp(23773)的值就超出實數(shù)在計算機中的表示范圍,數(shù)學函數(shù),需要#include注意:使用abs()函數(shù)需要#includesin(x)、cos(x)、tan(x)在三角函數(shù)中的自變量是以弧度為單位。如:sin30?sin(3.14159/180*30)sqrt(x)返回x的平方根,注意自變量x需要大于0。,2.隨機函數(shù),需要#includerand():返回0~32767的隨機整數(shù)。例如:rand()%100random(num):返回0~num-1的隨機整數(shù)。例如:random(90)+10要產生[N,M]之間的隨機整數(shù)?randomize()函數(shù):可使rand()產生不相同序列的隨機數(shù)。函數(shù)調用形式:randomize();,,3.字符函數(shù),需要#include(1)判斷字符函數(shù)isalpha()、isalnum()、isdigit()(2)字符大小寫轉換函數(shù)tolower()、toupper(),- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- C語言程序設計 語言程序設計 數(shù)據(jù)類型 運算 表達式
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://m.jqnhouse.com/p-11498709.html