二级JAVA机试-73
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二级JAVA机试-73
(总分:100.00,做题时间:90分钟)
一、1.基本操作题(总题数:1,分数:30.00)
1.下列程序中,要求按照从小到大的顺序输出1到100之间所有能被7整除的数字,请将下列程序补充完整。
注意:请勿改动main()主方法和其他已有语句内容,仅在横线处填入适当语句。
public class Example1_3
public static void main(String[] argv)
int i = 1;
________
if(______)
System.out.print(i + ",");
________
while(i < 100);
System.out.println();
(分数:30.00)
__________________________________________________________________________________________ 正确答案:(do
i%7==0
i++;或者i=i+1;或者i+=1;)
解析:[解析] 本题考查知识点:表达式语句、条件语句、循环语句。
解题思路:本题主要考查Java编程的流程控制。
Java语言中的流程控制主要是通过循环、分支和跳转三种语句来实现的。
在解这类题型的时候,首先要分清楚题中要考查的语句类型,比如本题考查了考生对
do-while循环的掌握情况;然后,再根据对应的类型,看题中的语句结构是否完整。
题中变量i从1循环增加到99,每一个数字模7,如果余数为0就认为这是一个可以被7整除的数。
本题中,do-while循环缺少了“do”这个循环开始语句,因此第一个空需要填写“do”以使循环体完整;最后也是最重要的,循环一定要保证能够正常结束,许多编程经验丰富的人也会因为一时大意而写出死循环来,这样的错误一定要避免。
第二个空就是使i值顺序增加,直到i=100时程序退出循环。
本题中还考查了考生对条件分支语句的掌握,即if语句。
在解条件分支语句的题的时候,首先要找出需要满足的条件是什么,需要通过分支语句分流的条件是什么。
比如题中要球能被7整除,所谓整除就是余数为0,这样我们就知道,分支条件就是余数值是否为0,则第二个空应该填写“i%7==0”。
二、2.简单应用题(总题数:1,分数:40.00)
2.请完成下列Java程序。
程序的功能是显示用户在命令行方式下指定的任意驱动器目录的内容。
提示:public String[]list();//将目录中所有文件名保存在字符数组中返回。
注意:请勿改动main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。
源程序文件代码清单如下:
import java.io.*;
public class FindDirectories
public static void main(String args[])
if(args.length==0)
args=new String[]"..";
try
__________
String[] fileName=pathName.list();
for(int i=0;i<fileName.length;i++)
File f=new File(pathName.getPath(), fileName[i]
if(_________)
System. out .println (f. getCanonicalPath ( ));
main (new String[]
f.getPath ()
);
catch(IOException e)
e.printStackTrace();
(分数:40.00)
__________________________________________________________________________________________ 正确答案:(File pathName=new File(args[0]);
f.isDirectory())
解析:[解析] 本题主要考查对文件操作的基本知识。
解答本题的关键是熟练掌握对文件操作的基本知识。
其中,File pathName=new File(args[0]);语句的功能是生成File类对象.pathName;if(f.isDirectory())语句的功能是判断生成的f对象是否为目录。
三、3.综合应用题(总题数:1,分数:30.00)
3.下面是一个Applet程序,其功能是计算山顶的高度,计算方法是:该山顶由a点量得仰角度数为a度,由b点量得仰角度数为b度,且测得a,b点之间的距离为c米,求山的高度。
要求窗口中有3个输入框,分别作为a,b,c的输入,一个按钮点击后进行计算,结果显示在另一个文本框中(这个文本框不可编辑)。
请改正程序中的错误(有下划线的语句),使程序能输出正确的结果。
注意:不改动程序的结构,不得增行或删行。
源程序文件代码清单如下:
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
<applet code="ex6_3.class" width=800 height=400 >
</applet>
*/
public class ex6_3 extends Applet implements ActionListener
Panel pane=new Panel();
Label 11 = new Label("a 点仰角:");
TextField tfl = new TextField(5);
Label 12 = new Label("b 点仰角:");
TextField tf2 = new TextField(5);
Label 13 = new Label("a,b 之间距离:");
TextField tf3 = new TextField(5);
Button btn = new Button("OK");
Label 14=new Label ("山高");
TextField tf4=new TextField(20);
ex6_3 obj23_3;
public void init()
pane.setLayout (new FiowLayout(FlowLayout.LEFT,10,5));
pane.add (11);
pane.add (tf1);
pane.add (12);
pane.add (tf2);
add ("North", pane);
Panel p2=new Panel();
p2.setLayout(new FlowLayout (FlowLayout. LEFT, 10,5));
p2.add(13);
p2.add (tf3);
p2.add(btn);
btn. addActionListener (this);
add ("Center", p2);
Panel p3=new Panel();
p3.setLayout(new FlowLayout (FlowLayout.LEFT,10,5));
p3.add(14);
tf4. setEditable (true);
p3.add(tf4);
add ("South", p3);
obj23_3=new ex6_3();
public void doMessure(double al,double a2,double a3,TextField tf)
double pi=Math. PI,a,b,h;
a=al*pi/180.0;
b=a2*pi/180.0;
h=a3/(1.0/Math. tan (a) -1.0/Math. tan (b));
tf.setText (Integer.toString(h));
public void actionPerformed(ActionEvent ae)
double a,b, c;
try
a=new Double(tf1.getText()) .doubleValue
b=new Double(tf2,getText ()) .doubleValue
c=new Double(tf3.getText()) .doubleValue
obj23_3.doMessure(a,b,c, tf4);
catch (NumberFormatException nfe)
tf4.setText("wrong number!");
ex6_3. html
<HTML>
<HEAD>
<TITLE>ex6_3</TITLE>
</HEAD>
<BODY>
<applet code="ex6_3.class" width=800 height=400 >
</applet>
</BODY>
</HTML>
(分数:30.00)
__________________________________________________________________________________________ 正确答案:(tf4.setEditable(false)
h=a3/Math.abs(1.0/Math.tan(a)-1.0/Math.tan(b))
tf.setText(Double.toString(h)))
解析:[解析] 本题主要考查Applet窗口编程和AWT基本构件的使用以及事件处理机制。
解题关键是设计出计算山高的方法,并且结合事件处理机制,调用该计算方法实现程序的功能。
本题中,第1处,由于用显示结果的文本框不可编辑,因此参数为false;第2处,需要对分母进行取绝对值操作,否则最后结果会产生负数;第3处,由于h是double类型的变量,做数据类型转换时需要调用Double类的toString()方法。