itatjava第三届第五届复赛答案.docx

上传人:b****8 文档编号:10115598 上传时间:2023-05-23 格式:DOCX 页数:20 大小:62.43KB
下载 相关 举报
itatjava第三届第五届复赛答案.docx_第1页
第1页 / 共20页
itatjava第三届第五届复赛答案.docx_第2页
第2页 / 共20页
itatjava第三届第五届复赛答案.docx_第3页
第3页 / 共20页
itatjava第三届第五届复赛答案.docx_第4页
第4页 / 共20页
itatjava第三届第五届复赛答案.docx_第5页
第5页 / 共20页
itatjava第三届第五届复赛答案.docx_第6页
第6页 / 共20页
itatjava第三届第五届复赛答案.docx_第7页
第7页 / 共20页
itatjava第三届第五届复赛答案.docx_第8页
第8页 / 共20页
itatjava第三届第五届复赛答案.docx_第9页
第9页 / 共20页
itatjava第三届第五届复赛答案.docx_第10页
第10页 / 共20页
itatjava第三届第五届复赛答案.docx_第11页
第11页 / 共20页
itatjava第三届第五届复赛答案.docx_第12页
第12页 / 共20页
itatjava第三届第五届复赛答案.docx_第13页
第13页 / 共20页
itatjava第三届第五届复赛答案.docx_第14页
第14页 / 共20页
itatjava第三届第五届复赛答案.docx_第15页
第15页 / 共20页
itatjava第三届第五届复赛答案.docx_第16页
第16页 / 共20页
itatjava第三届第五届复赛答案.docx_第17页
第17页 / 共20页
itatjava第三届第五届复赛答案.docx_第18页
第18页 / 共20页
itatjava第三届第五届复赛答案.docx_第19页
第19页 / 共20页
itatjava第三届第五届复赛答案.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

itatjava第三届第五届复赛答案.docx

《itatjava第三届第五届复赛答案.docx》由会员分享,可在线阅读,更多相关《itatjava第三届第五届复赛答案.docx(20页珍藏版)》请在冰点文库上搜索。

itatjava第三届第五届复赛答案.docx

itatjava第三届第五届复赛答案

操作题:

(请将编写好的源程序以题号命名,例如第1题的源程序保存为“1.java”)

1、编写一个Java应用程序,计算并输出一维数组(9.8,12,45,67,23,1.98,2.55,45)中的最大值和最小值。

(本题20分)

publicclassitat1{

publicstaticvoidmain(Stringags[]){

doublea[]={9.8,12,45,67,23,1.98,2.55,45};

doublemax=a[0];

doublemin=a[0];

for(inti=0;i

if(a[i]>max){

max=a[i];

}

if(a[i]

min=a[i];

}

}

System.out.println("最大值为:

"+max);

System.out.println("最小值为:

"+min);

}

}

2、编写一个Java应用程序,该程序使用FileInputStream类,实现从磁盘读取本应用程序源代码文件,并将文件内容显示在屏幕上。

(本题20分)

importjava.io.BufferedReader;

importjava.io.FileReader;

importjava.io.IOException;

 

publicclassitat2{

publicstaticvoidmain(Stringags[])throwsIOException{

BufferedReaderin=newBufferedReader(newFileReader("d:

/hello.txt"));

Strings;

while((s=in.readLine())!

=null){

System.out.println(s);

}

}

}

 

读取文件本身的类Ex1.java的源代码如下:

****************************************************************

importjava.io.BufferedReader;

importjava.io.File;

importjava.io.FileReader;

/**

*@authorGodwin

*@version2010-05-16

*/

publicclassEx1{

publicstaticvoidmain(String[]args)throwsException{

BufferedReaderbr=newBufferedReader(newFileReader(newFile(System

.getProperty("user.dir")

+File.separator+"Ex1.java")));

Strings;

while((s=br.readLine())!

=null){

System.out.println(s);

}

}

}

***************************************

3、编写一个Java应用程序,利用RandomAccessFile类,把几个int型整数(1,2,3,4,5,6,7,8,9,10)写入到一个名字为tom.dat文件中,然后按相反顺序读出这些数据并显示在屏幕上。

(注意,一个int型数据占4个字节)(本题30分)

packageitat;

importjava.io.File;

importjava.io.RandomAccessFile;

publicclassqq{

publicstaticvoidmain(String[]args)throwsException{

Stringdirectory="D:

/test123";

Stringname="tom.dat";

Filef=newFile(directory,name);

RandomAccessFilefile=null;

file=newRandomAccessFile(f,"rw");

inta[]={1,2,3,4,5,6,7,8,9,10};

for(inti=0;i

file.writeInt(a[i]);

}

RandomAccessFilefile1=newRandomAccessFile(f,"rw");

for(inti=0;i

intj=file1.readInt();

System.out.println(j);

}

}

}

4、编写一个JavaGUI应用程序,采用Java多线程技术,模拟自由落体和平抛运动:

一个球自由落下,一个球水平抛出。

(本题30分)

(自由落体物理公式:

h=g*t2/2;平抛运动物理公式:

h=g*t2/2,x=26*t;

h代表高度,t代表时间,g代表重力加速度=9.8m/s2)

附加题:

5、编写一个Java应用程序,实现如下功能:

1)判断两个字符串是否相同,s1=”youareastudent”,s2=”howareyou”;

2)判断字符串”22030219851022024”的前缀、后缀是否和某个字符串”220302”相同;

3)按字典顺序比较两个字符串”你”和”我”的大小关系;

4)将数字型字符串”100”和”123.678”转换为数字;

5)将字符串”FEDCBA”存放到数组中,调用for循环读出数组数据显示在屏幕上。

(本题20分)

publicclassaa{

publicstaticvoidmain(Stringags[]){

Strings1="youareastudent",s2="howareyou";

if(s1.equals(s2)){

System.out.println("s1和s2相同。

");

}else{

System.out.println("s1和s2不同。

");

}

Strings3="22030219851022024";

Strings4="220302";

if(s3.startsWith(s4))

{

System.out.println(s3+"的前缀为"+s4);

}else

{

System.out.println(s3+"的前缀不为"+s4);

}

if(s3.endsWith(s4))

{

System.out.println(s3+"的后缀为"+s4);

}else

{

System.out.println(s3+"的后缀不为"+s4);

}

Strings5="你";

Strings6="我";

if(pareTo(s6)<0)

{

System.out.println("\""+s5+"\"比\""+s6+"\"大");

}elseif(pareTo(s6)==0){

System.out.println("\""+s5+"\"和\""+s6+"\"等");

}else

{

System.out.println("\""+s5+"\"比\""+s6+"\"小");

}

Strings7="100";

Strings8="123.678";

intnum1=Integer.parseInt(s7);

Doublenum2=Double.parseDouble(s8);

System.out.println(num1);

System.out.println(num2);

Strings9="FEDCBA";

chars99[]=newchar[6];

for(inti=0;i

s99[i]=s9.charAt(i);

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

}

Strings92="FEDCBA";

char[]arr=s92.toCharArray();

for(inti=0;i

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

}

 

}

}

 

6、编写客户/服务器程序,客户端Client.java使用DatagramSocket对象将数据包发送到服务器,请求获取服务器端的图像(考生可自选图像文件)。

服务器端Server.java将图像文件包装成数据包,并使用DatagramSocket对象将该数据包发送到客户端。

首先将服务器端的程序编译通过,并运行起来,等待客户的请求。

(本题30分)

程序的运行效果如下图所示:

客户端

服务器端

 

服务端代码:

packagedatasocket;

importjava.io.*;

import.*;

publicclassFortuneServer1extendsThread{

DatagramSocketServerSocket;

publicFortuneServer1(){

super("FortuneServer1");

try{

ServerSocket=newDatagramSocket(1121);

System.out.println("FortuneServerupandrunning...");

}catch(SocketExceptione){

System.err.println("Exception:

couldn'tcreatedatagramsocket");

System.exit

(1);

}

}

publicvoidrun(){

if(ServerSocket==null)

return;

while(true){

try{

InetAddressaddress;

intport;

DatagramPacketpacket;

byte[]data=newbyte[16000];

packet=newDatagramPacket(data,data.length);

ServerSocket.receive(packet);

address=packet.getAddress();

port=packet.getPort();

FileinFile=newFile("D:

/q1.jpg");

FileInputStreaminStream=newFileInputStream(inFile);

if(inStream.read(data)<=0){

System.err.println("Error:

couldn'treadfortunes");

}

packet=newDatagramPacket(data,data.length,address,port);

ServerSocket.send(packet);

}catch(Exceptione){

System.err.println("Exception:

"+e);

e.printStackTrace();

}

}

}

publicstaticvoidmain(String[]args){

FortuneServer1server=newFortuneServer1();

server.start();

}

}

 

客户端代码:

packagedatasocket;

importjava.awt.Image;

importjava.awt.Toolkit;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.WindowAdapter;

importjava.awt.event.WindowEvent;

import.*;

importjavax.swing.ImageIcon;

importjavax.swing.JButton;

importjavax.swing.JFrame;

importjavax.swing.JLabel;

publicclassFortuneClientextendsJFrameimplementsActionListener{

/**

*

*/

privatestaticfinallongserialVersionUID=2567338201545440156L;

Imageimage=null;

privateJButtonbutton=newJButton("获取图像");

privateJLabellabel=newJLabel();

publicFortuneClient(){

this.setTitle("Iamaclient");

this.setSize(500,500);

this.setLocationRelativeTo(null);

this.addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente){

System.exit(0);

}

});

this.add(button,"North");

button.addActionListener(this);

this.setVisible(true);

}

publicvoidgetMessage(){

try{

DatagramSocketsocket;

DatagramPacketpacket;

byte[]data=newbyte[16000];

socket=newDatagramSocket();

packet=newDatagramPacket(data,data.length,InetAddress

.getByName("127.0.0.1"),1121);

socket.send(packet);

packet=newDatagramPacket(data,data.length);

socket.receive(packet);

image=Toolkit.getDefaultToolkit().createImage(packet.getData(),

0,packet.getData().length);

socket.close();

}catch(UnknownHostExceptione){

System.err.println("Exception:

hostcouldnotbefound");

}catch(Exceptione){

System.err.println("Exception:

"+e);

e.printStackTrace();

}

label=newJLabel(newImageIcon(image));

}

publicstaticvoidmain(Stringargs[]){

newFortuneClient();

}

publicvoidactionPerformed(ActionEvente){

//TODOAuto-generatedmethodstub

getMessage();

this.add(label);

label.setVisible(true);

this.setVisible(true);

}

}

 

1、某人有5张3分和4张5分的邮票,请编写一个程序,

计算由这些邮票中的1张或若干张可以得到多少种不同的邮资,

并按照邮资从小到大顺序显示。

(20分)

2、采用Java多线程技术编写程序,其中包括两个线程:

A和B,其中A线程准备休眠一小时,B线程每隔一秒输入3句“起床”后,

吵醒休眠的线程A。

(25分)

3、利用Java的GUI编程,编写一个窗体,

包含两个文本框和一个命令按钮。

其中一个文本框接收用户输入的一行字符串,

回车后在另一个文本框中重复输出三行,单击命令按钮可清空两个文本框的所有内容。

(25分)

4、编写一个Java应用程序,运行后,首先列出当前工作目录,

然后把当前目录下面的所有后缀为java的文件取出

(设置一个过滤器进行文件名后缀的过滤)。

(30分)

附加题:

5、使用堆栈结构输出,其中=2+2,=3,=8。

(20分)

6、访问Access2003数据库,在Access数据库中创建学生表(T_Student)表并配置ODBC驱动源,

学生表的结构和示例数据如下所示:

T_Student表:

字段名称说明数据类型约束备注

S_ID学号Integer主键

S_Name姓名Varchar(10)不允许空

S_Email邮箱Varchar(30)

S_Score英语成绩Integer

表数据示例:

S_IDS_NameS_EmailS_Score

1001JerryJerry@80

1002MikeMike@90

1003JohnJohn@78

使用Java语言编写程序,要求如下:

1)使用JDBC-ODBC桥驱动程序;

2)查询出表中所有记录,并按照主键升序显示。

参考提示代码:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Connectionconn=DriverManager.getConnection("jdbc:

odbc:

student","","");

(30分)

mportjava.util.*;

publicclassT1{

publicstaticvoidmain(Stringargs[]){

ArrayListal=newArrayList();

for(inti=0;i<=5;i++){

for(intj=0;j<=4;j++){

if((i*3+j*5)!

=0&&!

al.contains(i*3+j*5)){

al.add(i*3+j*5);

}

}

}

Collections.sort(al);

System.out.println("总共的邮资数是:

"+al.size());

System.out.println("他们从小到大的依次书序是:

");

for(Objecto:

al){

System.out.print(o+"-");

}

System.out.println("\b");

}

}

2importjava.util.*;

publicclassT2{

publicstaticvoidmain(String[]args){

Objecto1=newObject();

ThreadTwot2=newThreadTwo(o1);

ThreadOnet1=newThreadOne(o1,t2);

t1.start();//为确保t1先运行我让t2在t1的run方法里面启动

}

staticclassThreadOneextendsThread{

Objecta;

Threadt;

publicThreadOne(Objecto1,Threadt2){

a=o1;

t=t2;

}

publicvoidrun(){

t.start();

synchronized(a){

try{

System.out.println("我是A:

我要先睡一个小时");

a.wait(1000*3600);

System.out.println("我是A:

我被吵醒了");

}

catch(Exceptione){e.printStackTrace();}

}

}

}

staticclassThreadTwoextendsThread{

Objecta;

publicThreadTwo(Objecto1){

a=o1;

}

publicvoidrun(){

booleanflag=true;

Scannersc=newScanner(System.in);

ArrayListal=newArrayList();

try{

synchronized(a){

while(flag){

sleep(1000);

System.out.println("我是线程B:

起床");

al.add

(1);

System.out.println();

if(al.size()==3){

a.notify();

flag=false;

}

}

}

}catch(Exceptione){

e.printStackTrace();

}

}

}

}

3

importjava.awt.GridLayout;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.KeyEvent;

importjava.awt.event.KeyListener;

importj

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 商业计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2