第2講C語言數(shù)據(jù)概述_第1頁
第2講C語言數(shù)據(jù)概述_第2頁
第2講C語言數(shù)據(jù)概述_第3頁
第2講C語言數(shù)據(jù)概述_第4頁
第2講C語言數(shù)據(jù)概述_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第二章第二章 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 著名計算機科學家沃思提出:程序數(shù)據(jù)結構算法程序數(shù)據(jù)結構算法+程序設計語言程序設計語言舉一個例子:以考生各科成績及總分排隊問題為例。 考生成績的存放 以數(shù)組形式 排隊方法 算法數(shù)據(jù)數(shù)據(jù)運算符和表達式運算符和表達式主要內容主要內容數(shù)據(jù)類型數(shù)據(jù)類型構造類型指針類型空類型void定義類型typedefC數(shù)據(jù)類型基本類型字符類型char枚舉類型enum整 型實型單精度型float雙精度型double數(shù)組結構體struct共用體union短整型short長整型long整型int數(shù)據(jù)類型決定:1. 數(shù)據(jù)占內存字節(jié)數(shù)2. 數(shù)據(jù)取值范圍3. 其上可進行的操作數(shù)據(jù)類型總表基

2、本數(shù)據(jù)類型基本數(shù)據(jù)類型類型類型 符號符號關鍵字關鍵字數(shù)的表示范圍數(shù)的表示范圍所占位數(shù)所占位數(shù)整型整型字符型字符型實型實型有有無無(signed)int16-3276832767(signed)short16-3276832767(signed)long32-2147483648214748364716unsigned int0655353204294967295unsigned longunsigned short16065535有有float323.4e-383.4e38有有double641.7e-3081.7e308有有char8-128127無無unsigned char80255標識

3、符標識符 標識符標識符用于給程序中的用于給程序中的等操作對象的命名。等操作對象的命名。1 1系統(tǒng)標識符系統(tǒng)標識符具有固定名字和特定含義的標識符具有固定名字和特定含義的標識符分為分為關鍵字關鍵字和和預定義標識符預定義標識符 2 2用戶定義標識符用戶定義標識符 用于對用戶使用的用于對用戶使用的變量、數(shù)組、函數(shù)變量、數(shù)組、函數(shù)等等操作對象進行命名。必須符合操作對象進行命名。必須符合C C對標識對標識符的規(guī)定符的規(guī)定。 關鍵字關鍵字 對標識符的規(guī)定對標識符的規(guī)定 n用戶定義標識符用戶定義標識符n必須以必須以字母字母或或下劃線下劃線“_”_”開頭開頭n不能含有除字母、數(shù)字和下劃線不能含有除字母、數(shù)字和下

4、劃線“_”_”外的其他字符外的其他字符n標識符可以為任意長度,但只能識別標識符可以為任意長度,但只能識別3131個字符個字符n 區(qū)分大小寫區(qū)分大小寫n正確區(qū)分哪些是合法標識符,哪些是不合法標識符。Abc 2x student m+y a# b-4let x%y name wtm Ctrl _1常量和符號常量常量和符號常量 三種表示形式三種表示形式 十進制 ddd U| u 八進制 0OOO + 整型后綴 十六進制0XHHH L| l例: 100, 0144, 0 x64 均表示十進制整數(shù)100.整型常量的類型整型常量的類型:默認默認類型類型:由數(shù)值范圍確定。U|u:unsigned L|l:l

5、ong int 例:123L、32768u、432l、0 x100l注意:注意:l十六進制十六進制常量中可以使用大寫常量中可以使用大寫AF,也可以使用小寫,也可以使用小寫af。八八進制進制常量中不能出現(xiàn)數(shù)字常量中不能出現(xiàn)數(shù)字 8 或或 9。例如:。例如:018、0921非法非法整數(shù)的存儲整數(shù)的存儲main( ) unsigned int m; m= 65448; printf(nm=%dn,m); printf(m=%un,m); 按有符號數(shù)輸出按有符號數(shù)輸出按無符號數(shù)輸出按無符號數(shù)輸出0000 0000 0101 10001111 1111 1010 1000實型常量實型常量 (浮點常量)n

