軟件設計師案例分析當天每日一練試題地址:www.shundajiancai.com/exam/ExamDayAL.aspx?t1=4
往期軟件設計師每日一練試題匯總:www.shundajiancai.com/class/27/e4_1.html
軟件設計師案例分析每日一練試題(2025/5/17)在線測試:www.shundajiancai.com/exam/ExamDayAL.aspx?t1=4&day=2025/5/17
點擊查看:更多軟件設計師習題與指導
軟件設計師案例分析每日一練試題內(nèi)容(2025/5/17)
閱讀下列說明和C代碼,回答問題1至問題3,將解答寫在答題紙的對應欄內(nèi)。 
【說明】 
模式匹配是指給定主串t和子串s,在主串t中尋找子串s的過程,其中s稱為模式。如果匹配成功,返回s在t中的位置,否則返回-1 。 
KMP算法用next數(shù)組對匹配過程進行了優(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數(shù)組根據(jù)子串s求解。求解next數(shù)組的代碼已由get_next函數(shù)給出。 
【C代碼】
(1)常量和變量說明 
t,s:長度為憫鉑Is的字符串 
next:next數(shù)組,長度為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分) 
根據(jù)題干說明,填充C代碼中的空(1)~(4)。
【問題2】(2分) 
根據(jù)題干說明和C代碼,分析出kmp算法的時間復雜度為(5)(主串和子串的長度分別為It和Is,用O符號表示)。 
【問題3】(5分) 
根據(jù)C代碼,字符串“BBABBCAC”的next數(shù)組元素值為(6)(直接寫素值,之間用逗號隔開)。若主串為“AABBCBBABBCACCD”,子串為“BBABBCAC”,則函數(shù)Kmp的返回值是(7)。
信管網(wǎng)試題答案與解析:www.shundajiancai.com/exam/ExamDayAL.aspx?t1=4&day=2025/5/17
信管網(wǎng)考友試題答案分享:
信管網(wǎng)cnit**************: 
問題1:
1:       2:t[i] == s[j]       3:       4:
問題2:
問題3:
信管網(wǎng)試題答案與解析:
www.shundajiancai.com/exam/ExamDayAL.aspx?t1=4&day=2025/5/17
									
                                 
                                
                                    
                                         溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請以權(quán)威部門公布的內(nèi)容為準!
                                        溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請以權(quán)威部門公布的內(nèi)容為準!
                                    
                                    
                                        信管網(wǎng)致力于為廣大信管從業(yè)人員、愛好者、大學生提供專業(yè)、高質(zhì)量的課程和服務,解決其考試證書、技能提升和就業(yè)的需求。
                                        信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,教材和資料參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學員考試保駕護航。面授、直播&錄播,多種班型靈活學習,滿足不同學員考證需求,降低課程學習難度,使學習效果事半功倍。