女人久久久www免费人成看片,国内自拍偷拍网,国产一区二区三区免费在线观看,欧美精品三区四区,91久久国产综合久久91,欧美成人精品第一区二区三区 ,美女成人在线观看

軟題庫 學習課程
試卷年份2017年上半年
試題題型【分析簡答題】
試題內容

閱讀下列說明和C代碼,回答問題 1 至問題 3,將解答寫在答題紙的對應欄內。
【說明】
假幣問題:有n枚硬幣,其中有一枚是假幣,己知假幣的重量較輕?,F(xiàn)只有一個天平,要求用盡量少的比較次數找出這枚假幣。
【分析問題】
將n枚硬幣分成相等的兩部分:
(1)當n為偶數時,將前后兩部分,即 1...n/2和n/2+1...0,放在天平的兩端,較輕的一端里有假幣,繼續(xù)在較輕的這部分硬幣中用同樣的方法找出假幣:
(2)當n為奇數時,將前后兩部分,即1..(n -1)/2和(n+1)/2+1...0,放在天平的兩端,較輕的一端里有假幣,繼續(xù)在較輕的這部分硬幣中用同樣的方法找出假幣;若兩端重量相等,則中間的硬幣,即第 (n+1)/2枚硬幣是假幣。
【C代碼】
下面是算法的C語言實現(xiàn),其中:
coins[]: 硬幣數組
first,last:當前考慮的硬幣數組中的第一個和最后一個下標

#include

