Java二级操作题第10套
基本操作
在考生文件夹中存有文件名为Java_1.java的文件,该程序是不完整的,请在注释行“//Found”下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行或改动其他已有语句内容。存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
程序的功能是:从键盘输入5个正整数,输出其中的最大值。
例如:从键盘输入
10
30
50
20
40
则屏幕显示
输入的最大值是 50
import java.io.*;
public class Java_1 {
public static void main(String[ ] args) throws IOException {
InputStreamReader ir;
BufferedReader in;
int max, x;
String data;
max = 0;
ir = new InputStreamReader(System.in);
in = new BufferedReader(ir);
System.out.println("请输入5个正整数:");
//*********Found**********
for (int i = 1; ___________; i++) {
data = in.readLine();
//*********Found**********
x = Integer.___________(data);
if ( max < x )
//*********Found**********
___________;
}
System.out.println("输入的最大值是 "+ max);
}
}
本题考查的是流程控制。
当从键盘输入5个数之后,需要通过循环语句将其读入,并转换成int类型依次赋值给变量x,所以第一空填"i<=5"。
Integer类的静态方法parseInt()的作用是将其它数据类型转换成整型,所以第二空填"parseInt"。
通过语句"if ( max < x )“可知,第三空是将if语句对比出的较大的整数赋值给变量max,所以第三空为"max=x”。
具体程序如下:
import java.io.*;
public class Java_1 {
public static void main(String[ ] args) throws IOException {
InputStreamReader ir;
BufferedReader in;
int max, x;
String data;
max = 0;
ir = new InputStreamReader(System.in);
in = new BufferedReader(ir);
System.out.println("请输入5个正整数:");
//*********Found**********
for (int i = 1; i<=5; i++) {
data = in.readLine();
//*********Found**********
x = Integer.parseInt(data);
if ( max < x )
//*********Found**********
max=x;
}
System.out.println("输入的最大值是 "+ max);
}
}
简单应用
在考生文件夹中存有文件名为Java_2.java的文件,该程序是不完整的,请在注释行“//Found”下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行或改动其他已有语句内容。存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
本题的要求是:
程序列出当前目录下所有文件和文件夹的名称。如果当前目录含有子文件夹,则也递归地列出子文件夹的内容,用缩进地方式反映层次关系,文件夹的名称用尖括号括起来。某次运行结果如下:
当前的工作目录是:Z:\test
Java_2.class
Java_1.java
Java_2.java
Java_3.java
import java.io.File;
public class Java_2
{
public static void main(String s[])
{
//Getting the Current Working Directory
String curDir = System.getProperty("user.dir");
System.out.println("当前的工作目录是:"+curDir);
//*********Found**********
File ff=new File(____________________);
String[] files=ff.list();
for(int i=0; i<files.length; i++)
{
String ss=curDir+"\\"+files[i];
traverse(0,ss);
}
}
/**
* 递归地遍历目录树
* @param level 目录的层次
* @param s 当前目录路径名
*/
public static void traverse(int level,String s)
{
File f=new File(s);
for(int i=0; i<level; i++) System.out.print(" ");
if(f.isFile())
{
System.out.println(f.getName());
}
else if(f.isDirectory())
{
//*********Found**********
System.out.println("<"+f._____________________+">");
String[] files=f.list();
level++;
//*********Found**********
for(int i=0; i<files.length;________________________)
{
String ss=s+"\\"+files[i];
//*********Found**********
traverse(_____________________,ss);
}
}
else
{
System.out.println("ERROR!");
}
}
}
本题主要考查的是文件和递归调用。
文件类File以一种系统无关的方式表示一个文件对象的属性。而目录在Java中作为一种特殊文件,即文件名的列表,通过类File所提供的方法,可得到文件或目录的描述信息,也可以生成新文件、目录、修改文件和目录、查询文件属性,重命名文件或者删除文件。File类中封装了对文件系统进行操作的功能。
递归就是用自身的结构来描述自身。一个使用递归技术的方法将直接或间接地调用自身的方法。
具体的程序如下:
import java.io.File;
public class Java_2
{
public static void main(String s[])
{
//Getting the Current Working Directory
String curDir = System.getProperty("user.dir");
System.out.println("当前的工作目录是:"+curDir);
//*********Found**********
File ff=new File(curDir);
String[] files=ff.list();
for(int i=0; i<files.length; i++)
{
String ss=curDir+"\\"+files[i];
traverse(0,ss);
}
}
/**
* 递归地遍历目录树
* @param level 目录的层次
* @param s 当前目录路径名
*/
public static void traverse(int level,String s)
{
File f=new File(s);
for(int i=0; i<level; i++) System.out.print(" ");
if(f.isFile())
{
System.out.println(f.getName());
}
else if(f.isDirectory())
{
//*********Found**********
System.out.println("<"+f.getName()+">");
String[] files=f.list();
level++;
//*********Found**********
for(int i=0; i<files.length;i++)
{
String ss=s+"\\"+files[i];
//*********Found**********
traverse(level,ss);
}
}
else
{
System.out.println("ERROR!");
}
}
}
综合应用
在考生文件夹中存有文件名为Java_3.java的文件,该程序是不完整的,请在注释行“//Found”下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行或改动其他已有语句内容。存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
本题的要求是:
程序运行后出现如图所示界面,点击增大按钮则左边的数字增大,点击减小按钮则左边的数字减小。
import java.awt.*;
import java.awt.event.*;
//*********Found**********
import javax._____________.*;
public class Java_3 {
public static void main(String[ ] args) {
JFrame frame = new JFrame("Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//*********Found**********
frame.___________________().add(new Change());
frame.pack();
frame.setVisible(true);
}
}
class Change extends JPanel {
int count = 200;
JLabel l1;
JButton b1, b2;
public Change( ) {
setPreferredSize(new Dimension(280, 60));
l1 = new JLabel("200");
b1 = new JButton("增大");
b2 = new JButton("减小");
add(l1);
//*********Found**********
add_____________;
//*********Found**********
add_____________;
b1.addActionListener( new BListener( ) );
b2.addActionListener( new BListener( ) );
}
//*********Found**********
private class _____________ implements ActionListener {
//*********Found**********
public void _____________(ActionEvent e) {
if (e.getSource( ) == b1) {
count++;
} else {
count--;
}
l1.setText("" + count);
}
}
}
本题考查的是Swing构件和AWT中的事件处理。
Swing中的大多数构件都是AWT构件名前面加了一个"J",JPanel是它的中间容器之一,根据"class Change extends JPanel"可知,第一空填"swing"。
getContentPane()的作用是初始化一个容器,用来在容器上添加一些控件,所以第二空填"getContentPane"。
根据程序中语句"b1 = new JButton(“增大”);“可知,程序已经定义了增大按钮,那么接下来需要将该按钮添加到界面中去,所以,第三空填”(b1)",同理,第四空填"(b2)"。
由语句"b1.addActionListener(new BListener());“和"b2.addActionListener(new
BListener());“可知,第五空填"BListener”。
事件发生后,Java运行时系统会自动调用对象的actionPerformed()方法进行处理,而且事件ActionEvent对象将被作为参数传递给actionPerformed()方法,在actionPerformed()方法可以通过读取ActionEvent对象的相关信息来得到事件发生时候的情况,所以第六空填"actionPerformed”。
具体程序如下:
import java.awt.*;
import java.awt.event.*;
//*********Found**********
import javax.swing.*;
public class Java_3 {
public static void main(String[ ] args) {
JFrame frame = new JFrame("Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//*********Found**********
frame.getContentPane().add(new Change());
frame.pack();
frame.setVisible(true);
}
}
class Change extends JPanel {
int count = 200;
JLabel l1;
JButton b1, b2;
public Change( ) {
setPreferredSize(new Dimension(280, 60));
l1 = new JLabel("200");
b1 = new JButton("增大");
b2 = new JButton("减小");
add(l1);
//*********Found**********
add(b1);
//*********Found**********
add(b2);
b1.addActionListener( new BListener( ) );
b2.addActionListener( new BListener( ) );
}
//*********Found**********
private class BListener implements ActionListener {
//*********Found**********
public void actionPerformed(ActionEvent e) {
if (e.getSource( ) == b1) {
count++;
} else {
count--;
}
l1.setText("" + count);
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!