一、选择题。
2. main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( )?
A、public static void main( )
B、p( String args[] )
C、public static int main(String [] arg )
D、public void main(String arg[] )
答:B
4.下列哪个是合法的Java标识符?( )
A、Tree&Glasses B、FirstJavaApplet
C、_$theLastOne D、273.5
答:B 、 C
5.Java Application源程序的主类是指包含有( )方法的类。
A、main方法 、toString方法
C、init方法 、actionPerfromed方法
答:A
6.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用( )个比特位。
A、8 B、16 C、32 D、
答:B
7.设 a = 8,则表达式 a >>> 2 的值是(。
、1、2、3、4
答:B
8.若a的值为3时,下列程序段被执行后,c的值是多少?( )
c = 1;
if ( a>0 ) if ( a>3 ) c = 2; else c = 3; else c = 4;
A、1 B、2 C、3 D、4
答:C
9.在编写Java Application程序时,若需要使用到标准输入输出语句,必须在程序的开头写上(语句。
A、import java.awt.* ; B、
、import java.io.* ; D、
答:C
10.对于构造函数,下列叙述正确的是( )。
A、构造函数是类的一种特殊函数,它的方法名必须与类名相同。
B、构造函数的返回类型只能是void型。
C、构造函数的主要作用是完成对类的对象的初始化工作。
D、一般在创建新对象时,系统会自动调用构造函数。
答:A C D
11.下面的是关于类及其修饰符的一些描述,正确的是:( )。
A、abstract类只能用来派生子类,不能用来创建abstract类的对象。
B、final类不但可以用来派生子类,也可以用来创建final类的对象。
C、abstract不能与final同时修饰一个类。
D、abstract方法必须在abstract类中声明,但abstract类定义中可以没
有abstract方法。
答:A C D
13.若在某一个类定义中定义有如下的方法: abstract void performDial( );
该方法属于( )。
A、本地方法 B、最终方法 C、解态方法 D、抽象方法
答:D
14. 下列关于静态初始化器的叙述中,哪一个是正确的?( )
A、静态初始化器是在构造函数之前加上static修饰符。
B、静态初始化器是对类自身进行初始化。
C、静态初始化器在同一个类中只能有一个。
D、静态初始化器是在其所属的类加载内存时由系统自动调用执行。
答:B D
15.不使用static修饰符限定的方法称为对象(或实例)方法,下列哪一个说法是正确的?( )
A、实例方法可以直接调用父类的实例方法。
B、实例方法可以直接调用父类的类方法。
C、实例方法可以直接调用其他类的实例方法。
D、实例方法可以直接调用本类的类方法。
答:B D
16.设有下面两个类的定义:
class Person { class Student extends Person {
long id; // 身份证号 int score; // 入学总分
String name; // 姓名 int getScore(){
} return score;
}
}
问:类Person和类Student的关系是( )。
A、包含关系 B、继承关系
C、关联关系 D、无关系,上述类定义有语法错误
答:B、
17. 设有下面的两个类定义:
class AA {
void Show(){ System.out.println(“我喜欢Java!”);
}
class BB extends AA {
void Show(){ System.out.println(“我喜欢C++!”);
}
则顺序执行如下语句后输出结果为:( )
AA a; BB b;
a.Show(); b.Show();
A、我喜欢Java! B、我喜欢C++!
我喜欢C++! 我喜欢Java!
C、我喜欢Java! D、我喜欢C++!
我喜欢Java! 我喜欢C++!
答:A
19.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为( )。
A、隐藏 B、覆盖 C、重载 D、Java不支持此特性
答:C
20. 对于构造函数,下列叙述正确的是( )。
A、构造函数也允许重载。
B、子类无条件地继承父类的无参构造函数。
C、子类不允许调用父类的构造函数。
D、在同一个类中定义的重载构造函数可以相互调用。
答:A B D
22.设有下面两个赋值语句:
a = Integer.parseInt(“1024”);
b = Integer.valueOf(“1024”).intValue();
下述说法正确的是( )。
A、a是整数类型变量,b是整数类对象。
B、a是整数类对象,b是整数类型变量。
C、a和b都是整数类对象并且它们的值相等。
D、a和b都是整数类型变量并且它们的值相等。
答:D
24.下面的语句的作用是:( )。
Vector MyVector = new Vector(100,50);
A、创建一个数组类对象MyVector,有100个元素的空间,每个元素的初值为50。
B、创建一个向量类对象MyVector,有100个元素的空间,每个元素的初值为50。
C、创建一个数组类对象MyVector,有100个元素的空间,若空间使用完时,以50
个元素空间单位递增。
D、创建一个向量类对象MyVector,有100个元素的空间,若空间使用完时,以50
个元素空间单位递增。
答:D
25.在Java中,存放字符串常量的对象属于( )类对象。
A、Character B、String
C、StringBuffer D、Vector
答:B
31.对于子类的构造函数说明,下列叙述中不正确的是( )。
A、子类无条件地继承父类的无参构造函数。
B、子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函
数,但这个调用语句必须是子类构造函数的第一个可执行语句。
C、在创建子类的对象时,将先执行继承自父类的无参构造函数,然后再执行
自己的构造函数。
D、子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数。
答:D
二、填空题。
2. 设x = 2 ,则表达式 ( x + + ) * 3 的值是 。
答:6
3. 若x = 5,y = 10,则x > y和x <= y的逻辑值分别为 和 。
答:false、true
4. 顺序执行以下两个语句的输出结果是: 。
“我喜欢学习Java!”
System.out.println(s.length( ));
答:10
5. 据程序的构成和运行环境的不同,Java源程序分为两大类: 程序和 程序。
答:Java Application 、 Java Applet ( 或 Application、Applet )
6. 如果一个Java源程序文件中定义有4个类,则使用Sun公司的JDK编译器javac编译该源程序文件将产生 个文件名与类名相同而扩展名为 的字节码文件。
答:4、class
7. 开发与运行Java程序需要经过的三个主要步骤为 、
和 。
答:编辑源程序、编译生成字节码、解释运行字节码
9. 一个Java Application源程序文件名为MyJavaApplication.java,如果使用Sun公司的Java开发工具JDK编译该源程序文件并使用其虚拟机运算这个程序的字节码文件,应该顺序执行如下两个命令:
、
。
答:j、java MyJavaApplication
10. 在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码字符占用 字节内存空间,这样,无论是中文字符还是英文字符,每个都是占用 字节内存空间。
答:2、2
11. 在Java程序中定义的类有两种成员: 、 。
答:域成员、方法成员
13. 创建一个名为 MyPackage 的包的语句是 ,
该语句应该放在程序的位置为: 。
答:package MyPackage ; 应该在程序第一句。
14. 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。 方法是不能被当前
类的子类重新定义的方法。
答:抽象方法、最终方法 (或 abstract方法、final方法)
15. 形式参数指的是方法被 时的参数行,实际参数是方法被
时所传递进去的变量或值。
答:定义、调用
16. 多态是指 ,在Java中有两种多态,一种是使用方法的 实现多态,另一种是使用方法的 实现多态。
答:一个程序中有多个同名的不同方法 覆盖 重载
17. 在Java程序中,通过类的定义只能实现 重继承,但通过接口的定义可以实现 重继承关系。
答:单、多
19. 字符串分为两大类,一类是字符串常量,使用 类的对象表示;另一类是字符串变量,使用 类的对象表示。
答:String、StringBuffer
20. 设有数组定义:i , 80 , 90 , 100 };
则执行以下几个语句后的输出结果是 。
int s = 0 ;
for ( int i = 0 ; i < MyIntArray.length ; i + + )
System.out.println( s );
答:550
三、写出下列程序完成的功能。
1.
{ double sum = 0.0 ;
}
答:计算 1/1+1/2+1/3+...+1/100 的值。
2.import java.io.* ;
{ public static void main(String args[ ])
{ int i , n =10 ;
输入一个整数
-1 ; i >= 0 ; i ―― )
System.out.print(a[i]+" ");
}
答:从标准输入(即键盘)读入10个整数存入整型数组a中,然后逆序输出这10个整数。
4. import java.io.*;
public class Class1
{
public static void main(String args[ ]){
Max = Min = a[0];
if ( a[i] } } 答:在数组中查找并输出最大值和最小值。 5. public class ABC { public static void main(String args[ ]){ int i , j ; int a[ ] = { 12,67,8,98,23,56,124,55,99,100 }; System.out.print(a[i]+" "); } } 答:使用选择法对数组a的数据进行升序排序,然后输出排序后的结果。 6.import java.io.*; public class Class1 { public static void main( String args[] ) { Fact N = new Fact( 4 ); System.out.println( N.fact( ) ); } } class Fact { int n ; Fact( int nn ) { n = nn; } int fact( ) { int i , f = 1; for ( i=1; i<=n; i++ ) f = f*i; return f; } } 答:定义一个计算n!的类Fact,然后主类中创建一个对象求解4!的值。 8. import java.io.*; public static void main( String args[ ] ) { SubClass a = new SubClass( 10,3 ); System.out.println( a.exp( )); } class SuperClass { float x; } class SubClass extends SuperClass { SubClass( float xx , int nn ) { super( xx , nn ); } float exp( ) { float s = 1; for ( int i = 1; i<=n; i++ ) s = s*x; return s; } } 答:定义一个计算xn的类,然后用该类求103的值。 10. public class abc { public static void main(String args[]) { SubClass sb = new SubClass( ); class SubClass extends SuperClass { int max( ) { return ((a>b)?a:b); } } 答:求两个数的最大值。 四、写出下面程序的运行结果。 1. public class abc { AB s = new AB("Hello! System.out.println(s.toString( )); } } AB( String str1 , String str2 ) { s1 = str1; s2 = str2; } public String toString( ) { return s1+s2;} } 答:Hello! I love JAVA. 2. public class abc public static void main(String args[ ]) { int i , s = 0 ; 答:s = 180 3. public static void main(String args[ ]) int a,b; class SubClass extends SuperClass { super(aa,bb); class SubSubClass extends SubClass { int a; } } 答:a=60 b=20 c=30 4. public class abc 答:Hello!World! 5. import java.io.* ; public class ABC { } 答:110 110 110 110 110 6. import java.io.*; class Parent { void printMe() { System.out.println("parent"); } } class Child extends Parent { void printMe() { System.out.println("child"); } void printAll() { super.printMe(); this.printMe(); printMe(); } } public class Class1 { public static void main(String args[ ]) { Child myC = new Child( ); myC.printAll( ); } } 答:parent child child 五、使用Java语言编写程序。 1. 编写一个字符界面的Java Application 程序,接受用户从键盘输入的一个正整数,然后统计并输出从1到这个正整数的累加和。 答:参考程序如下: import java.io.*; public class SUM { int i , n=-1 , sum=0 ; br = new BufferedReader( new InputStreamReader(System.in)); n = Integer.parseInt(br.readLine( )); } catch ( IOException e ) { } ; } 2. 编写一个字符界面的Java Application 程序,接受用户输入的10个整数,并输出这10个整数的最大值和最小值。 答:参考程序如下: import java.util.*; public class MaxMin{ public static void main(String[] args){ Scanner input = new Scanner(System.in); int a[] = new int[10]; int max; int min; for(int i=0;i<=9;i++) a[i] = input.nextInt(); max = min = a[0]; for(int i =1;i<=9;i++) {if(a[i]>=max) max = a[i]; if(a[i]<=min) min = a[i]; } System.out.println("max = "+max+"\\n"+"min = "+min); } } 4. 编写一个学生类 Student ,要求: (1) 学生类 Student 属性有: i型,代表学号 name : String类对象,代表姓名 a型,代表年龄 s型,代表性别(其中:true表示男,false表示女) phone : String类对象,代表联系电话 (2) 学生类 Student的方法有: Student(long i , String n , int a , boolean s , long p) : 有参构造函数,形参表中的参数分别初始化学号、姓名、 年龄、性别和联系电话。 int getAge() ( ) : 获取年龄作为方法的返回值。 boolean getSex( ) ( ) : 获取性别作为方法的返回值。 long getPhone ( ) : 获取联系电话作为方法的返回值。 public String toString( ) : 以 姓名:联系电话 的形式作为方法的返回值。 答:参考程序段如下: class Student { long id; String name; int age; boolean sex; long phone; Student( long i , String n , int a , boolean s , long p ){ age = a; sex = s; phone = p; } int getAge(){ return age; } boolean getSex(){ return sex; } long getPhone() { return phone; } public String toString(){ return name+" : "+phone; } }