1、国家二级( JAVA)机试模拟试卷 38及答案与解析 一、基本操作题( 30分) 1 下面是关于字符界面基本输入输出的程序,请在程序的每条横线处填写一个语句,使程序的功能完整。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 _ public class SimpleCharInOut public static void main(String args) char c=“ “; System.out.println(“Enter a character please: “); try _/接受用户键盘输入的字符并保存在变量 c中 catch(_e) Sy
2、stem.out.println(“Youve entered character “+c); 二、简单应用题( 40分) 2 请完成下列 Java程序:查找一个矩阵中的鞍点,对于一个二维数组中的鞍点,该点位置上的元素在该行上最小,在该列上最大,也可能没有鞍点。数组大小为 4行 5列。 注意:请勿改动 main()主方法和其他已有语句内容,仅在下划线处填入适当的语句。 public class ex30_2 public static void main(String args) int i, j, flag,m=4,n=5; int min=new int 4; int max=new in
3、t 5; int r =2,5,6,7,9, 32,65,2,78,12, 1,8,5,96,4, 5,3,21,73,23; flag=0; for (i=0; i m; i+) /获取元素在该行上最大 mini=ri 0; for (j=1; j n; j+) if(ri j mini) _; for (j = 0; j n; j + ) /获取同一元素在该列上最大 maxj=r0 j; for(i=l;i m;i+) if(ri j maxj) _ for(i=0;i m;i+) for(j=0;j n;j+) if(mini=maxj) System.out.print(“(“+i+“
4、, “+j+“) : “+ri j); flag=1; if(flag=0) System.out.println(“没有鞍点 !“); 三、综合应用题( 30分) 3 下面是一个 Applet程序,其功能是统计输入字符串中的每个字符在该串中出现的次数。要求,窗口中有一个文本框作为输入,一个按钮,点击则进行统计,统计结果以图形方式输出。请改正程序中的错误 (有下划线的语句 ),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 程序运行结果如下: import java.awt.*; import java.applet.*; import java.lang.*; publi
5、c class ex29 3 extends Applet private TextField tf; private Button btn; public void init() tf = new TextField(25); add(tf); btn = new Button(“统计 “); add(btn); resize(250, 200); public void paint(Graphics g) String str= tf.getText(); short cnt=new short65536; int i; int n = 50; for(i=0;i 65536;i+) cn
6、ti=0; for(i=0;i str.length();i+) cnt i +; for (i=0;i65536;i+)/对数级 Cnt 进行初始化 if (cnt i =0) g.drawStrinq(i+“出现“+cnti+“次 “,50,n); n+=20; public boolean action(Event e, Object o) if (o = “统计“) repaint(); return true; else return false; ex29_3, html HTML HEAD TITLEex29_3 /TITLE /HEAD BODY applet code=“ex
7、29_3.class“ width=800 height=400 /applet /BODY /HTML 国家二级( JAVA)机试模拟试卷 38答案与解析 一、基本操作题( 30分) 1 【正确答案】 import java io *; c=(char)System in.read(); IOException或 Exception 【试题解析】 本题主要考查 try-catch异常捕获结构。解答本题的关键是熟练掌握异常的捕获知识。在本题中, import java io *;语句的功能是导入 java io包, c=(char)System in read();语句的功能是从键盘缓冲区获得
8、一个字符数据,并赋给字符变量 C, IOExcepfion e声明一个 IOExcepfion型对象 e。 二、简单应用题( 40分) 2 【正确答案】 mini=rij maxj=rij 【试题解析】 本题主要考查二维数组和 for循环语句。解题关键是首先找出每行中最小的元素放在 min数组中,再求出每列中最大的元素放在 max数组中,再对两个数组中的每个数进行比较,如果有相同的,则这个数就是鞍点。本题中,第 1个空,将每行最小的元素写给 min数组;第 2个空,将每列中最大的元素写给max数组。 三、综合应用题( 30分) 3 【正确答案】 cntstr charAt(i)+ cnti0
9、g drawString(char)i+“出现 “+cnti+“次 “, 50, n) 【试题解析】 本题主要考查字符串操作和字符操作以及 Applet图形用户界面设计。解题关键是会将输入的字符串分成每 1个字符,并且会用计数器实现对字符进行统计,会使用 Applet图形用户界面的基本方法完成结果的输出。本题中,第1处,要明白 cnt的下标是字符在所有的字符集合中的索引值,根据 str对象的charAt()方法返回字符索引值,在对这个索引值进行统计;第 2处,判断条件必须大于 0否则会输出所有的字符;第 3处, i变量是字符表中的索引值,对其进行直接类型转换为 char则得到了由 i索引的字符表中 的字符的值。