全国29年高等教育自学考试java语言程序设计一试题Word格式.docx
《全国29年高等教育自学考试java语言程序设计一试题Word格式.docx》由会员分享,可在线阅读,更多相关《全国29年高等教育自学考试java语言程序设计一试题Word格式.docx(9页珍藏版)》请在冰豆网上搜索。
![全国29年高等教育自学考试java语言程序设计一试题Word格式.docx](https://file1.bdocx.com/fileroot1/2023-1/6/69031454-8522-48f6-afac-51994bf257f1/69031454-8522-48f6-afac-51994bf257f11.gif)
A.start()B.init()
C.resume()D.run()
9.在以下供选择的方法中,不能用于文件随机访问的方法是()
A.readChar()B.readLong()
C.readInteger()D.writeChars()
10.某程序利用网址参数创建URL对象url,接着希望利用对象url获得URLConnection对象,则这个url对象要调用的方法是()
A.connection()B.URLConnection()
C.getConnection()D.openConnection()
二、填空题(本大题共10小题,每小题2分,共20分)
请在每小题的空格中填上正确答案。
错填、不填均无分。
11.一个应用程序必须在某个类中定义的方法是______。
12.import语句的格式是______。
13.在面向对象语言中,对象之间的交互通过______实现。
14.设有两个字符串对象str1和str2,则表达式“strl==str2”的意义是判别字符串strl和str2______。
15.一个基于Swing的应用程序可能在任何平台上都会有相同的______。
16.处理键盘事件的Java程序,要实现的接口是______。
17.Java语言约定,坐标原点位于绘图区域的______。
18.Java程序中,在临界段中使用______方法,使执行该方法的线程等待。
19.BufferedWriter类对象能按行输入文件的内容,按行输入的方法是______。
20.在包中有InetAddress类的定义,Java程序中的InetAddress类对象存储的内容是______。
三、简答题(本大题共6小题,每小题3分,共18分)
21.请写出实现计算y=|x|的if语句。
22.以下代码定义了一个类,请指出其中三条不合法的代码行(行号参见注释)。
classTest22{//1
floatu;
staticfloatv;
//2
staticvoidsetUV(booleanf){//3
u=fac1(f);
//4
v=fac2(!
f);
}//5
staticfloatfacl(booleanf){returnf?
u:
v;
}//6
floatfac2(booleanf){returnf?
v:
u;
}//7
}//8
24.写出设置Font对象fn的Java语句,要求Courier字体,BOLD风格,18磅字号,设调用对象的类型为Graphics的g。
25.通过流的构造方法建立文件流对象,请写出创建输入输出文件流对象的两种常用构造方法。
26.当Client程序和Server程序需要通信时,可以用Socket类建立套接字连接,请写出双方实现通信的两种方式。
四、程序填空题(本大题共5小题,每空2分,共20分)
27.方法intsigmaEvenNum(int[]a)的功能是求已知数组中偶数的个数。
staticintsigmaEvenNum(int[]a){
ints=0;
for(inti=0;
______;
i++){
if(______)s++;
}
returns;
28.某小应用程序窗口包含有文本区dispArea,以及一个带文字“追加”的按钮。
当点击这个按钮时,程序弹出一个输入信息的对话框,并将对话框中输入的内容追加到文本区中。
以下是其中相应“追加”按钮事件的方法。
publicvoidactionPerformed(ActionEvente){
if(e.______.equals("
追加"
)){
Stringresult=(String)JOptionPane.showInputDialog(null,"
请输入信息"
,
"
输入对话框"
JOptionPane.PLAIN_MESSAGE,null,null,null);
dispArea.______(result+"
);
29.以下程序段是选择项目事件处理程序的样例,一个由3个单选按钮组成的选择组被定义为一个面板子类Panel,当某个按钮被选中时,按钮监视程序在类MyWindow的一个文本框中输出某个按钮被选中的字样。
以下是类Panel的定义。
classPanelextendsJPanelimplementsItemListener{
staticJRadioButtonbox[];
ButtonGroupg;
Panel(StringradioNameList[]){
box=newJRadioButton[radioNameList.length];
setLayout(newGridLayout(1,radioNameList.length));
g=newButtonGroup();
for(inti=0;
i<
radioNameList.length;
i++){
box[i]=newJRadioButton(______,false);
g.add(box[i]);
add(box[i]);
box[i].addItemListener(this);
publicvoiditemStateChanged(ItemEvente){
for(inti=0;
i<
box.length;
if(box[i]._______){
被选中!
"
30.用getImage()方法和drawImage()方法能加载和显示图像。
以下程序加载的是seattle.jpg文件,并假定该文件与包含这个小应用程序的HTML文件在同一个目录下。
importjava.awt.*;
importjava.applet.*;
publicclassSimpleImageLoadextendsApplet{
Imageimg;
publicvoidinit(){
img=getImage(______,"
seattle.jpg"
publicvoidpaint(Graphicsg){
g.drawImage(img,0,0,______);
31.以下程序段定义的类ShareDataManager用于管理多个线程共享数据data。
为了对data的取、存和修改操作保持完整,多线程在data上的操作有互斥要求;
另外,限制线程对data的修改不能让data为负数,所以多线程在data上的操作还有同步要求。
为此,程序为管理data上的操作定义成类,以下是管理共享数据data的类ShareDataManager的代码。
classShareDataManager{
intdata;
ShareDataManager(intinit){data=init;
}
publicintgetData(){returndata;
privatevoidputData(intnewValue){data=newValue;
synchronizedvoidmodiData(intdelta){
if(delta>
=0){putData(getData()+delta);
}else{
while(______<
0){
try{wait();
}catch(InterruptedExceptione){}
putData(getData()+delta);
五、程序分析题(本大题共5小题,每小题4分,共20分)
32.阅读下列程序,请写出该程序的输出结果。
classTree{
privateStringname;
publicbooleanflower;
publicintbirthYear;
Tree(Stringn,booleanf,inty){name=n;
flower=f;
birthYear=y;
publicvoidsetName(Stringn){name=n;
publicStringgetName(){returnname;
publicvoidprintTree(Stringstr){
classPineTreeextendsTree{
publicbooleanconiferous=true;
PineTree(Stringn,booleanf,inty,booleanc){super(n,f,y);
coniferous=c;
super,printTree(str);
classTest32{
publicstaticvoidmain(String[]args){
TreefOb=newTree("
MayFlower"
true,1980);
PineTreesOb=newPineTree("
Pine"
false,2000,true);
fOb.printTree("
fOb:
sOb.printTree("
sOb:
33.阅读下列程序,请写出该程序的输出结果。
classTest33{
staticvoids(intb[],intk){
inti,j,t;
for(i=1;
k;
i++){
for(t=b[i],j=i-1;
j>
=0&
&
t<
b[j];
j--)
b[j+l]=b[j];
b[j+1]=t;
inti,a[]={6,12,7,11,5};
s(a,5);
System.out.Println();
34.阅读下列程序,请写出该程序的功能。
importjava.applet.*;
importjavax.swing.*;
publicclassTest34extendsAppletimplementsActionListener{
JTextFieldtext;
intr;
JPanelpanel;
publicvoidpaint(Graphicsg){
Graphicsgc=panel.getGraphics();
gc.clearRect(0,0,panel.getWidth(),panel.getHeight());
gc.setColor(Color.red);
gc.fillOval(10,10,r,r);
text=newJTextField(10);
panel=newJPanel();
setSize(200,100);
setLayout(newGridLayout(2,1));
add(text);
add(panel);
text.addActionListener(this);
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==text){
r=Integer.parseInt(text.getText());
repaint();
35.阅读下列程序,请回答以下问题:
(1)该程序的菜单条中共有几个菜单项?
(2)单击哪个菜单项,可以打开一个对话框?
(3)该对话框是强制型还是非强制型?
(4)该对话框中显示的是什么内容?
Importjavax.swing.*;
classMyDialogextendsJDialog{
MyDialog(JFrameF,Strings){
super(F,s,false);
Datedate=newDate();
Stringt=date.toString();
JLabeltext=newJLabel(t);
setSize(200,100);
setVisible(true);
publicclassMenuDemoextendsJFrameimplementsActionListener{
JMenuBarmenubar;
JMenuaction;
JMenuItemshow,set,quit;
publicMenuDemo(){
menubar=newJMenuBar();
setJMenuBar(menubar);
action=newJMenu('
'
操作'
);
menubar.add(action);
show=newJMenuItem('
显示'
),action.add(show);
set=newJMenuItem("
设置"
action.add(set);
action.addSeparator();
quit=newJMenuItem("
退出"
action.add(quit);
show.addActionListener(this);
set.addActionListener(this);
quit.addActionListener(this);
setSize(300,300);
setVisible(true);
if(e.getSource()==show){MyDialogdiag=newMyDialog(this,"
信息"
elseif(e.getSource()==set){this.setTitle("
菜单演示"
elseif(e.getSource()==quit){System.exit(0);
publicstaticvoidmain(String[]args){newMenuDemo();
36.阅读以下程序,请写出该程序的输出结果。
classCurrentThreadDemo{
publicstaticvoidmain(Stringargs[]){
try{for(intn=3;
n>
0;
n--){
}catch(InterruptedExceptione){
六、程序设计题(本大题共2小题,每小题6分,共12分)
37.编写方法intsearchMaxNumIndex(int[]a),寻找已知数组中最大数的下标并返回。
38.以下程序的界面有一个按钮button、一个文本区textA和一个文本框textF。
程序运行时,在文本区中输入数字序列,单击按钮,则在文本框中显示数字序列的和。
以下是要求你编写的actionPerformed(ActionEvente)方法的部分代码。
if(e.getSource()==button){
Strings=textA.getText();
doublesum=0;
StringTokenizerfenxi=newStringTokenizer(s,"
\n"
//请在以下位置编写代码