天堂888-欧美黄色小说-熟睡侵犯の奶水授乳在线-初尝情欲h名器av-亚洲天堂免费视频-日韩五十路-免费在线国产-国产又大又黄又粗-久草导航-色播导航-亚洲免费资源-熟女一区二区三区视频-亚洲美女视频在线-亚洲成人福利视频-婷婷精品在线-亚洲综合p-中文字幕 日本-亚洲骚片-亚洲自拍偷拍网-国产农村妇女精品一区二区-午夜中出-久久精品国产精品亚洲毛片-91精品毛片-99爱视频在线-狠狠操亚洲-美女让人操-里番本子纯肉侵犯肉全彩无码-999偷拍

2017上半年軟件設計師考試下午真題(四)

軟件設計師 責任編輯:長頸鹿 2017-05-26

添加老師微信

備考咨詢

加我微信

摘要:希賽網整理了2017上半年軟件設計師考試下午真題,以下是第四部分。

      >>>>點擊進入了解軟件設計師培訓視頻

    >>>>點擊進入了解軟件設計師面授班


    希賽網整理了2017上半年軟件設計師考試下午真題,以下是第四部分。

      試題四

      閱讀下列說明和C代碼,回答問題1至問題3,將解答寫在答題紙的對應欄內。

      【說明】

      假幣問題:有n枚硬幣,其中有一枚是假幣,己知假幣的重量較輕。現只有一個天平,要求用盡量少的比較次數找出這枚假幣。

      【分析問題】

      將n枚硬幣分成相等的兩部分:

      (1)當n為偶數時,將前后兩部分,即1...n/2和n/2+1...0,放在天平的兩端,較輕的一端里有假幣,繼續在較輕的這部分硬幣中用同樣的方法找出假幣:

      (2)當n為奇數時,將前后兩部分,即1..(n-1)/2和(n+1)/2+1...0,放在天平的兩端,較輕的一端里有假幣,繼續在較輕的這部分硬幣中用同樣的方法找出假幣:若兩端重量相等,則中間的硬幣,即第(n+1)/2枚硬幣是假幣。

      【C代碼】

      下面是算法的C語言實現,其中:

      coins[]:硬幣數組

      first,last:當前考慮的硬幣數組中的第一個和最后一個下標

#include <stdio.h>


int getCounterfeitCoin(int coins[], int first,iot last)

{

      int firstSum = 0,lastSum = 0;

      int ì;

      If(first==last-1){        /*只剩兩枚硬幣*/

           if(coins[first] < coins[last])

                 return first;

           return last;

       }



if((last - first + 1) % 2 =0){   /*偶數枚硬幣*/

       for(i = first;i <(   1   );i++){

             firstSum+= coins[i];

        }

        for(i=first + (last-first) / 2 + 1;i < last +1;i++){

            lastSum += coins[i];

        }

        if(    2    ){

            Return getCounterfeitCoin(coins,first,first+(last-first)/2;)

        }else{

            Return getCounterfeitCoin(coins,first+(last-first)/2+1,last;)

        }

}

else{       /*奇數枚硬幣*/

        For(i=first;i<first+(last-first)/2;i++){

               firstSum+=coins[i];

        }

        For(i=first+(last-first)/2+1;i<last+1;i++){

               lastSum+=coins[i];

        }

        If(firstSum<lastSum){

               return getCounterfeitCoin(coins,first,first+(last-first)/2-1);

        }else if(firstSum>lastSum){

               return getCounterfeitCoin(coins,first+(last-first)/2-1,last);

        }else{

            Return(   3    )

        }

     }

}

      【問題一】

      根據題干說明,填充C代碼中的空(1)-(3)

      【問題二】

      根據題干說明和C代碼,算法采用了()設計策略。函數getCounterfeitCoin的時間復雜度為()(用O表示)。

      【問題三】

      若輸入的硬幣數為30,則最少的比較次數為(),最多的比較次數為()。


    >>>返回目錄:2017上半年軟件設計師考試下午真題匯總

    >>>點擊查看:2017上半年軟件設計師考試下午真題答案和解析

    >>>進入估分:2017上半年軟考分數早知道,在線估分+真題解析

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內容不斷變化與調整,本網站提供的以上信息僅供參考,如有異議,請考生以權威部門公布的內容為準!

軟考備考資料免費領取

去領取

!
咨詢在線老師!