中级软件设计_师填空集考试卷模拟考试题_2_第1页
中级软件设计_师填空集考试卷模拟考试题_2_第2页
中级软件设计_师填空集考试卷模拟考试题_2_第3页
中级软件设计_师填空集考试卷模拟考试题_2_第4页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、姓名:_ 班级:_ 学号:_-密-封 -线- 中级软件设计_师填空集考试卷模拟考试题考试时间:120分钟 考试总分:100分题号一二三四五总分分数遵守考场纪律,维护知识尊严,杜绝违纪行为,确保考试结果公正。1、阅读以下说明和c代码,将应填入(n)处的字句写在对应栏内。说明下面程序用来将打乱的单词还原为原来的次序,比如将rty还原为try。单词的原来次序存储于wordlist.txt文件中,原则上可用穷举法(rty对应的穷举为:rty、ryt、try、tyr、ytr、yrt),但考虑到破译速度,采用如下方法。注意到单词列表中不存在组成字符完全相同的单词(如hack12与hack21包含完全相同的

2、字符),因此将单词中的字符进行重组再进行比较,例如,try单词重组为rty(按asc码顺序),这样不管打乱的单词是什么顺序,只要是由r、t、y三个字母组成的均破译为try,大大提高破译速度。程序中借助二叉排序树以进一步提高查找效率,二叉排序树左子树(如果有)上的节点对应的值均小于根节点的值,右子树(如果有)上的节点对应的值均大于根节点的值。函数中使用的符号定义如下:#define numberofwords 1275/单词总数#define maxlength 10/最长单词所含字符数char wordlistnumberofwordsmaxlength;/存储单词列表int cmp(node

