首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下应用说明、图和Java代码,根据要求回答问题1至问题5。 【说明】 Stack类是java. ntil包中专门用来实现栈的工具类。以下Java程序是一个不使用库函数而实现字符串反转的程序。例如,输入:123456,则输出:654321:
阅读以下应用说明、图和Java代码,根据要求回答问题1至问题5。 【说明】 Stack类是java. ntil包中专门用来实现栈的工具类。以下Java程序是一个不使用库函数而实现字符串反转的程序。例如,输入:123456,则输出:654321:
admin
2009-02-15
52
问题
阅读以下应用说明、图和Java代码,根据要求回答问题1至问题5。
【说明】
Stack类是java. ntil包中专门用来实现栈的工具类。以下Java程序是一个不使用库函数而实现字符串反转的程序。例如,输入:123456,则输出:654321:输入:asdfeg,则输出:gefdsa。
【Java程序】
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class UseStack extends Applet implements ActionListener
{ Stack MyStack;
Label prompt=new Label("输入要反转字符:");
Button pushBtn=new Button("压栈");
Button popBtn=new Button("弹栈"); //反转
TextField input=new TextField(5);
int[] DrawStack =new int[10]; //记录堆栈中数据
int[] PoppedOut=new int[20]; //记录被弹出的数据
int StackCnt=0; //记录模拟堆栈的数组中的数据个数
String msg=" ";
public void init()
{ MyStack=new Stack();
add(prompt);
add(input);
add(pushBtn);
add(popBtn);
pushBtn.addActionListener(this);
(1)
}
public void paint(Graphics g)
{ for (int i=10; i<StackCnt; i++) //模拟显示堆栈内部的数据排列情况
{ g.drawRect(50,200-i*20,80,20);
g.drawString(Integer.toString(DrawStack
),80,215-i*20);
}
for (int i=0;(2) ) //显示被弹出的数据
g.drawString(Integer.toString(PoppedOut
),200+i*20,100);
g.drawString("堆栈",70,236);
g.drawString("栈底",135,225);
g.drawString("栈顶",160,225-StackCnt*20);
g.drawString(msg,200,140);
}
public void actionPerformed( (3) )
{ if (e.getAct ionCommand () == "压栈") //压栈操作
{ if(StackCnt<10)
{ MyStack.push(new Integer( (4) ));
DrawStack[StackCnt++]=Integer.parseInt(input.getText() );
input.setText (" ");
}
else
msg="输入数据过多,请先弹栈!"
}
else if (e.getActionCommand () == "弹栈") //弹栈操作
{ if( (5) )
{ StackCnt--;
PoppedOut[PopCnt++]=[(Integer)(MyStack.pop())).intValue();
}
else
msg="堆栈已空,不能再弹栈!";
}
repaint();
}
}
选项
答案
(1)popBtn.addActionListener(this); (2)i<PopCnt;i++或其等价语句 (3)ActionEvente (4)input.getText() (5)!MyStack.empty()或其等价语句
解析
这是一道要求读者掌握Java中Stack类工具应用的程序设计题。本题的解答思路如下。
堆栈简称为栈,遵循“后进先出(LIFO)”原则。Stack是Java用来实现栈的工具类,它的主要方法如表2-16所示。本试题的Java程序是使用Stack类实现堆栈中弹栈和压栈的操作。
对于本试题,Java程序中使用输入区域input来接收用户输入的数据,并用pushBtn按钮对应的操作将该数据压入堆栈,使用popBtn按钮对应的操作将数据从栈顶弹出,所以要随时监听这两个按钮是否有操作。程序中已给出了监听pushBut按钮是否有操作的语句“pushBut.addActionListener(this);”,同理可得,要随时监听popBut按钮是否有操作,则(1)空缺处所填写的弹栈按钮监听语句是“popBtn.addAction Listener(this);”。
本Java程序为了显示堆栈中数据排列的情况和数据弹出的情况,还定义了两个一维数组DrawStaek[ ]和PoppedOut[ ]分别记录堆栈中的数据和被弹出的数据。由于程序中己给出PopCnt是用来“记录模拟堆栈的数组中被弹H1的数据个数”等注释信息,而(2)空缺处所在的循环体是用来显示被弹出的数据。因此(2)空缺处所填写的内容是“i<PopCnt;i++”。
(3)空缺处所填写的内容用于设置监听操作,应填写“ActionEvent e”。
在使用压栈、弹栈操作时,压入堆栈和弹出堆栈的都是object对象或是。object子类的对象,而不是基本数据类型的数据。通常一个堆栈里可以保存不同类的对象,而本Java程序堆栈中保存的都是Integer类的对象。在压栈操作中,(4)空缺处要获取压入栈的数据,因此该空缺处应填入“input.getText()”。
在弹栈操作中,(5)空缺处用于判断栈是否为空,若不为空,才能进行弹栈操作,因此该空缺处所填写的判断条件是“!MyStack.empty()”。
转载请注明原文地址:https://kaotiyun.com/show/dEjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
对用户来说,信息系统的(14)反映了系统的功能。
在Excel中,绝对地址在被复制或移动到其他单元格时,其单元格地址______。
在PowerPoint中,使用快捷键(55)可以使选定的文本添加下划线。
计算机网络有多种分类方法,下列叙述中不正确的是(15)。
下列关于数据库系统的说法中,(62)是错误的。
某商场的部门和商品两个实体之间的关系如下图所示。假设每个部门负责销售若干种商品,每种商品只能由一个部门负责销售,那么部门和商品之间存在着(14)的联系。
信息处理技术员资格考试的试卷包括信息处理基础知识、计算机基础知识、法律法规知识、专业英语、办公软件使用技能五个方面。某次考试后,对这五个方面分别统计了各考生的得分率以及全国的平均得分率。为了直观展现每个考生在各个方面的水平以及该考生的整体水平,并与全国平均
下面关于幻灯片打印的叙述中,正确的是______。
PowerPoint可以通过插入(55)来完成统计、计算等功能。
随机试题
()指基金管理人运用科学化的经营管理方法降低运作成本,提高经济效益,以合理的控制成本达到最佳的内部控制效果。
林某以个人财产出资设立一个人独资企业,聘请陈某管理该企业事务。林某病故后,因企业负债较多,林某的妻子作为唯一继承人明确表示不愿继承该企业,该企业只得解散。根据个人独资企业法律制度的规定,关于该企业清算人的下列表述中,正确的是()。
中国素菜的三个派系包括()。
由于猪肉的季节性短缺,为了保证学生摄入足够的蛋白质,学校伙食科决定购用鱼类代替猪肉作为学生所需的蛋白质的主要副食品来源。尽管猪肉的每公斤单价平均要比鱼类贵,但是,为了使学生所摄人的蛋白质不低于食用猪肉时的标准,学校伙食科需要支付更多的钱来购买主要副食品。
用人单位不能单方面解除劳动合同的情形是()
由于人气干旱,村委会决定用抽水机抽取水库中剩余的水浇灌农田。假如每天水库的水以均匀的速度蒸发,经计算,若用20台抽水机全力抽水,水库中水可用5周;若用16台抽水机,水库中水可用6周;若用11台抽水机,水库中的水可用多少周?()
“钟鸣鼎食”往往用来形容贵族生活。考古发现的青铜乐器“钟”始见于周代遗址,可能存在于()
恩格斯在总结和概括了近代哲学发展的基础上,提出了哲学的基本问题。哲学的重大的基本问题是()
(2012年第8题)邓小平指出:“解决民族问题,中国采取的不是民族共和国联邦的制度,而是民族区域自治的制度。我们认为这个制度比较好,适合中国的情况。”我国实行民族区域自治的历史依据是
假设(SP)=0100H,(SS)=200H,执行POP AX指令后,栈顶的物理地址是=_____。
最新回复
(
0
)