04网络工程java应用试卷+答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

安徽农业大学经济技术学院 2006―2007学年第一学期 《 Java 应用 》试卷(A 卷) 考试形式: 闭卷笔试,2小时,总分100分
一、选择题(共5小题,每小题3分,共15分) 1、下列关于JTextField 对象和JTextArea 对象描述不正确的是( D) A. 都是用于文本输入 B. JTextField 对象只支持单行文本输入 C. JTextArea 对象支持多行文本输入 D. JTextField 对象继承自JTextArea 对象,是JTextArea 对象的一种特例 2、下列说法正确的是( ACD ) A. Java 图形坐标系统中,横坐标x 值从左向右增加 B. Java 图形坐标系统中,纵坐标y 值从下向上增加 C. Java2D API 的Line 类用来定义直线 D. Java2D API 的
Ellipse 类用来定义椭圆 3、Java Swing 组件中JLabel 表示(B )组件 A. 按钮组件 B. 标签组件 C. 列表组件 D. 复选框组件 4、MouseListener 可以监听的事件不包括( C) A. mousePressed 事件 B. mouseEntered 事件 C. mouseMoved 事件 D. mouseClicked 事件 5、关于Java 中多线程的描述正确的是(A) A. Java 中用Thread 类对象表示线程 B. 默认情况,Java 中子线程优先级比父线程高 学院:
专业班级:
姓名: 学号:


C. 一个线程的执行任务不可以在不是Thread 对象中指定
D. 一个线程休眠时,其他线程不可运行
二、填空题(共9空,每空1分,共9分)
1、Java 中用 Color 类对象表示颜色,用 Font 类对象表示字体,
设置系统颜色和字体分别用Graphics 对象的 setColor 方法和 setFont 方法。

2、设有面板JPanel p1=new JPanel();欲使该面板上所有组件均匀分布,则应执行 p1.setLayout( new GridLayout() );语句。

3、Java 中用File 类对象表示文件和目录,试用该类对象表示目录“C:\temp ” File f1=new File(“C:\temp ”) 。

4、试补充以下程序完成点击按钮时,在标签上显示“今天很开心”
JButton b1=new JButton(“按钮”);
JLabel l1=new JLabel(); b1. addActionListener(this);//注册动作事件,填写方法名
public void actionPerformed(ActionEvent)
{
l1. setText(“今天很开心”);//填写方法名
}
三、判断题(以下为Panduan.java 文件中程序,每行最多有一个语法错误,如果有错误,在括号里打”X ”并改正;如果无错误,在括号里打”V ”)(共12小题,每小题1.5分,共18分) 1.
import java.io.* (x)
2.
public class panduan { ( x)
3.
static Test t1=new Test(); (v )
4.
public static main(String args[]) ( x )
5.
{try{int x=System.in.read(); ( v)
6.
t1.setX(int x);} ( x )
7.
catch(Panduan e) ( x )
{e.printStackTrace();}}}
8. class Test () ( x )
9. {int x; ( v ) 10. test(int newx) ( x ) 11. {x=newx;} ( v ) public void setX(int x)//设置属性变量x 的值 12. { x=x;}} (x ) 四、程序分析题(共2小题,每小题9分,共18分)
(分析以下程序输出) 1、class ProduceInteger extends Thread {//构建生产者线程 private HoldIntegerUnsynchronized sharedObject;//用于表示共享数据的对象 public ProduceInteger( HoldIntegerUnsynchronized shared ) { super( "ProduceInteger " );//初始化 sharedObject = shared; } public void run()//线程运行时执行的任务 { for ( int count = 1; count <= 3; count++ ) { int time=(int) ( Math.random() * 3000 ); try {Thread.sleep( time );//线程休眠 Math.random() * 3000毫秒} catch( InterruptedException exception ) { } sharedObject.setSharedInt( count );//把当前的共享数据设置为新的值 } System.err.println(getName() + " 结束生产值" +"\n 终止 " + getName() ); }} class ConsumeInteger extends Thread {//构建消费者线程 private HoldIntegerUnsynchronized sharedObject;//表示共享数据的对象 public ConsumeInteger( HoldIntegerUnsynchronized shared ) { super( "ConsumeInteger" ); sharedObject = shared; } public void run() { int value, sum = 0; do { int time=(int) ( Math.random() * 3000 ); try { Thread.sleep( time ); } catch( InterruptedException exception ) { } value = sharedObject.getSharedInt(); sum += value; } while ( value != 3 ); System.err.println(getName() + " 结束的数据总值为: " + sum + "\n 终止 " + getName() ); }}
院:
专业班级:
姓名: 学号:


class HoldIntegerUnsynchronized {
private int sharedInt = -1;
public void setSharedInt( int value )//修改sharedInt变量的值{ System.err.println( Thread.currentThread().getName() +
" 把sharedInt 设置为" + value );
sharedInt = value; }
public int getSharedInt()//获得sharedInt变量的值{ System.err.println( Thread.currentThread().getName() +
" 接受到sharedInt 值为" + sharedInt );
return sharedInt; }}
public class SharedCell {
public static void main( String args[] )
{ HoldIntegerUnsynchronized sharedObject =
new HoldIntegerUnsynchronized();
ProduceInteger producer =
new ProduceInteger( sharedObject );
ConsumeInteger consumer =
new ConsumeInteger( sharedObject );
producer.start();
consumer.start(); }
ConsumeInteger 接受到sharedInt 值为-1 ConsumeInteger 接受到sharedInt 值为-1 ProduceInteger 把sharedInt 设置为1 ConsumeInteger 接受到sharedInt 值为1 ProduceInteger 把sharedInt 设置为2 ConsumeInteger 接受到sharedInt 值为2 ProduceInteger 把sharedInt 设置为3
ProduceInteger 结束生产值
终止ProduceInteger
ConsumeInteger 接受到sharedInt 值为3 ConsumeInteger 结束的数据总值为: 4
终止ConsumeInteger
未使用线程同步,所以输出不确定
2、public class Ttest1 { public static void main(String args[]) { for(int i=1;i<16;i++) System.out.println("fi["+i+"]="+jishu(i)); } public static int jishu(int n) { if(n<0)return -1; if(n<4)return 1; return jishu(n-3)+jishu(n-1); } } fi[1]=1 fi[2]=1 fi[3]=1 fi[4]=2 fi[5]=3 fi[6]=4 fi[7]=6 fi[8]=9 fi[9]=13 fi[10]=19 fi[11]=28 fi[12]=41 fi[13]=60 fi[14]=88 fi[15]=129 五、程序设计题(共4小题,每小题10分,共40分)
1、编写一个程序绘制一个10*10的网格,每格(正方形)边长为20像点。

import javax.swing.*; import java.awt.*; public class Test2 extends JFrame { Test2 () { this.setSize(400,300); this.setVisible(true); } public void paint(Graphics g) { super.paint(g);
学号
线
for(int i=0;i<20;i++)
{
g.drawLine(10, 10+i*10,200, 10+i*10);
}
for(int j=0;j<20;j++)
{
g.drawLine(10+j*10, 10, 10+j*10, 200);
}
}
public static void main(String args[])
{
new Test2();
}
}
2、写一个十进制数0~9 的ASC码转换程序。

从键盘上输入(通过一个JTextField)十进制数,再使用一个JLabel显示转换的ASC码值。

(0~9的ASC码为30H~39H)
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Test3 extends JFrame implements ActionListener{
JTextField jt1;
JLabel jl1;
public Test3()
{
jt1=new JTextField(6);
jl1=new JLabel("Asc码");
this.setLayout(new FlowLayout() );//设置为流式布局
//在界面上添加文本框和标签
this.add(jt1);
this.add(jl1);
//文本框的动作事件由当前对象响应,执行当前类中的actionPerformed方法
jt1.addActionListener(this);
//设置当前界面属性
this.setSize(400,300);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent evt)
{//响应文本框的回车键事件(动作事件)
String s=this.jt1.getText();
int soi=Integer.parseInt(s);
s=Integer.toHexString(soi+0x30);
this.jl1.setText(s);
}
public static void main(String args[])
{
// 新建界面
new Test3();
}
}
3、编写程序,提供一个JTextArea组件和一个JButton按钮,当点击按钮时把用户在JTextArea上输入的内容写入C:盘根目录下1.txt文件中。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class Test4 extends JFrame implements ActionListener{
JTextArea jt1;
JButton jl1;
public Test4()
{
jt1=new JTextArea();
jl1=new JButton("存储");
this.setLayout(new BorderLayout() );//设置为流式布局
//在界面上添加文本框和标签
this.add(jl1,BorderLayout.NORTH);
this.add(jt1);
//文本框的动作事件由当前对象响应,执行当前类中的actionPerformed方法
jl1.addActionListener(this);
//设置当前界面属性
this.setSize(400,300);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent evt)
{//响应文本框的回车键事件(动作事件)
String s=this.jt1.getText();
try{
RandomAccessFile far=new RandomAccessFile("C:\\1.txt","rw");
far.writeChars(s);
far.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
public static void main(String args[])
{
// 新建界面
new Test4();
}
}
4、编写程序实现计算输入的两个数的加减乘除。

要求提供一个下拉列表框用于选择加减乘除操作,两个文本框用于输入,在任一个文本框中输入Enter键时计算出结果, 显示在一个标签上。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class Test5 extends JFrame implements ActionListener{
JTextField jt1,jt2;
JComboBox jcb;
JLabel jl1;
public Test5()
{
jt1=new JTextField(6);
jt2=new JTextField(6);
jcb=new JComboBox(new String[]{"+","-","*","/"});
jl1=new JLabel("结果");
this.setLayout(new FlowLayout() );//设置为流式布局
//在界面上添加文本框和标签
this.add(jt1);
this.add(jcb);
this.add(jt2);
this.add(jl1);
//文本框的动作事件由当前对象响应,执行当前类中的actionPerformed方法
jt2.addActionListener(this);
//设置当前界面属性
this.setSize(400,300);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent evt) {//响应文本框的回车键事件(动作事件)
int a1=Integer.parseInt(this.jt1.getText());
int a2=Integer.parseInt(this.jt2.getText());
String op=(String)(this.jcb.getSelectedItem());
if(op.equals("+"))
{
op="a1+a2="+(a1+a2);
}
else if(op.equals("-"))
{
op="a1-a2="+(a1-a2);
}
else if(op.equals("*"))
{
op="a1*a2="+(a1*a2);
}
else if(op.equals("/"))
{
op="a1/a2="+(a1/a2);
}
this.jl1.setText(op);
}
public static void main(String args[])
{
// 新建界面
new Test5();
}
}
难不难?。

相关文档
最新文档