3、 *q,node *p);/q与p比较。p小,返回负值;p大返回正值:相等,返回0typedef struct node(/二叉树节点char *eleletters;/重组后的字符串int index;/对应单词表中的下标struct node *lchiid,*rchiid;/左右子节点node;c代码void recompose(node *p,char *temp)/重纰,亦即将temp字符串中的字符升序排序,存储于p节点中/采用直接插入排序法char c;strcpy(p-eleletters,temp);/int len=strlen(temp);int i,j,k;for(i=0

4、;ilen1;i+)k=i;for(j=i+1;jlan;j+)if(p-elelettersjp-elelettersk)k=j;if(1)c=p-elelettersi;p-elelettersi=p-elelettersk;p-elelettersk=c;/if/for;int find(node &root,char *temp)/在二叉排序树root中查找与temp匹配的单词。/若匹配返回相应单词在wordlist中下标;若查找失败,返回-1node *p,*q;int flag;p=(2);/临时存储recompose(p,temp);/将temp重组q=&root;while(f

5、lag=(3)q !=null)if(flag0)/搜索左子树q=q-lchiid;else(/搜索右子树q=q-rchild;/whileif(flag=0)/找到匹配的,保存下标return(4);if(5)/查找失败printf(“cant unscramble the following word:%s”,temp);return -1;(1)处填( )2、阅读以下说明和c代码,将应填入(n)处的字句写在对应栏内。说明下面程序用来将打乱的单词还原为原来的次序,比如将rty还原为try。单词的原来次序存储于wordlist.txt文件中,原则上可用穷举法(rty对应的穷举为:rty、ry

6、t、try、tyr、ytr、yrt),但考虑到破译速度,采用如下方法。注意到单词列表中不存在组成字符完全相同的单词(如hack12与hack21包含完全相同的字符),因此将单词中的字符进行重组再进行比较,例如,try单词重组为rty(按asc码顺序),这样不管打乱的单词是什么顺序,只要是由r、t、y三个字母组成的均破译为try,大大提高破译速度。程序中借助二叉排序树以进一步提高查找效率,二叉排序树左子树(如果有)上的节点对应的值均小于根节点的值,右子树(如果有)上的节点对应的值均大于根节点的值。函数中使用的符号定义如下:#define numberofwords 1275/单词总数#defin

7、e maxlength 10/最长单词所含字符数char wordlistnumberofwordsmaxlength;/存储单词列表int cmp(node *q,node *p);/q与p比较。p小,返回负值;p大返回正值:相等,返回0typedef struct node(/二叉树节点char *eleletters;/重组后的字符串int index;/对应单词表中的下标struct node *lchiid,*rchiid;/左右子节点node;c代码void recompose(node *p,char *temp)/重纰,亦即将temp字符串中的字符升序排序,存储于p节点中/采用

8、直接插入排序法char c;strcpy(p-eleletters,temp);/int len=strlen(temp);int i,j,k;for(i=0;ilen1;i+)k=i;for(j=i+1;jlan;j+)if(p-elelettersjp-elelettersk)k=j;if(1)c=p-elelettersi;p-elelettersi=p-elelettersk;p-elelettersk=c;/if/for;int find(node &root,char *temp)/在二叉排序树root中查找与temp匹配的单词。/若匹配返回相应单词在wordlist中下标;若查找

9、失败,返回-1node *p,*q;int flag;p=(2);/临时存储recompose(p,temp);/将temp重组q=&root;while(flag=(3)q !=null)if(flag0)/搜索左子树q=q-lchiid;else(/搜索右子树q=q-rchild;/whileif(flag=0)/找到匹配的,保存下标return(4);if(5)/查找失败printf(“cant unscramble the following word:%s”,temp);return -1;(2)处填( )3、阅读以下说明和c代码,将应填入(n)处的字句写在对应栏内。说明下面程序用来

10、将打乱的单词还原为原来的次序,比如将rty还原为try。单词的原来次序存储于wordlist.txt文件中,原则上可用穷举法(rty对应的穷举为:rty、ryt、try、tyr、ytr、yrt),但考虑到破译速度,采用如下方法。注意到单词列表中不存在组成字符完全相同的单词(如hack12与hack21包含完全相同的字符),因此将单词中的字符进行重组再进行比较,例如,try单词重组为rty(按asc码顺序),这样不管打乱的单词是什么顺序,只要是由r、t、y三个字母组成的均破译为try,大大提高破译速度。程序中借助二叉排序树以进一步提高查找效率,二叉排序树左子树(如果有)上的节点对应的值均小于根节

11、点的值,右子树(如果有)上的节点对应的值均大于根节点的值。函数中使用的符号定义如下:#define numberofwords 1275/单词总数#define maxlength 10/最长单词所含字符数char wordlistnumberofwordsmaxlength;/存储单词列表int cmp(node *q,node *p);/q与p比较。p小,返回负值;p大返回正值:相等,返回0typedef struct node(/二叉树节点char *eleletters;/重组后的字符串int index;/对应单词表中的下标struct node *lchiid,*rchiid;/左

12、右子节点node;c代码void recompose(node *p,char *temp)/重纰,亦即将temp字符串中的字符升序排序,存储于p节点中/采用直接插入排序法char c;strcpy(p-eleletters,temp);/int len=strlen(temp);int i,j,k;for(i=0;ilen1;i+)k=i;for(j=i+1;jlan;j+)if(p-elelettersjp-elelettersk)k=j;if(1)c=p-elelettersi;p-elelettersi=p-elelettersk;p-elelettersk=c;/if/for;int

13、 find(node &root,char *temp)/在二叉排序树root中查找与temp匹配的单词。/若匹配返回相应单词在wordlist中下标;若查找失败,返回-1node *p,*q;int flag;p=(2);/临时存储recompose(p,temp);/将temp重组q=&root;while(flag=(3)q !=null)if(flag0)/搜索左子树q=q-lchiid;else(/搜索右子树q=q-rchild;/whileif(flag=0)/找到匹配的,保存下标return(4);if(5)/查找失败printf(“cant unscramble the fol

14、lowing word:%s”,temp);return -1;(3)处填( )4、阅读以下说明和c代码,将应填入(n)处的字句写在对应栏内。说明下面程序用来将打乱的单词还原为原来的次序,比如将rty还原为try。单词的原来次序存储于wordlist.txt文件中,原则上可用穷举法(rty对应的穷举为:rty、ryt、try、tyr、ytr、yrt),但考虑到破译速度,采用如下方法。注意到单词列表中不存在组成字符完全相同的单词(如hack12与hack21包含完全相同的字符),因此将单词中的字符进行重组再进行比较,例如,try单词重组为rty(按asc码顺序),这样不管打乱的单词是什么顺序,只

15、要是由r、t、y三个字母组成的均破译为try,大大提高破译速度。程序中借助二叉排序树以进一步提高查找效率,二叉排序树左子树(如果有)上的节点对应的值均小于根节点的值,右子树(如果有)上的节点对应的值均大于根节点的值。函数中使用的符号定义如下:#define numberofwords 1275/单词总数#define maxlength 10/最长单词所含字符数char wordlistnumberofwordsmaxlength;/存储单词列表int cmp(node *q,node *p);/q与p比较。p小,返回负值;p大返回正值:相等,返回0typedef struct node(/二

16、叉树节点char *eleletters;/重组后的字符串int index;/对应单词表中的下标struct node *lchiid,*rchiid;/左右子节点node;c代码void recompose(node *p,char *temp)/重纰,亦即将temp字符串中的字符升序排序,存储于p节点中/采用直接插入排序法char c;strcpy(p-eleletters,temp);/int len=strlen(temp);int i,j,k;for(i=0;ilen1;i+)k=i;for(j=i+1;jlan;j+)if(p-elelettersjp-elelettersk)k

17、=j;if(1)c=p-elelettersi;p-elelettersi=p-elelettersk;p-elelettersk=c;/if/for;int find(node &root,char *temp)/在二叉排序树root中查找与temp匹配的单词。/若匹配返回相应单词在wordlist中下标;若查找失败,返回-1node *p,*q;int flag;p=(2);/临时存储recompose(p,temp);/将temp重组q=&root;while(flag=(3)q !=null)if(flag0)/搜索左子树q=q-lchiid;else(/搜索右子树q=q-rchild

18、;/whileif(flag=0)/找到匹配的,保存下标return(4);if(5)/查找失败printf(“cant unscramble the following word:%s”,temp);return -1;(4)处填( )5、阅读以下说明和c代码,将应填入(n)处的字句写在对应栏内。说明下面程序用来将打乱的单词还原为原来的次序,比如将rty还原为try。单词的原来次序存储于wordlist.txt文件中,原则上可用穷举法(rty对应的穷举为:rty、ryt、try、tyr、ytr、yrt),但考虑到破译速度,采用如下方法。注意到单词列表中不存在组成字符完全相同的单词(如hack12与hack21包含完全相同的字符),因此将单词中的字符进行重组再进行比较,例如,try单词重组为rty(按asc码顺序),这样不管打乱的单词是什么顺序,只要是由r、t、y三个字母组成的均破译为try,大大提高破译速度。程序中借助二叉排序树以进一步提高查找效率,二叉排序树左子树(如果有)上的节点对应的值均小于根节点的值,右子树(如果有)上的节点对应的值均大于根节点的值。函数中使用的符号定义如下:#define numberofwords 1275/单词总数#define maxlength 10/最长单词所含字符数char wordlistnumberofword

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论