Java二级操作题第41套
基本操作
在考生文件夹中存有文件名为Java_1.java的文件,该程序是不完整的,请在注释行“//Found”下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行或改动其他已有语句内容。存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
程序的功能是:在一个整型数组中查找指定的数,如果找到则停止查找并将该数在数组中的位置输出。
程序的运行结果如下:
Found 18 at index 4
public class Java_1{
public static void main(String[] args){
//**************found*****************
_________arrayOfInts = { 33, 88, 5, 458, 18, 107, 200, 8, 622, 127 };
int searchfor = 18;
int i = 0;
//**************found*****************
_________ foundIt = false;
for ( ; i<arrayOfInts.length; i++){
//**************found*****************
if (arrayOfInts[i] == _________ ){
foundIt = true;
//**************found*****************
_________;
}
}
if (foundIt) {
System.out.println("Found " + searchfor + " at index " + i);
} else {
System.out.println(searchfor + "not in the array");
}
}
}
本题着重考查考生对Java语言基本数据类型的掌握情况。
本题中的第一个空格:arrayOfInts后面是一个整型数组,结合数组的定义方法,arrayOfInts前面加上int[],因此填入int[];
本题中的第二个空格:foundIt赋值为false,可以知道foundIt是布尔类型,因此填入boolean;
本题中的第三个空格:结合题干,此处为找到18这个数,因此此处填入18,searchfor变量已经被赋值为18,因此此处也可以填入searchfor;
本题中的第四个空格:结合题干,找到数后即可把位置输出,为了防止i继续增加,应该退出for循环,因此此处填入break;
本评析仅作参考。
public class Java_1{
public static void main(String[] args){
//**************found*****************
int[] arrayOfInts = { 33, 88, 5, 458, 18, 107, 200, 8, 622, 127 };
int searchfor = 18;
int i = 0;
//**************found*****************
boolean foundIt = false;
for ( ; i<arrayOfInts.length; i++){
//**************found*****************
if (arrayOfInts[i] == searchfor ){
foundIt = true;
//**************found*****************
break;
}
}
if (foundIt) {
System.out.println("Found " + searchfor + " at index " + i);
} else {
System.out.println(searchfor + "not in the array");
}
}
}
简单应用
在考生文件夹中存有文件名为Java_2.java的文件,该程序是不完整的,请在注释行“//Found”下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行或改动其他已有语句内容。
存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
程序釆用两种不同方式生成线程,使上面的5个线程输出5个1,使下面的5个线程输出1到5。
运行结果如下:
1
1
1
1
1
1
2
3
4
5
import java.io.*;
import java.lang.Thread;
//**************found*****************
class MyThread extends _________{
public int x = 0;
public void run(){
//**************found*****************
System.out.println(_________);
}
}
//**************found*****************
class R implements _________{
private int x = 0;
//**************found*****************
public void _________(){
System.out.println(++x);
}
}
public class Java_2 {
public static void main(String[] args) throws Exception{
for(int i=0;i<5;i++){
Thread t = new MyThread();
t.start();
}
Thread.sleep(1000);
R r = new R();
//**************found*****************
for(int i=0;i< ________;i++){
Thread t = new Thread(r);
//**************found*****************
t._________();
}
}
}
本题着重考查考生对Java语言线程的掌握情况。
本题中的第一个空格:根据题干5个线程先输出5个1,即5个线程是独立的,因此继承的是Tread类,此处填入Thread;
本题中的第二个空格:每个线程相互独立,要想输出1,此处填入1;
本题中的第三个空格:结合题干,每个线程的数值加1,输出语句中也是++x,此处填入Runnable;
本题中的第四个空格:运行线程,此处填入run;
本题中的第五个空格:结合题干,输出5个数字,此处填入i<5;
本题中的第六个空格:线程定义完成后,启动线程使用start()方法,此处填入start;
本评析仅作参考。
import java.io.*;
import java.lang.Thread;
//**************found*****************
class MyThread extends Thread{
public int x = 0;
public void run(){
//**************found*****************
System.out.println(++x);
}
}
//**************found*****************
class R implements Runnable{
private int x = 0;
//**************found*****************
public void run(){
System.out.println(++x);
}
}
public class Java_2 {
public static void main(String[] args) throws Exception{
for(int i=0;i<5;i++){
Thread t = new MyThread();
t.start();
}
Thread.sleep(1000);
R r = new R();
//**************found*****************
for(int i=0;i< 5;i++){
Thread t = new Thread(r);
//**************found*****************
t.start();
}
}
}
综合应用
在考生文件夹中存有文件名为Java_3.java的文件,该程序是不完整的,请在注释行“//Found”下一行语句的下划线地方填入正确内容,然后删除下划线,请勿删除注释行或改动其他已有语句内容。存盘时文件必须存放在考生文件夹下,不得改变原有文件的文件名。
程序的功能是:当用户在“角度”后面输入角度值,点击按钮“计算”后,会计算其正弦函数的值,并在下方的区域中显示出来;当多次对不同值进行计算时,其所有计算内容都会在下方区域显示出来。注意该区域不能进行编辑。下图所示的是可能的运行的界面显示。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Java_3 extends JFrame implements ActionListener{
private double x = 0;
private double y = 0;
JTextField xval = new JTextField(10);
JButton calcBtn = new JButton("计算");
JTextArea result = new JTextArea(10,20);
void initFrame(){
Container content = getContentPane();
content.setLayout(new BorderLayout());
JPanel calcPanel = new JPanel();
calcPanel.setLayout(new FlowLayout());
calcPanel.add(new JLabel("角度"));
calcPanel.add(xval);
//***************************Found*********************
calcPanel._________;
content.add(calcPanel,"North");
//***************************Found*********************
calcBtn.____________________;
content.add(result,"Center");
//***************************Found*********************
result.____________________;
}
public Java_3(){
super("计算正弦函数");
setSize(500,200);
initFrame();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e){
//***************************Found*********************
if (e.getSource()==___________){
x = Double.parseDouble(xval.getText())/180*3.14;
y = Math.sin(x);
//***************************Found*********************
String str="sin("+ ___________ +"*3.14/180)= "+y+'\n';
//***************************Found*********************
result.__________;
}
}
public static void main(String[] args){
new Java_3();
}
}
本题着重考查考生对Java语言中panel、button、textarea等控件的掌握情况。
本题中的第一个空格:根据题干角度、数值和计算按钮在一行上,calcPanel在add完角度和文本框后,应该再把按钮添加进来,因此填入为add(calcBtn);
本题中的第二个空格:对button要添加相应的动作监听器,以接收发自此按钮的动作事件,当在此按钮上按下或释放鼠标时,发生动作事件,因此填入addActionListener(this);
本题中的第三个空格:结合题干,显示内容的区域不能被编辑,因此要对result设置为不可编辑,因此填入setEditable(false);
本题中的第四个空格:结合题干,点击计算按钮后才能显示结果,因此此处应该判断事件的主体是否为calcBtn按钮,因此填入calcBtn;
本题中的第五个空格:结合题干,要输出填入的角度值,因此填入xval.getText();
本题中的第六个空格:结合题干,要将所有结果依次排列在输出文本区域内,因此填入append(str);
本评析仅作参考。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Java_3 extends JFrame implements ActionListener{
private double x = 0;
private double y = 0;
JTextField xval = new JTextField(10);
JButton calcBtn = new JButton("计算");
JTextArea result = new JTextArea(10,20);
void initFrame(){
Container content = getContentPane();
content.setLayout(new BorderLayout());
JPanel calcPanel = new JPanel();
calcPanel.setLayout(new FlowLayout());
calcPanel.add(new JLabel("角度"));
calcPanel.add(xval);
//***************************Found*********************
calcPanel.add(calcBtn);
content.add(calcPanel,"North");
//***************************Found*********************
calcBtn.addActionListener(this);
content.add(result,"Center");
//***************************Found*********************
result.setEditable(false);
}
public Java_3(){
super("计算正弦函数");
setSize(500,200);
initFrame();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e){
//***************************Found*********************
if (e.getSource()==calcBtn){
x = Double.parseDouble(xval.getText())/180*3.14;
y = Math.sin(x);
//***************************Found*********************
String str="sin("+ xval.getText() +"*3.14/180)= "+y+'\n';
//***************************Found*********************
result.append(str);
}
}
public static void main(String[] args){
new Java_3();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!