Java基础习题Word文档下载推荐.docx
《Java基础习题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Java基础习题Word文档下载推荐.docx(28页珍藏版)》请在冰点文库上搜索。
![Java基础习题Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-4/29/d1769972-317c-4648-9a3d-c5527fd7af3e/d1769972-317c-4648-9a3d-c5527fd7af3e1.gif)
10.下列语句序列执行后,k的值是(C)。
inti=10,j=18,k=30;
switch(j-i)
{case8:
k++;
case9:
k+=2;
case10:
k+=3;
default:
k/=j;
}
A)31B)32C)2D)33
11.若a和b均是整型变量并已正确赋值,正确的switch语句是(D)。
A)switch(a+b);
{......}B)switch(a+b*3.0){......}
C)switcha{......}D)switch(a%b){......}
12.下列语句序列执行后,r的值是(C)。
charch='
8'
;
intr=10;
switch(ch+1)
{
case'
7'
:
r=r+3;
r=r+5;
9'
r=r+6;
break;
default:
r=r+8;
}
A)13B)15C)16D)18
13.设int型变量a、b,float型变量x、y,char型变量ch均已正确定义并赋值,正确的switch语句是(B)。
A)switch(x+y){......}B)switch(ch+1){......}
C)switchch{......}D)switch(a+b);
{......}
14.下列语句序列执行后,k的值是(D)。
intx=6,y=10,k=5;
switch(x%y)
case0:
k=x*y;
case6:
k=x/y;
case12:
k=x-y;
k=x*y-x;
A)60B)5C)0D)54
15.下列语句序列执行后,r的值是(B)。
A'
intr=6;
switch(ch+5)
B'
C'
r-=6;
r/=2;
A)11B)3C)2D)9
16.以下for循环的执行次数是(B)。
for(intx=0;
(x==0)&
(x>
4);
x++);
A)无限次B)一次也不执行C)执行4次D)执行3次
17.下列语句序列执行后,j的值是(A)。
intj=1;
for(inti=5;
i>
0;
i-=2)j*=i;
A)15B)1C)60D)0
18.以下for循环的执行次数是(B)。
(x<
A)无限次B)一次C)执行4次D)执行3次
19.下列语句序列执行后,j的值是(D)。
intj=2;
for(inti=7;
i-=2)j*=2;
A)15B)1C)60D)32
20.以下for循环的执行次数是(B)。
for(intx=0,y=0;
(y!
=0)&
&
21.下列语句序列执行后,j的值是(D)。
intj=0;
for(inti=3;
i--)j+=i;
A)3B)4C)5D)6
22.以下由for语句构成的循环执行的次数是(B)。
for(inti=0;
true;
i++);
A)有语法错,不能执行B)无限次
C)执行1次D)一次也不执行
23.下面语句执行后,i的值是(B)。
for(inti=0,j=1;
j<
5;
j+=3)i=i+j;
A)4B)5C)6D)7
24.下列语句序列执行后,k的值是(D)。
intj=8,k=15;
for(inti=2;
i!
=j;
i++){j-=2;
A)18B)15C)16D)17
25.下列语句序列执行后,k的值是(B)。
intm=3,n=6,k=0;
while((m++)<
(--n))++k;
A)0B)1C)2D)3
26.下列语句序列执行后,i的值是(D)。
ints=1,i=1;
while(i<
=4){s*=i;
i++;
A)6B)4C)24D)5
27.下列语句序列执行后,k的值是(C)。
while(m<
n){++k;
m++;
--n;
28.下列语句序列执行后,j的值是(C)。
intj=8,i=6;
while(--i>
4)--j;
A)5B)6C)7D)8
29.下列语句序列执行后,j的值是(C)。
while(i>
4)i-=2;
--j;
30.下列语句序列执行后,j的值是(B)。
intj=9,i=6;
while(i-->
3)--j;
A)5B)6C)7D)8
31.下列语句序列执行后,j的值是(D)。
intj=3,i=2;
while(--i!
=i/j)j=j+2;
A)2B)4C)6D)5
32.若有循环:
intx=5,y=20;
do{y-=x;
x+=2;
}while(x<
y);
则循环体将被执行(A)。
A)2次B)1次C)0次D)3次
33.以下由do-while语句构成的循环执行的次数是(B)。
intm=8;
do{++m;
}while(m<
8);
A)一次也不执行B)执行1次
C)8次D)有语法错,不能执行
34.下列语句序列执行后,i的值是(A)。
inti=10;
do{i/=2;
}while(i>
1);
A)1B)5C)2D)0
35.下列语句序列执行后,i的值是(D)。
}while(i-->
1);
A)1B)5C)2D)-1
36.下列语句序列执行后,i的值是(C)。
do{i-=2;
6);
A)10B)8C)6D)4
37.下列语句序列执行后,i的值是(D)。
inti=16;
}while(i>
3);
A)16B)8C)4D)2
38.以下由do-while语句构成的循环执行的次数是(B)。
intk=0;
do{++k;
}while(k<
A)一次也不执行B)执行1次C)无限次D)有语法错,不能执行
39.若有循环:
intx=5,y=20;
do{y-=x;
x++;
}while(++x<
--y);
则循环体将被执行(C)。
A)0次B)1次C)2次D)3次
40.下列循环中,执行breakouter语句后,所列(C)语句将被执行。
outer:
for(inti=1;
i<
10;
i++)
{
inner:
for(intj=1;
j<
j++)
if(i*j>
50)
breakouter;
System.out.println(i*j);
next:
A)标号为inner的语句B)标号为outer的语句
C)标号为next的语句D)以上都不是
41.下列循环中,执行continueouter语句后,(A)说法正确。
outer:
continueouter;
A)程序控制在外层循环中并且执行外层循环的下一迭代
B)程序控制在内层循环中并且执行内层循环的下一迭代
C)执行标号为next的语句
D)以上都不是
2.找出下面各段程序中的错误:
a)For(i=100,i>
=1,i++)
System.out.println(i);
答案:
For的F应该小写;
For头中应当使用分号,而应当使用逗号;
++应当为――
应当在case0中放置一条break语句
c)下面的代码应输入从19~1之间的所有奇数:
for(i=19;
i>
=1;
i+=2)
System.out.println(i);
答案:
+=应该为-=
d)下面的代码应输出从2到100之间的所有偶数:
counter=2;
do{
System.out.println(counter);
counter+=2;
}While(counter<
100)
while的W应当小写;
<
应当为<
=
3.指出并纠正下面各段代码中的错误:
a)
while(c<
=5){
product*=5;
c++;
b)
if(gender==1)
System.out.println(“woman”);
else;
System.out.println(“Man”);
a)错误:
漏掉了while循环的右花括号
纠正:
在最后加上右花括号
b)错误:
else后的分号导致一个逻辑错误,第二个输出语句无论如何都会执行。
去掉else后面的分号。
4.下面的while循环结构有什么错误?
while(z>
=0)
sum+=z;
变量z在while循环中一直没有改变,如果循环条件(z>
=0)为真,则会出现死循环,为了避免,必须使得变量z递减,使其最终小于0;
5.指出并纠正下列各段代码的错误。
(注解:
每段代码中可能包含多个错误。
)
a)if(age>
=65);
System.out.println(“Agegreaterthanorequalto65”);
else
System.out.println(“Ageislessthan65”);
if后不能有分号,将分号去掉可以改正这个错误。
b)intx=1,total;
while(x<
=10){
total+=x;
++x;
total+=x语句中,total没有初始数值,无法使用,在定义total时为其赋值0可以解决这个错误。
c)while(x<
=100)
++x;
循环为死循环,直到超出total的取值范围,在(x<
=100)后添加{,然后在++x;
后添加}可以解决这个错误。
6.找出下面各段代码中的错误,并解释如何改正它。
for(k=0;
k!
=1.0;
k+=0.1)
System.out.println(k);
b)如下代码应打印1~10的值
n=1;
while(n<
10)
System.out.println(n++);
a)错误:
浮点数作控制变量,for循环将不工作,因为浮点数在大多数计算机中只是近似值。
改正:
用一个整数取代浮点数,并用适当的计算获取所要的值:
for(k=1;
=10;
k++)
System.out.println((float)k/10);
在while循环继续条件中用了错误的关系运算符。
用<
=代替<
,或者将10改为11也可以。
Java基础习题(附答案)2收藏
1.以下方法fun的功能是求两参数之积。
(returna*b)
intfun(inta,intb){__________________;
}
2.以下方法fun的功能是求两参数之积。
(return(float)a*b)
floatfun(inta,doubleb){__________________;
3.以下方法fun的功能是求两参数的最大值。
(returna>
b?
a:
b)
4.以下方法m的功能是求两参数之积的整数部分。
(return(int)(a*b))
intm(floatx,floaty){__________________;
5.下面是用户程序对Applet类中方法paint()的重新定义。
(voidcall)
public___paint(Graphics____)
{call.drawString("
Hello,java!
"
10,20);
6.下面方法的功能是判断一个整数是否为偶数,将程序补充完整。
(booleantrue)
public________isEven(inta)
{if(a%2==0)
return_____;
returnfalse;
7.同一个类中多个方法具有相同的方法名,不同的_____________称为方法的重载。
(参数列表)
二.选择题及答案
1.下列方法定义中,正确的是(D)。
A)intx(inta,b){return(a-b);
B)doublex(inta,intb){intw;
w=a-b;
C)doublex(a,b){returnb;
D)intx(inta,intb){returna-b;
2.下列方法定义中,正确的是(D)。
A)voidx(inta,intb);
{return(a-b);
B)x(inta,intb){returna-b;
C)doublex{returnb;
D)intx(inta,intb){returna+b;
3.下列方法定义中,不正确的是(D)。
A)floatx(inta,intb){return(a-b);
B)intx(inta,intb){returna-b;
C)intx(inta,intb);
{returna*b;
D)intx(inta,intb){return1.2*(a+b);
4.下列方法定义中,正确的是(A)。
A)intx(){charch='
a'
return(int)ch;
B)voidx(){...returntrue;
C)intx(){...returntrue;
D)intx(inta,b){returna+b;
5.列方法定义中,方法头不正确的是(D)。
A)publicintx(){...}
B)publicstaticintx(doubley){...}
C)voidx(doubled){...}
D)publicstaticx(doublea){...}
6.在某个类中存在一个方法:
voidgetSort(intx),以下能作为这个方法的重载的声明的是(C)。
A)publicgetSort(floatx)B)intgetSort(inty)
C)doublegetSort(intx,inty)D)voidget(intx,inty)
7.在某个类中存在一个方法:
voidsort(intx),以下不能作为这个方法的重载的声明的是(B)。
A)publicfloatsort(floatx)B)intsort(inty)
C)doublesort(intx,inty)D)voidsort(doubley)
8.为了区分类中重载的同名的不同方法,要求(A)。
A)采用不同的形式参数列表B)返回值类型不同
C)调用时用类名或对象名做前缀D)参数名不同
一、选择题
1定义类头时,不可能用到的关键字是(B)。
A)classB)privateC)extendsD)public
2.下列类定义中,不正确的是(C)。
A)classx{....}
B)classxextendsy{....}
C)staticclassximplementsy1,y2{....}
D)publicclassxextendsApplet{....}
3.下列类头定义中,错误的是(A)。
A)publicxextendsy{...}
B)publicclassxextendsy{...}
C)classxextendsyimplementsy1{...}
D)classx{...}
.设A为已定义的类名,下列声明A类的对象a的语句中正确的是(D)。
A)floatAa;
B)publicAa=A();
C)Aa=newint();
D)staticAa=newA();
5.设A为已定义的类名,下列声明A类的对象a的语句中正确的是(A)。
A)publicAa=newA();
C)Aa=newclass();
D)aA;
6.设X、Y均为已定义的类名,下列声明类X的对象x1的语句中正确的是(C)。
A)publicXx1=newY();
B)Xx1=X();
C)Xx1=newX();
D)intXx1;
7.设X、Y为已定义的类名,下列声明X类的对象x1的语句中正确的是(A)。
A)staticXx1;
B)publicXx1=newX(int123);
C)Yx1;
D)Xx1=X();
8.通过类MyClass中的不含参数的构造方法,生成该类的一个对象obj,可通过以下语句实现:
_______________________________。
(MyClassobj=newMyClass();
9.设i,j为类X中定义的int型变量名,下列X类的构造方法中不正确的是(A)。
A)voidX(intk){i=k;
}B)X(intk){i=k;
C)X(intm,intn){i=m;
j=n;
}D)X(){i=0;
j=0;
10.有一个类A,以下为其构造方法的声明,其中正确的是(A)。
A)publicA(intx){...}B)staticA(intx){...}
C)publica(intx){...}D)voidA(intx){...}
11.有一个类A,以下为其构造方法的声明,其中正确的是(B)。
A)voidA(intx){...}B)A(intx){...}
C)a(intx){...}D)voida(intx){...}
12.设i、j、k为类X中定义的int型变量名,下列类X的构造方法中不正确的是(B)。
A)X(intm){...}B)voidX(intm){...}
C)X(intm,intn){...}D)X(inth,intm,intn){...}
13.设i,j为类X中定义的double型变量名,下列X类的构造方法中不正确的是(A)。
A)doubleX(doublek){i=k;
returni;
}C)X(){i=6;
j=8;
B)X(doublem,doublen){i=m;
}D)X(doublek){i=k