java基础试题一.docx
《java基础试题一.docx》由会员分享,可在线阅读,更多相关《java基础试题一.docx(10页珍藏版)》请在冰豆网上搜索。
java基础试题一
java入门试题
选择题
1.main方法是javaApplication程序执行的入口点,关于main方法的方法头以下(B)是合法的。
A.publicstaticvoidmain()
B.publicstaticvoidmain(String[]args)
C.publicstaticintmain(String[]arg)
D.publicvoidmain(Stringarg[])
2.请从四个选项中选择答案,下列代码的执行结果是:
(C)
publicclassTest{
publicstaticvoidmain(Stringsrgs[]){
floatt=9.0f;
intq=6;
System.out.println((t++)*(--q));
}
}
A)40B)40.0C)45.0D)36.0
3.以下声明合法的是(B)
A.defaultStrings
B.publicfinalstaticnativeintw()
C.abstractdoubled;
D.abstractfinaldoublehyperbolicCosine()
4.类Test1、Test2定义如下:
1.publicclassTest1
2.{publicfloataMethod(floata,floatb)throws
3.IOException{}
4.}
5.publicclassTest2extendsTest1{
6.
7.}
将以下(A)方法插入行6是不合法的。
A.floataMethod(floata,floatb){}//重写的方法不能小于父类中方法的
B.publicintaMethod(inta,intb)throwsException{}
C.publicfloataMethod(floatP,floatq){}
D.publicintaMethod(inta,intb)throwsIOException{}
5.下列关于修饰符混用的说法,错误的是(C)
A.abstract不能与final并列修饰同一个类
B.abstract类中不可以有private的成员
C.abstract方法必须在abstract类中
D.static方法中能处理非static的属性
6.关于被保护访问控制符protected修饰的成员变量,以下说法正确的是(A)。
A.可以被三种类所引用:
该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
B.可以被两种类访问和引用:
该类本身、该类的所有子类
C.只能被该类自身所访问和修改
D.只能被同一个包中的类访问
7.执行完代码"int[]x=newint[25];"后,以下(A)说明是正确的。
A.x[24]为0B.x[24]未定义
C.x[25]为0D.x[0]为空
8.关于以下application的说明,正确的是(C)。
1.classStaticStuff
2.{
3.staticintx=10;
4.static{x+=4;}
5.publicstaticvoidmain(Stringargs[])
6.{
7.System.out.println("x="+x);
8.}
9.static{x/=3;}
10.}
A.4行与9行不能通过编译,因为缺少方法名和返回类型
B.9行不能通过编译,因为只能有一个静态初始化器
C.编译通过,执行结果为:
x=4
D.编译通过,执行结果为:
x=3
9.以下代码完成画线功能,指出所画线的颜色是()。
1.g.setColor(Color.red.green.cyan.yello);
2.g.drawLine(0,0,100,100);
A.redB.green
c.yelloD.cyan
10.关于以下程序段,正确的说法是(B)。
1.Strings1="abc"+"def";
2.Strings2=newString(s1);
3.if(s1.equals(s2))
4.System.out.println(".equals()succeeded");
5.if(s1==s2)
6.System.out.println("==succeeded");
A.行4与行6都将执行B.行4执行,行6不执行
C.行6执行,行4不执行D.行4、行6都不执行
二、判断题
1.对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值
对象相同的新对象。
(F)
2.Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。
()
3.设String对象s="Hello",运行语句“System.out.println(s.concat("World!
"));”后,String对象S的内容为“Helloworld!
”所以语句输出为:
Helloworld!
(F)//等于新建了一个s1,s1里有helloworld
4.一个容器中可以混合使用多种布局策略。
()
5.Java的源代码中定义几个类,编译结果就是生成几个以.class为后缀的字节码文件。
(T)
6.Java的字符类型采用的是ASCII编码。
(F)
7.子类的变量和方法的数目一定大于等于父类的变量和方法的数目。
(F)
8.Java程序里、创建新的类对象使用关键字new,回收无用的类对象使用关键字free.(F)
9.类及其属性、方法可以同时有一个以上的修饰符来修饰.(T)
10.最终类不能派生子类,最终方法不能被覆盖。
(T)final
11.如果P是父类Parent的对象,而C是子类Child的对象,则语句c=p是正确的。
(F)
12.接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。
(T)
13.一个Java类可以有多个父类.(F)
14.当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行.(T)
15.使用方法length()可以获得字符串或数组的长度.(F)
16.所有的鼠标事件都由MouseListener监听接口的监听者来处理.(T)
17.子类要调用父类的方法,必须使用super关键字。
(F)
18.一个类如果实现了某个接口,那么它必须重载该接口中的所有方法。
(F)
19.JavaApplet只能在图形界面下工作.(F)
20.类中的属性和方法都必须被修饰符修饰.(F)
三.改错或写出程序的功能
1.
publicclassTest
{
publicstaticvoidmain(Stringargs[])
{
System.out.println(TestClass.data);
}
}
classTestClass
{
intdata=89;
}
改正如下:
_________在classTestClass这个类里,要将data这个变量声明为static,因为在Test类里直接用类名调用了此变量。
__________________________________________________________
________________________________________________________________________。
2.
classWrongWhere
{
intdata1,data2;
WrongWhere(){
data1=-1;
}
WrongWhere(intd)
{this语句和super语句要放在第一句
data2=d;
this();
}
}
改正如下:
_把this();语句放到data2=d;前面___________________________________________________________________
_______________________________________________________________________。
3.publicclassSum
{
publicstaticvoidmain(Stringargs[])
{
doublesum=0.0;强制类型转换时,高级向低级自动转换,可以不用显示声明;
for(inti=1;i<=100;i++)低级向高级转换时,需要显示声明。
sum+=1.0/(double)i;此处
System.out.println("sum="+sum);
}
}
上面这段程序所完成的功能是:
__使sum=1+1/2+1/3+1/4+……+1/99+1/100______________________________________________________
_______________________________________________________________________________。
/////*****4.
publicclassFunction
{
publicstaticvoidmain(Stringargs[])
{
inti、j;
inta[]={32、54、7、60、31、78、3、77、39、98};
for(i=o;i
{
intk=i;
for(j=i;j
if(a[j]
inttemp=a[i];
a[i]=a;
a[k]=temp;
}
for(i=0;i
System.out.print(a[i]+"")
System.out.println();
}
}
上面这段程序所完成的功能是:
________________________________________________________
________________________________________________________________________________。
*******/////////
5.
importjava.awt.*;
publicclassabc
{
publicstaticvoidmain(Stringargs[]}
{
newFrameOut();
}
}
classFrameOutextemdsFrame
{
Buttonbtn;
FrameOut()
{
super("我的标题");
btn=newButton("我的按钮");
setLayout(newFlowLayoyut());
add(btn);
setSize(300,200);
show();
}
}
上面这段程序所完成的功能是:
_____________________________________________________
___________________________________________________________________________________。
6.
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
classQuitTest
{
publicstaticvoidmain(Stringargs[])
throwsIOException
{
charc;
BufferedReaderbr=new
BufferedReader(newInputStreamReader(System.in));
do{
c=(char)br.read();
System.out.print(c);
}while(c!
='q'&&c!
='Q');
}
}
上面这段程序所完成的功能是:
_____输入aaaaqsss输出aaaaq_________或_输入aaaaQsss输出aaaaQ________________________________________
___________________________________________________________________________________。
7.
publicstaticvoidmain(Stringargs[])
{
try{
charch=(char)System.in.read();
...//其它语句
}
catch(Expceptione)
{
return;
}
catch(IOExceptione)
{
System.out.println(e.toString());
}
}
改正如下:
___两个catch语句颠倒一下。
___________________________________________________________________
_______________________________________________________________________。
8.
interfaceMyInterface
{
voidmethod1();
}
abstractclassParentimplementsMyInterface
{
//其他语句借口必须有实现方法,抽象方法也行,留给后面的类去
}具体实现。
classChildextendsParent
{
voidmethod1()
{
System.out.println("Iamimplementednow!
");
}
}
改正如下:
_在Parent里写一句voidmethod1();___就可以了_______________________________________________________________________
_______________________________________________________________________________。
四、写出下面程序的运行结果
1.阅读以下程序,输出结果为_____3.21_______________________。
classQ1{
publicstaticvoidmain(Stringargs[]){
doubled=3.21;
Decdec=newDec();
dec.decrement(d);调用这个方法,把d=3.21传给decMe只不过是把3.21这个值赋给它,
System.out.println(d);现在输出“d”,d的值并未改变,只是decMe的值变成了2.21。
}
classDec{
publicvoiddecrement(doubledecMe){
decMe=decMe-1;
}
}
2.以下程序段的输出结果为___Messagefour________________________.
classTest{
publicstaticvoidmain(Stringargs[]){
intx=0,y=4,z=5;
if(x>2){
if(y<5){
System.out.println("Messageone");
}
else{
System.out.println("Messagetwo");
}
}
elseif(z>5){
System.out.println("Messagethree");
}
else{
System.out.println("Messagefour");
}
}
}
3.以下程序段输出结果为_parent回车_child回车child__________________________.
classParent
{
voidprintMe()
{
System.out.println("parent");
}
}
classChildextendsParent
{
voidprintMe()
{
System.out.println("child");
}
voidprintAll()
{
super.printMe();
this.printMe();
printMe();
}
}
publicclassTest_this
{
publicstaticvoidmain(Stringargs[])
{
ChildmyC=newChild();
myC.printAll();
}
}
4.以下程序的输出结果为______valueisHello_____________________________________________。
publicclassShort
{
publicstaticvoidmain(Stringargs[])
{
StringBuffers=newStringBuffer("Hello");
if((s.length()>5)&&(s.append("there").equals("False")));//这是个空语句,什么也不执行!
因为分号。
System.out.println("valueis"+s);
}
}
5.以下程序段的输出结果为_____Valueistwo.__回车____Valueisthree.________________________________。
publicclassTest_this
{
publicstaticvoidmain(Stringargs[])
{
intj=2;
switch(j)
{
case2:
System.out.println("Valueistwo.");
case2+1:
System.out.println("Valueisthree.");
break;
default:
System.out.println("Valueis"+j);
break;
}
}
}
6.以下程序段的输出结果为__false,true___________________________________________________。
publicclassEqualsMethod
{
publicstaticvoidmain(Stringargs[])
{
Integern1=newInteger(50);
Integern2=newInteger(50);
System.out.println(n1==n2);
System.out.println(",");
System.out.println(n1!
=n2);
}
}
五.使用Java语言编写程序(每小题10分)
1.编程求一个整数数组的最大值、最小值、平均值。
2编写一个java程序,接收用户输入的文本,直到用户在新行中输入end为止。
3编写一个Java程序,实现把任意两个整数相加和两个浮点型数字相加,若加法调用时没有参数,则输出一个默认值0。
(用函数重载实现)