第1题
第2题
第4题
在一般情况下,字符串A和B的长度不一定相同.字符串A的扩展是在A中插入若干空格字符所产生的字符串.在字符串A和B的所有长度相同的扩展中,有一对距离最小的扩展,该距离称为字符串A和B的扩展距离.
对于给定的字符串4和B,试设计一个算法,计算其扩展距离.
算法设计:对于给定的字符串A和B,计算其扩展距离.
数据输入:由文件input.txt给出输入数据.第1行是字符串A,第2行是字符串B,第3行是空格与其他字符的距离定值k.
结果输出:将计算出的字符串A和B的扩展距离输出到文件output.txt.
第5题
按语
撰写上机报告主要有两个目的:一是给老师和同学看,汇报自己是怎样完成上机工作的;二是给自己看,对经验和教训进行总结。从软件工程的观点,软件文档是软件的重要组成部分。同样,学习写好上机报告也是完成上机实习的重要阶段。上机实习报告的形式难于统一规定,每次实习的目的和要求可能不同,实习的问题和解决方法也不相同,因此每个人每次上机的收获都不相同。
经验表明:让学生在学习期间认真撰写1~2份上机报告,对于学生是十分重要的训练。
下面是北京大学数学学院的王晓宇同学在学习“数据结构”课程期间,按照老师的要求完成上机实习后写的上机报告。王晓宇同学学习非常认真,成绩优秀,动手能力也强。发表在此供大家参考,发表前做了一些删改。
第6题
按语
撰写上机报告主要有两个目的:一是给老师和同学看,汇报自己是怎样完成上机工作的;二是给自己看,对经验和教训进行总结。从软件工程的观点,软件文档是软件的重要组成部分。同样,学习写好上机报告也是完成上机实习的重要阶段。上机实习报告的形式难于统一规定,每次实习的目的和要求可能不同,实习的问题和解决方法也不相同,因此每个人每次上机的收获都不相同。
经验表明:让学生在学习期间认真撰写1~2份上机报告,对于学生是十分重要的训练。
下面是北京大学数学学院的王晓宇同学在学习“数据结构”课程期间,按照老师的要求完成上机实习后写的上机报告。王晓宇同学学习非常认真,成绩优秀,动手能力也强。发表在此供大家参考,发表前做了一些删改。
第7题
【程序说明】
该程序定义了两个子函数strsort和strmerge。它们分别实现了将一个字符串按字母顺序排序和将两个字符串合并排序,并删去相同字符。在主函数里,先输入两个字符串s1和s2,然后调用strsort函数对它们分别排序,然后调用strmerge函数将s1和s2合并,将合并后的字符串赋给字符串s3,最后输出字符串s3。
【程序】
include<stdio.h>
void strmerge(char,a,char *b,char *c) //将字符串a,b合并到字符串c中
{
char t,*w;
w=c;
while((1))
{//找到字符串a,b当前字符中较小的字符
if(*a< *b)
{
t= *a;
(2);
{
else if (*a>*b)
{
t= *b;
(3);
}
else //字符串a,b当前字符相等
{
t= *a;
a++;
b++;
}
if((4)) //开始,可直接赋值
*w=t;
else if(t!=*w)
//如果a,b中较小的当前字符与c中当前字符不相等,才赋值(5);
}
if(*a!=\'\0') //如果字符串a还没有结束,则将a的剩余部分赋给C
while(*a!='\0')
if(*a!=*w)
{
*(++w)=*a;
a++;
}
else
(6);
if(*6!='\0') //如果字符串b还没有结束,则将b的剩余部分赋给c
while(*b!='\0')
if(*b! = *w)
{
*(++w)=*b;
b++;
}
else
b++;
(7);
}
void strsort(char*s) //将字符串S中的字符排序
{
int i,j,n;
char t,*w;
W=S;
for(n=0;*w!='\0';n++) //得到字符串长度n
w++;
for(i=0;i<n-1;i++) //对字符串s进行排序,按字母先后顺序
for(j=i+1;j<n;j++)
if((8))
{
t=s[i];
s[i]=s[j];
(9);
}
}
void main()
{
char s1[100],s2[100],s3[100];
printf("\nPlease,input the first string:");
scanf("%s",s1);
printf("\nPlease input the second string:");
scanf("%s",s2);
strsort(s1); //将字符串s1排序
strsort(s2); //将字符串s2排序
printf("%s\n",s1);
printf("%s\n",s2);
s3[0]='\0'; //字符串s3的第一个字符先置'\0'结束标志
(10) //将s1和s2合并,按照字母顺序排列,
//且要删去相同字符,存入s3中
printf("%s",s3);
}
第8题
阅读下列程序说明和C程序,将应填入(n)处的字句写在答卷纸的对应栏内。
【程序说明】
该程序定义了两个子函数strsort和strmerge。它们分别实现了将一个字符串按字母顺序排序和将两个字符串合并排序,并删去相同字符。在主函数里,先输入两个字符串s1和s2,然后调用strsort函数对它们分别排序,然后调用strmerge函数将s1和s2合并,将合并后的字符串赋给字符串s3,最后输出字符串s3。
【程序】
#include<stdio.h>
void strmerge(char*a,char*b,char*c)//将字符串a,b合并到字符串c中
{
char t,*w;
w=c;
while( (1) )
{
//找到字符串a,b当前字符中较小的字符
if(*a<*b)
{
t=*a;
(2) ;
}
else if(*a>*b)
{
t=*b;
(3) ;
}
else//字符串a,b当前字符相等
{
t=*a;
a++;
b++;
}
if( (4) )//开始,可直接赋值
*w=t;
else if(t!=*w)
//如果a,b中较小的当前字符与c中当前字符不相等,才赋值 (5) ;
}
if(*a!=\′\0′)//如果字符串a还没有结束,则将a的剩余部分赋给c
while(*a!=′\0′)
if(*a!=*w)
{
*(++w)=*a;
a++;
}
else
(6) ;
if(*6!=′\0′)//如果字符串b还没有结束,则将b的剩余部分赋给c
while(*b!=′\0′)
if(*b!=*w)
{
*(++w)=*b;
b++;
}
else
b++;
(7) ;
}
void strsort(char*s)//将字符串S中的字符排序
{
int i,j,n;
char t,*w;
W=S;
for(n=0;*w!=′\0′;n++)//得到字符串长度n
w++;
for(i=0;i<n-1;i++)//对字符串s进行排序,按字母先后顺序
for(j=i+1;j<n;j++)
if( (8) )
{
t=s[i];s[i]=s[j]; (9) ;
}
}
void main()
{
char s1[100],s2[100],s3[100];printf("\nPlease,input the first string:");
scanf("%s",s1);
printf("\nPlease input the second string:");
scanf("%s",s2);
strsort(s1);//将字符串s1排序
strsort(s2);//将字符串s2排序
printf("%s\n",s1);
printf("%s\n",s2);
s3[0]=′\0′;//字符串s3的第一个字符先置′\0′结束标志
(10) //将s1和s2合并,按照字母顺序排列,
//且要删去相同字符,存入s3中
printf("%s",s3);
}
第9题
给定1个长度为n的字符串x,最长回文子串问题就是要找出X中长度最长的回文了串.例如,如果给定的字符串X=bbacababa,则子串bacab是X的一个最长的回文子串,它的长度是5.
算法设计:设计一个算法,找出给定字符串X的最长回文子串.
数据输入:由文件input.txt提供输入数据.文件的第1行中给出字符串X.
结果输出:将计算出的字符串X的最长回文子串输出到文件output.txt中.文件的第1行是最长回文子串的长度.文件的第2行是最长回文子串.
第10题
例如,主函数中输入字符串:32486和12345,在主函数中输出的函数值为:44831。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANKl.C中。
不得增行或删行,也不得更改程序的结构!
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!