《Java面向对象》复习题.docx
《《Java面向对象》复习题.docx》由会员分享,可在线阅读,更多相关《《Java面向对象》复习题.docx(89页珍藏版)》请在冰豆网上搜索。
![《Java面向对象》复习题.docx](https://file1.bdocx.com/fileroot1/2023-4/16/b5a4ec98-e649-4fc3-ae12-96ab683673c1/b5a4ec98-e649-4fc3-ae12-96ab683673c11.gif)
《Java面向对象》复习题
Java面向对象编程练习题
专题1初识Java
一、选择题
1.作为Java应用程序入口的main方法,其声明格式是(B)
A.publicstaticintmain(Stringargs[])B.publicstaticvoidmain(Stringargs[])
C.publicvoidmain(Stringargs[])D.publicintmain(Stringargs[])
2.下面命令正确的是(B)
A.javaAppFirst.javaB.javaAppFirst
C.javaappfirst.classD.javacAppFirst
3.设有一个Java小程序,源程序名为FirstApplet.java,其HTML文件为FirstApplet.html,则运行该小程序的命令为(D)
A.javaFirstAppletB.javacFirstApplet.java
C.appletviewerFirstApplet.javaD.appletviewerFirstApplet.html
4.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的(A)文件夹下。
A.binB.jreC.includeD.doc
5.Java语言是一种D语言。
A.机器B.汇编C.面向过程的D.面向对象的
6、Java程序的最基本组成单位是D。
A.函数B.过程C.变量D.类
二、简答题
1.Java语言有哪些特点?
答:
Java是一种具有“简单、面向对象、分布式、解释型、健壮、安全、与体系结构无关、可移植、高性能、多线程和动态执行”等特点的语言。
P2
2.JDK安装完成后,如何设置环境变量?
答:
在桌面上右键单击【我的电脑】,选择【属性】【高级】【环境变量】【系统变量】,选择path,单击【编辑】,在【变量值】栏目的最前面输入“d:
\jdk1.5\bin;”。
3.简述Java应用程序和小应用程序的区别。
答:
Java应用程序是由用户系统就地装入的可独立运行的Java程序,可以是基于窗口或控制台的。
而Java小应用程序需要嵌入到网页在浏览器中运行(java是在控制台上执行,applet是需要网页中执行)。
4.简述Java应用程序的开发过程
答:
(1)建立源程序。
(2)编译源程序。
(3)解释运行程序。
专题2标识符、表达式、数据类型
一、填空题
1.Java逻辑常量有两个:
(ture)和(flase)。
2.写出下列表达式的运算结果,设a=2,b=-4,c=true。
(1)-a%b++-2
(2)a>=1&&a<=10?
a:
b2
(3)c^(a>b)false
(4)(-a)<(5)(double)(a+b)/5+a/b-0.4
3、比较两个数相等的运算符是:
==。
4、Java中的八种基本数据类型分别是:
char、int、long、shore,flaot、double、byte和boolean。
二、选择题
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.执行下面程序后,哪个结论是正确的(D)
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的值的类型为(C)
A.shortB.intC.doubleD.float
8.设a,b,x,y,z均为int型变量,并已赋值,下列表达式的结果属于非逻辑值的是(D )
A.x>y&&bx-yC.y==++xD.y+x*x++
9.下面语句输出的结果为(B)
Syste.out.println(5^2);
A.6B.7C.10D.25
10.对下面的语句执行完后正确的说法是:
(D)
intc=’c’/3;
System.out.println(c);
A.输出结果为21B.输出结果为22C.输出结果为32D.输出结果为33
11.以下选项中变量a已定义类型,合法的赋值语句为(D)
A.a=int(y);B.a==1;C.a=a+1=3;D.++a;
12.执行下列程序段后,ch,x,y的值正确的是:
(A)
intx=3,y=4;
booleanch;
ch=xA.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";
System.out.println(x+y);
System.out.println(x+z+"x+z");
System.out.println("x+y="+x+y);
System.out.println("x+z="+(x+z));
}
}
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的值分别是B。
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--;
}
System.out.println(x);
}
}
A.0B.1C.trueD.编译错误
三、编程题
1.使用Math.pow()方法,求出2的32次方的值。
Packagepr1:
Publicclasslxl_2_4{
Publicstaticvoidmain(String[]args){
doublevalue;
value=Math.pow(2,32);
System.out.println(“2的32次方是:
”+value);
}
}
专题3流程控制语句
一、填空题
1.在switch语句中的表达式的类型必须是(int型)或者(与int相容的类型【byte,char,long,short】)。
2.break在循环语句中的作用是(跳出整个循环)。
3.分支语句包括(if)和(switch)。
4.while循环语句的循环次数(0或者不限),do-while语句的循环次数(至少一次),for语句的循环次数(0或者不限)。
二、选择题
1.下面程序片段输出的是什么(C)
inta=3,b=1;
if(a=b)Syste.out.println(“a=”+a);
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.请看下面的程序代码:
(B)
if(x<0){Syste.out.println(“first”);}
elseif(x<20){Syste.out.println(“second”);}
else{Syste.out.println(“third”);}
当程序输出“second”时,x的范围是
A.x<=0B.x<20&&x>=0C.x>0D.x>=20
4.请看下面的程序代码:
switch(n){
case0:
Syste.out.println(“first”);
case1:
case2:
Syste.out.println(“second”);break;
default:
Syste.out.println(“end”);
}
当n为何值时,程序段将输出字符串”second”(D)
A.0B.1C.2D.以上都可以
★5.下列语句执行后,j的值是(D)
intj=3,i=3;
while(--i!
=i/j)j=j+2;
A.4B.5C.6D.7
6.下列语句执行后,x的值是(C)
intx=2;
do{x+=x;}while(x<17);
A.4B.16C.32D.256
★7.执行下列语句后,i、j的值是(B)
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的值是(B)
intj=4,i,k=10;
for(i=2;i!
=j;i++)k=k-i;
A.4B.5C.6D.7
9.下列语句执行后,c的值是(C)
charc=’\0’;
for(c=’a’;c<’z’;c+=3){
if(c>=’e’)break;
}
A.‘e’B.’f’C.’g’D.’h’
10.若变量都已经正确说明,则以下程序段输出为(B)
a=10;b=50;c=30;
if(a>b)a=b;b=c;
c=a;
System.out.println(“a=”+a+”b=”+b+”c=”+c);
A.a=10b=50c=10B.a=10b=30c=10
C.a=50b=30c=10D.a=50b=30c=30
★11.以下程序段输出是(D)
intx=1,y=0,a=0,b=0;
i=(--a==b++)?
--a:
++b;
j=a++;k=b;
System.out.println(“i=”+i+”,j=”+j+”,k=”+k);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.以下程序的输出是(B)
intx=1,y=0,a=0,b=0;
switch(x){
case1:
switch(y){
case0:
a++;break;
case1:
b++;break;
}
case2:
a++;break;
case3:
a++;b++;
}
System.out.println(“a=”+a+”,b=”+b);20
A.a=1,b=0B.a=2,b=0C.a=1,b=1D.a=2,b=2
13.以下程序段输出是(C)
inti=0,j=0,a=6;
if((++i>0)||(++j>0))a++:
System.out.println(“i=”+i+”,j=”+j+”,a=”+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、下列程序运行的结果是D。
publicclassA{
publicstaticvoidmain(Stringargs[]){
charc='d';
for(inti=1;i<=4;i++){
switch(i){
case1:
c='a';
System.out.print(c);
break;
case2:
c='b';
System.out.print(c);
break;
case3:
c='c';
System.out.print(c);
default:
System.out.print("!
");
}
}
}
}
A.!
B.dbc!
C.abc!
D.abc!
!
专题4数组
一、填空题
1.定义一个整型数组y,它有5个元素分别是1,2,3,4,5.用一个语句实现对数组y的声明、创建和赋值:
(inty[]={1,2,3,4,5})。
2.设有整型数组的定义:
“intx[][]={{12,34},{-5},{3,2,6}};”则x.length的值为(3)
3.求取二维数组a[][]的第i行元素个数的表达式是(a[i-1].length)。
4、一个一维数组有10个元素,则该数组可用的下标范围是0-9。
5、StringS[]={“安徽”,“江苏”,“山东”};则S[1]的值是:
江苏。
6、当声明一个数据组intarr[]=newint[5];时,这代表这个数组所保存的变量类型是整形,数组元素下标的使用范围是0-4。
二.选择题
1.设有定义语句“inta[]={66,88,99};”,则以下对此语句的叙述错误的是(C)
A.定义了一个名为a的一维数组B.a数组有3个元素
C.a数组的元素的下标为1~3 D.数组中的每个元素是整数
2.设有定义“int[]a=newint[4];”则数组a的所有元素是(B)
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.下面哪个选项正确地声明了一个字符串数组(C)
A.char[]strB.char[][]strC.String[]strD.String[10]str
4、假设有这样的数组创建:
inta[]={1,2,3,4,5,6,7};则该数组长度为D。
A.4B.5C.6D.7
5、下列二维数组的创建中错误的是D。
A.inta[][]=newint[3][];B.int[][]a=newint[3][4];
C.inta[][]={{1,2},{3,4}};D.int[][]a=newint[][];
三、编程题
1.编写一个程序,计算一维数组中的最大值、最小值及其差值。
Packageprl;
Publicclasslxl_4_1{
Publicstaticvoidmain(String[]args){
inta[]={34,65,79,50,30,40,65,23,8,10};
//数组名.lengtha.length
intI,max,min;
intn=a.length;
//a[0]a[1]a[n-1]
max=a[0];
min=a[0];
for(i=1;iif(maxmax=a[i]
}elseif(minmin=a[i];
}
}
System.out.println("最大数:
"+max+"最小数:
"+min+"差值:
"+(max-min));
}
}
2.将一个数组中的数逆序重新存放。
Packageprl;
Publicclasslxl_4_2{
Publicstaticvoidmain(String[]args){
inta[]={3,15,28,1,34,78,95,27,18};
inti,length,temp;
length=a.length;
for(i=0;i<(length/2);i++){
//以下将数组元素a[i]和a[length-1-i]的值互换
temp=a[i];
a[i]=a[length-1-i];
a[length-1-i]=temp;
}
for(i=0;iSystem.out.print(a[i]+""):
}
}
}
3.已知数组(12,23,26,45,58,60)是有序的,输入一个数x,将它插入到数组中,保证数组仍然是有序的。
Packageprl;
importjava.util,Scanner;
Publicclasslxl_4_3{
Publicstaticvoidmain(String[]args){
inta[]={12,23,26,45,58,60,0};
intx,i,j,n;
Scannerscanner=newScanner(System.in);
System.out.println("请输入要插入的数x:
");
x=scanner.nextInt();
n=6;
for(i=0;iif(xbreak;
}
for(j=n;j>i;j--){
a[j]=a[j-1];
}
a[i]=x;
n++;
for(i=0;iSystem.out.print(a[i]+"");
}
}
}
4.输出杨辉三角形。
如:
1
11
121
1331
14641
15101051
……
Packageprl;
Publicclasslxl_4_4{
Publicstaticvoidmain(Stringargs[]){
inta[][]=newint[10][10];
for(inti=0;ia[i][0]=a[i][i]=1;
for(intj=i;j
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
}
for(inti=0;ifor(intj=0;j<=i;j++){
System.out.print(a[i][j]+"");
}
System.out.println();
}
}
}
5.求一个二维数组的每行最大数。
Packageprl;
Publicclasslxl_4_5{
Publicstaticvoidmain(Stringargs[]){
inta[][]={{34,23,45,78},{2,24,16,20},{43,56,22,12}};
intmax;
for(inti=0;imax=a[i][0];
for(intj=0;jif(maxmax=a[i][j];
}
System.out.println("第"+i+"行上的最大数为:
"+max);
}
}
}
(特别提醒:
考试内容主要集中在后续章节)
**专题5面向对象
一、填空题
1.如果一个方法不返回任何值,则该方法的返回值类型为void。
2.如果子类中的某个方法名、返回值类型和_传递参数__与父类中的某个方法完全一致,则称子类中的这个方法覆盖了父类的同名方法。
3.接口中所有的属性均为_公有__、__静态_____和_常量__的。
4.抽象方法是一种仅有方法声明,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。
5.在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。
6.一般Java程序的类主体由两部分组成:
一部分是成员变量(属性),另一部分是成员方法(方法)。
7.分别用class关键字来定义类,用new关键字来分配实例存储空间。
8.当一个类的修饰符为private时,说明该类不能被继承,即不能有子类。
9.在Java中,能实现多重继承效果的方式是implements。
二、选择题
1.方法内定