Java基础练习题附答案.docx
《Java基础练习题附答案.docx》由会员分享,可在线阅读,更多相关《Java基础练习题附答案.docx(59页珍藏版)》请在冰豆网上搜索。
Java基础练习题附答案
Java基础练习题附答案
一、简单Java程序调试
1)以下哪个是Java应用程序main方法的有效定义?
A.publicstaticvoidmain();
B.publicstaticvoidmain(Stringargs);
C.publicstaticvoidmain(Stringargs[]);
D.publicstaticvoidmain(Graphicsg);
E.publicstaticbooleanmain(Stringa[]);
2)编译和运行以下代码的结果为:
publicclassMyMain{
publicstaticvoidmain(Stringargv){
System.out.println("Hellocruelworld");
}
}
A.编译错误;
B.运行输出"Hellocruelworld";
C.编译无错,但运行时指示没有定义构造方法。
D.编译无错,但运行时指示没有正确定义main方法。
3)下列选项中不属于Java虚拟机的执行特点的一项是:
A.异常处理B.多线程C.动态链接D.简单易学
4)不属于Java语言特点的一项是:
A.分布式B.安全性C.编译执行D.面向对象
5)以下程序的运行结果为:
publicclassTest{
publicstaticvoidmain(Stringargv[]){
System.out.println("x="+5);
}
}
A.5B.x=5C."x="+5D."x="5
6)以下程序的运行结果为:
publicclassTest{
publicstaticvoidmain(Stringargv[]){
System.out.println("good"+"morning");
}
}
A.goodmorningB."good"+"morning"
C.goodmorningD.good+morning
二、Java符号与表达式
1)现有一个int类型的整数和一个double类型的数进行加法运算,则得到的结果类型为:
A.int类型B.double类型C.float类型D.long类型
2)下面程序段的输出结果是:
inta=2;
System.out.print(a++);
System.out.print(a);
System.out.print(++a);
A.333B.334C.234D.233
3)以下代码的输出结果?
publicclassTest{
intx=3;
publicstaticvoidmain(Stringargv[]){
intx=012;
System.out.println(x);
}
}
A.12 B.012 C.10 D.3
4)下列定义语句正确的是:
A.charc="/n"; B.inti=12; C.floatf=2.8; D.booleanb=null;
5)检查如下代码:
publicclassQuiz2_l{
publicstaticvoidmain(String[]args){
inta=8;
intb=-8;
System.out.print(a<<2);
System.out.print(","+(b>>1));
}
}
下列哪条语句正确描述了程序在编译和运行时的行为?
A.编译成功,输出为“32,-4”
B.编译成功,输出为“16,4”
C.编译成功,输出为“32,2147483644”
D.编译成功,输出为“16,2147483644”
E.编泽器拒绝表达式b>>,因为不能对一个负数应用>>操作符
6)以下代码中变量result的可能类型有哪些?
byteb=11;
shorts=13;
result=b*++s;
A.byte,short,int,long,float,double
B.boolean,byte,short,char,int,long,float,double
C.byte,short,char,int,long,float,double
D.byte,short,char
E.int,long,float,double
7)以下代码的输出结果为:
System.out.println(""+2+3);
System.out.println(2+3);
System.out.println(2+3+"");
System.out.println(2+""+3);
A.第3行出现编译错误
B.输出23,5,5和23.
C.输出5,5,5和23.
D.输出23,5,23和23.
8)设有如下变量说明:
bytemyByte;
intmyInt;
longmyLong;
charmyChar;
floatmyFloat;
doublemyDouble;
以下赋值语句哪个需要强制转换。
A.myInt=myByte;
B.myInt=myLong;
C.myByte=3;
D.myInt=myChar;
E.myFloat=myDouble;
F.myFloat=3;
G.myDouble=3.0;
9)考虑如下两语句:
1.booleanpassingScore=false&&grade==70;
2.booleanpassingScore=false&grade==70;
表达式grade==70在什么地方被计算
A.在1和2中均计算
B.在1和2中均未计算
C.在1中计算,在2中未计算
D.在2中计算,在1中未计算
E.非法,因为false应写FALSE
10)设有一个整数x其二进制值为10011100(用1字节表示),则执行如下语句后z的二进制值为:
inty=1<<7;
intz=x&y;
A. B. C.
D. E.
11)以下哪些编译正确?
A.shortmyshort=99S;
B.Stringname='ExcellenttutorialMrGreen';
C.charc=17c;
D.intz=015;
12)以下哪些是java关键字?
A.double B.Switch C.then D.instanceof
13)以下程序行的输出结果为?
System.out.println(010|4);
A.14B.0C.6D.12
14)设有如下变量
charc='c';
inti=10;
doubled=10;
longl=1;
Strings="Hello";
以下哪些语句编译不出错?
A.c=c+i;B.s+=i;C.i+=s;D.c+=s;
15)整型变量a,b的值定义如下:
inta=3;
intb=4;
则表达式++a==b的值为:
A.4B.falseC.3D.true
16)执行下列代码后输出结果为:
publicclasstest{
publicstaticvoidmain(Stringargs[]){
inta=2;
intb=3;
intc=7;
intd=a>c?
a:
c;
d=d>>2>b?
d:
b;
System.out.println(b);
}
}
A.2B.3C.5D.7
三、分支程序设计
1)下列语句片段的结果为
intresult;
inta=17,b=6;
result=(a%b>4)?
a%b:
a/b;
System.out.println(result);
A.0 B.1C.2 D.5
2)以下程序的运行结果为:
1.publicclassConditional{
2.publicstaticvoidmain(Stringargs[]){
3.intx=4;
4.System.out.println("valueis"+((x>4)?
99.99:
9));
5.}
6.}
A.输出:
valueis99.99
B.输出:
valueis9
C.输出:
valueis9.0
D.在第4行出现编译错误
3)以下代码段的输出结果为
1.intx=0,y=4,z=5;
2.if(x>2){
3.if(y<5){
4.System.out.println("messageone");
5.}
6.else{
7.System.out.println("messagetwo");
8.}
9.}
10.elseif(z>5){
11.System.out.println("messagethree");
12.}
13.else{
14.System.out.println("messagefour");
15.}
A.messageone
B.messagetwo
C.messagethree
D.messagefour
4)以下程序的输出结果为:
publicclasstest{
publicstaticvoidmain(Stringargs[]){
intx=1,y=1,z=1;
if(x--==1&&y++==1||z++==1)
System.out.println("x="+x+",y="+y+",z="+z);
}
}
A.x=0,y=2,z=1
B.x=1,y=2,z=1
C.x=0,y=1,z=1
D.x=0,y=2,z=2
5)编译和运行以下代码结果为:
1.publicclassEqualsTest{
2.publicstaticvoidmain(Stringargs[]){
3.byteA=(byte)4096;
4.if(A==4096)System.out.println("Equal");
5.elseSystem.out.println("NotEqual");
6.}
7.}
A.在第3行出现转换丢失精度的编译错误.
B.输出"NotEqual".
C.输出"Equal".
6)关于以下程序哪条叙述正确?
1.intj=2;
2.switch(j){
3.case2:
4.System.out.println("valueistwo");
5.case2+1:
6.System.out.println("valueisthree");
7.break;
8.default:
9.System.out.println("valueis"+j);
10.break;
11.}
A.第5行的表达式不合法;
B.变量j是可接受的,switch中表达式可以是byte,short,int,或long的任何类型;
C.输出为valueistwo
D.输出是valueistwo后跟valueisthree
E.输出是valueistwo后跟valueis2
7)以下程序的编译运行结果为:
1:
publicclassQ10
2:
{
3:
publicstaticvoidmain(String[]args)
4:
{
5:
inti=10;
6:
intj=10;
7:
booleanb=false;
8:
9:
if(b=i==j)
10:
System.out.println("True");
11:
else
12:
System.out.println("False");
13:
}
14:
}
A.第9行出现编译错误;
B.第9行出现运行错误;
C.输出True
D.输出False
8)以下程序的编译和运行结果为?
classtest{
staticbooleancheck;
publicstaticvoidmain(Stringargs[]){
inti;
if(check==true)
i=1;
else
i=2;
if(i=2)i=i+2;
elsei=i+4;
System.out.println(i);
}
}
A.3B.4C.5D.6E.语句if(i=2)编译出错
9)以下代码:
if(a>4)
System.out.println("test1");
elseif(a>9)
System.out.println("test2");
else
System.out.println("test3");
a为何值将有输出结果test2?
A.小于0
B.小于4
C.4和9之间
D.大于9
E.无任何可能
10)有如下代码段:
switch(x){
case1:
System.out.println("One");break;
case2:
case3:
System.out.println("Two");break;
default:
System.out.println("end");
}
变量x的取值下列哪些情形时,能使程序输出"Two"。
A.1B.2C.3D.default
11)以下程序的输出结果为
publicclasstest{
publicstaticvoidmain(Stringagrs[]){
charc1=’B’,c2=’C’;
if(c1+1System.out.println(c1);
}
}
A.BB.bC.CD.c
12)假设a是int类型变量,并初始化为1,则下列哪个为合法的条件语句?
A.if(a){}B.if(a<<3){}
C.if(a=2){}D.if(true){}
四、循环程序设计
1)执行以下程序后,输出结果为
publicclassex2{
publicstaticvoidmain(Stringargs[]){
intf=1;
intk;
for(k=2;k<5;k++)
f*=k;;
System.out.println(k);
}
}
A.0B.1C.5D.4E.24
2)设有如下类
classLoop{
publicstaticvoidmain(String[]agrs){
intx=0;inty=0;
outer:
for(x=0;x<100;x++){
middle:
for(y=0;y<100;y++){
System.out.println("x="+x+";y="+y);
if(y==10){<<>>}
}
}
}
}
在<<>>处插入什么代码可以结束外循环?
A.continuemiddle;
B.breakouter;
C.breakmiddle;
D.continueouter;
E.noneofthese
3)以下代码的运行结果为:
publicclassCalc{
publicstaticvoidmain(Stringargs[]){
inttotal=0;
for(inti=0,j=10;total>30;++i,--j){
System.out.println("i="+i+":
j="+j);
total+=(i+j);
}
System.out.println("Total"+total);
}
}
A.产生运行错误
B.产生编译错误
C.输出"Total0"
D.产生如下输出:
i=0:
j=10
i=1:
j=9
i=2:
j=8
Total30
4)以下程序的运行结果为:
publicclasstest{
publicstaticvoidmain(Stringargs[]){
inti=0,j=2;
do{
i=++i;
j--;
}while(j>0);
System.out.println(i);
}
}
A.0B.1C.2 D.3
5)以下程序的运行结果为?
classxyz{
publicstaticvoidmain(Stringargs[]){
inti,j,k;
for(i=0;i<3;i++){
for(j=1;j<4;j++){
for(k=2;k<5;k++){
if((i==j)&&(j==k))
System.out.println(i);
}
}
}
}
}
A.0B.1C.2D.3E.4
6)以下程序的运行结果为?
classtest{
publicstaticvoidmain(Stringargs[]){
inti,j=0;
for(i=10;i<0;i--){j++;}
switch(j){
case(0):
j=j+1;
case
(1):
j=j+2;break;
case
(2):
j=j+3;break;
case(10):
j=j+10;break;
default:
break;
}
System.out.println(j);
}
}
A.0B.1C.2D.3E.10
7)观察以下程序段:
inti=1,j=10;
do{
if(i++>--j)continue;
}while(i<5);
执行完后,i、j的值分别为:
A.i=6j=5 B.i=5j=5
C.i=6j=4 D.i=5j=6
8)以下程序的输出结果为:
publicclassexample{
publicstaticvoidmain(Stringargs[]){
ints=0;
for(inti=0;i<5;i++){
for(intj=10;j>3*i;j--)
s+=i*j;
}
System.out.println(s);
}
}
A.127B.136C.147D.153
9)以下程序的输出结果为:
publicclassexample{
publicstaticvoidmain(Stringargs[]){
inti=0;
for(i=0;i<4;i++){
if(i==3)
break;
System.out.print(i);
}
System.out.println(i);
}
}
A.0123B.0122C.123D.234
10)以下程序的运行结果为
classProb10{
staticbooleanb1;
publicstaticvoidmain(String[]args){
inti1=11;
doublef1=1.3;
do{
b1=(f1>4)&&(i1--<10);
f1+=1.0;
}while(!
b1);
System.out.println(b1+","+i1+","+f1);
}
}
A.false,9,4.3B.true,11,1.3
C.false,8,1.3D.true,8,7.3
五、方法设计
1)以下代码的输出结果?
publicclassTest{
staticintx=5;
publicstaticvoidmain(Stringargv[]){
change(x);
x++;
System.out.println(x);
}
staticvoidchange(intm){
m+=2;
}
}
A.7B.6C.5D.8
2)以下代码的输出结果?
publicclassTest{
intx=5;
publicstaticvoidmain(Stringargv[]){
Testt=newTest();
t.x++;
change(t);
System.out.println(t.x);
}
staticvoidchange(Testm){
m.x+=2;
}
}
A.7B.6C.5D.8
3)以下代码的输出结果?
publicclassTest{
publicstaticvoidmain(Stringargv[]){
Stringx="hello";
change(x);
System.out.println(x);
}
staticvoidchange(Stringm){
m=m+2;
}
}
A.helloB.hello2
C.编译报错D.运行报错,不能将串与整数相加
4)设有如下类:
classMyPoint{
voidmyMethod(){
intx,y;
x=5;y=3;
System.out.print("("+x+","+y+")");
switchCoords(x,y);
System.out.print("("+x+",