java复习题

发布时间:2016-01-07 20:06:34   来源:文档文库   
字号:

江苏理工学院2012—2013学年第2学期

Java编程基础》试卷(A)答案

注意事项:

1.本试卷适用于2009级信息管理专业和2009级软件工程重修学生使用。

2.本试卷共9页,满分100分,答题时间120分钟。

1下列语句编译不会出错或警告的是( A )。

A. int i=10; B. char c="a"; C. byte b=257; D. boolean b=null;

2byte型数据表示的数值范围为( A )。

A. -128 to 127 B. -28-1 ~ 28 C. -255 to 256 D.由特定Java虚拟机确定

3.下列不属于Java中的关键字或保留字的是 B )。

A. if B. then C. goto D. while

4.下列属于非法标识符的是( A )。

A.2variable B.variable2 C. _whatavariable D.$anothervar

5.下列代码在编译运行过程中会出现的结果是( D )。

public class MyClass{

static int i;

public static void main(String argv[]){

System.out.println(i);

}

}

A.错误,因为变量i没有初始化 B. null C. 1 D. 0

6.下列代码在编译运行过程中会产生的结果是( B )。

String s=new String("Bicycle");

int iBegin=1;

char iEnd=3;

System.out.println(s.substring(iBegin,iEnd));

A. Bic B. ic C. icy D. 错误: 没有与substring(int,char)匹配的方法

7.下列代码在编译运行过程中会出现的结果是( D )。

public class Q {

public static void main(String argv[]){

double anar[]=new double[5];

System.out.println(anar[0]);

}

}

A.错误,anar初始化前被引用 B.null C. 5 D. 0.0

8.下列代码在编译运行过程中会产生的结果是( C )。

abstract class MineBase {

abstract void amethod();

static int i;

}

public class Mine extends MineBase {

public static void main(String argv[]){

int[] ar=new int[5];

for(i=0;i

System.out.print(ar[i]);

}

}

A. 00000 B. 错误,因为ar初始化前被使用

C. 错误,因为Mine没有声明为abstract,未覆盖MineBase中的amethod

D. 下标越界

9.下列代码在编译运行后输出的结果是( D )。

int i=1;

switch (i) {

case 0:

System.out.println("zero");

break;

case 1:

System.out.println("one");

case 2:

System.out.println("two");

default:

System.out.println("default");

}

A. one B. one, two C. default D. one, two, default

10.编译运行下列代码时得到的结果是( C )。

public class Tux extends Thread{

static String sName = "vandeleur";

public static void main(String argv[]){

Tux t = new Tux();

t.piggy(sName);

System.out.println(sName);

}

public void piggy(String sName){

sName = sName + " wiggy";

start();

}

public void run(){

for(int i=0;i<4; i++){

sName = sName + " " + i;

}

}

}

A. 编译出错 B."vandeleur wiggy"

C. "vandelur" D. "vandeleur wiggy 0 1 2 3"

11.编译运行下列代码时显示的结果是( C )。

import java.awt.*;

public class Butt extends Frame{

public static void main(String argv[]){

Butt MyBut=new Butt();

}

Butt(){

setLayout(new BorderLayout());

Button HelloBut=new Button("Hello");

Button ByeBut=new Button("Bye");

add(HelloBut, BorderLayout.NORTH);

add(ByeBut, BorderLayout.SOUTH);

setSize(300,300);

setVisible(true);

}

}

A.两按钮占据整个框架,左边为Hello,右边为Bye B. Bye 按钮占据整个框架

C.两按钮位于框架上下方,上边为Hello,下边为Bye D. Hello按钮占据整个框架

12.下列代码在编译运行过程中会产生的结果是( C )

Integer ten=new Integer(10);

Long nine=new Long (9);

System.out.println(ten + nine);

int i=1;

System.out.println(i + ten);

A. 19 B. 10 C. 19 D.错误:不能转换整型数

20 11 11

13.下列代码在编译运行过程中会出现的结果是( D

public class Q {

public static void main(String argv[]){

int anar[]=new int[]{1,2,3};

System.out.println(anar[2]);

}

}

A. 1 B.错误,因为anar初始化前被引用 C. 错误,因为数组大小必须确定 D. 3

14.在含有"Java"字符串s中找到字母v的位置(即2),应该使用的语句是( C

A. mid(2,s); B. charAt(2); C. s.indexOf('v'); D.indexOf(s,'v');

15.假定有如下声明

String s1=new String("Hello")

String s2=new String("there");

String s3=new String();

则下列语句中,合法的是( A )。

A. s3=s1 + s2; B. s3=s1-s2; C. s3=s1 & s2; D. s3=s1 && s2

16.下列代码在编译运行过程中会产生的结果是( C

A.编译通过,run方法会输出i的增值 B.编译时代码出错

C.编译通过,调用start会输出i的增值 D.编译器出错,因while没有得到真(true)参数

class Background implements Runnable{

int i=0;

public void run(){

while(true){

i++;

System.out.println("i="+i);

} //End while

}//End run

}//End class

17给定如下代码设置frame颜色为粉色(pink)的是( D )。

import java.awt.*;

public class SetF extends Frame{

public static void main(String argv[]){

SetF s=new SetF();

s.setSize(300,200);

s.setVisible(true);

}

}

A. s.color=Color.pink B. s.setColor(PINK);

C. s.Background(pink); D. s.setBackground(Color.pink);

18.试图编译运行如下代码时会出现( A )。

public class Conv{

public static void main(String argv[]){

Conv c=new Conv();

String s=new String("ello");

c.amethod(s);

}

public void amethod(String s){

String c="H";

c=c+s;

System.out.println(c);

}

}

A. 编译通过,并输出"Hello" B. 编译通过,并输出"ello"

C. 编译通过,并输出elloH D. 编译时错

19.给定如下代码,能让Base constructor输出字符串"base constructor"的是( D )。

class Base{

Base(int i){

System.out.println("base constructor");

}

Base(){

}

}

public class Sup extends Base{

public static void main(String argv[]){

Sup s= new Sup();

//One

}

Sup()

{

//Two

}

public void derived()

{

//Three

}

}

A. //One处放置Base(10); B. //One处放置super(10);

C. // Three处放置super(10); D. //Two处放置super(10);

20.给定如下代码,其输出是( C )。

public class Pass{

static int j=20;

public static void main(String argv[]){

int i=10;

Pass p = new Pass();

p.amethod(i);

System.out.println(i);

System.out.println(j);

}

public void amethod(int x){

x=x*2;

j=j*2;

}

}

A. 10, and 20 B. 20 and 40 C. 10 and 40 D. 错误,因为amethod参数与变量不匹配

21.在同一目录下存放有这些文件,如果Base.java文件没有编译,则试图编译和运行Class1.java时出产生( D )。

//Base.java

package Base;

class Base{

protected void amethod(){

System.out.println("amethod");

}//End of amethod

}//End of class base

package Class1;

//Class1.java

public class Class1 extends Base{

public static void main(String argv[]){

Base b = new Base();

b.amethod();

}//End of main

}//End of Class1

A.编译错: Methods in Base not found

B.编译错: Unable to access protected method in base class

C.编译通过并输出"amethod"

D.编译错: Superclass Class1.Base of class Class1.Class1 not found

22.试图编译运行如下代码时会产生的结果是( A )。

private class Base{

Base(){

int i = 100;

System.out.println(i);

}

}

public class Pri extends Base{

static int i = 200;

public static void main(String argv[]){

Pri p = new Pri();

System.out.println(i);

}

}

A. 编译时有错,class不允许使用修饰符private B. 200 C. 100 200 D.100

23试图编译运行如下代码产生的结果是( A )。

public class Ref{

public static void main(String argv[]){

Ref r = new Ref();

r.amethod(r);

}

public void amethod(Ref r){

int i=99;

multi(r);

System.out.println(i);

}

public void multi(Ref r){

r.i = r.i*2;

}

}

A.编译时出错 B. 99 C.198 D.运行时错

24.若将变量i的值赋给数组ia[]的元素,则在//For loop注释行后应放的代码是( B

public class Lin{

public static void main(String argv[]){

Lin l = new Lin();

l.amethod();

}

public void amethod(){

int ia[] = new int[4];

//Start For loop

{

ia[i]=i;

System.out.println(ia[i]);

}

}

}

A. for(int i=0; i < ia.length() -1; i++) B. for (int i=0; i< ia.length(); i++)

C. for(int i=1; i < 4; i++) D. for(int i=0; i< ia.length;i++)

25编译运行如下代码时会出现( D )。

class Base{

private void amethod(int iBase){

System.out.println("Base.amethod");

}

}

class Over extends Base{

public static void main(String argv[]){

Over o = new Over();

int iBase=0;

o.amethod(iBase);

}

public void amethod(int iOver){

System.out.println("Over.amethod");

}

}

A. 编译时错,提示Base.amethod is private B. 输出"Base.amethod"

C. 运行时错,提示Base.amethod is private D. 输出"Over.amethod"

1(矩形类Rectangle) 设计一个名为Rectangle的类表示矩形。这个类包括:

两个名为widthheightdouble型数据域,它们分别表示矩形的宽和高。widthheight的默认值都是1

创建默认矩形的无参构造方法。

一个创建widthheight为指定值的矩形的构造方法。

一个名为getArea()的方法返回矩形的面积。

一个名为getPerimiter()的方法返回周长。

画出该类的UML图。实现这个类。编写一个测试程序,创建两个Rectangle对象----一个矩形宽为4而高为40,另一个矩形宽为3.5而高为35.9。依照每个矩形的宽、高、面积和周长的顺序显示。

public class Exercise8_1 {

public static void main(String[] args) {

Rectangle myRectangle = new Rectangle(4, 40);

System.out.println("The area of a rectangle with width " + myRectangle.width + " and height " +

myRectangle.height + " is " + myRectangle.getArea());

System.out.println("The perimeter of a rectangle is " + myRectangle.getPerimeter());

Rectangle yourRectangle = new Rectangle(3.5, 35.9);

System.out.println("The area of a rectangle with width " +

yourRectangle.width + " and height " +

yourRectangle.height + " is " +

yourRectangle.getArea());

System.out.println("The perimeter of a rectangle is " +

yourRectangle.getPerimeter());

}

}

class Rectangle {

// Data members

double width = 1, height = 1;

// Constructor

public Rectangle() {

}

// Constructor

public Rectangle(double newWidth, double newHeight) {

width = newWidth;

height = newHeight;

}

public double getArea() {

return width * height;

}

public double getPerimeter() {

return 2 * (width + height);

}

}

2(写/读数据)编写一个程序,如果名为Exercise9_19.txt的文件不存在,则创建该文件。使用文本I/O编写随机产生100个整数给文件。文件中的数据由空格分开。从文件中读回数据然后显示排好序的数据。

提示:在main方法头抛出异常。

public static void main(String[] args) throws Exception{ }

import java.util.*;

import java.io.*;

public class Exercise9_19 {

public static void main(String[] args) throws Exception {

// Check if source file exists

File file = new File("Exercise9_19.txt");

if (!file.exists()) {

// Create the file

PrintWriter output = new PrintWriter(file);

for (int i = 1; i <= 100; i++) {

output.print((int)(Math.random() * 100) + " ");

}

output.close();

}

Scanner input = new Scanner(file);

int[] numbers = new int[100];

for (int i = 0; i < 100; i++){

numbers[i] = input.nextInt();

}

s.sort(numbers);

for (int i = 0; i < 100; i++){

System.out.print(numbers[i] + " ");

}

}

}

3、设计一个名为GeometricObject的类,该类包括:

三个数据域:String color, 默认值为”white”

boolean filled

java.util.Date dateCreated

一个无参的构造方法,创建默认的几何图形。取系统时间为几何图形创建时间。

一个能创建带指定颜色、是否填充颜色和创建时间的构造方法。

数据域filledcolor的访问器和修改器。

数据域dateCreated的访问器。

一个名为toString的方法,返回图形的创建时间、是否填充颜色和填充哪种颜色。

public class GeometricObject1 {

private String color = "white";

private boolean filled;

private java.util.Date dateCreated;

public GeometricObject1() {

dateCreated = new java.util.Date();

}

public GeometricObject1(String Color, boolean filled) {

dateCreated = new java.util.Date();

this.color = color;

this.filled = filled;

}

public String getColor() {

return color;

}

public void setColor(String color) {

this.color = color;

}

public boolean isFilled() {

return filled;

}

public void setFilled(boolean filled) {

this.filled = filled;

}

public java.util.Date getDateCreated() {

return dateCreated;

}

public String toString() {

return "created on " + dateCreated + "\ncolor: " + color +

" and filled: " + filled;

}

}

4、设计一个名为Triangle的类来扩展GeometricObject类。该类包括:

三个名为side1, side2side3double数据域表示三角形的三条边,它们的默认值为1.0

一个无参的构造方法创建默认的三角形。

一个能创建带指定side1, side2side3的三角形的构造方法。

所有三个数据域的访问器方法。

一个名为getArea()的方法返回这个三角形的面积。

一个名为getPerimeter()的方法返回这个三角形的周长。

一个名为toString()的方法返回这个三角形的字符串描述。

提示:toStirng()方法的实现如下:

Return “Triangle: side = ” + side1 + “ side2 = ” + side2 + “ side3 = ” + side3;

画出Triangle类和GeometricObject类的UML图。实现这些类。编写一个测试程序,创建边长为11.51,颜色为yellowfilledtrueTriangle

对象,然后显示它的面积、周长、颜色以及是否被填充。

public class Exercise11_1 {

public static void main(String[] args) {

Triangle triangle = new Triangle(1, 1.5, 1);

triangle.setColor("yellow");

triangle.setFilled(true);

System.out.println(triangle);

System.out.println("The area is " + triangle.getArea());

System.out.println("The perimeter is " + triangle.getPerimeter());

System.out.println(triangle);

}

}

class Triangle extends GeometricObject {

private double side1 = 1.0, side2 = 1.0, side3 = 1.0;

public Triangle() {

}

public Triangle(double side1, double side2, double side3) {

this.side1 = side1;

this.side2 = side2;

this.side3 = side3;

}

/** Implement the abstract method findArea in GeometricObject */

public double getArea() {

double s = (side1 + side2 + side3) / 2;

return Math.sqrt(s * (s - side1) * (s - side2) * (s - side3));

}

/** Implement the abstract method findCircumference in

* GeometricObject

**/

public double getPerimeter() {

return side1 + side2 + side3;

}

/** Override the toString method */

public String toString() {

// Implement it to return the three sides

return "Triangle: side1 = " + side1 + " side2 = " + side2 +

" side3 = " + side3;

}

}

本文来源:https://www.2haoxitong.net/k/doc/f3436986767f5acfa0c7cd1b.html

《java复习题.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式