第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ù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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

2、本數(shù)據(jù)類型基本數(shù)據(jù)類型類型類型 符號符號關(guān)鍵字關(guān)鍵字?jǐn)?shù)的表示范圍數(shù)的表示范圍所占位數(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標(biāo)識

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

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

5、ong int 例:123L、32768u、432l、0 x100l注意:注意:l十六進(jìn)制十六進(jìn)制常量中可以使用大寫常量中可以使用大寫AF,也可以使用小寫,也可以使用小寫af。八八進(jìn)制進(jìn)制常量中不能出現(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實(shí)型常量實(shí)型常量 (浮點(diǎn)常量)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ù)形式指數(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ù)均不能省略 例如:例如: 非法非法 實(shí)實(shí)型常量的類型型常量的類型:默認(rèn)為:默認(rèn)為型,后面加型,后面加

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

8、:例如:字符串字符串結(jié)束標(biāo)記結(jié)束標(biāo)記65 0 1 0 0 0 0 0 1字符和字符串常量字符和字符串常量語言預(yù)定義的轉(zhuǎn)義字符語言預(yù)定義的轉(zhuǎn)義字符 轉(zhuǎn)義字符轉(zhuǎn)義字符 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 八進(jìn)制字符常數(shù)八進(jìn)制字符常數(shù) xhhxhh 0 x00-0 xff 0 x00-0 xff 十六進(jìn)制字符常數(shù)十六進(jìn)制字符常數(shù) 為什么用為什么用表示一個(gè)表示一個(gè)?變量變量 n在程序運(yùn)行過程中,其值改變的數(shù)據(jù),稱為變量,變量用標(biāo)識符表示,稱為變量名變量名。n變量必須“先定義后使用先定義后使用”n系統(tǒng)為變量分配存儲單元存儲單元,存儲變量的值。 n編寫程序時(shí)通過變量名來存、取變量值變量值。為變量分配的為變量分配的存儲單元存儲單元變量定義變量定義: 數(shù)據(jù)類型說明符 變量列表;例如:int i, j; long k, m; float x,y; char ch1,ch2; 必須使用必

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

12、和y y的值的值 t = x;x = y;y =t;t = x;x = y;y =t;tyx 變量賦值變量賦值整型變量整型變量整型數(shù)據(jù)的內(nèi)部表示一般采用補(bǔ)碼形式。整數(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實(shí)型變量實(shí)型變量 1n單精度實(shí)型數(shù)據(jù)單精度實(shí)型數(shù)據(jù) float,分配分配4 Byten雙精度實(shí)型數(shù)據(jù)雙精度實(shí)型

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

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

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

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

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

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

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

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

21、組 float x10; char s12; int arr23; 兩行三列的二維數(shù)組兩行三列的二維數(shù)組 數(shù)組元素的下標(biāo)從數(shù)組元素的下標(biāo)從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ù)組首地址(第一個(gè)元素的地址第一個(gè)元素的地址),是是一個(gè)常量一個(gè)常量,用用a 或或a0表示表示。a0a1a2a3a4arr00arr01arr02arr10arr11arr12 2. 數(shù)組的存儲方式 在定義的同時(shí)在定義的同時(shí), ,可以對數(shù)組進(jìn)行初始化可以對數(shù)組進(jìn)行初始化, ,一維一維數(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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論