




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1C語(yǔ)言程序設(shè)計(jì)
1C語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)學(xué)院2第2章數(shù)據(jù)類型與基本運(yùn)算
1基本數(shù)據(jù)類型常量和變量運(yùn)算符與表達(dá)式標(biāo)識(shí)符數(shù)據(jù)類型轉(zhuǎn)換基本輸入和輸出
2
3
4
5
6應(yīng)用舉例
7計(jì)算機(jī)科學(xué)學(xué)院2第2章數(shù)據(jù)類型與基本運(yùn)算1基本數(shù)據(jù)類型常計(jì)算機(jī)科學(xué)學(xué)院3回顧程序是為執(zhí)行一項(xiàng)任務(wù)而編寫(xiě)的有序指令集算法是解決問(wèn)題的具體方法和步驟流程圖是算法的圖形化表現(xiàn)形式C語(yǔ)言的特點(diǎn)C程序的編譯和運(yùn)行過(guò)程編譯器將源程序轉(zhuǎn)換成機(jī)器能理解的程序連接器用于連接相關(guān)的目標(biāo)文件以生成可執(zhí)行程序計(jì)算機(jī)科學(xué)學(xué)院3回顧程序是為執(zhí)行一項(xiàng)任務(wù)而編寫(xiě)的有序指令集計(jì)算機(jī)科學(xué)學(xué)院4本章目標(biāo)理解變量和常量的含義熟悉使用基本數(shù)據(jù)類型
-int、char、float和double使用各種運(yùn)算符理解類型轉(zhuǎn)換熟練使用scanf()和printf()函數(shù)熟練使用getchar()和putchar()函數(shù)計(jì)算機(jī)科學(xué)學(xué)院4本章目標(biāo)理解變量和常量的含義計(jì)算機(jī)科學(xué)學(xué)院52.1基本數(shù)據(jù)類型數(shù)據(jù)屬于不同類別AfricaThequickbrownfoxTRUE數(shù)據(jù)
非數(shù)值數(shù)值整型非整型9002.129999/12/20032.175123JackieChanchar數(shù)據(jù)類型非數(shù)值數(shù)值整型intshortintlongintdoublefloat非整型計(jì)算機(jī)科學(xué)學(xué)院52.1基本數(shù)據(jù)類型數(shù)據(jù)屬于不同類別Afri計(jì)算機(jī)科學(xué)學(xué)院6整型名稱全稱類型說(shuō)明符縮寫(xiě)類型說(shuō)明符位數(shù)范圍整型intint16-32768至+32767無(wú)符號(hào)整型unsignedintunsigned160至65,535短整型shortintshort16-32768至+32767無(wú)符號(hào)短整型unsignedshortintunsignedshort160至65,535長(zhǎng)整型longintlong32-2,147,483,648至2,147,483,647無(wú)符號(hào)長(zhǎng)整型unsignedlongintunsignedlong320至4,294,967,295計(jì)算機(jī)科學(xué)學(xué)院6整型名稱全稱類型說(shuō)明符縮寫(xiě)類型說(shuō)明符位數(shù)范圍計(jì)算機(jī)科學(xué)學(xué)院7單精度浮點(diǎn)型float在C
語(yǔ)言中用于存儲(chǔ)單精度浮點(diǎn)數(shù)float32位10-38
至
10+38,7位有效數(shù)字計(jì)算機(jī)科學(xué)學(xué)院7單精度浮點(diǎn)型float在C語(yǔ)言中用于計(jì)算機(jī)科學(xué)學(xué)院8雙精度浮點(diǎn)型內(nèi)存floatdouble213.5671435568967
64位取值范圍:10-308
至1030816
位有效數(shù)字計(jì)算機(jī)科學(xué)學(xué)院8雙精度浮點(diǎn)型內(nèi)存floatdouble213計(jì)算機(jī)科學(xué)學(xué)院9在線保險(xiǎn)單年齡:_____保險(xiǎn)總額:_____性別:_____字符型3-12398340'M'數(shù)值型字符型int/floatchar計(jì)算機(jī)科學(xué)學(xué)院9在線保險(xiǎn)單字符型3-12398340'M計(jì)算機(jī)科學(xué)學(xué)院10字符型3-2'''5''p''$'
有效的字符型值"2"
'2'
正確'2'+'2'=4
X值符號(hào)值符號(hào)值符號(hào)0空字符44,91[32空格45-92\33!46.93]34"47/94^35#48~570~9
95-36$58:96`37%59;97~122a~z38&60<123{39'61=124|40(62>125}41)63?126~42*64@127DEL(Delete鍵)43+65~90A~Z
計(jì)算機(jī)科學(xué)學(xué)院10字符型3-2''有效的字符型值"2"計(jì)算機(jī)科學(xué)學(xué)院11字符型3-3char占8位內(nèi)存signed或
unsignedSigned-128至
+127
unsigned0至
255計(jì)算機(jī)科學(xué)學(xué)院11字符型3-3char占8位內(nèi)存sign計(jì)算機(jī)科學(xué)學(xué)院122.2標(biāo)識(shí)符標(biāo)識(shí)符:是給程序中的實(shí)體
(變量、常量、函數(shù)、數(shù)組、結(jié)構(gòu)體以及文件等)所起的名字。系統(tǒng)定義標(biāo)識(shí)符C語(yǔ)言中的標(biāo)識(shí)符用戶定義標(biāo)識(shí)符計(jì)算機(jī)科學(xué)學(xué)院122.2標(biāo)識(shí)符標(biāo)識(shí)符:是給程序中的實(shí)體計(jì)算機(jī)科學(xué)學(xué)院13系統(tǒng)定義標(biāo)識(shí)符系統(tǒng)定義標(biāo)識(shí)符:是指具有固定名字和特定含義的標(biāo)識(shí)符,如int、for、break等。關(guān)鍵字系統(tǒng)定義標(biāo)識(shí)符預(yù)定義標(biāo)識(shí)符關(guān)鍵字:又稱保留字,是C語(yǔ)言規(guī)定的具有特定含義的標(biāo)識(shí)符。關(guān)鍵字必須用小寫(xiě)字母。計(jì)算機(jī)科學(xué)學(xué)院13系統(tǒng)定義標(biāo)識(shí)符系統(tǒng)定義標(biāo)識(shí)符:是指具有固定計(jì)算機(jī)科學(xué)學(xué)院14系統(tǒng)定義標(biāo)識(shí)符-關(guān)鍵字?jǐn)?shù)據(jù)類型存儲(chǔ)類別語(yǔ)句命令字運(yùn)算符intlong
short
char
float
double
signed
unsigned
……auto
static
register
externgoto
return
break
continue
if,elsewhile
do
for
……sizeof計(jì)算機(jī)科學(xué)學(xué)院14系統(tǒng)定義標(biāo)識(shí)符-關(guān)鍵字?jǐn)?shù)據(jù)類型存儲(chǔ)類別語(yǔ)計(jì)算機(jī)科學(xué)學(xué)院15系統(tǒng)定義標(biāo)識(shí)符-預(yù)定義標(biāo)識(shí)符12編譯預(yù)處理命令標(biāo)準(zhǔn)庫(kù)函數(shù)數(shù)學(xué)函數(shù):sqrt,fabs,sin,cos,pow等。輸入輸出函數(shù):scanf,printf,getchar,
putchar,gets,puts等。define,endef,include,ifdef,ifndef,endif,line,if,else等計(jì)算機(jī)科學(xué)學(xué)院15系統(tǒng)定義標(biāo)識(shí)符-預(yù)定義標(biāo)識(shí)符12編譯標(biāo)準(zhǔn)計(jì)算機(jī)科學(xué)學(xué)院16用戶定義標(biāo)識(shí)符1以字母或下劃線開(kāi)頭,由字母、數(shù)字和下劃線三種字符組成。2C語(yǔ)言中有32個(gè)關(guān)鍵字,每個(gè)關(guān)鍵字都代表著某一固定含義。用戶不應(yīng)采用與它們同名的標(biāo)識(shí)符。計(jì)算機(jī)科學(xué)學(xué)院16用戶定義標(biāo)識(shí)符1以字母或下劃線開(kāi)頭,由字母計(jì)算機(jī)科學(xué)學(xué)院172.3常量和變量常量變量符號(hào)常量直接常量計(jì)算機(jī)科學(xué)學(xué)院172.3常量和變量常量變量符號(hào)常量直接常量計(jì)算機(jī)科學(xué)學(xué)院18程序指令C語(yǔ)言中的基本元素標(biāo)識(shí)符關(guān)鍵字常量運(yùn)算符分隔符等常量是在程序中保持不變的量常量用于定義具有如下特點(diǎn)的數(shù)據(jù):在程序中保持不變?cè)诔绦騼?nèi)部頻繁使用需要用比較簡(jiǎn)單的方式替代某些值計(jì)算機(jī)科學(xué)學(xué)院18程序指令C語(yǔ)言中的基本元素標(biāo)識(shí)符常量是在程變量計(jì)算機(jī)科學(xué)學(xué)院19變量是在程序運(yùn)行過(guò)程中可以被改變或者可以被賦予新的值變量的名變量的值變量計(jì)算機(jī)科學(xué)學(xué)院19變量是在程序運(yùn)行過(guò)程中可以被改變或者可計(jì)算機(jī)科學(xué)學(xué)院20變量命名在C語(yǔ)言中,變量命名需要遵循一定的規(guī)則有效名稱principalcost_pricemarks_3lastnamecity無(wú)效名稱123ratecurrency$discount%zipcode變量名的命名規(guī)則:變量名可以由字母、數(shù)字和_(下劃線)組合而成變量名不能包含除_以外的任何特殊字符,如:%、#、逗號(hào)、空格等變量名必須以字母或
_(下劃線)開(kāi)頭變量名不能包含空白字符(換行符、空格和制表符稱為空白字符)C語(yǔ)言中的某些詞(例如int和float等)稱為保留字,具有特殊意義,不能用作變量名C語(yǔ)言區(qū)分大小寫(xiě),因此變量price與變量PRICE是兩個(gè)不同的變量計(jì)算機(jī)科學(xué)學(xué)院20變量命名在C語(yǔ)言中,變量命名需要遵循一計(jì)算機(jī)科學(xué)學(xué)院21變量程序內(nèi)存編寫(xiě)程序時(shí),常常需要將數(shù)據(jù)存儲(chǔ)在內(nèi)存中,方便后面使用這個(gè)數(shù)據(jù)或者修改這個(gè)數(shù)據(jù)的值。通常使用變量來(lái)存儲(chǔ)數(shù)據(jù)。使用變量可以引用存儲(chǔ)在內(nèi)存中的數(shù)據(jù),并隨時(shí)根據(jù)需要顯示數(shù)據(jù)或執(zhí)行數(shù)據(jù)操縱。存儲(chǔ)RateRate*5%將值存儲(chǔ)為DiscAmtRate-DiscAmt100.5將值存儲(chǔ)為Result9.5計(jì)算機(jī)科學(xué)學(xué)院21變量程序內(nèi)存編寫(xiě)程序時(shí),常常需要將數(shù)據(jù)存儲(chǔ)計(jì)算機(jī)科學(xué)學(xué)院22聲明和使用變量聲明變量:Datatypevariablename;定義時(shí)初始化變量:Datatypevariablename=value;定義后初始化變量:variablename=value;給變量賦值,除了給一個(gè)直接的值以外,還可以通過(guò)計(jì)算獲得。注意:變量必須先定義后使用計(jì)算機(jī)科學(xué)學(xué)院22聲明和使用變量聲明變量:給變量賦值,除了給計(jì)算機(jī)科學(xué)學(xué)院23使用整型變量聲明:intpage_number;longintpopulation;unsignedintage;可按如下方式初始化:page_number=0;intmax_marks=100;在同一語(yǔ)句中可以聲明多個(gè)類型相同的變量:intpage_number,copies,paper_width;計(jì)算機(jī)科學(xué)學(xué)院23使用整型變量聲明:在同一語(yǔ)句中可以聲明多個(gè)使用單精度浮點(diǎn)數(shù)計(jì)算機(jī)科學(xué)學(xué)院24聲明:floatselling_price;初始化:floatselling_price=11.3;selling_price=65.90;使用單精度浮點(diǎn)數(shù)計(jì)算機(jī)科學(xué)學(xué)院24聲明:使用雙精度浮點(diǎn)數(shù)計(jì)算機(jī)科學(xué)學(xué)院25聲明:doublepressure_level;初始化:pressure_level=213.5671435568967;doubledvalue=35.4;使用雙精度浮點(diǎn)數(shù)計(jì)算機(jī)科學(xué)學(xué)院25聲明:使用字符型數(shù)據(jù)計(jì)算機(jī)科學(xué)學(xué)院26chargender;gender='m';chargender='m';使用字符型數(shù)據(jù)計(jì)算機(jī)科學(xué)學(xué)院26chargender;ch2.4運(yùn)算符與表達(dá)式
計(jì)算機(jī)科學(xué)學(xué)院27算術(shù)運(yùn)算符和表達(dá)式賦值運(yùn)算符和表達(dá)式關(guān)系運(yùn)算符和表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式條件運(yùn)算符和條件表達(dá)式逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式其他運(yùn)算符2.4運(yùn)算符與表達(dá)式計(jì)算機(jī)科學(xué)學(xué)院27算術(shù)運(yùn)算符和表達(dá)式運(yùn)算符運(yùn)算符單目運(yùn)算符雙目運(yùn)算符三目運(yùn)算符計(jì)算機(jī)科學(xué)學(xué)院28運(yùn)算符運(yùn)算符單目運(yùn)算符雙目運(yùn)算符三目運(yùn)算符計(jì)算機(jī)科學(xué)學(xué)院281基本算術(shù)運(yùn)算符算術(shù)運(yùn)算符和算術(shù)表達(dá)式3-1+加法運(yùn)算符,如2+3,x+y。-減法運(yùn)算符,如3-2,x-y*乘法運(yùn)算符,如4*6,x*y/除法運(yùn)算符,如5/3,x/y%求余運(yùn)算符,如11%3,x%y若/兩邊是整型數(shù)據(jù),則結(jié)果是整型數(shù)據(jù)(向零取整),否則為實(shí)型數(shù)據(jù)要求兩邊必須是整型數(shù)據(jù)1基本算術(shù)運(yùn)算符算術(shù)運(yùn)算符和算術(shù)表達(dá)式3-1+加法運(yùn)算符2自增(“++”)自減(“--”)運(yùn)算符都是單目運(yùn)算符,而且運(yùn)算對(duì)象必須是變量,不能是常量。結(jié)合方向都是“自右至左”,它們的作用是使運(yùn)算對(duì)象的值加1或減1??梢宰髑爸眠\(yùn)算符(如++x和--x),也可以作后置運(yùn)算符。不考慮表達(dá)式值的情況下,前綴運(yùn)算和后綴運(yùn)算的效果完全相同
算術(shù)運(yùn)算符和算術(shù)表達(dá)式3-22自增(“++”)自減(“--”)運(yùn)算符算術(shù)運(yùn)算符和算術(shù)表【程序源代碼】main(){ inti,x,y; i=5; x=i++; printf("i=%d,x=%d\n",i,x); i=5; y=++i; printf("i=%d,y=%d\n",i,y);}【例2-6】分析下列程序的輸出結(jié)果。后綴運(yùn)算,先把i的值賦給x,然后i的值加1前綴運(yùn)算,先使i的值加1,然后將i的值賦給y【程序運(yùn)行結(jié)果】i=6,x=5i=6,y=6分析程序【程序源代碼】【例2-6】分析下列程序的輸出結(jié)果。后綴運(yùn)算【例2-7】分析下列程序的輸出結(jié)果。main(){ inta=3,b=5,c;
c=(++a)*b; printf("a=%d,c=%d\n",a,c); a=3; b=5;
c=(a++)*b; printf("a=%d,c=%d\n",a,c);}a的值先加1,a的值變成了4,然后再將此值與b相乘,即c=4*5;a的值先與b相乘,即c=3*5,然后a的值加1變成了4。【程序運(yùn)行結(jié)果】a=4,c=20a=4,c=15分析程序【例2-7】分析下列程序的輸出結(jié)果。a的值先加1,a的值變成用算術(shù)運(yùn)算符或圓括號(hào)將運(yùn)算對(duì)象(常量、變量和函數(shù))連接起來(lái)的式子。例如:
x*y%c-0.9+'A',a*b/c+8.2
都是合法的算術(shù)表達(dá)式。算術(shù)運(yùn)算符和算術(shù)表達(dá)式3-3進(jìn)行算術(shù)運(yùn)算時(shí),應(yīng)注意:算術(shù)運(yùn)算符的優(yōu)先級(jí)別是先乘除后加減;當(dāng)運(yùn)算符的優(yōu)先級(jí)別相同時(shí),應(yīng)按照運(yùn)算符的結(jié)合方向處理,算術(shù)運(yùn)算符的結(jié)合方向?yàn)椤白宰笾劣摇?。用算術(shù)運(yùn)算符或圓括號(hào)將運(yùn)算對(duì)象(常量、變量和函數(shù))連接起來(lái)的程序分析例如:計(jì)算下列兩個(gè)表達(dá)式的值:(1)2*3+6(2)2*(3+6)程序分析例如:計(jì)算下列兩個(gè)表達(dá)式的值:【例2-8】分析下列程序的輸出結(jié)果,注意其中的算術(shù)表達(dá)式。main(){inta,b,c;a=6;b=6;c=6;a=++b-++c;printf("%d,%d,%d\n",a,b,c);a=++b+c++;printf("%d,%d,%d\n",a,b,c);a=b--+--c;printf("%d,%d,%d\n",a,b,c);}【程序運(yùn)行結(jié)果】0,7,715,8,815,7,7分析程序a=(++b)-(++c)a=(++b)+(c++)a=(b--)+(--c)【例2-8】分析下列程序的輸出結(jié)果,注意其中的算術(shù)表達(dá)式?!緩?fù)習(xí):第二次課重點(diǎn)內(nèi)容計(jì)算機(jī)科學(xué)學(xué)院361、變量
類型說(shuō)明符變量名2、算術(shù)運(yùn)算符重點(diǎn)注意:※
自增(“++”)自減(“--”)運(yùn)算符※“/”和“%”※結(jié)合性復(fù)習(xí):第二次課重點(diǎn)內(nèi)容計(jì)算機(jī)科學(xué)學(xué)院361、變量1.賦值運(yùn)算符“=”作用:將一個(gè)數(shù)據(jù)賦給一個(gè)變量。在賦值運(yùn)算符“=”之前加上其他運(yùn)算符,就構(gòu)成了復(fù)合賦值運(yùn)算符。賦值運(yùn)算符和賦值表達(dá)式2-1C語(yǔ)言中總共有10種復(fù)合賦值運(yùn)算符:+=,加賦值運(yùn)算符-=,減賦值運(yùn)算符*=,乘賦值運(yùn)算符/=,除賦值運(yùn)算符%=,取余賦值運(yùn)算符&=,位與賦值運(yùn)算符|=,位或賦值運(yùn)算符^=,異或賦值運(yùn)算符<<=,左移賦值運(yùn)算符>>=,右移賦值運(yùn)算符1.賦值運(yùn)算符“=”賦值運(yùn)算符和賦值表達(dá)式2-1C語(yǔ)言中總共2.賦值表達(dá)式由賦值運(yùn)算符“=”將一個(gè)變量和表達(dá)式連接起來(lái)的式子。一般格式為:
變量=表達(dá)式;賦值運(yùn)算符和賦值表達(dá)式2-2注意:(1)賦值運(yùn)算符左邊必須是變量。被賦值變量的值就是賦值表達(dá)式的值。(2)當(dāng)賦值表達(dá)式中左邊變量與右邊表達(dá)式的數(shù)據(jù)類型不同時(shí),需要進(jìn)行類型轉(zhuǎn)換。轉(zhuǎn)換規(guī)則是:右邊表達(dá)式的值被轉(zhuǎn)換成左邊變量的數(shù)據(jù)類型,然后再賦值給變量。2.賦值表達(dá)式賦值運(yùn)算符和賦值表達(dá)式2-2注意:【例2-9】分析下列程序的輸出結(jié)果。#include"stdio.h"main(){ floata,b=1; a=3/2;
b+=b; printf("a=%f\n",a); printf(“b=%f\n",b);}【程序運(yùn)行結(jié)果】a=1.000000分析程序相當(dāng)于b=b+b;【例2-9】分析下列程序的輸出結(jié)果。【程序運(yùn)行結(jié)果】分析程序計(jì)算機(jī)科學(xué)學(xué)院40【例2-10】分析下列程序的輸出結(jié)果。#include"stdio.h"main(){ inta=10;
a+=a*=a; printf("a=%d\n",a);}【程序運(yùn)行結(jié)果】a=200a=a*aa=a+a注意變量a值的變化計(jì)算機(jī)科學(xué)學(xué)院40【例2-10】分析下列程序的輸出結(jié)果?!境虖?fù)習(xí):第二次課重點(diǎn)內(nèi)容計(jì)算機(jī)科學(xué)學(xué)院411、變量
類型說(shuō)明符變量名2、算術(shù)運(yùn)算符重點(diǎn)注意:※
自增(“++”)自減(“--”)運(yùn)算符※“/”和“%”※結(jié)合性3、賦值運(yùn)算符重點(diǎn)注意:※
賦值運(yùn)算符左邊必須是變量※復(fù)合賦值運(yùn)算符的計(jì)算(注意變量值的變化)※結(jié)合性
復(fù)習(xí):第二次課重點(diǎn)內(nèi)容計(jì)算機(jī)科學(xué)學(xué)院411、變量1.關(guān)系運(yùn)算符關(guān)系運(yùn)算符用于比較兩個(gè)運(yùn)算對(duì)象的大小。C語(yǔ)言提供的關(guān)系運(yùn)算符,如下所示:關(guān)系運(yùn)算符和關(guān)系表達(dá)式<,小于運(yùn)算符 <=,小于等于運(yùn)算符 >,大于運(yùn)算符 >=,大于等于運(yùn)算符 ==,等于運(yùn)算符
!=,不等于運(yùn)算符1.關(guān)系運(yùn)算符關(guān)系運(yùn)算符和關(guān)系表達(dá)式<,小于運(yùn)算符 使用關(guān)系運(yùn)算符,應(yīng)注意優(yōu)先級(jí):關(guān)系運(yùn)算符和關(guān)系表達(dá)式前4個(gè)運(yùn)算符(>,>=,<,<=)的優(yōu)先級(jí)高于后兩個(gè)運(yùn)算符(==,!=)的優(yōu)先級(jí)?!?=”是關(guān)系運(yùn)算符,用于比較運(yùn)算,而“=”是賦值運(yùn)算符,用于賦值運(yùn)算。關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算術(shù)運(yùn)算符而高于賦值運(yùn)算符。它們的結(jié)合性是自左至右。注意:算術(shù)>關(guān)系>賦值使用關(guān)系運(yùn)算符,應(yīng)注意優(yōu)先級(jí):關(guān)系運(yùn)算符和關(guān)系表達(dá)式前4個(gè)運(yùn)2.關(guān)系表達(dá)式關(guān)系表達(dá)式就是用關(guān)系運(yùn)算符將兩個(gè)或兩個(gè)以上運(yùn)算對(duì)象連接起來(lái)的式子。其中運(yùn)算對(duì)象可以是常量、變量或表達(dá)式。關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系表達(dá)式的運(yùn)算結(jié)果有兩種:“真”或“假”。在C語(yǔ)言中用1表示“真”,用0表示“假”。2.關(guān)系表達(dá)式關(guān)系運(yùn)算符和關(guān)系表達(dá)式關(guān)系表達(dá)式的運(yùn)算結(jié)果有兩【例2-11】若有定義如下:charc='d';intm=2,n=5;求下列各表達(dá)式的值。(1)c+1=='e'(2)c+'A'-'a'!='D'(3)m-2*n<=n+9(4)m==2<n分析程序TFTF注意優(yōu)先級(jí)別【例2-11】若有定義如下:分析程序TFTF注意優(yōu)先級(jí)別邏輯運(yùn)算符和邏輯表達(dá)式1.邏輯運(yùn)算符邏輯運(yùn)算符用來(lái)進(jìn)行邏輯運(yùn)算。C語(yǔ)言提供了3個(gè)邏輯運(yùn)算符,分別是:!:邏輯非
如:!a,若a為真,則!a為假,否則!a為真&&:邏輯與如:a&&b,若a,b均為真,則a&&b為真,否則a&&b為假|(zhì)|:邏輯或如:a||b,若a,b均為假,則a||b為假,否則a||b為真邏輯運(yùn)算符和邏輯表達(dá)式1.邏輯運(yùn)算符!:邏輯非如:!a邏輯運(yùn)算符和邏輯表達(dá)式2.邏輯表達(dá)式用邏輯運(yùn)算符將運(yùn)算對(duì)象連接起來(lái)的式子。邏輯表達(dá)式的值也有兩種:“真”或“假”。在C語(yǔ)言中用1表示“真”,用0表示“假”。在對(duì)邏輯表達(dá)式中的量進(jìn)行判斷時(shí),以非0代表“真”,以0代表“假”。在求解邏輯表達(dá)式時(shí),并不是所有的運(yùn)算都被執(zhí)行。而是按運(yùn)算符的優(yōu)先級(jí)和結(jié)合性,當(dāng)某個(gè)運(yùn)算對(duì)象的值,可以確定整個(gè)邏輯表達(dá)式的值時(shí),其余的運(yùn)算對(duì)象將不再參加計(jì)算。(短路計(jì)算)邏輯運(yùn)算符和邏輯表達(dá)式2.邏輯表達(dá)式在對(duì)邏輯表達(dá)式中【例2-12】設(shè)x=5,y=7,a=6,b=9,求:表達(dá)式(x=a>b)&&(y=b>a)的值及變量x和y的值?!痉治觥?/p>
求表達(dá)式“(x=a>b)&&(y=b>a)”的值,先求表達(dá)式“(x=a>b)”的值。a>b為假,變量x的值為0,表達(dá)式“(x=a>b)”的值為假。對(duì)于運(yùn)算符“&&”,左邊的運(yùn)算對(duì)象為0,則右邊的表達(dá)式“(y=b>a)”不再進(jìn)行求解,表達(dá)式“(x=a>b)&&(y=b>a)”的值為0,變量y的值不變。
【結(jié)果】x=0y=7邏輯運(yùn)算符示例嚴(yán)格執(zhí)行“短路計(jì)算”【例2-12】設(shè)x=5,y=7,a=6,b=9,邏輯運(yùn)算符示程序分析【例2-13】分析下列程序的輸出結(jié)果,注意其中的邏輯表達(dá)式。main(){inta,b,c;a=b=c=1;++a&&--b&&++c;printf("%d,%d,%d\n",a,b,c);a=b=c=1;--a||++b||++c;printf("%d,%d,%d\n",a,b,c);a=b=c=-1;++a&&++b||++c;printf("%d,%d,%d\n",a,b,c);a=b=c=0;++a||--b&&--c;printf("%d,%d,%d\n",a,b,c);}【程序運(yùn)行結(jié)果】2,0,10,2,10,-1,01,0,0嚴(yán)格執(zhí)行短路計(jì)算程序分析【例2-13】分析下列程序的輸出結(jié)果,注意其中的邏輯C語(yǔ)言程序設(shè)計(jì)——第二章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式
SCS-SWPU50例:用邏輯表達(dá)式來(lái)表示閏年的條件能被4整除,但不能被100整除。能被400整除。(year%4==0&&year%100!=0)||year%400==0值為真(1)是閏年,否則為非閏年。
邏輯運(yùn)算符的實(shí)際應(yīng)用C語(yǔ)言程序設(shè)計(jì)——第二章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 C語(yǔ)言程序設(shè)計(jì)——第二章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式
SCS-SWPU51例:m能且只能被2和3中的一個(gè)數(shù)整除。(m%3==0)&&(m%2!=0)||(m%2==0)&&(m%3!=0)例:ch是大寫(xiě)字母。ch>=A&&ch<=Z[思考]上述命題可否描述為A<ch<Z?為什么?
邏輯運(yùn)算符的實(shí)際應(yīng)用
邏輯運(yùn)算符的實(shí)際應(yīng)用C語(yǔ)言程序設(shè)計(jì)——第二章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式 1.條件運(yùn)算符用于連接三個(gè)運(yùn)算對(duì)象,是C語(yǔ)言中惟一的三目運(yùn)算符。2.條件表達(dá)式一般格式為:
表達(dá)式1?表達(dá)式2:表達(dá)式3條件運(yùn)算符和條件表達(dá)式條件表達(dá)式的求值過(guò)程是:先計(jì)算表達(dá)式1,若為非0(真)值,則計(jì)算表達(dá)式2,并將其作為整個(gè)條件表達(dá)式的值;否則計(jì)算表達(dá)式3,并將其作為整個(gè)表達(dá)式的值。1.條件運(yùn)算符條件運(yùn)算符和條件表達(dá)式條件表達(dá)式的求值過(guò)程是:計(jì)算機(jī)科學(xué)學(xué)院533.條件運(yùn)算符的優(yōu)先級(jí)別4.條件運(yùn)算符的結(jié)合性其結(jié)合性為“自右至左”。如:x=8,y=10,c=5,d=4
max=(x>y?y:c>d?x:y);
注意:算術(shù)>關(guān)系>邏輯>條件>賦值計(jì)算機(jī)科學(xué)學(xué)院533.條件運(yùn)算符的優(yōu)先級(jí)別注意:算術(shù)>關(guān)系>【例2-14】輸入兩個(gè)整數(shù),求最大數(shù)。
計(jì)算機(jī)科學(xué)學(xué)院54【分析】
輸入模塊(輸入數(shù)據(jù)):a和b;處理模塊:比較a和b的大小,將大的賦值給max;輸出模塊(輸出數(shù)據(jù)):max;【流程圖】
開(kāi)始接受a和bMax=a顯示
max結(jié)束a>b?Max=b否是利用條件表達(dá)式實(shí)現(xiàn)【例2-14】輸入兩個(gè)整數(shù),求最大數(shù)。
計(jì)算機(jī)科學(xué)學(xué)院54【#include"stdio.h"main(){ inta,b,max; printf("inputa,b:"); scanf("%d,%d",&a,&b);
max=a>b?a:b; printf("themaxis%d\n",max);
}【程序運(yùn)行結(jié)果】inputa,b:4,5themaxis5程序代碼:思考:條件表達(dá)式的應(yīng)用對(duì)象?#include"stdio.h"【程序運(yùn)行結(jié)果】程序代1.逗號(hào)運(yùn)算符逗號(hào)“,”是一種特殊的運(yùn)算符,用于將若干個(gè)表達(dá)式連接起來(lái)。2.逗號(hào)表達(dá)式用逗號(hào)運(yùn)算符將各種類型的表達(dá)式連接成的式子。逗號(hào)表達(dá)式的一般格式為:
表達(dá)式1,表達(dá)式2,…,表達(dá)式n逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗號(hào)表達(dá)式的運(yùn)算規(guī)則是:先計(jì)算表達(dá)式1,再計(jì)算表達(dá)式2,依次計(jì)算到表達(dá)式n。最后一個(gè)表達(dá)式的值就是整個(gè)逗號(hào)表達(dá)式的值。1.逗號(hào)運(yùn)算符逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式逗號(hào)表達(dá)式的運(yùn)算規(guī)則是:逗號(hào)運(yùn)算符練習(xí)計(jì)算機(jī)科學(xué)學(xué)院57逗號(hào)運(yùn)算符練習(xí)計(jì)算機(jī)科學(xué)學(xué)院57位運(yùn)算符和位表達(dá)式1.位運(yùn)算符位運(yùn)算符是對(duì)二進(jìn)制位進(jìn)行運(yùn)算。C語(yǔ)言提供了4個(gè)邏輯運(yùn)算符,分別是:&:按位與
同為1結(jié)果為1,否則為0|:按位或有一個(gè)為1,結(jié)果為1,否則為0~:按位取反按位取反^:按位異或相同為0,不同為1位運(yùn)算符和位表達(dá)式1.位運(yùn)算符&:按位與同為1結(jié)果為1,1.移位運(yùn)算符
<<(左移)和>>(右移)
2.移位表達(dá)式
移位表達(dá)式的一般格式為:
表達(dá)式1<<表達(dá)式2
表達(dá)式1>>表達(dá)式2
移位算符和移位表達(dá)式其中:表達(dá)式1是移位對(duì)象,表達(dá)式2是移位位數(shù)。注意:右移后前方置1還是0由系統(tǒng)決定。1.移位運(yùn)算符移位算符和移位表達(dá)式其中:表達(dá)式1是移位對(duì)象,1.sizeof運(yùn)算符求字節(jié)數(shù)運(yùn)算符,可以計(jì)算某一種類型數(shù)據(jù)所占存儲(chǔ)單元的字節(jié)個(gè)數(shù)。它是單目運(yùn)算符。格式:sizeof()2.使用說(shuō)明sizeof運(yùn)算符的運(yùn)算對(duì)象只能是變量名或數(shù)據(jù)類型標(biāo)識(shí)符。其他運(yùn)算符1.sizeof運(yùn)算符其他運(yùn)算符程序分析計(jì)算機(jī)科學(xué)學(xué)院61【例2-15】分析下列程序的輸出結(jié)果,注意其中sizeof運(yùn)算符的應(yīng)用。main(){ floatm; printf("char:%dbytes\n",sizeof(char)); printf("float:%dbytes\n",sizeof(float)); printf("m:%dbytes\n",sizeof(m));}【程序運(yùn)行結(jié)果】char:1bytesfloat:4bytesm:4bytes程序分析計(jì)算機(jī)科學(xué)學(xué)院61【例2-15】分析下列程序的輸出結(jié)小結(jié):常用運(yùn)算符優(yōu)先級(jí)計(jì)算機(jī)科學(xué)學(xué)院62單目>雙目算術(shù)>關(guān)系>邏輯>條件>賦值>逗號(hào)小結(jié):常用運(yùn)算符優(yōu)先級(jí)計(jì)算機(jī)科學(xué)學(xué)院62單目>雙目思考以下問(wèn)題的結(jié)果:3+2.5‘a(chǎn)’+3‘A’+12.34計(jì)算機(jī)科學(xué)學(xué)院632.6數(shù)據(jù)類型轉(zhuǎn)換Int+floatChar+intchar+float類型轉(zhuǎn)換以不丟失結(jié)果精度為原則思考以下問(wèn)題的結(jié)果:計(jì)算機(jī)科學(xué)學(xué)院632.6數(shù)據(jù)類型轉(zhuǎn)換I計(jì)算機(jī)科學(xué)學(xué)院642.6數(shù)據(jù)類型轉(zhuǎn)換自動(dòng)類型轉(zhuǎn)換原則:把表示范圍小的類型的值轉(zhuǎn)換到表示范圍大的類型的值
shortintlong
floatdouble例:已知chara;intb;floatc;doubled;
則表達(dá)式a+b+c+d的結(jié)果為()型強(qiáng)制類型轉(zhuǎn)換語(yǔ)法:(類型名)變量或數(shù)值
例如:
inta=5,b=3;
floatqu=(float)a/b;
由系統(tǒng)自動(dòng)進(jìn)行注意:兩邊的括號(hào)一定不能省略計(jì)算機(jī)科學(xué)學(xué)院642.6數(shù)據(jù)類型轉(zhuǎn)換自動(dòng)類型轉(zhuǎn)換由系統(tǒng)自動(dòng)C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU652.7C數(shù)據(jù)輸入與輸出的實(shí)現(xiàn)(一)所謂輸入輸出是以計(jì)算機(jī)主機(jī)為主體而言的輸出:從計(jì)算機(jī)向外部輸出設(shè)備(顯示器,打印機(jī))
輸出數(shù)據(jù)。輸入:從輸入設(shè)備(鍵盤(pán),鼠標(biāo),掃描儀)向計(jì)算機(jī)輸入數(shù)據(jù)。C語(yǔ)言程序設(shè)計(jì)——算法的描述 (二)C語(yǔ)言本身不提供輸入輸出語(yǔ)句,輸入和輸出操作是由C函數(shù)庫(kù)中的函數(shù)來(lái)實(shí)現(xiàn)的例如:
字符輸入函數(shù):getchar
字符輸出函數(shù):putchar
格式輸入函數(shù):scanf
格式輸出函數(shù):printf
字符串輸入函數(shù):gets
字符串輸出函數(shù):putsC語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU662.7C數(shù)據(jù)輸入與輸出的實(shí)現(xiàn)(二)C語(yǔ)言本身不提供輸入輸出語(yǔ)句,輸入和輸出操作是由C函數(shù)C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU67(三)在使用系統(tǒng)庫(kù)函數(shù)時(shí),要用預(yù)編譯命令“#include”將有關(guān)的“頭文件”包括到用戶源文件中例如:在調(diào)用標(biāo)準(zhǔn)輸入輸出庫(kù)函數(shù)時(shí),應(yīng)該有:
#include“stdio.h”
或:
#include<stdio.h>2.7C數(shù)據(jù)輸入與輸出的實(shí)現(xiàn)C語(yǔ)言程序設(shè)計(jì)——算法的描述 計(jì)算機(jī)科學(xué)學(xué)院68字符型變量getchar()字符型數(shù)據(jù)字符型數(shù)據(jù)putchar()2.7.1字符數(shù)據(jù)的輸入輸出接受并顯示字符計(jì)算機(jī)科學(xué)學(xué)院68字符型變量getchar()字符型數(shù)據(jù)字符C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU692.7.1字符數(shù)據(jù)的輸入輸出1、putchar()函數(shù)的用法putchar()是向標(biāo)準(zhǔn)輸出設(shè)備上輸出一個(gè)字符,一般是顯示器。使用格式:putchar(ch);已定義: intc;c=‘A';若想輸出字符A,可以用幾種方式?
putchar(c);
或
putchar(‘A’);
或
putchar(65);putchar(0101);
或
putchar(0x41);
或putchar(‘\101’);
注意:ch可以是字符常量或字符變量,也可以是整型常量或整型變量,不能是字符串C語(yǔ)言程序設(shè)計(jì)——算法的描述 C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU70例
輸出單個(gè)字符。
#include<stdio.h>
voidmain()
{
chara,b,c;
a=‘B’;b=‘O’;c=‘Y’;
putchar(a);putchar(b);putchar(c);putchar(‘\n’);
}
運(yùn)行結(jié)果:BOYputchar(a);putchar(‘\n’);putchar(b);putchar(‘\n’);putchar(c);putchar(‘\n’);運(yùn)行結(jié)果:BOY2.7.1字符數(shù)據(jù)的輸入輸出C語(yǔ)言程序設(shè)計(jì)——算法的描述 C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU712、getchar()函數(shù)的用法從標(biāo)準(zhǔn)輸入設(shè)備上輸入一個(gè)字符,一般是鍵盤(pán)使用格式:ch=getchar();
例#include<stdio.h>voidmain(){charc;
c=getchar();putchar(c);}#include<stdio.h>voidmain(){
putchar(getchar());
}鍵盤(pán)上輸入的數(shù)字、空格、回車、逗號(hào)等都將作為一個(gè)字符輸入2.7.1字符數(shù)據(jù)的輸入輸出C語(yǔ)言程序設(shè)計(jì)——算法的描述 計(jì)算機(jī)科學(xué)學(xué)院72#include<stdio.h>voidmain(){chara,b;printf("請(qǐng)輸入兩個(gè)字符:\n");a=getchar();fflush(stdin);b=getchar();fflush(stdin);putchar(a);putchar(b);putchar('\n');}getchar()和putchar()示例內(nèi)存abOK輸出:請(qǐng)輸入兩個(gè)字符:OKOKPressanykeytocontinue_計(jì)算機(jī)科學(xué)學(xué)院72#include<stdio.h>getC語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU732.7.2格式輸出函數(shù)——printf例如:
printf(“a=%d,b=%f",a,b);調(diào)用格式:
printf(“格式控制字符串”,輸出列表);格式控制:格式說(shuō)明(%格式字符)+普通字符輸出列表:即需要輸出的數(shù)據(jù),可以是表達(dá)式
函數(shù)名輸出表列普通字符格式說(shuō)明:%格式說(shuō)明符C語(yǔ)言程序設(shè)計(jì)——算法的描述 C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU74━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
符號(hào)
作用─────────────────────────────────────────────────
%c 單個(gè)字符
%s
輸出字符串
%d 十進(jìn)制有符號(hào)整數(shù)
%u
輸出無(wú)符號(hào)十進(jìn)制整數(shù)
%o 無(wú)輸出無(wú)符號(hào)八進(jìn)制整數(shù)(不輸出前綴0)
%x,%X輸出無(wú)符號(hào)十六進(jìn)制整數(shù)(不輸出前綴0x)
%f
輸出十進(jìn)制float數(shù),不帶域?qū)挄r(shí),保留6位小數(shù)
%lf 輸出十進(jìn)制double數(shù),不帶域?qū)挄r(shí),保留6位小數(shù)
%le 以“科學(xué)記數(shù)法”的形式輸出double數(shù)
如2.4e+02
%e 以“科學(xué)記數(shù)法”的形式輸出float數(shù)
如2.4e+02
%g 選用e或f格式中較短的一個(gè)輸出浮點(diǎn)數(shù),不輸出無(wú)效零
%p 指針的值
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━2.7.2格式輸出函數(shù)—printf的格式字符C語(yǔ)言程序設(shè)計(jì)——算法的描述 C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU75d格式符——按十進(jìn)制整數(shù)的實(shí)際長(zhǎng)度輸出數(shù)據(jù)#include"stdio.h"/*包含頭文件*/main()/*主函數(shù)*/{intx,y,z;/*定義變量*/x=3;y=1;/*給變量賦值*/z=x+y;/*求a與b的和*/printf(“%d+%d=%d\n”,x,y,z);/*輸出結(jié)果*/}2.7.2格式輸出函數(shù)—printf的格式字符C語(yǔ)言程序設(shè)計(jì)——算法的描述 例題:從屏幕輸入圓柱體的底面圓的半徑r和高h(yuǎn),求圓柱體的表面積C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU76#include<stdio.h>#definePI3.14159voidmain(){
floatr,h;doublearea;printf("inputtherandh:\n");scanf("%f%f",&r,&h);area=2*PI*r*r+2*PI*r*h;
printf("%lf\n",area);}2.7.2格式輸出函數(shù)—printf的格式字符默認(rèn)情況下精確到六位小數(shù)例題:從屏幕輸入圓柱體的底面圓的半徑r和高h(yuǎn),求圓柱體的表面C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU77若實(shí)際位數(shù)多于定義的寬度:則按實(shí)際位數(shù)輸出。若實(shí)際位數(shù)少于定義的寬度:默認(rèn)右對(duì)齊,有負(fù)號(hào)左對(duì)齊n:精度m:域?qū)?,即輸出?xiàng)在輸出設(shè)備上所占的寬度
輸出實(shí)型數(shù)據(jù),n指定實(shí)型數(shù)據(jù)所占的小數(shù)位數(shù)輸出字符串,n指定最多輸出的字符個(gè)數(shù)2.7.2格式輸出函數(shù)—printf的格式字符C語(yǔ)言程序設(shè)計(jì)——算法的描述 計(jì)算機(jī)科學(xué)學(xué)院78intsalary=5500;printf("
%10d"
,salary);輸出結(jié)果:
5500輸出結(jié)果的左邊顯示了6個(gè)空格"
%10d"2.7.2格式輸出函數(shù)—printf的格式字符計(jì)算機(jī)科學(xué)學(xué)院78intsalary=5500;輸出結(jié)計(jì)算機(jī)科學(xué)學(xué)院79doublemercury_level=168.2251074;printf("%7.2f"
,mercury_level);輸出結(jié)果:168.23寬度:表示所有的數(shù)字和小數(shù)點(diǎn)所占的位數(shù)。不夠7位右對(duì)齊。"%7.2f"
精度:精確到小數(shù)點(diǎn)后多少位2.7.2格式輸出函數(shù)—printf的格式字符計(jì)算機(jī)科學(xué)學(xué)院79doublemercury_level計(jì)算機(jī)科學(xué)學(xué)院80doublemercury_level=168.2251074;printf("%7.2f"
,mercury_level);輸出結(jié)果:168.23寬度,表示所有的數(shù)字和小數(shù)點(diǎn)所占的位數(shù)。不夠7位右對(duì)齊。"%7.2f"
精度(精確到小數(shù)點(diǎn)后多少位)計(jì)算機(jī)科學(xué)學(xué)院80doublemercury_levelC語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU81
標(biāo)志:-、+、#、空格、0的意義如下所示:
- 結(jié)果左對(duì)齊,右邊填空格
+ 輸出符號(hào)(正號(hào)或負(fù)號(hào))(只對(duì)十進(jìn)制數(shù))
空格 輸出值為正時(shí)冠以空格,為負(fù)時(shí)冠以負(fù)號(hào)
#
對(duì)c,s,d,i,u類無(wú)影響;對(duì)o(八進(jìn)制)類,在輸出時(shí)加前綴0;對(duì)x(十六進(jìn)制)類,在輸出時(shí)加前綴0x;對(duì)e,g,f類,確保出現(xiàn)小數(shù)點(diǎn),即使無(wú)小數(shù)位時(shí)亦如此
0 右對(duì)齊輸出數(shù)據(jù)時(shí),不夠?qū)挾妊a(bǔ)0
2.7.2格式輸出函數(shù)—printf的格式字符C語(yǔ)言程序設(shè)計(jì)——算法的描述 C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU82#include"stdio.h"voidmain(){ floatf,g; f=1.27; g=23.2; printf("%f+%f=%f\n",f,g,f+g);}在輸出的數(shù)字中并非全部數(shù)字都是有效數(shù)字單精度實(shí)數(shù)的有效位數(shù)一般為7位;雙精度實(shí)數(shù)的有效位數(shù)一般為16位printf("%2.2f+%2.2f=%4.2f\n",f,g,f+g);2.7.2格式輸出函數(shù)—printf的格式字符C語(yǔ)言程序設(shè)計(jì)——算法的描述 C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU83例1:printf(“%d,%4d,%-4d,%4d”,a,a,a,b);
若a=123,b=12345
則輸出結(jié)果是:123,□123,123□,12345例2:printf("%lf,%8.2lf\n",b,b);
若b=123.4567
則輸出結(jié)果是:123.456700,□□123.46例3:printf(“%s,%8s,%8.3s”,“china”,“china”,“china”);
則輸出結(jié)果是:china,□□□china,□□□□□chi2.7.2格式輸出函數(shù)—printf的格式字符C語(yǔ)言程序設(shè)計(jì)——算法的描述 計(jì)算機(jī)科學(xué)學(xué)院84轉(zhuǎn)義序列輸出結(jié)果:Name:AudreyHepburnMovie:‘RomanHoliday’代碼:printf(“Name:AudreyHepburn\nMovie:\‘RomanHoliday\’”);轉(zhuǎn)義序列允許在輸出結(jié)果中包括特殊字符轉(zhuǎn)義序列名稱描述\a警告產(chǎn)生一則警告。\b退格將光標(biāo)回退一格。\f換頁(yè)將光標(biāo)移到下一頁(yè)的第一格。\n換行將光標(biāo)移到下一行的第一格。\r回車將光標(biāo)移到當(dāng)前行的第一格。\t水平制表將光標(biāo)移到下一個(gè)水平制表位置。\v垂直制表將光標(biāo)移到下一個(gè)垂直制表位置。\'單引號(hào)產(chǎn)生一個(gè)單引號(hào)。\"雙引號(hào)產(chǎn)生一個(gè)雙引號(hào)。\?問(wèn)號(hào)產(chǎn)生一個(gè)問(wèn)號(hào)。\\反斜線產(chǎn)生一條反斜線。\0空產(chǎn)生一個(gè)空字符。計(jì)算機(jī)科學(xué)學(xué)院84轉(zhuǎn)義序列輸出結(jié)果:Name:AudreyC語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU85#include<stdio.h>main(){inta=100;floatb=123.255;printf("a=%d\n",a);printf("a=%10d\n",a);printf("a=%-10d\n",a);printf("a=%+d\n",a);printf("a=%d\n",a);printf("a=%#o\n",a);printf("a=%#x\n",a);printf("b=%07.1f\n",b);}//a=100
//a=□□□□□□□100//a=100□□□□□□□
//a=+100//a=□100//a=0144//a=0x64//b=00123.3例42.7.2格式輸出函數(shù)—printf的格式字符C語(yǔ)言程序設(shè)計(jì)——算法的描述 C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU86printf函數(shù)的注意事項(xiàng)格式控制必須與輸出項(xiàng)匹配,否則不能正確輸出
請(qǐng)判斷下列輸出是否正確:main(){inta=65;printf("%f",a); }main(){inta=65;printf("%d\n",a);}main(){inta=65;printf("%c",a); }2.7.2格式輸出函數(shù)—printf的格式字符輸出數(shù)據(jù)的類型必須與格式控制匹配C語(yǔ)言程序設(shè)計(jì)——算法的描述 C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU87例如:
main(){intx,y;x=11/3;y=5;printf("%%d,%%%d\n",x,y); }程序的運(yùn)行結(jié)果為:
%d,%3C語(yǔ)言規(guī)定,在格式控制字符串中若連續(xù)出現(xiàn)兩個(gè)“%”,系統(tǒng)視為一個(gè)“%”字符輸出。2.7.2格式輸出函數(shù)—printf的格式字符C語(yǔ)言程序設(shè)計(jì)——算法的描述 計(jì)算機(jī)科學(xué)學(xué)院88scanf("%d",&num);scanf函數(shù)從標(biāo)準(zhǔn)輸入(鍵盤(pán))讀取信息,按照格式描述把讀入的信息轉(zhuǎn)換為指定數(shù)據(jù)類型的數(shù)據(jù),并把這些數(shù)據(jù)賦給指定的程序變量。
格式控制字符串&符號(hào)(附在讀取的每個(gè)變量上)用于指明變量在內(nèi)存中的位置變量的名稱格式控制字符串參數(shù)變量的類型要求的實(shí)際輸入%dint十進(jìn)制數(shù)字序列%ldlong十進(jìn)制數(shù)字序列%ffloat十進(jìn)制數(shù),可以有小數(shù)點(diǎn)及指數(shù)部分%lfdouble十進(jìn)制數(shù),可以有小數(shù)點(diǎn)及指數(shù)部分2.7.2格式輸入函數(shù)——scanf計(jì)算機(jī)科學(xué)學(xué)院88scanf("%d",&num);scanC語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU89━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
符號(hào)
作用─────────────────────────────────────────────
%c 輸入單個(gè)字符
%s
輸入字符串
%d 輸入十進(jìn)制有符號(hào)整數(shù)
%u
輸入無(wú)符號(hào)十進(jìn)制整數(shù)
%o 無(wú)輸入無(wú)符號(hào)八進(jìn)制整數(shù)(不輸出前綴0)
%x,%X 輸入無(wú)符號(hào)十六進(jìn)制整數(shù)(不輸出前綴0x)
%f,%e
以小數(shù)或指數(shù)形式輸入float型數(shù)據(jù)
%lf,%le
以小數(shù)或指數(shù)形式輸入double型數(shù)據(jù)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━2.7.2格式輸入函數(shù)——scanfC語(yǔ)言程序設(shè)計(jì)——算法的描述 計(jì)算機(jī)科學(xué)學(xué)院90內(nèi)存scanffloattax_rate;scanf("%f"
,&tax_rate);tax_rate在內(nèi)存中分配一塊32位存儲(chǔ)空間存儲(chǔ)空間使用名稱“tax_rate”標(biāo)識(shí)提示用戶輸入一個(gè)值輸入的值存儲(chǔ)在變量中(因?yàn)閟canf提供此變量的地址)12.234計(jì)算機(jī)科學(xué)學(xué)院90內(nèi)存scanffloattax_rateC語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU91例用scanf函數(shù)輸入數(shù)據(jù)。
#include<stdio.h>
voidmain()
{
inta,b,c;
scanf(“%d%d%d”,&a,&b,&c);
printf(“%d,%d,%d\n”,a,b,c);
}a在內(nèi)存中的地址&是地址運(yùn)算符2.7.2格式輸入函數(shù)——scanfC語(yǔ)言程序設(shè)計(jì)——算法的描述 C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU92使用scanf函數(shù)的注意事項(xiàng)(1)scanf()函數(shù)可以設(shè)置輸入寬度,不能設(shè)置精度
floata; scanf(“%4f”,&a); 正確
scanf(“%4.2f”,&a);是非法的(2)scanf()函數(shù)中一定給出變量地址,不可是變量名,否則出錯(cuò)。
如:scanf(“%d”,a);錯(cuò)
scanf(“%d”,&a);對(duì)(3)輸入多個(gè)數(shù)據(jù)時(shí),格式控制串中沒(méi)有非格式字符,則輸入時(shí)數(shù)據(jù)間的分隔符可用空格、TAB鍵、回車鍵。如:scanf(“%d%d%f”,&a,&b,&c);C語(yǔ)言程序設(shè)計(jì)——算法的描述 C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU93(4)用連續(xù)%c輸入字符數(shù)據(jù)時(shí),任意字符都有效
scanf(“%c%c%c”,&a,&b,&c);printf(“a=%c,b=%c,c=%c”,a,b,c);
輸入:A,B,C
輸出:a=A,b=,,c=B
(5)如果格式控制字符串中有非格式字符,則輸入時(shí)也要輸入非格式字符。scanf(“%d,%d,%d”,&a,&b,&c);
輸入應(yīng)為:5,6,7若為:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);
輸入應(yīng)為:a=5,b=6,c=7使用scanf函數(shù)的注意事項(xiàng)C語(yǔ)言程序設(shè)計(jì)——算法的描述 C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU94(6)輸入輸出格式控制符必須匹配,否則不能正確輸出
設(shè):從鍵盤(pán)輸入:1020.5<CR>,分析各程序的輸出
main(){inta;floatb;scanf("%d%d",&a,&b);printf("%d,%f",a,b); }main(){inta;floatb;scanf("%d%f",&a,&b);printf("%d,%f\n",a,b);}main(){inta;floatb;scanf("%d%d",&a,&b);printf("%d,%d",a,b); }使用scanf函數(shù)的注意事項(xiàng)C語(yǔ)言程序設(shè)計(jì)——算法的描述 C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU95(7)遇到寬度設(shè)置,認(rèn)為數(shù)據(jù)輸入結(jié)束
voidmain() { intx; doublem; scanf("%4lf%d",&m,&x); printf("%lf,%d\n",m,x); } 若輸入123.456□23,則輸出結(jié)果是?使用scanf函數(shù)的注意事項(xiàng)123.000000,456C語(yǔ)言程序設(shè)計(jì)——算法的描述 計(jì)算機(jī)科學(xué)學(xué)院96#include<stdio.h>voidmain(){
doubleradius,high,vol;printf("請(qǐng)輸入圓柱體底面積的半徑和圓柱體的高:");scanf("%lf%lf",&radius,&high);vol=3.14*radius*radius*high;printf("radius=%7.2f,high=%7.2f,vol=%7.2f\n",radius,high,vol);}scanf函數(shù)使用示例內(nèi)存radiushighvol510785請(qǐng)輸入圓柱體底面積的半徑和圓柱體的高:510radius=5.00,high=10.00,vol=785.00計(jì)算機(jī)科學(xué)學(xué)院96#include<stdio.h>scaC語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU972.7輸入輸出函數(shù)——練習(xí)#include<stdio.h>main(){
inta,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b);}問(wèn)題1:當(dāng)要求程序輸出結(jié)果為
a=12,b=34時(shí),用戶應(yīng)該如何輸入數(shù)據(jù)?問(wèn)題2:語(yǔ)句scanf("%d%d",&a,&b);修改為scanf(“a=%d,b=%d”,&a,&b);時(shí),用戶應(yīng)該如何輸入數(shù)據(jù)?scanf(“a=%d,b=%d”,&a,&b);問(wèn)題3:限定用戶輸入數(shù)據(jù)為以下格式為
1234↙
同時(shí)要求程序輸出結(jié)果為a=12,b=34scanf(“%2d%2d”,&a,&b);C語(yǔ)言程序設(shè)計(jì)——算法的描述 例1:由鍵盤(pán)輸入5個(gè)學(xué)生的成績(jī),計(jì)算他們的平均分并保留2位小數(shù)。C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU982.7順序結(jié)構(gòu)程序設(shè)計(jì)#include<stdio.h>voidmain(){floats1,s2,s3,s4,s5;doubleave;scanf("%f%f%f%f%f",&s1,&s2,&s3,&s4,&s5);ave=(s1+s2+s3+s4+s5)/5;printf("aver=%.2lf\n",ave);}例1:由鍵盤(pán)輸入5個(gè)學(xué)生的成績(jī),計(jì)算他們的平均分并保留2位小C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU99例2:用getchar函數(shù)從屏幕獲得2個(gè)字符,要求在屏幕上分別輸出這2個(gè)字符的ASCⅡ和字符。#include<stdio.h>voidmain(){charch1,ch2;ch1=getchar();ch2=getchar();printf("\'%c\'ASCII=%d\n",ch1,ch1);putchar(ch2);printf("ASCII=%d\n",ch2);}2.7順序結(jié)構(gòu)程序設(shè)計(jì)C語(yǔ)言程序設(shè)計(jì)——算法的描述 C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU1002.7順序結(jié)構(gòu)程序設(shè)計(jì)例3、輸入三角形的三邊長(zhǎng),求三角形面積。假設(shè):三個(gè)邊長(zhǎng)a,b,c能構(gòu)成三角形。已知面積公式:s=(a+b+c)*0.5area=C語(yǔ)言程序設(shè)計(jì)——算法的描述 C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU101#include<stdio.h>
#include<math.h>
voidmain()
{
floata,b,c,s,area;
scanf(″%f,%f,%f″,&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(″a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n″,a,b,c,s);
printf(″area=%7.2f\n″,area);
}數(shù)學(xué)函數(shù)庫(kù)因?yàn)橐玫狡渲械膕qrt函數(shù)2.7順序結(jié)構(gòu)程序設(shè)計(jì)C語(yǔ)言程序設(shè)計(jì)——算法的描述 C語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU102本章相關(guān)英語(yǔ)詞匯學(xué)習(xí)C語(yǔ)言程序設(shè)計(jì)——算法的描述 計(jì)算機(jī)科學(xué)學(xué)院103總結(jié)2-1常量是在程序中不能被更改的值;而變量在程序中可以被更改的,通過(guò)變量可以引用存儲(chǔ)在內(nèi)存中的數(shù)據(jù)C語(yǔ)言中的基本數(shù)據(jù)類型包括整型、單精度浮點(diǎn)型、雙精度浮點(diǎn)型和字符型整型分為短整型、整型、長(zhǎng)整型,每種整型又可分為有符號(hào)型和無(wú)符號(hào)型計(jì)算機(jī)科學(xué)學(xué)院103總結(jié)2-1常量是在程序中不能被更改的值計(jì)算機(jī)科學(xué)學(xué)院104總結(jié)2-2單精度浮點(diǎn)型和雙精度浮點(diǎn)型變量可以存儲(chǔ)實(shí)數(shù),但雙精度型取值范圍要比單精度型大的多字符型變量可以存儲(chǔ)單個(gè)字符,其值是該字符的ASCII碼各種運(yùn)算符提供運(yùn)算功能,例如+、-、*、/、%、++和--printf()和scanf()函數(shù)屬于格式輸入輸出函數(shù)getchar()和putchar()函數(shù)用來(lái)輸入輸出單個(gè)字符的函數(shù)計(jì)算機(jī)科學(xué)學(xué)院104總結(jié)2-2單精度浮點(diǎn)型和雙精度浮點(diǎn)型變預(yù)習(xí):第3章選擇結(jié)構(gòu)程序設(shè)計(jì)If語(yǔ)句Switch語(yǔ)句高職班作業(yè):P45第3題電信班作業(yè):p652.102.112.12C語(yǔ)言程序設(shè)計(jì)——第二章數(shù)據(jù)類型、運(yùn)算符和表達(dá)式
SCS-SWPU105第四次課課后任務(wù)預(yù)習(xí):第3章選擇結(jié)構(gòu)程序設(shè)計(jì)C語(yǔ)言程序設(shè)計(jì)——第二章數(shù)第一次實(shí)驗(yàn)總結(jié)常見(jiàn)問(wèn)題:拼寫(xiě)錯(cuò)誤:main→mian一個(gè)程序中包含了多個(gè)主函數(shù)變量未定義;變量類型說(shuō)明符與變量名之間必須有空格結(jié)束沒(méi)有“;”語(yǔ)法輸入時(shí)應(yīng)處于英文狀態(tài)(輸入漢字時(shí)除外)計(jì)算機(jī)科學(xué)學(xué)院106第一次實(shí)驗(yàn)總結(jié)常見(jiàn)問(wèn)題:計(jì)算機(jī)科學(xué)學(xué)院106第2次實(shí)驗(yàn)課總結(jié)數(shù)據(jù)類型錯(cuò)誤聲明的數(shù)據(jù)類型和輸入輸出時(shí)使用該數(shù)據(jù)時(shí)的類型必須一致。聲明的變量必須先賦初值,再引用。邏輯錯(cuò)誤注意分析語(yǔ)句的前后關(guān)系。對(duì)庫(kù)函數(shù)的應(yīng)用必須將頭文件包括在內(nèi)計(jì)算機(jī)科學(xué)學(xué)院107第2次實(shí)驗(yàn)課總結(jié)數(shù)據(jù)類型錯(cuò)誤計(jì)算機(jī)科學(xué)學(xué)院107第三次課總結(jié)關(guān)系運(yùn)算符邏輯運(yùn)算符條件運(yùn)輸符注意條件運(yùn)算符的執(zhí)行情況逗號(hào)運(yùn)算符注意逗號(hào)表達(dá)式的值計(jì)算機(jī)科學(xué)學(xué)院108單目>雙目算術(shù)>關(guān)系>邏輯>條件>賦值>逗號(hào)第三次課總結(jié)關(guān)系運(yùn)算符計(jì)算機(jī)科學(xué)學(xué)院108單目>雙目格式輸入輸入函數(shù)標(biāo)準(zhǔn)輸出函數(shù)printf重點(diǎn):格式控制必須與輸出項(xiàng)匹配
標(biāo)準(zhǔn)輸入函數(shù)scanf重點(diǎn):字符輸入輸出函數(shù)字符輸出函數(shù)putchar參數(shù)可以是字符常量或變量以及整型常量或變量。
字符輸入函數(shù)getcharC語(yǔ)言程序設(shè)計(jì)——算法的描述
SCS-SWPU109第四次課課小結(jié)格式輸入輸入函數(shù)C語(yǔ)言程序設(shè)計(jì)——算法的描述 110C語(yǔ)言程序設(shè)計(jì)
1C語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)學(xué)院111第2章數(shù)據(jù)類型與基本運(yùn)算
1基本數(shù)據(jù)類型常量和變量運(yùn)算符與表達(dá)式標(biāo)識(shí)符數(shù)據(jù)類型轉(zhuǎn)換基本輸入和輸出
2
3
4
5
6應(yīng)用舉例
7計(jì)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 社交網(wǎng)絡(luò)的在線協(xié)作溝通技巧
- 二零二五年度廣告企業(yè)代賬管理合同
- 二零二五年度代課教師與教育機(jī)構(gòu)兼職期限合同
- 二零二五年度紙勞動(dòng)合同電子合同管理與法律風(fēng)險(xiǎn)防控服務(wù)合同
- 二零二五年度跨境電商四人合伙股東合作協(xié)議
- 二零二五年度時(shí)尚購(gòu)物中心商鋪?zhàn)赓U合同終止及品牌孵化協(xié)議
- 2025至2030年中國(guó)磨削鋸片銑刀數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 二零二五年度按揭房轉(zhuǎn)讓中房屋租賃合同續(xù)租與租金調(diào)整協(xié)議
- 二零二五年度飯店客房服務(wù)質(zhì)量提升合同
- 2025年度瑜伽培訓(xùn)機(jī)構(gòu)學(xué)生身心健康協(xié)議
- 2024年12月重慶大學(xué)醫(yī)院公開(kāi)招聘醫(yī)生崗位2人(有編制)筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 主題班會(huì):新學(xué)期 新起點(diǎn) 新期待
- 披薩制作流程
- 2024 河北公務(wù)員考試(筆試、省直、A類、C類)4套真題及答案
- 廈門(mén)2025年福建廈門(mén)市公安文職人員服務(wù)中心招聘17人筆試歷年參考題庫(kù)附帶答案詳解
- 2025年高三歷史教學(xué)工作計(jì)劃
- 《職業(yè)性肌肉骨骼疾患的工效學(xué)預(yù)防指南 》
- 不同產(chǎn)地筠連紅茶風(fēng)味化學(xué)成分差異分析
- DB50 577-2015 汽車整車制造表面涂裝大氣污染物排放標(biāo)準(zhǔn)
- 生態(tài)安全課件
- 大學(xué)英語(yǔ)(西安歐亞學(xué)院)知到智慧樹(shù)章節(jié)測(cè)試課后答案2024年秋西安歐亞學(xué)院
評(píng)論
0/150
提交評(píng)論