Java语言程序设计一自考题模拟3.docx
《Java语言程序设计一自考题模拟3.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计一自考题模拟3.docx(13页珍藏版)》请在冰豆网上搜索。
![Java语言程序设计一自考题模拟3.docx](https://file1.bdocx.com/fileroot1/2023-1/5/05eff71a-0f57-41a5-9f3f-b280c239d10b/05eff71a-0f57-41a5-9f3f-b280c239d10b1.gif)
Java语言程序设计一自考题模拟3
Java语言程序设计
(一)自考题模拟3
一、单项选择题
(在每小题列出的四个备选项中只有一个是符合题目要求的。
)
1.下列有关Java关键字说法中不正确的是
A.Java关键字均由小写字母组成
B.每个关键字在程序中出现时,均有特定位置和特定使用方法的要求
C.在Java语言中,每个关键字均已经被赋予特定的意义
D.可以使用关键字作为类名
答案:
D
[解答]主要考查的知识点为Java关键字。
[要点透析]不能使用关键字作为标识符命名程序对象。
2.以下程序代码的输出结果是
intx=10,y=20,z=30;
z*=x+y;
System.out.println(z);
A.320
B.30
C.90
D.900
答案:
D
[解答]主要考查的知识点为Java运算符优先级。
[要点透析]“+”号优先级高于“*=”号z*=x+y等价于z=z*(x+y)。
3.在Java中,能实现多重继承效果的方式是
A.内部类
B.适配器
C.接口
D.同步
答案:
C
[解答]主要考查的知识点为继承和接口。
[要点透析]Java程序中的类只能继承一个类,这种继承称为单继承。
Java语言虽不允许一个类继承多个类,但允许一个类实现多个接口。
这样,对有继承并实现接口的类来说,实际上有了多个超类,实现有控制的多重继承。
接口比多重继承更强、更容易控制。
接口有与类相似的基本形式。
接口有常量定义和方法定义,但没有方法的实现代码,即没有方法的方法体。
4.以下程序代码的输出结果为
Strings1="abc",s2="ab",s3;
s3=s2.concat("c");
System.out.println(s1==s3);
A.true
B.false
C.0
D.1
答案:
B
[解答]主要考查的知识点是字符串比较。
[要点透析]==在字符串中使用,比较的是两个对象是否相同,而不是对象的内容。
要比较内容应用使用s1.equals(s3)这种方法,它的值为true。
本题s1和s3是不同的对象,s1是在编译时就已产生的字符串“abc”的引用,而s3是在运行后才生成的字符串“abc”的引用,很明显,s1和s3是两个不同对象的引用。
5.以下关于Java类的声明及成员定义的叙述中,错误的是
A.用关键字class引导一个类的声明
B.在类体中给出类的成员变量定义、方法定义以及独立的执行代码
C.成员的访问权限有4种
D.Java中成员变量的名字可以与类的方法的名字相同
答案:
B
[解答]本题主要考查的知识点为Java语言中类的声明及成员定义。
[要点透析]类体给出类的成员变量定义和方法定义,类体中不能有独立的执行代码,所有的执行代码只能出现在方法中。
6.设有a=b=c=5,计算表达式++a>=5||++b<++c,则a,b,c的值分别是
A.666
B.555
C.655
D.665
答案:
C
[解答]本题主要考查的知识点为Java语言的逻辑与和逻辑或运算符性质。
[要点透析]从左到右顺序计算逻辑或表达式,先计算子表达式++a>=5,变量a的值变为6,++a>=5为true,整个逻辑表达式的值已经为true,不再计算右边的子表达式++b<++c。
因而,变量b和变量c的值不变,仍为5。
7.在Java语言中,以下不会用到关键字this的选项是
A.将对象自己作为参数,调用别的方法
B.当方法的局部变量隐藏成员变量时,利用this引用成员变量
C.使用super调用超类的构造方法
D.构造函数内调用另一构造函数
答案:
C
[解答]本题主要考查的知识点为Java的this的关键字。
[要点透析]关键字this用来指对象自己。
this的作用有很多种,例如将对象自己作为参数,调用别的方法,当方法的局部变量隐藏成员变量时,利用this引用成员变量;构造函数内调用另一构造函数。
使用super调用超类的构造方法不会用到关键字this。
8.在Java语言中,能够提早结束当前轮次循环,进入下一轮次循环的语句是
A.next
B.break
C.switch
D.continue
答案:
D
[解答]本题主要考查的知识点为Java语言的语句。
[要点透析]break语句的执行强制结束它所在的控制结构,让程序从这个控制结构的后继语句继续执行;continue语句提早结束当前轮次循环,进入下一轮次循环;switch语句用来描述多路按值选择结构。
9.Java中实现输入/输出操作的类库在
A.java.io包中
B.java.input包中
C.Java.output包中
D.java.lang.io包中
答案:
A
[解答]主要考查的知识点为Java.io包。
[要点透析]其中io是input(输入)和output(输出)首字母的缩写。
10.在编写访问数据库的Java程序过程中,用来在指定的连接中处理SQL语句的类是
A.ResultSet类
B.DriverManager类
C.Statement类
D.Connection类
答案:
C
二、填空题
1.Java源程序命名受严格的限制,Java源文件的扩展名必须是______。
答案:
.Java
2.在switch语句中,通过______语句退出switch语句,使程序从整个switch语句后面的第一条语句处开始执行。
答案:
break
3.如果成员变量x在方法内被隐藏,又要在方法中引用这个成员变量,必须使用______形式。
答案:
this.x
4.在Java语言中,需要定义含有两个子数组的二维整型数组x,第一个子数组元素为7,8,第二个子数组元素为l,2,3,4,5,采用直接赋值创建此二维数组的语句为______。
答案:
int[][]x={{7,8},{1,2,3,4,5}};
5.______布局使容器的多个组件拥有同一个显示空间,某一时刻只能显示一个组件。
答案:
CardLayout
6.要使Java程序退出Java运行环境,可以执行的代码是______。
答案:
System.exit(0);
7.某Java程序要使用文件输入输出流,则该程序所需要的import语句是______。
答案:
importjava.io*:
8.启动线程,让线程从新建状态到就绪状态的方法是______。
答案:
start()
9.采用缓冲式输入时,可以对BufferedReader对象使用______方法按行读取文件中的内容。
答案:
readLine()
10.端口号与IP地址的组合称为______。
答案:
网络套接字(socket)
三、简答题
1.设有整型变量x和y的值分别为5和110。
请指出执行了下面循环语句后,变量x和y的值分别是多少?
do{x=y/x;y=y-x;}while(y>=1);
答案:
x=18y=0
2.用关键字final修饰的类、方法和变量各有什么特点?
答案:
在类声明之前用final修饰,声明类是final类,final类是不能被再继承的类,即它不能再有子类。
(2)用final修饰方法,声明该方法不能被子类的方法覆盖。
或是为了给方法“上锁”,防止任何子类改变它的本来含义,或是为了提高执行效率,编译器可以将这个方法的所有调用都能用“嵌入代码”实现,即用方法体代码的副本来替换方法调用。
(3)用final修饰变量,声明该变量的值不能被改变。
不能被改变的变量相当于一个常量。
final变量主要用于以下两个方面:
或是一个编译期的常数,它永远不会改变,或在初始化后,不希望它现改变。
final局部变量在定义时可以暂不设定初值,但是了经初始化,以后就不能再改变。
(4)常用final声明常量,常量名习惯全部用大写字母命名。
3.在GUI中有哪三种窗口?
它们有什么特点?
答案:
(1)Applet窗口,Applet类管理这个窗口,当小应用程序启动时,由系统创建和处理。
(2)框架窗口(JFrame).这是通常意义上的窗口,它支持窗口,它支持窗口周边的框架、标题栏,以及最小化、最大化和关闭按钮。
用Swing中的JFrame类或它的子类创建的对象就是JFrame窗口。
(3)-种无边框窗口(JWindow),没有标题栏,没有框架,只是一个空的矩形。
4.JCheckBox类的常用方法有isSelected()、itemStateChanged(ItemEvente)、getItemSelectable()、addItemListener(ItemListenerl),简述它们的功能。
答案:
isSelected(),获取选择框是否被选中的状态。
(2)itemStateChanged(ItemEvente),处理选择框事件的接口方法。
(3)getItemSelectable(),获取事件源。
(4)addItemListener(ItemListemerl),为选择框设定监视器。
5.简述Java程序实现多线程应用的途径?
答案:
一是继承Thread类声明Thread子类,用Thread子类创建线程对象。
二是在类中实现Runnable接口,在类中提供Runnable接口的run()方法。
无论用哪种方法,都需要Java基础类库中的Thread类及其方法的支持。
6.当Client程序和Server程序需要通信时,可以用Socket类建立套接字连接,请写出双方实现通信的两种方式。
答案:
流式socket和数据报式socket
四、程序填空题
1.求出所有满足下列条件的两位数:
将此两位数的个位数字与十位数字进行交换,可得到一个新的数,要求新数与原数之和小于100。
inti,j,x,y;
for(i=10;i<100;i++)
{
x=i%10;
y=i/10;
J=______;
if(______)
System.out.print(i+"");
}
答案:
10*x+y
i+j<100
2.程序的功能是在第一个文本框中输入整数,输入结束回车后,在第二个文本框中输出该整数和平方。
importjava.applet.*;
importjavax.swing.*;
importjava.awt.event.*;
publicclassClass04extendsAppletimplementsActionListener
{
JTextFieldtext1,text2;
publicvoidinit()
{
text1=newJTextField(10);
text2=newJTextField(10);
setSize(200,100);
add(text1);
add(text2);
text1.______;
}
publicvoidactionPerformed(ActionEvnete)
{
longn;
if(e.getSource()==text1)
{
n=Long.parseLong(text1.getText());
text2.______(String.valueOf(n*n));
}
}
}
答案:
addActionListener(this)
setText
3.设计一个面板,该面板中有四个运动项目选择框和一个文本区。
当某个选择项目被选中时,在文本区中显示该选择项目。
importjava.applet.*;
importjava.awt.*;
irnportjavax.swing.*;
importjava.awt.event.*;
publicclassC0601extendsAppletimplements______
{
JPanelpan=newJPand();
Strings[]={"足球","排球","篮球","乒乓球"};
JCheckBoxbox[]=newJCeckBox[4];
JTextAreatext=newJTextArea(6,20);
publicvoidinit()
{
setSize(400,150);
for(inti=0;i<4;i++)
{
box[i]=newJCheckBox(s[i]);
pan.add(box[i]);
box[i].addItemListener(this);
}
add(pan);
add(text);text.setBackground(Color.cyan);
}
publicvoiditemStateChanged(ItemEvente)
{
text.setText("你选择了:
");
for(inti=0;i<4;i++)
if(box[i].______)
text.setText(text.getText()+"\n"+box[i].getText());
}
}
答案:
ItemListener
isSelected()
4.小应用程序运行后在窗口中显示一幅图片。
importjava.applet.*;
importjava.awt.*;
publicclassClass3005extendsApplet
{
ImagemyImg;
publicvoidstart()
{
myImg=______(getCodeBase(),"myImg.jpg");
}
publicvoidpaint(Graphicsg)
{
g.______(myImg,0,0,this);
}
}
答案:
start
paint
5.某界面有一个文本区和一个按钮。
点击按钮后,将文件中的内容输入,显示在文本区。
此按钮的监视器方法如下(文件通过对话框指定)。
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==butt)
{
Strings=null;
try
{
if((newFileDialog()).file!
=null)
{
Stringfilename=FileDialog.file.getName();
RandomAccessFilein=new______(filename,"r");
while((s=in.readLine())!
=null)
textA.append(s+"\n");
______;
}
}
catch(FileNotFoundExceptione1){}
catch(IOExceptione2){}
}
}
答案:
RandomAccessFile
in.close()
五、程序分析题
1.阅读下列程序,请写出该程序的输出结果。
publicclassC
{
intx=10;
staticinty=20;
publicstaticvoidmain(String[]args)
{
Cobj1=newC();
Cobj2=newC();
obj1.x*=2;
obj1.y*=3;
obj2.x+=4;
obj2.y+=5;
System.out.println(obj1.x);
System.out.println(obj1.y);
System.out.println(obj2.x);
System.out.println(obj2.y);
}
}
答案:
20
65
14
65
2.阅读下列程序,请写出程序的运行结果。
publicclassC
{
publicstaticvoidmain(String[]args)
{
Stringtext="publicstaticvoidmain(String[]args)";
inttheCount=0;
intindex=-1;
StringtheStr="i";
index=text.indexOf(theStr);
while(index>=0)
{
++theCount;
index+=theStr.length();
index=text.indexOf(theStr,index);
}
System.out.println("TheTextcontains"+theCount+"i");
}
}
答案:
TheTextcontains5i
3.已知某程序的界面包含一个文本区text1、一个文本框text2和一个按钮button。
下面是该程序的相关方法。
阅读下面方法,写出该方法功能。
publicvoidactionPerformed(ActionEvente)
{
intsum;
if(e.getSource()==button)
{
Strings=text1.getText();
StringTokenizerfenxi=newStringTokenizer(s,",\t\n");
intn=fenxi.countTokens();
doublea[]=newdouble[n];
for(inti=0;i<n;i++)
{
Stringtemp=fenxi.nextToken();
a[i]=Double.valueof(temp).doubleValue();
}
sum=0;
for(inti=0;i<n;i++)
sum+=[i];
text2.setText(""+sum);
}
}
答案:
该方法功能是:
在文本区text1中输入整数序列后,点击按钮后,程序响应按钮事件,累计文本区输入的整数序列,并将总和输出在文本框text2中。
4.阅读下列程序,请写出程序的运行结果。
importjava.applet.*;
importjavax.swing.*;
importjava.awt.event.*;
publicclassCextendsAppletimplementsActionListener
{
intn=0;
JButtonbutton;
publicvoidinit()
{
setSize(400,100);
button=newJButton("");
add(button);
button.addActionListener(this);
}
publicvoidactionPerformed(ActionEvente)
{
n++;
button.setText(n+"");
}
}
答案:
该程序的功能是:
小应用程序窗口中有一个按钮,点击这个按钮时,点击按钮的次数会显示在按钮上。
5.阅读下列程序,请写出程序的运行结果。
importjava.applet.*;
importjava.awt.*;
publicclassCextendsAppletimplementsRunnable
{
ThreadredBall,blueBall;
GraphicsredPen,bluePen;
intblueSeta=0,redSeta=0;
publicvoidinit()
{
setSize(250,200);
redBall=newThread(this);
blueBall=newThread(this);
redPen=getGraphics();
bluePen=getGraphics();
redPen.setColor(Color.red);
bluePen.setColor(Color.blue);
setBackground(Color.gray);
}
publicvoidstart()
{
redBall.start();
blueBall.start();
}
publicvoidrun()
{
intx,y;
while(true)
{
if(Thread.currentThread()==redBall)
{//以下代码为顺时针画圆
x=(int)(80.0*Math.cos(3.1415926/180.0*redSeta));
y=(int)(80.0*Math.sin(3.1415926/180.0*redSeta));
redPen.setColor(Color.gray);
redPen.fillOval(100+x,100+y,10,10);
redSeta+=3;
if(redSeta>=360)redSeta=0;
x=(int)(80.0*Math.cos(3.1415926/180.0*redSeta));
y=(int)(80.0*Math.sin(3.1415926/180.0*redSeta));
redPen.setColor(Color.red);
redPen.fillOval(100+x,100+y,10,10);
try{redBall.sleep(20);}
catch(InterruptedExceptione){}
}
elseif(Thread.currentThread()==blueBall)
{//以下代码为顺时针画圆
x=(int)(80.0*Math.cos(3.1415926/180.0*blueSeta));
y=(int)(80.0*Math.sin(3.1415926/180.0*blueSeta));
bluePen.setColor(Color.gray);
bluePen.fillOval(150+x,100+y,10,10);
blueSeta-=3;
if(blueSeta<=-360)blueSeta=0;
x=(int)(80.0*M