C語言程序設計的初步知識_第1頁
C語言程序設計的初步知識_第2頁
C語言程序設計的初步知識_第3頁
C語言程序設計的初步知識_第4頁
C語言程序設計的初步知識_第5頁
已閱讀5頁,還剩16頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、程序應包括以下兩部分內容:程序應包括以下兩部分內容:1. 對數據的描述對數據的描述 即數據結構即數據結構2. 對數據處理的描述對數據處理的描述即算法即算法數據結構指數據的組織形式,不同的計算機語言允許使數據結構指數據的組織形式,不同的計算機語言允許使用的數據結構是不同的,而處理同一問題時如果使用不同用的數據結構是不同的,而處理同一問題時如果使用不同的數據結構,則算法也會不同。的數據結構,則算法也會不同。C語言中,系統提供的的數據結構以數據類型的形式出語言中,系統提供的的數據結構以數據類型的形式出現,現,C語言規定:每個變量在使用之前必須先說明其數據語言規定:每個變量在使用之前必須先說明其數據類

2、型。類型。 第第2章章 C語言程序設計的初步知識語言程序設計的初步知識即:數據結構即:數據結構+算法算法=程序程序C數數據據類類型型基本類型基本類型構造類型構造類型指針類型指針類型空類型空類型void字符類型字符類型char枚舉類型枚舉類型enum整整 型型實型實型單精度型單精度型float雙精度型雙精度型double數組數組結構體結構體struct共用體共用體union短整型短整型short長整型長整型long整型整型intC語言的數據類型如下:語言的數據類型如下:數據類型決定:1. 數據占內存字節數2. 數據取值范圍3. 可進行的操作基本數據類型基本數據類型類型符號類型標識符數的表示范圍所

3、占位數整型字符型實型有無(signed)int16-3276832767(signed)short16-3276832767(signed)long32-214748364821474836473204294967295unsigned longunsigned short16065535有有float323.4e-383.4e38有有double641.7e-3081.7e308有有char8-128127無無unsigned char80255說明:數據類型所占字節數隨機器硬件不同而不同,上表以IBM PC機為例:16065535unsigned int1. 標識符標識符定義:用來標識變量

4、、常量、函數等的字符序列定義:用來標識變量、常量、函數等的字符序列組成:組成:只能由字母、數字、下劃線組成,且第一個字母必須是只能由字母、數字、下劃線組成,且第一個字母必須是字母或下劃線字母或下劃線大小寫敏感大小寫敏感不能使用關鍵字不能使用關鍵字長度:最長長度:最長32個字符個字符命名原則:命名原則:見名知意見名知意不宜混淆不宜混淆 如如l與與I, o與與0例:判斷下列標識符號合法性sum Sum M.D.John day Date 3days $123 _above lotus_1_2_3 student_name #33 char ab2.32.6 常量與變量常量與變量2. 常量常量概念:

