




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C程序設(shè)計(jì)1整理pptC語(yǔ)言程序設(shè)計(jì)第一章第二章第三章第四章第五章第六章第七章2整理ppt第一章C語(yǔ)言概述C語(yǔ)言–––既可作為系統(tǒng)軟件的程序設(shè)計(jì)語(yǔ)言,又可作為應(yīng)用軟件的程序設(shè)計(jì)語(yǔ)言。尤其是當(dāng)今計(jì)算機(jī)應(yīng)用極為廣泛,軟件的設(shè)計(jì)、編寫質(zhì)量要求高,經(jīng)常與硬件局部打交道,如:界面設(shè)計(jì)等,所以用C語(yǔ)言編寫是最理想的。因而C語(yǔ)言也是當(dāng)前計(jì)算機(jī)語(yǔ)言中用得最廣泛的語(yǔ)言之一。3整理ppt§1.1C語(yǔ)言出現(xiàn)的歷史背景一、操作系統(tǒng)的設(shè)計(jì)語(yǔ)言O(shè).S.–––操作系統(tǒng),為用戶使用計(jì)算機(jī)提供一個(gè)操作環(huán)境:系統(tǒng)命令、語(yǔ)言編程等。如:DOS.UNIX以前:O.S.軟件用匯編指令編寫。匯編語(yǔ)言:一種二進(jìn)制指令代碼的符號(hào)表示,既繁瑣,又易出錯(cuò),可讀性差。改進(jìn):用C語(yǔ)言編寫,既提高了程序的可讀性,又可與硬件打交道。4整理ppt二、開展過(guò)程
1960年出現(xiàn)了Algol60語(yǔ)言,但該語(yǔ)言主要面向問(wèn)題,與硬件較遠(yuǎn),故英國(guó)劍橋大學(xué)推出了CPL(CombinedProgrammingLanguage)1967年,MatinRichards對(duì)CPL進(jìn)行改進(jìn)、簡(jiǎn)化、推出了BCPL(BasicCombinedProgrammingLanguage)1970年,美國(guó)貝爾實(shí)驗(yàn)室KenThomson以BCPL為根底,再次簡(jiǎn)化推出了B語(yǔ)言,并寫了第一個(gè)UNIX系統(tǒng)。5整理ppt美國(guó)貝爾實(shí)驗(yàn)室D.M.Ritchie在B語(yǔ)言根底上設(shè)計(jì)出了C語(yǔ)言,并用其將UNIX系統(tǒng)全部改寫并實(shí)現(xiàn)。經(jīng)進(jìn)一步改進(jìn),至1977年出現(xiàn)了與具體機(jī)器無(wú)關(guān)的C編譯文本,從而使C語(yǔ)言廣泛應(yīng)用,各種機(jī)器皆可使用。1978年,美國(guó)BrainW.Kernighan與Dennis.M.Ritchie聯(lián)合出版一書?TheCProgrammingLanguage?成為ANSIC之根底。6整理ppt
1983年,美國(guó)標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI)制定了ANSIC。ANSIC為根底:
不同機(jī)器有不同版本,尤其是函數(shù)均應(yīng)參考相應(yīng)的機(jī)器。7整理ppt§1.2C語(yǔ)言的特點(diǎn)
只有通過(guò)學(xué)習(xí),方可理解C之特點(diǎn),先簡(jiǎn)敘之:1.簡(jiǎn)潔、緊湊、方便、靈活
32個(gè)關(guān)鍵字,9種控制語(yǔ)句,主要用小寫字母,壓縮一切不必要成分2.運(yùn)算符豐富除了最根本的+、-、×、÷、%等運(yùn)算外,還將括號(hào)、賦值、類型強(qiáng)制轉(zhuǎn)換等均作為運(yùn)算符,共有34種運(yùn)算符。8整理ppt3.數(shù)據(jù)結(jié)構(gòu)豐富除根本類型外,有指針,結(jié)構(gòu)體、共同體等類型。4.具有結(jié)構(gòu)化的控制語(yǔ)句模塊完整,控制中的語(yǔ)句可完整化。5.語(yǔ)法嚴(yán)格,但有靈活性如:數(shù)據(jù)類型可相互通用:整型、字符型通用。9整理ppt6.可與機(jī)器硬件打交道,直接訪問(wèn)內(nèi)存地址,具有“高〞、“低〞級(jí)語(yǔ)言之功能。7.生成目標(biāo)代碼質(zhì)量高,執(zhí)行效率高。8.可移植性優(yōu)于匯編語(yǔ)言。10整理ppt§1.3簡(jiǎn)單的C程序介紹
為了更好、更快地掌握C程序,我們先看幾個(gè)C語(yǔ)言程序:例1.main(){printf("Thisisacprogram\n");}11整理ppt例2.main()/*求兩個(gè)數(shù)之和*/{inta,b,sum;/*這是定義變量*/
a=123;b=456;sum=a+b;printf("sumis%d\n",sum);}12整理ppt例3.main()/*主函數(shù)*/{inta,b,c;/*定義變量*/scanf("%d,%d",&a,&b);/*輸入變量a和b的值*/c=max(a,b);/*調(diào)用max函數(shù),將得到的值賦給c*/printf("max=%d",c;)/*輸出c的值*/}13整理pptintmax(x,y)intx,y;/*對(duì)形參x、y作類型定義*/{intz;/*max函用到的變量z,也要加以定義*/
z=y;if(x>y)z=x;return(z);/*將z的值返回,通過(guò)max帶回調(diào)用處*/}14整理ppt通過(guò)分析,初步看到:1.C程序全部由一個(gè)一個(gè)的函數(shù)構(gòu)成。至少有一個(gè)主函數(shù)main(),其它函數(shù)可被主函數(shù)調(diào)用或相互調(diào)用。其它函數(shù)可為C函數(shù)庫(kù)中函數(shù),也可為自己編的函數(shù)。上述特點(diǎn)稱為程序的模塊化.15整理ppt2.
函數(shù)的構(gòu)成:
函數(shù)說(shuō)明+函數(shù)體
函數(shù)體:
變量定義與執(zhí)行語(yǔ)句
可允許空函數(shù):
dump(){}函數(shù)說(shuō)明包括:函數(shù)名、類型、屬性、參數(shù)等16整理ppt3.
函數(shù)的執(zhí)行一定從main()開始。盡管main()函數(shù)位置可自由。4.
書寫自由,一個(gè)語(yǔ)句可多行,一行可多個(gè)語(yǔ)句。5.
每一條語(yǔ)句必須有一個(gè)分號(hào);6.C語(yǔ)言的輸入/出均以函數(shù)形式出現(xiàn)。scanf(),printf().7.
可用/
/對(duì)C語(yǔ)言加注釋17整理ppt程序設(shè)計(jì)C主講教師:劉丹18整理ppt第二章數(shù)據(jù)類型、運(yùn)算符與表達(dá)式§2.1.數(shù)據(jù)類型
著名計(jì)算機(jī)科學(xué)家沃思提出:
程序=數(shù)據(jù)結(jié)構(gòu)+算法19整理ppt
所以,存放數(shù)據(jù)的方式直接反映了一種語(yǔ)言的數(shù)據(jù)表達(dá)能力。數(shù)據(jù)的存儲(chǔ)方式又稱之為:數(shù)據(jù)類型。
舉一個(gè)例子:以考生各科成績(jī)及總分排隊(duì)問(wèn)題為列。
成績(jī)的存放–––以數(shù)組形式
排隊(duì)方法––––算法20整理ppt前面已述.C數(shù)據(jù)類型豐富,分為:根本類型構(gòu)造類型指針類型空類型整型字符型實(shí)型單精度雙精度數(shù)組結(jié)構(gòu)體共用體數(shù)據(jù)有常量、變量之分,均為其中一種類型。本章先學(xué)習(xí)根本類型。枚舉21整理ppt§2.2常量與變量2.2.1常量和符號(hào)常量常量程序運(yùn)行過(guò)程中不能被改變的量。一般的數(shù)據(jù)顯式寫法均表示常量。如程序中:
20
整型常量
15.8實(shí)型常量
'a'字符常量22整理ppt例:#definePRICE30main(){intnum,total;num=10;total=num*PRICE;printf("total=%d",total);}還可用一個(gè)符號(hào)表示一個(gè)常量符號(hào)常量23整理ppt符號(hào)常量(一般用大寫,以區(qū)分變量)再如:=3.1415629#definePAI3.1415629#definePRICE3024整理ppt2.2.2變量
程序執(zhí)行中可以改變的量稱為變量。變量包括變量名和變量值。變量名
用標(biāo)識(shí)符命名,對(duì)應(yīng)一定數(shù)量的內(nèi)存存貯單元,其單元數(shù)視變量類型而定。標(biāo)識(shí)符
由字母、數(shù)字、下劃線組成且由字母或下劃線開頭的字符串。25整理ppt
標(biāo)識(shí)符可用來(lái)命名變量及作為常量名、函數(shù)名、類型名、文件名等,一個(gè)程序內(nèi)不得有重復(fù)名。
如:_sum,sum,student_name,price等
習(xí)慣上,變量名、函數(shù)名等用小寫字母表示。常量名用大寫字母表示(以增加可讀性)。另:需注意標(biāo)識(shí)符長(zhǎng)度,視不同系統(tǒng)而定。設(shè)允許8個(gè)字符。那么:student_namestudent_number為同一名字。26整理pptC語(yǔ)言中,變量須先定義,后使用如:intstudentstudent=30;那么假設(shè)寫成student=30,那么未定義,編譯時(shí)指出其錯(cuò)。
一旦變量被定義,即可在編譯時(shí)為其分配相應(yīng)數(shù)量的單元。
一旦變量被定義,其類型便確定。那么可檢查其運(yùn)算的合法性。如:a%b表示a整除以b的余,那么a,b必須為整型量。27整理ppt§2.3整型數(shù)據(jù)2.3.1整型常量整型常量
整型常數(shù)C語(yǔ)言提供了三種形式
十進(jìn)制如:256,308,-120等28整理ppt八進(jìn)制以數(shù)字0開頭表示的整數(shù)例:0235,0146-012等.0235=2×82+3×8+5=157100146=1×82+4×8+6=10210-012=-(1×8+2〕=-1010
十六進(jìn)制以"0x"開頭的整型數(shù)
如:0x16,0x2829整理ppt2.3.2整型變量一、分類:分為四種:根本型、短整型、長(zhǎng)整型、無(wú)符號(hào)型
2.短整型:用"shortint"或"short"定義
3.長(zhǎng)整型:用"long"或"longint"定義1.根本型:用"int"定義30整理ppt4.無(wú)符號(hào)型:不存放符號(hào),那么不帶符號(hào)數(shù).
又分無(wú)符號(hào)整型,無(wú)符號(hào)短整型,無(wú)符號(hào)長(zhǎng)整型。上述各種類型所占內(nèi)存單元數(shù)及取值范圍視不同機(jī)器而不同。詳見P13。31整理ppt二、定義方法整型變量分別以以下方式定義2.
短整型
shortint或shorta,b,c;3.
長(zhǎng)整型
longint或longa,b,c;1.根本整型:inta,b,c;32整理ppt4.
無(wú)符號(hào)型
unsigneda,b,c;unsignedshorta,b,c;unsignedlonga,b,c;例:main(){inta,b,c,d;/*指定a,b,c,d為整型變量*/
unsigndu;/*指定u為無(wú)符號(hào)整型變量*/
a=12;b=–24;u=10;33整理ppt
c=a+u;d=b+u;printf("a+u=%d,b+u=%d\n",c,d);}由此看到:不同類型的整型數(shù)據(jù)可進(jìn)行算術(shù)運(yùn)算。但有一定規(guī)那么,見§2.7.運(yùn)行結(jié)果為
a+u=22,b+u=–1434整理ppt三、關(guān)于整型常量程序中出現(xiàn)的整型常數(shù),系統(tǒng)按以下規(guī)那么分配變量(內(nèi)存單元)或賦值給相應(yīng)變量2.假設(shè)超越,而在–2147483648~2147483647之間,那么可賦給longint變量。1.當(dāng)常數(shù)(量)在–32768~32767之間,那么可賦給int,longint變量。35整理ppt4.一個(gè)非負(fù)整數(shù)<32768那么可賦給unsignedint。5.
一個(gè)常數(shù)后加'l',或'L',表示長(zhǎng)整數(shù).如123l.主要用于函數(shù)調(diào)用時(shí)形、實(shí)參數(shù)傳遞。3.假設(shè)int,shortint長(zhǎng)度相同,那么二者皆可賦值。36整理ppt§2.4實(shí)型數(shù)據(jù)2.4.1實(shí)型常量有二種表示形式
1.十進(jìn)制形式如:0.126,523.64等2.
指數(shù)形式對(duì)于較大或較小的數(shù),可用指數(shù)形式
0.00001261.26E–512600001.26E+6或1.26E6'E','e'均可.37整理ppt分為單精度型與雙精度型.
分別為
floatx,y,z;(單精度)
doublea,b,c;(雙精度)
一般地:單精度占4字節(jié)內(nèi)存單元;
雙精度占8字節(jié)內(nèi)存單元.2.4.2實(shí)型變量38整理ppt注意:
不同機(jī)器對(duì)實(shí)型變量的有效數(shù)字長(zhǎng)度的限制
如:pc機(jī),單精度一般為7位,雙精度15位單精度數(shù)值:10–38~1038雙精度數(shù)值:10–308~10308于是:floata;a=123456.789那么實(shí)際賦值a123456.739整理ppt§2.5字符型數(shù)據(jù)
用一對(duì)單引號(hào)括起來(lái)的單個(gè)字符。
如'a','A',二者不一樣.此外,以"\"開頭后接一個(gè)字符或n個(gè)字符代表了一種特殊字符常量。–––轉(zhuǎn)義字符。
如\n––換行,\r––回車2.5.1字符常量40整理ppt其它如下表:字符形式\n\t\v\b\r\f\\\'\ddd\xxh功能換行橫向跳格(即跳到下一個(gè)輸出區(qū))豎向跳格退格回車走紙換頁(yè)反斜杠字符“\〞單引號(hào)(撇號(hào))字符1到3位8進(jìn)制數(shù)所代表的字符1到2位16進(jìn)制數(shù)所代表的字符41整理ppt注意:\表示ASCII碼字符三位八進(jìn)制如
\101––表示字母A又:\x十六進(jìn)制ASCII字符\x41––表示字母A42整理ppt其定義方式為:
charc1,c2;c1='A';c2='B';字符變量只占一個(gè)字節(jié)單元。2.5.2字符變量用來(lái)存放一個(gè)字符的變量.43整理ppt
一個(gè)字符存入一個(gè)字符變量。其對(duì)應(yīng)單元存放的是其ASCII碼,即ASCII碼的二進(jìn)制形式。
由此:字符變量中的數(shù)據(jù)是一整型數(shù)據(jù)。輸出時(shí)既可輸出字符,亦可輸出整數(shù),且字符變量可作整數(shù)運(yùn)算。2.5.3字符數(shù)據(jù)的實(shí)際存放形式44整理ppt例1:main(){charc1,c2;c1=97;c2=98;printf("%c%c",c1,c2)}運(yùn)行結(jié)果ab
看如下幾個(gè)例子:45整理ppt例2:main(){charc1,c2;c1='a';c2='b';c1=c1–32;c2=c2–32;printf("%c%c",c1,c2)}運(yùn)行結(jié)果AB46整理ppt例3:main(){inti;charc;i='a';c=97;printf("%c,%d\n",c,c);printf("%c,%d\n",i,i);}
運(yùn)行結(jié)果:a,97a,9747整理ppt有的系統(tǒng)將一個(gè)字節(jié)的整型變量的最高位,作為符號(hào)。這時(shí)對(duì)0~127之間的字符可輸出正整數(shù)(ASCII)。但128~255字符最高位為1,那么作為負(fù)數(shù)輸出。
由此最好用unsignedint存放字符整數(shù)(ASCII)。注:48整理ppt用雙引號(hào)括起來(lái)的字符串。
例:"GoodMorning!"
注意'A'與"A"是不同字符串存放時(shí),在最后加上"/0"––空字符。
于是:GoodMorning!/02.5.4字符串常量49整理ppt"A"A/0但'A'
A注意:1.
字符串長(zhǎng)度=實(shí)際字符個(gè)數(shù)+1,但最后\0不輸出.
printf("GoodMorning!")此處不寫/0。自動(dòng)加上。2.
單個(gè)字符的字符串不能賦給字符變量。
例:charc;c="a";是錯(cuò)誤的。50整理ppt§2.6變量賦初值C語(yǔ)言允許定義變量時(shí)賦予初值。
如:
inti=6;floatx=8.35;charc='6';*也可對(duì)某個(gè)變量賦初值:
inta,b,c=6;51整理ppt*不可能將同初值的變量賦初值時(shí)寫成:inta=b=c=6;
只能:
inta=6,b=6,c=6;
定義變量時(shí)賦初值實(shí)際上是在運(yùn)行時(shí)執(zhí)行一個(gè)賦初值語(yǔ)句:inta=6;相當(dāng)于:inta;a=6;52整理ppt§2.7類數(shù)值型數(shù)據(jù)間的混合運(yùn)算C語(yǔ)言允許雙精度、單精度、整型及字符數(shù)據(jù)之間混合運(yùn)算10+'a'+1.5–8765.1234'b'是允許的。但有一個(gè)規(guī)那么:先轉(zhuǎn)換成同一類型,再計(jì)算。53整理pptdoublefloat上下圖中“〞表示必定轉(zhuǎn)換。如'a'+'b',先轉(zhuǎn)換為int。結(jié)果為int。轉(zhuǎn)換方法:
long
unsigned
intchar,short即:既使是同一種類型也按"
"轉(zhuǎn)換。54整理ppt圖中“〞:表示低,高型數(shù)據(jù)運(yùn)算時(shí),均先轉(zhuǎn)換為高型。例:10+'a'+if–d/e其中:
i––intf––floatd––doublee––long55整理ppt
10+'a':轉(zhuǎn)為int,結(jié)果為int
i
f:轉(zhuǎn)為double,結(jié)果為double
+:轉(zhuǎn)為double
d/e:轉(zhuǎn)為double
-轉(zhuǎn)為double那么運(yùn)算時(shí):56整理ppt§2.8算術(shù)運(yùn)算符與算術(shù)表達(dá)式運(yùn)算符:運(yùn)算的符號(hào)表示。
C語(yǔ)言有豐富的運(yùn)算功能,先簡(jiǎn)述之2.8.1.C運(yùn)算符1.
算術(shù)運(yùn)算符+,–,,/,%,等3.
邏輯運(yùn)算符!,&&,||2.
關(guān)系運(yùn)算符>,<,==,>=,<=,!=57整理ppt4.
位運(yùn)算符<<,>>,~,|,^,&.5.
賦值運(yùn)算符=等6.
條件運(yùn)算符?等7.
逗號(hào)運(yùn)算符,8.
指針運(yùn)算符*,&58整理ppt11.
分量運(yùn)算符?,
,12.
下標(biāo)運(yùn)算符[]13.
其它運(yùn)算符如函數(shù)的調(diào)用()9.
求字節(jié)數(shù)運(yùn)算符sizeof10.
強(qiáng)制類型轉(zhuǎn)換運(yùn)算符(類型)
59整理ppt2.8.2算術(shù)運(yùn)算符和算術(shù)表達(dá)式一、根本算術(shù)運(yùn)算符+
加法正值3+6,+3–減法負(fù)值6–4,–5
乘法38/除法8/5%求余7%4的值為360整理ppt注:
兩個(gè)整型數(shù)據(jù)相除(結(jié)果為整,一般向零靠攏)。–5/3–1“/〞中,有一個(gè)float,那么結(jié)果為double型,使用時(shí)千萬(wàn)注意int/int出現(xiàn)數(shù)據(jù)喪失。61整理ppt二、算術(shù)表達(dá)式及算術(shù)運(yùn)算符的優(yōu)先級(jí)與結(jié)合性運(yùn)算對(duì)象:常量、變量、函數(shù)等優(yōu)先級(jí):
(),
,/,%,
+,–結(jié)合性:同一優(yōu)先級(jí),自左向右,為左結(jié)合性,反之為右結(jié)合性。例:a
b/c–1.5+'a'–de
當(dāng)類型不同的數(shù)據(jù)進(jìn)行運(yùn)算時(shí),按§2.7介紹的類型轉(zhuǎn)換。算術(shù)表達(dá)式:用算術(shù)運(yùn)行運(yùn)算符和括號(hào)將運(yùn)算對(duì)象連接起來(lái),且符合C語(yǔ)法規(guī)那么的式子。62整理ppt三、可利用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符將一個(gè)算術(shù)表達(dá)式轉(zhuǎn)換為所需類型形式:(類型名)(表達(dá)式)例如:(double)a將a轉(zhuǎn)換為double(int)(x+y)將x+y轉(zhuǎn)換為int(float)(5%3)將5%3轉(zhuǎn)換為float63整理ppt注:1.
括號(hào)不能省略。
如:intx會(huì)理解為變量intx.
2.
轉(zhuǎn)換后的類型數(shù)據(jù)由系統(tǒng)分配一個(gè)中間變量存放,而原變量類型不變。floatx;又如:(int)(x+y)假設(shè)省略:(int)x+y會(huì)變成將x轉(zhuǎn)成整型.(int)x;那么x本身仍為實(shí)型,而(int)x由一個(gè)中間變量(整)存放x的整數(shù)局部。64整理ppt例:main(){floatx;inti;x=3.6;i=(int)x;printf("x=%d",x,i);}那么:x=3.600000,i=3.65整理ppt總結(jié)以上類型轉(zhuǎn)換,有二種:1.
強(qiáng)制另:
強(qiáng)制類型轉(zhuǎn)換運(yùn)算優(yōu)先于算術(shù)運(yùn)算符.2.系統(tǒng)自動(dòng)如:假設(shè)x為float,那么x%3不合法。但可用(int)x%3來(lái)解決。(附錄III介紹了優(yōu)先級(jí))66整理ppt四、自增,自減運(yùn)算符設(shè)有inti=3;++自增1––自減1那么:++i,i++都會(huì)使i變?yōu)?,但有區(qū)別:++i:先使i值+1,再使用i值;i++:先使用i值,再使i值+1.j=++i;j=4,i=4.(i=i+1;j=i;)j=i++;j=3,i=4.(j=i;i=i+1)67整理ppt同理:––i,i––,均使i值–1,但:
又如:printf("i=%d\n",i++);
結(jié)果:i=3假設(shè):printf("i=%d\n",++i);結(jié)果:i=4––i:先使i值–1,再使用i值;i––:先使用i值,再使i值–1i=3;68整理ppt幾點(diǎn)注意:1.++和––運(yùn)算法只能用于變量,不得用于常量和表達(dá)式.2.++,–
–,的結(jié)合性為從右至左,而一般算術(shù)運(yùn)算符為從左至右。如:如5++,(a+b)++均為不合法.–i++
"–"和"++"為同一優(yōu)先級(jí).–i++相當(dāng)于–(i++)假設(shè)i=3,那么結(jié)果為–3,i為4.++,––主要用于循環(huán)變量自增或自減。69整理ppt1.
要慎用++、––運(yùn)算符。五、有關(guān)表達(dá)式使用中的問(wèn)題說(shuō)明那么:先對(duì)i進(jìn)行3次自加,為6,然后三個(gè)i相加為18,而i為6。如:
表達(dá)式(i++)+(i++)+(i++)(i=3)
一般認(rèn)為:從左至右:3+4+5=12,i6.但TurboC.MSC都是先取三個(gè)原值相加:i+i+i=9i6如果表達(dá)式數(shù)為:
k=(++i)+(++i)+(++i)70整理ppt2.
在表達(dá)式中,有的運(yùn)算符為一個(gè)字符,有的為兩個(gè)字符。3.
在函數(shù)調(diào)用時(shí),如:一般地:自左至右盡可能多地將假設(shè)干字符組成一個(gè)運(yùn)算符。例:i+++j,究竟理解為(i++)+j還是i+(++j)?printf("%d,%d",i,i++);假設(shè)i=3,假設(shè)參數(shù)計(jì)算從左至右,那么輸出3,3假設(shè)從右至左,那么輸出4,3上述問(wèn)題看似復(fù)雜,最好上機(jī)實(shí)踐.71整理ppt§2.9賦值運(yùn)算符和賦值表達(dá)式符號(hào)"="為賦值運(yùn)算符。2.
整型數(shù)據(jù)賦給實(shí)型變量,數(shù)值不變,但按實(shí)數(shù)形式存放.1.
將實(shí)型數(shù)據(jù)(無(wú)論單,雙精度)賦給整型變量時(shí),舍棄小數(shù).賦值時(shí),兩邊類型假設(shè)不一致,那么按以下規(guī)那么轉(zhuǎn)換:72整理ppt4.
將intlongint,進(jìn)行符號(hào)擴(kuò)展。即:符號(hào)擴(kuò)展,低16位long的低16位。5.longintint那么高16位截?cái)唷?.
字符型數(shù)據(jù)賦給整型變量時(shí):(2)字符帶符號(hào)整型變量,那么字符高位擴(kuò)展。(1)字符無(wú)符號(hào)整型變量,那么存入低8位,高8位補(bǔ)零。73整理ppt6.
將unsignedint型
longint高位補(bǔ)0。原值傳送,但數(shù)據(jù)大小不能超值。如:unsignedinta=65535;intb;b=a;那么越界。而位數(shù)相同局部賦值unsignedintintunsignedlonglongunsignedshortshort74整理ppt7.
非unsigned型長(zhǎng)度相同的unsigned型數(shù)據(jù),原樣傳送(包括符號(hào)位)
一、復(fù)合賦值運(yùn)算符:在"
="號(hào)之前加一個(gè)其它運(yùn)算符。C語(yǔ)言規(guī)定:但凡二目運(yùn)算符均可構(gòu)成復(fù)合運(yùn)算符。例:a+=3;相當(dāng)于a=a+3x
=y+8;相當(dāng)于x=x
(y+8)x%=3;相當(dāng)于x=x%75整理ppt一般形式:<變量><賦值運(yùn)算符><表達(dá)式>二、賦值表達(dá)式例:x=10為一賦值表達(dá)式其中<表達(dá)式>又可以是一個(gè)賦值表達(dá)式。例:
x=(y=10)相當(dāng)于y=10;x=y
由于賦值號(hào)為右結(jié)合性,于是"()"可省略,即為:x=y=10;76整理ppt例:a+=a–=a
a(設(shè)a12)又:a=5+(c=6)c=6,a=11a=(b=4)+(c=6)
b=4,c=6,a=10a=(b=10)/(c=2)b=10,c=2,a=5進(jìn)一步,還可用復(fù)合賦值運(yùn)算符作以下運(yùn)算:步驟:
aa144.a–=a
aa=a–a
a=12–144=–132a+=–132a=a+(–132)=–26477整理ppt§2.10逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式
一般形式:
表達(dá)式1,表達(dá)式2其計(jì)算規(guī)那么:先計(jì)算表達(dá)式1,再計(jì)算表達(dá)式2,最后值為表達(dá)式2的值。例:a=35,a4那么:先計(jì)算35,a15,a4=60,結(jié)果為60。78整理ppt又如:(a=3
5,a
4),a+5
擴(kuò)展形式:表達(dá)式1,表達(dá)2,…,表達(dá)式n,結(jié)果為20(作為逗號(hào)表達(dá)式的值)
a+5a即20a.
3
5=15a
a
4=60(此時(shí)a值仍未變)結(jié)果為表達(dá)式n的值
79整理ppt注意:
x=(a=3,6
3)賦值表達(dá)式,x18;
x=a=3,6
a逗號(hào)表達(dá)式,x3.逗號(hào)表達(dá)式主要用于某些語(yǔ)句中需一次計(jì)算多個(gè)表達(dá)式值的情況。如在循環(huán)語(yǔ)句中。函數(shù)調(diào)用中的實(shí)參之間雖然用的是逗號(hào)間隔,但不是逗號(hào)表達(dá)式。如:printf("%d,%d,%d",a,b,c);80整理ppt主講教師:劉丹C程序設(shè)計(jì)81整理ppt第三章最簡(jiǎn)單的C程序設(shè)計(jì)§3.1C語(yǔ)句概述C語(yǔ)句全部為可執(zhí)行語(yǔ)句,對(duì)應(yīng)假設(shè)干機(jī)器操作指命令C程序由許多源文件組成。(分別編譯,然后連接)每一個(gè)源文件由預(yù)編譯命令和假設(shè)干函數(shù)組成。每一個(gè)函數(shù)由說(shuō)明局部和語(yǔ)句局部組成。82整理ppt其結(jié)構(gòu)如圖除說(shuō)明局部外,重要局部為語(yǔ)句局部。C程序源程序文件1源程序文件i源程序文件n預(yù)編譯命令函數(shù)1函數(shù)n說(shuō)明局部執(zhí)行局部(語(yǔ)句)……83整理pptC語(yǔ)句分為五類1.控制語(yǔ)句––改變語(yǔ)句的執(zhí)行順序共有9種控制語(yǔ)句:
if()~else~(條件)
for()~(循環(huán))
while()~(循環(huán))
do~while(循環(huán))84整理ppt
continue(結(jié)束本次循環(huán))
switch(多分支選擇)
break(中止整個(gè)循環(huán))
goto(轉(zhuǎn)移)
return(函數(shù)返回)()表示條件,~表示語(yǔ)句85整理ppt2.函數(shù)調(diào)用語(yǔ)句3.表達(dá)式語(yǔ)句printf("…");表達(dá)式加;如:i=i+1;i++;x+y;
其函數(shù)調(diào)用也可理解為表達(dá)式語(yǔ)句.86整理ppt5.復(fù)合語(yǔ)句4.空語(yǔ)句
;
任何事情都不做.用{}括起來(lái)的一系列語(yǔ)句。如:{z=x+y;t=z/100;printf("%f",t);
}87整理ppt§3.2程序的三種根本結(jié)構(gòu)
從結(jié)構(gòu)化程序設(shè)計(jì)角度出發(fā),程序有三種結(jié)構(gòu):·順序結(jié)構(gòu)·選擇結(jié)構(gòu)·循環(huán)結(jié)構(gòu)88整理ppt1.順序結(jié)構(gòu)表示ABAB先執(zhí)行A,再執(zhí)行B.89整理ppt2.選擇結(jié)構(gòu)表示為ABPTFBTPFA存在某條件P,假設(shè)P為真,那么執(zhí)行A,否那么執(zhí)行B。90整理ppt3.循環(huán)結(jié)構(gòu)表示為PFTAAP為T(1)當(dāng)型結(jié)構(gòu)當(dāng)P條件成立時(shí)(T),反復(fù)執(zhí)行A,直到P為“假〞時(shí)才停止循環(huán).有兩種結(jié)構(gòu):當(dāng)型和直到型91整理ppt(2)
直到型APFTA直到P為真先執(zhí)行A,再判斷P,假設(shè)為F,再執(zhí)行A,如此反復(fù),直到P為T.92整理ppt另外:由選擇結(jié)構(gòu)可以派生出另一種根本結(jié)構(gòu)––多分支結(jié)構(gòu).KK=K1A1A2AiAn……K=K2K=Ki
已證明:上述三種結(jié)構(gòu)組成的程序可以解決全部的問(wèn)題,所以任何一種高級(jí)語(yǔ)言都具備上述三種結(jié)構(gòu)。93整理ppt§3.3賦值語(yǔ)句
由賦值表達(dá)式加分號(hào);構(gòu)成,與其它高級(jí)語(yǔ)言相比有以下不同點(diǎn):“=〞為一運(yùn)算符,由此,構(gòu)成一賦值表達(dá)式,可出現(xiàn)于表達(dá)式能出現(xiàn)的任何地方:if((a=b)>0)t=a;94整理ppt§3.4數(shù)據(jù)輸出
前面已論述:C語(yǔ)言本身無(wú)輸入/出語(yǔ)句,由函數(shù)實(shí)現(xiàn),如printf.等。
一般:C語(yǔ)言提供了一些標(biāo)準(zhǔn)的輸入/出函數(shù)–––系統(tǒng)函數(shù)。95整理ppt形式:putchar(c);功能:向終端(一般為顯示器)輸出一個(gè)字符,其中c為字符型或整型變量注意:用該函數(shù)時(shí),須用預(yù)編譯命令:#include"stdio.h"3.4.1putchar
函數(shù)—字符輸出函數(shù)96整理ppt舉例:#include"stdio.h"main(){chara,b,c;a='B';b='O';c='Y';putchar(a);putchar(b);putchar(C);}結(jié)果:BOY97整理pptputchar(a);putchar('\n');putchar(b);putchar('\n');putchar(c);putchar('\n');*利用putchar還可輸出其它轉(zhuǎn)義字符結(jié)果:BOYputchar('\101');輸出Aputchar('\’');輸出’putchar('\015');輸出↙*假設(shè)將最后一行改為:98整理ppt3.4.2printf函數(shù)––格式輸出函數(shù)一、printf的一般形式
是C語(yǔ)言中使用得最多的一種輸出函數(shù),它可一次按格式輸出多個(gè)不同類型的數(shù)據(jù)。printf(格式控制序列,輸出表列);輸出表列–––用“,〞號(hào)隔開的變量或表達(dá)式序列,其變量的值按對(duì)應(yīng)的格式控制符所指定的格式輸出。99整理ppt格式控制序列–––用雙引號(hào)“...〞括起來(lái)的格式符序列。格式控制序列由格式說(shuō)明符和普通字符組成。2.普通字符原樣輸出1.格式說(shuō)明符:
由%接–格式字符組成如:%f,%d等100整理ppt例:a=3;b=4;printf("a=%d,b=%d",a,b);…結(jié)果:
a=3,b=4無(wú)論a,b中位數(shù)多少,均為上述形式:a=123b=45101整理ppt二、格式字符如直接用%d,那么將出錯(cuò)。不同類型的數(shù)據(jù)輸出,用不同格式字符:1.d格式符––十進(jìn)制整數(shù)輸出。(1)%d:按數(shù)據(jù)的實(shí)際長(zhǎng)度輸出。(2)%md:m表示輸出字段寬度。假設(shè)實(shí)際位數(shù)<m,左邊補(bǔ)空格。(3)%ld:輸出長(zhǎng)整數(shù)如要指定寬度,那么用%mld即可。例:
longa=1234567;printf("%ld",a);102整理ppt2.o格式符–––按八進(jìn)制形式輸出.1111111111111111以1的補(bǔ)碼形式inta=–1;printf("%d,%o",a,a);那么輸出結(jié)果:–1,177777注:連符號(hào)位一起組成八進(jìn)制數(shù)輸出特例:–1存于int單元如以長(zhǎng)整型輸出,在%加l,也可指定寬度m,%mo103整理ppt3.x格式符–––以十六進(jìn)制形式輸出整數(shù).例:inta=–1;printf("%x,%o,%d〞,a,a,a)輸出結(jié)果:ffff,177777,–1104整理ppt例:main(){unsignedinta=65535;intb=–2;printf("a=%d,%o,%x,%u\n",a,a,a,a);printf("b=%d,%o,%x,%u\n",b,b,b,b);}a=–1,177777,ffff,6553511111111111111111111111111111111a=65535b=–24.u格式符–––無(wú)符號(hào)格式輸出整數(shù).b=–2,177776,fffe,65534運(yùn)行結(jié)果為:105整理ppt5.c格式符–––輸出一個(gè)字符.注:假設(shè)有一整型變量,其值在0~255之間,那么可以字符形式輸出.一個(gè)字符型變量亦可以一個(gè)整型數(shù)據(jù)輸出.charc='a';printf("%c",c);106整理ppt例:
main(){charc='a';
inti=97;printf("%c,%d\n",c,c);printf("%c,%d\n",i,i);}107整理ppt運(yùn)行結(jié)果為:a,97a,97也可以指定輸出字符寬度,如果有那么輸出:"?a",即c變量輸出占3列,前2列補(bǔ)空格.print("%3c",c)108整理ppt6.s格式符–––用來(lái)輸出一個(gè)字符串.(1)%ms,輸出的字符串占m列,如字符串本身長(zhǎng)度大于m,那么突破m的限制,將字符串全部輸出。假設(shè)串長(zhǎng)小于m,那么左補(bǔ)空格。允許一定的編輯即允許%ms,%–ms,%m.ns,%–m.ns四種形式,每一形式的意義如下:例:printf("%s","CHINA");結(jié)果:
CHINA109整理ppt(3)%m.ns,輸出占m列,但只取字符串中左端n個(gè)字符。這n個(gè)字符輸出在m列的右側(cè),左補(bǔ)空格。(4)%–ms,其中m、n含義同上,n個(gè)字符輸出在m列范圍的左側(cè),右補(bǔ)空格。如果n>m,那么m自動(dòng)取n值,即保證n個(gè)字符正常輸出。(2)%–ms,如果串長(zhǎng)小于m,那么在m列范圍內(nèi),字符串向左靠,右補(bǔ)空格。110整理ppt7.f格式符–––以小數(shù)形式輸出單、雙精度實(shí)數(shù),有以下幾種形式:%m.nf,指定輸出的數(shù)據(jù)共占m列,其中有n位小數(shù)。如果值長(zhǎng)度小于m,那么左端補(bǔ)空格。%–mn.f,與%m.nf根本相同,只是使輸出的數(shù)值向左端靠,右端補(bǔ)空格。%f,不指定字段寬度,由系統(tǒng)自動(dòng)指定,使整數(shù)局部全部如數(shù)輸出,并輸出6位小數(shù)。%f%m.nf%–m.nf111整理ppt8.e格式符–––以指數(shù)形式輸出單,雙精度實(shí)數(shù)根本形式:%e結(jié)果:1.23456共13列6例5例可有%m.ne和%–m.ne的形式9.g格式符––根據(jù)實(shí)數(shù)大小自動(dòng)選擇f格式,或e格式輸出單雙精度實(shí)數(shù)。e+002例:
printf("%e",123.456)112整理ppt表3.1printf格式字符總結(jié)格式字符d以帶符號(hào)的十進(jìn)制形式輸出整數(shù)(正數(shù)不輸出符號(hào))oxucsfeg以8進(jìn)制無(wú)符號(hào)形式輸出整數(shù)(不輸出前導(dǎo)符0)。以16進(jìn)制無(wú)符號(hào)形式輸出整數(shù)(不輸出前導(dǎo)符0x)。以無(wú)符號(hào)10進(jìn)制形式輸出整數(shù)。以字符形式輸出,只輸出一個(gè)字符。說(shuō)明輸出字符串。以小數(shù)形式輸出單、雙精度數(shù),隱含輸出6位小數(shù)。以標(biāo)準(zhǔn)形式輸出單、雙精度數(shù),數(shù)字部分小數(shù)位數(shù)為6位。選用%f或%e格式中輸出寬度較短的一種格式,不輸出無(wú)意義的0。113整理ppt
許多情況與具體機(jī)器或系統(tǒng)有關(guān),最好機(jī)器上一試。表3.2附加格式說(shuō)明字符字符說(shuō)明用于長(zhǎng)整型整型,可加在格式符d、o、x、u前面。數(shù)據(jù)最小寬度對(duì)實(shí)數(shù),表示輸出n位小數(shù);對(duì)字符串,表示截取的字符個(gè)數(shù)。輸出的數(shù)字或字符在域內(nèi)向左靠。m(代表一個(gè)正整數(shù)).n(代表一個(gè)正整數(shù))–字母1114整理ppt§3.5數(shù)據(jù)輸入系統(tǒng)提供了假設(shè)干函數(shù),以提供從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤)上輸入數(shù)據(jù).3.5.1getchar函數(shù)本節(jié)先介紹兩個(gè)輸入函數(shù).形式:
getchar()功能:從標(biāo)準(zhǔn)輸入裝置(鍵盤)上輸入一個(gè)字符要求:有#include"stdio.h"預(yù)編譯命令115整理ppt例:#include"stdio.h"main(){charc;c=getchar();putchar(c);}116整理ppt3.5.2scanf函數(shù)功能:在標(biāo)準(zhǔn)輸入裝置(鍵盤)上按指定格式輸入各種類型的數(shù)據(jù)地址表列–––變量的地址或字符串首地址。形式:scanf(格式控制序列,地址表列)格式控制序列–––同printf(…..)117整理ppt例:main(){inta,b,c;scanf("%d%d%d",&a,&b,&c);prinft("%d,%d,%d\n,"a,b,c);}運(yùn)行,機(jī)器等待你輸入:345↙
結(jié)果3,4,5118整理ppt注意:1.scanf函數(shù)順用地址量接受數(shù)據(jù)。2.輸入數(shù)據(jù)的間隔為↙,Tab.空格,不能為“,〞.3.允許在格式符中插入附加字符。格式字符及附加字符的定義如下表3.3和表3.4119整理ppt表3.3scanf格式字符格式字符d用來(lái)輸入十進(jìn)制整數(shù)。oxcsfe用來(lái)輸入八進(jìn)制整數(shù)。用來(lái)輸入十六進(jìn)制整數(shù)。用來(lái)輸入單個(gè)字符。說(shuō)明用來(lái)輸入字符串,將字符串送到一個(gè)字符數(shù)組中,在輸入時(shí)以非空白字符開始,以第一個(gè)空白字符結(jié)束。字符串以串結(jié)束標(biāo)志‘\0’作為其最后一個(gè)字符。用來(lái)輸入實(shí)數(shù),可以用小數(shù)形式或指數(shù)形式輸入。以f作用相同,e與f可以互相替換。120整理ppt表3.4scanf附加的格式說(shuō)明字符字符說(shuō)明用于輸入長(zhǎng)整型數(shù)據(jù)(可用%ld,%lo,%lx),以及double型數(shù)據(jù)(用%lf或%le)。用于輸入短整型數(shù)據(jù)(可用%hd,%ho,%hx)。指定輸入數(shù)據(jù)所占寬度(列數(shù))。表示本輸入項(xiàng)在讀入后不賦給相應(yīng)的變量。h域?qū)?為一正整數(shù))*l121整理ppt4.對(duì)于輸入unsigned型數(shù)據(jù),不用%u,而用%d,%o,%x.5.指定數(shù)據(jù)長(zhǎng)度時(shí),系統(tǒng)自動(dòng)截取。那么當(dāng)輸入123456時(shí),
scanf("%3d%3d",&a,&b);a12,b34122整理ppt7.輸入數(shù)據(jù)不能規(guī)定精度.6.在%后加“*〞表示跳過(guò)相應(yīng)的數(shù)據(jù)那么當(dāng)輸入為1234567↙那么a12b67scanf("%2d%*3d%2d",&a,&b);scanf("%7.2f",&a);是錯(cuò)誤的123整理ppt8.在格式控制中除格式說(shuō)明符外假設(shè)還有其它字符,那么應(yīng)按順序原樣輸入。例:scanf("%d,%d",&a,&b);那么必須輸入21,28↙又如:
scanf("a=%d,b=%d,c=%d",&a,&b,&c);那么輸入:a=34,b=58,c=100124整理ppt§3.6程序舉例例1:
輸入三角形三邊,求三角形面積。例2:
輸入一個(gè)大寫字母,要求系統(tǒng)改為小寫字母輸出。例3.
當(dāng)b2–4ac>0時(shí),求ax2+bx+c=0的兩個(gè)根。125整理ppt程序設(shè)計(jì)C主講教師:劉丹126整理ppt
在C程序的三種結(jié)構(gòu)中,分支結(jié)構(gòu)是一重要結(jié)構(gòu),其中的P為條件第四章邏輯運(yùn)算和判斷選取控制問(wèn)題:條件如何表達(dá)?邏輯運(yùn)算、關(guān)系運(yùn)算127整理ppt§4.1關(guān)系運(yùn)算符關(guān)系運(yùn)算比較運(yùn)算,如:a>3為一比較運(yùn)算,當(dāng)a=5,a>3成立。結(jié)果稱為“真〞,否那么,如:a=1,a>3不成立,為假。上述表達(dá)式a>3稱為關(guān)系表達(dá)式。128整理ppt4.1.1
關(guān)系運(yùn)算符及其優(yōu)先次序1.<,<=,>,>=為同一優(yōu)先級(jí),==,!=等為同一優(yōu)先級(jí),但前者高于后者。2.關(guān)系運(yùn)算符優(yōu)先級(jí)低于算術(shù)運(yùn)算符。C語(yǔ)言提供了六種關(guān)系運(yùn)算符
<<=>>===!=優(yōu)先級(jí)為:129整理ppt3.關(guān)系運(yùn)算符優(yōu)先級(jí)高于賦值運(yùn)算符。如以下圖:算術(shù)運(yùn)算符賦值運(yùn)算符關(guān)系運(yùn)算符高低舉例:c>a+b
c>(a+b)a>b!=c
(a>b)!=ca==b<c
a==(b<c)a=b>c
a=(b>c)130整理ppt4.1.2
關(guān)系表達(dá)式關(guān)系表達(dá)式的結(jié)果值規(guī)定為1或0.如:a>b,a+b>b+c,(a=3)>(b=5),'a'>'b',(a>b)>(b<c)完整的定義:用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(算術(shù)、關(guān)系、邏輯、賦值、字符等表達(dá)式)連接起來(lái)的式子。1––結(jié)果為真(成立)0––結(jié)果為假(不成立)131整理ppt如:當(dāng)a=3,b=2,c=1時(shí)(a>b)==c成立1b+c<a不成立0d=a>b那么a>b值為1,所以d=1.f=a>b>ca>b為1,a>b>c為0,所以f=0.132整理ppt§4.2邏輯運(yùn)算符和邏輯表達(dá)式
用邏輯運(yùn)算符將關(guān)系表達(dá)式、邏輯表達(dá)式連接起來(lái)的式子–––邏輯表達(dá)式。133整理ppt4.2.1
邏輯運(yùn)算符及優(yōu)先級(jí)ab!a!ba&&ba||b
真真假假真真
真假假真假真
假真真假假真
假假真真假假三種:&&(與),||(或)!(非)其意義見真值表134整理ppta&&b當(dāng)a,b均為1時(shí),才為1a||b當(dāng)a,b中有一個(gè)為1時(shí),才為1!a當(dāng)a為1,!a為0,反之為1.由此看到:||和&&為雙目運(yùn)算符.!為單目運(yùn)算符。135整理ppt優(yōu)先級(jí)定義:2.&&和||低于關(guān)系運(yùn)算符。!高于算術(shù)運(yùn)算符1.!(非)優(yōu)先于&&(與).&&優(yōu)先于||即:!&&||例:!a&&b||x>y&&c
((!a)&&b)||((x>y)&&c)136整理ppt4.2.2
邏輯表達(dá)式1.邏輯表達(dá)式的值與關(guān)系表達(dá)式值一樣,真為1,假為0。例:a=4那么!a值為0.此處只要a0,為真.那么!a值為0.
a=4,b=5a&&b為1
前面已定義了邏輯表達(dá)式,以下看一看邏輯表達(dá)式的值及具體的運(yùn)算。137整理ppt
4&&0||2為1.
總之,在邏輯運(yùn)算中,非0值參加邏輯運(yùn)算時(shí)被看成1處理.
a=4,b=5a||b為1
a=4,b=5!a||b為1138整理ppt2.一個(gè)邏輯表達(dá)式中的邏輯運(yùn)算符并不是一定全部執(zhí)行.
一個(gè)實(shí)際的例子:判斷年號(hào)是否為潤(rùn)年。如:a&&b&&c.那么當(dāng)a=0(假)時(shí),b,c不需判斷。當(dāng)a=1,b=0,那么不需判c.又如:a||b||c.當(dāng)a=1時(shí),b,c均不必判別。潤(rùn)年的定義:
能被4整除且又能被400整除。
年號(hào)能被4整除但不能被100整除。139整理ppt當(dāng)(year%4!=0)||(year%100==0&&year%400!=0)為1時(shí),year為非潤(rùn)年。設(shè)用變量year表示年號(hào)當(dāng)((year%4==0&&year%100!=0)||year%400==0)為1時(shí),year為潤(rùn)年,否那么為非潤(rùn)年。如果要判別非潤(rùn)年可在上述表達(dá)式前加非(!)運(yùn)算符.當(dāng)!((year%4==0&&year%100!=0)||year%400==0)為1時(shí),year為非潤(rùn)年?;蛘?即:那么:140整理ppt§4.3if語(yǔ)句–––條件判斷4.3.1if的三種形式功能:當(dāng)表達(dá)式值非0時(shí),執(zhí)行語(yǔ)句A,否那么不執(zhí)行語(yǔ)句A.表達(dá)式語(yǔ)句A=00例如:if(x>y)printf("%d",x)形式1
if(表達(dá)式)語(yǔ)句A其流程圖:141整理ppt形式2if(表達(dá)式)語(yǔ)句Aelse語(yǔ)句B功能:表達(dá)式為非0,執(zhí)行語(yǔ)句A
表達(dá)式為0,執(zhí)行語(yǔ)句B表達(dá)式語(yǔ)句A語(yǔ)句B0=0例:if(x>y) printf("%d",x); elseprintf("%d",y);142整理ppt形式3if(表達(dá)式1)語(yǔ)句1
elseif(表達(dá)式2)語(yǔ)句2elseif(表達(dá)式3)語(yǔ)句3……elseif(表達(dá)式n)語(yǔ)句nelse語(yǔ)句n143整理ppt流程:表達(dá)1表達(dá)2表達(dá)3表達(dá)n語(yǔ)句1語(yǔ)句2語(yǔ)句3語(yǔ)句n語(yǔ)句n語(yǔ)句1……0=0=0000144整理ppt如:if(3)prinft("o.k");if('a')…1.表達(dá)式可以是邏輯、關(guān)系,甚至是算術(shù)表達(dá)式。2.上述形式中的語(yǔ)句必須以分號(hào)結(jié)束3.上述形式中的語(yǔ)句可以是由{}括起來(lái)的復(fù)合語(yǔ)句。此時(shí),在{}外可以不用分號(hào).注意的問(wèn)題:145整理pptmain(){floata,b,t;scabf("%f,%f",&a,&b);if(a>b){t=a;a=b;b=t;}printf("%5.2f,%5.2f",a,b);}例4.1輸入兩個(gè)實(shí)數(shù),按代數(shù)值由小到大次序輸出這兩個(gè)數(shù)。146整理ppt3.6,–3.2
–3.20,3.60運(yùn)行情況如下:147整理ppt例4.2輸入三個(gè)數(shù),按大小順序輸出。main()
{floata,b,c,t;scanf("%f,%f,%f",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}148整理pptif(b>c){t=b;b=c;c=t;}printf("%5.2f,%5.2f,%5.2f",a,b,c);}運(yùn)行情況如下:3,7,1
1.00,3.00,7.00149整理ppt4.3.2.if語(yǔ)句的嵌套if(表達(dá)式1)內(nèi)嵌ifelse內(nèi)嵌注意:else與最近的if配對(duì).一般形式在上述形式的if語(yǔ)句中,又可以是if語(yǔ)句–––稱為嵌套。if(表達(dá)式2)語(yǔ)句1if(表達(dá)式3)語(yǔ)句3else語(yǔ)句2else語(yǔ)句4150整理ppt例:if()if()語(yǔ)句2else語(yǔ)句3if(){if()語(yǔ)句1}
else…所以:必要時(shí)加{}.if()語(yǔ)句1else151整理ppt例4.3
有一函數(shù)y=–1(x<0)0(x=0)1(x>0)編一程序,輸入一個(gè)x值,輸出y值。有以下幾種寫法,請(qǐng)判斷哪些是正確的?程序1:
main(){intx,y;scanf("%d",&x);152整理pptif(x<0)y=–1;elseif(x==0)y=0;elsey=1;printf("x=%d,y=%d\n",x,y);}程序2:將上面程序的if語(yǔ)句改為:
if(x>=0)if(x>0)y=1;elsey=0;elsey=–1;153整理ppt程序3:將上述if語(yǔ)句改為:
y=–1;if(x!=0)if(x>0)y=1;elsey=0;程序4:
y=0;if(x>=0)if(x>0)y=1;elsey=–1;154整理ppt4.3.3條件運(yùn)算符C語(yǔ)言提供了一個(gè)簡(jiǎn)單的條件賦值語(yǔ)句或條件表達(dá)式。問(wèn)題:當(dāng)判斷條件不管是“真〞是“假〞,均給同一變量賦值時(shí),能否簡(jiǎn)化語(yǔ)句書寫?條件運(yùn)算符為?:三目運(yùn)算符。155整理ppt功能:先判表達(dá)式1,假設(shè)非0,那么值為表達(dá)式2的值,否那么為表達(dá)式3的值。一般形式表達(dá)式1?表達(dá)式2:表達(dá)式3max=a>b?a:b;當(dāng)a>b.maxa.否那么maxb156整理ppt注:1.
條件運(yùn)算符優(yōu)先于賦值運(yùn)算符.
例:max=(a>b?a:b)可去掉()2.
條件運(yùn)算符低于關(guān)系運(yùn)算符和算術(shù)運(yùn)算符。例:max=a>b?a:b+1
max=a>b?a:(b+1)并不是
max=(a>b?a:b)+13.
條件運(yùn)算符結(jié)合性為從右至左.
如:a>b?a:c>d?c:d
相當(dāng)于a>b?a:(c>d?c:d)157整理ppt4.
條件表達(dá)式不能取代一般的if語(yǔ)句,只有當(dāng)if的兩個(gè)分支為給同一變量賦值時(shí)才可替代if.if(a>b)printf("%d",a);elseprintf("%d",b)由于printf.不是表達(dá)式,故不可用條件表達(dá)式,但可為:
printf("%d",a>b?a:b);158整理ppt5.
表達(dá)式1、表達(dá)式2、表達(dá)式3可類型不同。main(){charch;scanf("%c",&ch);ch=(ch>='A'&&ch<='Z'?(ch+32):ch;printf("%c",ch)}例4.4輸入一個(gè)字符,判別它是否大寫字母,如果是,將它轉(zhuǎn)換成小寫字母;如果不是,不轉(zhuǎn)換。然后輸出最后得到的字符。159整理ppt運(yùn)行結(jié)果如下:
A
a160整理ppt§4.4switch語(yǔ)句–––開關(guān)語(yǔ)句問(wèn)題:當(dāng)某一表達(dá)式有n個(gè)取值,每一取值執(zhí)行一語(yǔ)句,那么如果用內(nèi)嵌if十分繁鎖,而用switch簡(jiǎn)單.一般形式:switch(表達(dá)式){case常量表達(dá)式1:語(yǔ)句1
case常量表達(dá)式2:語(yǔ)句2
case常量表達(dá)式n:語(yǔ)句ndefault:語(yǔ)句n+1}161整理ppt例:
根據(jù)成績(jī)等級(jí)打印百分?jǐn)?shù)段.switch(grade){case'A':printf("85~100\n");case'B':printf("70~84\n");case'C':printf("60~69\n");case'D':printf("<60\n");default:printf("error\n");}162整理ppt根據(jù)表達(dá)式的取值,判斷其與哪一個(gè)常量表達(dá)式相等。如=表達(dá)式i,那么自語(yǔ)句i開始執(zhí)行,直到語(yǔ)句n+1止。假設(shè)與所有常量表達(dá)式值不相等,那么從default后的語(yǔ)句開始執(zhí)行。功能:163整理pptswitch(表達(dá)式){case常表1:語(yǔ)句1;
break;一般形式改為:以上存在一個(gè)問(wèn)題:沒有完全起到分支作用。解決方法:增加break語(yǔ)句,使之跳出switch結(jié)構(gòu)。164整理pptcase常表2:語(yǔ)句2;break;……case常表n:語(yǔ)句n;
break;default:語(yǔ)句n+1;}請(qǐng)大家修改以上例子,使之正確。165整理ppt注:1.常表值必須互不相等,否那么二異性。2.case順序無(wú)關(guān)緊要。3.
不一定非用break不可,有時(shí)幾種情況合并執(zhí)行一組語(yǔ)句。166整理pptswitch(grade){case'A':cas
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 門診報(bào)銷面試題及答案
- 簡(jiǎn)譜旋律考試題及答案
- 黑熱病考試題及答案
- java面試題及答案約瑟夫環(huán)
- 智能駕駛技術(shù)趨勢(shì)-1
- 孩子公益意識(shí)提升技巧
- 提升孩子專注力技巧
- 家電公司質(zhì)量追溯管理規(guī)定
- 2.5直線與圓的位置關(guān)系(第1課時(shí)位置關(guān)系、切線的判定與性質(zhì))(教學(xué)課件)數(shù)學(xué)蘇科版九年級(jí)上冊(cè)
- 保安隊(duì)列訓(xùn)練培訓(xùn)課件
- 中醫(yī)急癥診療方案(3篇)
- 2025年上海市高考化學(xué)試卷(含答案)
- 《人工智能概論-面向通識(shí)課程》全套教學(xué)課件
- 三區(qū)人才面試題及答案大全
- 物業(yè)服務(wù)禮儀培訓(xùn)大綱
- 2025年舞臺(tái)燈光設(shè)備項(xiàng)目市場(chǎng)調(diào)查研究報(bào)告
- 防火鋼質(zhì)門、卷簾門項(xiàng)目可行性研究報(bào)告-商業(yè)計(jì)劃書
- 普查保密協(xié)議書
- 《初學(xué)者指南:美術(shù)基礎(chǔ)課件》
- 冶金礦山采礦設(shè)計(jì)規(guī)范
- 配送車輛違章管理制度
評(píng)論
0/150
提交評(píng)論