《JAVA程序设计》期末考试试题
《JAVA程序设计》期末考试试题
在Java语言中,下列哪个变量名是不正确的 ( )
(A) large (B) 2much
(C) $money (D) _postCode
关于抽象类下列哪个描述正确? ( )
抽象类不能包含抽象方法。
接口和抽象类是一回事。
抽象类不能实例化,即不能生成对象。
抽象类可以实例化对象。
3. 以下对封装的描述正确的是( )
(A) 只能对一个类中的方法进行封装,不能对属性性进行封装 (B) 如果子类继承了父类,对于父类中进行封装的方法,子类仍然可以直接调用 (C) 封装的意义不大,因此在编码时尽量不要使用 (D) 封装的主要作用在于对外隐藏内部实现细节,增强程序的安全性
4. 下面关于Applet的说法正确的是: ( )
Applet也需要main方法
Applet必须继承java.awt.Applet
Applet能访问本地文件
Applet程序不需要编译
5.以下对继承的描述错误的是( )
(A) Java中子类只能继承单个父类。 (B) Java中子接口只能继承单个接口。 (C) Java中子类可以实现多个接口。 (D) 当实例化子类时会先实例化父类。
6.在使用super 和this关键字时,以下描述正确的是( ) (A) 在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过 (B) super()和this()不一定要放在构造方法内第一行 (C) this()和super()可以同时出现在一个构造函数中 (D) this()和super()可以在static环境中使用,包括static方法和static语句块
7. 如果有一个对象myListener, 为了使myListener对象能够接受并处理来自于smallButton按钮对象的点击动作事件,myListener对象应该实现哪个接口? ( )
(A)ActionListener
(B)ItemListener
(C)MouseListener
(D)WindowListener
8. 下列情况中,不会使线程返回所持有的对象锁的是( )
(A) 当synchronized()语句块执行完毕
(B) 当调用了线程的suspend()方法 (C) 当在synchronized()语句块中出现异常(exception)
(D) 当持有锁的线程调用该对象的wait()方法
9.下列代码执行结果是什么? ( )
String s1 = \”ccc\”;
s1.concat(\”fff\”);
System.out.println(s1);
The string \”ccc\”.
The string \”cccfff\”.
The string \”fff\”.
The string \”fffccc\”
10. 当变量x是哪些值的时候输出包括\”Message 2\”,选出最完整的答案? ( )
switch(x)
{ case 1 :
System.out.println(\”Message 1\”);
case 2 :
case 3 :
System.out.println(\”Message 2\”);
case 4 :
System.out.println(\”End\”);
}
(A) 3 (B) 1 或 2 或 3 或 4
(C) 1 或 2 或 3 (D) 4
1.请简述String和StringBuffer的联系和区别。
2.请简述抽象类和接口的区别。
1. 请写出以下程序的输出结果。
public class Demo{
public static void main(String[] args) {
Integer a = new Integer(1);
Integer b = new Integer(2);
if(a==b)
System.out.println(“true”);
else
System.out.println(“false”);
}
}
2. 下面的代码执行结果是什么?
public class TestThis{
private int i=0;
TestThis increment(){
i++;
return this;
}
void print(){
System.out.println(i);
}
public static void main(String[] args){
TestThis x = new TestThis();
x.increment().increment().increment().print();
}
}
3.下列程序输出什么?
class J {
static void swap(String s0, String s1) {
String s = s0;
s0 = s1;
s1 = s;
}
public static void main(String args[]) {
String[] s = { \”1\”, \”2\” };
swap(s[0], s[1]);
System.out.println(s[0] + s[1]);
}
}
4. 读程序,写出正确的运行结果。
public class test {
static int m = 9;
public static void main(String[] args) {
test fd1 = new test();
fd1.m++;
test fd2 = new test();
System.out.println(fd1.m + “,” + fd2.m);
}
}
5. 阅读下列代码,写出运行结果。
public class Demo {
public static void main(String[] args) {
int i = 12;
System.out.println(i += i -= i *= i);
}
}
6. 阅读以下程序,写出运行结果。 class Q1{ public static void main(String args[ ]){ double d=1.23; Dec dec=new Dec( ); dec.decrement(d); System.out.println(d); } classs Dec{ public void decrement(double decMe){ decMe = decMe - 0.1; } }
四. 阅读程序,回答问题。(20分)
如果有这样一个Java源文件如下,阅读程序,回答下面几个问题:
public class Shelf{
public static void main(String[] arguments) {
System.out.println(\”Shelf!\”);
Book b = new Book();
b.get();
}
}
class Book {
public void get() {
System.out.println(\” book!\”);
}
}
class Student {
public void read() {
System.out.println (\”read a book!\”);
}
}
(1) 请写出这个文件的完整名称(3分)
(2) 请写出在命令行上如何编译这个文件(3分)
(3) 请写出这个文件编译后产生几个类文件(2分),它们的完整名称分别是什么?(6分)
(4) 请写出在命令行上如何运行这个程序?(2分)
(5) 这个程序的运行结果是什么?(4分)
Java程序设计试卷
JAVA程序设计试卷库(第5套)
一、单选题(每小题 2 分,共 20 分)
1、Java Application源程序的主类是指包含有( A )方法的类。
A. main方法 B. toString方法
C. init方法 D. actionPerfromed方法
2、分析下面的程序段,下面的哪个描述是正确的。( B )
char mychar=’c’;
switch(mychar){
default:
case ‘a’: System.out.println(“a”);break;
case ‘b’: System.out.println(“b”);break;
}
A. switch语句块是错误的,因为switch后面的表达式值的类型不是整数;
B. switch语句块是正确的;
C. switch语句块是错误的,因为default没有放在语句块的最后面;
D. 代码运行时,没有任何输出结果。
3、编译并运行下面的Java程序,将产生( B )结果。
class A{
int var1=1;
int var2;
public static void main(String[] args){
int var3=3;
A a=new A();
System.out.println(a.var1+a.var2+var3);
}
}
A. 0 B. 4
C. 3 D. 代码无法编译,因为var2根本没有被初始化
4、在Java中,下面关于包的陈述中正确的是( D )。
A. 包的声明必须是源文件的任意位置;
B. 包的声明必须紧跟在import语句的后面;
C. 只有公共类才能放在包中;
D. 可以将多个源文件中的类放在同一个包中
5、 在Java语言中,当一个类的某个变量声明为protected时下列说法正确的是( C )。
A. 只有同一类中的成员才能访问它;
B. 不同包中的任何其他类都能够访问它;
C. 同包中的任何其他类能够访问它;
D. 不同包中的子类不可以访问该变量。
6、在Java中,执行下面的语句后,c的值为( D )。
String s= \”Jessica \”;
char c=s.charAt(6);
A. \”c \” B. \”a \”
C. \’c \’ D. \’a \’
7、设有下面两个赋值语句:
a = Integer.parseInt(“1024”);
b = Integer.valueOf(“1024”).intValue();
下述说法正确的是( D )。
A.a是整数类型变量,b是整数类对象。
B.a是整数类对象,b是整数类型变量。
C.a和b都是整数类对象并且它们的值相等。
D.a和b都是整数类型变量并且它们的值相等。
8、事件剪裁类如WindowAdapter(它实现了WindowListener接口)的优点是什么? ( C )。
A. 继承了那个类的所有行为 ;
B. 子类自动成为监听器;
C. 没有必要实现不使用的任何WindowListener接口中定义的方法;
D.可以自动充当事件的监听者。
9、在用Java构建动画时,(C )方法创建新线程并启动它运行。
A. init() B. start()
C. run() D. paint()
10、下面哪一个选项能正确地创建一个InputStreamReader对象( A )。
A.new InputStreamReader(new FileInputStream(“data”))
B.new InputStreamReader(new FileReader(“data”))
C.new InputStreamReader(new BufferedReader(“data”))
D.new InputStreamReader(“data”)
二、填空题(每空格1分,共15分)
1、阅读下面的程序片段,在①中,parent类与child类之间是继承关系;在②中,parent类与child类之间包含。
① class parent{
int fields;
}
class child extends parent{
int fieldChild;
}
② class child{
int fieldsChild;
}
class parent {
child myChild;
}
2、Java中的多态有两种方式:子类对父类方法的覆盖、同类中方法的重载。
3、下面程的输出结果是:?吗对,上海自来水来自海上
public class turnString {
public static void main(String args[]) {
String s=“上海自来水来自海上,对吗?” ;
for(int i=s.length( )-1;i>=0;i++)
System.out.println(s.charAt(i));
System.out.println():
}
}
4、Applet的init( )方法仅在开始时执行一次?start( )方法在用户每次访问包含Applet的HTML文件时都被调用?
5、创建一个FlowLayout的对象fd,使应用该布局管理器的各个组件都向右对齐排列。该对象的创建语句为:FlowLayout fd=new FlowLayout(FlowLayout.RIGHT);。
6、java.net包中定义的两个类Socket、ServerSocket;分别用来实现双向连接的Client和Server端。
7、巳知a=14,b=3,则表达式a<<b运算结果为:112;。
8、写出运行下面程序片段后的屏幕输出:0 1 2 i=3。
int i;
for(i=0;i<5;i++)
{
if(i==3)
break;
System.out.print(i+” ”);
}
System.out.println(“i=”+i)
9、在Java Application程序中,一个类是主类的标志是包含main( )方法,在Java Applet程序中,一个类是主类的标志是该类是Applet类的子类;。
10、多态的概念是一个程序中同名的不同方法共存的情况。。
三、判断改错题(每题2分,共20分)(正确的打√,错误的打×并说明原因)
1、 Java系统包提供了很多预定义类,我们可以直接引用它们而不必从头开始编写程序。 (√ )
2、 程序可以用字符‘*’替代一个TextField中的每个字符的显示,使别人看不出其中的具体内容。( √)
3、 Class1类的属性被private修饰符修饰为私有变量,所以方法不能访问它。(×,Class1类自身的方法可以访问这个私有变量。 )
4、 如果p是父类Parent的对象,而c是子类Child的对象,则语句c=p是正确的。(×,如果p实际代表的是一个子类对象的引用,可以用强制类型转换成c=(Child)p;否则不能把父类对象赋值给子类对象。 )
5、 如果希望程序能够处理所有的异常,包括未知的异常,可以在所有的catch块后面加下catch(Exception e){}。(√ )
6、 TextComponent是一个抽象类,它的两个子类TextField和TextArea才拥有具体的对象。( √)
7、 一个Applet程序在运行过程中,创建的Frame窗框,当Applet或浏览器关闭时也会自动跟着关闭。(×,Frame与Applet平级,不受Applet的关闭的影响。 )
8、 判断下面程序片段的正确性。(×,Vector对象的addElement( )方法的参数类型为对象,所以myv.addElement(i)应改为所以myv.addElement(new Integer(i)); )
import java.util.*;
public class UseVector{
public static void main(String args[])
{
Vector myv=new Vector( );
for(int i=0;i<10;i++)
myv.addElement(i);
}
}
9、 在Applet中显示一幅图像,首先要把它调入内存,保存在一个Image对象中,然后调用drawImage()方法画出这个图像。(√)
10、挂起、阻塞或等待的线程都能够恢复运行,但是停止运行的线程将不可能再运行(√)。
四、问答题(每小题10分,共30分)
1、 阅读下面的程序片段,并回答问题。
① Class1被称为是Class2的什么?Class2被称为是Class1的什么?
② Class1有哪些属性和方法?Class2有哪些属性和方法?其中哪些与Class1的属性和方法有关?
class Class1
{
int field1;
private int field2;
void method1( )
{
System.out.println(“我是Class1的第一个方法”);
}
void method2( )
{
System.out.println(“我是Class1的第二个方法”);
}
}
class Class2 extends Class1{
int fieldChild1;
void methodchild1()
{
System.out.println(“我是Class2的第一个方法”);
}
}
1、 阅读下面的程序片段,并回答问题。
① Class1被称为是Class2的什么?Class2被称为是Class1的什么?
答:Class1被称为Class2的父类,Class2被称为是Class1的子类。
② Class1有哪些属性和方法?Class2有哪些属性和方法?其中哪些与Class1的属性和方法有关?
答:Class1包括属性field1和field2,方法method1和method2;Class2包括自身定义的属性fieldChild1和自身定义的方法methodChild1,以及它从父类继承来的属性field1和方法method1、method2。
2、写出下面程序的功能
import java.applet.Applet;
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class DataType extends Applet implements ActionListener
{ Label prompt=new Label(\”请分别输入整数和浮点数:\”);
TextField input_int=new TextField(6);
TextField input_double=new TextField(6);
TextField output=new TextField(35);
int getInt; double getDouble;
public void init() {
add(prompt); add(input_int); add(input_double);
add(output); output.setEditable(false); input_double.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
getInt=Integer.parseInt(input_int.getText());
getDouble=Double.parseDouble(input_double.getText());
output.setText(\”您输入了整数: \”+getInt+\”和浮点数:
\”+getDouble);
}
}
2、写出下列程序完成的功能
答:功能:从图形界面输入一个整数和一个浮点数,然后将其输出来。
3、 说明下面程序段是否有误,如有误,请将错误的地方指出来,并改正
Interface MyInterface
{
void method1();
}
abstract class Parent implements MyInterface
{ }
class Child extends Parend
{
void method1()
{
System.out.println(“I am implemented now!”);
}
}
3、说明下面程序是否有误,如有误,请将错误的地方指出来,并改正
答:接口中的方法都是public ,所以重载方法也必须声明为public.
class Child extends Parend
{
{
System.out.println(“I am implemented now!”);
}
}
五、用Java语言编写程序。(共15分)
假设用户输入一组整数被保存在Vector对象中,请定义一个类vecSort,用来求Vector对象中整数中的最大和最小数据。
要求:
1、 根据题目给出vecSort类应包含的属性和方法(5分)
2、 用Java语言定义类vecSort(10分)
五、用Java语言编写程序。(共15分)
参考代码:
class vecSort{
int max,min;
Vector x=new Vector();
vecSort(Vector y)
{
for(int i=0;i<y.size() ;i++)
x.addElement(y.elementAt(i) );
}
int getmax()
{ max=((Integer)(x.elementAt(0))).intValue() ;
for(int i=1;i<x.size();i++)
if(max<((Integer)(x.elementAt(i))).intValue())
max=((Integer)(x.elementAt(i))).intValue();
return max;
}
int getmin()
{ min=((Integer)(x.elementAt(0))).intValue() ;
for(int i=1;i<x.size();i++)
if(min>((Integer)(x.elementAt(i))).intValue())
min=((Integer)(x.elementAt(i))).intValue();
return min;
}
}
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。