首页整卷下载分项下载 试卷搜索题目搜索全站搜索招考信息

2014年上半年程序员下午试卷案例

分类:软考/初级_程序员    来源:软考

1
 
(共15分)
阅读以下说明和流程图, 填补流程图中的空缺(1)-(5),将解答填入答题纸的对应栏内。
    指定网页中, 某个关键词出现的次数除以该网页长度称为该关键词在此网页中的词频。 对新闻类网页, 存在一组公共的关键词。因此, 每个新闻网页都存在一组词频, 称为该新闻网页的特征向量。
    设两个新闻网页的特征向量分别为: 甲(a1,a2,…,ak)、乙(b1,b2,... ,bk),则计算这两个网页的相似度时需要先计算它们的内积S=a1b1+a2b2+…+akbk。一般情况下,新同网页特征向量的维数是巨大的, 但每个特征向量中非零元素却并不多。 为了节省存储空间和计算时间,我们依次用特征向量中非零元素的序号及相应的词频值来简化特征向量。为此,我们用(NA(i),A(i)|i=1,2,...,m)和(NB(j),B(j)|j=1,2,...,n)来简化两个网页的特征向量。 其中:NA(i)从前到后描述了特征向量甲中非零元素A(i)的序号(NA(1)<NA(2) < ...), NB(j)从前到后描述了特征向量乙中非零元素B(j)的序号(NB(1) <NB(2) <…)。
下面的流程图描述了计算这两个特征向量内积S的过程。
 
问题:1.1  
 
 
2
 
(共15分)
阅读以下说明和C函数,填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。
【说明1】
    函数 isPrime(int n) 的功能是判断n是否为素数。若是,则返回1,否则返回0。素数是只能被1和自己整除的正整数。例如,最小的5个素数是2,3,5,7,11。
【C函数】


【说明2】
函数int minOne(int arr[],int k) 的功能是用递归方法求指定数组中前k个元素中的最小者,并作为函数值返回。
【C函数】
 
问题:2.1  
 
 
3
 
(共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函数】

 
问题:3.1  
 
 
4
 
(共15分)
阅读以下说明和C函数, 填补代码中的空缺(1)~(5),将解答填入答题纸的对应栏内。
【说明】
    函数 ReverseList(LinkList headptr)的功能是将含有头结点的单链表就地逆置。处理思路是将链表中的指针逆转,即将原链表看成由两部分组成:已经完成逆置的部分和未完成逆置的部分,令s指向未逆置部分的第一个结点,并将该结点插入已完成部分的表头(头结点之后),直到全部结点的指针域都修改完成为止。
    例如,某单链表如图4-1所示,逆置过程中指针s的变化情况如图4-2所示。



链表结点类型定义如下:


【C函数】
 
问题:4.1  
 
 
5
 
(共15分)
阅读下列说明、C++代码和运行结果, 填补代码中的空缺(1)~(5), 将解答填入答题纸的对应栏内。
【说明】
    对部分乐器进行建模,其类图如图5-1所示,包括:乐器(Instrument)、管乐器(Wind)、
打击乐器(Percussion)、弦乐器(Stringed)、木管乐器(Woodwind)、铜管乐器(Brass)。


下面是实现上述设计的C++代码,其中音乐类(Music)使用各类乐器(Instrument)进行演奏和调音等操作。
【C++代码】


本程序运行后的输出结果为:
Wind. play() 0
Wind. adjust ()
Woodwind. play()  0
Wind. adjust ()
 
问题:5.1  
 
 
6
 
(共15分〉
阅读以下说明和Java程序, 填补代码中的空缺(1)~(5), 将解答填入答题纸的对应栏内。
【说明】
    对部分乐器进行建模,其类图如图 6-1 所示,包括:乐器(Instrument)、管乐器(Wind)、打击乐器(Percussion)、弦乐器(Stringed)、木管乐器(Woodwind)、铜管乐器(Brass)。

    下面是实现上述设计的Java代码,其中音乐类(Music)使用各类乐器(Instrument)进行演奏和调音等操作。
【Java代码】


    本程序运行后的输出结果为:


 
问题:6.1