《Java程序设计》练习题.docx
《《Java程序设计》练习题.docx》由会员分享,可在线阅读,更多相关《《Java程序设计》练习题.docx(14页珍藏版)》请在冰豆网上搜索。
《Java程序设计》练习题
《Java程序设计》练习题一
一、单项选择题
1、下列是继承Thread类后得到的子类,请选择正确的一项。
(C)
A、classA4extendsThreadB、classA4implementsThread
{{
voidrun()publicvoidrun()
{{
//…..//…..
}}
}}
C、classA4extendsThreadD、classA4extendsThread
{{
publicvoidrun()run()
{{
//…//…
}}
}}
2、下列关于Unicode-亨符的说法中,不正确的一项是(C)。
A、Unicode字符集比ASII字符集丰富B、Unicode字符是16位无符号数
C、字符常量’a’以八进制数表示为’\142’D、字符常量’a’以八进制数表示为’\14l’
3、在Java语言中,那一个是最基本的元素?
(C)
A、方法B、包C、对象D、接口
4、while循环和do……while循环的区别是:
(C)
A、没有区别,这两个结构任何情况下效果一样
B、while循环比do……while循环执行效率高
C、while循环是先循环后判断,所以循环体至少被执行一次
D、do……while循环是先循环后判断,所以循环体至少被执行一次
5、下列说法中,错误的一项是(A)。
A、MouseAdapter是鼠标运动适配器B、WindowAdapter是窗口适配器
C、ContainerAdapter是容器适配器D、KeyAdapter是键盘适配器
6、在JavaApplet程序用户自定义的Applet子类中,一般需要重载父类的(C)方法来完成主类实例的初始化工作。
A、start()B、stop()C、init()D、paint()
7、下列哪一项不是Applet的生命周期方法?
(B)
A、start()B、getCodeBase()C、destroy()D、init()
8、Frame的默认的布局管理器是下列哪一个(D)
A、FlowLayoutB、CardLayout
C、GridLayoutD、BorderLayout
9、下列说法中,正确的一项是(C)。
A、双精度数强制转换成单精度数后,其数值精度会提高
B、Java语言中的布尔变量可以和整型变量相互强制转换
C、强制转换是将存储长度长的数据转换为长度短的数据
D、强制转换是将存储长度短的数据转换为长度长的数据
10、下列代码的执行结果为:
(A)
publicclassTest
{
publicstaticvoidmain(String[]args)
{
System.out.println(5/2);
}
}
A、2B、2.0C、.50D、2.5
11、使用方法(D)来启动线程。
A、sleep方法B、interrupt方法C、run方法D、start方法
12、如果在关闭Socket时发生一个I/O错误,会抛出(A)
A、IOExceptionB、UnknowHostException
C、SocketExceptionD、MalFormedURLExcepton
13、下列描述中,哪一项不属于finally语句应陔执行的功能(C)?
A、释放资源B、关闭文件C、分配资源D、关闭数据库
14、哪个布局管理器使用的是组件的最佳尺寸(B)
A、FlowLayoutB、GridLayout
C、BorderLayoutD、CardLayout
15、为了区分重载多态中同名的不同方法,要求(C)。
A、调用时用类名或对象名做前缀B、返回值类型不同
C、形式参数个数或者类型不同D、形式参数名称不同
16、创建一个标识有“关闭”按钮的语句是(D)。
A、TextFieldb=newTextField(“关闭”);
B、Labelb=newLabel(“关闭”);
C、Checkboxb=newCheckbox(“关闭”);
D、Buttonb=newButton(“关闭”);
17、下列哪一个包给出了Runnable接口的定义?
(C)
A、iava.uti1B、java.IoC、java.1angD、java.sql
18、main()方法是JavaApplication程序执行的入口点,关于main()方法的方法头下面哪一项母合法的?
(B)
A、publicstaticvoidmain()B、publicstaticvoidmain(Stringargs[])
C、publicstaticintmain(Stnng[]arg)D、publicVoidmain(Stnngarg[])
19、下列哪一个类实现了线程组?
(B)
A、java.lang.ObjictB、java.1ang.ThreadGroup
C、Java.1ang.ThreadD、java.1ang.Runnable
20.下列各选项中,哪一个不是JAVA的合法标识符?
(A)
A、1dsfB、qa21C、$_aD、_ss11
二、简答题(2*5分=10分)
1、列举四种线程进入不可运行状态的原因。
答:
1)调用了sleep()方法(睡眠,静态方法);
2)调用了suspend()方法(挂起,已过时);
3)为等候一个变量,调用wait()方法(等待);
4)输入输出流(I/0)中发生线程阻塞;
5)调用yield()方法(暂停)
2、简述编写并执行一个Java程序的步骤。
答:
主要分为三步:
(1)编写源程序。
一般使用记事本等文本编辑器编辑java源程序,扩展名为.java;
(2)编译:
利用java的编译器javac.exe对源程序进行编译生成以.class为后缀的文件;
(3)解释执行:
需要java解释器来解释执行,若是java小程序,需要浏览器或java自带的appletviewer.exe程序,若是java应用程序,需要java.exe程序。
三.程序结果题(2*5分=10分)
1、以下程序的运行结果是什么?
publicclasstest1
{
publicstaticvoidmain(String[]args)
{
System.out.println(10/2);
System.out.println(10/2.0);
System.out.println(10.0/2);
}
}
答案:
5
5.0
5.0
2、classT1extendsThread
{
publicvoidrun()
{
inta=0;
do{
System.out.print(a+"\t");
a++;
}while(a<3);
}
}
publicclasstest{
publicstaticvoidmain(String[]args){
T1t=newT1();
t.start();
}
}
答案:
012
四、编程题(40分)
1、编写打印下列图形的程序:
(10分)
###
###
####
1、答案:
publicclassTest_17_1{
publicstaticvoidmain(String[]args){
inti,j;
for(i=1;i<=4;i++){
for(j=1;j<=i;j++){
System.out.print("#"+"");
}
System.out.println();
}
}
}
2、编写一各Java程序,查找1~100之间的素数并将运行结果输出。
(10分)
2、[解答]:
publicclassTest_14{
publicstaticvoidmain(String[]args){
intm,k,i,n=0;
booleanflag;
for(m=1;m<=100;m=m+2){
flag=true;
k=(int)Math.sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0){
flag=false;
break;
}
if(flag){
System.out.print(m+"");
n=n+1;
}
if(n%10==0)
System.out.println();
}
}
}
3、编写一个输出"HelloWorld!
"的程序,用两种方式实现(Application、Applet)。
(20分)
3、[解答]:
1)
publicclassaa
{
publicstaticvoidmain(Stringargs[])
{
System.out.println("Hello,World!
");
}
}
2).
//
//
importjava.awt.Graphics;
importjava.applet.Applet;
publicclassaaextendsApplet{
Strings;
publicvoidinit(){
s="HelloWorld!
";
}
publicvoidpaint(Graphicsg){
g.drawString(s,25,25);
}
}
《Java程序设计》练习题二
一、单项选择题(20*2=40分)
1、下列不属于Java保留字的一个是(B)。
A、elseB、UnicodeC、charD、static
2、下列方法中哪一个不能用于获取异常信息(C)?
A、toString()B、getMessage()
C、drawline()D、printStackTrace()
3、现有一个整型数组a[4],它的所有数组元素是(D)。
A、a0.a1,a2.a3B、a[0],a[1],a[2],a[3],a[4]
C、a[1],a[2],a[2],a[4]D、a[0],a[1],aE2],a[3]
4、下列不属于java.awt包中的基本概念的一项是(C)。
A、容器B、构件C、线程D、布局管理器
5、下面关于java中类的说法哪个是不正确的(C)
A、类体中只能有变量定义和成员方法的定义,不能有其他语句。
B、构造函数是类中的特殊方法。
C、类一定要声明为public的,才可以执行。
D、一个java文件中可以有多个class定义。
6、下列哪个不是面向对象程序设计方法的特点?
(D)
A、抽象B、继承C、多态D、结构化
7、能构成多分支的语句是(C)。
A、for语句 B、while语句
C、switch语句 D、do—while语句
8、对于双精度浮点类型,常数NaN是由哪个包装类提供的?
(D)
A、java.1ang.IntegerB、java.1ang.Float
C、java.1ang.LongD、java.1ang.Double
9、抽象方法:
(C)
A、可以有方法体B、可以出现在非抽象类中
C、是没有方法体的方法D、抽象类中的方法都是抽象方法
10、下列标识符中,合法的一个是(D)。
A、$#@!
$B、$--$C、2$$2D、$22$
11、InputStream和Reader的区别在于:
(B)
A、前者带有缓冲,后者没有
B、每次读入的字节数不同
C、前者是块读写,后者是字节读写
D、二者没有区别
12、已知定义:
inta[]={1,2,3,4,5,6,7,8,9,10};,为了打印输出数组a的最后一个元素,下面正确的代码是(B)。
A、System.out.println(a[10]);B、System.out.println(a[9]);
C、System.out.println(a[a.1ength]);D、System.Out.println(a(8));
13、下列说法中错误的一项是(D)。
A、Applet参数的名字必须区分大小写
B、Applet参数的值都是字符串类型的值
C.应该为Applet参数设置一个默认值,可以避免Applet工作不正常
D、获得参数的方法getParameter()可以不放在init()方法中进行
14、下列关于注释语句的描述中,正确的一项是(C)。
A、以//开始的是多行注释语句
B、以/*开始,*/结束的是单行注释语句
C、以/**开始,*/结束的是可以用于生成帮助文档的注释语句
D、以/**开始,*/结束的是单行注释语句
15、下列哪一项不属于Applet中的显示方法?
(A)
A、update()B、repaint()C、drawLine()D、paint()
16、哪个关键字可以对对象加互斥锁?
(B)
A、transient
B、synchronized
C、serialize
D、static
17、JApplet的默认布局管理器是(B)。
A、FlowLayoutB、BorderLayoutC、GridLayoutD、BoxLayout
18、下列API不属于java.1ang.Math类的一个是(C)。
A、random()B、abs()C、drawLine()D、sin()
19、Java语言属于下列哪一种语言?
(B)
A、面向机器的语言B、面向对象的语言
C、面向过程的语言D、面向操作系统的语言
20、下列哪一项不是Applet的生命周期方法?
(B)
A、start()B、getCodeBase()C、destroy()D、init()
二、简答题(2*5分=10分)
1、Applet程序运行需要经过哪几步?
(1)编写Applet源程序.java
(2)编译生成.class文件
(3)在HTML文件中加入Applet标记
(4)在浏览器中打开相应的HTML网页从而运行Applet程序
2、简述public、private和protected的含义。
(1)public:
公共、公开,可被任何类访问;可以用来修饰类、类中的成员和类中的方法;一个类被public修饰,表明它可以被所有的其他类所访问和引用,包括创建该类的对象,访问该类内部可见的成员和调用它可见的方法;
(2)private:
私有;private只能用来修饰类中的成员和类中的方法;用private修饰的成员或方法,只能被该类自身所访问和修改,而不能被任何其他类,包括该类的子类来访问和引用;
(3)protected:
保护;只用来修饰类中的成员和类中的方法;用protected修饰的成员可以被三种类所引用:
本身、同一个包内的其他类、该类的子类;它主要是用于类的继承,即子类可以访问父类中的protected成员和方法。
三.程序结果题(2*5分=10分)
1、publicclassex24{
publicstaticvoidmain(String[]args){
inta=2;
intb=3;
intc=7;
intd=a>c?
a:
c;
d=d>>2>b?
d:
b;
System.out.println(b);
}
}
答案:
3
2、publicclasstest{
publicstaticvoidmain(String[]args){
int[][]a=newint[3][3];
for(inti=1;i<4;i++)
for(intj=1;j<4;j++)
a[i-1][j-1]=(ii/j:
j/i);
}
};
答案:
100010001
四、编程题(40分)
1、设一字符串中包含有大写字母的字符,也有下写字母的字符,编写一程序,将其中的大小写字母的字符分别输出。
(10分)
[解答]:
publicclasstest1{
publicstaticvoidmain(String[]args){
Strings="sdQfEKJsfjEKjhjsjQHdFfKjSDFsdf";
Strings1="",s2="",s3;
for(inti=0;is3="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
if(s3.indexOf(s.charAt(i))!
=-1){
s1=s1+s.charAt(i);
}else{
s2=s2+s.charAt(i);
}
}
System.out.println("大写字母:
");
System.out.println(s1);
System.out.println("小写字母:
");
System.out.println(s2);
}
}
2、编写程序找出所有的水仙花数并输出。
水仙花数是三位数,它的各位数字的立方和等于这个三位数本身,例如371就是一个水仙花数:
371=3*3*3+7*7*7+1*1*1。
(10分)。
public class Narcissus
{
public static void main(String args[])
{
int i,j,k,n=100,m=1;
//while
while(n<1000)
{
i=n/100;
j=(n-i*100)/10;
k=n%10;
if((Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3))==n)
System.out.println("找到第"+ m++ +"个水仙花数:
"+n);
}
//end while
//for
m=1;
for(n=100;n<1000;n++)
{
i=n/100;
j=(n-i*100)/10;
k=n%10;
if((Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3))==n)
System.out.println("找到第"+ m++ +"个水仙花数:
"+n);
}
//end for
}
}
3、定义一个表示教师的教师类,包括的域有身份证号、姓名、性别、年龄,包括的方法有获得身份证号、姓名、性别、年龄及修改年龄。
编写Java程序创建teacher类的对象及测试其方法的功能。
(20分)
答案:
程序代码段如下:
classteacher{
privateStringid;
privateStringname;
privateStringsex;
privateintage;
teacher(Stringid,Stringname,Stringsex,intage)
{this.id=id;
this.name=name;
this.sex=sex;
this.age=age;
}
publicStringgetId()
{returnid;}
publicStringgetName()
{returnname;}
publicStringgetSex()
{returnsex;}
publicintgetAge()
{returnage;}
voidsetAge(intage)
{this.age=age;}
}
publicclassex34
{publicstaticvoidmain(Stringargs[])
{teachertea=newteacher("1501051873","李兵","男",23);
System.out.println("该教师的信息:
"+"\n身份证号:
"+tea.getId()+"\n姓名:
"+
tea.getName()+"\n性别:
"+tea.getSex()+"\n年龄:
"+tea.getAge());
tea.setAge(35);
System.out.println("修改后的年龄为:
"+tea.getAge());
}
}