1 / 19
文档名称:

近3年程序员考试测练考题及答案(2)(考练题).doc

格式:doc   大小:1,534KB   页数:19页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

近3年程序员考试测练考题及答案(2)(考练题).doc

上传人:天雨轩教育网络中心 2022/8/8 文件大小:1.50 MB

下载得到文件列表

近3年程序员考试测练考题及答案(2)(考练题).doc

相关文档

文档介绍

文档介绍:温故而知新,下笔如有神。<br****题很丰富,梦想易实现。
近三上半年程序员考试专题考练2及答案-下午卷&#160;
试题一(共15分)
阅读以下说明和流程图, 填补流程图中的空缺(1)-(5),将解答填入答题纸的对应栏内。
指可表示为“n%2等于0”,因此空(1)处应填入“n% 2==0”,或者“!(n%2)”。
在n是大于2的奇数的情况下,下面的代码从3开始查找n的因子,直到n的平方根为止。
若k的值是n的因子,则说明n不是素数。因此,空(2)处应填入“n%k==0”,或者“!(n%k)”。
函数int minOne(int tarr[], int k)的功能是用递归方法求指定数组中前k个元素中的最小者,显然,k为1时,这一个元素就是最小者。因此,空(3)处应填入“arr[0]”或其等价形式。
空(4)所在的语句是通过递归方式找出arr[1]~arr[k-1]中的最小者,第一个实参指出从arr[1]开始, 第二个参数为元素个数, 为k-1个, 因此空(4)应填入“k-1”。
接下来的处理就很明确了, 当t表示arr[1]~arr[k-1]中的最小者, 其与arr[0]比较后就可以得到arr[0]~arr[k-1]中的最小者, 因此空(5)处应填入“ t”。
温故而知新,下笔如有神。<br****题很丰富,梦想易实现。
试题三(共15分)
阅读以下说明和C程序, 填补代码中的空缺(1)~(5), 将解答填入答题纸的对应栏内。
【说明】
函数areAnagrams(char*fstword,char*sndword )的功能是判断fstword和sndword中的单词(不区分大小写)是否互为变位词,若是则返回1,否则返回0。所谓变位词是指两个单词是由相同字母的不同排列得到的。例如,”triangle“与“ integral” 互为变位词,而“dumbest”与“stumble”不是。
函数areAnagrarns的处理思路是检测两个单词是否包含相同的字母且每个字母出现的次数也相同。 过程是先计算第一个单词(即fstword中的单词)中各字母的出现次数并记录在数组counter中,然后扫描第二个单词(即sndword中的单词)的各字母,若在第二个单词中遇到与第一个单词相同的字母, 就将相应的计数变量值减1, 若在第二个单词中发现第一个单词中不存在的字母, 则可断定这两个单词不构成变位词。最后扫描用于计数的数组counter各元素,若两个单词互为变位词, 则counter的所有元素值都为0。
函数areAnagrams中用到的部分标准库函数如下表所述。
【C函数】
温故而知新,下笔如有神。<br****题很丰富,梦想易实现。

【参考答案】
(1)strcmp( fstword, sndword)==0 ,或其等价形式
(2)fstword++, 或其等价形式
(3) return 0
(4) sndword++,或其等价形式
(5) counter[index],或 counter [index]!=0,或其等价形式
【试题解析】
本题考查C程序的基本语法和运算逻辑。
温故而知新,下笔如有神。<br****题很丰富,梦想易实现。
首先应认真分析题目中的说明, 然后确定代码结构和各变量的作用。
空(1)所在语句是比较两个字符串,若它们完全相同,则可断定不是变位词。显然,根据说明中的描述,可以用标准库函数 strcmp 来完成该处理,当两个字符串相同时, strcmp 的返回值为 0 。 因此, 空(1)处应填入 “ strcmp(fstword, sndword)=0 ” 或 “ !strcmp(fstword, sndword)” 或其等价方式。
上面代码中的第一个 while 语句用于扫描第一个单词中各字母出现的次数,并直接存入对应的数组元素 counter[]中,显然,空(2)处应填入 “ fstword++” 或其等价方式,从而可以遍历单词中的每个字母。
在接下来的 while 语旬中,通过 sndword 逐个扫描第二个单词中的字母,当*sndword 表示的字母在第一个单词中没有出现时(与该字母对应的数组元素 counter[] 的值为0),这两个单词显然不互为变位词,在这种情况下函数可返回,因此空(3)处应填入 “return 0”。空(4)处的处理与空(2)类似,应填入 “ sndword++”或其等价形式。
根据题目中的说明,若两个词互为变位词,则它们包含的字母及每个字母出现的次数相同,这样数组 counter的每个元素都应为 0,如若不然,则可断定不是变位词。因此, 空(