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

2013年下半年程序员下午试卷案例

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

1
 
【说明】
两个包含有限个元素的非空集合A、B的相似度定义为|A∩B|/|A∪B|,即它们的交集大小(元素个数)与并集大小之比。
以下的流程图计算两个非空整数集合(以数组表示)的交集和并集,并计算其相似度。已知整数组A[1:m]和B[1:n]分别存储了集合A和B的元素(每个集合中包含的元素各不相同),其交集存放于数组C[1:s],并集存放于数组D[1:t],集合A和B的相似度存放于SIM。
例如,假设A={1,2,3,4},B={1,4,5,6},则C={1,4},D={1,2,3,4,5,6},A与B的相似度SIM=1/3。
 
问题:1.1   阅读以上说明和流程图,填补流程图中的空缺(1)〜(5),将解答填入答题纸的对应栏内。
 
 
2
 
【说明】
下面的函数sort(intn,inta[])对保存在数组a中的整数序列进行非递减排序。由于该序列中的元素在一定范围内重复取值,因此排序方法是先计算出每个元素出现的次数并记录在数组b中,再从小到大顺序地排列各元素即可得到一个非递减有序序列。例如,对于序列6,5,6,9,6,4,8,6,5,其元素在整数区间[4,9]内取值,因此使数组元素b[0]〜b[5]的下标0〜5分别对应数值4〜9,顺序地扫描序列的每一个元素并累计其出现的次数,即将4的个数记入b[0],5的个数记入b[1],依此类推,9的个数记入b[5]。最后依次判断数组b的每个元素值,并将相应个数的数值顺序地写入结果序列即可。
对于上例,所得数组b的各个元素值如下:

那么在输出序列中写入1个4、2个5、4个6、1个8、1个9,即得4,5,5,6,6,6,6,8,9,从而完成排序处理。
【C函数】
 
问题:2.1   阅读以上说明和C函数,填充函数中的空缺,将解答填入答题纸的对应栏内。
 
 
3
 
【说明1】
F面的函数countChar(char*text)统计字符串text中不同的英文字母数和每个英文字母出现的次数(英文字母不区分大小写)。
【C代码1】


【说明2】
将下面C代码2中的空缺补全后运行,使其产生以下输出。
f2:f2:f2:2
f3:f3:1
【C代码2】

 
问题:3.1   阅读以上说明和C代码,填充代码中的空缺,将解答填入答题纸的对应栏内。
 
 
4
 
【说明】
正整数n若是其平方数的尾部,则称n为同构数。例如,6是其平方数36的尾部,76是其平方数5776的尾部,6与76都是同构数。下面的程序求解不超过10000的所有同构数。
已知一位的同构数有三个:1,5,6,因此二位同构数的个位数字只可能是1,5,6这三个数字。依此类推,更高位数同构数的个位数字也只可能是1,5,6这三个数字。
下面程序的处理思路是:对不超过10000的每一个整数a,判断其个位数字,若为1、5或6,则将a转换为字符串as,然后对a进行平方运算,并截取其尾部与as长度相等的若干字符形成字符串后与as比较,根据它们相等与否来断定a是否为同构数。
【C程序】

 
问题:4.1   阅读以上说明和C程序,填充程序中的空缺,将解答填入答题纸的对应栏内。
 
 
5
 
【说明】
某应急交通控制系统(TraficControlSystem)在红灯时控制各类车辆(Vehicle)的通行,其类图如图5-1所示,在紧急状态下应急车辆红灯时也可通行,其余车辆按正常规则通行。

下面的C++代码实现以上设计,请完善其中的空缺。

 
问题:5.1   阅读以下说明和C++代码,填充代码中的空缺,将解答填入答题纸的对应栏内。
 
 
6
 
【说明】
某应急交通控制系统(TraficControlSystem)在红灯时控制各类车辆(Vehicle)的通行,其类图如图6-1所示,在紧急状态下应急车辆在红灯时可通行,其余车辆按正常规则通行。

下面的Java代码实现以上设计,请完善其中的空缺。
【Java代码】


 
问题:6.1   阅读以上说明和Java代码,填充程序中的空缺,将解答填入答题纸的对应栏内。