java考试题型及作业

更新时间:2023-07-21 17:49:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

必考题。

单选题(20分)

判断题(10分)

阅读程序功能(20分)

简单程序设计(20分)

程序设计(30分)

作业1

1、实现第一个简单的应用程序:打印一行文字。(一行文字为:“您好,Java 程序!”) public class Welcome1 {

public static void main(String args[]){

System.out.print("您好,Java 程序!");

}

}

2、显示一行字符串的简单Java Applet。(一行字符串为:“您好,Java 程序!”)

import javax.swing.JApplet; //加载系统类JApplet

import java.awt.Graphics; //加载系统类Graphics

public class Welcome2 extends JApplet {

public void paint(Graphics g) {

g.drawString("您好,Java 程序!",25,25);

}

}

3、从键盘输入一个字符,并在屏幕上显示出来。

class ReadDemo{

public static void main(String args[ ]) throws java.io.IOException{

char c;

System.out.println("Please input a char:");

c=(char)System.in.read();

//从标准输入读入一个字节的信息并返回给一个字符变量

System.out.println("Receive char="+c);

}

}

4、编写一个Java Application 程序,分行显示字符串”Welcome to Java Programming!”中的4个单词。

public class Welcome3 {

public static void main(String[] args) {

System.out.print("Welcome \nto \nJava \nProgramming!");

}

}

必考题。

5、请叙述标识符的定义规则。指出下面的标识符中,哪些是不正确的,并说明原因。 here _there this that it 2tol _it

答:变量、常量、方法、对象和类等需要使用一个名称来表示,这个名称就是标识符。在Java中,对于标识符的规则主要有:

◇ 标识符是以字母、下划线或美元符号开头,由字母、数字、下划线或美元符组成

的字符串;

◇ 标识符区分大小写;

◇ 标识符的长度没有限制;

◇ 关键字不能做标识符。

所以上述标识符中不正确的有:this、2tol。

6、 Java中共有哪些基本数据类型,它们分别用什么符号来表示?

答:Java基本数据类型有:int float double char Boolean byte long

7、假定x=10,y=20,z=30;试判断下列布尔表达式的值(true)或假(false)。

(1)x<10||x>10)

(2)x<y+z&&x+10<=20

(3)x>y||y>x

(4)!(x<y+z)&&!(x+10<=20)

(5)!(x==y)&&(x!=y)&&(x<y||y<x)

答:

(1)z=6

(2)z=1

(3)z=36

(4)z=0

(5)z=-3

8、设z的初值是3,求下列表达式运算后的z值。

(1)z+=z

(2)z-=2

(3)z*=2*6

(4)z/=z+z

(5)z+=z-=z*=z

答:

(1)z=6 short

必考题。

(2)z=1

(3)z=36

(4)z=0

(5)z=-3

9、下列程序的运行结果为多少?

public class ex9 {

public static void main(String args[])

{ int a=2,b=3,c,d=2;

a*=a*=b;

System.out.println(a);

c=b/=a;

System.out.println(c);

d+=b-=a;

System.out.println(d);

a+=b+=a*=b;

System.out.println(a);

c=a+=b+=a;

System.out.println(c);

d=(c=a/b+15);

System.out.println(d);

}

}

答:a=12

c=0

d=-10

a=-144

c=-444

d=16

10、说出以下方法有什么功能。

public static double myFunction(double a,double b,double c)

{

double result;

result=(a<b)?a:b;

result=(result<c)?result:c;

return result;

}

答:程序的作用是三个数大小比较,取其中的最小值。

必考题。

作业2

1. 编写一个程序片断,定义一个学生的类Student,包括成员变量“学号”、“班级”、“姓名”、“性别”、“年龄”,成员方法“获得学号”、“获得班号”、“获得姓名”、“获得性别”、“获得年龄”、“修改年龄”。

public class Student

{

private String studentN;

private int classID;

private String name;

private char gener;

private int age;

Student(String no,int id,String nm,char g,int ag)

{

studentN=no;

classID=id;

name=nm;

gener=g;

age=ag;

}

String getStringN()

{

return studentN;

}

int getClassID()

{

return classID;

}

char getGender()

{

return Gender;

}

String getName()

{

return Name;

}

int getAge()

{

return Age;

}

public void setStudentAge(int newAge)

{

Age=newAge;

必考题。

}

}