6、小數(shù)形式小數(shù)形式 1.0 1. +12.0 -12.0 0.0n指數(shù)形式指數(shù)形式 1e3 1.8e-3 -123E-6 -.1E-3 小數(shù)形式小數(shù)形式 F| f + 實型后綴 指數(shù)形式指數(shù)形式 L| l 兩種表示形式類型類型符Byte絕對值的范圍有效數(shù)字410-38 103878 位810-308 103081516位1010-4931 1049321819位 指數(shù)只能是整數(shù)指數(shù)只能是整數(shù),而尾數(shù)則可以是整數(shù)也可以是,而尾數(shù)則可以是整數(shù)也可以是小數(shù)小數(shù) ,無論指數(shù)或尾數(shù)均不能省略,無論指數(shù)或尾數(shù)均不能省略 例如:例如: 非法非法 實實型常量的類型型常量的類型:默認為:默認為型,后面加型,后面加

7、(或(或 ),則強調表示該數(shù)是),則強調表示該數(shù)是float類型類型 例如:例如:3.5 、1e2 字符和字符串常量字符和字符串常量 n字符常量字符常量是用是用單引號單引號括起的括起的一個字符一個字符n例如:例如:A、1、a、 nn字符 A 字節(jié)n字符串字符串是用是用雙引號雙引號括起的括起的一個字符序列一個字符序列n例如:例如:ABC、123、a、 nt nGood morningn字符串常量的長度字符串常量的長度 :n所包含的字符個數(shù)所包含的字符個數(shù) n字符串常量的存儲方式字符串常量的存儲方式: n G o o dm orni n g 0a0所占存儲單元數(shù):所占存儲單元數(shù):串長度串長度1例如

