軟件設計師案例分析當天每日一練試題地址:www.xcpkj.com/exam/ExamDayAL.aspx?t1=4
往期軟件設計師每日一練試題匯總:www.xcpkj.com/class/27/e4_1.html
軟件設計師案例分析每日一練試題(2022/10/11)在線測試:www.xcpkj.com/exam/ExamDayAL.aspx?t1=4&day=2022/10/11
點擊查看:更多軟件設計師習題與指導
軟件設計師案例分析每日一練試題內容(2022/10/11)
閱讀下列說明和C代碼,回答問題1至問題3,將解答寫在答題紙的對應欄內。
【說明】
設有m臺完全相同的機器運行n個獨立的任務,運行任務i所需的時間為t
i,要求確定一個調度方案,使得完成所有任務所需要的時間最短。
假設任務已經按照其運行時間從大到小排序,算法基于最長運行時間作業(yè)優(yōu)先的策略,按順序先把每個任務分配到一臺機器上,然后將剩余的任務一次放入最先空閑的機器。
【C代碼】
下面是算法的C語言實現(xiàn)。
1.常量和變量說明
m:機器數(shù)
n:任務數(shù)
t[]:輸入數(shù)組,長度為n,下標從0開始,其中每個元素表示任務的運行時間,下標從0開始。
s[][]:二位數(shù)組,長度為m*n,下標從0開始,其中元素s[i][j]表示機器i運行的任務j的編號。
d[]:數(shù)組,長度為m其中元素d[i]表示機器i的運行時間,下標從0開始。
count[]:數(shù)組,長度為m,下標從0開始,其中元素count[i]表示機器i運行的任務數(shù)。
i:循環(huán)變量。
j:循環(huán)變量。
k:臨時變量。
max:完成所有任務的時間。
min:臨時變量。
2.函數(shù)schedule
void schedule(){
int i,j,k,max=0;
for( i=0;i
d[i]=0;
for(j=0;j
s[i][j]=0;
}
}
for(i=0;i
s[i][0]=i;
(1) ;
count[i]=1;
}
for( (2) ;i int min = d[0];
k=0;
for(j=1;j if(min>d[j]){
min = d[j];
k=j; //機器k空閑
}
}
(3) ;
count[k] = count[k]+1;
d[k] = d[k]+t[i];
}
for(i =0;i if( (4) ){
max=d[i];
}
}
}
【問題1】(8分)
根據(jù)說明和C代碼,填充C代碼中的空(1)~(4)。
【問題2】(2分)
根據(jù)說明和C代碼,該問題采用了 (5) 算法設計策略,時間復雜度 (6) (用O符號表示)
【問題3】(5分)
考慮實例m=3(編號0~2),n=7(編號0~6),各任務的運行時間為{16,14,6,5,4,3,2}。則在機器0、1和2上運行的任務分別為(7)、(8)和(9)(給出任務編號)。從任務開始運行到完成所需的時間為(10)。
信管網試題答案與解析:www.xcpkj.com/st/3813019827.html
信管網考友試題答案分享:
信管網試題答案與解析:
www.xcpkj.com/st/3813019827.html
溫馨提示:因考試政策、內容不斷變化與調整,信管網網站提供的以上信息僅供參考,如有異議,請以權威部門公布的內容為準!
信管網致力于為廣大信管從業(yè)人員、愛好者、大學生提供專業(yè)、高質量的課程和服務,解決其考試證書、技能提升和就業(yè)的需求。
信管網軟考課程由信管網依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學員考試保駕護航。面授、直播&錄播,多種班型靈活學習,滿足不同學員考證需求,降低課程學習難度,使學習效果事半功倍。