版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第二章第二章進(jìn)位計(jì)數(shù)制進(jìn)位計(jì)數(shù)制l在計(jì)算機(jī)科學(xué)中除在計(jì)算機(jī)科學(xué)中除十進(jìn)制十進(jìn)制外,常用的外,常用的還有還有二進(jìn)制二進(jìn)制、八進(jìn)制八進(jìn)制和和十六進(jìn)制十六進(jìn)制。l如果用如果用r個(gè)基本符號(hào)(例如個(gè)基本符號(hào)(例如0,1,2,r 1)表示數(shù)值,則稱其為)表示數(shù)值,則稱其為r進(jìn)進(jìn)制數(shù),制數(shù),r稱為該數(shù)制的稱為該數(shù)制的基數(shù)基數(shù)。不同計(jì)數(shù)制具有的共同特點(diǎn) 每一種計(jì)數(shù)制都有固定的符號(hào)集每一種計(jì)數(shù)制都有固定的符號(hào)集 如十進(jìn)如十進(jìn)制數(shù)制,其符號(hào)有十個(gè):制數(shù)制,其符號(hào)有十個(gè):0,1,2,9。二進(jìn)制數(shù)制,其符號(hào)有兩個(gè):二進(jìn)制數(shù)制,其符號(hào)有兩個(gè):0和和1。 不同進(jìn)制都使用不同進(jìn)制都使用位置表示法位置表示法,即處于不,即處于
2、不同位置的數(shù)符所代表的值不同,該值與所在同位置的數(shù)符所代表的值不同,該值與所在位置的權(quán)值有關(guān)。位置的權(quán)值有關(guān)。 值值=數(shù)符數(shù)符*權(quán)值權(quán)值 x4x3x2x1x0.x-1x-2x-3x-4權(quán)值權(quán)值是基數(shù)的是基數(shù)的i次冪次冪十進(jìn)制各位置(十進(jìn)制各位置(012.)的權(quán)值)的權(quán)值100=1 101=10 102=100 103=1000 如 123.456 =1*102+2*101+3+4*10-1+5*10-2+6*10-3二進(jìn)制各位置(二進(jìn)制各位置(012.)的權(quán)值)的權(quán)值20=1 21=2 22=4 23=8 24=1625=32 26=64 27=128 28=25629=512 210=102
3、4 211=2048212=4096 213=8192 214=16384215=32768 216=65536不同進(jìn)制之間的轉(zhuǎn)換不同進(jìn)制之間的轉(zhuǎn)換lr進(jìn)制轉(zhuǎn)換為十進(jìn)制進(jìn)制轉(zhuǎn)換為十進(jìn)制 將將r進(jìn)制數(shù)的進(jìn)制數(shù)的每位(非零)數(shù)值每位(非零)數(shù)值與相應(yīng)與相應(yīng)位置的位置的權(quán)值權(quán)值相相乘乘,然后相,然后相加加即可。即可。 x4x3x2x1x0.x-1x-2x-3x-4如如 ( 100110.101)2 =(1*25+1*22+1*21+1*2-1+1*2-3)10 =(38.625)10思考思考(1111)2=( ? ) 10=2?-1(11111)2=( ? ) 10=2?-1(111111)2=(
4、? ) 10=2?-1(1111111)2=( ? ) 10=2?-1(11111111)2=( ? ) 10=2?-1l十進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)轉(zhuǎn)換為r進(jìn)制:進(jìn)制:除除r取余法取余法 將一個(gè)十進(jìn)制整數(shù)反復(fù)除以基數(shù)將一個(gè)十進(jìn)制整數(shù)反復(fù)除以基數(shù)r,直到,直到商為商為0為止,并記下每次所得余數(shù)為止,并記下每次所得余數(shù) 將最后一個(gè)余數(shù)到第一余數(shù)按從左到右的將最后一個(gè)余數(shù)到第一余數(shù)按從左到右的次序連起來,它們所組成的數(shù)字串即為相應(yīng)次序連起來,它們所組成的數(shù)字串即為相應(yīng)的的r進(jìn)制整數(shù)。進(jìn)制整數(shù)。l非十進(jìn)制數(shù)間的轉(zhuǎn)換非十進(jìn)制數(shù)間的轉(zhuǎn)換l兩個(gè)非十進(jìn)制數(shù)之間的轉(zhuǎn)換方法一般結(jié)合兩個(gè)非十進(jìn)制數(shù)之間的轉(zhuǎn)換方法一般結(jié)合
5、上述兩種方法進(jìn)行轉(zhuǎn)換,即先把被轉(zhuǎn)換數(shù)上述兩種方法進(jìn)行轉(zhuǎn)換,即先把被轉(zhuǎn)換數(shù)據(jù)轉(zhuǎn)換為相應(yīng)的十進(jìn)制數(shù),然后再將十進(jìn)據(jù)轉(zhuǎn)換為相應(yīng)的十進(jìn)制數(shù),然后再將十進(jìn)制數(shù)轉(zhuǎn)換為其他進(jìn)制數(shù)。制數(shù)轉(zhuǎn)換為其他進(jìn)制數(shù)。l由于由于二進(jìn)制、八進(jìn)制和十六進(jìn)制之間二進(jìn)制、八進(jìn)制和十六進(jìn)制之間存在存在特殊關(guān)系,即特殊關(guān)系,即8=23,16=24,因此轉(zhuǎn)換方法,因此轉(zhuǎn)換方法就比較容易就比較容易特殊關(guān)系特殊關(guān)系l1位二進(jìn)制數(shù)相當(dāng)于位二進(jìn)制數(shù)相當(dāng)于1位二進(jìn)制數(shù)位二進(jìn)制數(shù) l1位四進(jìn)制數(shù)相當(dāng)于位四進(jìn)制數(shù)相當(dāng)于2位二進(jìn)制數(shù)位二進(jìn)制數(shù) 22l1位八進(jìn)制數(shù)相當(dāng)于位八進(jìn)制數(shù)相當(dāng)于3位二進(jìn)制數(shù)位二進(jìn)制數(shù) 23l1位十六進(jìn)制數(shù)相當(dāng)于位十六進(jìn)制數(shù)相當(dāng)于4
6、位二進(jìn)制數(shù)位二進(jìn)制數(shù) 24特殊關(guān)系基本對(duì)照表特殊關(guān)系基本對(duì)照表二進(jìn)制 八進(jìn)制 二進(jìn)制 十六進(jìn)制 二進(jìn)制 十六進(jìn)制 000 0 0000 0 1000 8 001 1 0001 1 1001 9 010 2 0010 2 1010 a 011 3 0011 3 1011 b 100 4 0100 4 1100 c 101 5 0101 5 1101 d 110 6 0110 6 1110 e 111 7 0111 7 1111 fl二進(jìn)制轉(zhuǎn)換到八進(jìn)制二進(jìn)制轉(zhuǎn)換到八進(jìn)制 只需將二進(jìn)制數(shù)只需將二進(jìn)制數(shù)從右向左從右向左每每3位一組(最位一組(最后不足后不足3位補(bǔ)零),根據(jù)基本對(duì)照表,從左位補(bǔ)零),根據(jù)
7、基本對(duì)照表,從左向右即可完成轉(zhuǎn)換。向右即可完成轉(zhuǎn)換。l二進(jìn)制同十六進(jìn)制之間的轉(zhuǎn)換二進(jìn)制同十六進(jìn)制之間的轉(zhuǎn)換:4位一組位一組l反之,可以轉(zhuǎn)換為二進(jìn)制反之,可以轉(zhuǎn)換為二進(jìn)制其他相關(guān)內(nèi)容其他相關(guān)內(nèi)容l參考參考1.1.2有關(guān)位的知識(shí)以及計(jì)算機(jī)中數(shù)值的有關(guān)位的知識(shí)以及計(jì)算機(jī)中數(shù)值的編碼表示方法編碼表示方法l內(nèi)存是以內(nèi)存是以2的指數(shù)(的指數(shù)(0123.)個(gè)字節(jié)為個(gè)字節(jié)為單位的連續(xù)的存儲(chǔ)空間,每個(gè)內(nèi)存單元有單位的連續(xù)的存儲(chǔ)空間,每個(gè)內(nèi)存單元有一個(gè)唯一的編號(hào),即地址一個(gè)唯一的編號(hào),即地址l一個(gè)字節(jié)由一個(gè)字節(jié)由8個(gè)二進(jìn)制位組成個(gè)二進(jìn)制位組成l最右邊的一位稱為最右邊的一位稱為“最低位最低位”,最左邊的,最左邊的一
8、位稱為一位稱為“最高位最高位”。l每一個(gè)二進(jìn)制位的值是每一個(gè)二進(jìn)制位的值是0或或1。l以最高位作為以最高位作為符號(hào)位符號(hào)位l為為0表示正數(shù),為表示正數(shù),為1表示負(fù)數(shù)。表示負(fù)數(shù)。l表示數(shù)值,可采用不同的編碼方法,表示數(shù)值,可采用不同的編碼方法,一般有:一般有:原碼、反碼和補(bǔ)碼原碼、反碼和補(bǔ)碼。 原碼原碼l符號(hào)位為符號(hào)位為0代表正數(shù),為代表正數(shù),為1代表負(fù)數(shù),其余代表負(fù)數(shù),其余各位代表數(shù)值本身的各位代表數(shù)值本身的絕對(duì)值絕對(duì)值l+0和和 0是同一個(gè)數(shù)是同一個(gè)數(shù)0,而在內(nèi)存中卻有兩,而在內(nèi)存中卻有兩個(gè)不同的表示個(gè)不同的表示 。l0000000000000000l1000000000000000l由于由
9、于0的表示方法的表示方法不唯一不唯一,不適合計(jì)算機(jī),不適合計(jì)算機(jī)的運(yùn)算。的運(yùn)算。反碼反碼l正數(shù)的反碼與原碼相同。正數(shù)的反碼與原碼相同。l而負(fù)數(shù)的反碼是:原碼除符號(hào)位外(仍為而負(fù)數(shù)的反碼是:原碼除符號(hào)位外(仍為1),),各位取反各位取反。l+0的反碼是:的反碼是:0000000000000000l 0的反碼是:的反碼是:1111111111111111l同樣,同樣,0的表示不唯一。所以在計(jì)算機(jī)內(nèi)的表示不唯一。所以在計(jì)算機(jī)內(nèi)部一般也不使用反碼來表示數(shù)。部一般也不使用反碼來表示數(shù)。補(bǔ)碼補(bǔ)碼l正數(shù)的補(bǔ)碼與原碼相同。正數(shù)的補(bǔ)碼與原碼相同。l而負(fù)數(shù)的補(bǔ)碼是:除最高位仍為而負(fù)數(shù)的補(bǔ)碼是:除最高位仍為1外,外
10、,原原碼的其余各位求反(即反碼)碼的其余各位求反(即反碼),再加,再加1。 l用補(bǔ)碼形式表示數(shù)值用補(bǔ)碼形式表示數(shù)值0時(shí),是唯一的:時(shí),是唯一的: 0000000000000000l計(jì)算機(jī)通常都是以計(jì)算機(jī)通常都是以補(bǔ)碼形式補(bǔ)碼形式存放數(shù)。存放數(shù)。l不僅數(shù)值表示唯一,而且能將符號(hào)位不僅數(shù)值表示唯一,而且能將符號(hào)位與其他位統(tǒng)一處理。與其他位統(tǒng)一處理。l在計(jì)算機(jī)中可以使在計(jì)算機(jī)中可以使減法變?yōu)榧臃p法變?yōu)榧臃ǎ瑸?,為硬件?shí)現(xiàn)提供方便。硬件實(shí)現(xiàn)提供方便。主要內(nèi)容主要內(nèi)容數(shù)據(jù)類型數(shù)據(jù)類型常量常量變量變量運(yùn)算符與表達(dá)式運(yùn)算符與表達(dá)式類型轉(zhuǎn)換類型轉(zhuǎn)換運(yùn)算的優(yōu)先級(jí)與結(jié)合性等運(yùn)算的優(yōu)先級(jí)與結(jié)合性等數(shù)據(jù)類型l數(shù)據(jù)類
11、型是一個(gè)抽象的概念,包含有一組數(shù)據(jù)類型是一個(gè)抽象的概念,包含有一組數(shù)據(jù)(值)數(shù)據(jù)(值)的定義和對(duì)該組數(shù)據(jù)能夠進(jìn)行的定義和對(duì)該組數(shù)據(jù)能夠進(jìn)行的的操作(運(yùn)算)操作(運(yùn)算)的定義。的定義。l對(duì)數(shù)據(jù)類型的使用,必須通過類型的實(shí)際對(duì)數(shù)據(jù)類型的使用,必須通過類型的實(shí)際例子例子(實(shí)例實(shí)例/實(shí)體,即變量或常量實(shí)體,即變量或常量)來體現(xiàn)。來體現(xiàn)。l程序中,數(shù)據(jù)僅以程序中,數(shù)據(jù)僅以變量或常量變量或常量的形式表示的形式表示c語言的數(shù)據(jù)類型語言的數(shù)據(jù)類型數(shù)組類型數(shù)組類型結(jié)構(gòu)類型結(jié)構(gòu)類型 structstruct聯(lián)合類型聯(lián)合類型基本類型基本類型整型整型字符型字符型實(shí)型(浮點(diǎn)型)實(shí)型(浮點(diǎn)型)單精度實(shí)型單精度實(shí)型 flo
12、atfloat雙精度實(shí)型雙精度實(shí)型 doublec語言的數(shù)據(jù)類型語言的數(shù)據(jù)類型l基本數(shù)據(jù)類型基本數(shù)據(jù)類型較簡單,是語言(編譯器)較簡單,是語言(編譯器)已經(jīng)定義好的類型,可直接使用;已經(jīng)定義好的類型,可直接使用;l構(gòu)造類型構(gòu)造類型是由基本數(shù)據(jù)類型或其他構(gòu)造類是由基本數(shù)據(jù)類型或其他構(gòu)造類型型組織組織而成的,是程序員而成的,是程序員自自己己定義的類型定義的類型l指針在指針在c語言中極為普遍,指針提供了動(dòng)語言中極為普遍,指針提供了動(dòng)態(tài)處理變量的能力,是態(tài)處理變量的能力,是c語言的語言的精髓精髓。第第2章章 第第4章章第第5章章2.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型l基本數(shù)據(jù)類型是其他類型的基礎(chǔ)基本數(shù)據(jù)類型
13、是其他類型的基礎(chǔ)整型、字符型、浮點(diǎn)型整型、字符型、浮點(diǎn)型l基本類型基本類型數(shù)據(jù)數(shù)據(jù)是程序處理的基本對(duì)象是程序處理的基本對(duì)象l不同的數(shù)據(jù)類型的數(shù)據(jù)具有不同的不同的數(shù)據(jù)類型的數(shù)據(jù)具有不同的取取 值范圍值范圍和允許的操作。和允許的操作。思考思考l為什么為什么c語言不提供語言不提供布爾類型布爾類型?2.1.1 整型整型l整型的基本類型名為整型的基本類型名為int。l根據(jù)數(shù)值的范圍又可分為根據(jù)數(shù)值的范圍又可分為普通整型普通整型(int)、)、短整型短整型 (short int或或short)和)和長整型長整型(long int或或long)。)。l根據(jù)整型值是否帶符號(hào)位來分類,可以分根據(jù)整型值是否帶符號(hào)
14、位來分類,可以分為無符號(hào)整型(為無符號(hào)整型( unsigned )和帶符號(hào)整)和帶符號(hào)整型型(signed可以省略可以省略) 。類型與類型名類型與類型名有符號(hào)基本整型有符號(hào)基本整型有符號(hào)短整型有符號(hào)短整型有符號(hào)長整型有符號(hào)長整型無符號(hào)基本整型無符號(hào)基本整型無符號(hào)短整型無符號(hào)短整型無符號(hào)長整型無符號(hào)長整型( signed) int (signed ) short ( int )( signed ) long ( int )unsigned intunsigned short ( int )unsigned long ( int )整型整型l需要注意的是,標(biāo)準(zhǔn)需要注意的是,標(biāo)準(zhǔn)c沒有具體規(guī)定以上沒
15、有具體規(guī)定以上各類數(shù)據(jù)所占內(nèi)存字節(jié)數(shù)。各類數(shù)據(jù)所占內(nèi)存字節(jié)數(shù)。l只要求只要求long型數(shù)據(jù)長度不短于型數(shù)據(jù)長度不短于int型,型,short型不長于型不長于int型。型。l具體如何實(shí)現(xiàn),由各計(jì)算機(jī)系統(tǒng)和編譯系具體如何實(shí)現(xiàn),由各計(jì)算機(jī)系統(tǒng)和編譯系統(tǒng)決定。統(tǒng)決定。整型整型l如在如在turbo c 2.0中,一個(gè)中,一個(gè)int型和一個(gè)型和一個(gè)short型數(shù)據(jù)分別占用型數(shù)據(jù)分別占用2個(gè)字節(jié)(個(gè)字節(jié)(16位)的位)的內(nèi)存空間,一個(gè)內(nèi)存空間,一個(gè)long型數(shù)據(jù)占用型數(shù)據(jù)占用4個(gè)字節(jié)個(gè)字節(jié)(32位)的內(nèi)存空間;位)的內(nèi)存空間;l而在而在visual c+ 6.0中,一個(gè)中,一個(gè)short型數(shù)據(jù)型數(shù)據(jù)占用占用
16、2個(gè)字節(jié)的內(nèi)存空間,一個(gè)個(gè)字節(jié)的內(nèi)存空間,一個(gè)int型數(shù)據(jù)型數(shù)據(jù)和一個(gè)和一個(gè)long型數(shù)據(jù)分別都占用型數(shù)據(jù)分別都占用4個(gè)字節(jié)的個(gè)字節(jié)的內(nèi)存空間。內(nèi)存空間。常用存儲(chǔ)容量常用存儲(chǔ)容量1b=8bit=1字節(jié)字節(jié)1kb=1024b1mb=1024kb (百萬、兆)1gb=1024mb (十億、千兆)1tb=1024gb (萬億、百萬兆 )整型整型l根據(jù)整型數(shù)據(jù)所占的位數(shù),可以計(jì)算一個(gè)根據(jù)整型數(shù)據(jù)所占的位數(shù),可以計(jì)算一個(gè)整型數(shù)據(jù)能表示的數(shù)據(jù)的整型數(shù)據(jù)能表示的數(shù)據(jù)的取值范圍取值范圍。l超出最大值:超出最大值:溢出溢出。 l以以int(有符號(hào)普通整型)為例計(jì)算取值范(有符號(hào)普通整型)為例計(jì)算取值范圍。在圍。
17、在visual c+ 6.0中,普通整型占中,普通整型占32位,位,即即4個(gè)字節(jié)。個(gè)字節(jié)。存儲(chǔ)方式存儲(chǔ)方式l 0 1 31l第第0位是位是符號(hào)位:符號(hào)位:0:正整數(shù),最大為正整數(shù),最大為231 1,即,即2147483647。1:負(fù)整數(shù),負(fù)整數(shù),1到到31位全為位全為0時(shí)表示的數(shù)最小時(shí)表示的數(shù)最?。?231的的補(bǔ)碼補(bǔ)碼)。最小整數(shù)是。最小整數(shù)是 231turbo c2.0中中類型類型 字節(jié)數(shù)字節(jié)數(shù) 數(shù)值范圍數(shù)值范圍short 2 215(215 1) unsigned short 2 0(216 1) int 2 215(215 1) unsigned 2 0 216 long 4 231(2
18、31 1) unsigned long 4 0(232 1) visual c+ 6.0類型類型 字節(jié)數(shù)字節(jié)數(shù) 數(shù)值范圍數(shù)值范圍short 2 215(215-1) unsigned short 2 0(216-1) int 4 231(231-1)unsigned 4 0(232-1) long 4 231(231-1)unsigned long 4 0(232 1) 2.1.2 浮點(diǎn)型浮點(diǎn)型l標(biāo)準(zhǔn)標(biāo)準(zhǔn)c語言中,浮點(diǎn)型數(shù)分為單精度型語言中,浮點(diǎn)型數(shù)分為單精度型(float)、雙精度型()、雙精度型(double)和長雙精)和長雙精度型(度型(long double)浮點(diǎn)數(shù)三類。)浮點(diǎn)數(shù)三類。
19、l一個(gè)一個(gè)float型數(shù)據(jù)占用型數(shù)據(jù)占用4個(gè)字節(jié)的內(nèi)存空間,個(gè)字節(jié)的內(nèi)存空間,一個(gè)一個(gè)double型數(shù)據(jù)占用型數(shù)據(jù)占用8個(gè)字節(jié)的內(nèi)存空個(gè)字節(jié)的內(nèi)存空間,一個(gè)間,一個(gè)long double型數(shù)據(jù)占用型數(shù)據(jù)占用16個(gè)字節(jié)個(gè)字節(jié)(128位)的內(nèi)存空間。位)的內(nèi)存空間。有效位數(shù)l浮點(diǎn)型數(shù)據(jù)的取值范圍和值的浮點(diǎn)型數(shù)據(jù)的取值范圍和值的精度精度與與所用的所用的機(jī)器有關(guān)機(jī)器有關(guān)。l有效位數(shù):是該數(shù)中有效數(shù)字的個(gè)數(shù),有效位數(shù):是該數(shù)中有效數(shù)字的個(gè)數(shù),指從該數(shù)左方第一個(gè)非零數(shù)字算起到指從該數(shù)左方第一個(gè)非零數(shù)字算起到最末一個(gè)數(shù)字(包括中間的零)的個(gè)最末一個(gè)數(shù)字(包括中間的零)的個(gè)數(shù),它不取決于小數(shù)點(diǎn)的位置。數(shù),它不
20、取決于小數(shù)點(diǎn)的位置。 l浮點(diǎn)型數(shù)據(jù)是按照浮點(diǎn)型數(shù)據(jù)是按照指數(shù)形式指數(shù)形式存儲(chǔ)的。存儲(chǔ)的。l系統(tǒng)把一個(gè)浮點(diǎn)型數(shù)據(jù)表示為小數(shù)部系統(tǒng)把一個(gè)浮點(diǎn)型數(shù)據(jù)表示為小數(shù)部分和指數(shù)部分,分別存放。分和指數(shù)部分,分別存放。數(shù)值范圍數(shù)值范圍類型類型 字節(jié)數(shù)字節(jié)數(shù) 有效位數(shù)有效位數(shù)float 4 7 數(shù)值范圍數(shù)值范圍 3.410383.41038階的范圍階的范圍 3838思考思考l最接近最接近0的正的的正的float型數(shù)據(jù)是?型數(shù)據(jù)是?數(shù)值范圍數(shù)值范圍類型類型 字節(jié)數(shù)字節(jié)數(shù) 有效位數(shù)有效位數(shù)double 8 16 數(shù)值范圍數(shù)值范圍 1.7103081.710308階的范圍階的范圍 308308數(shù)值范圍數(shù)值范圍類型類型
21、 字節(jié)數(shù)字節(jié)數(shù) 有效位數(shù)有效位數(shù)long double 16 1819 數(shù)值范圍數(shù)值范圍 1.21049321.2104932階的范圍階的范圍 493249322.1.3 字符型字符型lc語言中,字符型的基本類型名為語言中,字符型的基本類型名為char。l以以1個(gè)字節(jié)(個(gè)字節(jié)(8位)來存放一個(gè)字符位)來存放一個(gè)字符l有符號(hào)字符型數(shù)據(jù)的取值是有符號(hào)字符型數(shù)據(jù)的取值是 128127l無符號(hào)字符型數(shù)據(jù)的取值是無符號(hào)字符型數(shù)據(jù)的取值是02552.2 常量常量l常量是在程序執(zhí)行過程中常量是在程序執(zhí)行過程中值不變值不變的數(shù)據(jù)。的數(shù)據(jù)。l如圓周率如圓周率 的值、字母的值、字母b在在asc碼字符集碼字符集中的
22、編碼值等,這類數(shù)據(jù)就稱為常量。中的編碼值等,這類數(shù)據(jù)就稱為常量。l數(shù)值常量:整型常量、浮點(diǎn)數(shù)常量數(shù)值常量:整型常量、浮點(diǎn)數(shù)常量l字符型常量:字符型常量: 字符常量、字符串常量、轉(zhuǎn)義字符字符常量、字符串常量、轉(zhuǎn)義字符l符號(hào)常量符號(hào)常量2.2.1 整型常量整型常量常用的三種不同的數(shù)制常用的三種不同的數(shù)制十進(jìn)制十進(jìn)制 八進(jìn)制八進(jìn)制 十六進(jìn)制十六進(jìn)制65 0101 0 x41125 0175 0 x7d長整型:長整型:-56l;3567l;04l無符號(hào)整型:無符號(hào)整型:586u;077765u;0 xfffdu無符號(hào)長整型:無符號(hào)長整型:0375ul;0 x45feul例2.1 整數(shù)的不同進(jìn)制數(shù)表示m
23、ain( ) printf(%d %x %on,125,125,125); printf(%d %x %on,045,045,045); printf(%d %x %on,0 x32,0 x32,0 x32); 執(zhí)行結(jié)果執(zhí)行結(jié)果: 125 7d 175 37 25 45 50 32 622.2.2 浮點(diǎn)數(shù)常量浮點(diǎn)數(shù)常量l浮點(diǎn)數(shù)在程序中只能以十進(jìn)制數(shù)表示。浮點(diǎn)數(shù)在程序中只能以十進(jìn)制數(shù)表示。 小數(shù)形式:小數(shù)形式: 3.141 -25.3 23. .45 指數(shù)形式指數(shù)形式:l (整數(shù)部分整數(shù)部分).(小數(shù)部分小數(shù)部分)e( 或或e)(指數(shù)部分指數(shù)部分) 注意注意:字母字母e(或或e)之前必須有數(shù)字,
24、且之前必須有數(shù)字,且e后面的指后面的指數(shù)必須為整數(shù)數(shù)必須為整數(shù) 非法浮點(diǎn)數(shù)非法浮點(diǎn)數(shù) 3.14e7.8 ; 12.34 e8; 12,345e-22.2.3 字符常量字符常量字符常量是指用單引號(hào)括起來的一個(gè)字符。字符常量是指用單引號(hào)括起來的一個(gè)字符。字符按對(duì)應(yīng)的字符按對(duì)應(yīng)的ascii碼值存儲(chǔ),占一個(gè)字節(jié)碼值存儲(chǔ),占一個(gè)字節(jié) a:97 a:65 9: 57 0:48字符常量可以作為整數(shù)參與運(yùn)算字符常量可以作為整數(shù)參與運(yùn)算a-32 等價(jià)于等價(jià)于 97-32=65 9-9 等價(jià)于等價(jià)于 57-9=48 a+32 等價(jià)于等價(jià)于 65+32=97例例 大小寫字母的轉(zhuǎn)換大小寫字母的轉(zhuǎn)換#include v
25、oid main() char c1,c2; c1=a; c2=c; printf(“c c ” ,c1+32,c2-32); 轉(zhuǎn)義字符轉(zhuǎn)義字符l還有一種特殊形式的字符常量,以一個(gè)還有一種特殊形式的字符常量,以一個(gè)開頭的字符序列:轉(zhuǎn)義(開頭的字符序列:轉(zhuǎn)義(escape)字符)字符l轉(zhuǎn)義字符,在屏幕上不能顯示,在程序中轉(zhuǎn)義字符,在屏幕上不能顯示,在程序中也無法用一個(gè)一般形式的字符表示,只能也無法用一個(gè)一般形式的字符表示,只能采用特殊形式來表示。采用特殊形式來表示。lc語言中,轉(zhuǎn)義字符有三種:簡單轉(zhuǎn)義字語言中,轉(zhuǎn)義字符有三種:簡單轉(zhuǎn)義字符、八進(jìn)制轉(zhuǎn)義字符和十六進(jìn)制轉(zhuǎn)義字符符、八進(jìn)制轉(zhuǎn)義字符和十六
26、進(jìn)制轉(zhuǎn)義字符轉(zhuǎn)義字符轉(zhuǎn)義字符 含含 義義 ascii代碼代碼 n換行,將當(dāng)前位置移到下一行開頭換行,將當(dāng)前位置移到下一行開頭 10t 水平制表(跳到下一個(gè)水平制表(跳到下一個(gè)tab位置)位置) 9b 退格,將當(dāng)前位置移到前一列退格,將當(dāng)前位置移到前一列 8r 回車,將當(dāng)前位置移到本行開頭回車,將當(dāng)前位置移到本行開頭 13f 換頁,將當(dāng)前位置移到下頁開頭換頁,將當(dāng)前位置移到下頁開頭 12a發(fā)出鈴聲發(fā)出鈴聲 7 代表一個(gè)反斜杠字符代表一個(gè)反斜杠字符“”92代表一個(gè)單撇號(hào)字符代表一個(gè)單撇號(hào)字符 39” 代表一個(gè)雙撇號(hào)字符代表一個(gè)雙撇號(hào)字符34ddd 1到到3位八進(jìn)制數(shù)對(duì)應(yīng)字符位八進(jìn)制數(shù)對(duì)應(yīng)字符xhh
27、1到到2位十六進(jìn)制數(shù)對(duì)應(yīng)字符位十六進(jìn)制數(shù)對(duì)應(yīng)字符八進(jìn)制轉(zhuǎn)義字符和十六進(jìn)制轉(zhuǎn)義字符八進(jìn)制轉(zhuǎn)義字符和十六進(jìn)制轉(zhuǎn)義字符用用ddd 或或xhh形式可以表示任意字符形式可以表示任意字符 a 65 101 x41 5 53 065 x35 234 352 xea2.2.4 字符串常量字符串常量l用一對(duì)用一對(duì)雙引號(hào)雙引號(hào)括起來的零個(gè)或多個(gè)字括起來的零個(gè)或多個(gè)字符的序列。如:符的序列。如:“hello” “b” “$43.23”l字符串常量與字符常量的存儲(chǔ)不同字符串常量與字符常量的存儲(chǔ)不同lc編譯程序在存儲(chǔ)字符串常量時(shí)自動(dòng)在編譯程序在存儲(chǔ)字符串常量時(shí)自動(dòng)在其末尾加上其末尾加上null 或或0 (ascii碼值
28、為碼值為0)作為字符串作為字符串結(jié)束標(biāo)志結(jié)束標(biāo)志l“china” 長度為長度為5, 需要占需要占6個(gè)字節(jié)個(gè)字節(jié)l c h i n a null09711210510467區(qū)別區(qū)別 b 和和 “b” “” 和和 “ ” 2.2.5 符號(hào)常量符號(hào)常量l便于程序調(diào)試和修改,將常量定義為一個(gè)便于程序調(diào)試和修改,將常量定義為一個(gè)標(biāo)識(shí)符標(biāo)識(shí)符,稱為稱為符號(hào)常量符號(hào)常量。通常用大寫表示。通常用大寫表示。 #define max 1024 #define star * const float pi=3.1415926; /c99方式方式 int const numb=1024; /c99方式方式常量的存儲(chǔ)常量
29、的存儲(chǔ)l內(nèi)存中安排常量數(shù)據(jù)存儲(chǔ)區(qū)內(nèi)存中安排常量數(shù)據(jù)存儲(chǔ)區(qū)l按照常量在程序中的出現(xiàn)順序(重復(fù)按照常量在程序中的出現(xiàn)順序(重復(fù)出現(xiàn)的常量,僅僅存放一次),依次出現(xiàn)的常量,僅僅存放一次),依次存放各個(gè)常量存放各個(gè)常量(二進(jìn)制機(jī)器數(shù)形式二進(jìn)制機(jī)器數(shù)形式);l只能使用常量,不能夠改變常量的值只能使用常量,不能夠改變常量的值2.3 變量變量l值可以改變值可以改變的數(shù)據(jù)。的數(shù)據(jù)。l變量代表內(nèi)存中的一個(gè)變量代表內(nèi)存中的一個(gè)(或多個(gè)或多個(gè))存儲(chǔ)存儲(chǔ)單元,單元內(nèi)容就是變量的值。單元,單元內(nèi)容就是變量的值。l需要給變量取個(gè)名字需要給變量取個(gè)名字l使用使用標(biāo)識(shí)符標(biāo)識(shí)符代表變量代表變量(變量名變量名)l標(biāo)識(shí)符:以字母和
30、標(biāo)識(shí)符:以字母和 “_”開頭的;開頭的;字母、數(shù)字和字母、數(shù)字和“_”組成的串組成的串l一般用小寫字母一般用小寫字母l不能與關(guān)鍵字同名。不能與關(guān)鍵字同名。2.3.1 變量定義變量定義l變量必須變量必須先定義后使用先定義后使用。定義格式為。定義格式為 數(shù)據(jù)類型名數(shù)據(jù)類型名 變量名表;變量名表;l例如:例如: int num; char ch1, ch2; double length,result,sum; 以逗號(hào)分開的變量列表以逗號(hào)分開的變量列表2.3.2 變量的初始化變量的初始化l定義變量時(shí)可以對(duì)變量賦初值。例如:定義變量時(shí)可以對(duì)變量賦初值。例如: int num2, num3=100; ch
31、ar ch1=b,ch2; float r=2.345;變量的存儲(chǔ)變量的存儲(chǔ)l內(nèi)存中(按照函數(shù)的調(diào)用順序動(dòng)態(tài)地)內(nèi)存中(按照函數(shù)的調(diào)用順序動(dòng)態(tài)地)安排變量數(shù)據(jù)存儲(chǔ)區(qū)安排變量數(shù)據(jù)存儲(chǔ)區(qū)l按照變量在程序中的出現(xiàn)順序,依次按照變量在程序中的出現(xiàn)順序,依次存放各個(gè)變量;存放各個(gè)變量;l可以使用變量,也能夠改變變量的值可以使用變量,也能夠改變變量的值2.3.3 變量地址變量地址l 存放變量的內(nèi)存空間中的首單元地存放變量的內(nèi)存空間中的首單元地址稱為變量地址址稱為變量地址l內(nèi)存空間存放的內(nèi)容稱為變量的值。內(nèi)存空間存放的內(nèi)容稱為變量的值。 &a2500h| 2501h|- 1250 - a=1250 &b25
32、02h| 2503h|- - 2504h|- - 2505h|-123.67 - b=123.67 2506h| 變量名、變量值、變量地址間的關(guān)系變量名、變量值、變量地址間的關(guān)系例如:例如: int a=1250; float b=123.67;2.4 運(yùn)算符與表達(dá)式運(yùn)算符與表達(dá)式lc語言的運(yùn)算符范圍很寬,把除了語言的運(yùn)算符范圍很寬,把除了控制語句和輸入輸出以外的控制語句和輸入輸出以外的幾乎所幾乎所有的基本操作都作為運(yùn)算符處理有的基本操作都作為運(yùn)算符處理。lc的運(yùn)算符可分為的運(yùn)算符可分為算術(shù)運(yùn)算符算術(shù)運(yùn)算符、賦賦值運(yùn)算符值運(yùn)算符、關(guān)系運(yùn)算符關(guān)系運(yùn)算符等。等。l按運(yùn)算對(duì)象(操作數(shù))的數(shù)目可將按運(yùn)
33、算對(duì)象(操作數(shù))的數(shù)目可將c的運(yùn)算符分為的運(yùn)算符分為l單目運(yùn)算符、雙目運(yùn)算符單目運(yùn)算符、雙目運(yùn)算符和和三目運(yùn)算三目運(yùn)算符(僅有符(僅有1個(gè))個(gè))語言的運(yùn)算符 算術(shù)運(yùn)算符算術(shù)運(yùn)算符 + - * / % + - 關(guān)系運(yùn)算符關(guān)系運(yùn)算符 !邏輯運(yùn)算符邏輯運(yùn)算符 ! | 位運(yùn)算符位運(yùn)算符 | 賦值運(yùn)算符賦值運(yùn)算符 及其擴(kuò)展賦值運(yùn)算符及其擴(kuò)展賦值運(yùn)算符 條件運(yùn)算符條件運(yùn)算符 ?:?: 逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符 , 語言的運(yùn)算符(8)指針運(yùn)算符指針運(yùn)算符 * (9)求字節(jié)數(shù)運(yùn)算符求字節(jié)數(shù)運(yùn)算符 sizeof (10)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符強(qiáng)制類型轉(zhuǎn)換運(yùn)算符 (類型)類型) (11)分量運(yùn)算符分量運(yùn)算符 - (12)
34、下標(biāo)運(yùn)算符下標(biāo)運(yùn)算符 (13) 函數(shù)調(diào)用運(yùn)算符()函數(shù)調(diào)用運(yùn)算符()表達(dá)式定義(遞歸方法)l單個(gè)常量或變量就是一個(gè)表達(dá)式單個(gè)常量或變量就是一個(gè)表達(dá)式l將表達(dá)式通過將表達(dá)式通過運(yùn)算符運(yùn)算符進(jìn)行連接,得到進(jìn)行連接,得到新的表達(dá)式新的表達(dá)式l表達(dá)式中的運(yùn)算符有表達(dá)式中的運(yùn)算符有優(yōu)先級(jí)優(yōu)先級(jí)和和結(jié)合性結(jié)合性的限制的限制l可以使用可以使用()()改變改變優(yōu)先級(jí)和結(jié)合性優(yōu)先級(jí)和結(jié)合性c語言的表達(dá)式語言的表達(dá)式(1)算術(shù)表達(dá)式算術(shù)表達(dá)式 (2)關(guān)系表達(dá)式關(guān)系表達(dá)式 (3)邏輯表達(dá)式邏輯表達(dá)式 (4)賦值表達(dá)式賦值表達(dá)式 (5)逗號(hào)表達(dá)式逗號(hào)表達(dá)式2.4.1算術(shù)運(yùn)算符和算術(shù)表達(dá)式 l1. 雙目運(yùn)算雙目運(yùn)算加加
35、+ 10+5=15減減- 10-5=5乘乘* 10*5=50除除/ 30/4=7 30.0/4=7.5取余取余% 14%3=2; 25%8=12 單目運(yùn)算單目運(yùn)算自增自增 a+ 或或 +a 等效于等效于 a=a+1 自減自減 a- 或或 -a 等效于等效于 a=a-1取負(fù)取負(fù) -a注意注意: 單目運(yùn)算的單目運(yùn)算的“前置前置”和和“后置后置”的的區(qū)別區(qū)別“前置前置” 變量先增值變量先增值(或先減值或先減值),后被使用后被使用“后置后置” 變量先被使用變量先被使用,后增值后增值(或后減值或后減值)l自增運(yùn)算符和自減運(yùn)算符只能用于變量,自增運(yùn)算符和自減運(yùn)算符只能用于變量,而不能用于常量或表達(dá)式,而不
36、能用于常量或表達(dá)式,l結(jié)合方向是結(jié)合方向是“自右至左自右至左”。l為避免二義性,最好采取大家都能理解的為避免二義性,最好采取大家都能理解的寫法,可以加一些寫法,可以加一些“不必要不必要”的括號(hào),如的括號(hào),如(i+)+j。 int x, y, i=25; x=-i; /* 相當(dāng)于相當(dāng)于: i=i-1; x=i; */ y=i;結(jié)果是結(jié)果是: x=24, y=24; int x, y, i=25; x=i-; /* 相當(dāng)于相當(dāng)于: x=i; i=i-1; */ y=i;結(jié)果是結(jié)果是: x=25, y=24;算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性算術(shù)表達(dá)式和運(yùn)算符的優(yōu)先級(jí)與結(jié)合性 l將表達(dá)式通過將表達(dá)式
37、通過算術(shù)運(yùn)算符算術(shù)運(yùn)算符進(jìn)行連接進(jìn)行連接l先取負(fù)先取負(fù) ,再再 * / % 后后 + -l結(jié)合方向?yàn)榻Y(jié)合方向?yàn)椤白宰笾劣易宰笾劣摇眑可以使用可以使用( )改變優(yōu)先級(jí)和結(jié)合性改變優(yōu)先級(jí)和結(jié)合性 (ij)*k (i+j)*k 2.4.2 賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符和賦值表達(dá)式 賦值是指將表達(dá)式的值賦給一個(gè)變量賦值是指將表達(dá)式的值賦給一個(gè)變量 = x=18 x=5*2+y num=x*(a+b) 賦值表達(dá)式可以連用賦值表達(dá)式可以連用(右結(jié)合右結(jié)合) x=y=z=100賦值表達(dá)式賦值表達(dá)式l賦值運(yùn)算符比算術(shù)運(yùn)算符的優(yōu)先級(jí)賦值運(yùn)算符比算術(shù)運(yùn)算符的優(yōu)先級(jí)低低l賦值表達(dá)式的值賦值表達(dá)式的值等于表達(dá)式的
38、值等于表達(dá)式的值l如果賦值運(yùn)算符右邊值的類型與左邊變量如果賦值運(yùn)算符右邊值的類型與左邊變量的類型不一致,需要把右邊值的類型轉(zhuǎn)換的類型不一致,需要把右邊值的類型轉(zhuǎn)換成左邊變量的類型(自動(dòng)完成)成左邊變量的類型(自動(dòng)完成) l可以構(gòu)成可以構(gòu)成復(fù)合賦值運(yùn)算符復(fù)合賦值運(yùn)算符(算術(shù))復(fù)合賦值運(yùn)算符加賦值加賦值a+=b等效于等效于a=a+(b)減賦值減賦值a-=b等效于等效于a=a-(b)乘賦值乘賦值a*=b等效于等效于a=a*(b)除賦值除賦值a/=b等效于等效于a=a/(b)取余賦值取余賦值 a%b等效于等效于a=a%(b)如如 x*=10+2 等效于等效于 x=x*(10+2)2.4.3關(guān)系運(yùn)算符和
39、關(guān)系表達(dá)式關(guān)系運(yùn)算符和關(guān)系表達(dá)式 6個(gè)關(guān)系運(yùn)算符,用于比較兩個(gè)運(yùn)算分量間個(gè)關(guān)系運(yùn)算符,用于比較兩個(gè)運(yùn)算分量間的大小關(guān)系。的大小關(guān)系。 大于大于 = 大于等于大于等于 小于小于 42 的結(jié)果為?的結(jié)果為?l關(guān)系運(yùn)算符關(guān)系運(yùn)算符結(jié)合性是結(jié)合性是左結(jié)合性左結(jié)合性。2.4.4 邏輯運(yùn)算符和邏輯表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式 c語言中邏輯運(yùn)算符有語言中邏輯運(yùn)算符有3個(gè)個(gè) 邏輯與邏輯與a&b 邏輯或邏輯或a|b 邏輯非邏輯非!a 關(guān)系和邏輯表達(dá)式構(gòu)成復(fù)合的邏輯關(guān)系,關(guān)系和邏輯表達(dá)式構(gòu)成復(fù)合的邏輯關(guān)系,常用于控制結(jié)構(gòu)中。常用于控制結(jié)構(gòu)中。判斷閏年的表達(dá)式為?判斷閏年的表達(dá)式為? (year%4=0)&(yea
40、r%100!=0) | (year%400=0)2.2.5位運(yùn)算符和位表達(dá)式位運(yùn)算符和位表達(dá)式 位運(yùn)算是指進(jìn)行二進(jìn)制位的運(yùn)算。位運(yùn)算是指進(jìn)行二進(jìn)制位的運(yùn)算。 c語言中,位運(yùn)算符有語言中,位運(yùn)算符有位邏輯運(yùn)算符位邏輯運(yùn)算符和和移位運(yùn)移位運(yùn)算符算符??梢酝瓿蓞R編語言的一些工作??梢酝瓿蓞R編語言的一些工作. 位邏輯運(yùn)算位邏輯運(yùn)算:移位運(yùn)算移位運(yùn)算: 按位與按位與 a&b右移位右移位 a4 按位或按位或 a|b左移位左移位 a右移位數(shù)右移位數(shù) 每右移每右移1位相當(dāng)于除以位相當(dāng)于除以2l左移位運(yùn)算左移位運(yùn)算 變量名變量名3!=x 優(yōu)先級(jí)l優(yōu)先級(jí)是指不同級(jí)別運(yùn)算符之間的運(yùn)優(yōu)先級(jí)是指不同級(jí)別運(yùn)算符之間的運(yùn)算
41、次序算次序l單目運(yùn)算符的優(yōu)先級(jí)高于雙目運(yùn)算符單目運(yùn)算符的優(yōu)先級(jí)高于雙目運(yùn)算符l雙目運(yùn)算符優(yōu)先級(jí)高于三目運(yùn)算符雙目運(yùn)算符優(yōu)先級(jí)高于三目運(yùn)算符l算術(shù)運(yùn)算符高于關(guān)系運(yùn)算符算術(shù)運(yùn)算符高于關(guān)系運(yùn)算符l關(guān)系運(yùn)算符高于邏輯運(yùn)算符關(guān)系運(yùn)算符高于邏輯運(yùn)算符l移位運(yùn)算符高于關(guān)系運(yùn)算符移位運(yùn)算符高于關(guān)系運(yùn)算符l位邏輯運(yùn)算符低于關(guān)系運(yùn)算符位邏輯運(yùn)算符低于關(guān)系運(yùn)算符l( )括號(hào)運(yùn)算符優(yōu)先級(jí)最高)括號(hào)運(yùn)算符優(yōu)先級(jí)最高l逗號(hào)運(yùn)算符優(yōu)先級(jí)最低逗號(hào)運(yùn)算符優(yōu)先級(jí)最低l賦值運(yùn)算符及復(fù)合賦值運(yùn)算符的優(yōu)先級(jí)僅賦值運(yùn)算符及復(fù)合賦值運(yùn)算符的優(yōu)先級(jí)僅高于逗號(hào)運(yùn)算符高于逗號(hào)運(yùn)算符.結(jié)合性l結(jié)合性是指在一個(gè)表達(dá)式中有多個(gè)優(yōu)結(jié)合性是指在一個(gè)表達(dá)式
42、中有多個(gè)優(yōu)先級(jí)相同的運(yùn)算符之間的運(yùn)算次序先級(jí)相同的運(yùn)算符之間的運(yùn)算次序.l右結(jié)合性右結(jié)合性 右右左左 包括包括 單目、三目和賦值運(yùn)算符單目、三目和賦值運(yùn)算符l左結(jié)合性左結(jié)合性 左左右右 其余運(yùn)算符其余運(yùn)算符優(yōu)先級(jí)優(yōu)先級(jí)結(jié)合性結(jié)合性1515 ( ) - . ( ) - . 左左右右1414 ! + - & ! + - & * * ( (類型名類型名) ) sizeofsizeof右右左左1313 * * / %/ %左左右右1212 + -+ -左左右右1111 左左右右1010 = = 左左右右9 9 = = != = !=左左右右8 8 & &左左右右7 7 左左右右6 6 | |左左右右5
43、 5 &左左右右4 4 |左左右右3 3 ?:?:右右左左2 2= = * *= /= += = /= += = =右右左左1 1 , ,左左右右例如a/b*c%d 即即(a/b)*c)%da+!b+c- 即即 (a+(!b)+(c-)i=k&ij-1 即即 (i)=k)&(i(j-1)a=b=c=5即即a=(b=(c=5)!a!(!a)實(shí)際處理方式實(shí)際處理方式 a+b+x*d 2.7 2.7 數(shù)據(jù)輸入輸出數(shù)據(jù)輸入輸出l數(shù)據(jù)是程序處理的對(duì)象;數(shù)據(jù)是程序處理的對(duì)象;l 輸入輸出操作是程序不可缺少的部分輸入輸出操作是程序不可缺少的部分l c中輸入輸出操作都是通過中輸入輸出操作都是通過函數(shù)調(diào)用函數(shù)調(diào)
44、用實(shí)現(xiàn)的實(shí)現(xiàn)的lc提供了標(biāo)準(zhǔn)提供了標(biāo)準(zhǔn)i/o: stdio.h #include 2.7.1 字符輸出函數(shù)字符輸出函數(shù)putchar()和格式輸和格式輸出函數(shù)出函數(shù)printf() l字符輸出函數(shù)字符輸出函數(shù)putchar( 參數(shù)參數(shù))l向終端輸出一個(gè)字符。參數(shù)可以是字符變向終端輸出一個(gè)字符。參數(shù)可以是字符變量、字符常量、字符量、字符常量、字符ascii碼。碼。l putchar(a);顯示大寫字母顯示大寫字母al putchar(97); 顯示小寫字母顯示小寫字母al 若若 c=! 則則 putchar(c) ; 顯示字符顯示字符! 例例#include void main( ) char
45、a,b,c; a=a; b=b; c=007; putchar(a); putchar(b); putchar(n); putchar(c) ; sleep(5); putchar(c) ; putchar(a); putchar(b); putchar(n); putchar(007); sleep(3); putchar(007); 輸出輸出: ab /*響鈴一次響鈴一次,隔隔5秒后再響鈴一次秒后再響鈴一次 ab /*響鈴一次響鈴一次,隔隔3秒后再響鈴一次秒后再響鈴一次l基本形式基本形式 printf(“控制字符串控制字符串”,輸出項(xiàng)列表輸出項(xiàng)列表);l按規(guī)定的輸出格式按規(guī)定的輸出格式,把
46、輸出項(xiàng)依次輸出把輸出項(xiàng)依次輸出到缺省輸出設(shè)備(通常為顯示器)到缺省輸出設(shè)備(通常為顯示器)l輸出項(xiàng)可以是變量、常量、或表達(dá)式;輸出項(xiàng)可以是變量、常量、或表達(dá)式;其間用逗號(hào)分隔。其間用逗號(hào)分隔。l控制字符串包括格式控制字符串包括格式控制說明符控制說明符和和普通字符普通字符。l控制說明符控制說明符 %格式字符格式字符控制說明符%c按字符型輸出按字符型輸出%d 或或 %i 按十進(jìn)制整數(shù)輸出按十進(jìn)制整數(shù)輸出%u按無符號(hào)整數(shù)輸出按無符號(hào)整數(shù)輸出%f按浮點(diǎn)型小數(shù)輸出按浮點(diǎn)型小數(shù)輸出%o按八進(jìn)制整數(shù)輸出按八進(jìn)制整數(shù)輸出%x 按十六進(jìn)制整數(shù)輸出按十六進(jìn)制整數(shù)輸出%s 按字符串輸出按字符串輸出%e或或e 按指數(shù)
47、形式輸出浮點(diǎn)型數(shù)按指數(shù)形式輸出浮點(diǎn)型數(shù) l在格式說明中,在在格式說明中,在%和格式字符間可以插和格式字符間可以插入附加符號(hào)(又稱入附加符號(hào)(又稱修飾符修飾符),可以控制輸出可以控制輸出的寬度、精度、小數(shù)位數(shù)、對(duì)齊方式等。的寬度、精度、小數(shù)位數(shù)、對(duì)齊方式等。l附加字符說明附加字符說明l輸出長整型數(shù)(與輸出長整型數(shù)(與d、o、x、u結(jié)合用)結(jié)合用)lm 指定數(shù)據(jù)輸出的寬度(即域?qū)挘┲付〝?shù)據(jù)輸出的寬度(即域?qū)挘﹍.n 對(duì)實(shí)型數(shù)據(jù),指定輸出對(duì)實(shí)型數(shù)據(jù),指定輸出 n 位小數(shù);對(duì)位小數(shù);對(duì)字符串,指定左端截取字符串,指定左端截取n 個(gè)字符輸出個(gè)字符輸出l+ 使輸出的數(shù)據(jù)無論正負(fù)都帶符號(hào)輸出使輸出的數(shù)據(jù)無論
48、正負(fù)都帶符號(hào)輸出l 使數(shù)據(jù)在輸出域內(nèi)按左對(duì)齊方式輸出使數(shù)據(jù)在輸出域內(nèi)按左對(duì)齊方式輸出l普通字符普通字符 可打印字符:直接顯示出字符可打印字符:直接顯示出字符 不可打印字符:使用轉(zhuǎn)義字符不可打印字符:使用轉(zhuǎn)義字符n, t, a例如例如: m=3; n=12; printf(“num1=%d num2=%dn”,m,n); 顯示顯示: num1=3 num2=12 printf(“%f%n”,95.6); 顯示顯示: 95.6% 2.7.2 字符輸入函數(shù)字符輸入函數(shù)getchar()和格式輸入函數(shù)和格式輸入函數(shù)scanf()字符輸入函數(shù)字符輸入函數(shù)getchar()()l無參數(shù)無參數(shù), 只能接收一
49、個(gè)字符。只能接收一個(gè)字符。l從鍵盤上輸入一個(gè)可打印字符從鍵盤上輸入一個(gè)可打印字符,函數(shù)的返回函數(shù)的返回值為該字符的值為該字符的ascii碼。碼。l通常將其通常將其返回值返回值賦于某個(gè)字符變量或整型賦于某個(gè)字符變量或整型變量。變量。例例#include void main( ) char c; c=getchar( ); putchar(c); 例:輸入一個(gè)字符,輸出其前導(dǎo)字符,例:輸入一個(gè)字符,輸出其前導(dǎo)字符,字符和后續(xù)字符字符和后續(xù)字符 #include void main( ) char c; int c1, c2; c=getchar( ); c1=c-1; c2=c+1; printf
50、(“%c%c%c ”,c1,c,c2); printf(“%d %d %dn”,c1,c,c2);輸入輸入: b 輸出輸出: abc 65 66 67程序可靠性?程序可靠性?格式輸入函數(shù)格式輸入函數(shù)scanf()l從鍵盤輸入數(shù)據(jù),按指定的輸入格式把從鍵盤輸入數(shù)據(jù),按指定的輸入格式把數(shù)據(jù)賦給相應(yīng)的輸入項(xiàng)。數(shù)據(jù)賦給相應(yīng)的輸入項(xiàng)。lscanf(“控制字符串控制字符串”,輸入項(xiàng)列表輸入項(xiàng)列表);l注意注意:接收數(shù)據(jù)的變量必須用其地址表示接收數(shù)據(jù)的變量必須用其地址表示,l輸入數(shù)據(jù)時(shí),在兩個(gè)數(shù)據(jù)間用一個(gè)或多輸入數(shù)據(jù)時(shí),在兩個(gè)數(shù)據(jù)間用一個(gè)或多個(gè)空格隔開,也可用回車鍵、跳格鍵個(gè)空格隔開,也可用回車鍵、跳格鍵tabscanf()常用的格式字符常用的格式字符%c按字符型輸入按字符型輸入%d 或或%i 按十進(jìn)制整數(shù)輸入按十進(jìn)制整數(shù)輸入
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能物流配送服務(wù)合同規(guī)范范本4篇
- 二零二五年度體育設(shè)施安全使用合同3篇
- 2025版學(xué)校食堂小吃攤位承包合同3篇
- 2025年度市場營銷策劃個(gè)人勞務(wù)合同書4篇
- 2025年度船舶貨物裝卸與倉儲(chǔ)一體化服務(wù)合同3篇
- 二零二五年度綠色能源設(shè)備安裝服務(wù)合同4篇
- 2025年度有機(jī)芒果認(rèn)證采購合同模板4篇
- 電商客服代表2025年度崗位責(zé)任合同2篇
- 石家莊2025年度物業(yè)管理合同模板
- 2025版特色小鎮(zhèn)木工欄桿設(shè)計(jì)與安裝勞務(wù)分包合同4篇
- 海外資管機(jī)構(gòu)赴上海投資指南(2024版)
- 山東省青島市2023-2024學(xué)年七年級(jí)上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 墓地銷售計(jì)劃及方案設(shè)計(jì)書
- 從偏差行為到卓越一生3.0版
- 優(yōu)佳學(xué)案七年級(jí)上冊(cè)歷史
- 鋁箔行業(yè)海外分析
- 紀(jì)委辦案安全培訓(xùn)課件
- 超市連鎖行業(yè)招商策劃
- 城市道路智慧路燈項(xiàng)目 投標(biāo)方案(技術(shù)標(biāo))
- 【公司利潤質(zhì)量研究國內(nèi)外文獻(xiàn)綜述3400字】
- 工行全國地區(qū)碼
評(píng)論
0/150
提交評(píng)論