關于網(wǎng)絡選擇結構程序設計_第1頁
關于網(wǎng)絡選擇結構程序設計_第2頁
關于網(wǎng)絡選擇結構程序設計_第3頁
關于網(wǎng)絡選擇結構程序設計_第4頁
關于網(wǎng)絡選擇結構程序設計_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

關于網(wǎng)絡選擇結構程序設計4第四章選擇結構程序設計

11/24/20232第四章選擇結構程序設計

4.1語句的分類

C語言將語句(statement)分成以下幾類:控制語句函數(shù)調用語句空語句表達式語句復合語句11/24/20233if()…else… (條件語句)switch (多分支選擇語句)for()… (循環(huán)語句)while()… (循環(huán)語句)do…while()… (循環(huán)語句)1.控制語句11/24/202342.函數(shù)調用語句函數(shù)調用語句由一個函數(shù)調用加上一個分號(;)構成。例如:

printf(“Hello!”);3.空語句只有一個分號(;)的語句??照Z句不執(zhí)行任何操作。例如:

;11/24/202354.表達式語句由C語言的任意合法表達式加上一個分號(;)構成。例如:函數(shù)調用屬于表達式的一種,而空語句則是沒有任何表達式的語句i++; (使變量的值加1)x+y; (完成x+y操作,但不將其結果賦給 某一變量,所以該語句無實際意義); (空語句)printf(“Hello!”);(函數(shù)調用語句) 11/24/202365.復合語句包含在由左花括號{開始,右花括號}結束的一組語句,在邏輯上構成一個整體,稱為復合語句。例如: {

x=k+t; y=x%5; printf(“yis%d”,y); }任何可以放置語句的地方,都可以放置復合語句

11/24/202374.2關系運算符、邏輯運算符、條件運算符本章將著重討論利用選擇控制實現(xiàn)選擇結構程序設計。選擇控制是指根據(jù)指定的條件是否滿足,選擇下一步要執(zhí)行的語句。滿足為真,不滿足為假。對于條件的描述,最為常見的就是關系表達式。其一般形式:

4.2.1關系運算符和關系表達式操作數(shù)關系運算符 操作數(shù)每個操作數(shù)可以是變量、常量或者是任意有效的C語言表達式。11/24/20238關系運算符的優(yōu)先級低于算術運算符的優(yōu)先級,但高于賦值運算符的優(yōu)先級。其結合性是左結合性。

例如: a=20,b=70,c=50,d=90,有下列表達式:a<b>d 相當于(a<b)>d,a<b的值為1,1>d為假,整個表達式的值為0k=a+b<c+d 相當于k=((a+b)<(c+d)),即k=(90<140),即k=1,為變量k賦值1,整個表達式的值為1。11/24/20239字符數(shù)據(jù)同樣可以用關系運算符比較,比較的依據(jù)是其所用代碼的數(shù)值。

例如比較ASCII碼的字符: 表達式‘a(chǎn)’==‘A’的值為0 表達式‘A’>‘C’的值為0 表達式‘C’<‘a(chǎn)’的值為111/24/202310邏輯運算符將其操作數(shù)視為邏輯值,即“真”或“假”。而C語言對于操作數(shù)真假的判定采取了如下原則:

4.2.2邏輯運算符和邏輯表達式三種邏輯運算符:邏輯非 !a邏輯與 a&&b邏輯或 a||b高低C語言中,任意非零值為邏輯值真;零為邏輯值假。

11/24/202311邏輯表達式?。?<10)的值為0邏輯表達式(5>10)&&(8<10)的值為0;邏輯表達式(5>10)||(8<10)的值為1。邏輯表達式(5<10)&&(—10)的值為1邏輯表達式!’a’的值為0例如:11/24/202312條件運算符的優(yōu)先級高于賦值運算符,但低于算術運算符、關系運算符及邏輯運算符。我們來看一個例子:

