1.
(单选题)下列Java代码中,在(___)处填写哪些代码可以实现遍历输出数组元素:()。
int[] arr = {13,24,35,8,1,37};
(_________)
System.out.println(arr[i]);
}
A.for(int i=1;i<arr.length;i++){
B.for(int i=1;i<=arr.length;i++){
C.for(int i=0;i<arr.length;i++){
D.for(int i=0;i<=arr.length;i++){
B.for(int i=1;i<=arr.length;i++){
C.for(int i=0;i<arr.length;i++){
D.for(int i=0;i<=arr.length;i++){
正确答案:C
此题目考查的是Java数组的遍历。
此题目考查的是Java数组的遍历。
在Java语言中,数组的下标从0开始,所以选项A和B是错误的。数组的下标最大到数组的长度-1,也就是说,并不包括数组的长度,所以也就不可以<=arr.length。本题正确选项为C。
2.
(单选题)在Java中,用()关键字修饰的方法可以直接通过类名来调用。
(单选题)在Java中,用()关键字修饰的方法可以直接通过类名来调用。
A.static
B.final
C.public
D.void
B.final
C.public
D.void
正确答案:A
此题目考查的是Java中的static关键字。
此题目考查的是Java中的static关键字。
在Java语言中,由static关键字修饰的方法为静态方法,可以通过类名来直接调用。所以本题正确的选项为A。
3.
(单选题)在Java中,下列关于定义常量正确的是()。
(单选题)在Java中,下列关于定义常量正确的是()。
A.public static final double PI=3.14159;
B.public static double PI=3.14159;
C.public final double PI=3.14159;
D.public double PI=3.14159;
B.public static double PI=3.14159;
C.public final double PI=3.14159;
D.public double PI=3.14159;
正确答案:A
此题目考查的是Java中的常量。
此题目考查的是Java中的常量。
在java语言中,声明常量需要由static final关键字修饰,常量必须声明的同时初始化,常量的值不能被改变。所以本题正确选项为A。
4.
(单选题)在Java中,如果Coo是类Boo的子类,类Boo是类Aoo的子类,如下描述正确的是()。
(单选题)在Java中,如果Coo是类Boo的子类,类Boo是类Aoo的子类,如下描述正确的是()。
A.Coo不仅继承的Boo的成员,同时也继承了Aoo中的成员
B.Coo只继承了Boo中的成员
C.Coo只继承了Aoo中的成员
D.Coo不能继承Aoo和Boo的成员
B.Coo只继承了Boo中的成员
C.Coo只继承了Aoo中的成员
D.Coo不能继承Aoo和Boo的成员
正确答案:A
此题目考查的是Java中的继承。
此题目考查的是Java中的继承。
在Java语言中,继承是具备传递性的,所以本题描述的结果中,Coo既继承了Boo的成员,同时也继承了Aoo的成员,所以选项A是正确的。
5.
(单选题)下面哪一个是java中不合法的标识符()。
(单选题)下面哪一个是java中不合法的标识符()。
A.$number
B._count
C.a*b
D.num2
B._count
C.a*b
D.num2
正确答案:C
此题目考查的是Java中的变量。
此题目考查的是Java中的变量。
在Java语言中,标识符只能包含字母、数字、下划线和$符,并且不能以数字开头。本题是a*b是不正确的。本题正确选项为C。
6.
(单选题)main方法定义正确的是( )。
(单选题)main方法定义正确的是( )。
A.public static void main(String args){}
B.public static void main(String[] args){}
C.public void main(String[] args){}
D.public void static void main(){}
B.public static void main(String[] args){}
C.public void main(String[] args){}
D.public void static void main(){}
正确答案:B
main方法是JAVA程序执行的入口,有固定的定义语法,该方法定义如下:
main方法是JAVA程序执行的入口,有固定的定义语法,该方法定义如下:
public static void main(String[] args){}
当执行某个java应用程序的时候,JVM直接运行该方法,如果该方法定义错误,会无法找到程序入口。
7.
(单选题)对如下类的定义
class Phone{
public String call(){return "A"; }
public void show(int i){ }
}
以下选项,类中语法完全正确的是( )。
(单选题)对如下类的定义
class Phone{
public String call(){return "A"; }
public void show(int i){ }
}
以下选项,类中语法完全正确的是( )。
A.class NewPhone extends Phone{
public void call(){return "B";}
public void show(int i){}
}
B.class NewPhone extends Phone{
public String call(){return "B";}
public String show(int i){return "C";}
}
C.class NewPhone extends Phone{
public String call(){return "B";}
void show(int i){}
}
D.class NewPhone extends Phone{
public String call(){return "B";}
public void show(int i){}
}
public void call(){return "B";}
public void show(int i){}
}
B.class NewPhone extends Phone{
public String call(){return "B";}
public String show(int i){return "C";}
}
C.class NewPhone extends Phone{
public String call(){return "B";}
void show(int i){}
}
D.class NewPhone extends Phone{
public String call(){return "B";}
public void show(int i){}
}
正确答案:D
本题考查方法的重写
本题考查方法的重写
方法的重写是指,子类中的方法与父类中的方法有完全相同的方法签名,即返回值类型,方法名,参数都完全相同。子类方法的访问级别不能低于父类方法的访问级别。
选项A,错误,call()方法返回值类型与父类的不同
选项B,错误,show()方法返回值类型与父类不同
选项C,错误,父类的show()方法的访问级别高于子类的show()方法,
选项D正确
8.
(单选题)下列选项中,属于计算机操作系统的是()。
(单选题)下列选项中,属于计算机操作系统的是()。
A.Oracle
B.JVM
C.Open Source
D.Windows 7
B.JVM
C.Open Source
D.Windows 7
正确答案:D
此题目考查的是Java行业知识。
此题目考查的是Java行业知识。
如上选项中Oralce为数据库,JVM为Java虚拟机,Open Source为开源的,Windows 7是一种计算机操作系统,所以本题正确选项为D。
9.
(单选题)下列运算结果正确的是:()。
(单选题)下列运算结果正确的是:()。
A.double d = 5/10+2.5;
d结果为3.0
B.double d = 7/2+0. 5;
d结果为4.0
C.double d = 5/2 + 2.5;
d结果为5.0
D.double d = 3.0 - 2.6;
d结果为0.3999999999999999
d结果为3.0
B.double d = 7/2+0. 5;
d结果为4.0
C.double d = 5/2 + 2.5;
d结果为5.0
D.double d = 3.0 - 2.6;
d结果为0.3999999999999999
正确答案:D
选项A 5/10java默认整型都是int,5/10运算结果为0 所以运算结果为2.5
选项A 5/10java默认整型都是int,5/10运算结果为0 所以运算结果为2.5
选项B 7/2java默认整型都是int,7/2运算结果为3 所以运算结果为3.5
选项C 5/2java默认整型都是int,5/2运算结果为2 所以运算结果为4.5
选项D 2.6转换成二进制会损失精度,所以运算结果为0.3999999999999999
D选项正确
10.
(单选题)在Java中,如下()不可以作为循环条件。
(单选题)在Java中,如下()不可以作为循环条件。
A.i>5
B.count==num
C.b=str.equals("q")
D.i++
B.count==num
C.b=str.equals("q")
D.i++
正确答案:D
此题目考查的是Java的循环结构。
此题目考查的是Java的循环结构。
循环条件必须为boolean型数据,选项ABC都是boolean数据,所以选项D是错误的。
11.
(单选题)类Worker是类Person的子类,在类Worker的构造函数的第一条语句中有
"super();"代码,该代码的作用是( )。
(单选题)类Worker是类Person的子类,在类Worker的构造函数的第一条语句中有
"super();"代码,该代码的作用是( )。
A.调用类Worker类的super()方法。
B.调用类Person中的super()方法
C.调用类Person中的无参数的构造方法。
D.编译错误,找不到该方法
B.调用类Person中的super()方法
C.调用类Person中的无参数的构造方法。
D.编译错误,找不到该方法
正确答案:C
本题考查super关键字在构造方法的使用
本题考查super关键字在构造方法的使用
super可以用来调用父类的构造方法,格式是super().
但是,super调用父类构造方法的时候,必须是子类构造方法中的第一条语句。
选项C正确,本题中就是调用父类Person中的构造方法。
12.
(单选题)下列用于判断某个引用指向的对象是否为指定的类型的关键字是( )。
(单选题)下列用于判断某个引用指向的对象是否为指定的类型的关键字是( )。
A.equals
B.isNull
C.instanceof
D.native
B.isNull
C.instanceof
D.native
正确答案:C
本题考查instanceof关键字
本题考查instanceof关键字
在强制转型中,为了避免出现ClassCastException,可以通过instanceof关键字判断某个引用指向的对象是否为指定的类型。
语法是:obj instanceof type;
选项C正确。
13.
(单选题)有如下java代码:
int a = -8;
String r = a > 0 ? "正数" : (a == 0 ? "0":"负数");
System.out.println(r);
正确得输出结果是()。
(单选题)有如下java代码:
int a = -8;
String r = a > 0 ? "正数" : (a == 0 ? "0":"负数");
System.out.println(r);
正确得输出结果是()。
A.负数
B.正数
C.0
D.编译错误
B.正数
C.0
D.编译错误
正确答案:A
此题目考查的是Java中的三目运算符。
此题目考查的是Java中的三目运算符。
本题变量a的值为-8,程序先判断a>0,结果为false,所以会执行冒号后面的,再判断a==0为false,所以最终结果为”负数”。本题选项A 是正确的。
14.
(单选题)运行下列Java代码后,变量c的值为:() 。
int a=15,b=10;
double c=(double)a/b;
(单选题)运行下列Java代码后,变量c的值为:() 。
int a=15,b=10;
double c=(double)a/b;
A.1
B.1.5
C.2
D.0
B.1.5
C.2
D.0
正确答案:B
此题目考查的是Java中的算术运算符和数据类型转换。
此题目考查的是Java中的算术运算符和数据类型转换。
在java语言中,两个整数相除,结果还是整数,小数位会被无条件舍弃。而多种基本类型参与的表达式运算中,运算结果会自动的向较大的类型进行转换。所以(double)a/b的结果为double型的1.5,所以本题正确选项为B。
15.
(单选题)在Java中,将类成员的访问权限设置为默认的,则该成员能被()
(单选题)在Java中,将类成员的访问权限设置为默认的,则该成员能被()
A.同包中的类访问
B.其它包中的类访问
C.所有子类访问
D.所有类访问
B.其它包中的类访问
C.所有子类访问
D.所有类访问
正确答案:A
此题目考查的是Java中的访问控制修饰符
此题目考查的是Java中的访问控制修饰符
在java中:
public修饰的成员变量和方法可以在任何地方调用。
private修饰的成员变量和方法仅仅只能在本类中调用。
protected修饰的成员变量和方法可以被子类及同一个包中的类调用。
默认访问控制即不书写任何访问修饰符,默认访问控制的成员变量和方法可以被同一个包中的类调用。
所以本题正确选项为A。
16.
(单选题)下列类的定义,语法正确的是( )
(单选题)下列类的定义,语法正确的是( )
A.class Point{
public Point(){}
public Point(int x){}
public Point(int y){}
}
B.class Point{
public Point(){}
public void Point(int x){}
public Point(int x,int y){}
}
C.class Point{
public Point(){}
public Point(int x){}
public Point(int x,int y){}
}
D.class Point{
public Point(){}
public Point(int x){}
public int Point(int x,int y){}
}
public Point(){}
public Point(int x){}
public Point(int y){}
}
B.class Point{
public Point(){}
public void Point(int x){}
public Point(int x,int y){}
}
C.class Point{
public Point(){}
public Point(int x){}
public Point(int x,int y){}
}
D.class Point{
public Point(){}
public Point(int x){}
public int Point(int x,int y){}
}
正确答案:C
本题考查构造方法的重载
本题考查构造方法的重载
构造方法的重载,需要遵守构造方法和重载的语法要求。
语法要求如下:
* 构造方法方法名必须与类名相同
* 构造方法可以有参数,可以根据传参的方式,初始化对象的成员变量
* 构造方法的定义不能有返回值类型,即使void也不可以使用
* 一个类可以定义多个构造方法,方法名都与类名相同,参数不同,即为重载
选项A,错误,类中出现了两个相同方法的定义
选项B,错误,构造方法不可以有返回值类型
选项C,正确
想想D,错误,构造方法不可以有返回值类型
17.
(单选题)分析如下Java代码,如果想在控制台上输出"B类的test()方法",
则在1处应填入( )。
class A {
public void test() {
System.out.println("A类的test()方法");
}
}
class B extends A {
public void test() {
System.out.println("B类的test()方法");
}
public static void main(String args[]) {
// 1
}
}
(单选题)分析如下Java代码,如果想在控制台上输出"B类的test()方法",
则在1处应填入( )。
class A {
public void test() {
System.out.println("A类的test()方法");
}
}
class B extends A {
public void test() {
System.out.println("B类的test()方法");
}
public static void main(String args[]) {
// 1
}
}
A.A a = new B();
a.test();
B.A a = new A();
a.test();
C.B b = new A();
b.test();
D.B.test();
a.test();
B.A a = new A();
a.test();
C.B b = new A();
b.test();
D.B.test();
正确答案:A
本题考查面向对象的特性之一多态。
本题考查面向对象的特性之一多态。
实现多态的条件是继承和重写,定义父类型的引用指向子类的对象
本题中类B继承了类A,子类中重写了父类的方法test()。
选项A,在继承和重写的前提下,父类A类型的引用变量a指向了子类
B创建的对象。a.test(),会调用子类中的test()方法,会满足题目要求
选项A正确。
18.
(单选题)在java中,下列程序的输出结果是( )。
class Point {
int x;
boolean y;
void output(){
System.out.println(x);
System.out.println(y);
}
public static void main(String[] args) {
Point point =new Point();
point.output();
}
}
(单选题)在java中,下列程序的输出结果是( )。
class Point {
int x;
boolean y;
void output(){
System.out.println(x);
System.out.println(y);
}
public static void main(String[] args) {
Point point =new Point();
point.output();
}
}
A.编译错误
B.0
true
C.0
false
D.0
0
B.0
true
C.0
false
D.0
0
正确答案:C
本题考查成员变量默认初始化
本题考查成员变量默认初始化
成员变量会被默认的构造方法默认初始化,int默认值为0,boolean默认初始为false
值,选项C正确。
19.
(单选题)System.out.println(3+4+"tedu"+3+4);
的打印结果:( )
(单选题)System.out.println(3+4+"tedu"+3+4);
的打印结果:( )
A.34tedu34
B.7tedu7
C.7tedu34
D.34tedu7
B.7tedu7
C.7tedu34
D.34tedu7
正确答案:C
本题考查程序的执行顺序。
本题考查程序的执行顺序。
输出语句中,先执行3+4,结果是7,再执行7+"tedu",结果是7tedu
再+3,结果是7tedu3,在加4,结果是7tedu34
选项C正确
20.
(单选题)以下程序运行结果是:
class Demo {
int x;
public static void main(String[] args) {
Demo d = new Demo();
d.x = 8;
show(d);
System.out.println("x="+d.x);
}
public static void show(Demo d) {
d.x = 7;
}
}
(单选题)以下程序运行结果是:
class Demo {
int x;
public static void main(String[] args) {
Demo d = new Demo();
d.x = 8;
show(d);
System.out.println("x="+d.x);
}
public static void show(Demo d) {
d.x = 7;
}
}
A.x=8
B.会出现语法编译错误
C.x=7
D.以上都不对
B.会出现语法编译错误
C.x=7
D.以上都不对
正确答案:C
本题考查调用带有引用类型的参数
本题考查调用带有引用类型的参数
调用带有引用类型的参数,传递的是对象的引用,方法中操作该参数,操作的
是传递到该方法中的具体对象。
本题目中,创建一个对象,变量d存储了该对象在内存中的地址信息,通过
d.x = 8,修改了该对象的x值,然后调用show()方法,将该引用传递给show方法
show()方法中,再次修改了该对象的x值为7,所以最后运行结果x=7
选项C正确
21.
(单选题)给出以下代码,请问该程序的运行结果是( )。
public abstract class AbstractClass{
public AbstractClass(){
System.out.printIn("abstract class constructor!");
}
public void aMethod(){
System.out.printIn("method in the abstract class");
}
}
(单选题)给出以下代码,请问该程序的运行结果是( )。
public abstract class AbstractClass{
public AbstractClass(){
System.out.printIn("abstract class constructor!");
}
public void aMethod(){
System.out.printIn("method in the abstract class");
}
}
A.代码编译失败,因为抽象类不能有构造器。
B.代码编译失败,因为当类不存在抽象方法时,是不能定义为抽象类的。
C.代码编译成功,并且因为该类实际上不是抽象类,因此可以被实例化。
D.代码编译成功,但不能被实例化。可以被扩展为非抽象类,子类的构造器可以调用抽象父类的构造器。
B.代码编译失败,因为当类不存在抽象方法时,是不能定义为抽象类的。
C.代码编译成功,并且因为该类实际上不是抽象类,因此可以被实例化。
D.代码编译成功,但不能被实例化。可以被扩展为非抽象类,子类的构造器可以调用抽象父类的构造器。
正确答案:D
本题考查抽象类
本题考查抽象类
选项A错误,编译成功,抽象类是可以有构造器的。
选项B错误,编译成功,抽象类中可以没有抽象方法,但是如果一个类中有抽象方法
这个类必须是抽象类。
选项C错误,编译成功,但是只要是抽象类,就不能创建对象。
选项D正确,抽象类不能被实例化,只能由其子类实例化。
22.
(单选题)下列程序运行结果是( )。
public class Test {
String str=new String("tedu");
char[]ch={'x','y','z'};
public static void main(String args[]){
Test t = new Test();
t.change(t.str,t.ch);
System.out.print(t.str+" and ");
System.out.print(t.ch);}
public void change(String str,char ch[]){
str="tarena";
ch[0]='w';
}
}
(单选题)下列程序运行结果是( )。
public class Test {
String str=new String("tedu");
char[]ch={'x','y','z'};
public static void main(String args[]){
Test t = new Test();
t.change(t.str,t.ch);
System.out.print(t.str+" and ");
System.out.print(t.ch);}
public void change(String str,char ch[]){
str="tarena";
ch[0]='w';
}
}
A.tedu and xyz
B.tarena and xyz
C.tedu and wyz
D.tarena and wyz
B.tarena and xyz
C.tedu and wyz
D.tarena and wyz
正确答案:C
本题考查方法的调用
本题考查方法的调用
调用带有引用数据类型参数的方法,传的是引用,当在方法中操作该引用,被传递的参数所指向的对象将发生变化。
本题中,调用change()方法,传递一个字符串类型引用,和数组对象的引用,方法中
将字符串引用重新指向了一个新的字符串对象,源字符串对象不会发生变化。还是
tedu,而方法中对数组的操作,改变了源数组中第1个元素,源数组被改变后为
wyz,所以本题选项C正确
23.
(单选题)下列()选项添加到空白处,可以输出乘法表的语句。
for(int i=1;i<=9;i++){
//空白处
System.out.println();
}
(单选题)下列()选项添加到空白处,可以输出乘法表的语句。
for(int i=1;i<=9;i++){
//空白处
System.out.println();
}
A.for(int j=1;j<=9;j++){
System.out.print(j+"*"+i+"="+j*i+" ");
}
B.for(int j=1;j<i;j++){
System.out.print(j+"*"+i+"="+j*i+" ");
}
C.for(int j=1;i<=j;j++){
System.out.print(j+"*"+i+"="+j*i+" ");
}
D.for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+j*i+" ");
}
System.out.print(j+"*"+i+"="+j*i+" ");
}
B.for(int j=1;j<i;j++){
System.out.print(j+"*"+i+"="+j*i+" ");
}
C.for(int j=1;i<=j;j++){
System.out.print(j+"*"+i+"="+j*i+" ");
}
D.for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+j*i+" ");
}
正确答案:D
此题考查嵌套循环的用法,嵌套循环外层执行一次,内层要执行整个循环,内存循环中的循环变量与外层的循环变量
此题考查嵌套循环的用法,嵌套循环外层执行一次,内层要执行整个循环,内存循环中的循环变量与外层的循环变量
选项A会出现每次i的值都与1~9相乘
选项B会打印出不完整的乘法表
选项C会无限循环
选项D正确
24.
(单选题)int x = 10;
x = x++ +10;
System.out.println(x);
程序会输出( )。
(单选题)int x = 10;
x = x++ +10;
System.out.println(x);
程序会输出( )。
A.11
B.10
C.21
D.20
B.10
C.21
D.20
正确答案:D
本题考查后++程序的执行顺序
本题考查后++程序的执行顺序
代码x = x++ + 10;执行顺序如下
1、先执行x+10,结果为20
2、再执行x++,x值为11
3、将第一步结果赋值给x,x=20;
选项D正确
25.
(单选题)给出下面的代码段 :
public class Base{
int w, x, y ,z;
public Base(int a,int b) {
x=a; y=b;
}
public Base(int a, int b, int c, int d) {
// ...
w=d;
z=c;
}
}
在代码// ... 处写入如下哪个代码是正确的?( )。
(单选题)给出下面的代码段 :
public class Base{
int w, x, y ,z;
public Base(int a,int b) {
x=a; y=b;
}
public Base(int a, int b, int c, int d) {
// ...
w=d;
z=c;
}
}
在代码// ... 处写入如下哪个代码是正确的?( )。
A.Base(a,b);
B.x=a, y=b;
C.this(a);
this(b);
D.this(a,b);
B.x=a, y=b;
C.this(a);
this(b);
D.this(a,b);
正确答案:D
本题考查this关键字的使用。
本题考查this关键字的使用。
在构造函数中,调用构造函数的时候,必须使用this调用,而且必须是构造函数中的第一条语句,选项AC错误,选项B中,x=a必须使用分号结尾。选项D正确。
26.
(单选题)下列关于JAVA程序运行过程说法正确的是( )。
(单选题)下列关于JAVA程序运行过程说法正确的是( )。
A.Java源程序由JVM直接解释运行
B.Java源程序扩展名为.class,要先经过编译,生成扩展名为.java的字节码文件
C.Java 源程序由不同的平台直接运行,并可查看程序的运行结果
D.Java程序的运行必须经过编写 、编译 、运行 三个步骤。
B.Java源程序扩展名为.class,要先经过编译,生成扩展名为.java的字节码文件
C.Java 源程序由不同的平台直接运行,并可查看程序的运行结果
D.Java程序的运行必须经过编写 、编译 、运行 三个步骤。
正确答案:D
本题考查Java程序的运行过程
本题考查Java程序的运行过程
Java程序的运行必须经过编写 、编译 、运行 三个步骤。
编写是指在Java开发环境中进行程序代码的输入,最终形成后缀名为.java的Java源文件。编译是指使用Java编译器对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节码文件。运行是指使用Java解释器JVM将字节码文件翻译成机器代码,执行并显示结果。
选项A B C均错误,D正确
27.
(单选题)下列程序输出结果是( )。
class Super {
public static void m1() {
System.out.println("m1 in Super"); }
public void m2() {
System.out.println("m2 in Super"); }}
class Sub extends Super {
public static void m1() {
System.out.println("m1 in Sub"); }
public void m2() {
System.out.println("m2 in Sub"); }}
public class TestMain {
public static void main(String args[]) {
Super sup = new Sub();
sup.m1();
sup.m2();
Sub sub = (Sub) sup;
sub.m1();
sub.m2(); }}
(单选题)下列程序输出结果是( )。
class Super {
public static void m1() {
System.out.println("m1 in Super"); }
public void m2() {
System.out.println("m2 in Super"); }}
class Sub extends Super {
public static void m1() {
System.out.println("m1 in Sub"); }
public void m2() {
System.out.println("m2 in Sub"); }}
public class TestMain {
public static void main(String args[]) {
Super sup = new Sub();
sup.m1();
sup.m2();
Sub sub = (Sub) sup;
sub.m1();
sub.m2(); }}
A.m1 in Sub
m2 in Sub
m1 in Sub
m2 in Sub
B.m1 in Super
m2 in Super
m1 in Sub
m2 in Sub
C.m1 in Sub
m2 in Sub
m1 in Super
m2 in Super
D.m1 in Super
m2 in Sub
m1 in Sub
m2 in Sub
m2 in Sub
m1 in Sub
m2 in Sub
B.m1 in Super
m2 in Super
m1 in Sub
m2 in Sub
C.m1 in Sub
m2 in Sub
m1 in Super
m2 in Super
D.m1 in Super
m2 in Sub
m1 in Sub
m2 in Sub
正确答案:D
静态方法可以被继承和隐藏 而不能够被重写,因此不能实现多态,不能实现父类的引用可以指向不同子类的对象进行多态调用。
静态方法可以被继承和隐藏 而不能够被重写,因此不能实现多态,不能实现父类的引用可以指向不同子类的对象进行多态调用。
选项D正确
28.
(单选题)对于给定数组 int[] arr = {25,12,37,9,11,19};计算数组中元素的最大值,下列选项中
正确的是( )。
(单选题)对于给定数组 int[] arr = {25,12,37,9,11,19};计算数组中元素的最大值,下列选项中
正确的是( )。
A.int max = arr[0];
for(int i=1;i<arr.length){
if(max<arr[i]){
max = arr[i];
}
}
B.int max = arr[0];
for(int i=1;i<=arr.length;i++){
if(max<arr[i]){
max = arr[i];
}
}
C.int max = arr[0];
for(int i=1;i<arr.length-1;i++){
if(max<arr[i]){
max = arr[i];
}
}
D.int max = arr[0];
for(int i=1;i<arr.length;i++){
if(max<arr[i]){
max = arr[i];
}
}
for(int i=1;i<arr.length){
if(max<arr[i]){
max = arr[i];
}
}
B.int max = arr[0];
for(int i=1;i<=arr.length;i++){
if(max<arr[i]){
max = arr[i];
}
}
C.int max = arr[0];
for(int i=1;i<arr.length-1;i++){
if(max<arr[i]){
max = arr[i];
}
}
D.int max = arr[0];
for(int i=1;i<arr.length;i++){
if(max<arr[i]){
max = arr[i];
}
}
正确答案:D
本题考查for循环的使用和如何操作数组
本题考查for循环的使用和如何操作数组
选项A会出现编译错误,for循环中,缺失表达式3,错误
选项B中,数组的最大下标值为数组长度-1,会出现数组越界异常,错误
选项C中,通过for循环访问数组元素,会缺失最后一个元素
选项D 正确
29.
(单选题)下列选项中语法完全正确的是( )。
(单选题)下列选项中语法完全正确的是( )。
A.public static void main(String args){
x = 30;
int y = 50;
int z = x+y;
System.out.println(z);
}
B.public static void main(String args){
x = 30;
int y;
int z = x+y;
System.out.println(z);
}
C.public static void main(String args){
int x = 30;
int y = 50;
int z = x+y;
System.out.println(z);
}
D.public static void main(String args){
int x = 30;
int y = 50;
z = x+y;
System.out.println(z);
}
x = 30;
int y = 50;
int z = x+y;
System.out.println(z);
}
B.public static void main(String args){
x = 30;
int y;
int z = x+y;
System.out.println(z);
}
C.public static void main(String args){
int x = 30;
int y = 50;
int z = x+y;
System.out.println(z);
}
D.public static void main(String args){
int x = 30;
int y = 50;
z = x+y;
System.out.println(z);
}
正确答案:C
选项A,x=30,变量x缺失类型,错误
选项A,x=30,变量x缺失类型,错误
选项B,变量y没有赋值,不可参与运算,错误
选项C , 符合Java变量的语法要求,正确
选项D,变量z缺失类型,错误
30.
(单选题)下列程序输出结果是( )。
char c = 'a'; // 'a' 的int值为97
if(c>100){
System.out.println('A');
}else if(c>90){
System.out.println('B');
}else if(c>80){
System.out.println('C');
}else{
System.out.println('D');
}
(单选题)下列程序输出结果是( )。
char c = 'a'; // 'a' 的int值为97
if(c>100){
System.out.println('A');
}else if(c>90){
System.out.println('B');
}else if(c>80){
System.out.println('C');
}else{
System.out.println('D');
}
A.A
B.B
C.C
D.D
B.B
C.C
D.D
正确答案:B
本题考查if语句
本题考查if语句
If语句结构之一if...else if...else if.....else,此结构执行流程为,当出现表达式
结果为true,即执行语句体,整个if结构运行结束
本题中,char c = 'a',c对应的ASCII值为97
97>90结果为true,打印字符B,其他语句体不再执行,选项B正确
31.
(多选题)Java中的继承,如下说法正确的是( )。
(多选题)Java中的继承,如下说法正确的是( )。
A.Java支持接口之间的多继承,也支持类之间的多继承。
B.Java中只支持单继承,即一个类只能有一个父类.
C.当两个类存在所属关系(is a),才使用继承(is a,是一个。 说明该类是某类的一个特殊例子,简单之称为继承。)
D.使用继承,可以使类之间产生关系,提供了多态的特性。
B.Java中只支持单继承,即一个类只能有一个父类.
C.当两个类存在所属关系(is a),才使用继承(is a,是一个。 说明该类是某类的一个特殊例子,简单之称为继承。)
D.使用继承,可以使类之间产生关系,提供了多态的特性。
正确答案:BCD
选项A,错误,继承可以提高代码的复用,但是两个类之间,如果没有所属关系,不可以使用继承
选项A,错误,继承可以提高代码的复用,但是两个类之间,如果没有所属关系,不可以使用继承
选项BCD正确
32.
(多选题)下列对面向过程和面向对象描述正确的是( )
(多选题)下列对面向过程和面向对象描述正确的是( )
A.面向对象以功能为核心,使用函数封装。
B.面向过程以功能为核心,使用函数封装。
C.面向对象以事物为核心,将具体的数据和功能封装到事物中。
D.面向过程以事物为核心,将具体的数据和功能封装到事物中。
B.面向过程以功能为核心,使用函数封装。
C.面向对象以事物为核心,将具体的数据和功能封装到事物中。
D.面向过程以事物为核心,将具体的数据和功能封装到事物中。
正确答案:BC
本题考查面向过程和面向对象的区别
本题考查面向过程和面向对象的区别
“面向过程”是一种以过程为中心的编程思想。
就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向过程其实是最为实际的一种思考方式,就是算面向对象的方法也是含有面向过程的思想.可以说面向过程是一种基础的方法.它考虑的是实际的实现.一般的面向过程是从上往下步步求精.所以面向过程最重要的是模块化的思想方法.
面向过程可以说是从细节处思考问题。
“面向对象”(Object Oriented,简称OO)是一种以事物为中心的编程思想。
面向对象的方法主要是把事物给对象化,对象包括属性与行为.当程序规模不是很大时,面向过程的方法还会体现出一种优势,因为程序的流程很清楚,按着模块与函数的方法可以很好的组织.面向对象也可以说是从宏观方面思考问题
选项BC正确
33.
(多选题)请选出属于JDK的组成部分( )。
(多选题)请选出属于JDK的组成部分( )。
A.支持JAVA程序运行的一组类库
B.JVM
C.支持JAVA程序开发的一组开发工具
D.一组软件测试工具
B.JVM
C.支持JAVA程序开发的一组开发工具
D.一组软件测试工具
正确答案:ABC
JDK:JAVA开发工具集,包含JAVA程序的运行环境和辅助JAVA开发的一组开发工具。运行环境又包括一组类库和JVM
JDK:JAVA开发工具集,包含JAVA程序的运行环境和辅助JAVA开发的一组开发工具。运行环境又包括一组类库和JVM
34.
(多选题)下列关于Linux操作系统,描述正确的是( )。
(多选题)下列关于Linux操作系统,描述正确的是( )。
A.Linux 是一个开源的操作系统 是一个类似Unix的操作系统
B.Linux 是主流的服务器操作系统,广泛应用于互联网、云计算、智能手机等领域
C.Linux 中的相对路径,使用“.”表示上一级目录,“..”表示当前路径
D.Linux 中使用"pwd"命令显示当前工作目录的内容
B.Linux 是主流的服务器操作系统,广泛应用于互联网、云计算、智能手机等领域
C.Linux 中的相对路径,使用“.”表示上一级目录,“..”表示当前路径
D.Linux 中使用"pwd"命令显示当前工作目录的内容
正确答案:AB
本题考查对Linux操作系统的基本了解和命令的使用
本题考查对Linux操作系统的基本了解和命令的使用
Linux是一套免费使用和自由传播的类Unix操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个开源的类Unix的操作系统。A选项正确
Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机,是主流的服务器操作系统 B选项正确
"."表示当前路径,“..”表示上一级路径 C选项错误
常用命令中,pwd用于显示当前工作目录 D选项错误
35.
(多选题)Eclipse是Java常用的集成开发工具,下列对Eclipse描述正确的是:()。
(多选题)Eclipse是Java常用的集成开发工具,下列对Eclipse描述正确的是:()。
A.Eclipse可以通过插件(plugin)的方式扩展其功能。
B.Eclipse联盟是由IBM公司捐资组建的。
C.Eclipse使用了SWT图形界面技术。
D.Eclipse中采用自动对Java源程序编译
B.Eclipse联盟是由IBM公司捐资组建的。
C.Eclipse使用了SWT图形界面技术。
D.Eclipse中采用自动对Java源程序编译
正确答案:ABD
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,Eclipse 是商业软件公司
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,Eclipse 是商业软件公司
36.
(多选题)下面关于数组的说法中,正确的是( )。
(多选题)下面关于数组的说法中,正确的是( )。
A.在类中声明一个整数数组作为成员变量,如果没有给它赋值,数值元素值为空
B.数组可以在内存空间连续存储任意一组数据
C.数组必须先声明,然后才能使用
D.数组本身是一个对象
B.数组可以在内存空间连续存储任意一组数据
C.数组必须先声明,然后才能使用
D.数组本身是一个对象
正确答案:CD
本题考查数组的基本使用
本题考查数组的基本使用
数组中元素如果是数值元素初值为0值,数组中元素类型必须一致,数组必须先声明
再使用,数组在内存中以对象的形式存在。选项CD正确。
37.
(多选题)下列对Java变量的使用说法正确的是( )
(多选题)下列对Java变量的使用说法正确的是( )
A.声明变量可以指定数据类型,也可以不指定
B.变量名采用任意命名的方式,尽量做到见名知意
C.局部变量声明后,要为其赋一个确定的初值后再使用
D.变量是指在内存中开辟的存储空间中存放的运算过程中需要用到的数据。
B.变量名采用任意命名的方式,尽量做到见名知意
C.局部变量声明后,要为其赋一个确定的初值后再使用
D.变量是指在内存中开辟的存储空间中存放的运算过程中需要用到的数据。
正确答案:CD
选项A错误,Java中的变量声明,必须指定数据类型
选项A错误,Java中的变量声明,必须指定数据类型
选项B错误,Java中的变量命名必须符合标识符的规则
选项C、D说法正确
38.
(多选题)循环统计1到100之间能被7整除的整数的个数,
代码输出正确的是:()。
(多选题)循环统计1到100之间能被7整除的整数的个数,
代码输出正确的是:()。
A.int y = 1;
int count = 0;
while(y<=100){
if(y/7==0)
count++;
y++;
}
System.out.println(count);
B.int y = 1;
int count = 0;
while(y<=100){
if(y%7==0)
count++;
y++;
}
System.out.println(count);
C.int count = 0;
for(int i=1;i<=100;i++){
if(i%7==0)
count++;
}
System.out.println(count);
D.int count = 0;
for(int i=1;i<=100;i++){
if(i/7==0)
count++;
}
System.out.println(count);
int count = 0;
while(y<=100){
if(y/7==0)
count++;
y++;
}
System.out.println(count);
B.int y = 1;
int count = 0;
while(y<=100){
if(y%7==0)
count++;
y++;
}
System.out.println(count);
C.int count = 0;
for(int i=1;i<=100;i++){
if(i%7==0)
count++;
}
System.out.println(count);
D.int count = 0;
for(int i=1;i<=100;i++){
if(i/7==0)
count++;
}
System.out.println(count);
正确答案:BC
题目要求7的整数倍,所以应该选择模的运算
题目要求7的整数倍,所以应该选择模的运算
A,D选项都是除的运算
39.
(多选题)给定java代码如下所示,在1处新增下列( )方法,是对show方法的重载
public class Test{
public void show(int x, int y, int z) { }
//1
}
(多选题)给定java代码如下所示,在1处新增下列( )方法,是对show方法的重载
public class Test{
public void show(int x, int y, int z) { }
//1
}
A.public int show(int x,int y,float z){return 0;}
B.public int show(int x,int y,int z){return 0;}
C.public void show(int x,int z){}
D.public viod show(int z,int y,int x){}
B.public int show(int x,int y,int z){return 0;}
C.public void show(int x,int z){}
D.public viod show(int z,int y,int x){}
正确答案:AC
本题考查方法的重载规则
本题考查方法的重载规则
方法的重载必须满足方法名相同和参数不同(类型或个数)
选项AC满足重载的条件正确
选项BD参数都与定义的方法参数相同,不是重载。
40.
(多选题)下列关于封装的说法正确的是( )。
(多选题)下列关于封装的说法正确的是( )。
A.封装思想的体现之一就是将属性私有化,提供公共的方法访问私有属性
B.属性的访问方法包括setter方法和getter方法
C.通常情况下,setter方法用于给属性赋值,getter方法用于获取属性的值
D.包含属性的类都必须将属性私有化,即使用private修饰,否则无法通过编译
B.属性的访问方法包括setter方法和getter方法
C.通常情况下,setter方法用于给属性赋值,getter方法用于获取属性的值
D.包含属性的类都必须将属性私有化,即使用private修饰,否则无法通过编译
正确答案:ABC
本题考查与封装相关的语法现象
本题考查与封装相关的语法现象
封装是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。
选项ABC正确,规范的实体类设计。
选项D,错误,类中的属性,从语法规则上,可以有非private属性,不会出现语法
编译错误
41.
(多选题)下列选项中可以实现无限循环的是:()。
(多选题)下列选项中可以实现无限循环的是:()。
A.for(;;){}
B.while(true){}
C.do{}while(true);
D.for(int i=0;i++){}
B.while(true){}
C.do{}while(true);
D.for(int i=0;i++){}
正确答案:ABC
此题考查无限循环的语法。
此题考查无限循环的语法。
选项D有编译错误,缺少分号,不满足for循环的基本语法要求
42.
(多选题)下列对java中关键字final的说法正确的是( )。
(多选题)下列对java中关键字final的说法正确的是( )。
A.关键字final可以修饰类,方法,变量。
B.final修饰的类,称为final类,类中方法必须使用final修饰
C.类中被final修饰的方法,在其子类中不能被重写
D.类中的变量如果使用static和final修饰,必须声明同时初始化,不可被改变
B.final修饰的类,称为final类,类中方法必须使用final修饰
C.类中被final修饰的方法,在其子类中不能被重写
D.类中的变量如果使用static和final修饰,必须声明同时初始化,不可被改变
正确答案:ACD
本题考查final的用法
本题考查final的用法
* final可以修饰类,方法,和变量
* final修饰方法,不可以被重写
* final修饰类,该类不能被继承
* final修饰的变量,为常量,不可改变
选项ACD正确。
选项B错误,final的类中,没有对方法是否final的限定。
43.
(多选题)对如下数组,说法正确的是( )。
int [] arr = {12,23,34,45,56,67};
(多选题)对如下数组,说法正确的是( )。
int [] arr = {12,23,34,45,56,67};
A.获取数组中第三个元素的语法是arr[3]
B.获取数组中第三个元素的语法是arr[2]
C.该数组的最后一个元素的下标值为arr.length
D.该数组的最后一个元素的下标值为arr.length-1
B.获取数组中第三个元素的语法是arr[2]
C.该数组的最后一个元素的下标值为arr.length
D.该数组的最后一个元素的下标值为arr.length-1
正确答案:BD
该题目考查数组元素和长度的访问
该题目考查数组元素和长度的访问
数组中元素通过其下标访问语法为arr[0],
数组中元素下标从0开始,该题目中A,B
都是要求访问第三个元素,数组中第三个元素
下标为2,所以B正确。
数组元素下标从0开始,数组长度使用leng属性获取
所以最后一个元素的下标值为arr.length-1,D选项正确
44.
(多选题)下列关于JDK的说法正确的是( )
(多选题)下列关于JDK的说法正确的是( )
A.开发一个Java程序,需要完整的JDK
B.运行一个Java程序,需要完整的JDK
C.运行一个Java程序,只需要JDK中的JRE
D.以上说法都不对
B.运行一个Java程序,需要完整的JDK
C.运行一个Java程序,只需要JDK中的JRE
D.以上说法都不对
正确答案:AC
本题考查JDK的组成和每个组成部分的功能
本题考查JDK的组成和每个组成部分的功能
JDK是Java语言的软件开发工具包,其中包括JRE和一组开发工具
选项A,开发一个JAVA程序,需要开发工具,所以需要完整的JDK,正确
选项B,运行一个Java程序只需要JRE 错误
选项C,运行一个Java程序,只需要JDK中的JRE 正确
选项D,A C 选项是正确的,所以该选项是错误的
45.
(多选题)下列switch语句会输出哪些字符:( )。
int i1 = 97;
int i2 = 65;
switch (i1-i2) {
case 30:
System.out.println('A');break;
case 31:
System.out.println('B');break;
case 32:
System.out.println('C');
default:
System.out.println('D');break;
}
(多选题)下列switch语句会输出哪些字符:( )。
int i1 = 97;
int i2 = 65;
switch (i1-i2) {
case 30:
System.out.println('A');break;
case 31:
System.out.println('B');break;
case 32:
System.out.println('C');
default:
System.out.println('D');break;
}
A.A
B.B
C.C
D.D
B.B
C.C
D.D
正确答案:CD
switch语句块中,表达式的值匹配到case语句中的常量值,会执行对应的
switch语句块中,表达式的值匹配到case语句中的常量值,会执行对应的
case中的语句,如果case语句以break语句结束,会跳出swithc语句,如果没有break,会继续执行该case后的case语句。
本题中,表达式结果为32,会打印字符C,但是该case没有使用break语句,程序还会继续执行,所以会输出C,D字符
46.
(多选题)给出以下代码,请问该程序的运行结果是什么?
class A{
private int x=0;
static int y=1;
protected int z=2;
}
class B extends A{
void method(){
System.out.println(x);
System.out.println(y);
System.out.println(z);
}
}
下列说法正确的是( )。
(多选题)给出以下代码,请问该程序的运行结果是什么?
class A{
private int x=0;
static int y=1;
protected int z=2;
}
class B extends A{
void method(){
System.out.println(x);
System.out.println(y);
System.out.println(z);
}
}
下列说法正确的是( )。
A.程序编译错误,因为类B不能访问变量x。
B.程序编译成功,打印输出012。
C.程序编译错误,如果移走System.out.println(x)这条语句,
可使编译程序通过。
D.程序编译错误,因为变量x未在类B中定义。
B.程序编译成功,打印输出012。
C.程序编译错误,如果移走System.out.println(x)这条语句,
可使编译程序通过。
D.程序编译错误,因为变量x未在类B中定义。
正确答案:ACD
本题考查java中几种访问修饰符
本题考查java中几种访问修饰符
public:公共的,可以在任何类中访问
protected:受保护的,只能在同一个包中,或子类中访问
default:只能在同一个包中的类中访问
private:私有的,只能在本类中访问的
本题代码中,变量x是私有的,不能在类外部访问,ACD正确。
47.
(多选题)Java中,下列说法正确的是( )。
(多选题)Java中,下列说法正确的是( )。
A.私有方法不能被重载
B.静态方法能被重载
C.公有方法被重写之后,可以使用private修饰。
D.一个重写的方法不能抛出在父类中不被检查的异常。
B.静态方法能被重载
C.公有方法被重写之后,可以使用private修饰。
D.一个重写的方法不能抛出在父类中不被检查的异常。
正确答案:BD
本题考查Java中方法的重载和重写。
本题考查Java中方法的重载和重写。
类中的方法,任意方法都可以被重载。只要满足方法名相同,参数不同,即可
实现重载。
选项A错误。
选项B正确。
选项C错误,子类重写父类的方法,子类的方法访问修饰符的访问权限必须大于或等于父类的访问修饰符的权限。
选项D正确,子类重写父类的方法,子类的方法抛出的异常类型必须是父类方法抛出异常类型或其子类型。如果父类方法没有定义异常,子类重写的方法也不可以抛出异常。
48.
(多选题)下列程序中不会出现编译错误的是( )
(多选题)下列程序中不会出现编译错误的是( )
A.short s1 = 3;
short s2 = 5;
s1 += s2;
B.short s1 = 3;
short s2 = 5;
s1 = s1+s2;
C.short s1 = 3;
short s2 = 5;
s1 = s1 * s2;
D.short s1 = 3;
short s2 = 5;
s1 *= s2 ;
short s2 = 5;
s1 += s2;
B.short s1 = 3;
short s2 = 5;
s1 = s1+s2;
C.short s1 = 3;
short s2 = 5;
s1 = s1 * s2;
D.short s1 = 3;
short s2 = 5;
s1 *= s2 ;
正确答案:AD
本题考查扩展赋值运算符。
本题考查扩展赋值运算符。
Java的扩展赋值运算符,+=,-=,*=,/=, %=
x+=y等价于x=x+y,其他同理。
除了以上语法现象外,使用扩展赋值运算符运算的时候,内部隐含强制转换。
如果出现需要类型转换,扩展赋值运算符直接进行转换。
选项B C都出现相同错误,计算结果都是int类型,都需要从int类型强制转换到short类型 选项AD都使用扩展赋值运算符运算,自动强制转换
AD正确
49.
(多选题)下列关于do....while循环说法正确的是:
(多选题)下列关于do....while循环说法正确的是:
A.do....while循环,循环体至少执行一次
B.do....while循环和while循环只是语法不同,没区别
C.do....while循环先执行循环体,再执行boolean表达式,如果为true再执行循环体
D.以上说法都正确
B.do....while循环和while循环只是语法不同,没区别
C.do....while循环先执行循环体,再执行boolean表达式,如果为true再执行循环体
D.以上说法都正确
正确答案:AC
本题考查do....while循环的用法和while循环的区别。
本题考查do....while循环的用法和while循环的区别。
while和do....while的区别如下:
while循环先判断再执行;
do....while循环先执行一次循环体,再判断。
当初始条件不满足循环条件时,while循环一次都不会执行;
do....while循环不管任何情况都至少执行一次,所以选项AC正确