专业软件设计师网站|服务平台|服务商(加客服微信:cnitpm或QQ:947530340进软件设计师学霸群)

软题库 学习课程
当前位置:信管网 >> 软件设计师 >> 每日一练 >> 文章内容
软件设计师案例分析每日一练试题(2026/2/22)

软件设计师案例分析当天每日一练试题地址: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,将解答写答题纸的对应栏内。
【说明】
生物学上通常采用编辑距离来定义两个物种DNA序列的相似性,从而刻画物种之间的进化关系。具体来说,编辑距离是指将首一个字符串变换为另一个字符所需要的最小操作次数。操作有三种,分别为:插入一个字符、删除一个字符以及将一个字符修改为另 一个字符。用字符数组str1和str2分别表示长度分别为len1和len2的字符串,定义二维数组d记录求解编辑距离的子问题最优解,则该二维数组可以递归定义为:




【问题1】 (8分)
根据说明扣C代码,填充C代码中的空(1)~(4)的。
【问题2】 (4分)
根据说明和C代码,算法采用了(5)设计策略,时间复杂度为(6)(用O符号表示,两个字符串的长度分别用m和n表示)。
【问题3】 (3分)
已知两个字符串A="CTGA"和B="ACGCTA",根据说明和C代码,可得出这两个字符串的编辑距离为(7)。

信管网试题答案与解析:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4&day=2026/2/22

信管网考友试题答案分享:

信管网枫催*:
(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

信管网试题答案与解析:www.cnitpm.com/exam/ExamDayAL.aspx?t1=4&day=2026/2/22

信管网订阅号

信管网视频号

信管网抖音号

温馨提示:因考试政策、内容不断变化与调整,信管网网站提供的以上信息仅供参考,如有异议,请以权威部门公布的内容为准!

信管网致力于为广大信管从业人员、爱好者、大学生提供专业、高质量的课程和服务,解决其考试证书、技能提升和就业的需求。

信管网软考课程由信管网依托10年专业软考教研倾力打造,教材和资料参编作者和资深讲师坐镇,通过深研历年考试出题规律与考试大纲,深挖核心知识与高频考点,为学员考试保驾护航。面授、直播&录播,多种班型灵活学习,满足不同学员考证需求,降低课程学习难度,使学习效果事半功倍。

发表评论  查看完整评论  

推荐文章

精选

课程

提问

评论

收藏