}//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.编译通过并输出\
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 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; } }
《Java编程基础》试卷 第 6 页 共 11 页
D.100
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(\} }
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(\} }
A. 编译时错,提示Base.amethod is private B. 输出\C. 运行时错,提示Base.amethod is private D. 输出\ 得分 评卷人 二、编程题(本题共4题,第一题10分,第二题15分,第三题10分,
第四题15分, 总分 50分)
1、(矩形类Rectangle) 设计一个名为Rectangle的类表示矩形。这个类包括:
? 两个名为width和height的double型数据域,它们分别表示矩形的宽和高。width和height
的默认值都是1。
? 创建默认矩形的无参构造方法。
《Java编程基础》试卷 第 7 页 共 11 页
? 一个创建width和height为指定值的矩形的构造方法。 ? 一个名为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(\ myRectangle.width + \ myRectangle.height + \
System.out.println(\ Rectangle yourRectangle = new Rectangle(3.5, 35.9); System.out.println(\ yourRectangle.width + \ yourRectangle.height + \ yourRectangle.getArea());
System.out.println(\ 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); } }
《Java编程基础》试卷 第 8 页 共 11 页
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(\ 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(); }
Arrays.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;
? 一个无参的构造方法,创建默认的几何图形。取系统时间为几何图形创建时间。 ? 一个能创建带指定颜色、是否填充颜色和创建时间的构造方法。 ? 数据域filled和color的访问器和修改器。 ? 数据域dateCreated的访问器。
? 一个名为toString的方法,返回图形的创建时间、是否填充颜色和填充哪种颜色。
《Java编程基础》试卷 第 9 页 共 11 页
public class GeometricObject1 { private String color = \; 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 \ + dateCreated + \ + color + \ + filled; } }
4、设计一个名为Triangle的类来扩展GeometricObject类。该类包括:
? 三个名为side1, side2和side3的double数据域表示三角形的三条边,它们的默认值为1.0。 ? 一个无参的构造方法创建默认的三角形。
? 一个能创建带指定side1, side2和side3的三角形的构造方法。 ? 所有三个数据域的访问器方法。
? 一个名为getArea()的方法返回这个三角形的面积。 ? 一个名为getPerimeter()的方法返回这个三角形的周长。 ? 一个名为toString()的方法返回这个三角形的字符串描述。 提示:toStirng()方法的实现如下:
Return “Triangle: side = ” + side1 + “ side2 = ” + side2 + “ side3 = ” + side3;
画出Triangle类和GeometricObject类的UML图。实现这些类。编写一个测试程序,创建边长为
《Java编程基础》试卷 第 10 页 共 11 页
1、1.5和1,颜色为yellow,filled为true的Triangle
对象,然后显示它的面积、周长、颜色以及是否被填充。 public class Exercise11_1 {
public static void main(String[] args) {
Triangle triangle = new Triangle(1, 1.5, 1); triangle.setColor(\ triangle.setFilled(true);
System.out.println(triangle);
System.out.println(\ + triangle.getArea());
System.out.println(\ + 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 \ \ } }
《Java编程基础》试卷 第 11 页 共 11 页