计算机二级(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表示矩形是凹下的,相反为凸起,第一和第二个参数作递减是为了让显示效果看 起来是矩形的左上方和图像的左上方有一定的距离,让人感觉矩形将图像包含在内。