江苏理工学院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;
2.byte型数据表示的数值范围为( 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的类表示矩形。这个类包括:
● 两个名为width和height的double型数据域,它们分别表示矩形的宽和高。width和height的默认值都是1。
● 创建默认矩形的无参构造方法。
● 一个创建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("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;
● 一个无参的构造方法,创建默认的几何图形。取系统时间为几何图形创建时间。
● 一个能创建带指定颜色、是否填充颜色和创建时间的构造方法。
● 数据域filled和color的访问器和修改器。
● 数据域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, side2和side3的double数据域表示三角形的三条边,它们的默认值为1.0。
● 一个无参的构造方法创建默认的三角形。
● 一个能创建带指定side1, side2和side3的三角形的构造方法。
● 所有三个数据域的访问器方法。
● 一个名为getArea()的方法返回这个三角形的面积。
● 一个名为getPerimeter()的方法返回这个三角形的周长。
● 一个名为toString()的方法返回这个三角形的字符串描述。
提示:toStirng()方法的实现如下:
Return “Triangle: side = ” + side1 + “ side2 = ” + side2 + “ side3 = ” + side3;
画出Triangle类和GeometricObject类的UML图。实现这些类。编写一个测试程序,创建边长为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("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
文档为doc格式