5、程序運行時其值不能改變的量(即常數)概念:程序運行時其值不能改變的量(即常數)分類分類:符號常量:用標識符代表常量(符號常量:用標識符代表常量(P15)*定義格式:定義格式: #define 符號常量符號常量 常量常量*一般用大寫字母一般用大寫字母*是宏定義預處理命令,不是是宏定義預處理命令,不是C語句語句直接常量直接常量: :*整型常量整型常量 *實型常量實型常量 *字符常量字符常量 *字符串常量字符串常量3. 變量&整型常量(整常數)整型常量(整常數)三種形式:三種形式:十進制整數:由數字十進制整數:由數字09和正負號表示和正負號表示. 如如 123, -456, 0八進制整數:由

6、數字八進制整數:由數字0開頭開頭,后跟數字后跟數字07表示表示. 如如0123, -011十六進制整數:由十六進制整數:由0 x開頭開頭,后跟后跟09,af,AF表示表示. 如如0 x123, -0Xff整型常量的類型整型常量的類型根據其值所在范圍確定其數據類型根據其值所在范圍確定其數據類型 例例 30000 為為int型型, 65536 為為long int 型型在在整常量后加字母整常量后加字母l或或L,認為它是認為它是long int 型常量型常量 例例 12 是是int型,型, 12L 是是long int 型型&實型常量(實數或浮點數)實型常量(實數或浮點數)表示形式:表示形式

7、:十進制數形式:(必須有小數點)十進制數形式:(必須有小數點) 如如0.123, -.123, 123.0, 0.0, -123.指數形式:(指數形式:(“aEn”或或“aen”,表示表示a10n。a是是十進制數,十進制數,n是是十進制整數十進制整數;a和和n都都可以帶符號)可以帶符號)如如12.3e3 ,123E2, -1.23e4, 0.123e-5 不合法:不合法:1.2E-3.5, 2.7E, e7, 5.6-E4 實型常量的類型實型常量的類型默認默認double型型在在實型常量后加字母實型常量后加字母f或或F,認為它是認為它是float 型型&字符常量字符常量定義:用單引號括

8、起來的單個普通字符或定義:用單引號括起來的單個普通字符或轉義字符轉義字符。 如如 a A ? n 101字符常量的值:該字符的字符常量的值:該字符的ASCII碼碼值值轉義字符:轉義字符:反斜線后面跟一個字符或一個代碼值表示反斜線后面跟一個字符或一個代碼值表示轉義字符及其含義轉義字符及其含義 (P20)轉義字符轉義字符含含 義義nvradddtbf“xhh轉義字符轉義字符換行換行垂直制表垂直制表回車回車響鈴響鈴單引號單引號3位位8進制數代表的字符進制數代表的字符水平制表水平制表退格退格換頁換頁反斜線反斜線雙引號雙引號2位位16進制數代表的字符進制數代表的字符含含 義義注意!字符常量與字符串常量不

9、同注意!字符常量與字符串常量不同&字符串常量字符串常量定義:用雙引號定義:用雙引號(“”)(“”)括起來的字符序列括起來的字符序列存儲:存儲:每個字符串尾自動加一個每個字符串尾自動加一個 00 作為字符串結作為字符串結束標志束標志h e l l o 0例例 字符串字符串“hello”在內存中在內存中a a 0例例 a“a”例例 空串空串 “”“” 在內存中在內存中0例: char ch; ch=“A”; 例: char ch; ch=A; 3. 變量3. 變量變量概念:程序運行過程中其值可以改變的量。變量是在內存概念:程序運行過程中其值可以改變的量。變量是在內存中占一定的存儲單元,存儲

10、單元中存放變量的值。中占一定的存儲單元,存儲單元中存放變量的值。變量的定義:任一變量在使用前必須先定義,定義格式為變量的定義:任一變量在使用前必須先定義,定義格式為 數據類型數據類型 變量名變量名1,變量名,變量名2,變量名,變量名n;變量初始化:定義時賦初值變量初始化:定義時賦初值變量定義位置:一般放在函數開頭變量定義位置:一般放在函數開頭.地址地址abc2字節字節2字節字節2字節字節地址地址地址地址.1-3隨機數隨機數例:例:main() int a=1,b=-3,c ; . 編譯程序根據變量定義為其分配編譯程序根據變量定義為其分配指定字節的內存單元如圖所示:指定字節的內存單元如圖所示:基

11、本變量類型基本變量類型 類型標識符類型標識符 字節字節數數 取值范圍取值范圍 基本整型基本整型 int 2 短整型短整型 short 2 -3276832767 即即:-215(215-1) 有符號數有符號數 長整型長整型 long 4 -231 (231-1) 基本整型基本整型 unsigned int 2 短整型短整型 unsigned short 2 065535 即即:0(216-1) 整整 型型 無符號數無符號數 長整型長整型 unsigned long 4 0 (232-1) 單精度型單精度型 float 4 10-371038 7 位有效數字位有效數字 雙精度型雙精度型 doub

12、le 8 10-30710308 16 位有效數字位有效數字 實實 型型 長雙精度型長雙精度型 long double 16 10-493110493219 位位有效數字有效數字 有符號型有符號型 char 1 -128 127 字符字符型型 無符號型無符號型 unsigned char 1 0 255 變量的基本數據類型變量的基本數據類型說明:說明:1)變量的類型決定了變量的取值范圍,如果變量的值超出了它變量的類型決定了變量的取值范圍,如果變量的值超出了它的允許范圍則程序執行后將得出錯誤的結果。對變量進行定的允許范圍則程序執行后將得出錯誤的結果。對變量進行定義、賦值、及輸出(設置輸出格式符)

13、時都應注意這個問題。義、賦值、及輸出(設置輸出格式符)時都應注意這個問題。 例例main() int a=32768; printf(“a=%dn”,a); 結果為:結果為:32768 把把 int 改為改為 long , 把把%d 改為改為 %ld 才能得出正確的結果才能得出正確的結果2)有符號的整型變量的存儲單元的最高位表示數據的符號:有符號的整型變量的存儲單元的最高位表示數據的符號:0為為正,正,1為負。為負。3)無符號的整型變量只能存放無符號整數,不能存放負數。無符號的整型變量只能存放無符號整數,不能存放負數。4)4)關于字符型變量關于字符型變量 字符變量的值以字符變量的值以ASCII

14、碼的形式存放在存儲單元中,占碼的形式存放在存儲單元中,占1個字個字節(如圖所示)。節(如圖所示)。 char與與int數據之間的關系(賦值、輸入、輸出、運算)數據之間的關系(賦值、輸入、輸出、運算) 例:例:main() char c1=A, c2=65; int n1=65, n2=A; printf(“%c,%c,%c,%cn”,c1,c2,n1,n2); printf(“%d,%d,%d,%dn”, c1,c2,n1,n2); printf(“%d,%dn”,c1-n1,c2-n2); 字符型變量只能存放字符不能存放字符串,字符型變量只能存放字符不能存放字符串,C語言沒有字符語言沒有字符