2. 设计并测试一个表示图书的Book类,它包含图书的书名、作者、月销售量属性,另有两个构造方法(一个不带参数,另一个带参数)和两个成员方法setBook() 、printBook() (用于输出书名、作者、月销售量数据)。

class Book{

String title;

String author;

int monthsold;

Book(){}

Book(String str1,String str2,int num)

{

title=str1;

author=str2;

monthsold=num;

}

void setBook(String str1,String str2,int num)

{

title=str1;

author=str2;

monthsold=num;

}

void printBook()

{

System.out.println("书名:"+title);

System.out.println("作者:"+author);

System.out.println("月销售量:"+monthsold);

}

}

//下面是测试上述类的主类

public class TestBook {

public static void main(String[] args){

Book book1=new Book();

book1.setBook("Java 实用教程"," 吴剑",600);

book1.printBook();

Book book2=new Book("C++教程"," 杨晓",500);

book2.printBook();

}

}

必考题。

3. 定义一个接口Area,其中包含一个计算面积的抽象方法calculateArea(),然后设计MyCircle和MyRectangle两个类都实现这个接口中的方法calculateArea(),计算圆和矩形的面积。 interface Area

{

float calculateArea();

}

class MyCircle implements Area

{

private float radius;

MyCircle(float radius)

{

this.radius=radius;

}

public float calculateArea()

{

return((float)Math.PI*radius*radius);

}

}

class MyRectangle implements Area

{

private float width;

private float height;

MyRectangle(float width,float height)

{

this.width=width;

this.height=height;

}

public float calculateArea()

{

return (width*height);

}

}

public class InterfaceExample {

public static void main(String[] args)

{

MyCircle c=new MyCircle(8);

System.out.println("Circle's area="+c.calculateArea());

MyRectangle r=new MyRectangle(4,6);

System.out.println("Rectangle's area="+r.calculateArea());

}

}

必考题。

4. 编写一个Application,键盘输入一个字母,加1后输出到屏幕。

public class App6 {

public static void main(String[] args){

try{

System.out.print("请输入一个字符:");

char c=(char)(System.in.read()+1);

System.out.println("刚输入的字符加1后为:"+c);

}

catch(java.io.IOException e){}

}

}

5. 使用图形用户界面,编写一个完整的计算及打印整数乘积的程序。

import javax.swing.JOptionPane;

public class Product {

public static void main (String[] args)

{

int x,y,z,result;

String xVal,yVal,zVal;

xVal=JOptionPane.showInputDialog("Enter first integer:");

yVal=JOptionPane.showInputDialog("Enter second integer:");

zVal=JOptionPane.showInputDialog("Enter third integer:");

x=Integer.parseInt(xVal);

y=Integer.parseInt(yVal);

z=Integer.parseInt(zVal);

result=x*y*z;

JOptionPane.showMessageDialog(null,"The product is "+result);

System.exit(0);

}

}

必考题。

作业3

1、下面给出一个矩形类Rectangle,其中含有多个构造方法。写出此程序的输出结果。 class Rectangle{

private int width;

private int length;

//下面是Rectangle的3个构造方法

Rectangle() //此构造方法无参数,默认地给出长(30)和宽(20)

{

length=30;width=20;

}

Rectangle(int l,int w) //此构造方法无参数给出长和宽

{

length=l;width=w;

}

Rectangle(Rectangle r) //此构造方法以另一个Rectangle作为参数

{

width=r.getWidth();

length=r.getLength();

}

int getWidth()

{

return width;

}

int getLength()

{

return length;

}

}

public class UseRectangle

