南开20秋学期《数据结构》在线作业参考答案Word文档格式.docx
《南开20秋学期《数据结构》在线作业参考答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《南开20秋学期《数据结构》在线作业参考答案Word文档格式.docx(29页珍藏版)》请在冰点文库上搜索。
A.ASL=n
B.ASL=(n+1)/2C.{图}
D.{图}
9.已知图的邻接矩阵,根据算法,则从顶点0出发,按深度优先遍历的结点序列是( )
A.0243156
C.0423165
D.0134256
D
10.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是()
A.110B.108C.100D.120
11.数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素的公式为
A.r-f
B.(n+f-r)%nC.n+r-fD.(n+r-f)%n答案:
12.已知图的邻接矩阵,根据算法思想,则从顶点0出发按深度优先遍历的结点序列是()
B.0136542
D.0361542
13.设有两个串p和q,求q在p中首次出现的位置的运算称作()
A.连接
B.模式匹配C.求子串D.求串长答案:
14.已知图的邻接表如下所示,根据算法,则从顶点0出发按深度优
先遍历的结点序列是()
A.0132
B.0231
C.0321
D.0123
15.链表是一种采用存储结构存储的线性表
A.顺序B.链式C.星式D.网状答案:
16.判定一个队列QU(最多元素为m0)为满队列的条件是()A.QU->
rear-QU->
front==m0
B.QU->
front-1==m0C.QU->
front==QU->
rear
D.QU->
rear+1
17.不含任何结点的空树()A.是一棵树
B.是一棵二叉树
C.是一棵树也是一棵二叉树D.既不是树也不是二叉树答案:
18.快速排序在下列哪种情况下最易发挥其长处()A.被排序的数据中含有多个相同排序码
B.被排序的数据已基本有序C.被排序的数据完全无序
D.被排序的数据中的最大值和最小值相差悬殊答案:
19.在n个结点的顺序表中,算法的时间复杂度是O
(1)的操作是()
A.访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)
B.在第i个结点后插入一个新结点(1≤i≤n)
C.删除第i个结点(1≤i≤n)
D.将n个结点从小到大排序答案:
20.设串s1=’ABCDEFG’,s2=’PQRST’,函数con(x,y)返回x和y串的连接串,subs(s,i,j)返回串s的从序号i开始的j个字符组成的子串,len(s)返回串s的长度,则con(subs(s1,2,len(s2)),subs(s1,len(s2),2))的结果串是()
A.BCDEFB.BCDEFGC.BCPQRSTD.BCDEFEF
21.已知图的邻接表如下所示,根据算法,则从顶点0出发按广度优先遍历的结点序列是()
A.0321
B.0123
C.0132
D.0312
22.用邻接表表示图进行深度优先遍历时,通常是采用()来实现算法的A.栈
B.队列C.树
D.图答案:
23.向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动()个元素
A.8B.63.5C.63D.7
24.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为()
A.存储结构B.逻辑结构
C.顺序存储结构D.链式存储结构答案:
25.深度优先遍历类似于二叉树的()
A.先序遍历B.中序遍历C.后序遍历D.层次遍历答案:
26.下列关键字序列中,()是堆A.16,72,31,23,94,53
B.94,23,31,72,16,53C.16,53,23,94,31,72D.16,23,53,31,94,72
27.已知图的邻接矩阵,根据算法,则从顶点0出发,按广度优先遍历的结点序列是()
A.0243651
B.0136425
C.0423156
28.一棵具有n个结点的完全二叉树的树高度(深度)是( )
A.{图}
B.{图}
C.{图}
D.{图}
29.二叉树是非线性数据结构,所以()A.它不能用顺序存储结构存储
B.它不能用链式存储结构存储
C.顺序存储结构和链式存储结构都能存储D.顺序存储结构和链式存储结构都不能使用答案:
30.具有n(n>
0)个结点的完全二叉树的深度为( )
二、判断题(共20道试题,共40分)
31.二叉树中每个结点的关键字值大于其左非空子树(若存在的话)所有结点的关键字值,且小于其右非空子树(若存在的话)所有结点的关键字值。
错误
32.线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
33.顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。
34.队是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。
35.两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。
正确
36.顺序存储方式只能用于存储线性结构。
37.链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。
38.线性表的逻辑顺序与存储顺序总是一致的。
39.线性表在物理存储空间中也一定是连续的。
40.对于一棵非空二叉树,它的根结点作为第一层,则它的第i层上最多能有2i—1个结点。
41.栈和队列的存储方式既可是顺序方式,也可是链接方式。
42.对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表
43.栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。
44.二叉树中每个结点有两棵非空子树或有两棵空子树。
45.二叉树中每个结点的两棵子树是有序的。
46.链表的每个结点中都恰好包含一个指针。
47.二叉树中每个结点的两棵子树的高度差等于1。
48.栈和链表是两种不同的数据结构。
49.二叉树中所有结点,如果不存在非空左子树,则不存在非空右子树。
50.二叉树中所有结点个数是2k-1-1,其中k是树的深度。
以下内容不需要的请自行删除试卷总分:
100得分:
100
一、单选题(共25道试题,共75分)
1.在Java中,表示换行符的转义字符是()A.\n
B.\f
C.\ddD.'
n'
答案:
A
2.下列构造方法的调用方式中,正确的是()。
A.被系统调用
B.由用户直接调用C.按照一般方法调用
D.只能通过new自动调用答案:
D
3.在调用函数并传递参数时,将变量对应的内存位置传递给函数,而函数会根据内存位置取得参数的值,是指哪种方式()
A.返回值
B.地址传递调用C.值传递调用D.以上都不是答案:
B
4.设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是()
A.i++ j;
B.i=i+2C.a[0]=7;
D.a(0)=66;
C
5.编译并且执行以下代码,会出现什么情况
()。
?
public?
class?
Q{?
static?
void?
main(String?
argv[]
){?
int?
anar[]=new?
int[]{1,2,3};
System.out.println(anar[1])
;
}?
}
A.有错误,数组的大小没有定义。
B.有错误,数组anar在初始化以前不能正常输出
C.2D.1
6.设x、y为已定义的类名,下列声明x类的对象x1的语句中正确的是()
A.yx1;
B.xx1=x();
C.staticxx1;
D.publicxx1=newx(int123);
7.执行完代码"
int[]x=newint[25];
"
后,以下()说明是正确的。
A.x[25]为0
B.x[24]未定义C.x[24]为0D.x[0]为空答案:
8.关于Java中数据类型叙述正确的是()A.整型数据在不同平台下长度不同
B.数组属于简单数据类型
C.boolean类型数据只有2个值,true和false
D.Java中的指针类型和C语言的一样答案:
9.下列语句序列执行后,i的值是()。
inti=8,j=16;
if(i-1>
j)i--;
elsej--;
A.8B.7C.16D.15
10."
阅读下面程序classex3124{publicstaticvoidmain(String[]args){booleanb=true;
if(b){inti=1;
}else{inti=2;
}System.out.println(i);
}}现在想先编译再运行该程序,结果是()。
A.运行出错B.编译出错C.2
D.1
11.下列程序段的输出结果是 ()。
publicclassoperatorsandExpressions{voidstringPlus(){intx=3,y=4,z=5;
System.out.println(x+y+z);
}}
A.以上答案均不正确B.xyz
C.x+y+z
D.12
12.关于类和对象的叙述正确的是()
A.类的静态属性和全局变量的概念完全一样,只是表达形式不同B.类的成员至少有一个属性和一个方法
C.类是对象的实例化
D.Java的类分为两大部分:
系统定义的类和用户自定义的类答案:
13.设有定义inti=123;
longj=456;
下面赋值不正确的语句是()A.j=(long)i;
B.j=i;
C.i=j;
D.i=(int)j;
14.下列程序段执行后的结果是()。
Strings=newString("
abcdefg"
);
for(int
i=0;
i<
s.length();
i+=2){System.out.print(s.charAt(i));
}A.aceg
B.abcdefg
C.abcdD.ACEG
15.下列哪个类声明是正确的()A.publicabstractclassCar{…}B.protectedprivatenumberC.abstractprivatemove(){…}D.abstractfinalclassHl{…}答案:
16.以下哪个约束符可用于定义成员常量()A.以上都不对
B.staticC.finalD.abstract
17.若已定义byte[]x={11,22,33,-66};
其中0&
le;
k&
3,则对x数组元素错误的引用是()
A.x[k+5]
B.x[k]
C.x[5-3]
D.x[0]
18.下列语句序列执行后,k的值是()。
intm=3,n=6,k=0;
while((m++)<
(--n))++k;
A.3B.2C.1D.0
19.下列代码中,将引起一个编译错误的行是()1)publicclassTest{2)intm,n;
3)publicTest(){}4)publicTest(inta){m=a;
}5)publicstaticvoidmain(Stringargs[]){6)Testt1,t2;
7)intj,k;
8)j=0;
k=0;
9)t1=newTest();
10)t2=newTest(j,k);
11)}12)}A.第6行
B.第5行
C.第3行
D.第10行答案:
20.下列语句序列执行后,i的值是()。
inti=16;
do{i/=2;
}while(i>
3);
A.8B.4C.2D.16
21.数组的大小在创建以后()。
A.有些可以改变
B.可以改变
C.使用new方法可以改变
D.不能改变答案:
22.下列关于for循环和while循环的说法中哪个是正确的()A.两种循环结构中都必须有循环体,循环体不能为空
B.两种循环任何时候都可替换
C.while循环能实现的操作,for循环也都能实现
D.while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果
23.下列方法定义中,正确的是()A.void?
x(){?
...return?
true;
B.int?
C.int?
x(int?
a,b){?
return?
a+b;
D.int?
char?
ch='
a'
(int)ch;
24.关于以下程序段的说法正确的是()。
1.publicclassMyar{2.publicstaticvoidmain(Stringargv[]){3.int[]i=newint[5];
4.System.out.println(i[5]);
5.}6.}
A.编译时没有产生错误,运行时发生异常B.编译时产生错误
C.第4行编译出错
D.第2行编译出错
25.下面的代码段中,执行之后i和j的值是()。
inti=1;
intj;
j=i++;
A.2,2B.2,1C.1,2D.1,1
二、多选题(共5道试题,共10分)
26.说明下列创建数组的方法那些是正确的()。
A.inttwoDim[][]=newint[][4];
B.inttwoDim[][]=newint[4][];
C.inttwoDim[][]=newint[4][5];
D.chara[]={‘A’,‘B’};
BCD
27.如下哪些是Java中正确的整数表示()A.22H
B.22C.0x22
D.022
28.Java2主要有几个分支?
()A.J2SE
B.J2ME
C.J2EE
ABC
29.执行下列代码后,哪个结论是正确的 String[]s=newString[10];
()
A.s.length为10B.s[9]为null;
C.s[10]为"
D.s[0]为未定义答案:
AB
30.下列哪些语句是正确的()。
A.inta[][]=newint[][3];
B.inta[][]={{1,3},{2,3,4},{1,2}};
C.Strings[][]=newString[2][];
D.Strings[][]={{"
can"
"
I"
},{"
help"
you"
}}
三、判断题(共10道试题,共15分)
31.有的类定义时可以不定义构造函数,所以构造函数不是必需的。
32.即使一个类中未显式定义构造函数,也会有一个缺省的构造函数,缺省的构造函数是无参函数,函数体为空。
33.Java的类不允许多重继承,但接口支持多重继承()。
34.Java语言中的数组元素只能是基本数据类型而不能为对象类型
35.类及其属性、方法可以同时有一个以上的修饰符来修饰()。
36.Java的字符类型采用的是Unicode编码,但所占字节由具体软硬
件环境决定()答案:
37.Java的各种数据类型占用的内存长度固定,与具体软硬件环境无关()
38.如果p是父类Parent的对象,而c是子类Child的对象,则语句
c?
=?
p是正确的()答案:
39.注释的作用是使程序在执行时在屏幕上显示//之后的内容()
40.在Java中%是取余运算符,要求两端操作数为整型()。
以下内容不需要的请自行删除德国企业是欧洲企业的代表
1.企业培训。
德国企业培训的突出特点是注重能力的培养,解决实际存在的问题。
通过探讨和实验寻求解决问题的最佳途径和方法,给
每个员工充分的自由发挥的空间,极大地调动了他们的积极性,也大大地提高了参训学员的素质和解决问题的能力。
德国企业培训工作还有一个十分重要的任务,就是让员工认同企业的价值观。
2.牢固的质量意识。
德国企业对产品质量一向是最重视的。
他们认为没有物美价廉的产品,只有精品和次品。
他们的许多产品都是以精取胜,成为世界知名的品牌。
德国企业精益求精的价值观已深入人心,成为员工的一种自觉行为。
德国企业员工追求技术完美和注重质星的强烈意识,技术不断进步,保持良好的质量,制造一流产品,是德国企业具有较强竟争力的重要原因。
3.注重独创性研究开发。
德国研究经费占国民生产总值2.9%,居世界前列。
德国人相信研究与开发决定企业未来,因而不论经济如何不景气,也不削减开发费用,并在研究中重视独创性和高度专业性,最大限度发挥个人创造潜力,这是德国研究与开发体制的长处。
附件2
(居民个人工资、薪金所得预扣预缴适用)
级数
累计预扣预缴应纳税所得额
预扣率
速算扣除数
个人所得税预扣率表一
(%)
1
不超过36000元的部分
3
0
2
超过36000元至144000元的部分
10
2520
超过144000元至300000元的部分
20
16920
4
超过300000元至420000元的部分
25
31920
5
超过420000元至660000元的部分
30
52920
6
超过660000元至960000元的部分
35
85920
7
超过960000元的部分
45
181920
个人所得税预扣率表二
(居民个人劳务报酬所得预扣预缴适用)
不超过20000元的
超过20000元至50000元的部分
2000
超过50000元的部分
40
7000
级数 预扣预缴应纳税所得额