y=x>=60?‘P’:‘F’ 如果x大于或等于60,則y被賦值‘P’,該表達式的值為‘P’;如果x小于60,則y被賦值‘F’,該表達式的值為‘F’。11/24/202313C語言提供兩種選擇控制語句:if語句switch語句。

4.3選擇結構的程序設計所有程序的正常執(zhí)行次序通常都是順序的。然而,在許多問題的解決方案中,常會根據(jù)情況的不同,采取不同的處理方式。11/24/202314if(表達式) 語句Aelse 語句B4.3.1if語句if語句的一般形式:

表達式?語句A語句B真(非0)假(0)11/24/202315else子句,是可選的。當無else子句時的if語句形式為:

if(表達式) 語句表達式?語句真(非0)假(0)11/24/202316基于上述規(guī)則,一個常用的嵌套if語言構成多分支選擇結構,也稱為if-else-if階梯,其一般形式如下:if(表達式1) 語句1;elseif(表達式2) 語句2;elseif(表達式3) 語句3;......else語句n;11/24/202317C語言中,switch語句同樣可以實現(xiàn)多分支選擇。switch語句的一般形式是:4.3.1switch語句switch(表達式){case常量1:語句序列1 break;case常量2:語句序列2 break;case常量3:語句序列3 break;......default:語句序列n}可選

可選

11/24/202318例4.1從鍵盤讀入兩個整數(shù),然后顯示這兩個數(shù)的商。4.3選擇結構的程序設計舉例

#include<stdio.h>voidmain(){ inta,b; printf("Entertwonumbers(separateby,):"); scanf("%d,%d",&a,&b); if(b)

printf("a/b=%d\n",a/b); else printf("Cannotdividebyzero.\n");}11/24/202319例4.2從鍵盤讀入年份,然后判斷該年是否為閏年。符合下列條件之一的年份都是閏年:能被400整除的年份;不能被100整除,但可以被4整除的年份。11/24/202320#include<stdio.h>voidmain(){ intyear,leap; printf("Enteryear:"); scanf("%d",&year); /*判斷是不是閏年*/ if(year%400==0||(year%4==0&&year%100!=0)) leap=1; /*是閏年*/ else leap=0; if(leap) printf("%disaleapyear.\n",year); else printf("%disnotaleapyear.\n",year);}11/24/202321例4.3企業(yè)發(fā)放的獎金根據(jù)利潤提成。利潤(I)不超過10萬元時,獎金可提10%;利潤不超過20萬元時,其中的10萬元按10%提成,高于10萬元的部分提成7.5%;20萬到40萬元,其中的20萬元按前述b方法提成,高于20萬元的部分提成5%;40萬到60萬元,其中的40萬元按前述c方法提成,高于40萬元的部分提成3%;60萬到100萬元,其中的60萬元按前述d方法提成,高于60萬元的部分提成1.5%;高于100萬元時,其中的100萬元按前述e方法提成,超過100萬元的部分提成1%。從鍵盤輸入當月利潤I,求應發(fā)放獎金總數(shù)?11/24/202322例4.4輸入某年某月某日,判斷這一天是這一年的第幾天?解析:以2000年4月8日為例,應該先把前三個月的天數(shù)加起來,然后再加上8天即本年的第幾天。遇閏年情況,且輸入月份大于3時需要多加一天。11/24/202323#include<stdio.h>voidmain(){ intday,month,year,sum,leap; printf("\npleaseinputyear,month,day\n"); scanf("%d,%d,%d",&year,&month,&day); switch(month)/*先計算某月以前月份的總天數(shù)*/ { case1:sum=0;break; case2:sum=31;break; case3:sum=59;break; case4:sum=90;break; case5:sum=120;break; case6:sum=151;break; case7:sum=181;break; case8:sum=212;break; case9:sum=243;break; case10:sum=273;break; case11:sum=304;break; case12:sum=334;break; default:printf("monthdataerror"); }/*二月按28天計*/11/24/202324sum=sum+day; /*再加上某天的天數(shù)*

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論