15、串變量,字符串用字符數組存放串變量,字符串用字符數組存放char ch=a;ch01100001(97)10 2.72.9 運算符和表達式運算符和表達式C運運算算符符算術運算符:算術運算符: + - * / % + -賦值運算符:賦值運算符: = 及其擴展及其擴展逗號運算符:逗號運算符: ,關系運算符:關系運算符: = !=邏輯運算符:!邏輯運算符:! & |條件運算符:條件運算符: ? :指針運算符:指針運算符: * &位運算符:位運算符: | &求字節數求字節數 : sizeof強制類型轉換:(類型)強制類型轉換:(類型)分量運算符:分量運算符: . -下標運算符:

16、下標運算符: 其它:其它: ( ) - 學習運算符應注意:學習運算符應注意:運算符功能運算符功能與運算量關系與運算量關系要求運算量個數要求運算量個數要求運算量類型要求運算量類型運算符優先級別運算符優先級別結合方向結合方向運算結果的類型運算結果的類型&算術運算符和表達式算術運算符和表達式基本算術運算符:基本算術運算符: + - * / %優先級:優先級: - * / % + -結合方向:從左向右結合方向:從左向右說明:說明:*“-” 為單目運算符時,右結合性為單目運算符時,右結合性*兩整數相除,結果為整數兩整數相除,結果為整數*%要求兩側均為整型數據要求兩側均為整型數據用算術運算符和括號

17、把運算對象(常量、變量、函數等)用算術運算符和括號把運算對象(常量、變量、函數等)連接起來的、符合連接起來的、符合C語法規則的式子稱為算術表達式。語法規則的式子稱為算術表達式。如:如:printf(“%fn”,(a+b)/c-1.5+a);例例 5/2 = 2 -5/2.0 = -2.5例例5%2 = 1 -5%2 = -15%1 = 01%10 = 1 5.5%2 X算術表達式算術表達式自增、自減運算符自增、自減運算符 、(例、(例 i+ -i)作用:使變量值加作用:使變量值加1()或減()或減1()()種類:種類:*前置前置 +i, -i (先執行先執行i+1或或i-1,再使用,再使用i值

18、)值)*后置后置 i+,i- (先使用先使用i值,再執行值,再執行i+1或或i-1)例例j=3; k=+j;k=4,j=4 j=3; k=j+;k=3,j=4 j=3; printf(“%d”,+j);顯示顯示4 j=3; printf(“%d”,j+);顯示顯示3 a=3; b=5; c=(+a)*b;c=20,a=4 a=3; b=5; c=(a+)*b;c=15,a=4說明:說明:*+ - 不能用于常量和表達式,如不能用于常量和表達式,如5+,(a+b)+*優先級:優先級:-、+、 - *、/、 % +、-*結合方向:自右向左結合方向:自右向左 如:如:-i+相當于相當于-(i+)&am

19、p;賦值運算符和表達式賦值運算符和表達式簡單賦值運算符簡單賦值運算符符號:符號:賦值表達式格式:變量賦值表達式格式:變量=表達式表達式作用:將一個數據(常量或表達式的值)賦給一個變量作用:將一個數據(常量或表達式的值)賦給一個變量復合賦值運算符復合賦值運算符種類:種類:+= -= *= /= %= = &= = |=含義:變量含義:變量 OP= 表達式表達式 變量變量 = 變量變量 OP 表達式表達式 例例說明說明:*結合方向:自右向左結合方向:自右向左*優先級優先級: 14*C中,賦值表達式可以出現在所有表達式可以出現的地方。中,賦值表達式可以出現在所有表達式可以出現的地方。賦值表達

20、式的值是被賦值的變量的值。賦值表達式的值是被賦值的變量的值。a+=5a=a+5x*=y+7x=x*(y+7)左邊必須是變量左邊必須是變量,不能是常量或表達式。不能是常量或表達式。&逗號運算符和表達式逗號運算符和表達式逗號運算符:,逗號運算符:,逗號表達式形式:表達式逗號表達式形式:表達式1,表達式表達式2,表達式表達式n逗號表達式求解:從左至右,依次計算各表達式的值,表逗號表達式求解:從左至右,依次計算各表達式的值,表達式達式n的值是整個逗號表達式的值。的值是整個逗號表達式的值。例:例:a=3*5,a*4a的值為的值為15,表達式的值為,表達式的值為60a=3*5,a*4,a+5a的值

21、為的值為15,表達式的值為,表達式的值為20 x=(a=3,6*3)a的值為的值為3,逗號表達式的值為,逗號表達式的值為18x的值為的值為18,賦值表達式的值為,賦值表達式的值為18優先級優先級: 15(最低)(最低)結合性結合性:從左向右從左向右用途:用途:常用于循環常用于循環for語句中語句中自動轉換:系統按一定規則轉換數據類型自動轉換:系統按一定規則轉換數據類型什么情況下發生什么情況下發生*運算轉換運算轉換-不同類型數據混合運算時不同類型數據混合運算時*賦值轉換賦值轉換-把一個值賦給與其類型不同的變量時把一個值賦給與其類型不同的變量時*輸出轉換輸出轉換-輸出時轉換成指定的輸出格式輸出時轉換成指定的輸出格式*函數調用轉換函數調用轉換-實參與形參類型不一致時轉換實參與形參類型不一致時轉換運算轉換規則運算轉換規則:2.7.33. 數據類型轉換(數據類型轉換(P23 2行)行)doublefloat

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論