[计算机类试卷]国家二级(JAVA)机试模拟试卷70及答案与解析.doc

上传人:eventdump275 文档编号:503606 上传时间:2018-11-29 格式:DOC 页数:7 大小:33.50KB
下载 相关 举报
[计算机类试卷]国家二级(JAVA)机试模拟试卷70及答案与解析.doc_第1页
第1页 / 共7页
[计算机类试卷]国家二级(JAVA)机试模拟试卷70及答案与解析.doc_第2页
第2页 / 共7页
[计算机类试卷]国家二级(JAVA)机试模拟试卷70及答案与解析.doc_第3页
第3页 / 共7页
[计算机类试卷]国家二级(JAVA)机试模拟试卷70及答案与解析.doc_第4页
第4页 / 共7页
[计算机类试卷]国家二级(JAVA)机试模拟试卷70及答案与解析.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、国家二级( JAVA)机试模拟试卷 70及答案与解析 一、基本操作题( 30分) 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=

2、sum/count; System.out.println( “sum=“+sum); System.out.println( “ave=“+ave); 二、简单应用题( 40分) 2 请完成下列 Java程序:假设某家银行,它可接受顾客的汇款,每做一次汇款,便可计算出汇款的总额。现有两个顾客,每人都分 3次,每次将 50元钱汇入。编写一个程序,模拟实际作业。要求实现 2个类,一个是银行类,一个是顾客类。 注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 程序运行结果如下: Customer2 : sum=50 Customer1 : sum=50 Custo

3、mer1 : sum=100 Customer2 : sum=100 Customer1 : sum=150 Customer2 : sum=150 class bank private static int sum=0; public static void add(int n,char c) int tmp=sum; _; try Thread. sleep( (int) (2000-500+1)*(Math. random( ) ) ) )+500) catch ( InterruptedException e) sum=tmp; System. out. println(“Custom

4、er“+c+“:sum=“+sum) ; class customer extends Thread static char flag4_1 =1 public void run() char myflag4_1, synchronized(this) myflag4_1= flag4_1+; for (int i=1;i =3;i+) _; public class ex4_1 public static void main(String args) customer c1 = new customer( ); customer c2 = new customer( ) c1. start(

5、) c2. start( ) 三、综合应用题( 30分) 3 下面是一个 Applet程序,其功能是输入 3个双精度浮点数: a, b, c,构成一个一元二次方程, a*x*x+b*x+c=0,其判别式 d=b*b-4*a*c,若 d为负数则输出 “没 有实根 ”,否则打印出 2个实根。要求,有 3个输入框,输入 a, b, c,一个按钮,点击实现求根过程,一个不可编辑的文本区,用作输出结果。请改正程序中的错误(有下划线的语句 ),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 import java. io. * import java. awt. * import ja

6、va. awt. event. * import java. applet. Applet; /* applet code=“ex3_1. class“ width=800 height=400 /applet */ public class ex3_1 extends Applet implements ActionListener Panel pane= new Panel(); Label 11=new Label(“a: “) TextField tf1 =new TextField(5) Label 12 = new Label (“b: “) TextField tf2=new T

7、extField(5); Label 13=new Label(“c:“) TextField tf3=new TextField(5); Button btn= new Button(“OK“) Label 14=new Label(“答案 “) TextField tf4=new TextField(20); ex3_1 obj3_1 public void init() pane. setLayout( new FlowLayout (FlowLayout. LEFT, 10,5 ) ) pane. add(11) pane. add(tf1) pane. add(12) pane. a

8、dd(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. setEdi

9、table(false) p3. add(tf4) add(“South“ ,p3) obj3_1 = new ex3_1 ( ) public void doReal(double a1,double a2,double a3,TextField tf) double d, x1, x2 d=a1 * a1-4.0 * a2 * a3; if(d =0.0) x1=(-a2+Math. sqrt(d)/(2.0 * a1); x2=(-a2+Math. sqrt(d)/(2.0 * a1); tr. setText(“2个实根 :x1=“+x1+“nx2=“+x2); else tr. se

10、tText ( “没有实根 !“) 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( ); obj3_1, doReal(a,b,c, 14); catch(NumberFormatException nfe) tf4. setTex

11、t( “wrong number!“) ex3_l. html HTML HEAD TITLE ex3_l /TITLE /HEAD BODY applet code=“ex3_l, class“ width=800 height=400 /applet /BODY /HTML 国家二级( JAVA)机试模拟试卷 70答案与解析 一、基本操作题( 30分) 1 【正确答案】 i+=2 i 2=0 +count; 【试题解析】 本题主要考查 for循环语句的用法。在本题中, for(int i=1; i=100; i+=2; )语句是用来控制被求的奇数, i+=2;语句是使循环变量递增 2,即所

12、求的奇数,如果 该数不为奇数,即 if (i 2=0), continue,跳过循环体余下的语句,对 for语句的 “表达式 3”即 i+=2求值;如果该数为奇数,用 count计数器记录所求奇数的个数。 二、简单应用题( 40分) 2 【正确答案】 tmp=tmp+n bank.add(50, myflag4_1) 【试题解析】 本题主要考查线程的同步和设计简单的类来模拟现实问题的简单应用。解题关键是熟练掌握面向对象的编程思想,熟悉 Java线程的同步编程,会使用 Math类的随机数方法。本题中,第 1个空,银行类对客户的存款进行 累加;第2个空,在客户类中,通过使用银行类的对象 bank调

13、用 add()方法实现 3次汇款的操作,将钱数和客户标志作为参数传递给 add()方法。 三、综合应用题( 30分) 3 【正确答案】 d=a2*a2-4.0*a1*a3 x2=(-a2-Math sqrt(d)/(2.0*a1) obj3_1.doReal(a, b, c, tf4) 【试题解析】 本题主要考查 Applet窗口编程和 AWT基本构件的使用和事件处理机制以及一元二次方程组的求根公式。解题关键是熟悉基本组件 Button,Panel, Label等的用法和事件处理机制,熟悉一元二次方程组的求解,会使用Math类中给出的常用方法进行简单的数学计算。本题中,第 1处,求判别式,注意判别式的公式是 d= b*b-4*a*c,弄清楚 doReal()方法中的参数对应的关系;第 2处,求根公式的表示,应该 - a2-Math sqrt(d),否则,两个根一样;第 3处,对象。 obj3_1调用 doReal()方法时,注意,最后 1个参数是 TextField类的对象,而不是 Label类的对象。

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

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1