Android笔试题2Word文件下载.docx
《Android笔试题2Word文件下载.docx》由会员分享,可在线阅读,更多相关《Android笔试题2Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。
4C:
5D:
6
【】4:
选择下列程序运行的结果
inttotal=0;
for(inti=0,j=5;
total<
10||j>
3;
++i,--j){
total+=(i+j);
System.out.println(total);
}
结果为5,因为一个i自加,一个j自减抵消等于没有自加
结果为10,因为正常运算了
有语法错误,不能写多个变量
有语法错误,条件表达式不能写多个
【】5:
请问总共创建了多少个对象?
Stringaa,b,c;
aa="
bb"
;
b="
dd"
+aa;
c="
cc"
+b+aa;
StringBufferd=newStringBuffer(c);
4B:
5C:
7D:
8
【】6:
接口A中有2个方法,接口B中有2个方法,以下正确的是()
若接口C继承A,B两个接口,则C一定继承了四个方法
若类C实现接口A,B,则C中必须至少实现A、B中各一个方法
若类C要继承接口A,B,则必须要定义接口D来继承接口A、B,由类C实现接口D,才能达到目的
若抽象的接口C继承了接口A,B;
抽象的D类实现C接口,此时必须要实现累加接口中的所有方法
【】7:
关于类,抽象,接口,继承综合说法错误的是?
类与类之间有关联,继承,聚合的关系;
抽象类可以继承实例类,抽象类可以实现接口,抽象接口可以继承多个接口
抽象类是类和接口的并集与接口继承的补集
在应用开发中,功能类的继承是平行结构,实现功能的接口是树型结构
【】8:
请判断下面程序运行的结果:
publicclassParamTest{
intnum=1;
publicvoidchange(){
num=2;
publicvoidchange(intnum){
num=3;
publicvoidchange(ParamTestpt){
pt.num=4;
publicstaticvoidmain(String[]args){
ParamTestpt=newParamTest();
intnum=5;
pt.change();
System.out.println("
1->
:
"
+pt.num);
pt.change(num);
2->
pt.change(pt);
3->
B:
C:
D:
11->
21->
2
52->
22->
5
42->
53->
43->
4
【】9:
下面方法不可以共存的是:
()
已知:
classA{
publicA(){
publicvoidA(){
publicvoidA(intx){
classBextendsA{
//填入一个方法
publicvoidA(){}
publicvoidA(intx,inty){}
publicintA(intx,chary){
returnx+y;
publicStringA(intx){
return"
hello"
+x;
【】10:
已知类Foo的定义如下:
publicclassFoo{intvalue;
Foo(intvalue){this.value=value;
}
}运行下面程序段:
Foo[]a1={newFoo
(1),newFoo
(2),newFoo(3)};
Foo[]a2=newFoo[a1.length];
System.arraycopy(a1,0,a2,0,a1.length);
System.out.println((a1==a2)+“,”+(a1[1]==a2[1]));
控制台输出的结果是()。
A.false,falseB.false,trueC.true,trueD.true,false
【】11:
哪种说话阐明了垃圾收集和终结化机制锁承诺的行为?
A对象直到没有任何引用指向自己时才会立即被销毁B对一个对象调用的finalize()方法永远不会多于一次C适用于收集的对象会最终由垃圾收集器销毁D对象一但适用于垃圾收集,就再无法由存活线程访问了
【】12:
下面执行的结果是
staticbooleanloop(charc){
System.out.print(c);
returntrue;
inti=0;
for(loop('
A'
);
loop('
B'
)&
&
(i<
2);
C'
)){
i++;
loop('
D'
A.ABDCBDCB
B.ABCDABCD
C.Compilationfails[编译失败].
D.Anexceptionisthrownatruntime[抛出一个运行例外].
【】13:
下面异常执行的结果是:
try{
floaty=0;
floatz=x/y;
11"
inta[]=newint[3];
a[3]=x;
22"
return;
}catch(Exceptione){
33"
}finally{
44"
System.exit(0);
}catch(ArithmeticExceptione){
55"
66"
B:
11551111
55663333
664444
66
【】14:
阅读下面程序段:
bytea[]={'
a'
65,'
#'
'
};
byteb[]=newbyte[a.length];
System.arraycopy(a,1,b,1,2);
BufferedOutputStreambos;
bos=newBufferedOutputStream(newFileOutputStream("
\\file.txt"
));
bos.write(b,1,2);
bos.flush();
bos.close();
假设file.txt原先不存在,运行该程序段后,文件file.txt的内容为()。
A.65B.65#C.A#D.A
【】15:
假设以数组A[n]存放循环队列的元素,其头、尾指针分别为head和end。
若设定尾指针指向队列中的队尾元素,头指针指向队列中队头元素的前一个位置,则当前存于队列中的元素个数为
(end-head-1)%nB:
(end-head)%n
C:
(head-end+1)%nD:
(end-head+n)%n
【】16:
对线性链表和线性表分析错误的是()
线性链表分为单链表、双向链表和循环链表
线性链表是一种物理存储单元上连续但非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接来实现的
线性表插入或删除的运算效率很低。
在顺序存储的线性表中,插入或删除数据元素时需要移动大量的数据元素
线性表的顺序存储结构不便于对存储空间的动态分配
【】17:
以下属于java.util包中集合类具体实现类的是?
MapB:
CollectionC:
TreeMapD:
SortedMap
【】18:
下面对集合不能正确创建实例化是()
List<
HashMap<
Number,String>
>
list=newLinkedList<
();
ArrayList<
HashSet<
String>
list=newArrayList<
TreeSet<
Hashtable<
String,Integer>
tree=newTreeSet<
【】19:
下面可以删除list中所有的“java”的代码是:
ArrayListlist=newArrayList();
list.add(“java”);
list.add(“aaa”);
list.add(“bbb”);
for(inti=list.size()-1;
i>
=0;
i--){
if("
java"
.equals(list.get(i))){
list.remove(i);
for(inti=0;
i<
list.size();
i++){
Iteratori=list.iterator();
while(i.hasNext()){
if((i.next().toString()).equals("
i.removeAll();
Iteratori=list.listIterator();
if(((String)i.next()).equals("
Java"
))
i.remove();
【】20:
题示代码的功能为:
将两个有序的ArrayList合并为一个有序的ArrayList。
对于两个存放Integer对象的ArrayList,内容分别为:
list1:
{1,3,4,6,8}和list2:
{2,5,9}合并后的list3:
{1,2,3,4,5,6,8,9}
……List<
Integer>
list3=newArrayList<
intsize=list1.size()+list2.size();
for(inti=0,j=0,k=0;
k<
size;
k++){<
填入的代码>
}System.out.println(list3);
……
完成该功能应该填入的代码是()。
A.if(j>
=list2.size()||i>
list1.size():
list1.get(i)<
list2.get(j)){list3.add(list1.get(i++));
}else{list3.add(list2.get(j++));
}B.if(j>
=list2.size()||i<
list1.size()&
}C.if(j>
list1.get(i)>
D.if(j>
list1.size()||list1.get(i)<
二:
简答题【本环节中每道题3分,共5道,总计15分】
1:
String和StringBuffer有什么差别?
在什么情况下使用它们?
【3分】
答:
new一个类对象和使用类名创建一个对象有什么区别?
二者使用时应该注意什么?
在异常当中throw和throws有什么区别和联系?
LinkList和ArrayList的区别?
如果是在集合的开头插入一个对象,使用哪种效率高些,在集合的末尾插入一个对象,使用哪种效率高些,为什么?
介绍JAVA开发中常用的CollectionFrameWork(写出Java集合的框架结构,加上必要的名称注释)?
【3分】
三:
改错与分析题【本环节中每道题3分,共7道,总计21分】
<
第一题>
1.interfaceA{
2.intx=0;
3.}
4.classB{
5.intx=1;
6.}
7.classCextendsBimplementsA{
8.publicvoidpX(){
9.System.out.println(x);
10.}
11.publicstaticvoidmain(String[]args){
12.newC().pX();
13.}
14.}
请问哪一行有错?
为什么?
第二题>
1.abstractclassAnimal{
2.publicvoidsaySomething(){
3.System.out.println("
你想说什么就说吧!
4.}
5.}
6.classDogextendsAnimal{
7.publicvoidsaySomething(){
8.System.out.println("
我现在有了第二职业:
捉耗"
9.}
11.publicclassTest{
12.publicstaticvoidmain(String[]args){
13.Animalani=newDog();
14.ani.saySomething();
15.}
16.}
第三题>
publicclassTest{
privatestaticvoidprintArray(int[]arr){
for(inti=0;
i<
arr.length;
i++)
System.out.print(arr[i]+"
"
"
privatestaticvoidchangeValue(intvalue){
value*=2;
privatestaticvoidchangeValue(int[]arr){
arr.length;
arr[i]*=2;
publicstaticvoidmain(String[]args){
int[]arr={1,2,3,4,5};
changeValue(arr[0]);
printArray(arr);
changeValue(arr);
请问结果是什么?
并详细解释原因【3分】
第四题>
publicclassA{
static{
{
publicvoiddeal(){
publicclassBextendsA{
publicB(){
77"
88"
publicclassC{
Ab=newB();
b.deal();
请问结果是什么?
并详细分析原因【3分】
第五题>
publicclassTest{
publicstaticvoidso(String[]name){
Stringtemp=name[0];
Name[0]=name[1];
Name[1]=temp;
publicstaticvoidso(Stringname0,Stringname1){
Stringtemp=name0;
Name0=name1;
Name1=temp;
’
publicstaticvoidmain(String[]wewe){
String[]name=newString[]{"
mike”,”Lily”};
Stringname0=“mike”;
Stringname1=”Lily“;
So(name);
System.out.println(name[0]+”,”+name[1]);
So(name0,name1);
System.out.println(name0+”,”+name1);
请输出结果?
并详细解释为什么?
第六题>
publicclassPerson{
staticclassUser{
intid;
Stringname;
publicUser(intid,Stringname){
this.id=id;
this.name=name;
publicintgetId(){
returnthis.id;
publicStringgetName(){
returnthis.name;
classStudent{
publicvoidsetid(intnewId){
id=newId;
publicvoidsetName(StringnewName){
name=newName;
publicvoidprint(intid,Stringname){
Useruser=newUser(id,name);
System.out.println(user.getId()+"
\t"
+user.getName());
//...手写补充代码
要求:
先对User进行创建实例化学号为:
1001姓名为:
张三之后进行修改学号为:
1002姓名为:
李四调用Person类的打印输出方法显示修改后的结果。
第七题>
列举几个你常去的IT技术型的网站,类型不限,个数不限,写中文名亦可,并解释为什么值得你去?
四:
编程算法题,将代码下在每道题的下面[共5道题,第一,二题为5分,第三题为6分,第四题为8分,第五题为10分,总计34分]
请用递归算法写一个方法求出两个数字的最大公约数和最小公倍数【5分】
【安徽科大讯飞2012届武汉大学校园招聘试题】
请将一个链表反序【5分】
【华为2011届华中科技大学校园招聘试题】
现在有一个有趣的游戏:
称为杀人游戏!
游戏规则是:
输入参加的总人数,在输入一个基数,然后每个人依次报数,
当前选手报的数能被基数整除的话,就判为死亡出局,剩下的再继续数数,当数到最后一个时候,再接着从1开始从头数数。
。
一直到活下的人小于基数为止,整个游戏结束,打印最后存活选手的编号;
【6分】
例子:
总数:
6基数2
MMMMMM
123456
MXMXMX
MMM
123
MXM
12
MX
1
存活的人数是:
存活的编号是: