Java程序设计试题及答案-JAVA程序设计习题集
Java程序设计知识包括Java语言的基础语法、结构化程序设计、面向对象程序设计。以下是由阳光网小编整理关于Java程序设计试题的内容,希望大家喜欢!
Java程序设计试题及答案(一)
一、判断题。判断下列各题是否正确,若正确,在()内打“√”,否则打“×”。
1、当前路径的标识是“.”。 √
2、java命令不区分大小写,而javac命令区分大小写。×
3、说明或声明数组时不分配内存大小,创建数组时分配内存大小。√
4、强制类型转换运算符的功能是将一个表达式的类型转换为所指定的类型。√
5、类是一种类型,也是对象的模板。√
6、Java语言会自动回收内存中的垃圾。√
7、IOException必须被捕获或抛出。√
二、不定项选择题。
1、以下关于编写、编译、运行Java 程序的步骤中,错误的是(BE)。
A、用link 将二进制目标码文件连接成可执行文件
B、用javac 将java 源文件编译成二进制目标码文件
C、用java 命令运行编译过的java 程序
D、用文本编辑器编写java 源文件
E、用javac 命令编译java 源文件
2、下面关于Java Application 程序结构特点描述中,错误的是(D )。
A、一个Java Application程序由一个或多个文件组成,每个文件中可以定义一个或多个类,每个类由若干个方法和变量组成
B、Java程序中声明有public类时,则Java程序文件名必须与public类的类名相同,并区分大小写,扩展名为.java
C、组成Java Application程序的多个类中,有且仅有一个主类
D、一个.java文件中定义多个类时,允许其中声明多个public类
3、以下关于中断控制语句的描述错误的是(D)。
A、break 语句用于中断当前的程序块,如for 结构块等的执行
B、continue 停止继续执行下面的语句,直接跳回循环起始位置
C、return 用于退出整个子程序
D、break 用于强行退出循环,不执行循环中剩余的语句
E、在一个函数中不管有没有返回值,都需要return 语句来退出函数
4、以下程序的执行结果是什么?(B)
int[] myArray=new int[3];
try{
for (int i=0; i <= myArray.length; i++){
myArray[i]=i*3 ;
System.out.println("myArray 数组的第"+ i +"个元素的值是"+myArray[i]);
}
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("数组下标越界");
}
A、程序出现异常,屏幕提示“数组下标越界”
B、程序执行,显示数组中每个元素的值,最后显示“数组下标越界”
C、程序正常执行结束,屏幕上显示数组中每个元素的值
D、程序编译出错
5、对象的有效期有多长?(B)
A、与引用变量的有效期相同,当引用变量的有效期结束时,对象也自动消失
B、从对象创建时开始,直到没有任何引用变量指向该对象时,对象失去作用,被自动回收
C、从对象创建时开始,直到编程人员用“delete”关键字删除对象为止
D、从对象创建时开始,直到程序结束
6、关于类的构造方法,以下正确的是(BC)。
A、同一个类可以有几个构造方法,各构造方法的参数必须不同
B、同一个类可以有几个构造方法,各构造方法的参数必须相同
C、当创建一个对象时,需要指明是否调用该对象的构造方法
D、构造方法的名称与类的名称相同
E、当创建一个对象时,该对象的构造方法会被自动调用
7、下列关于子类继承父类的成员描述中,错误的是(C )。
A、当子类中出现成员方法头与父类方法头相同的方法时,子类成员方法覆盖父类中的成员方法
B、方法重载是编译时处理的,而方法覆盖是在运行时处理的
C、子类中继承父类中的所有成员都可以访问
D、子类中定义有与父类同名变量时,在子类继承父类的操作中,使用继承父类的变量;子类执行自己的操作中,使用自己定义的变量
8、下列关于继承性的描述中,错误的是(C )。
A、一个类可以同时生成多个子类
B、子类继承了父类中除私有的成员以外的其他成员
C、Java支持单重继承和多重继承
D、Java通过接口可使子类使用多个父类的成员
9、关于实现接口中的方法,哪些叙述是正确的?(B)
A、类中应当实现接口中的所有方法,但方法参数可以有所不同
B、类中应包括所有接口中方法,并且方法名、返回值的类型、方法参数的个数、名称、类型都必须与接口中的对应方法相一致
C、类只能实现接口所提供的方法,而不能定义其他的方法
D、类只能实现接口的方法,而不能使用接口中的常量
10、关于抽象类的说法中正确的有(CD)。
A、只有子类覆盖了父类的所有抽象方法之后,这个子类才不是抽象类
B、抽象类只有方法,没有属性 C、抽象类的所有方法都是抽象方法
D、带有抽象方法的类为抽象类 E、抽象类不能创建对象
11、Java内部如何利用"+"号把字符串String连接在一起?(B)
A、"+"相当于append函数,在StringBuffer对象的后面添加字符串
B、Java在用"+"号进行字符连接时,是新建一个StringBuffer对象,用它来连接所有字符串,然后再转回String对象.
C、"+"号相当于append 函数,在String对象的后面添加字符串
D、只有String对象才用"+"连接符,StringBuffer对象、整数、浮点数等都不能使用"+"连接符
12、如果下列的方法能够正常运行,在控制台上将显示什么?(ACD)
public void example(){
try{
unsafe();
System.out.println("Test1");
}catch(SafeException e){
System.out.println("Test 2");
}finally{
System.out.println("Test 3");
}
System.out.println("Test 4");
}
A 、Test 1 B、 Test 2 C、 Test 3 D、 Test 4
三、简答题。
1、为什么说构造方法是一种特殊的方法?特殊在哪里?构造方法什么时候执行?被谁调用?
答:在java语言中,构造函数又称构造方法。特殊性在于,与普通方法的区别是,他与类名相同,不返回结果也不加void返回值。构造函数的作用是初始化对象,即在创建对象时被系统调用(与普通方法不同,程序不能显示调用构造函数)。构造函数还能够被重载,即可以传入参数,当程序中包含有带参的构造函数时,系统将不会再提供的无参构造函数。
构造函数特点:没有函数返回值,构造函数名与类名相同;当创建类对象的时候调用其对应的构造方法去创建
2、Java的异常处理块的形式是什么样?
答:用户程序使用throw关键字抛出异常。系统定义的异常由系统在合适的时刻自动抛出。
四、编程题。
1、给出一百分制成绩,要求输出成绩等级''A'',''B'',''C'',''D'',''E''。90分以上的为''A'',80~89分为''B'',70~79分为''C'',60~69为''D'',60分以下为''E''。
#include <stdio.h>
int main()
{ int s;
printf("请输入一个成绩:");
scanf("%d", &s);
if(s>100 || s < 0)
{
printf("输入了一个错误的成绩。\n");
return 1;
}
char ch;
switch(s/10)
{
case 10:
case 9: ch = 'A'; break;
case 8: ch = 'B'; break;
case 7: ch = 'C'; break;
case 6: ch = 'D'; break;
default:
ch = 'E'; break;
}
printf("您输入的成绩等级为:%c\n", ch);
return 0;
2、定义—个类Rectangle代表矩形,为矩形定义getLength方法(获得矩形的长度)、getWidth方法(获得矩形的宽度)、setLength方法(设置矩形的长度)、setWidth方法(设置矩形的'宽度)、getArea方法(求矩形的面积)和toString方法(显示矩形的格式),为矩形派生出一个子类Square代表正方形,并对getArea和toString进行重写。并编写程序进行测试。
public class Rectangle {
// top, left 左上角那个顶点的坐标
// width: 宽
// heigth: 长
private double top, left, width, height;
// 构造函数
public Rectangle(double top, double left, double width, double height) {
this.top = top;
this.left = left;
this.width = width;
this.height = height;
}
// 改变宽,高,即改变矩形宽高
public void size(double width, double height) {
this.width = width;
this.height = height;
}
// 计算面积,宽×高
public double area() {
return width * height;
}
//求面积
public double getMianJi(int mx,int my){
return Point.getDistance(pointA, pointB)*Point.getDistance(pointB, pointC);
}
3、卡车要装载一批货物,货物有三种商品:电视、计算机和洗衣机。需要计算出大货车承载的3种货物的重量。要求有一个ComputeWeight接口,该接口中有一个抽象方法:
public double computeWeight();
设计3个实现接口的类:Television, Computer, WashMachine。这三个类通过实现接口给出自重。
定义一个Car类,该类用ComputeWeight接口类型的数组作为成员,那么该数组的单元可以存放Television, Computer, WashMachine对象的引用。
设计程序能输出Car对象所装载的货物的总重量。
提示:可以把实现某接口的类创建的对象的引用赋值给该接口声明的接口变量。
class Television implements Compute
Weight{
private double weight;
private double
//override
public double computeWeight(){
return this.weight;
}
class Car
{
public:
Car();
Car(int Television, int Computer int WashMachine );
private:
int Television;
int Computer;
int WashMachine;
}
>>>下一页更多精彩“Java程序设计试题及答案”