欢迎访问第一题库!

阅读以下说明和C程序,填补代码中的空缺,将解答填入答题纸的对应栏内。[说明]函数areAnagrams(char *fstword,char *sndword)的功能是判断fstword和sndwor

第一题库 分享 时间: 加入收藏

考试:初级软件水平考试

科目:(初级)程序员(在线考试)

问题:

阅读以下说明和C程序,填补代码中的空缺,将解答填入答题纸的对应栏内。[说明]函数areAnagrams(char *fstword,char *sndword)的功能是判断fstword和sndword中的单词(不区分大小写)是否互为变位词,若是则返回1,否则返回0。所谓变位词是指两个单词是由相同字母的不同排列得到的。例如,"triangle"与"integral"互为变位词,而"dumbest"与"stumble"不是。函数areAnagrams的处理思路是检测两个单词是否包含相同的字母且每个字母出现的次数也相同。过程是先计算第一个单词(即fstword中的单词)中各字母的出现次数并记录在数组counter中,然后扫描第二个单词(即sndword中的单词)的各字母,若在第二个单词中遇到与第一个单词相同的字母,就将相应的计数变量值减1,若在第二个单词中发现第一个单词中不存在的字母,则可断定这两个单词不构成变位词。最后扫描用于计数的数组counter各元素,若两个单词互为变位词,则counter的所有元素值都为0。函数areAnagrams中用到的部分标准库函数如下表所述。[C函数] intareAnagrams(char *fstword, char *sndword) { int index; int counter[26]={0); /*counter[i]为英文字母表第i个字母出现的次数, 'A'或'a'为第0个,'B'或'b'为第1个,依此类推*/ if(______) /*两个单词相同时不互为变位词*/ return 0; while (*fstword){ /*计算第一个单词中各字母出现的次数*/ if(isalpha(*fstword)){ if (isupper(*fstword)) counter [*fstword-'A']++; else counter[*fstword-'a']++; ______; /*下一个字符*/ } } while (*Sndword){ if (isalpha(*sndword)) { index=isupper(*sndword)?* sndword -'A':*sndword-'a'; if(counter[index]) counter [index]--; elSe ______; } ______; /*下一个字符*/ } for (index=0;index<26; index++) if(______) return 0; return 1; }

答案:


相关标签:

(初级)程序员     说明     char     答题     空缺     填补    

推荐文章

如图所示,Switch A通过Switch B和NMS跨网段相连并正常通信。SwitchA 与Switch B配置相似,从给出的Switch A的配置文件可知该配置实现的是(请作答此空),验证配置结果 现有某营养麦片的食品标签,标注有以下主要内容:营养麦片富含9种维生素、6种矿物质、富含膳食纤维。GI值为45。更低糖分。丰富钙质及帮助钙质吸收的维生素D3。配料:全小麦粉、大米、大麦麦芽精、白砂糖、玉 CMM3(CMM,Capability Maturity Model,能力成熟度模型)是( )。 关系R、S如下表所示,的结果为(请作答此空),R、S的左外连接、右外连接和完全外连接的元组个数分别为( ). 某道多项选择题有A、B、C、D、E五个备选项,要求从中选择2项或2项以上,全部选对才算解答正确。按照上述要求,某考生凭猜测答题,解答正确的概率是( )。 对以下箭线图,理解正确的是: 某软件项目的活动图如下图所示,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示活动的持续时间(天),则完成该项目的最少时间为(请作答此空)天。活动BD和HK最早可以从第( )天开始 以下关于复杂指令集计算机 (Complex Instruction Set Computer,CISC) 的叙述中,正确的是( )。 项目经理小张对自己正在做的一个项目进行成本挣值分析后,画出了如下所示的一张图,当前时间为图中的检查日期。根据该图小张分析:该项目进度 ( )。 设IP地址为18.250.31.14,子网掩码为255.240.0.0,则子网地址是 ( ) 。
221381
领取福利

微信扫码领取福利

微信扫码分享