{

public static void main(String args[])

{

Rectangle x1=new Rectangle();

Rectangle x2=new Rectangle(50,40);

Rectangle x3=new Rectangle(x1);

System.out.println(x1.getLength());

System.out.println(x1.getWidth());

System.out.println(x2.getLength());

System.out.println(x2.getWidth());

System.out.println(x3.getLength());

System.out.println(x3.getWidth());

必考题。

}

答:

30

20

50

40

30

20

2、阅读下列程序,分析输出结果。

class Father{ //本类中speak方法重载了两次

void speak() //无参数的speak方法

{

System.out.println("I am Father!");

}

void speak(String s){ //有参数的speak方法

System.out.println("I like"+" "+s+".");

}

}

public class OverLoadingDemo {

public static void main (String[] args) {

Father x=new Father();

x.speak();

x.speak("music");

}

}

答:

I am Father!

I like music.

3、说出下列程序的3个点最后显示的坐标值各是多少?

class Point {

public static int x; //x属性有static修辞

public int y; //y坐标

public Point(int x,int y) {

this.x=x;

this.y=y;

}

public static void main (String[] args) {

Point p1,p2,p3;

p1=new Point(1,10);

必考题。

p2=new Point(2,20);

p3=new Point(3,30);

System.out.println(p1.x+","+p1.y);

System.out.println(p2.x+","+p2.y);

System.out.println(p3.x+","+p3.y);

}

}

答:

3,10

3,20

3,30

4、阅读下列程序,分析输出结果。

public class MyDate {

private int day=12;

private int month=6;

private int year=1900;

public MyDate(int y,int m,int d) {

year=y;

month=m;

day=d;

}

void addYear()

{

year++;

}

public void display(){

System.out.println(year+"-"+month+"-"+day);

}

public static void main (String[] args) {

MyDate m,n;

m=new MyDate(2003,9,22);

n=m;

n.addYear();

m.display();

n.display();

}

}

答:

2004-9-22

2004-9-22

必考题。

作业四

1、不使用布局管理器,将组件手工加入容器。实现如图所示的界面。

import java.awt.*;

import javax.swing.*;

import java.applet.Applet;

public class NoLayoutDemo extends Applet

{ Choice c=new Choice();

Button b1=new Button("按钮1");

Button b2=new Button("按钮2");

Button b3=new Button("按钮3");

public void init()

{

setLayout(null);

c.addItem("Item1");

c.addItem("Item2");

c.addItem("Item3");

add(c); c.setBounds(80,80,50,30);

add(b1); b1.setBounds(20,20,50,30);

add(b2); b2.setBounds(100,20,50,30);

add(b3); b3.setBounds(200,60,50,50);

}

}

2、编写一个Applet,添加两个标签、一个文本框、一个文本区和一个按钮。要求在文本框中输入字符串,当按下回车键或单击按钮时,可将字符串显示在文本区中。 import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

public class ex3_2 extends JApplet implements ActionListener

{

JLabel lb1=new JLabel("这是个文本框"),lb2=new JLabel("这是个文本区");

必考题。

JTextField tf=new JTextField(20);

JTextArea ta=new JTextArea(6,30);

JButton bt=new JButton("OK");

JPanel p1=new JPanel(),p2=new JPanel();

public void init()

{

Container c=getContentPane();

c.add("North",p1);

c.add("Center",p2);

c.add("South",bt);

p1.add(lb2);p1.add(ta);

p2.add(lb1);p2.add(tf);

tf.addActionListener(this);

bt.addActionListener(this);

}

public void actionPerformed(ActionEvent e)

{

ta.append(tf.getText());

}

}

3、向窗口添加菜单有哪几个步骤?创建一个窗口,要求有“退出”按钮、菜单“退出”命令,而且菜单、按钮、窗口本身的关闭按钮都起作用。

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import java.awt.event.ItemListener.*;

public class ex3_3 extends JFrame implements ActionListener

{

JButton bt=new JButton("退出");

JMenuBar mb=new JMenuBar();

JMenu m=new JMenu("Menu");

JMenuItem exit=new JMenuItem("退出");

public ex3_3()

{

Container c=getContentPane();

setTitle("菜单应用");

setSize(200,200);

mb.add(m);

m.add(exit);

c.add(bt,BorderLayout.SOUTH);

bt.addActionListener(this);

必考题。

exit.addActionListener(this);

addWindowListener(new WindowAdapter()

{ public void windowClosing(WindowEvent e)

{ System.exit(0);

}

});

setJMenuBar(mb);

show();

}

public void actionPerformed(ActionEvent e)

{

System.exit(0);

}

public static void main (String[] args)

{

new ex3_3();

}

}

4、创建一个窗口,单击“提示”按钮可出现一个写有“你好!”文字的对话框。 import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

public class ex3_4 implements ActionListener

{

JButton bt=new JButton("对话框");

JFrame jf=new JFrame("有对话框的窗口");

public ex3_4()

{

Container c=jf.getContentPane();

c.add(bt,BorderLayout.SOUTH);

bt.addActionListener(this);

jf.addWindowListener(new WindowAdapter()

{ public void windowClosing(WindowEvent e)

{ System.exit(0);

}

});

jf.setSize(300,300);

jf.show();

}

public void actionPerformed(ActionEvent e)

{

JOptionPane.showOptionDialog(jf,"你好","我是自定义对话框",JOptionPane.DEFAULT_OPTION,JOptionPane.ERROR_MESSAGE,null,null,null);

必考题。

}

public static void main (String[] args)

{

new ex3_4();

}

}

5、编写程序,程序运行界面如下图所示。在本程序中,生成了一个文本框in用于输入,一个标签out用于输出,一个按钮btn用于触发命令。在Applet的初始化方法中,设定流式布局(FlowLayout)。按图示结果编写程序。

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

public class AppletInOut extends Applet

{ TextField in = new TextField(10);

}

Button btn = new Button("求平方"); Label out = new Label(" 用于显示结果的标签 "); public void init() { setLayout( new FlowLayout() ); add( in ); add( btn ); add( out ); btn.addActionListener( new BtnActionAdapter() ); } class BtnActionAdapter implements ActionListener { public void actionPerformed( ActionEvent e ) { String s = in.getText(); double d = Double.parseDouble( s ); double sq = d * d; out.setText( d + "的平方是:" + sq ); } }

必考题。

作业5

1、 画两个矩形,一个是普通的未填充的矩形,另一个是圆角为20像素的填充矩形。 import java.applet.*;

import java.awt.*;

public class Rect extends Applet

{

public void paint(Graphics g)

{

g.drawRect(20,20,60,60);

g.fillRoundRect(80,80,100,100,20,30);

}

}

2、 用drawOval和fillOval方法分别画椭圆,前景色分别设置为黄色和红色。 import java.awt.Color;

import java.applet.Applet;

import java.awt.Graphics;

public class DrawOval extends Applet{

public void paint(Graphics g)

{

g.setColor(Color.yellow);

g.drawOval(35,35,100,60);

g.setColor(Color.red);

g.fillOval(200,15,60,100);

}

}

必考题。

3、 利用AWT绘制图形的常用方法(画椭圆drawOval(),画圆弧drawArc(),填充图形fillOval(), fillArc())绘制一个简易图形如图所示,Applet小应用程序窗口大小(Width=150,Height=170)。

import java.applet.*;

import java.awt.*;

public class ex4_3 extends Applet

{ public void paint(Graphics g)

{ g.setColor(Color.blue);

g.drawOval(100,80,80,100);

g.fillOval(120,110,14,7);

g.fillOval(160,110,14,7);

g.drawArc(120,140,40,20,180,180);

}

}

4、 绘制一个用红色填充的多边形,多边形的顶点坐标为:

int x[]={10, 100, 200, 300, 150 };

int y[]={80, 30, 60, 120, 150 };

import java.awt.*;

import java.applet.Applet;

public class PolygonDemo extends Applet{

public void paint(Graphics g)

{

int[] x={10,100,200,300,150};

int[] y={80,30,60,120,150};

int p1=y.length;

必考题。

}

} g.setColor(Color.red); Polygon p=new Polygon(x,y,p1); g.fillPolygon(p);

5、通过继承Thread类实现多线程的方法是首先设计Thread的子类。用new创建二个线程实例,用start()方法进行启动,将执行权交给run()。二个线程名字分别为线程1和线程2,要输出线程的次数(10次)和线程的名字。

public class TwoThreads_Test {

public static void main(String args[]) {

Thread t1=new Thread_Test("线程1");// 第一个线程的名字为"线程1"

Thread t2=new Thread_Test("线程2");// 第二个线程的名字为"线程2"

t1.start();

t2.start();

}

}

class Thread_Test extends Thread {

public Thread_Test(String str) {

super(str); // 调用其父类的构造方法

}

} public void run() { // 重写run方法 for (int i = 0; i < 10; i++) { } } // 打印次数和线程的名字 System.out.println(i + " " + getName()); try { // 线程睡眠,把控制权交出去 sleep((int)(Math.random() * 1000)); } catch (InterruptedException e) { } // 线程执行结束 System.out.println("执行结束!" + getName());

本文来源:https://www.bwwdw.com/article/8ccm.html

Top