實驗四選擇結構程式設計

2022-09-28 13:51:05 字數 2414 閱讀 4579

1.正確使用關係表示式和邏輯表示式表達條件。

2.學習分支語句if和switch的使用方法。

3.進一步熟悉tc整合環境的使用方法,學習tc環境提供的除錯工具。

1.除錯下列程式,使之具有如下功能:輸入a、b、c三個整數,求最小值。寫出除錯過程。

main()

程式中包含有一些錯誤,按下述步驟進行除錯。

⑴ 設定觀測變數。按鍵,螢幕彈出"add watch"視窗,在視窗中可輸入要觀察的變數或表示式,此處輸入a,重複以上操作並分別輸入b、c,在螢幕下方的"message"視窗顯示變數名a、b、c,且變數名的後面有提示,如a的後面是undefined symbol 'a',這是因為程式沒有執行,變數沒有登記,所以tc環境不知道a是什麼。

⑵ 單步執行程式。按鍵,螢幕上半部"edit"視窗中的程式第一行程式的文字背景色變為蘭色,表示此語句將被執行。連續按鍵,蘭色條一句句下移。

⑶ 通過單步執行發現程式中的錯誤。當單步執行到scanf()函式一句時,螢幕自動切換到dos視窗,等待使用者的輸入,假定我們輸入"1 2 3",變數a、b、c接受後應在螢幕資訊視窗顯示出來,但是此時我們看到的卻不是我們輸入的資料。這時我們就要檢查程式。

發現在呼叫scanf()函式中變數名前面沒有取位址運算子"&"。我們輸入的資料沒有正確存入到變數中。經改正後再單步執行,變數a、b、c的值被正確輸入。

繼續單步執行,程式正確找到最小值並輸出。

⑷ 通過充分測試發現程式中的錯誤。雖然程式可以執行,並不能說程式就是正確的,因為編譯系統檢查程式沒有語法錯誤就可執行了,但是編譯系統不能發現程式中的邏輯錯誤。乙個程式必須通過嚴格的測試,把可能存在的錯誤都找出來並改正。

關於如何進行程式測試不在本書的講述範圍,此處僅對此例進行測試的一些原則進行介紹。剛才給出的輸入是變數a為最小值,且a、b、c都不相等的情況,可能的合理輸入還有:a為最小值且a、b、c相等,a為最小值且b、c相等,b為最小值且a、b、c互不相等,b為最小值且a、c相等,等等。

嚴格說,在除錯過程中對這些可能的情況都要進行測試,才能保證軟體的質量。所以程式的除錯、測試是一項非常煩瑣的工作,也是非常重要的工作。對於初學者來說應該建立良好的習慣,在除錯程式的時候,應該盡可能考慮到程式執行時各種可能,設計相應的用例。

我們再次執行程式,輸入為"2,1,3",程式輸出卻是"min=2"。用單步執行的方法,馬上發現變數a、b、c的值是不對的,原因是程式要求輸入資料的分隔符是 (還允許使用回車或鍵。改正輸入後,程式沒有輸出,還是用單步執行的方法,監視程式的執行過程,發現程式中條件設計有誤,經過改正的程式如下:

main()

上述程式是按在三個數中僅有乙個最小值時才稱其為最小值進行設計的。另外,注意程式的書寫格式,一定要採用縮排格式,即不同層次(分支)的語句左起的空格不同,這樣可以有效地提高程式的可讀性。

2. 完成下面的程式,在空白處填入a,b,c,取a,b,c中最大者賦給max。

a.if(a>b && a>c) b. if (a>b)

maxif(a>c)

else max=______p;max=______

if(b>c) else

maxmax=______ max=______

else else

maxif(b>c)

max=________

else

max3.輸入a,b,c三個整數,要求將絕對值最大者列印輸出。

【分析提示】

此題的關鍵是絕對值如何表示,x的絕對值也以表示成:abs(x)。可以用偽**寫出程式的演算法。

if abs(a)>abs(b) 則x=a 否則x=b (這時說明x中存放著a、b中絕對值較大的乙個數);如果 if abs(x)>abs(c) 則絕對值較大的乙個是x,否則絕對值較大的乙個是c。

4.輸入乙個整數,判斷該數的奇偶性。(輸出相應的標誌even-偶數 odd-奇數,請記住這兩個單詞)

【分析提示】

乙個數除2若餘數為0,則這個數一定是偶數,否則是奇數。c語言中的求餘運算子為「%」,若輸入的數為偶數則輸出「even」,若輸入的數為奇數則輸出「odd」。

自已寫出程式**。

5.給定乙個正整數,判斷它是否能同時被3、5、7整除。

5.編寫程式,若學生成績在60~69則輸出「及格」,70~89則輸出「良好」,90~100則輸出「優秀」。請分別用if-else語句和switch語句實現。

1.複習關係表示式、邏輯表示式和if 語句、switch語句。

2.學習程式的除錯方法。

3.編寫程式,執行程式並記錄執行結果

4.將源程式、目標檔案、可執行檔案和實驗報告儲存存檔。

1.同構數是其平方後尾數等於該數自身的自然數。例如:

25*25=625

76*76=5776

任意輸入乙個自然數,判斷是否為同構數並輸出:如:

25 yes 25*25=625

11 no 11*11=121

2.判斷輸入的字元屬於哪一類字元:大寫、小寫、數字或其他字元。

實驗四選擇結構程式設計

實驗目的 1 了解c語言表示邏輯量的方法 以0代表 假 以非0代表 真 2 學會正確使用邏輯表示式表示條件的方法 3 掌握switch break語句的用法 4 熟悉選擇結構程式段中語句的執行過程 5 學會設計有實際價值的分支結構程式。實驗時數 2學時 實驗內容 一 新建資料夾 首先在各自對應的計算...

實驗四選擇結構程式設計

實驗目的 1 掌握順序結構程式設計的方法 2 掌握邏輯表示式的正確書寫形式。3 掌握單分支與雙分支條件語句的使用。實驗內容 1 建立vb工程,介面如右所示,程式設計實現執行時可將文字框中的文字字型大小隨機放大 1 5整數倍 和 任意比例 縮小以及還原 原來字型大小 介面如右圖所示。private s...

上機實驗四選擇結構程式設計

一 目的要求 1 掌握6個關係運算子 3個邏輯運算子的基本概念 基本屬性 運算規則。2 掌握if語句的3種形式及對應的語法規則 執行流程,switch語句的語法規則 執行流程。3 按題目要求,完成上機實驗報告。二 實驗內容 思考問題 相等比較運算子與賦值運算子的區別?如何表示複雜條件?邏輯表示式的求...