- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
全国研究生研究生入学考试计算机统考试题参照答案
一、单选题:1~40小题,每题2分,共80分。下列每题给出的四个选项中,只有一种选项是最符合题目规定的。请在答题卡上将所选项的字母涂黑。
1.
【答案】A
2.
【答案】B
3.
【答案】B
4.
【答案】C
5.
【答案】C
6.
【答案】D
7.
【答案】A
8.
【答案】C
9.
【答案】B
10.
【答案】A
11.
【答案】B
12.
【答案】D
13.
【答案】A
14.
【答案】B
15.
【答案】D
16.
【答案】A
17.
【答案】C
18.
【答案】D
19.
【答案】C
20.
【答案】C
21.
【答案】D
22.
【答案】C
23.
【答案】B
24.
【答案】A
25.
【答案】D
26.
【答案】B
27.
【答案】D
28.
【答案】D
29.
【答案】A
30.
【答案】B
31.
【答案】B
32.
【答案】C
33.
【答案】A
34.
【答案】B
35.
【答案】B
36.
【答案】D
37.
【答案】D
38.
【答案】C
39.
【答案】C
40.
【答案】B
二、综合应用题:41~47小题,共70分。请将答案写在答题纸指定位置上。
41.
【答案解析】此题考察的知识点是图的存储以及核心途径求解的综合知识。
(1)由题可以画出待定上三角矩阵的构造图如下(图中“?”待定元素)
可以看出,第一行至第五行主对角线上方的元素分别5、4、3、2、1个,由此可以画出
压缩存储数组中的元素所属行的状况,如下图所示:
4
6
∞
∞
∞
5
∞
∞
∞
4
3
∞
∞
3
3
第五行
第一行
第二行
第三行
第四行
将个元素填入各行即得邻接矩阵:(2分)
A=
(2)根据第一步所得矩阵A容易做出有向带权图G,如下:(2分)
0
1
2
3
4
5
4
6
5
4
3
3
3
(3)下图中粗线箭头所标记的4个活动构成G的核心途径(3分)
0
1
2
3
4
5
4
6
5
4
3
3
3
由上图容易求得图的核心途径长度为:4+5+4+3=16。
42.
【答案解析】此题考察的知识点是基本算法的灵活运用。
(1)算法的基本设计思想:(5分)
1)???????比较笨的措施:
将两升序序列归并排序,然后求其中位数,时间复杂度是O(n),空间复杂度O(n)。
2)高效的措施:分别求两个升序序列A和B的中位数,设为a和b。
如果a=b,则a或者b即为所求的中位数。
因素:如果将两序列归并排序,则最后序列中,排在子序列ab前边的元素为先前两序列中排在a和b前边的元素;排在子序列ab后边的元素为先前两序列a和b后边的元素。因此子序列ab一定位于最后序列的中间,有由于a=b,显然a就是中位数。
如果a≠b(假设ab),中位数只能出目前(a,b)范畴内。
因素:同样可以用归并排序后的序列来验证,归并后排序后必然有形如…a…b…的序列浮现,中位数必然出目前(a,b)范畴内。因此可以做如下解决:舍弃a所在序列A之中比较小的一半,同步舍弃b所在序列B之中比较大的一半。在保存的两个升序序列中求出新的中位数a和b,反复上述过程,直到两个序列只含一种元素为止,则较小者即为所求中位数。
(2)算法实现(高效措施):(8分)
intSearch(intA[],intB[],intn)
{
ints1,e1,mid1,s2,e2,mid2;
s1=0;
e1=n-1;
s2=1;
e2=n-1;
while(s1!=e1||s2!=e2)
{
mid1=(s1+e1)/2;
mid2=(s2+e2)/2;
if(A[mid1]==B[mid2])
returnA[mid1];
if(A[mid1]B[mid2])
{
//分别考虑奇数和偶数,保持两个子数组元素个数相等
if((s1+e1)%2==0)//若元素个数为奇数
{
s1=mid1;//舍弃A中间点此前部分且保存中间点
e2=mid2;//舍弃B中间点后来部分且保存中间点
}
else//若元素个数为偶数
{
s1=mid1+1;//舍弃A中间点此前部分且保存中间点
e2=mid2
文档评论(0)