第五章 選擇控制結構

2021-10-08 07:06:12 字數 4009 閱讀 7178

目錄

&&和||的優先順序

演算法在問題求解中有什麼作用?

常用的演算法描述方法有哪些?

break 語句在 switch語句中有什麼作用?

計算機問題求解和生活中問題求解方法有什麼異同點?

演算法有哪些基本特性?

兩個浮點數如何比較相等?

if( x == 3.5)的寫法是否正確?

若int i;  float f;表示式i > 0 ? i :f 的型別?

如何判斷ch是數字字元?

程式測試的基本方法是什麼?

身高**

當你的父親一公尺八,你母親一公尺六時​

體脂判斷

按照一定的演算法編寫電腦程式實際上就是在告訴計算機做什麼和怎麼做。

計算機的問題求解方法主要體現在演算法設計上,最終的實現要靠編寫程式來實現

因此,演算法可看作是程式的靈魂。

自然語言描述

流程圖描述

ns結構化流程圖描述

偽碼描述

switch 語句的執行過程是這樣的:首先計算 switch 後表示式的值,然後將該值依次與case 後的常量值進行比較,當它們相等時,執行相應 case 後面的**段,**執行完畢後,可使用 break 語句跳出 switch 語句。

如果沒有 break 語句,程式將依次執行下面的 case 後的語句,直到遇到 switch的右花括號「}」為止。因此,只有 switch 語句和 break 語句配合使用,才能形成真正意義上的多分支。

也就是說,執行完某個分支後,一般要用break 語句跳出switch結構(否則一直往下依次執行就沒有多分支的意義了)

在日常生活中,我們做任何事情都需要遵循一定的程式,即要按一定的順序來操作,其中的某些步驟的順序是不能改變的。這就是我們生活中問題求解的「演算法」。如果問題很複雜,那麼通常還要使用分治策略(divide and conquer strategy)來將原始問逐步分解為一些易於解決的子問題,然後再對每個子問題進行各個擊破。

計算機問題求解也要遵循一定的程式,也要使用分治策略。但與生活中問題求解所不同的是,計算機執行特定的任務是通過執行預定義的指令集來實現的。這些預定義的指令集就是所謂的電腦程式(computer program)。按照一定的演算法編寫電腦程式實際上就是在告訴計算機做什麼和怎麼做。電腦程式和計算機之間,就像食譜和廚師之間的關係一樣,電腦程式指定了完成某一任務需要的步驟。但不幸的是,不同於菜譜,目前我們還不能用自己的母語向計算機傳送指令。因此,計算機中的演算法是通過用計算機指令編寫的程式來實現的。

(1)有窮性(finiteness)。演算法包含的操作步驟應是有限的,每一步都應在合理的時間內完成,否則演算法就失去了它的使用價值。

(2)確定性(definiteness)。演算法的每個步驟都應是確定的,不允許有歧義。例如,「如果 x≥0,則輸出 yes;如果 x≤0,則輸出 no」就是有歧義的,即當 x 等於 0 時,既要輸出yes,又要輸出 no,這就產生了不確定性。

(3)有效性(effectiveness),也稱為可行性。演算法中的每個步驟都應能有效執行,且能得到確定的結果。例如,對乙個負數開平方或者取對數,就是乙個無效的操作。

(4)允許沒有輸入或者有多個輸入(input)。有些演算法無需從外界輸入資料。

(5)必須有乙個或者多個輸出(output)。演算法的實現是以得到計算結果為目的的,沒有任何輸出的演算法沒有任何意義。

浮點數並非真正意義上的實數,只是其在某種範圍內的近似。因此也就只能用近似的方法對實數進行比較。比較兩個浮點數的差值足夠小即可:

if (fabs(a-b)< 1e-7)
對於浮點型資料不能做相等的判斷,此種寫法程式在編譯時沒有語法錯誤,但程式在執行時會得到錯誤的結果。

