![江南大學C語言程序設計本科第三章_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/21/32bee4c5-5754-47cf-b7b7-125658deb11d/32bee4c5-5754-47cf-b7b7-125658deb11d1.gif)
![江南大學C語言程序設計本科第三章_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/21/32bee4c5-5754-47cf-b7b7-125658deb11d/32bee4c5-5754-47cf-b7b7-125658deb11d2.gif)
![江南大學C語言程序設計本科第三章_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/21/32bee4c5-5754-47cf-b7b7-125658deb11d/32bee4c5-5754-47cf-b7b7-125658deb11d3.gif)
![江南大學C語言程序設計本科第三章_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/21/32bee4c5-5754-47cf-b7b7-125658deb11d/32bee4c5-5754-47cf-b7b7-125658deb11d4.gif)
![江南大學C語言程序設計本科第三章_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/21/32bee4c5-5754-47cf-b7b7-125658deb11d/32bee4c5-5754-47cf-b7b7-125658deb11d5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、回顧 算法表示 v 自然語言 v 偽代碼 v 流程圖 v 計算機語言 問題 如何不同類型的數據 運算 同一段程序的不同初值 第三章第三章 數據類型數據類型,運算符與表達運算符與表達 式式 1. 數據類型數據類型 2. 變量和常量變量和常量 3. 運算符和表達運算符和表達 式式 Focus 數 數 據據 類類 型型 字符型字符型(char)(1B)(1B) 整型整型(int) 枚舉類型枚舉類型 實型實型(浮點型浮點型) 單精度單精度(float)(4B)(4B) 雙精度雙精度(double)(8B)(8B)數組型數組型 結構體結構體 共用體共用體 長整型長整型( (long) )(4B)(4B)
2、 基本整型基本整型( (int) )(2B)(2B) 短整型短整型( (short) )(2B)(2B) 第一節(jié)第一節(jié) C語言的數據類型語言的數據類型 基本類型基本類型 構造類型構造類型 指針類型指針類型 空類型空類型 第二節(jié)第二節(jié) C程序中的變量和常量程序中的變量和常量 一、一、 標識符(名字)和保留字標識符(名字)和保留字 1 1、標識符(名字標識符(名字) ) 規(guī)定:規(guī)定: 字母或下劃線開頭的字母字母或下劃線開頭的字母數字數字下劃線組成的下劃線組成的 字串字串 在在C C語言中,標識符是語言中,標識符是區(qū)分字母的大小寫區(qū)分字母的大小寫的。的。 禁止使用禁止使用C C保留的保留的3232個
3、個關鍵字關鍵字做變量名。做變量名。 標識符可以為任意長度,但一般只識別前標識符可以為任意長度,但一般只識別前3232個字符。個字符。 2 2、 保留字(見附錄保留字(見附錄) 系統(tǒng)已使用的標識符。為避免混淆,系統(tǒng)已使用的標識符。為避免混淆, 保留給系統(tǒng)使用,用戶不能使用。保留給系統(tǒng)使用,用戶不能使用。 十六進制:十六進制:以以x x或或X X開頭開頭的數字及的數字及A AF F組組 合的數。合的數。 例:例:0 0X123X123,0X17fa0X17fa 八進制:八進制:以開頭以開頭的數字組合的數字。的數字組合的數字。 例:例:05, 032705, 0327 十進制:十進制:以非開頭的數字
4、組合的數字。以非開頭的數字組合的數字。 例:例:115115,-410-410,0 0 二、二、 常量常量 程序運行過程中其值不能被改動的程序運行過程中其值不能被改動的 量。量。 1 1整型常量整型常量 是由一個或多個數字所組成,可有正是由一個或多個數字所組成,可有正 負號。負號。 十進制形式十進制形式: :由正負號,整數部分,小數點,小數由正負號,整數部分,小數點,小數 部分組成。部分組成。 指數形式:指數形式:由符號、整數部分、小數點、小數部由符號、整數部分、小數點、小數部 分、字母分、字母E(E(或或e)e)、指數符號、指數、指數符號、指數 表表 示形示形 式式 構成規(guī)則:整數前邊和指數
5、前邊的正號可省構成規(guī)則:整數前邊和指數前邊的正號可省; ; 整數或小數可被省,但不能同時省整數或小數可被省,但不能同時省; ; e e或或E E前必須有數字,階碼必須為整型數前必須有數字,階碼必須為整型數。 例:例:1.25E-3 1.25*10-3 1.25e-3 2 2 實型常量實型常量(實數或浮點數)只使用十(實數或浮點數)只使用十 進制進制 例如:例如:printf(“ab cbdengh”); 輸出結果?輸出結果? abab de de ghgh 注注:構成字符常量的字符可:構成字符常量的字符可 以是以是ASCII字符集中除字符集中除( )和和 ( )以外的任意可顯示字符以外的任意可
6、顯示字符, 字符常量具有值字符常量具有值,其值就是該其值就是該 字符的字符的ASCII碼值。碼值。 字符常量字符常量 用單引號括起來的一用單引號括起來的一 個字符。個字符。 例:例: a、 A、 ?、 $ 轉義字符。轉義字符。 反斜杠開頭后跟一個字符。反斜杠開頭后跟一個字符。 例:例: nvb ddd:1-3位八進制位八進制 xhh1-2位位 十六進制數。十六進制數。 例:例:101x0A 如如“welcome”“How do you do ” 注:注:雙引號是字符串常量的定界符。雙引號是字符串常量的定界符。 字符串常量在內存中存儲時,自動在其尾部追字符串常量在內存中存儲時,自動在其尾部追 加
7、一個轉義字符加一個轉義字符00作為作為字符串的結束標志字符串的結束標志。 例如例如:“Welcome”在內存中占用在內存中占用8 8個字節(jié)個字節(jié) welcome0 是由一對是由一對雙引號雙引號括起來的字符序列。括起來的字符序列。 4 4字符串常量:字符串常量: 問題:問題:a與與“a”是等同的嗎?(請答出是等同的嗎?(請答出 理由)理由) 5 5符號常量(符號常數)符號常量(符號常數) 用一個標識符代表一個常量。用一個標識符代表一個常量。 第一種定義形式:第一種定義形式: #define 符號常量標識符符號常量標識符 常量表達式常量表達式 例如例如: #define PRICE 50 注意注意
8、:符號常量一旦被定義,在整個作用域中不:符號常量一旦被定義,在整個作用域中不 能被改變,也不能再被賦值。在函數體中使用符能被改變,也不能再被賦值。在函數體中使用符 號常量如同使用其他常量一樣可直接參加運算。號常量如同使用其他常量一樣可直接參加運算。 第二種定義形式:第二種定義形式: const 類型類型 符號常量標識符符號常量標識符= =常量表達式常量表達式 例如:例如: main() const float pi=3.14; float r=2.0,area; area=pi*r*r; printf(“The area is %fn”,area); PiPi是符號常量是符號常量 r,area
9、 r,area是變量是變量 在程序運行過程中,其值可以改變的量。在程序運行過程中,其值可以改變的量。 三三C程序中的變量程序中的變量 命名規(guī)則:命名規(guī)則:遵循標識符的規(guī)則遵循標識符的規(guī)則 變量名(標識符)由字母或下劃線開頭,其變量名(標識符)由字母或下劃線開頭,其 后可跟字母后可跟字母, ,數字或下劃線組成的字符序列。數字或下劃線組成的字符序列。 大小字母被認為是不同的字符。大小字母被認為是不同的字符。 C C語言中對標識符的字符個數無統(tǒng)一規(guī)定。語言中對標識符的字符個數無統(tǒng)一規(guī)定。 禁止使用禁止使用C C保留的保留的3232個關鍵字做變量名。個關鍵字做變量名。 . 下面舉出幾個正確和不正確的標
10、識符: 正確正確 smart321 _decision key_board FLOAT 不正確不正確 321smart bomb? key.board float_name999 t yx 定義格式:定義格式: ; 例如:例如:int i,j,k; float x,y,z,gdst; 注意:變量必須先定義后使用注意:變量必須先定義后使用 編譯程序會根據變量的類型為變量分配相應的編譯程序會根據變量的類型為變量分配相應的 存儲空間。存儲空間。 變量的值主要通過賦值運算改變。變量的值主要通過賦值運算改變。 例如:利用變量例如:利用變量t t交換變量交換變量x x和和y y的值的值 t = x;x =
11、 y;y =t; 1. 整型變量整型變量 基本型(整型)基本型(整型) 用用int聲明聲明 短整型短整型 用用short 聲明聲明 帶符號的整帶符號的整 數數 長整型長整型 用用long 聲明聲明 無符號整型無符號整型 unsigned int (unsigned) 無符號整型無符號整型 無符號短整型無符號短整型 unsigned short 無符號長整型無符號長整型 unsigned long 各種數據類型所占位數及其范圍見書各種數據類型所占位數及其范圍見書P31表表3.1 例:例: main( ) int a=-1,b=1; printf(“%d,%u,%d,%un”,a,a,b,b);
12、-1,65535,1,1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 (1)10= (0000 0000 0000 0001)2 (-1)10=(1111 1111 1111 1111)2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 (65535) 10=(1111 1111 1111 1111)2 當當65535按按 unsigned int 型理解時,仍為型理解時,仍為65535;而當按;而當按 int 型型 理解時,被當作理解時,被當作-1的補碼。的補碼。 同理,同理,32768視為視
13、為-32768。此時發(fā)生了上溢。此時發(fā)生了上溢。 二進制存放與溢出二進制存放與溢出 數符和階符各占一位,階碼的位數決定了表數符和階符各占一位,階碼的位數決定了表 示數值的范圍,尾數的位數決定了有效位的長度示數值的范圍,尾數的位數決定了有效位的長度 (精度)(精度)( (按按2 2-1 -12 2-2-2 . 2 . 2- -n n表示表示) )。 階符階符 階階 碼碼 數符數符 尾數尾數( (定點小數定點小數) ) 2 2實型(實型(浮點型)浮點型)變量:變量: 在微機上有兩種不同精度的浮點類型:在微機上有兩種不同精度的浮點類型: 單精度浮點數單精度浮點數 4 4字節(jié)字節(jié) 7 7位十進制有位十
14、進制有 效數。效數。 雙精度浮點數雙精度浮點數 8 8字節(jié)字節(jié) 1616位十進制有位十進制有 效數。效數。 它們都使用四部分位組來確定所表示的數值:它們都使用四部分位組來確定所表示的數值: 3 3字符變量:字符變量: 用來存放字符常量,只能放一個字符。用來存放字符常量,只能放一個字符。 定義形式:定義形式:char char 變量名;變量名; 字符數據的存儲:字符變量字符數據的存儲:字符變量 = = 字符常量時,是將字符常量時,是將 該該字符的字符的ASCIIASCII碼碼存放到存儲單元。在存放到存儲單元。在ASCIIASCII碼值碼值 范圍內字符型數據與整型數通用。范圍內字符型數據與整型數通
15、用。 例如:例如:char c; c=0; c=a; 對!對! c=“a”; 錯錯! ! c=“IBM”; 錯錯! ! 字符字符 AA 字符常量的存儲字符常量的存儲 65 0 字串字串 “ “A”A” 字符串的存儲字符串的存儲 占占2個字節(jié)個字節(jié) 占占字節(jié)字節(jié) 0 1 0 0 0 0 0 165 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 例例: main( ) char c1,c2,c3,c4; c1=97; c2=98; c3= a; c4= b; c3= c3-32; c4= c4-32; printf(“%c %c,%d %d,%c %c,%d %d”, c1,c2
16、,c1,c2,c3, c4,c3,c4); 運行結果:運行結果:a b,97 98,A B,65 66 4 4變量賦初值:變量賦初值: 強調:強調:變量賦初值(變量初始化)是在程變量賦初值(變量初始化)是在程 序運行時賦給的,而不是在編譯階段完成。序運行時賦給的,而不是在編譯階段完成。 例例1 1: int : int a=5; a=5; 例例2:2:可以給定義的變量中部分賦值可以給定義的變量中部分賦值 intint a,b,c=50; a,b,c=50; 例例3:3:可以給定義的變量所有賦值可以給定義的變量所有賦值 intint a=10,b=20,c=50; a=10,b=20,c=50;
17、 intint a=b=c=10 ; a=b=c=10 ; 第三節(jié)第三節(jié) 數據類型的轉換數據類型的轉換 一、數值型數據間混合運算的類型轉換。一、數值型數據間混合運算的類型轉換。 C C允許不同類型的量混合運算允許不同類型的量混合運算, ,計算時發(fā)生類型轉換。計算時發(fā)生類型轉換。 類型轉換有類型轉換有自動(隱式)自動(隱式)和和強制(顯式)強制(顯式)兩種。兩種。 例例:10+:10+AA+1.53+3.8 +1.53+3.8 是合法的。是合法的。 運算時:運算時: 系統(tǒng)按優(yōu)先級確定運算步驟,系統(tǒng)按優(yōu)先級確定運算步驟, 每一步運算時把運算符兩側不同類型的運算量轉換成統(tǒng)一每一步運算時把運算符兩側不
18、同類型的運算量轉換成統(tǒng)一 的類型的類型 計算計算 例例: 10+a+ I * f - d / e (其中變量(其中變量d,e是是double型)型) double double double 1. 自動轉換:自動轉換:表達式在運算的過程中自動完表達式在運算的過程中自動完 成成 自動轉換時的類型轉換規(guī)律自動轉換時的類型轉換規(guī)律 2. 強制類型轉換:強制類型轉換: 形式為:形式為:(類型名)操作數(類型名)操作數 例如:例如:int a=5; (double)a /*該表達式類型為該表達式類型為 double型型*/ 二、賦值表達式的類型轉換二、賦值表達式的類型轉換 把一個常數,變量,表達式的值賦
19、予某一個變把一個常數,變量,表達式的值賦予某一個變 量時,量時,C編譯系統(tǒng)自動實現(xiàn)數據類型的轉換。轉編譯系統(tǒng)自動實現(xiàn)數據類型的轉換。轉 換規(guī)則:先把賦值號右邊的類型轉換成賦值號左換規(guī)則:先把賦值號右邊的類型轉換成賦值號左 邊變量的類型,然后再賦值。邊變量的類型,然后再賦值。 例例: int a,b; float x;double y; a=33.5; x=57; y=57; b=a+x; 結果結果 a=33, x=57.000000, y=57.0000000000000, b=90 第四節(jié)第四節(jié) 運算符運算符 一、一、運算符運算符 單目運算符單目運算符 雙目運算符雙目運算符 三目運算符三目運
20、算符 二、表達式二、表達式 運算符與運算分量連接組合在一起就構成了表達運算符與運算分量連接組合在一起就構成了表達 式。式。 三、優(yōu)先級三、優(yōu)先級 指一個包含多個運算符的表達式中對運算符所規(guī)定的指一個包含多個運算符的表達式中對運算符所規(guī)定的 運算優(yōu)先次序。運算優(yōu)先次序。 不同運算符之間的優(yōu)先級不同運算符之間的優(yōu)先級 高高 初等運算初等運算 單目運算單目運算 算術運算算術運算 關系運算關系運算 邏輯運算邏輯運算( (除除 ! ! 外外) ) 條件運算條件運算 賦值運算賦值運算 低低 逗號運算逗號運算 四四C C運算符的分類:運算符的分類: (1 1)算術運算符算術運算符 +,% %, (取負)(取
21、負) (2 2)關系運算符)關系運算符 ( = = = != = = = != ) (3 3)邏輯運算符(!)邏輯運算符(! a=(b=5); a+=aa=5; a=(b=5); a+=a* *a;a;都是合法的都是合法的 當變量和表達式的類型不一致時,會發(fā)生類型轉換當變量和表達式的類型不一致時,會發(fā)生類型轉換 。 例:例: int int I; I=3.56;I; I=3.56; printfprintf(“%d”,I);(“%d”,I); 結果為結果為3 3 (3 3)賦值表達式)賦值表達式 8 8 (4 4)賦值運算符的優(yōu)先級和結合性)賦值運算符的優(yōu)先級和結合性 同級同級 右結合右結合
22、例:例:b=a+=c=a=4 b=(a+=(c=(a=4) 運算后運算后b b的值為的值為 分隔符分隔符 分開相鄰的兩個數據分開相鄰的兩個數據 運算符運算符 把兩個運算分量連接起來,使之構成把兩個運算分量連接起來,使之構成 一個表達式一個表達式 4 4、逗號運算符、逗號運算符 逗號表達式:逗號表達式: 表達式表達式1 1,表達式,表達式2 2 逗號表達式結果:逗號表達式結果: 表達式表達式2 2的值的值 例如:例如: x=0,y=100 x=0,y=100 逗號表達式結果為逗號表達式結果為100100 x=5 x=5* *4,4x4,4x 逗號表達式結果為逗號表達式結果為8080 擴展式:擴展
23、式:表達式表達式1 1 ,表達式,表達式N N 表達式結果:表達式結果:表達式表達式N N的值的值 1、輸入并運行下面的程序、輸入并運行下面的程序 main( ) char c1,c2; c1 =a;c2=b; printf(“%c %cn”,c1 ,c2); 運行此程序。運行此程序。 在此基礎上增加一個語句:在此基礎上增加一個語句: printfprintf(“(“d dd dn”n”,c1c1,c2);c2); 再運行,再運行, 并分析結果。并分析結果。 將第將第2 2行改為:行改為: intint C1 C1,C2C2; 再使之運行,并觀察結果。再使之運行,并觀察結果。 再將第再將第3 3、4 4行改為:行改為: c1=ac1=a; * *不用單撇號不用單撇號* * c2=bc2=b; 再使之運行,分析其運行結果。再使之運行,分析其運行結果。 再將第再將第3 3、4 4行改為:行改為: c1c1“a”a”; * *用雙撇號
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 浙教版數學七年級下冊3.5《整式的化簡》聽評課記錄
- 蘇科版九年級數學聽評課記錄:第32講 正多邊形的外接圓
- 青島版數學七年級上冊3.2《有理數的乘法與除法》聽評課記錄3
- 一年級下冊數學聽評課記錄《看一看(一)》4 北師大版
- 部編版八年級歷史(上)《第17課 中國工農紅軍長征》聽課評課記錄
- 華師大版數學九年級下冊《復習題》聽評課記錄4
- 川教版歷史九年級下冊第3課《日本明治維新》聽課評課記錄
- 蘇科版數學九年級下冊《6.2 黃金分割》聽評課記錄
- 小學二年級數學口算訓練
- 小學二年級上冊數學除法口算題
- 中央2025年交通運輸部所屬事業(yè)單位招聘261人筆試歷年參考題庫附帶答案詳解
- 江蘇省蘇州市2024-2025學年高三上學期1月期末生物試題(有答案)
- 銷售與銷售目標管理制度
- 特殊教育學校2024-2025學年度第二學期教學工作計劃
- 2025年技術員個人工作計劃例文(四篇)
- 2025年第一次工地開工會議主要議程開工大吉模板
- 第16課抗日戰(zhàn)爭課件-人教版高中歷史必修一
- 對口升學語文模擬試卷(9)-江西省(解析版)
- 無人機運營方案
- 糖尿病高滲昏迷指南
- 【公開課】同一直線上二力的合成+課件+2024-2025學年+人教版(2024)初中物理八年級下冊+
評論
0/150
提交評論