Java语言程序设计一自考题模拟14.docx
《Java语言程序设计一自考题模拟14.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计一自考题模拟14.docx(13页珍藏版)》请在冰豆网上搜索。
![Java语言程序设计一自考题模拟14.docx](https://file1.bdocx.com/fileroot1/2023-1/9/0eaa5037-57d2-464d-891c-65d665ef1274/0eaa5037-57d2-464d-891c-65d665ef12741.gif)
Java语言程序设计一自考题模拟14
Java语言程序设计
(一)自考题模拟14
(总分:
100.00,做题时间:
90分钟)
一、第Ⅰ部分选择题
单项选择题(总题数:
10,分数:
10.00)
1.下面不是合法Java标识符的是______
(分数:
1.00)
A.ab
B.MYM_3
C.3ab √
D.ab3
解析:
[考点]Java标识符
[解析]标识符只能由字母(包括英文字母、下画线、美元符号、文字字符)和数字组成。
且不能以数字开头,所以C不对。
2.若有定义intx=3,y;则执行语句y=(++x)+(++x)+(++x);后y=______
(分数:
1.00)
A.12
B.18
C.9
D.15 √
解析:
[考点]自增运算
[解析]++x运算,前缀形式,表示在x加1后再引用变量x。
三个括号的值都是取x加1之后的值,第一个括号x加1之后是4,第二个是5,第三个是6,所以y=4+5+6=15。
3.下列不是构造方法特征的是______
(分数:
1.00)
A.名字与类相同
B.是无参数的
C.是void型 √
D.是一种特殊方法
解析:
[考点]构造方法
[解析]构造方法不返回结果,不用添加void关键字。
4.在Java语言中,执行下列哪一语句能够使当前循环结束,并进入到下一次循环______
(分数:
1.00)
A.break
B.next
C.continue √
D.switch
解析:
[考点]转移语句continue
[解析]continue是结束本次循环并进入到下次循环;break是结束整个循环,是程序进入循环之后的语句。
5.关于super,下面说法中错误的是______
(分数:
1.00)
A.用来访问父类被隐藏的成员变量
B.用于调用父类中被重写的方法
C.用于定义父类 √
D.用于调用父类的构造函数
解析:
[考点]关键字super
[解析]super用于子类中实现对父类方法的调用。
6.程序执行完的输出结果是______
Strings1="abc",s2="ab",s3;
s3=s2.concat("c");
System.out.println(s1==s3);
(分数:
1.00)
A.0
B.true
C.1
D.false √
解析:
[考点]字符串比较
[解析]==在字符串中的使用,比较的是两个对象是否相同,而不是对象的内容。
要比较两个内容应使用s1.equals(s2),它的值为true。
本题s1和s2是相同的对象,s1是在编译时就已产生的字符串“abc”的引用,而s3是在运行后才产生的字符串“abc”的引用,两者不相等。
7.Graphics类有一坐标系统,其原点在______
(分数:
1.00)
A.图形空间中心
B.图形空间左下方
C.图形空间左上方 √
D.用户配置的坐标系统
解析:
[考点]Graphics绘图基础
[解析]要在平面上显示文字和绘图,首先要确定一个平面坐标系,这个坐标系的原点位于整个区域的左上角。
8.一个线程处于运行状态,该线程就会执行的方法是______
(分数:
1.00)
A.init()
B.sleep()
C.stop()
D.run() √
解析:
[考点]线程生命周期
[解析]run()方法是线程运行状态方法,sleep()是阻塞线程运行。
没有init()和stop()方法。
9.InputStream类或Reader类的子类是所有的______
(分数:
1.00)
A.输入流 √
B.输出流
C.输入/输出流
D.Java通信类
解析:
[考点]输入/输出流。
[解析]InputStream类或Reader类分别是字节输入流和字符输入流。
10.创建一个URL对象时,可能会产生的异常是______
(分数:
1.00)
A.IOException
B.IndexOutOfBoundsException
C.InterruptedException
D.MalformedURLException √
解析:
[考点]URL类
[解析]在创建URL对象的时候有可能出现网址错误异常MalformedURLException。
二、第Ⅱ部分非选择题
填空题(总题数:
10,分数:
20.00)
11.JDK开发Java程序需三个步骤,分别为1,编译Java源程序,运行Java源程序。
(分数:
2.00)
解析:
编写源文件[考点]Java程序开发过程
[解析]开发Java程序需三个步骤,分别为编写源文件,编译Java源程序,运行Java源程序。
12.在switch语句中,通过1语句跳出整个switch语句,开始执行整个switch语句后面的语句。
(分数:
2.00)
解析:
hreak[考点]转移语句
[解析]在switch执行过程中,如果遇到break,则结束switch语句,执行switch之后的语句。
13.用修饰符1说明的成员变量是类变量。
(分数:
2.00)
解析:
static[考点]静态变量
[解析]程序中用static声明的变量称为静态变量。
14.一维数组通过下标符访问自己的元素,需要注意的是下标从1开始。
(分数:
2.00)
解析:
0[考点]一维数组引用
[解析]数组的下标范围是0到数组名.length-1。
15.可以使用java.lang包中的1类将形如“12387”的字符串转化为int型数据。
(分数:
2.00)
解析:
Integer[考点]String类型与int类型转换
[解析]通过Integer.parseInt(Strings)可以将数值型字符串s转为int类型。
16.一个完整的JavaApplet的生命周期包含init()、1、stop()、destroy()、pamt(Graphicsg)方法。
(分数:
2.00)
解析:
start()[考点]JavaApplet的生命周期
[解析]一个完整的JavaApplet的生命周期包含init()、start()、stop()、destroy()、paint(Graphicsg)方法。
17.Java中1类是专门用来建立文本区的,即它的一个对象就是一个文本区。
(分数:
2.00)
解析:
TextArea[考点]文本区
[解析]TextField是文本框;TextArea是文本区。
两者的区别是文本区可以放多行文本。
18.在JavaApplet小程序中画圆环,可以使用Graphics类的1方法。
(分数:
2.00)
解析:
drawRoundRect[考点]Graphics绘图
[解析]drawRoundRect是用线围起来的圆角矩形,可以通过将矩形的宽、高、圆弧的横向直径和纵向直径设为相等来使圆角矩形变为一个圆环。
19.鼠标事件类MouseEvent中的方法1是获取鼠标被单击的次数。
(分数:
2.00)
解析:
getClickCount()[考点]鼠标事件
[解析]getClickCount()用于获得鼠标被点击的次数。
20.IP地址和端口号的组合称为1。
(分数:
2.00)
解析:
网络套接字[考点]网络编程——网络套接字
[解析]将IP地址+端口号的组合称为网络套接字。
三、简答题(总题数:
6,分数:
18.00)
21.简述Java语言的特点。
(分数:
3.00)
__________________________________________________________________________________________
正确答案:
()
解析:
Java语言是目前使用最为广泛的网络编程语言之一,具有面向对象、与平台无关性、、多线程性、动态性等特点。
22.设有整型变量x和y的值分别为6和120。
阅读下列程序,写出程序执行后,x,y的值为多少?
do{x=y/x;y=y-x;}while(y>=1);
(分数:
3.00)
__________________________________________________________________________________________
正确答案:
()
解析:
x=15,y=0
23.类及类成员的访问控制符有哪些?
并说明私有权限和公有权限的使用方法。
(分数:
3.00)
__________________________________________________________________________________________
正确答案:
()
解析:
控制符有4种:
public、protected、private、<default>。
其中private权限的成员只能在本类中使用;public权限的成员不但能在本类中使用,还可在类外使用。
24.如何处理MouseMotionListener接口事件?
(分数:
3.00)
__________________________________________________________________________________________
正确答案:
()
解析:
鼠标移动事件有两种:
拖动鼠标和移动鼠标。
产生的事件类型MouseEvent。
获得监视器的方法是addMouseMotionListener()。
事件接口中的方法为mouseDragged(MouseEvente)和mouseMoved(MouseEvente)。
25.在GUI中哪几种窗口?
并简述它们的特点。
(分数:
3.00)
__________________________________________________________________________________________
正确答案:
()
解析:
CUI主要有三类窗口。
(1)Applet窗口,Applet类管理这个窗口,当小应用程序启动时,由系统创建和处理。
(2)框架窗口(JFram),支持窗口周边的框架,标题栏以及最小化、最大化和关闭按钮。
用Swing中的JFrame类或它的子类创建的对象就是JFrame窗口。
(3)Panel窗口:
用于创建一个默认布局管理器的面板对象。
26.简述在Java中连接数据库的步骤。
(分数:
3.00)
__________________________________________________________________________________________
正确答案:
()
解析:
(1)装载数据库驱动程序类。
(2)调用DriverManager的方法getConnection(),并确定用于连接数据库的驱动程序,数据库文件名以及可选的用户ID和密码。
四、程序填空题(总题数:
5,分数:
20.00)
27.阅读并完成程序。
publicclassClassDemo
{
intm,n,
public1{}
public2{m=a;}
publicstaticvoidmain(Stringargs[])
{
ClassDemot1,t2;
intj=0;
t1=newClassDemo();
t2=newClassDemo(j);
}
}
(分数:
4.00)
解析:
ClassDemo()ClassDemo(inta)[考点]类的构造方法
[解析]程序分别定义了一个无参数的构造方法和一个只有一个参数的构造方法。
28.回文是指正读和反读都一样的字符串。
方法f28(Strings)的功能是判断一个字符串是否为回文。
例如:
s="abccba",该方法返回值为true,n="abc",返回值为false。
booleanf28(Strings)
{
inti=0;
while(i<s.length()/2)
{
Strings1,s2;
s1=s.substring(i,i+1);
s2=s.substring
(1);
if(!
(s1.equals(s2)))break;
i++;
}
return2;
}
(分数:
4.00)
解析:
s.length()-i-1,s.length()-ii<s.length()/2?
false:
true[考点]String截取子串
[解析]程序的思路是取第一个字符和最后一个字符进行比较,第二个和倒数第二个进行比较,依次类推,直到循环比较到中间字符串则说明是回文。
Substring(inti,intj)截取第i到第j个字符作为子串。
29.程序的功能是在第一个文本框中输入一个整数,按回车键后,在第二个文本框中显示该数的平方和。
importjava.applet.*;
importjavax.swing.*;
importjava.awt.event.*;
publicclassClass29extendsAppletimplementsActionListener
{
JTextFieldt1,t2;
publicvoidinit()
{
t1=newJTextField(10);
t2=newJTextField(10);
setSize(200,100);
add(t1);
add(t2);
text1.1;
}
publicvoidactionPerformed(ActionEvnete)
{
longn;
if(e.getSource()==t1)
{
n=Long.parseLong(t1.getText());
t2.2(String.valueOf(n*n));
}
}
}
(分数:
4.00)
解析:
addActionListener(this)setText[考点]文本框和键盘事件
[解析]程序在添加文本框之后,通过addActionListener(this)给相应的文本框添加事件。
在计算出平方和之后通过setText将其设为第二个文本框的值。
30.下面程序段是创建一个文件对话框类,请完成填空。
classMydialogextends1
{
Buttonbutton1,button2;
Mydialog(FrameF,Strings)
{
super(F,s);
button1=newButton("open");
button2=newButton("close");
2(newFlowLayout());
setSize(90,90);
setVisible(true);
setModal(false);
add(button);add(button2);
}
}
(分数:
4.00)
解析:
DialogsetLayout[考点]对话框
[解析]文件对话框首先要继承于对话框类Dialog。
Dialog是一种容器,可以通过setLayout()设置布局。
31.以下程序使字符串“文字的特殊输出效果演示”中的所有文字每隔300毫秒显示一个。
publicclassClass31{
publicstaticvoidmain(String[]args)
{
Strings="文字的特殊输出效果演示";
for(inti=0;i<s.length();i++)
{
System.out.print(s.substring(i,i+1));
try{1;}
catch
(2){}
}
}
}
(分数:
4.00)
解析:
Thread.sleep(300)InterruptedExceptione[考点]线程
[解析]程序通过线程的Thread.sleep(300)方法控制每隔300毫秒执行一次循环,在循环中每次截取字符串的一个字符输出。
在调用线程的sleep()方法时可能会产生线程中断,需要捕获该异常。
五、程序分析题(总题数:
5,分数:
20.00)
32.请将以下程序段表示的计算e的公式写出来(假设x的值已给出)。
floata,e;
e=1;
a=1;
for(intn=1;n<=10;n++)
{
a=a*x/n;
e=e+a;
}
写出所表示的公式e=______。
(分数:
4.00)
__________________________________________________________________________________________
正确答案:
()
解析:
e=1+x/1!
+x2/2!
+x3/3!
+….+x^10/10!
[考点]for循环
[解析]第一次循环时,a=1*x/1=x,e=1+1;第二次循环时,a=x*x/2=x2/2!
,e=1+x+x2/2!
,依次类推得到e的公式。
33.阅读以下程序代码,写出程序的输出结果。
publicclassClass33
{
publicstaticvoidmain(String[]args)
{
intm,n,k;
m=n=k=1;
booleanw;
w=m++>1&&++n>k++;
System.out.println(m+","+n+","+k+","+w);
}
}
(分数:
4.00)
__________________________________________________________________________________________
正确答案:
()
解析:
2,1,1,false[考点]Java数据运算
[解析]x++运算是先使用x的值,然后使x的值加1;++x,是先使x的值加1,然后再使用x的值。
逻辑与运算,当&&左右两个运算数都是true时整个结果才为true,只要有一个为false,则结果为false。
并且当左边的操作数为false时,则不再计算右边的操作数是否为true,直接得到整个结果为false。
本题先算左边m++>1,初始m等于1,并且是m++这种形式,先使用m的值,1不大于1,所以m++>1结果为false,不再计算&&右边的值,w=false。
所以最终m=2,n=1,k=1,w=false。
34.阅读下列程序,写出程序运行结果。
publicclassC34
{
publicstaticvoidmain(String[]args)
{
int[][]a={{1,2,3},{4,5,6}};
System.out.println(a.length+","+a[0].length+","+a[1][1]);
String[]s={"a","b"};
func(s[0],s[1]);
System.out.println(s[0]+","+s[1]);
Strings1="abc",s2="123";
s1+="xyz";
s2.concat("xyz");
System.out.println(s1+","+s2);
}
staticvoidfunc(Stringx,Stringy)
{
Stringz=x;x=y;y=z;
}
}
(分数:
4.00)
__________________________________________________________________________________________
正确答案:
()
解析:
2,3,5
a.b
abcxyz,123(4.1)[考点]数组和字符串
[解析]对于二维数组来说,有两种长度,一种是二维数组的长度(a.length),一种是二维数组元素的长度(a[0].length),数组的下标都是从0开始。
方法func()中的交换只是交换了形参(局部变量)x和y的值,并没有使实参s[0]和s[1]发生交换。
+和concat()都能完成字符串的连接。
s2.concat("xyz")连接得到的新字符串并没有赋值,它和s2=s2.concat("xyz")是不同的。
35.写出下面程序的运行结果。
publicclassClass35
{
publicstaticvoidmain(Stringargs[])
{
Helloh=newHello______;
Threadt=newThread(h);
t.start______;
}
}
classHelloimplementsRunnable
{
inti;
publicvoidrun______
{
while(true)
{
System.out.println("Hello"+i++);
if(i==5)break;
}
}
}
(分数:
4.00)
__________________________________________________________________________________________
正确答案:
()
解析:
Hello0
Hello1
Hello2
Hello3
Hello4[考点]多线程
[解析]本题通过实现Runnable的方式创建线程,调用start方法执行线程方法run(),并输出结果。
36.阅读下列程序,请写出程序的运行结果。
importjava.applet.*;
importjavax.swing.*;
importjava.awt.event.*;
publicclassCextendsAppletimplementsActionListener
{
intn=0;
JButtonbutton,button1;
publicvoidinit()
{
setSize(400,100);
button=newJButton("");
button1=newJButton("显示次数");
add(button);add(button1);
button.addActionListener(this);
}
publicvoidactionPerformed(ActionEvente)
{
m++;
button1.setText(m+"");
}
}
(分数:
4.00)
_______________