资源描述
第1章java语言概述习题
一、 填空题
1、面向对象程序的主要特征:继承,__封装___,___多态 _____。
2、java中的继承机制之所以能够降低程序的复杂性,提高程序的效率,主要是 因为它使代码可以__重用或复用___.
3、java语言中,为将源代码翻译成 __字节码__文件时产生的错误称为编译错误,而将程序在运行中产生的错误称为运行错误。
4、javac是java语言中的编译器,基本语法是:javac[选项] __文件名__,java是java语言中的解释执行器,基本语法是:java[选项]___类名___.
5、java语言的主要贡献者是谁 James gosling
二、 单选题
1、 编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B)。
A、java B、.class C、html D、.exe
2、main方法是Java Application程序执行的入口点,关于main方法的方法首部,
以下(B)项是合法的。
A、public static void main()
B、public static void main(String args[])
C、public static int main(String[] arg)
D、public void main(String arg[])
三、判断
1、Java语言具有较好的安全性和可移植性及与平台无关等特性。√
2、Java语言的源程序不是编译型的,而是编译解释型的。√
四、问答题
1、编写、运行java程序需要经过哪些主要步骤?
答:1.编写源文件,扩展名必须是.java
2.编写java源程序,使用java编译器编写源文件,得到字节码文件
3.运行java程序,使用javaSE平台只不过的java解释器来解释执行字节码文件。
2、阅读下列java源代码文件,并回答问题
public class Speak{
void speakHello(){
System.out.println("I'm glad to meet you");
}
}
class Xiti8{
public static void main(String args[]){
Speak sp=new Speak();
sp.speakHello();
}
}
(1)上述源文件的名字是什么?Speak.java
(2)上述源文件编译后生成几个字节码文件,这些字节码文件的名字分别是什么?Speak.class Xiti8.class
第2章(1)基本数据类型练习题
一、填空题
1、java基本数据类型中整型,字符型分别占用字节数为___4___,___2____.
2、java语言中的浮点数根据数据存储长度和数值精度的不同,进一步分为_ float__和__double__两种具体类型。
3、 Java中的浮点类型有两类,分别是float和double类型,其中float取7___位有 效数据,double取_15__位有效数据。
4、布尔类型常量只有两个__true___和__false____,其中前者表示逻辑真,后者表示逻辑假。
5、浮点型常量又称实型常量,用于表示有小数部分的十进制数,它有两种表示形式:__小数形式____和__指数形式______。
6、java语言中的各种数据类型之间提供自动转换,如第一种操作数为byte,而第二种操作数为float,则其结果是__float___类型。
7、java语言的各种数据类型之间提供两种转换,分别是__自动转换__和_强制转换____。
8、开发与运行Java程序需要经过的三个主要步骤为 编写源程序 、编译生成字节码文件 和 解释运行字节码文件 。
9、 Java程序中的单行注释符是(// ),多行注释符是( /* */ )。
10、Java中布尔类型的常量有两种,它们是( true )和(false)。
11、Java中用于定义小数的关键字有两个:( float ) 和 ( double ),后者精度高于前者。
二、多选
1、下面有关char类型数据的定义中,正确得是_BE_______?
A. char ch = “a”; B. char ch = ‘\’ ‘;
C. char ch = ‘cafe’; D. char ch = “cafe”;
E. char ch = ‘\ucafe’; F. char ch = ‘\u10100’;
G. char ch = (char) true;
三、判断
1、Java语言使用的是Unicode字符集,每个字符在内存中占8位。 ×,16位
2、Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。√
四、单选
1、以下哪个不是Java的基本数据类型( B)
A、int B、Boolean C、float D、char
2、如下哪个是Java中有效的关键字( c )
A、name B、hello C、false D、good
第2章(2)数组练习题
一、填空题
1、当声明一个数组int arr[] = new int[5]; 时,这代表这个数组所保存的变量类型是(int),数组名是(arr),数组的大小为(5),数组元素下标的使用范围是(0-4)。
二、多选
1、定义如下的二维数组b,下面的说法正确的是(ACD )。
int b[][]={{1, 2, 3}, {4, 5},{6, 7, 8}}};
A) b.length的值是3。 B)b[1].length的值是3。
B) C)b[1][1]的值是5。 D) 二维数组b的第一行有3个元素
三、单选
1、以下哪项是main方法的正确形参?( B)
A、String args B、String ar[] C、Char arg D、StringBufferargs[]
2、 有整型数组:int[] x={12,35,8,7,2};,则调用方法Arrays.sort(x)后,数组x中的元 素值依次是(A ).
A) 2 7 8 12 35 B) 12 35 8 7 2 C) 35 12 8 7 2 D) 8 7 12 35 2
3、 应用程序Test.java的源程序如下,在命令行键入:java Test aaa bb c,回车后输出的结果是 ( A)。
public class Test {
public static void main(String args[]) {
int k1=args.length;
int k2=args[1].length();
System.out.print(k1+" "+k2);
}
}
A) 3 2 B)1 2 C) 1 3 D) 3 3
4、 关于下面代码的说法(C)是正确的?
public class Example{
public static void main(String[] args){
int[] arr= new int[10]; System.out.println(arr[1]);
}
}
A、 编译时产生错误
B、编译时正确,运行时将产生错误
C、输出零
D、输出空(null)
第3章(1)运算符&表达式&if语句练习题
一、填空
1、Java中,除了_字符型____和___布尔型__外,其他的所有的基本数据类型都支持加,减,乘,除四则运算。
2、短路逻辑运算符包括___&&___和___||___。
3、Java提供了&,&&和|,||运算符,除了一点外,&运算符和&&运算符在使用中 完全相同,|运算符和||运算符也相同。它们的不同点在于:__&__运算符和___| 运算符中的两个运算对象都要运算。
4、顺序执行以下两个语句的输出结果是:__10_____。
String s=”我喜欢学习java!”;
System.out.println(s.length());
5、 下面代码定义了两个整型变量和一个字节型变量,则将num1+num2的值赋给 num3变量的语句是______num3=(byte)(num1+num2)_______。
int num1 = 53;
int num2=47;
byte num3;
6、下面代码中,“Type”应该换成什么类型__double______?
public class ReturnIt {
return Type methodA(byte x, double y) {
return (long)x / y * 2;
}
}
7、Java语言提供了两条基本的分支选择语句:_if___语句和switch____语句
8、以下程序段的输出结果为Message four
int x=0,y=4, z=5;
if ( x>2){
if (y<5){
System.out.println("Message one");
}
else {
System.out.println("Message two");
}
}
else if(z>5){
System.out.println("Message three");
}
else {
System.out.println("Message four");
}
二、单选
1、下面选项中,__D___的值与3*4的值相等?
A. 3/2 B. 3<2 C. 3*2^2 D. 3<<2
2、 下面选项中,D_____的值与16/2^12的值相等?
A. 16>4 B. 16/2 C. 16*4 D. 16>>2 E. 16>>>2
3、 有以下方法的定义,请选择该方法的返回类型( D)。
ReturnType method(byte x, double y) {
return (short) x/y*2;
}
A、byte B、short C、int D、double
第3章(2)switch&循环语句练习题
一、填空题
1、设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以下几个语句后的输出结果是 120 。
int s = 0 ;
for (int i = 0 ; i < MyIntArray.length ; i + + )
if ( i % 2 = = 1 )
s += MyIntArray[i] ;
System.out.println(s); //s=20+40+60
2、 下面程序段的执行结果是( 6 5 4 3 2 )
int a[] = { 2, 3, 4, 5, 6 };
for (int i = a.length - 1; i >= 0; i--)
System.out.print(a[i] + ""); //从大到小排序
3、以“java Sub 3”运行以下程序的结果是:3th season __。
public class Sub{
public static void main(String[] args) {
int i=Integer.parseInt(args[0]);
switch(i) {
case 1: System.out.println("First season"); break;
case 2: System.out.println("Second season"); break;
case 3: System.out.println("3th season"); break;
case 4: System.out.println("Last season"); break;
}
}
}
4.switch(X)中,X可以接受的类型有_byte____,____char___,short,int。
5、以下程序段的输出结果为
_value is two_
value is three ______。
int j=2;
switch ( j ) {
case 2: System.out.print(“Value is two.”);
case 2+1 : System.out.println(“Value is three.”); break; default: System.out.println(“value is “+j); break;
}
6.如果x=2;则下面程序执行后的结果是_34_____?
switch (x) {
case 1: System.out.println(1);
case 2: case 3: System.out.print(3);
case 4: System.out.println(4);
}
7、 下面代码执行结束后l和j的值分别是___5,6___?
public static void main(String[] args) {
int j=10;
int l=1;
do{
if(l++>--j) continue;
}while(l<5);
}
8、 下面程序序的运行结果为( 20)
class test{
public static void main(String args[]){
int sum=0;
for(int i=0;i<10;i++){
if(i%2==0)
sum+=i;
else continue;
}
System.out.println(sum);
}
}
二、单选
1、应用程序的main方法中有以下语句,则输出的结果是 (B )。
int b[][]={{1}, {2,2}, {2,2,2}};
int sum=0;
for(int i=0;i<b.length;i++) {
for(int j=0;j<b[i].length;j++) {
sum+=b[i][j]; } }
System.out.println("sum="+sum);
A) 32 B)11 C) 2 D) 3
2、 应用程序的main方法中有以下语句,则执行后输出的结果是 (D) int[] x={125,21,5,168,98};
int max=x[0];
for(int i=1;i<x.length;i++){
if(x[i]> max) max =x[i];
}
System.out.println(max);
A) 125 B) 5 C) 98 D) 168
第4章(1)类和对象练习题
一、填空
1、面向对象程序的主要特征:继承,____封装___________,___多态___________。
2、____构造方法_是类中的一种特殊方法,用来定义对象的初始状态。
3、构造方法在__创建对象__时被调用。
4、系统类Math的random()方法可用来产生0-1.0之间的实数,则产生一个50
-100之间的整数的程序语句是_(int)Math.random()*50+50______。
5、下面代码执行结束之后,打印出来的结果是__4____?
public class Happy {
public static void main(String args[]) {
int i=4; int j=2; methodA(i,j);
}
System.out.println(i);
}
static public void methodA(int i,int j) {
i<<=j;
}
}
☆6、在java语言中,有一个类是所有类和接口的父类,这个类的名称是java.lang.Object(Object)_____。
7、构造方法在__创建对象__时被调用。
8、java运行系统通过垃圾回收机制/GC____周期性的释放无用对象所占用的内存,以完成对象的消除。
9、阅读以下程序,输出结果为_1.23___。
class Q1{
public static void main(String args[ ]){
double d=1.23;
Dec dec=new Dec( );
dec.decrement(d);
System.out.println(d);
}
}
class Dec{
public void decrement(double decMe){
decMe = decMe -0.1;
}
}
10、阅读程序
public class Test{
int x=12; public void method1(int x){
x+=x;
System.out.println(x);
}
}
如果有如下的代码段:
Test t=new Test();
t.method1(5);
程序执行到这个地方,代码输出结果是__10___?
11、定义在类中的变量为_成员变量___,它不需要进行显式的初始化,定义在方法中的变量为__局部变量__,它需要进行显式的初始化。
12、面向对象的模型中,最基本的概念是__类_和_对象__。
二、多选题
13、下面选项中,__AC_______是合法的构造方法的重载?//无返回值
public class ConstOver {
public ConstOver (int x, int y, int z) { }
}
A. ConstOver ( ) { }
B. Protected int ConstOver ( ) { }
C. Private ConstOver (int z, int y, byte x) { }
D. Public Object ConstOver (int x, int y, int z) { }
E. Public void ConstOver (byte x, bytey, byte z) { }
14、下面说法中___AC___是对方法setVar()重载的方法。
public class MethodOver {
public void setVar (int a, int b, float c) { }
}
A. Private void setVar (int a, float c, int b) { }
B. Protected void setVar (int a, int b, float c) { }
C. Public int setVar (int a, float c, int b) {return a;}
D. Public int setVar (int a, int b, float c) {return a;}
E. Protected float setVar (int a, int b, float c) {return c;}
第4章(2)可变参数,static与this练习题
一、填空题
1、在下面程序划线处填入适当的内容。
class MyClass{
static int var=100;
____static
public static___
int getVar() { return var;
}
}
2、 以下程序段的输出结果为int version______ 。
class Cruncher{ void crunch( int i ){
System.out.println(“int version”);
}
void crunch(String s){
System.out.println(“String version”);
}
public static void main(String args[ ]){
Cruncher crun=new Cruncher ( );
char ch=’p’;
crun.crunch(ch);
}
}
3、 以下程序段的输出结果为 _Integer String____。
class IntORString{ void iosM( int i ){
System.out.print(“Integer ”);
}
void iosM(String s){
System.out.print(“String ”);
}
public static void main(String args[ ])
{
IntORString ios=new IntORString ( );
ios.iosM(‘a’);
ios.iosM(“1”);
}
}
4、如果有个类A,该类中有成员变量b和成员方法c(),则在创建该类得对象a 后,对该对象的成员变量和成员方法的调用方式分别是a.b___,__a,c()__。
5、以下代码段创建了__2_个对象,声明了_3____个变量。
Thing item, stuff;
item = new Thing();
Thing entity = new Thing();
6、 通过类MyClass中的不含参数的构造函数象obj,可通过 以下语句实现:_MyClass obj=new MyClass()________。
7、下面____AD_____情况下,系统会为类A自动产生构造函数?
A. class A { } B. class A { public A() {} }
C. class A { public A(int x) {} } D. class Z {} class A extends Z { void A() {} }
8、 请问构造函数、成员变量初始化以及静态成员变量初始化三者的先后顺序是__静态成员变量初始化,成员变量初始化,构造函数_____。
9、划线处应填的一句代码:_ this (a) _______。
public class Example{
int x,y;
public Example(int a){
x = a;
}
public Example(int a, int b){
_this (a) __________;//调用上面的一个参数的构造方法
y = b;
}
}
10. 关键字___final____表明一个对象或变量在初始化后不能被修改。
11、类是对象的抽象,是属性和操作的封装体,其中属性是事物静态特征的抽象,在程序中用数据成员描述,操作是事物动态特征的抽象,在程序中用成员方法描述。
第4章(3)包_访问权限_基本数据类型封装练习题
一、填空题
1、请填出在java.lang包中与下列基本数据类型相对应的封装类:
float:java.lang.Float, char:_java.lang.Character________ , boolean:_java.lang.Boolean __________.
2、 java中提供了四种访问控制符,分别是:public__________,___protected________,_private________,____缺省(friendly)________
3、以下程序段的输出结果为 _true ,false_________。
public class EqualsMethod {
public static void main(String[] args) {
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.print(n1= =n2);
System.out.print(“,”);
System.out.println(n1! =n2);
}
}
4、 在java中,将具有相同属性的对象抽象成_类___。然后将它按照程序设计所需要的常用方法和接口封装成__包_。
5、创建一个名为 MyPackage 的包的语句是 package Mypackage ,
该语句应该放在程序的位置为: 放在程序的第一句 。
6、 导入mypackage包中的所类的命令是 import mypackage.*;
二、 单选题
1、 不允许作为类及类成员的访问控制符的是( C )。
A. public B. private C. static D. protected
2、 为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。
A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( )
3、下列修饰符中与访问控制无关的是( D )
A. private B.Public C.protected D.final
4、 void的含义:( A )
A. 方法没有返回值 B.方法体为空
C.没有意义 D. 定义方法时必须使用
5、关于对象成员占用内存的说法哪个正确?( B )
A. 同一个类的对象共用同一段内存
B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间
C.对象的方法不占用内存
D.以上都不对
6、 定义一个类,必须使用的关键字是( B )
A、public B、class C、interface D、static
第5章(1)继承与多态练习题答案
一、 选择题
1、关于继承的说法正确的是:( B )
A、子类将继承父类所有的属性和方法。
B、子类将继承父类的非私有属性和方法。
C、子类只继承父类public方法和属性
D、子类只继承父类的方法,而不继承属性
2、this和super:( B )
A、都可以用在main()方法中
B、都是指一个内存地址
C、不能用在main()方法中
D、意义相同
3、关于super的说法正确的是:( B )
A、是指当前对象的内存地址
B、是指当前对象的父类对象的内存地址
C、是指当前对象的父类
D、可以用在main()方法中
4、覆盖与重载的关系是 ( A )
A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中
B.覆盖方法可以不同名,而重载方法必须同名
C.final修饰的方法可以被覆盖,但不能被重载
D.覆盖与重载是同一回事
5、定义一个类,必须使用的关键字是( B )
A、public
B、class
C、interface
D、static
6、如果有如下这样一段代码
class A {
A() { }
}
class B extends A {
}
请在下面项中,正确的说法是:____________ B D
A、类B的构造函数的访问权限是public
B、类B的构造函数没有参数
C、类B的构造函数中包含this()方法的调用;
D、类B的构造函数中包含super()的调用
7、下面(AD)情况下,系统会为类A自动产生构造函数?
A. class A { }
B.class A {
public A() {} }
C. class A {
public A(int x) {} }
D. class Z {}
class A extends Z {
void A() {} }
二、填空题
1、java中提供了两种用于多态的机制 重载,覆盖.
2、this代表了当前对象的引用,super表示的是当前对象的父类 对象。
3、 如果子类中覆盖了父类中的同名方法,则在子类中调用父类中的同名方法是使用关键字super。
在一个类的内部可以直接调用本类的对象,也可以使用关键字this来调用。
4.子类可以继承父类的成员变量 和成员方法,但是不能继承父类的构造函数。
5、下面代码执行后的结果是2
class Super {
public int i = 0;
public Super(String text) {
i = 1;
}
}
public class Sub extends Super {
public Sub(String text) {
super(text);
i = 2;
}
public static void main(String args[]) {
Sub sub = new Sub("Hello");
System.out.println(sub.i);
}
}
6、 如果在一个文件中有package,import以及class的定义,请给出三者在文件中的先后顺序。package,import ,class .
7.父类的final方法可以被子类重写吗?答案:不可以
第5章(2)接口练习题答案
一、选择题
1、定义一个接口必须使用的关键字是( C )
A、public B、class C、interface D、static
2、抽象方法:( C )
A、可以有方法体
B、可以出现在非抽象类中
C、是没有方法体的方法
D、抽象类中的方法都是抽象方法
3、 关于接口哪个正确?( A )
A、实现一个接口必须实现接口的所有方法 B.一个类只能实现一个接口
C.接口间不能有继承关系 D.接口和抽象类是同一回事
二、填空题
1、抽象方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。final方法是不能被当前类的子类重新定义的方法。
2、在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。
3、接口由两部分组成接口声明以及接口体。
4、接口可以看作是仅容纳抽象法以及常量,而又不能直接生成对象的特殊类。
5、用于将一个类修饰为最终类的关键字是final。用于声明一个类为抽象类的关键字是abstract。
6、abstract不能和final 共同修饰一个类。
7、 java中用extends 关键字指明继承关系.用implements关键字指明对接口的实现。
8、如果Alpha类继承Beta类,Alpha类被称为子(基)类,Beta类被称为父(超)类。
9、子类可以继承父类的成员变量 和成员方法,但是不能继承父类的构造函数。
10、下面程序的输出结果是:_ Art constructor , Drawing constructor , Cartoon constructor 。
class Art {
Art() {
System.out.println("Art constructor");
}
}
class Drawing extends Art {
Drawing() {
super();
System.out.println("Drawing constructor");
}
}
class Cartoon extends Drawing {
Cartoon() {
super();
System.out.println("Cartoon constructor");
}
public static void main(String[] args) {
Cartoon x = new Cartoon();
}
}
11、 写出以下程序的运行结果__4 ____
import java.io.*;
public class ATest{
public static void main(String args[]) {
SubClass sb = new SubClass( );
System.out.println(sb.fun( ));
}
}
class SuperClass{
int a =24 , b =5 ;
}
class SubClass extends SuperClass{
int fun( ) { return a%b;}
}
三、多项选择题
1、与第2行等价的定义方式是_____。A B
1. public interface Foo {
2. int k = 4;
3. }
A. final int k = 4;
B. public int k = 4;
C. abstract int k = 4;
D. volatile int k = 4;
展开阅读全文