8、:例如:字符串字符串結束標記結束標記65 0 1 0 0 0 0 0 1字符和字符串常量字符和字符串常量語言預定義的轉義字符語言預定義的轉義字符 轉義字符轉義字符 ASCIIASCII碼碼 含含 義義 a 0 x07 a 0 x07 響鈴符(響鈴符(BEL-BellBEL-Bell) n 0 x0A n 0 x0A 換行符(換行符(LF-LineFeedLF-LineFeed) t 0 x09 t 0 x09 水平制表符(水平制表符(HT-HorizontalTableHT-HorizontalTable) v 0 x0B v 0 x0B 垂直制表符(垂直制表符(VT-VerticalTabl

9、eVT-VerticalTable) b 0 x08 b 0 x08 回退符(回退符(BS-BackspaceBS-Backspace) r 0 x0D r 0 x0D 回車符(回車符(CR-CarriageReturnCR-CarriageReturn) f 0 x0C f 0 x0C 換頁符(換頁符(FF-FormFeedFF-FormFeed) 0 x5C 0 x5C 反斜線(反斜線( ) ? 0 x3F ? 0 x3F 問號(問號(? ? ) 0X27 0X27 單引號(單引號() “ 0X22 “ 0X22 雙引號(雙引號(”“” ”“” ) oooooo 0 x00-0 xff 0

10、 x00-0 xff 八進制字符常數(shù)八進制字符常數(shù) xhhxhh 0 x00-0 xff 0 x00-0 xff 十六進制字符常數(shù)十六進制字符常數(shù) 為什么用為什么用表示一個表示一個?變量變量 n在程序運行過程中,其值改變的數(shù)據(jù),稱為變量,變量用標識符表示,稱為變量名變量名。n變量必須“先定義后使用先定義后使用”n系統(tǒng)為變量分配存儲單元存儲單元,存儲變量的值。 n編寫程序時通過變量名來存、取變量值變量值。為變量分配的為變量分配的存儲單元存儲單元變量定義變量定義: 數(shù)據(jù)類型說明符 變量列表;例如:int i, j; long k, m; float x,y; char ch1,ch2; 必須使用必

11、須使用合法的標識符合法的標識符作作變量名變量名 不能用關鍵字不能用關鍵字作為變量命名作為變量命名變量初始化變量初始化3.3.允許在說明變量的時候對允許在說明變量的時候對。例如例如:int a=5,b=10+2; double x=23.568,y ; char ch1=a,ch2=66,ch3=142; 表示定義變量并對變量存儲單元賦值。錯誤的初始化:錯誤的初始化: int a=3+b,b=5; float m=n=23.16; 變量的值主要通過賦值變量的值主要通過賦值(assignment)(assignment)運算改運算改變。變。例如:例如:利用變量利用變量t t交換變量交換變量x x和

12、和y y的值的值 t = x;x = y;y =t;t = x;x = y;y =t;tyx 變量賦值變量賦值整型變量整型變量整型數(shù)據(jù)的內部表示一般采用補碼形式。整數(shù)有三種不同的尺寸:位的字符整數(shù)、16位的短整數(shù)和32長整數(shù)。 n : 用“int”定義n : 用“short int”或 “short”定義n : 用“l(fā)ong ”或 “l(fā)ong int ”定義n :用unsigned來定義。它包括 : unsigned int :unsigned short :unsigned long實型變量實型變量 1n單精度實型數(shù)據(jù)單精度實型數(shù)據(jù) float,分配分配4 Byten雙精度實型數(shù)據(jù)雙精度實型

13、數(shù)據(jù)double,分配,分配 8 Byten長雙精度實型數(shù)據(jù)長雙精度實型數(shù)據(jù)long double,分配,分配10 Byte 2例如: float balance; double weight=0; long double distance; 編譯程序會為變量編譯程序會為變量balance分配分配4個字節(jié),為變量個字節(jié),為變量weight分配分配8個字節(jié),為變量個字節(jié),為變量distance分配分配10個字節(jié)。個字節(jié)。char /unsigned char 變量名列表; char c=0; c=a; c=“a”; 錯! c=“IBM”; 錯! unsigned char 型 與 int 型通用

14、與互換(ASCII碼范圍內).例:大小寫轉換例:大小寫轉換, 加密加密.main( )char c1,c2; c1=A;c2=B; printf(“c1=%c,c2=%cn”,c1,c2);n 運算符運算符: + : + 、- - 、* * 、/ / 、% %、+、-n 運算符運算符: = = = = !=n 運算符運算符: ! & |n 運算符運算符: = =n 運算符運算符: ,n 運算符運算符: & | n 運算符運算符: ? :n 運算符運算符 sizeof( )sizeof(int)=2 , sizeof(float)=4, sizeof(1.0)=8關于算術運算符的

15、幾點說明關于算術運算符的幾點說明:1. “取模取模(求余求余)” 運算符只能用于整型運算符只能用于整型2. 當兩個操作數(shù)都是整數(shù)時當兩個操作數(shù)都是整數(shù)時,表示表示“整除整除” 如如: 15/2=7 16/3=5 1/3=03. 1)單獨使用時單獨使用時,效果一樣效果一樣 k=3; +k; k+; 2)作為運算元素和其它一起參加運算時作為運算元素和其它一起參加運算時,結果不一樣結果不一樣 例例如如: k=4 ; x=5; +k + x (10,k=5) k+ + x (9,k=5)1.有一個四位數(shù)有一個四位數(shù)abcd,請將其變換成,請將其變換成cdab。例如,例如,12343412;2.將實數(shù)將

16、實數(shù)x進行進行四舍五入四舍五入,保留小數(shù)點后,保留小數(shù)點后兩兩位有效數(shù)字位有效數(shù)字。例如,。例如,123.45678123.46;2. x y+1 ab+1 x0 1327 結果為 13bc的值為0 a0 = b0 表示a、b要么都是正數(shù),要么都不是整數(shù),等價于 ( a0) =( b0) 在邏輯表達式的求解中,并不是所有的在邏輯表達式的求解中,并不是所有的邏輯運算符都被執(zhí)行,只是在必須執(zhí)行下一個邏輯邏輯運算符都被執(zhí)行,只是在必須執(zhí)行下一個邏輯運算符才能求出表達式的解時,才執(zhí)行該運算符。運算符才能求出表達式的解時,才執(zhí)行該運算符。求解方法求解方法:只有:只有a a為真(非為真(非0 0),才需要

17、判斷),才需要判斷b b的值,的值,只有只有a a和和b b都為真,才需要判斷都為真,才需要判斷c c的值。只要的值。只要a a為假,為假,就不必判斷就不必判斷b b和和c c,運算立即中止。,運算立即中止。 4.構造一個構造一個C語言邏輯表達式,判別鍵盤按語言邏輯表達式,判別鍵盤按下的是不是下的是不是字母鍵。字母鍵。2.用用C表達式描述數(shù)學表達式表達式描述數(shù)學表達式“abc”;3.寫出和寫出和C語言邏輯表達式語言邏輯表達式“!x”等價的表等價的表達式;達式;1.用用C表達式描述數(shù)學表達式表達式描述數(shù)學表達式“axb”;1.賦值表達式賦值表達式 x=5; a=(b=c); a=b=c; a=(

18、b=5)+(c=4);2.復合的賦值表達式復合的賦值表達式 int a ,b,c; a=10;b=20;c=a+b; a=a+b a+=b; a=a*k a*=k;3.復合賦值復合賦值運算符運算符 += - = *= /= %= =與位運算符一起也可以構成復合的賦值運算符,例如= |= &| = = 結果是 結果是 (C語言中唯一的三元運算符) if (e1 ) e2; else e3; 例如: if (ab ) max=a; else max=b; 高 初等運算 單目運算 算術運算 關系運算 邏輯運算(除 ! 外) 條件運算 賦值運算 低 逗號運算 指運算數(shù)與運算符的結合方向. 單、

19、三目及賦值運算 自右向左結合 其余 自左向右結合C允許不同類型的量混合運算。隱式 . 低字長、低精度向長字長、高精度轉換。 2. 逐步進行。 高 Double float long unsigned 低 int short char 賦值時以左邊變量為準. 圖中圖中“ ” : 表示低表示低, 高型數(shù)據(jù)運算時高型數(shù)據(jù)運算時,均先轉均先轉換為高型。換為高型。例例: 10+ a+i f d /l其中其中:i int f float d double l long 10+a: 轉為轉為int, 結果為結果為int i f: 轉為轉為double, 結果為結果為double 10+a + i f : 轉

20、為轉為double d /l : 轉為轉為double 10+ a+i f d /l轉為轉為double則運算時則運算時: 格式: 例: printf (“ %f ”, 2/3); printf (“ %f ”, ( float) 2/3 ); printf (“ %f ”, (float)(2/3);2.7.1 數(shù)組數(shù)組 數(shù)組是數(shù)組是具有一定順序關系具有一定順序關系的若干的若干同類型同類型變量的集合體變量的集合體. 組成數(shù)組的變量稱為組成數(shù)組的變量稱為數(shù)組的元素數(shù)組的元素. 數(shù)據(jù)類型數(shù)據(jù)類型 數(shù)組名數(shù)組名 數(shù)組大小數(shù)組大小 如如: int a5; 5個整型數(shù)組成的一維數(shù)組個整型數(shù)組成的一維數(shù)

21、組 float x10; char s12; int arr23; 兩行三列的二維數(shù)組兩行三列的二維數(shù)組 數(shù)組元素的下標從數(shù)組元素的下標從0開始開始,且必須是整型的常量和變量且必須是整型的常量和變量. int a5; a0 a1 a2 a3 a4 int arr23; a00 a01 a0 2 a10 a11 a12 2.7 數(shù)組和指針初步數(shù)組和指針初步 int a5; int arr23; 數(shù)組名代表了數(shù)組首地址數(shù)組名代表了數(shù)組首地址(第一個元素的地址第一個元素的地址),是是一個常量一個常量,用用a 或或a0表示表示。a0a1a2a3a4arr00arr01arr02arr10arr11arr12 2. 數(shù)組的存儲方式 在定義的同時在定義的同時, ,可以對數(shù)組進行初始化可以對數(shù)組進行初始化, ,一維一維數(shù)組,數(shù)組,如如: : intint b5=1,2,3,4,5; b5=1,2,3,4,5;或或 intint b =1,2,3,4,5; b =1,2,3,4,5;二維二維數(shù)組,如:數(shù)組,如: intint a23=1,3,5,2,4,6; a23=1,3,5,2,4,6;或或 intint a 3=1,3,5,2,4,6; a 3=1,3,5,2,4,6; 3. 數(shù)組的初

溫馨提示

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

評論

0/150

提交評論