- 36
- 0
- 约7千字
- 约 19页
- 2021-08-22 发布于北京
- 举报
2014下半年程序员考试真题及答案-下午卷
试题一(共15分)
阅读以下说明和流程图,填补流程图中的空缺(1)?(5),将解答填入答题纸的对应栏内。
【说明】
本流程图旨在统计一本电子书中各个关键词出现的次数。假设已经对该书从头到尾依次分离出各个关键词{A(i)|i=1,…,n}(n1) },其中包含了很多重复项,经下面的流程处理后,从中挑选出所有不同的关键词共m个{K(j)lj=l,…,m},而每个关键词K(j)出现的次数为K(j),j=1,…,m。
【流程图】
【参考答案】
(1) 1 (2) K(j)
(3)NK(j)+1-NK(j) 或NK(j)++ 或等价表示
(4)m+1-m 或m++ 或等价表示
(5)A(i)
【试题解析】
流程图中的第1框显然是初始化。A (1) -K(1)意味着将本书的第1个关键词作为选出的第1个关键词。1-NK (1)意味着此时该关键词的个数置为1。m是动态选出的关键词数目,此时应该为1,因此(1)处应填1。
本题的算法是对每个关键词与已选出的关键词进行逐个比较。凡是遇到相同的,相应的计数就增加1;如果始终没有遇到相同关键词的,则作为新选出的关键词。
流程图第2框开始对i=2,n循环,就是对书中其他关键词逐个进行处理。流程图第3 框开始j=l,m循环,就是按已选出的关键词依次进行处理。
接着就是将关键词A(I)与选出的关键词K(j)进行比较。因此(2)处应填K(j)。
如果A(i)=K(j),则需要对计数器NK(j)增1,即执行NK(j)+1-NK(j)。因此(3)处应填NK(j)+1-NK(j)。执行后,需要跳出j循环,继续进行i循环,即根据书中的下一个关键词进行处理。
如果A(i)不等于NK(j),则需要继续与下个NK(j)进行比较,即继续执行j循环。如果直到j循环结束仍没有找到匹配的关键词,则要将该A(i)作为新的已选出的关键词。 因此,应执行A(i)-K(m+1)以及m+1-m。更优的做法是先将计数器m增1,再执行 A(i) -K(m)。 因此(4)处应填m+1-m,(5)处应填A(i)。
试题二(共15分)
阅读以下说明和C函数,填补代码中的空缺(1)?(5),将解答填入答题纸的对应栏内。
【说明】
函数removeDuplicates(char *str)的功能是移除给定字符串中的重复字符,使每种字符仅保留一个,其方法是:对原字符串逐个字符进行扫描,遇到重复出现的字符时,设 置标志,并将其后的非重复字符前移。例如,若str指向的字符串为aaabbbbscbsss”, 则函数运行后该字符串为absc”。
【C代码】
【参考答案】
(1)len2 或len=l 或等价表示
(2)i+1 或等价表示
(3)flag =1或给flag赋值为任何一个不是0的值
(4)idx++ 或idx = idx+1 或等价表示
(5)idx 或等价表示
【试题解析】
本题考查C语言基本应用。
题目要求在阅读理解代码说明的前提下完善代码。字符串的运算处理是C程序中常见的基本应用。
根据注释,空(1)处应填入的内容很明确,为len=1或其等价表示。
要消除字符串中的重复字符,需要扫描字符串,这通过下面的代码来实现:
上面代码中,循环变量i用于顺序地记下字符串中每个不同字符首次出现的位置,那么后面的处理就是从i的下一个位置开始,考查后面的字符中有没有与它相同的(str[i] =str[m]),因此空(2)应填入i+1或其等价表示。显然,当发现了重复宇符时,应设置标志,空(3)处应填入flag=1或者给flag赋值为任何一个不是0的值。
根据说明,发现与str[i]相同的第一个字符str[m]后,需要将其后所有与str[i]不同的字符前移,以覆盖重复字符str[m],对应的代码如下:
初始时,idx等于m,使str[n]覆盖str[idx]后,需要将idx自增,以便将后面与str[i] 不同的字符继续前移,因此空(4)处应填入idx++或等价表示。由于后面字符前移了,所以字符串结束标志也需重新设置,空(5)处应填入idx。
试题三(共15分)
阅读以下说明和C凼数,填补函数代码中的空缺(1)?(5),将解答填入答题纸的对应栏内。
【说明】
队列是一种常用的数据结构,其特点是先入先出,即元素的插入在表头、删除在表尾进行。下面采用顺序存储方式实现队列,即利用一组地址连续的存储单元存放队列元 素,同时通过模运算将存储空间看作一个环状结构(称为循环队列)。
设循环队列的存储空间容量为MAXQSIZE,并在其类型定义中设置base、rear和length三个域变量,其中,base为队列空间的首地址,rear为队尾元素的指针,length表示队列的长度。
例如
您可能关注的文档
- 2007下半年程序员考试真题及答案-下午卷.doc
- 2009上半年程序员考试真题及答案-上午卷.doc
- 2009上半年程序员考试真题及答案-下午卷.doc
- 2009下半年程序员考试真题及答案-上午卷.doc
- 2009下半年程序员考试真题及答案-下午卷.doc
- 2010上半年程序员考试真题及答案-上午卷.doc
- 2010上半年程序员考试真题及答案-下午卷.doc
- 2010下半年程序员考试真题及答案-上午卷.doc
- 2010下半年程序员考试真题及答案-下午卷.doc
- 2011上半年程序员考试真题及答案-上午卷.doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
原创力文档

文档评论(0)