實驗5控制結構練習

2021-08-10 15:18:25 字數 3687 閱讀 6094

一. 實驗目的及要求

1. 學習兩種選擇結構和三種迴圈結構的程式設計。

2. 實踐運用選擇結構和迴圈結構設計和實現演算法。

二. 實驗內容及步驟

1. 關於控制結構的知識點和例題

僅由乙個個簡單語句順序排列構成的程式結構(稱為「循序結構」),其執行順序是自上而下一句句地進行。使程式按照非順序方式執行的語句稱為控制結構,包括選擇結構和迴圈結構。

⑴ 選擇結構

選擇結構是根據某個條件是否成立,控制程式執行某個語句與否,或執行多個語句中的某個語句的一種控制結構(被控制的語句稱為分支語句),包括if語句和switch語句。

① if語句

if 語句的語法有兩種形式:

第一種形式:

if (表示式) 分支語句1

第二種形式:

if (表示式) 分支語句1 else 分支語句2

其中分支語句可以是乙個語句、乙個復合語句或乙個控制結構。在分支語句2為另乙個if語句的情況下,可衍生出多分支if語句:

if (表示式1) 分支語句1

else if (表示式2) 分支語句2

n-2個

else (分支語句n)

if 語句的執行機制如下:

計算表示式,若值為 true(或非0),則執行分支語句1,否則,在有else的情況下,則執行分支語句2。然後,從 if 語句之後的第乙個語句繼續往下執行。

以上執行機制隱含著如下語義:

a. 在無else的情況下,可能乙個分支語句也不執行;

b. 在有else的情況下,必有乙個分支語句被執行;

c. 每個分支只能有乙個語句,它可能是乙個簡單語句、復合語句或者控制結構(包括if語句)。

if語句的例題:

// 輸入乙個考試分數,列印它所對應的成績段

#include "stdafx.h"

using namespace system;

int main(array ^args)

② switch語句

switch語句是一種多分支選擇控制結構,它的語法為:

switch (整型表示式)

switch語句的執行機制如下:

計算整型表示式;

將整型表示式的值順序地與各個case後的整常量進行比較,若與某個整常量相等,則從對應case之後的語句組開始往下執行,若與所有整常量均不等,在有default的情況下,只執行語句組n。

以上執行機制隱含著如下語義:

a. 每個分支中可以有多個語句,而且不必復合。

b. 一旦找到匹配 (或defaulte),就會一直往下執行而非執行單個分支。若想在執行單個分支後退出,則必須讓每個語句組的最後乙個語句是 break;。

switch語句的例題:

// 輸入乙個考試分數,列印它所對應的成績段

#include "stdafx.h"

using namespace system;

int main(array ^args)

}⑵ 迴圈結構

迴圈結構是當某個條件滿足時,控制程式反覆地執行某個語句的一種控制結構(被控制的語句稱為迴圈體),包括while語句、do-while語句和for語句。此外還有輔助的break和continue語句。

① while語句

while語句的語法是:

while (表示式) 語句

其中「while (表示式)」為控制結構,「語句」為迴圈體。

while語句的執行機制如下:

計算表示式,若值為true(或非0),則執行迴圈體。

while語句的執行機制隱含著如下語義:

a. 如果表示式的初始值為false(0),則迴圈體一次也不執行;

b. 表示式的值必須在迴圈體中改變,否則為死迴圈;

c. 迴圈體可以是簡單語句、復合語句或另乙個控制結構。

while語句的例題:

// 求整數1~n的和

#include "stdafx.h"

using namespace system;

int main(array ^args)

console::writeline("1~的和為: ", n, sum);

}② do-while語句

do-while語句的語法是:

do 語句 while (表示式);

其中「do…while (表示式)」為控制結構,「語句」為迴圈體。

do-while語句的執行機制為:

a. 執行迴圈體

b. 計算表示式,若值為true(或非0),則回到a。

while語句的執行機制隱含著如下語義:

a. 由於while(表示式); 在後,故迴圈體至少執行一次;

b. 表示式的值必須在迴圈體中改變,否則為死迴圈;

c. 迴圈體可以是簡單語句、復合語句或另乙個控制結構。

while語句的例題:

// 求整數1~n的和

#include "stdafx.h"

using namespace system;

int main(array ^args)

while (i <= n);

console::writeline("1~的和為: ", n, sum);

}③ for語句

for語句是一種定次迴圈語句,它的語法是:

for (表示式1; 表示式2; 表示式3) 語句

其中「for (表示式1; 表示式2; 表示式3)」為控制結構,「語句」為迴圈體。

原則上說,括號中的三個表示式可以是任意表示式,但在通常情況下,表示式1為變數宣告和賦值表示式、表示式2為關係 (或邏輯) 表示式、表示式3為增量表示式。

for 語句的執行機制如下:

a. 計算表示式1;

b. 計算表示式2,若值為true(非0),則執行語句、計算表示式3、回到b。

以上執行機制隱含著如下語義:

a. 表示式1只計算一遍,相當於while語句之前的變數宣告和賦初值;

b. 表示式2控制迴圈體的執行,相當於while語句中的表示式;

c. 表示式3執行迴圈體後計算,相當於while迴圈體中的增量語句。

for語句的例題:

// 求整數1~n的和

#include "stdafx.h"

using namespace system;

int main(array ^args)

的和為: ", n, sum);

}④ break語句和continue語句

break語句與switch語句和迴圈結構一同使用,它中斷當前switch語句的語句組或迴圈結構的迴圈體的執行, 跳到switch語句或迴圈結構之後的第乙個語句繼續執行。

continue語句與迴圈結構一同使用,它中斷當次迴圈的執行,從下次迴圈開始從頭執行迴圈體。

break語句和continue語句的例題:

// 求出整數1~n的奇數之和

#include "stdafx.h"

using namespace system;

int main(array ^args)

{ int n;

console::write("n = ");

n = convert::toint32(console::readline());

int i = 0, sum = 0;

while (true) {

i ++;

if (i % 2 == 0) continue;

if (i > n) break;

實驗5陣列練習

1 熟練掌握陣列的定義方法和引用方法。2 熟練掌握陣列名作函式引數時的特點。3 在實際程式設計中能靈活運用陣列處理一組具有共性的資料。1 閱讀程式,通過上機除錯,得出執行結果並寫出程式的功能。include main t int i,top,bot,mid printf input a intege...

實驗 5 迴圈結構

c語言程式設計實驗教學 5 實驗目的 通過程式設計實現,掌握while結構 do while結構和for結構各種型別的迴圈結構,完成各種迴圈程式的設計和實現。實驗要求 同乙個題目嘗試使用多種迴圈控制結構來實現,並分析其設計和實現的差別和難易程度。實驗課時 6.0 實驗內容 1 完成課堂例項的實現。1...

實驗二控制結構

程式一 include void main else cout 不能構成三角形 程式二 include void main 程式三 include void main cout sum 程式五 include include void main 程式六 include include include...