軟件設計師考試科目包括綜合知識與案例分析兩門,為幫助廣大軟考中級軟件設計師考生更好備考,信管網特整理匯總了軟件設計師部分綜合知識與案例分析的模擬試題、答案及解析供考生查閱,并提供免費在線模擬答題、歷年真題免費下載等服務,了解軟件設計師更多備考信息請關注信管網。
相關推薦:
免費練習:軟件設計師考試題庫(模擬試題、章節(jié)練習、每日一練)
一、綜合知識
1、kerberos系統(tǒng)中可通過在報文中加入( )來防止重放攻擊。
A、會話密鑰
B、時間戳
C、用戶ID
D、私有密鑰
信管網參考答案:B
查看解析:www.jazzmuze.com/st/41726981.html
2、 某項目的活動持續(xù)時間及其依賴關系如下表所示,則完成該項目的最少時間為( )天。
A、43
B、45
C、50
D、55
信管網參考答案:D
查看解析:www.jazzmuze.com/st/4166819267.html
3、下面二叉樹表示的簡單算術表達式為( )。
A.10*20+30-40
B.10*(20+30-40)
C.10*(20+30)-40
D.10*20+(30-40)
信管網參考答案:C
查看解析:www.jazzmuze.com/st/4071112926.html
4、同一消息可以調用多種不同類的對象的方法,這些類有某個相同的超類,這種現象是( )。
A.類型轉換
B.映射
C.單態(tài)
D.多態(tài)
信管網參考答案:D
查看解析:www.jazzmuze.com/st/3960928877.html
5、 兩個遞增序列 A 和 B 的長度分別為 m 和 n(m且 m 與 n 接近), 將二者歸井為一個長度為 m+n 的遞增序列。 當元素關系為( ) , 歸并過程中元素的比較次數最少。
信管網參考答案:A
查看解析:www.jazzmuze.com/st/395484793.html
二、案例分析
試題一、
閱讀下列說明和C代碼,回答問題1至問題3。
【說明】
0-1背包問題定義為:給定i個物品的價值v[1…i]、小重量w[1...i]和背包容量T,每個物品裝到背包里或者不裝到背包里。求最優(yōu)的裝包方案,使得所得到的價值最大。
0-1背包問題具有最優(yōu)子結構性質。定義c[i][T]為最優(yōu)裝包方案所獲得的最大價值,則可得到如下所示的遞歸式。
【c代碼】
下面是算法的C語言實現。
(1)常量和變量說明
T: 背包容量
v[]:價值數組
w[]:重量數組
c[][]:c[i][j]表示前i個物品在背包容量為j的情況下最優(yōu)裝包方案所能獲得的最大價值
(2) C程序
【問題1】 (8分)
根據說明和C代碼,填充C代碼中的空(1) ~ (4)。
【問題2】 (4分)
根據說明和C代碼,算法采用了 (5) 設計策略。在求解過程中,采用了(6)
(自底向上或者自頂向下)的方式。
【問題3】 (3分)
若5項物品的價值數組和重量數組分別為v[]= {0,1,6,18,22,28}和w[]= {0,1,2,5,6,7}背包容量為T= 11,則獲得的最大價值為 (7)。
查看答案及解析:www.jazzmuze.com/st/4177310833.html
試題二、
閱讀下列說明和C代碼,回答問題1至問題3,將解答寫在答題紙的對應欄內。
【說明】
模式匹配是指給定主串t和子串s,在主串t中尋找子串s的過程,其中s稱為模式。如果匹配成功,返回s在t中的位置,否則返回-1 。
KMP算法用next數組對匹配過程進行了優(yōu)化。KMP算法的偽代碼描述如下:
1.在串t和串s中,分別設比較的起始下標i=j=0。
2.如果串t和串s都還有字符,則循環(huán)執(zhí)行下列操作:
(1)如果j=-l或者t[i]=s[j],則將i和j分別加1,繼續(xù)比較t和s的下一個字符;
(2)否則,將j向右滑動到next[j]的位置,即j =next[j]。
3.如果s中所有字符均已比較完畢,則返回匹配的起始位置(從1開始);否則返回-1。其中,next數組根據子串s求解。求解next數組的代碼已由get_next函數給出。
【C代碼】
(1)常量和變量說明
t,s:長度為憫鉑Is的字符串
next:next數組,長度為Is
(2)C程序
#include
#include
#include
/*求next[]的值*/
void get_next( int *next, char *s, int Is) {
int i=0,j=-1;
next[0]=-1;/*初始化next[0]*/
while(i < ls){/*還有字符*/
if(j==-1l ls[i]==s[j]){/*匹配*/
j++;
i++;
if( s[i]==s[j])
next[i] = next[j];
else
Next[i] = j;
}
else
j = next[j];
}
}
int kmp( int *next, char *t ,char *s, int lt, int Is )
{
Int i= 0,j =0
while (i < lt && (1) ) {
if( j==-1 || (2) ) {
i ++
j ++
} else
(3)
}
if (j >= ls)
return (4) else
return -1;
}
【問題1】(8分)
根據題干說明,填充C代碼中的空(1)~(4)。
【問題2】(2分)
根據題干說明和C代碼,分析出kmp算法的時間復雜度為(5)(主串和子串的長度分別為It和Is,用O符號表示)。
【問題3】(5分)
根據C代碼,字符串“BBABBCAC”的next數組元素值為(6)(直接寫素值,之間用逗號隔開)。若主串為“AABBCBBABBCACCD”,子串為“BBABBCAC”,則函數Kmp的返回值是(7)。
溫馨提示:因考試政策、內容不斷變化與調整,信管網網站提供的以上信息僅供參考,如有異議,請以權威部門公布的內容為準!
信管網致力于為廣大信管從業(yè)人員、愛好者、大學生提供專業(yè)、高質量的課程和服務,解決其考試證書、技能提升和就業(yè)的需求。
信管網軟考課程由信管網依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學員考試保駕護航。面授、直播&錄播,多種班型靈活學習,滿足不同學員考證需求,降低課程學習難度,使學習效果事半功倍。
發(fā)表評論 查看完整評論 | |