19、 若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()
A.9 B.11 C.15 D.不确定
20、 以下与数据的存储结构无关的术语是( )。
A.循环队列 B. 链表 C. 哈希表 D. 栈
21、 设数组A[10?100,20?100]以行优先的方式顺序存储,每个元素占4个字节,且已知A[10,20]的地址为 1000,则A[50,
90]的地址是( )
A. 13240 B.14250 C.24220 D.14240
22、 链表不具有的特点是()
A.插入、删除不需要移动元素 B.可随机访问任一元素 C.不必事先估计存储空间 D.所需空间与线性长度成正比
23、 下面关于线性表的叙述中,错误的是哪一个?()
A.线性表采用顺序存储,必须占用一片连续的存储单元。 B.线性表采用顺序存储,便于进行插入和删除操作。 C.线性表采用链接存储,不必占用一片连续的存储单元。 D.线性表采用链接存储,便于插入和删除操作。
24、 若一个栈的输入序列为1,2,3,?,n,输出序列的第一个元素是i,则第j个输出元素是()。 A. i-j-1 B. i-j C. j-i+1 D. 不确定的
25、 下列说法不正确的是( )。
A. 图的遍历是从给定的源点出发每一个顶点仅被访问一次 B. 图的深度遍历不适用于有向图
C. 遍历的基本算法有两种:深度遍历和广度遍历 D. 图的深度遍历是一个递归过程
二、程序改错(5 * 2’ = 10’)
1. ------------------------------------------------------------------ public class Unbelievable { static Integer i;
public static void main(String[] args) { } }
if (i == 42)
System.out.println(\
2. ——————————————————————————————————
class Animal {
public String noise() {
5/10
龙通科技有限公司笔试题
}
class Dog extends Animal { }
class Cat extends Animal { }
public class Test { }
public static void main(String[] args) { }
Animal animal = new Dog(); Cat cat = (Cat) animal; cat.noise();
public String noise() { }
return \public String noise() { }
return \ }
return \
3. ——————————————————————————————————————
abstract class Something { }
private abstract String doSomething();
4. ——————————————————————————————————————
public class Something { }
class Other { }
public int i;
public static void main(String[] args) { }
public void addOne(final Other o) { }
o.i++;
Other o = new Other(); new Something().addOne(o);
5. ——————————————————————————————————————
class Something {
final int i;
public void doSomething() {
System.out.println(\
6
龙通科技有限公司笔试题
}
}
三、 程序阅读题(每空2’,共 40’)
1、 阅读以下java代码,写出运行结果
class StaticTest { }
2、 编写将一维数组a[]中互不相同的数按从小到大顺序重新存于一维数组a[]的程序。
class A{
public static void main(String[] args){ }
for(j=0;j System.out.prinln(a[j]); int a[]={15,7,15,6,4,3,4,6,7}; int i,j,k,low,high,mid,t; for(i=k=1;i if(a[mid]>=a[i]) ____________; else low=mid+1; } if(____________|| a[low]!=a[i]){ t=a[i]; for(j=k-1;__________;j--) a[j+1]=a[j]; ___________; k++; } static int x=1; int y; StaticTest(){ } public static void main(String args[ ]){ StaticTest st=new StaticTest(); System.out.println(\System.out.println(\st=new StaticTest(); System.out.println(\ } static { x++;} y++; 7 龙通科技有限公司笔试题 } 3、 请用JAVA编写如下程序:此程序处理一个由0和非0数字成员组成的数组(长度自定), 例如0 0 1 2 0 1 0 0 0 1 0 0 0 0 0 2 0 7 8 9 0 0 1 2 3 4,把数组中所有连续两个以上的0去掉, 将结果存入一个新数组。如上例处理后结果为,1 2 0 1 1 2 0 7 8 9 1 2 3 4。 public static void main(String[] args) { int[] srcArray = {0,0,1,2,0,1,0,0,0,1,0,0,0,0,0,2,0,7,8,9,0,0,1,2,3,4}; int[] destArray = new int[50]; int i=0,j=0,count=0; for(i=0;i if(srcArray[i]!=0){ ○1 i++; }else{ while(i if(count<2){ } ○4 ; } } for(i=0;i System.out.print(destArray[i]+\ } } 个人重新报数,问最后留下的是原来第几号的那位? public class Test { public static void main(String[] args) { } public static int Keeper(int peo, int n) { int k = 0; int peo; System.out.println(\请输入人数:\Scanner inp = new Scanner(System.in); peo = inp.nextInt(); int k = Keeper(peo, 3); System.out.println(\最后留下的是 \号!\ 4、 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,再从他的下一 8
相关推荐: