第四章 分支結構實驗

2022-07-31 22:45:27 字數 3270 閱讀 2887

1、if語句的應用

2、switch/case語句的應用

3、switch/case語句巢狀if語句的應用

4、switch/case結構的巢狀應用

5、分析程式

目的:1、掌握c語言邏輯運算和關係運算的規則

2、學會正確地使用關係表示式和邏輯表達掌握if-else語句的使用方法

3、掌握if_else語句的使用方法

目的:1、掌握算術運算子和運算規則

2、掌握switch/case語句的使用方法

要求:1、從鍵盤輸入各種商品的購買數量,且在輸入前給出提示資訊

2、輸出各種商品的購買數量

3、輸出結果時要有文字說明(中、英文均可),輸出應付貸款

4、分別採用switch/case結構和if/else結構實現

1、學會正確的使用關係表示式和邏輯表示式

2、掌握switch/case  語句語法和使用方法。注意switch語句的控制流程,在switch語句中的break語句的用法

3、switch/case結構與if/else巢狀結構之間的轉換

1、switch/case結構的巢狀使用

2、break語句與continue語句的用法

(1)、問題的簡單描述:讀入三個數分別表示箱子的長、寬、高的整數值,判斷並輸出該箱子是正方體還是長方體。

(2)、實驗**:

#include main()

(3)、問題分析:這道題比較簡單,只要補充輸入的3邊是否相等的判斷條件,使用if/else結構,若3邊相等則為正方體,否則為長方體。

(1)、問題的簡單描述:編一程式實現如下功能:商店有列印紙(18元/本)、墨盒(132元/個)、光碟(4.5元/片)**,商店進行優惠活動。具體做法如下:顧客購買商品的總額達到了100元,優惠5%;達到了200元以上,優惠6%;達到了300元以上,優惠7%;達到了400元以上,優惠8%;達到了500元以上,優惠10%。根據不同的購買量,列印應付貸款。

(2)、實驗**:

#includeint

main()

(3)、問題分析:這道題我選擇的是用if/case結構實現,但由於沒有注意到if的判斷條件裡需要用「&&」連線兩個比較,而一直得不出結果,根據後面的4.3.5的程式和同學的提醒才發現這個問題,印象很深刻。

(1)、問題的簡單描述:輸入某一年月,輸出該月的天數。

(2)、實驗**:

收件人:

風箏 <[email protected]>#include

main()

printf(

"%d年%d月有%d天

",year,month,days);

return0;

}

(3)、問題分析:這個程式的關鍵是判斷年份是否為閏年從而確定2月的天數,確定是((year%4==0&&year%100!=0)||(year%400==0))後,仍得出的是0天。後來在對照同桌得**後發現我的switch/case結構得case後沒有空格,加之才得出結果。

(1)、問題的簡單描述:編寫乙個自動售貨機的程式。該程式應具如下功能:有二級選單,一級選單是商品型別的選擇,二級選單是具體商品的選擇(商品**和品種可以自擬)。顧客先選擇商品型別,然後選擇具體商品,輸入購買數量。自動售貨機根據選擇的商品和輸入的數量,計算出所選商品總金額。

(2)、實驗**:

#includemain()

break

;

case

2:printf("

請選擇:1.筆(3元/支) 2.筆記本(1.2元/個)\n");

printf(

"3.資料夾(12元/個) 4.文具盒(8.6元/個)\n");

scanf("%d

",&y);

printf(

"數量?");

scanf("%d

",&n);

switch

(y)

break

;

case

3:printf("

請選擇:1.白糖(3.6元/包) 2.鹽(1元/包)\n");

printf(

"3.餅(2元/個) 4.速食麵(3.6元/條)\n");

scanf("%d

",&y);

printf(

"數量?");

scanf("%d

",&n);

switch

(y)

break

;

}printf(

"總計:%.2f元\n

",sum);

return0;

}

(3)、問題分析:程式使用了switch/case的巢狀結構,比較複雜,但根據後部分的提示,很容易補充前面的一級選單。主要是程式的中文很多,容易將中文符號輸入至**,這就需要仔細和認真。

(1)、問題的簡單描述:執行下列程式,分析輸出的結果。

(2)、實驗**:

#include int

main()

輸出結果:

x=333.333333

y=0.333333

z=-0.000000

z不等於0.

--------------------------------process exited after

0.6815 seconds with return value 0

請按任意鍵繼續. . .

6、實驗練習:原先的程式執行有誤,請修改程式,使其輸出正確地結果。(4.3.5.2)

(1)、問題的簡單描述:執行下列程式,分析錯誤的原因,並修改程式,使其輸出正確地結果。

(2)、實驗**(錯誤):

#includemain()

修改後:

#includemain()

(3)、問題分析:c語言表示式和數學表示式的不同,c語言中應該用「&&」與來定義數的範圍。

很開心又完成了一次實驗,進一步了解和掌握了if/case、switch/case結構的使用和方法。不足的是,雖然在本次實驗前進行了簡要的預習,但因為沒有了解數學表示式和c語言表示式的不同,還有switch/case語句的基本結構(case後面需要空格),所以第2個和第3個實驗做了很久,在同學的幫助下才改正錯誤。以後的實驗要多向周圍的同學請教和交流,

第四章 實驗

實驗1 編寫 進行彙編 連線 執行 除錯 程式輸出結果 將 line4 和line9 種暫存器dl 的值分別修改為 0 9 中任何乙個數字,重新彙編 連線 執行,觀察結果的變化。變為81 進行除錯 使用 u 命令對 t1.exe 進行反彙編,觀察反彙編得到的源 cx值為16h,滿足 cs ds 10...

第四章 實驗任務

1 將t1.asm編譯生成可執行檔案t1.exe.解答如下 進入安裝有masm.exe和link.exe的資料夾,我的是tools。然後敲入masm 2 用debug跟蹤t1.exe的執行過程。寫出相關暫存器的內容和棧頂的內容。解答 除錯過程如下,由於每一步都有列印資訊,所以沒有寫暫存器的內容 進入...

第四章 迴圈結構

迴圈要素 1.初始化 2.迴圈條件 3.迴圈體 4.迭代 while迴圈 while 迴圈條件 迴圈的執行順序 1.程式執行迴圈前,首先判斷迴圈條件的值是否是true 2.如果迴圈條件的值為true,執行迴圈體中的內容 3.如果迴圈條件的值為false,將跳過迴圈體直接執行迴圈後面的程式 4.迴圈體...