C程序設計(第五版)-第2章 算法--程序的靈魂課后習題答案


1 .什么是算法?試從日常生活中找 3 個例子,描述它們的算法。

算法:

廣義--為解決一個問題而采取的方法和步驟。

計算機算法可分為兩大類別:數值運算法和非數值運算法。

例子:

① 看電影

買票 --> 選場次 --> 選座位 --> 付錢 --> 入座觀影

② QQ聊天

下載APP --> 注冊賬號 --> 登錄 --> 添加好友 --> 開始聊天

③ 炒菜

買菜 --> 切菜 --> 翻炒 --> 放配料 --> 出鍋

補充知識:

一個算法應該具有以下五個重要的特征:

有窮性(Finiteness)

算法的有窮性是指算法必須能在執行有限個步驟之后終止;

確切性(Definiteness)

算法的每一步驟必須有確切的定義;

輸入項(Input)

一個算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指算法本身定出了初始條件;

輸出項(Output)

一個算法有一個或多個輸出,以反映對輸入數據加工后的結果。沒有輸出的算法是毫無意義的;

可行性(Effectiveness)

算法中執行的任何計算步驟都是可以被分解為基本的可執行的操作步驟,即每個計算步驟都可以在有限時間內完成(也稱之為有效性)。


2 .什么叫結構化的算法?為什么要提侶結構化的算法?

  • 結構化的算法:由一些基本結構順序組成的;在基本結構之間不存在向前或向后的跳轉,流程的轉移只存在於一個基本結構范圍之內(如循環中流程的跳轉)
  • 機構化算法便於編寫,可讀性高,修改和維護起來簡單,可以減少程序出錯的機會,提高了程序的可靠性,保證了程序的質量,因此提倡結構化的算法。

3 .試述 3 種基本結構的特點.諸另外設計兩種基本結構(要符合基本結構的特點)。

  1. 順序結構:順序結構是一種線性、有序的結構,它依次執行各語句模塊
  2. 選擇結構:選擇結構是根據條件成立與否選擇程序執行的通路。
  3. 循環結構:循環結構是重復執行一個或幾個模塊,直到滿足某一條件位置

重新設計基本結構要滿足以下幾點:

  1. 只有一個入口
  2. 只有一個出口
  3. 結構內的每一部分都有機會執行到
  4. 結構內不存在死循環

while和until復合型結構 多分支選擇結構


4 .用傳統流程圖表示求解以下問題的算法。

( 1 ) 有兩個瓶子 A 和 B ,分別盛放醋和醬油,要求將它們互換(即 A 瓶原來盛醋,現改盛醬油, B 瓶則相反)。

( 2 )依次將 10 個數輸人,要求輸出其中址大的數 。

( 3 )有 3 個數a,b ,c,要求按大小順序把它們輸出。

( 4 )求 1+ 2 + 3 + … + 100 。

( 5 )判斷一個數n能否同時被 3 和 5 整除。

( 6 )將 100 一 200 之間的素數輸出。

( 7 )求兩個數 m 和 n 的最大公約數。

( 8 )求方程式 ax平方 + bx + c= 0 的根。分別考慮:

① 有兩個不等的實根;

② 有兩個相等的實根。


5 .用 N 一 S 圖表示第 4 題中各題的算法。





6 .用偽代碼表示第 4 題中各題的算法。






7 . 什么叫結構化程序設計?它的主要內容是什么?

結構化程序設計(structured programming,簡稱SP)結構化程序設計是進行以模塊功能和處理過程設計為主的詳細設計的基本原則。結構化程序設計是過程式程序設計的一個子集,它對寫入的程序使用邏輯結構,使得理解和修改更有效更容易 。

主要內容:把一個復雜問題的求解過程分段進行,每個階段處理的問題都控制在人們容易理解和處理的范圍內。


8 .用自頂向下、逐步細化的方法進行以下算法的設計:

( 1 ) 輸出 1900 一 2000 年中是閏年的年份,符合下面兩個條件之一的年份是閏年:

① 能被 4 整除但不能被 100 枯除;

② 能被 100 整除且能被 400 整除。

( 2 )求 ax平方 + bx + c= 0 的根。分別考慮 d = b平方 - 4ac 大於 0 、等於 0 和小於 0 這 3 種情況。

( 3 )輸人 10 個數,輸出其中最大的一個數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM