计算机二级(java)机试16

  • 格式:docx
  • 大小:22.14 KB
  • 文档页数:4

1 [模拟] 计算机二级(java)机试16

一、基本操作题

第1题:

下面的程序的功能是求1~100的奇数的和及该和的平均值。请在程序的每条横线处填写一个语句,程序的功能完整。

注意:请勿改动main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。

public class SumAndAve{

public static void main(String args[ ]){

int count=0,sum=0,ave=0;

for(int i=1;i<=100;____________________)

if(_____________________)

continue;

else

{

___________________

sum=sum+i;

}

ave=sum/count;

System.out.println("sum="+sum);

System.out.println("ave="+ave);

}

}

参考答案:

i+=2 i%2==0 ++count;

详细解答:

本题主要考查for循环语句的用法。解答本题的关键是熟练使用for循环语句。在本题中,for(int i=1;i<=100;i+=2;)语句是用来控制 被求的奇数,i+=2;语句是使循环变量递增2,即所求的奇数,在程序中用到的count计数器是记录所求奇数的个数。

二、简单应用题

第2题:

简单应用题

请完成下列Java程序:读取自己的源文件并把它压缩成GZIP文件。

注意:请勿改动main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。

import java.io.*; 2 import java.util.zip.*;

public class exl6 2 {

public static void main{String[] arg) {

ex16_2 obj16_2 = new ex16_2();

obj16_2.doZip("ex16_2.java","ex16_2.gzip")

}

public void doZip(String strIn,String strOut

FileInputStream in;

FileOutputStream out;

GZIPOutputStream gzip;

int nFileLength;

byte[] barray = new byte[10];

try {

in = new FileInputStream(strIn);

out = new FileOutputStream(strOut);

gzip = new GZIPOutputStream(out);

while((nFileLength = in.read(barray, 0 barray.length)) > 0)

_____________________;

______________________;

gzip.close();

} catch(Exception e) {

e.printStackTrace();

}

} }

参考答案:

gzip.write(barray,0,nFileLength)in.close()

详细解答:

本题主要考查文件的读写操作。解题关键是熟悉文件读写操作,熟悉GZIP的编程模式,使用FileInputStream读取待压缩的文件,使用 GZIPOutputStream进行压缩,除了压缩之外还有解压缩,但是编程的模式一样,一旦压缩数据流被打开,可以象其他数据流一样进行读写。本 题中,第1个空,熟练掌握压缩数据流的写操作;第2今空,关闭输出文件刷新输出缓冲器很重要,因为程序没有执行正常刷新数据的垃圾回 收,所以就会暂停程序的执行。

三、综合应用题

第3题:

综合应用题

下面是一个Applet程序,其功能是绘制三维矩形以使该矩形面凹下,并将图像放入凹下的矩形面中。请改正程序中的错误(有下划线的

语句),使程序能输出正确的结果_______。

注意:不改动程序的结构,不得增行或删行。 3 程序运行结果如下:

import java.awt.*;

import java.applet.*;

import java.awt.image.*;

import java.util.*;

import .*;

/*

<applet code="ex16_3.class" width=800 height=400 >

</applet>

*/

public class ex16_3 extends Applet {

private Image IMG onClick=over(1) id=1a title=放大;

public void init() {

URL url = getCodeBase();

IMG onClick=over(2) id=2a title=放大 =

getImage(url,"ex16_3.gif");

MediaTracker mt = new MediaTracker();

mt.addImage(IMG onClick=over(3) id=3a title=放大,1);

try {

mt.waitForAll();

} catch(Exception e) {

e.printStackTrace();

}

setBackground(Color.black);

}

public void paint(Graphics g) {

int thick = 3, x = 10, y = 10;

g.drawImage(IMG onClick=over(4) id=4a title=放大,x,y);

g.setColor(Color.lightGray);

int w = IMG onClick=over(5) id=5a title=放大.getWidth(this);

int h = IMG onClick=over(6) id=6a title=放大.getHeight(this);

for(int i=0; i<thick; i++)

g.draw3DRect(x, y,w+(2*i),h+(2*i),true);

}

}

ex16_3.html

<HTML>

<HEAD>

<TITLE>ex16_3</TITLE>

</HEAD>

<BODY>

<applet code="ex16_3.class" width=800 height=400 >

</applet>

</BODY> 4 </HTML>

参考答案:

new MediaTracker(this)g.drawImage(IMG onClick=over(7) id=7a title=放大,x,y,this) g.draw3DRect(--x,--y,w+(2*i),h+(2*i),false)

详细解答:

本题主要考查Applet图形绘制和图像显示。解题关键是掌握绘制三维矩形的基本方法,掌握MediaTracker的基本用法,熟悉图形界面的坐 标分布级已通过简单的方法来获得坐标。本题中,第一处,MediaTracker类的对象初始化需要将this指针作为参数传递给该类的构造方法;第 二处,Graphics类的对象g调用drawImage()方法显示从磁盘文件中读取的Image对象,第四个参数需要将this作为参数传给该方法;第三处,g 调用draw3DRect()方法绘制三维矩形,最后一个参数为false表示矩形是凹下的,相反为凸起,第一和第二个参数作递减是为了让显示效果看 起来是矩形的左上方和图像的左上方有一定的距离,让人感觉矩形将图像包含在内。