2026年02月23日来源:信管网 作者:cnitpm
软件设计师案例分析当天每日一练试题地址:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4
往期软件设计师每日一练试题汇总:www.cnitpm.com/class/27/e4_1.html
软件设计师案例分析每日一练试题(2026/2/22)在线测试:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4&day=2026/2/22
点击查看:更多软件设计师习题与指导
软件设计师案例分析每日一练试题内容(2026/2/22)
阅读下列说明和C代码,回答问题1至问题3,将解答写答题纸的对应栏内。
【问题1】 (8分)
根据说明扣C代码,填充C代码中的空(1)~(4)的。
【问题2】 (4分)
根据说明和C代码,算法采用了(5)设计策略,时间复杂度为(6)(用O符号表示,两个字符串的长度分别用m和n表示)。
【问题3】 (3分)
已知两个字符串A="CTGA"和B="ACGCTA",根据说明和C代码,可得出这两个字符串的编辑距离为(7)。
信管网考友试题答案分享:
信管网枫催*:
(1) d[0][j]=j
(2) str1[i-1]==str2[j-1]
(3) str1[i-1]!=str2[j-1]
(4) temp(5) 分治法
(6) o(m+n)/25
信管网1768*******:
// 打印二维数组 d 的函数
void print_d(int len1, int len2) {
for (int i = 0; i < len1; i++) {
for (int j = 0; j < len2; j++) {
printf("%d ", d[i][j]);
}
printf("\n");
}
printf("ok \n");
}
int editdistance(char*str1,int len1, char *str2,int len2){
int i, j;
int diff;
int temp;
for(i=0; i<=len1; i++){
d[i][0]=i;
}
//print_d(i,j);
for(j=0; j<= len2; j++){
//(1)
d[0][j]=j;
}
print_d(i,j);
// len1
// 0 1 2 3 4 5 6 len2
// 1 0 0 0 0 0 0
// 2 0 0 0 0 0 0
// 3 0 0 0 0 0 0
// 4 0 0 0 0 0 0
for( i=1;i<=len1;i++){
for(j=1;j<=len2;j++){
//f( (2) )
if( str1[i-1] == str2[j-1] ){
d[i][j] = d[i-1][j-1];
}else{
temp = min( d[i-1][j]+1 , d[i][j-1]+1 );
// min( temp , (3))
d[i][j] = min( temp , d[i-1][j-1]+1 );
}
}
}
print_d(i,j);
// 0 1 2 3 4 5 6
// 1 1 1 2 3 4 5
// 2 2 2 2 3 3 4
// 3 3 3 2 3 4 4
// 4 3 4 3 3 4 4
//拿 a ac acg
// 0 1 2 3
// c 1 1 1 2 来分析:
//将c变成a 需要1次 修改操作 将c变成ac 需要1次 插入操作 将c变成acg 需要2次 插入操作
//return (4)
diff = d[len1][len2];
return diff;
}
int main(){
char a[n]="ctga";
char b[n]="acgcta";
int len1 = strlen(a);
int len2 = strlen(b);
char c[n]="ctgabb";
int len3 = strlen(c);
int m = editdistance(a,len1,b,len2);
printf("ab的编辑距离为 %d ",m);
printf("\n");
int t = editdistance(c,len3,b,len2);
printf("cb编辑距离为 %d ",t);
//5次 ctgabb ——> acgcta 插入a, c相同,删除t, g相同,修改a为c ,修改b为t, 修改b为a
return 0;
}
信管网cnit**************:
1,d[0][j]=j,str1[i-1] = str2[j-1],d[i-1]d[j-1],d<br>2,分治,o(n2)<br>3,
信管网cnit**************:
<br /><img src="http://pic.cnitpm.com/upload/2023/10/tbimg/10-09/1696839490.jpg" />
信管网cnit**************:
(1)d[0][j]=j、d[i][0]=d[0][j]、d[i-1][j-1]+1、d[i][j]
(2)贪心、o(mn)
(3)4
温馨提示:因考试政策、内容不断变化与调整,信管网提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!