int getCounterfeitCoin(int coins[], int first,int 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<="" p="">
firstSum+=coins[i];
}
For(i=first+(last-first)/2+1;i
lastSum+=coins[i];
}
If(firstSum
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,則最少的比較次數為(  ),最多的比較次數為(   )。

查看答案

相關試題

1題: 閱讀下列說明和圖,回答問題1至問題4,將解答填入答題紙的對應欄內。
【說明】
某醫(yī)療器械公司作為復雜醫(yī)療產品的集成商,必須保持高質量部件的及時供應。為了實現(xiàn)這一目標,該公司欲開發(fā)一采購系統(tǒng)。系統(tǒng)的主要功能如下:
1.檢查庫存水平。采購部門每天檢查部件庫存量,當特定部件的庫存量降至其訂貨點時,返回低存量部件及庫存量。
2.下達采購訂單。采購部門針對低存量部件及庫存量提交采購請求,向其供應商(通過供應商文件訪問供應商數據)下達采購訂單,并存儲于采購訂單文件中。
3. 交運部件。當供應商提交提單并交運部件時,運輸和接收(S/R)部門通過執(zhí)行以下三步過程接收貨物:
(1)驗證裝運部件。通過訪問采購訂單并將其與提單進行比較來驗證裝運的部件,并將提單信息發(fā)給 S/R 職員。 如果收貨部件項目出現(xiàn)在采購訂單和提單上,則已驗證的提單和收貨部件項目將被送去檢驗。否則,將S/R職員提交的裝運錯誤信息生成裝運錯誤通知發(fā)送給供應商。
(2) 檢驗部件質量。通過訪問質量標準來檢查裝運部件的質量,并將己驗證的提單發(fā)給檢驗員。如果部件滿足所有質量標準,則將其添加到接受的部件列表用于更新部件庫存。如果部件未通過檢查,則將檢驗員創(chuàng)建的缺陷裝運信息生成缺陷裝運通知發(fā)送給供應商。
(3)更新部件庫存。庫管員根據收到的接受的部件列表添加本次采購數量,與原有庫存量累加來更新庫存部件中的庫存量。標記訂單采購完成。
現(xiàn)采用結構化方法對該采購系統(tǒng)進行分析與設計,獲得如圖1-1 所示的上下文數據流圖和圖 1-2 所示的 0 層數據流圖。

圖1-1上下文數據流圖

圖1-2   0層數據流圖
【問題1】(5分)
使用說明中的詞語,給出圖1-1中的實體E1 ~E5
【問題2】(4分)
使用說明中的詞語,給出圖1-2中的數據存儲D1~D4的名稱。
【問題3】(4分)
根據說明和圖中術語,補充圖1-2中缺失的數據流及其起點和終點。
【問題 4】(2分)
用 200 字以內文字,說明建模圖 1-1 和圖 1-2 時如何保持數據流圖平衡。
答案解析與討論:m.xiexiliangjiufa.com/st/384197499.html

2題: 閱讀下列說明,回答問題1至問題3,將解答填入答題紙的對應欄內。
【說明】
某房屋租賃公司擬開發(fā)一個管理系統(tǒng)用于管理其持有的房屋、租客及員工信息。請根據下述需求描述完成系統(tǒng)的數據庫設計。
【需求描述】
1.公司擁有多幢公寓樓,每幢公寓樓有唯一的樓編號和地址。每幢公寓樓中有多套公寓,每套公寓在樓內有唯一的編號(不同公寓樓內的公寓號可相同〉。系統(tǒng)需記錄每套公寓的臥室數和衛(wèi)生間數。
2.員工和租客在系統(tǒng)中有唯一的編號(員工編號和租客編號)。
3.對于每個租客,系統(tǒng)需記錄姓名、多個聯(lián)系電話、一個銀行賬號(方便自動扣房租)、一個緊急聯(lián)系人的姓名及聯(lián)系電話。
4.系統(tǒng)需記錄每個員工的姓名、一個聯(lián)系電話和月工資。員工類別可以是經理或維修工,也可兼任。每個經理可以管理多幢公寓樓。每幢公寓樓必須由一個經理管理。系統(tǒng)需記錄每個維修工的業(yè)務技能,如:水暖維修、電工、木工等。
5. 租客租賃公寓必須和公司簽訂租賃合同。一份租賃合同通常由一個或多個租客(合租)與該公寓樓的經理簽訂,一個租客也可租賃多套公寓。合同內容應包含簽訂日期、開始時間、租期、押金和月租金。
【概念模型設計】
根據需求階段收集的信息,設計的實體聯(lián)系圖(不完整)如圖2-1所示。

【邏輯結構設計】
根據概念摸型設計階段完成的實體聯(lián)系圖,得出如下關系模式(不完整):
聯(lián)系電話(電話號碼,租客編號)
租客(租客編號,姓名,銀行賬號,聯(lián)系人姓名,聯(lián)系人電話)
員工(員工編號,姓名,聯(lián)系電話,類別,月工資, (a) )
公寓樓( (b)  ,地址,經理編號)
公寓(樓編號,公寓號,臥室數,衛(wèi)生間數〉
合同(合同編號,租客編號,樓編號,公寓號,經理編號,簽訂日期,起始日期,租期, (c) ,押金)
【問題1】(4.5分)
補充圖2-1中的“簽約”聯(lián)系所關聯(lián)的實體及聯(lián)系類型。
【問題2】(4.5分)
補充邏輯結構設計中的(a)、(b)、(c)三處空缺。
【問題3】(6分)
在租期內,公寓內設施如出現(xiàn)問題,租客可在系統(tǒng)中進行故障登記,填寫故障描述,每項故障由系統(tǒng)自動生成唯一的故障編號,由公司派維修工進行故障維修,系統(tǒng)需記錄每次維修的維修日期和維修內容。請根據此需求,對圖2-1進行補充,并將所補充的ER圖內容轉換為一個關系模式,請給出該關系模式。
答案解析與討論:m.xiexiliangjiufa.com/st/3842022576.html

3題: 閱讀下列系統(tǒng)設計說明,回答問題1至問題3,將解答填入答題紙的對應欄內。
【說明】
某玩具公司正在開發(fā)一套電動玩具在線銷售系統(tǒng),用于向注冊會員提供端對端的玩具 定制和銷售服務。在系統(tǒng)設計階段,"創(chuàng)建新訂單 (New Order)" 的設計用例詳細描述如表 3-1 所示,候選設計類分類如表 3-2 所示,并根據該用例設計出部分類圖如圖3-1所示。
表 3-1 創(chuàng)建新訂單 (NewOrder) 設計用例


表3-2 候選設計類分類


在訂單處理的過程中,會員可以點擊“取消訂單"取消該訂單。如果支付失敗,該訂單將被標記為掛起狀態(tài),可后續(xù)重新支付,如果掛起超時30分鐘未支付,系統(tǒng)將自動取消該訂單。訂單支付成功后,系統(tǒng)判斷訂單類型: (1)對于常規(guī)訂單,標記為備貨狀態(tài),訂單信息發(fā)送到貨運部,完成打包后交付快遞發(fā)貨;     (2)對于定制訂單,會自動進入定制狀態(tài),定制完成后交付快遞發(fā)貨。會員在系統(tǒng)中點擊”收貨"按鈕變?yōu)槭肇洜顟B(tài),結束整個訂單的處理流程。根據訂單處理過程所設計的狀態(tài)圖如圖3-2所示。
圖3-2 訂單狀態(tài)圖
【問題1】(6分)
根據表3-1中所標記的候選設計類,請按照其類別將編號 C1~C12 分別填入表 3-2  中的(a)、(b)和(c)處。
【問題2】 (4 分)
根據創(chuàng)建新訂單的用例描述,請給出圖3-1中X1~X4處對應類的名稱。
【問題3】 (5分)
根據訂單處理過程的描述,在圖 3-2 中S1~S5處分別填入對應的狀態(tài)名稱。
答案解析與討論:m.xiexiliangjiufa.com/st/3842121292.html

5題: 閱讀下列說明和 C++代碼,將應填入(n)處的字句寫在答題紙的對應欄內。
【說明】
某快餐廳主要制作井出售兒童套餐,一般包括主餐(各類比薩)、飲料和玩具,其餐品種類可能不同,但其制作過程相同。前臺服務員(Waiter)調度廚師制作套餐?,F(xiàn)采用生成器(Builder) 模式實現(xiàn)制作過程,得到如圖 5-1 所示的類圖。

圖5-1    類圖
【C++代碼】
#include
#include
using namespace std;

class Pizza {
private: string parts;
public:
void setParts(string parts) {     this->parts=parts;  }
string getParts() {  return parts;   }
};
class PizzaBuilder {
protected:Pizza* pizza;
public:
Pizza* getPizza() {  retum pizza;  }
void createNewPizza() { pizza = new Pizza();     }
(   1   );
}
class HawaiianPizzaBuilder :public PizzaBuilder {
public:
void buildParts() { pizza->setParts("cross +mild + ham&pineapple");   }
};
class SpicyPizzaBuider: public PizzaBuilder {
public:
void buildParts() { pizza->setParts("pan baked +hot + ham&pineapple");    }

}

Class Waiter{
Private:
PizzaBuilder* pizzaBuilder;
public:
void setPizzaBuilder(PizzaBuilder* pizzaBuilder) {   /*設置構建器*/
(  2  )
}
Pizza* getPizza() {  return pizzaBuilder->getPizza(); }
void construct() {     /*構建*/
pizzaBuilder->createNewPizza();
(  3  )
}
};

int main(){
Waiter*waiter=new Waiter();
PizzaBuilder*hawaiian pizzabuilder=new HawaiianPizzaBuilder()

(   4  );
(   5  );
cout<< "pizza: "<< waiter->getPizza()->getParts()<< endl;
}
程序的輸出結果為:
pizza: cross + mild + ham&pineapple
答案解析與討論:m.xiexiliangjiufa.com/st/384239657.html

6題: 閱讀下列說明和 Java代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內。
【說明】
某快餐廳主要制作并出售兒童套餐,一般包括主餐(各類比薩)、飲料和玩具,其餐品種類可能不同,但其制作過程相同。前臺服務員 (Waiter) 調度廚師制作套餐?,F(xiàn)采用生成器 (Builder) 模式實現(xiàn)制作過程,得到如圖 6-1 所示的類圖。

【Java代碼】
class Pizza {
private String parts;
public void setParts(String parts) {     this.parts = parts; }
public String toString() {      return this.parts;   }
}

abstract class PizzaBuilder {
protected Pizza pizza;
public Pizza getPizza() { return pizza;  }
public void createNewPizza() {      pizza = new Pizza();     }
public  (1)   ;
}

class HawaiianPizzaBuilder extends PizzaBuilder {
public void buildParts() {     pizza.setParts("cross + mild + ham&pineapp1e”};
}

class SpicyPizzaBuilder extends PizzaBuilder {
public void buildParts() { pizza.setParts("pan baked + hot + pepperoni&salami");          }
}

class Waiter {
private PizzaBuilder pizzaBuilder;
public void setPizzaBuilder(PizzaBuilder pizzaBuilder) {  /*設置構建器*/
( 2 )    ;
}
public Pizza getPizza(){ return pizzaBuilder.getPizza(); }
public void construct() {      /*構建*/
pizzaBuilder.createNewPizza();
( 3 )   ;
}
}

Class FastFoodOrdering {
public static viod mainSting[]args) {
Waiter waiter = new Waiter();
PizzaBuilder hawaiian_pizzabuilder = new HawaiianPizzaBuilder();

( 4 )    ;
( 5 )    ;
System.out.println("pizza: " + waiter.getPizza());
}
}

程序的輸出結果為:
Pizza:cross + mild + ham&pineapple
答案解析與討論:m.xiexiliangjiufa.com/st/3842420151.html