如果 i > 0 成立,那麼表示式的值就是將 i 轉為float 型後的值。

必須要用單引號,要不然就是判斷ch的ascii碼了

if (ch >= '0' && ch <= '9')
測試的基本任務是,根據軟體開發各個階段的文件和程式,精心設計測試用例,利用這些測試用例執行程式,找出軟體中潛在的各種錯誤和缺陷。

測試主要有白盒測試(whitebox testing)和黑盒測試(black box testing)兩種。

白盒測試主要用於測試的早期。黑盒測試主要用於測試的後期。

在實際應用中,通常將白盒測試與黑盒測試結合使用,例如,選擇有限數量的重要路徑進行白盒測試(結構測試),對重要的功能需求進行黑盒測試(功能測試)。

/*設faheight 為其父身高,moheight 為其母身高,身高**公式為

男性**時身高 = (faheight + moheight) × 0.54 cm

女性**時身高 = (faheight × 0.923 + moheight) / 2 cm

此外,如果喜愛體育鍛煉,那麼可增加身高 2%;如果有良好的衛生飲食習慣,那麼

可增加身高1.5%。

請程式設計從鍵盤輸入使用者的性別(用字元型變數 *** 儲存,輸入字元 f 表示女性,輸入

字元 m 表示男性)、

父母身高(用實型變數儲存,faheight 為其父身高,moheight 為其母身高)、

是否喜愛體育鍛煉(用字元型變數sports 儲存,輸入字元 y 表示喜愛,輸入字元n

表示不喜愛)

是否有良好的飲食習慣等條件(用字元型變數 diet儲存,輸入字元 y 表示良

好,輸入字元n 表示不好),利用給定公式和身高**方法對身高進行**。*/

#include int main()

// if(***=='f')

printf("(男)營養不良且不運動時你:%.2f\n",man);

printf("(女)營養不良且不運動時你:%.2f\n\n",wom);

if(sport=='y')

if(diet=='y')

printf("(男)營養保證堅持運動時你:%.2f\n",man);

printf("(女)營養保證堅持運動時你:%.2f\n",wom);

}

/*體指數 t = 體重w /(身高h) 2 (w 單位為千克,h單位為公尺)

當t < 18 時,為低體重;

當t介於 18 和25 之間時,為正常體重;

當t介於 25 和27 之間時,為超重體重;

當t≥27 時,為肥胖。

分別用 if 語句和 if-else 語句程式設計,從鍵盤輸入你的身高 h 和體重 w,根據上述給定的

公式計算體指數t,然後判斷你的體重屬於何種型別。*/

#include int main()

if(t>=18&&t<=25)

if(t>25&&t<=27)

if(t>27)

return 0;

}

令人不是很滿意的低體重,希望可以沉迷學習時間消瘦。 

第五章 迴圈結構

第五章 迴圈結構 5.1while語句和呼叫while語句構成的迴圈結構 當 迴圈 由while語句構成 形式 while 表示式 迴圈體eg k 0 while k 10 說明 while是c語言的關鍵字。while後一對圓括號中的表示式可以是c語言中任意合法的表示式,但不能為空,由它來控制迴圈是...

python第五章 Python學習(第五章)

記錄所有的名片字典 card list defshow menu 顯示資訊 print 50 print 歡迎使用 名片管理系統 v1.0 print print 1.新增名片 print 2.顯示全部 print 3.搜尋名片 print print 0.退出系統 print 50 defnew ...

第五章 迴圈結構程式設計

第五章 迴圈結構程式設計 三種迴圈語句 while 表示式 語句 其中的 語句 就是迴圈體。迴圈體只能是乙個語句,可以使乙個簡單的語句,還可以是復合語句。用花括號包起來的若干語句,如果不用花括號,則while語句的範圍知道while後面的第乙個分號處 只要當暈還條件表示式為真 即給定的條件成立 就執...