




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、,第三章,語句,3.1 基本語句,一個(gè)c程序可以有若干個(gè)源程序文件組成 一個(gè)源文件可以有若干個(gè)函數(shù)和預(yù)處理命令以及全局變量聲明部分組成 一個(gè)函數(shù)有函數(shù)首部和函數(shù)體組成 函數(shù)體由數(shù)據(jù)聲明和執(zhí)行語句組成 C語句分為,二、空語句 只有一個(gè)分號(hào)的語句 ; (什么也不做) 用來做流程的轉(zhuǎn)向點(diǎn) 用來作為循環(huán)語句中的循環(huán)體,一般格式: 內(nèi)部數(shù)據(jù)說明; 語句1; 語句n; ,四、控制語句 完成一定的控制功能 1 if() else 條件語句 2 for() 循環(huán)語句 3 while()循環(huán)語句 4 do while();循環(huán)語句 5 continue 繼續(xù)語句 6 break 間斷語句 7 switch()
2、開關(guān)語句 8 goto 轉(zhuǎn)向語句 9 return 返回語句,五、函數(shù)調(diào)用語句 函數(shù)調(diào)用+語句 例如: sin(0.5); scanf(“%d”, 等等,本節(jié)要點(diǎn),關(guān)系運(yùn)算符與關(guān)系表達(dá)式P27 邏輯運(yùn)算符與邏輯表達(dá)式P27 選擇結(jié)構(gòu)程序設(shè)計(jì) 循環(huán)的基本概念 不同形式的循環(huán)控制 多重循環(huán)問題,3.2控制語句,主要內(nèi)容,一、關(guān)系運(yùn)算符和關(guān)系表達(dá)式 二、邏輯運(yùn)算符和邏輯表達(dá)式 三、if語句 四、witch語句 五、程序舉例,一、關(guān)系運(yùn)算符和關(guān)系表達(dá)式,1、關(guān)系運(yùn)算符及其優(yōu)先次序 1) (大于) 4)= (大于或等于) 5)= (等于) 6)!= (不等于),說明: 注意寫法 關(guān)系運(yùn)算符的優(yōu)先級(jí)低于算
3、術(shù)運(yùn)算符 關(guān)系運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符,2、關(guān)系表達(dá)式 用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(可以是算術(shù)表達(dá)式或 關(guān)系表達(dá)式,邏輯表達(dá)式,賦值表達(dá)式,字符表達(dá)式) 接起來的式子,稱關(guān)系表達(dá)式 例:ab,a+bb+c,(a=3)(b=5),ab)(bb”的值為“真”,表達(dá)式的值為1。,C語言中沒有專用的邏輯值,1代表真,0代表假,3、關(guān)系運(yùn)算符的結(jié)合律,C語言規(guī)定關(guān)系表達(dá)式采取左結(jié)合律。表達(dá)式中出現(xiàn)優(yōu)先級(jí)別為同一級(jí)別的運(yùn)算符時(shí),則按從左到右結(jié)合方向處理。,int a=2,b=3,c=1; abb,值是0 , 再計(jì)算 033 ,值是1 , 再計(jì)算 12,值為 1,例如,例、以下程序輸出的結(jié)果是 。 mai
4、n() int a=5,b=4,c=3,d; d=(abc); printf(%dn,d); ,0,二、 邏輯運(yùn)算符和邏輯表達(dá)式,1、邏輯運(yùn)算符及其優(yōu)先次序 1) 否則,計(jì)算:y=2 * x; 需要根據(jù)x的值進(jìn)行流程選擇(分支)。,三、if語句,例、求ax2+bx+c=0方程的根,需要判斷有無實(shí)根。,1、If語句的三種基本形式 (1)單分支選擇語句 if (表達(dá)式) 語句 執(zhí)行過程:首先先判斷表達(dá)式的值若為 非0則執(zhí)行語句;若為0則跳過該語句。 例: if(xy) printf(“%d”,x);,#include main() float x , y; scanf(“%f ”, ,(2)雙分支
5、選擇語句,格式:if(表達(dá)式) 語句1 else 語句2,執(zhí)行過程:首先先判斷表達(dá)式的值若為非0則執(zhí)行語句1。若為0則執(zhí)行語句2,例: if (xy) printf(“%d”,x); else printf(“%d”,y);,#include main() float x , y; scanf(“%f ”, ,注意:不管是單分支還是多分支,如果語句 由多個(gè)語句構(gòu)成,必須要加上構(gòu)成復(fù)合語句; 否則,要不程序存在語法錯(cuò)誤,要不就結(jié)果錯(cuò)誤。,例、有以下程序 (2006年4月全國計(jì)算機(jī)二級(jí)考試原題) main() int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; else d
6、=3; printf(d,d,d,dn,a,b,c,d); 程序輸出( ) A、0,1,2,0 B、0,0,0,3 C、1,1,2,0 D、編譯有錯(cuò),例、若變量已正確定義,有以下程序段 int a=3,b=5,c=7; if(ab) a=b; c=a; if(c!=a) c=b; printf(%d,%d,%dn,a,b,c); 其輸出結(jié)果是( ) A、程序段有語法錯(cuò) B、3,5,3 C、3,5,5 D、3,5,7 (2008年4月全國計(jì)算機(jī)等考試原題),D,A,說明: (1)2種形式的if語句中在if后面都有表達(dá)式, 一般為邏輯表達(dá)式或關(guān)系表達(dá)式。 (2)第一,第二種形式的if語句中,在每個(gè)
7、 else前面有一個(gè)分號(hào),整個(gè)語句結(jié)束處有一 個(gè)分號(hào)。 (3)在if和else后面可以只含有一個(gè)內(nèi)嵌的操 作語句,也可以由多個(gè)操作語句,此時(shí)用花 括號(hào)將幾個(gè)語句括起來成為一個(gè)復(fù)合語句。,C語言中條件運(yùn)算符的優(yōu)先級(jí)高于賦值運(yùn)算符,但低于邏輯運(yùn)算符。 條件運(yùn)算符要求有三個(gè)操作對(duì)象,稱三目(元)運(yùn)算符。 條件運(yùn)算符的結(jié)合方向?yàn)椤白杂抑磷蟆薄H鐥l件表達(dá)式: y=x10?x/10:x0?x:-x; 從右至左結(jié)合,等價(jià)于: y=x10?x/10:(x0?x:-x); 它的功能是:當(dāng)x10時(shí),y的值為x/10; 當(dāng)x0?,(3)條件運(yùn)算符 ?:P28,格式:表達(dá)式1?表達(dá)式2:表達(dá)式3,說明: (1)條件運(yùn)
8、算符的執(zhí)行順序:先求解表達(dá)式,若為非(真) 則求解表達(dá)式,此時(shí)表達(dá)式的值就作為整個(gè)條件表達(dá)式 的值。若表達(dá)式的值為(假),則求解表達(dá)式,表達(dá) 式的值就是整個(gè)條件表達(dá)式的值。 (2)條件運(yùn)算符優(yōu)先級(jí)高于賦值運(yùn)算符 ,低于關(guān)系運(yùn)算符 和算術(shù)運(yùn)算符。 (3)條件運(yùn)算符的結(jié)合方向?yàn)椤白杂抑磷蟆薄?(4)“表達(dá)式2”和“表達(dá)式3”不僅可以是數(shù)值表達(dá)式,還可以 是賦值表達(dá)式或函數(shù)表達(dá)式。 (5)條件表達(dá)式中,表達(dá)式的類型可以與表達(dá)式和表達(dá) 式的類型不同。,例、輸入兩個(gè)實(shí)數(shù),按代數(shù)值由小到大的順序輸出這兩個(gè)數(shù)。#includevoid main()float a,b,t;scanf(%f,%f,例、輸入三個(gè)
9、數(shù)a,b,c,要求按由小到大的順序輸出。,If ab 將a和b對(duì)換 If ac 將a和c對(duì)換 If bc 將b和c對(duì)換,#include void main ( ) float a,b,c,t; scanf(%f,%f,%f, ,2、If語句的嵌套 在if語句中又包含一個(gè)或多個(gè)if語句稱為if語句的嵌套。 形式: If() if() 語句1 else 語句2 else if() 語句3 else 語句4,內(nèi)嵌if,內(nèi)嵌if,匹配規(guī)則: else總是與它上面的,最近的,同一復(fù)合語句中的,未配 對(duì)的if語句配對(duì)。,例: If() if() 語句1 else if() 語句2 else 語句3,例:
10、 If() if() 語句1 else if() 語句2 else 語句3,當(dāng)if和else數(shù)目不同時(shí),可以加花括號(hào)來確定配對(duì)關(guān)系。,#include void main() int x,y; scanf(“%d”, ,上例中的程序段有四個(gè),請(qǐng)判斷哪個(gè)是正確的? 程序1: 程序2: If(x=0) Y=-1; if(x0) y=1; Else else y=0; If(x=0) y=0; else y=-1; Else y=1; 程序3: 程序4: Y=-1; y=0; If(x!=0) if(x=0) If(x0) y=1; if(x0) y=1; Else y=0; Else y=-1;,
11、正 確,正 確,例、輸入一個(gè)字符,判別它是否大寫字母,如果是,將它轉(zhuǎn)換成小寫字母;如果不是,不轉(zhuǎn)換。然后輸出最后得到的字符。 #include void main ( ) char ch; scanf(%c, ,如果字符變量ch的值為大寫字母,則條件表達(dá)式的值為(),即相應(yīng)的小寫字母。如果ch的值不是大寫字母,則條件表達(dá)式的值為,即不進(jìn)行轉(zhuǎn)換。,3、多分支選擇語句(if語句的另一種嵌套方式),執(zhí)行時(shí)先判斷表達(dá)式1的值非0就執(zhí)行下面的語句為0就執(zhí)行下一個(gè)判斷一直這樣做下去直到得出最后結(jié)果。,寫一個(gè)程序完成下列功能: 1 輸入一個(gè)分?jǐn)?shù)score 2 score60 輸出 E 3 60=score
12、70 輸出 D 4 75=score 80 輸出 C 5 80=score 90 輸出 B 5 90=score 輸出 A,多分支問題,main( ) int score; sanf(“%d”, ,程序,二、switch語句,switch語句的格式: switch (表達(dá)式) case常量表達(dá)式:語句 case常量表達(dá)式:語句 case常量表達(dá)式:語句 default :語句 ,另一種多分支語句,根據(jù)表達(dá)式不同的值選擇不同的語句。,例: 要求按照考試成績的等級(jí)輸出百分制分?jǐn)?shù)段,用 switch語句實(shí)現(xiàn): switch(grade) case printf(); case printf ();
13、case printf (); case printf (); default( printf ); ,說明: (1)switch后面括弧內(nèi)的“表達(dá)式”, 標(biāo)準(zhǔn)允許它為任何類型。但一般C語言要求語句中的表達(dá)式可以是整型或字符型,表達(dá)式的值,稱為開關(guān)值。 (2) 當(dāng)表達(dá)式的值與某一個(gè)case后面的常量表達(dá)式的值相等時(shí),就執(zhí)行此case后面的語句,若所有的case中的常量表達(dá)式的值都沒有與表達(dá)式的值匹配的,就執(zhí)行default后面的語句。 (3) 每一個(gè)case的常量表達(dá)式的值必須互不相同,否則就會(huì)出現(xiàn)互相矛盾的現(xiàn)象(對(duì)表達(dá)式的同一個(gè)值,有兩種或多種執(zhí)行方案)。,(4) 各個(gè)case和defaul
14、t的出現(xiàn)次序不影響執(zhí)行結(jié) 果。例如,可以先出現(xiàn)“default:”,再出現(xiàn) “case :”,然后是“case:”。 (5) 執(zhí)行完一個(gè)case后面的語句后,流程控制轉(zhuǎn)移到下一 個(gè)case繼續(xù)執(zhí)行?!癱ase常量表達(dá)式”只是起語句標(biāo)號(hào)作用,并不是在條件判斷。在執(zhí)行 switch語句時(shí),根據(jù)switch后面表達(dá)式的值 找到匹配的入口標(biāo)號(hào),就從此標(biāo)號(hào)開始執(zhí)行下去,不再進(jìn)行判斷。應(yīng)該在執(zhí)行一個(gè)case分支后,可以用一個(gè) break語句來終止switch語句的執(zhí)行。 (6) 多個(gè)可以共用一組執(zhí)行語句。,要求按照考試成績的等級(jí)輸出百分制分?jǐn)?shù)段,用 switch語句實(shí)現(xiàn): switch(grade) de
15、fault( printf ); case printf(); case printf (); case printf (); case printf (); ,switch(i)case 1:printf(An); case 2:printf(Bn); case 3:printf(Cn); case 4:printf(Dn); default:printf(En);,假設(shè)i=3時(shí),則會(huì)從i=3時(shí)做起始語句。如果給每條語句加上break這樣就只執(zhí)行一條語句,CDE,看下面的例子,運(yùn)行結(jié)果,break; break; break; break;,C,例、有以下程序 #include main()
16、 int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+; b+; break; case 3: a+; b+; printf(“a=%d,b=%dn”,a,b); ,程序的運(yùn)行結(jié)果是( )。 A、a=1,b=0 B、a=2,b=2 C、a=1,b=1 D、a=2,b=1,內(nèi)層的break;只能跳出所在的層,(2008年4月全國計(jì)算機(jī)等考試原題),D,三、選擇結(jié)構(gòu)程序舉例,例、 寫程序,判斷某一年是否閏年。 用下圖來表示判斷閏年的算法。,#include
17、void main()int year, leap; scanf(%d,(?。?; (!) ; (!) ; ;,運(yùn)行情況: . .,例、求x2方程的解。 基本的算法: ,不是二次方程。 ,有兩個(gè)相等實(shí)根。 ,有兩個(gè)不等實(shí)根。 ,有兩個(gè)共軛復(fù)根。,#include #include void main ( ) float a,b,c,disc,x1,x2,realpart,imagpart; scanf(%f,%f,%f,else if(disc1e-6)x1=(-b+sqrt(disc)/(2*a); x2=(-b-sqrt(disc)/(2*a); printf(has distinct real roots:%8.4f and %8.4fn,x1,x2); elserealpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf(has complex rootsn); printf(%8.4f+%8.4fin,realpart,imagpart); printf(%8.4f-%8.4fin,realpart,imagpart); ,例、運(yùn)輸公司對(duì)用戶
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 彈弓指 的護(hù)理及運(yùn)動(dòng)
- 2025至2030巴基斯坦基礎(chǔ)建設(shè)行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 商業(yè)綜合體的安全管理及風(fēng)險(xiǎn)控制策略研究報(bào)告
- 中藥與腸道微生態(tài)的關(guān)聯(lián)研究
- 2025至2030維生素口嚼片行業(yè)項(xiàng)目調(diào)研及市場(chǎng)前景預(yù)測(cè)評(píng)估報(bào)告
- 2025至2030中國自由飛行服行業(yè)市場(chǎng)占有率及投資前景評(píng)估規(guī)劃報(bào)告
- 2025至2030中國自動(dòng)裝配機(jī)行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 2025至2030中國自主無人機(jī)無線充電和基礎(chǔ)設(shè)施行業(yè)市場(chǎng)占有率及投資前景評(píng)估規(guī)劃報(bào)告
- 2025至2030中國腕式潛水電腦行業(yè)發(fā)展趨勢(shì)分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- 2025至2030中國能源行業(yè)市場(chǎng)發(fā)展分析及投資前景與投資策略報(bào)告
- 防火門安裝工程操作管理規(guī)程
- (2025)全國交管12123學(xué)法減分考試題庫附答案
- 虛擬現(xiàn)實(shí)行業(yè)標(biāo)準(zhǔn)-深度研究
- T-ZHCA 025-2023 化妝品抗氧化人體測(cè)試方法
- 包皮環(huán)切術(shù)的健康宣教
- 班級(jí)優(yōu)化大師使用培訓(xùn)
- 醫(yī)院后勤保障與傳染病防控
- 北師版五年級(jí)下冊(cè)數(shù)學(xué)30道說理題
- 質(zhì)量管理的五年規(guī)劃
- 《商業(yè)攝影》課件
- 華為員工職業(yè)發(fā)展手冊(cè)
評(píng)論
0/150
提交評(píng)論