Java面向对象编程练习题Word文档下载推荐.docx
《Java面向对象编程练习题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Java面向对象编程练习题Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。
=1&
&
a<
=10?
a:
btrue
〔3〕c^(a>
b)false
〔4〕(-a)<
<
a-8
〔5〕(double)(a+b)/5+a/b-0.4
3、比拟两个数相等的运算符是:
==。
4、Java中的八种根本数据类型分别是:
char、int、long、short、boolean、float、double和byte。
1.下面这些标识符哪个是错误的〔C〕
A.JavaworldB._sumC.2JavaProgramD.$abc
2.以下哪一组运算符的优先级顺序是从高到低排列的〔B〕
A.|、&
、!
B.&
、^、||C.!
、%、++D.<
、<
、++
3、下面哪个赋值语句不会产生编译错误〔D〕
A.chara=’abc’;
B.byteb=152;
C.floatc=2.0;
D.doubled=2.0;
4.下面哪个单词是Java语言的关键字〔D〕
A.FalseB.FORC.ForD.for
5.执行下面程序后,哪个结论是正确的〔A〕
inta,b,c;
a=1;
b=3;
c=(a+b>
3?
++a:
b++);
A.a的值为2,b的值为3,c的值为1B.a的值为2,b的值为4,c的值为2
C.a的值为2,b的值为4,c的值为1D.a的值为2,b的值为3,c的值为2
6.设各个变量的定义如下,哪些选项的值为true(C)
inta=3,b=3;
booleanflag=true;
A.++a==bB.++a==b++C.(++a==b)||flagD.(++a==b)&
flag
7.表达式(int)6.5/7.5*3的值的类型为〔B〕?
A.shortB.intC.doubleD.float
8.设a,b,x,y,z均为int型变量,并已赋值,以下表达式的结果属于非逻辑值的是〔D〕
A.x>
y&
b<
aB.-z>
x-yC.y==++xD.y+x*x++
9.下面语句输出的结果为〔B〕
2);
//二进制比拟0101^0010=0111
A.6B.7C.10D.25
10.对下面的语句执行完后正确是:
〔D〕
intc=’c’/3;
A.输出结果为21B.输出结果为22C.输出结果为32D.输出结果为33
11.以下选项中变量a已定义类型,合法的赋值语句为〔A〕
A.a=int(y);
B.a==1;
C.a=a+1=3;
D.++a;
12.执行以下程序段后,ch,x,y的值正确的选项是:
intx=3,y=4;
booleanch;
ch=x<
y||++x==--y;
A.true,3,4B.true,4,3C.false,3,4D.false,4,3
13.以下标识符中,正确的选项是B。
A、1_BackB、$_MoneyC、$-moneyD、2-Forward
14.现有一个int类型的整数和一个double类型的浮点数,当它们之间做了加法运算之后,得到的结果类型应该是B。
A、int类型B、double类型C、float类型D、long类型
15、以下程序的运行结果为A。
publicclassA{
publicstaticvoidmain(Stringa[]){
intx=2,y=5;
Stringz="
5"
;
}
}
A.7B.7C.25D.7
25x+z7x+z25x+z25x+z
x+y=25x+y=25x+y=7x+y=25
x+z=25x+z=7x+z=25x+z=7
16、设有定义inta=12;
那么执行a*=12;
语句后,a的值为:
A。
A.144B.12C.24D.0
17、以下标识符中,合法的一个是C。
A.$#!
$B.$我们$C.$22$D.2$$2
18、执行以下程序段后,b,x,y的值分别是D。
intx=6,y=8;
booleanb;
b=x>
y&
++x==--y;
A.true,6,8B.false,6,8C.e,7,7D.false,7,7
19、以下程序运行的结果是d。
publicclassA{
publicstaticvoidmain(Stringargs[]){
intx=7%3;
while(x){
x--;
A.0B.1C.trueD.编译错误
三、编程题
1.使用Math.pow()方法,求出2的32次方的值。
publicclassTip{
publicstaticvoidmain(String[]args){
doublei=2;
doublet=0;
t=Math.pow(2,32);
System.out.print(t);
专题3流程控制语句
1.在switch语句中的表达式的类型必须是〔int〕或者〔char〕。
2.break在循环语句中的作用是〔跳出循环〕。
3.分支语句包括〔if〕和〔switch〕。
4.while循环语句的循环次数〔n〕,do-while语句的循环次数〔n+1〕,for语句的循环次数〔n〕。
1.下面程序片段输出的是什么〔C〕
inta=3,b=1;
A.a=1B.a=3C.编译错误,没有输出D.正常运行,但没有输出
2.下面语句执行后,x的值为〔C〕
inta=4,b=5,x=3;
if(++a==b)x=x*a;
A.3B.12C.15D.20
3.请看下面的程序代码:
当程序输出“second〞时,x的围是〔〕
A.x<
=0B.x<
20&
x>
=0C.x>
0D.x>
=20
4.请看下面的程序代码:
switch(n){
case1:
当n为何值时,程序段将输出字符串〞second〞〔〕
A.0B.1C.2D.以上都可以
5.以下语句执行后,j的值是〔〕
intj=3,i=3;
while(--i!
=i/j)j=j+2;
A.4B.5C.6D.7
6.以下语句执行后,x的值是〔D〕
intx=2;
do{x+=x;
}while(x<
17);
A.4B.16C.32D.256
7.执行以下语句后,i、j的值是〔〕
inti=1,j=8;
do{
if(i++>
--j)
continue;
}while(i<
4);
A.i=4,j=5B.i=5,j=4C.i=5,j=5D.i=5,j=6
8.以下语句执行后,k的值是〔〕
intj=4,i,k=10;
for(i=2;
i!
=j;
i++)k=k-i;
9.以下语句执行后,c的值是〔〕
charc=’\0’;
for(c=’a’;
c<
’z’;
c+=3){
if(c>
=’e’)break;
A.‘e’B.’f’C.’g’D.’h’
10.假设变量都已经正确说明,那么以下程序段输出为〔〕
a=10;
b=50;
c=30;
if(a>
b)a=b;
b=c;
c=a;
A.a=10b=50c=10B.a=10b=30c=10
C.a=50b=30c=10D.a=50b=30c=30
11.以下程序段输出是〔〕
intx=1,y=0,a=0,b=0;
i=(--a==b++)?
--a:
++b;
j=a++;
k=b;
2-12
A.i=2,j=1,k=3B.i=1,j=1,k=2C.i=4,j=2,k=4D.i=2,j=-1,k=2
12.以下程序的输出是〔〕
switch(x){
switch(y){
case0:
a++;
break;
b++;
case2:
case3:
b++;
20
A.a=1,b=0B.a=2,b=0C.a=1,b=1D.a=2,b=2
13.以下程序段输出是〔〕
inti=0,j=0,a=6;
if((++i>
0)||(++j>
0))a++:
A.i=0,j=0,a=6B.i=1,j=1,a=7C.i=1,j=0,a=7D.i=0,j=1,a=7
14、以下程序运行的结果是。
publicstaticvoidmain(Stringargs[]){
charc='
d'
for(inti=1;
i<
=4;
i++){
switch(i){
case1:
c='
a'
break;
case2:
b'
case3:
c'
default:
}
A.!
B.dbc!
C.abc!
D.abc!
!
1.输入4个数,将这4个数按从小到大输出。
2.输入一个年份值,判断是否是闰年,输出相应的信息。
3.输入一元二次方程系数,假设有实数根,求根并输出,否那么输出“不是二次方程或没有实数根〞的信息。
4.编写程序,计算邮局汇款的汇费:
如果汇款金额小于100元,汇费为1元,如果金额在100元与500元之间,按1%收取汇费,如果金额大于500元,汇费为50元。
5.求某年某月的天数.
6.求从1到100之间所有奇数的平方和〔用for、while和do……while编写程序〕。
7.求S=1+2+3+…+n之和,S<1000的最大n的值。
8.有一分数序列:
2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
9.猴子吃桃问题:
猴子第一天摘下假设干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下的一半零一个,到第十天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少?
10.输出九九乘法表。
11.输出1000之的所有完数。
所谓完数指的是:
如果一个数恰好等于它的所有因子之和,这个数就称为完数。
12.输出100以的全部素数。
13.求1!
+2!
+3!
+……+10!
14.求2+22+222+2222+22222。
专题4数组
1.定义一个整型数组y,它有5个元素分别是1,2,3,4,5.用一个语句实现对数组y的声明、创立和赋值:
〔〕。
2.设有整型数组的定义:
“intx[][]={{12,34},{-5},{3,2,6}};
〞那么x.length的值为〔〕
3.求取二维数组a[][]的第i行元素个数的表达式是〔〕。
4、一个一维数组有10个元素,那么该数组可用的下标围是。
5、StringS[]={“〞,“〞,“〞};
那么S[1]的值是:
。
6、当声明一个数据组intarr[]=newint[5];
时,这代表这个数组所保存的变量类型是,数组元素下标的使用围是。
二.选择题
1.设有定义语句“inta[]={66,88,99};
〞,那么以下对此语句的表达错误的选项是〔〕
A.定义了一个名为a的一维数组B.a数组有3个元素
C.a数组的元素的下标为1~3D.数组中的每个元素是整数
2.设有定义“int[]a=newint[4];
〞那么数组a的所有元素是〔〕
A.a0、a1、a2、a3B.a[0]、a[1]、a[2]、a[3]
C.a[1]、a[2]、a[3]、a[4]D.a[0]、a[1]、a[2]、a[3]、a[4]
3.下面哪个选项正确地声明了一个字符串数组〔〕
A.char[]strB.char[][]strC.String[]strD.String[10]str
4、假设有这样的数组创立:
inta[]={1,2,3,4,5,6,7};
那么该数组长度为。
A.4B.5C.6D.7
5、以下二维数组的创立中错误的选项是。
A.inta[][]=newint[3][];
B.int[][]a=newint[3][4];
C.inta[][]={{1,2},{3,4}};
D.int[][]a=newint[][];
1.编写一个程序,计算一维数组中的最大值、最小值及其差值。
2.将一个数组中的数逆序重新存放。
3.数组〔12,23,26,45,58,60〕是有序的,输入一个数x,将它插入到数组中,保证数组仍然是有序的。
4.输出辉三角形。
如:
1
11
121
1331
14641
15101051
……
5.求一个二维数组的每行最大数。
**专题5面向对象
1.如果一个方法不返回任何值,那么该方法的返回值类型为。
2.如果子类中的某个方法名、返回值类型和_传递参数_______与父类中的某个方法完全一致,那么称子类中的这个方法覆盖了父类的同名方法。
3.接口中所有的属性均为_公有__、__静态_____和_常量_____的
4.
方法是一种仅有方法声明,没有具体方法体和操作实现的方法,该方法必须在类之中定义。
5.在Java程序中,通过类的定义只能实现重继承,但通过的定义可以实现多重继承关系。
6.一般Java程序的类主体由两局部组成:
一局部是,另一局部是。
7.分别用关键字来定义类,用关键字来分配实例存储空间。
8.当一个类的修饰符为时,说明该类不能被继承,即不能有子类。
9.在Java中,能实现多重继承效果的方式是。
1.方法定义的变量〔〕。
A.一定在方法所有位置可见B.可能在方法的局部位置可见
C.在方法外可以使用D.在方法外可见
2.方法的形参〔〕。
A.可以没有B.至少有一个
C.必须定义多个形参D.只能是简单变量
3.return语句〔〕。
A.不能用来返回对象B.只可以返回数值
C.方法都必须含有D.一个方法中可以有多个
4.main()方法的返回值类型是〔。
A.booleanB.int
C.voidD.static
5.编译并运行下面的程序,运行结果是〔〕。
Aa=newA();
a.method(8);
voidmethod(inti){
“int:
〞+i);
voidmethod(longi){
“long:
A.程序可以编译运行,输出结果为:
8”
B.程序可以编译运行,输出结果为:
C.程序有编译错误,因为两个method()方法必须定义为静态〔static〕的
D.程序可以编译运行,但是没有输出
6.能作为类及其成员的修饰符是〔〕。
A.interfaceB.class
C.protectedD.public
7.以下方法定义中,方法头不正确的选项是〔〕。
A.publicstaticx(doublea){…}B.publicstaticintx(doubley){…}
C.voidx(doubled){…}D.publicintx(){…}
8.构造方法在〔〕时被调用。
A.类定义时B.使用对象的变量时
C.调用对象方法时D.创立对象时
9.以下哪个类声明是正确的〔〕。
A.publicabstractclassCar{…}B.abstractprivatemove(){…}
C.protectedprivatenumber;
D.abstractfinalclassH1{…}
10.以下不属于面向对象程序设计的根本特征的是〔〕。
A.抽象B.封装
C.继承D.多态
11.请看下面的程序段
classPerson{
Stringname,department;
intage;
publicPerson(Stringn){name=n;
publicPerson(Stringn,inta){name=n;
age=a;
publicPerson(Stringn,Stringd,inta){
//doingthesameastwoargumentsversionifconstructer
下面那个选项可以添加到//doingthesame……处〔〕
A.Person(n,a)B.this(Person(n,a))
C.this(n,a)D.this(name.age)
12.请看下面的程序段
classTest{
privateintm;
publicstaticvoidfun(){
//somecode
方法fun()如何来访问变量m〔〕
A.将privateintm改成protectedintmB.将privateintm改成publicintm
C.将privateintm改成staticintmD.将privateintm改成intm
13.有一个类A,对于其构造函数的声明正确的选项是〔〕。
A.voidA(intx){…}B.publicA(intx){…}
C.AA(intx){…}D.intA(intx){…}
14.请看下面的程序段
publicclassTest{
longa[]=newlong[10];
pubicstaticvoidmain(Stringargs[]){
哪一个选项是正确的〔〕。
A.不输出任何容B.输出0
C.当编译时有错误出现D.当运行时有错误出现
15.关键字〔〕说明一个对象或变量在初始化后不能修改。
A.extendsB.final
C.thisD.finalize
16.声明为static的方法不能访问〔〕类成员。
A.超类B.子类
C.非staticD.用户自定义类
17.定义类A如下:
〔重要〕
classA{
inta,b,c;
publicvoidB(intx,inty,intz){a=x;
b=y;
c=z;
下面对方法B的重载哪些是正确的〔〕。
A.publicvoidA(intx1,inty1,intz1){a=x1;
b=y1;
c=z1;
B.publicvoidB(intx1,inty1,intz1){a=x1;
C.publicvoidB(intx,inty){a=x;
c=0;
D.publicB(intx,inty,intz){a=x;
18.编译运行下面的程序,结果是〔〕。
Bb=newB();
b.test();
voidtest(){
classBextendsA{
super.test();
A.产生编译错误B.代码可以编译运行,并输出结果:
AB
C.代码可以编译运行,但没有输出D.编译没有错误,但会产生运行时异常
19