Java程序设计题库.docx
《Java程序设计题库.docx》由会员分享,可在线阅读,更多相关《Java程序设计题库.docx(63页珍藏版)》请在冰点文库上搜索。
Java程序设计题库
Java程序设计题库
1、Java语言的主要特点是什么?
答案:
1.简单性
2.安全性
3.平台无关性
4.可移植性
5.面向对象语言
6.多线程
7.健壮性
2、常用的Java开发环境有哪些?
答案:
1.Eclipse
2.NetBeans
3.JCreator
4.EditPlus
5.BlueJ
3、Java语言主要有哪几方面的应用?
答案:
(1)JavaSE(Javaplatformstandardedition)。
(2)JavaEE(Javaplatformenterpriseedition)。
(3)JavaME(Javaplatformmicroedition)。
4、为什么采用BlueJ作为Java语言的开发环境?
答案;BlueJ是一个专门为入门级教学设计的Java开发环境。
它是由澳大利亚墨尔本Monash大学BlueJ小组设计并开发的。
BlueJ是一个完整的Java环境,是特别为课程导入教学,一年级的大学生设计的。
BlueJ消除了一些复杂的Java语法,难以理解的输入、输出,并且可视化的表示出了类与对象之间的关系。
5、Java语言的编译命令是什么,编译后生成的字节码文件的扩展名是什么?
答案:
Javac,class
6、简述编写、编译、运行第一个Java程序的步骤?
答案:
1.编写源程序.
使用文本编辑器
windows的记事本,Unix/Linux的gedit文本编辑器或者vi/emacs(如果你会用它们)
(注意:
word/Office等图文混排工具不可以).
用文本编辑器编写源程序如下:
publicclassHello{
publicstaticvoidmain(String[]args){
System.out.println("你好!
");
}
}
把上面的源程序存为文件Hello.java
注意:
必须使用这个文件名.因为文件的名称必须和文件内的类(class)的名称保持一致,并且增加.java为文件名的后缀.
2.编译
把源程序翻译为Java可执行程序.
打开控制台界面,到保存Hello.java文件的目录,执行下面的命令
javacHello.java
如果产生了一个新的文件Hello.class,那么编译成功.
如果没有产生了一个新的文件Hello.class,那么编译失败,通常是源程序中有语法错误.
3.执行
在java.class的目录,实际上就是当前的目录不用变化,执行下面的命令:
javaHello
将得到程序的执行结果显示如下:
你好!
7、在Java中字符数据是采用哪种编码形式?
占用的字节数是多少?
答案:
Unicode,2个字节
8、在Java种八进制和十六进制的数如何表示?
答案:
以0作为前缀,数码有0,1,2,3,4,5,6,7,逢8进位,十六进制表示:
以0x作为前缀,数码有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,逢16进位
9、Java语言中基本数据类型有哪些?
答案:
在JAVA中一共有八种基本数据类型,他们分别是byte、short、int、long、float、double、char、boolean
10、给出三个整数,求平均数。
答案:
publicclassNumOption{
publicstaticvoidmain(String[]args){
inta=23,b=46,c=59;
System.out.println("a,b,c平均数为:
"+(a+b+c)/3.0);
}
}
11、给出一个三位整数,按相反的顺序输出该数,即输入247,输出742
答案:
publicclassFanxu{
publicstaticvoidmain(String[]args){
inta=479;
inti=a/100,j=a%10;
intk=a/10-i*10;
System.out.println("a"+(j*100+k*10+i));
}
}
12、编程实现:
求100以内所有偶数的和。
publicclassOuSum{
publicstaticvoidmain(String[]args){
inti,sum=0;
for(i=1;i<=100;i++)
if(i%2==0)sum+=i;
System.out.println("sum"+sum);
}
}
13、编程实现:
输入3个数,按从小到大输出。
publicclassPaicu{
publicstaticvoidmain(String[]args){
inta=23,b=46,c=34,t;
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(b>c){t=b;b=c;c=t;}
System.out.println(a+","+b+","+c);
}
}
14、编程实现:
输入起始年号,输出100年内的闰年。
importjava.util.Scanner;
publicclassYunnian{
publicstaticvoidmain(String[]args){
System.out.print("输入年份:
");
Scannersc=newScanner(System.in);
intyear=sc.nextInt();
//设置布尔型变量存满足闰年的条件
booleanisRn=(year%4==0)&&(year%100!
=0)||(year%400==0);
//用if-else结构判断输入年份是否为闰年
if(isRn){
System.out.println(year+"年是闰年");
}else{
System.out.println(year+"年是平年");
}
}
}
15、编写求最大公约数和最小公倍数的程序。
importjava.util.Scanner;
publicclassGyueshu{
publicstaticvoidmain(String[]args){
Scannerinput=newScanner(System.in);
intmin;
intmax;
System.out.print("请输入一个数:
");
min=input.nextInt();
System.out.print("请输入另一个数:
");
max=input.nextInt();
System.out.println(gongyue(min,max));
System.out.println(gongbei(min,max));
}
//m与n的最大公约数
publicstaticintgongyue(intmin,intmax){
if(min==0){
returnmax;
}else{
returngongyue(max%min,min);
}
}
//m与n的最小公倍数
publicstaticintgongbei(intmin,intmax){
returnmin*max/gongyue(min,max);
}
}
16、编写方法,将八进制数转换为十进制数。
Integer.valueOf("876",8).toString()
17、编程实现:
一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃掉前一天剩下的一半零一个,第十天早上想再吃时,发现只剩下一个桃子了。
请问猴子第一天一共摘了多少个桃子?
publicclassMonkeyEatPeach{
publicstaticvoidmain(String[]args){
inttotalpeach=0;
intday=10;
intlastdaypeach=1;
totalpeach=totalPeach(10,1);
System.out.println(totalpeach);
}
privatestaticinttotalPeach(intday,intlastdaypeach){
inttotal=0;
intloopnum=day-1;
inttemp=lastdaypeach+1;
for(inti=0;itotal=temp*2;
temp=total+1;
System.out.println(total);
}
returntotal;
}
}
18、同一个数组能否存放不同类型的数据?
答案:
不能存放不同类型的数据?
19、数组对象的哪个成员变量可以测出数组元素的个数?
答案:
length
20、定义一个一维数组,求出数组的最大值、最小值、平均值。
publicclassArrayNum{
publicstaticvoidmain(String[]args){
intpar[]={5,7,3,9,1,23,54,35,57,76,44,64};
intmin,max,sum=0;
min=max=par[0];
for(inti=0;iif(min>par[i])
min=par[i];
if(maxmax=par[i];
sum=sum+par[i];
}
System.out.println("min="+min);
System.out.println("max="+max);
System.out.println("avg="+sum/par.length);
}
}
21、利用二维数组,任意给出一个矩阵,编写出现实现矩阵转置的代码。
importjava.util.Scanner;
publicclassMatrices{
publicstaticvoidmain(Stringargs[]){
Scannerreader=newScanner(System.in);
intcount,count1;
doublea[][];
System.out.println("请输入行数:
");
count=reader.nextInt();
System.out.println("请输入列数:
");
count1=reader.nextInt();
a=newdouble[count][count1];
System.out.print("请按列输入数据,按回车确认");
intk=0;
while(kintp=k+1;
intm=0;
System.out.println("\n第"+p+"列的元素是:
");
while(mdoublex=reader.nextDouble();
a[m][k]=x;
m=m+1;
}
k=k+1;
}
System.out.println("您输入的矩阵是:
");
for(inti=0;ifor(intj=0;jSystem.out.printf("%9.3f",a[i][j]);
System.out.printf("%9.3f\n",a[i][count1-1]);
}
System.out.println("其转置矩阵是:
");
for(intj=0;jfor(inti=0;iSystem.out.printf("%9.3f",a[i][j]);
System.out.printf("%9.3f\n",a[count-1][j]);
}
}
}
22、任意给出一个十进制整数,将十进制数转换为二进制数。
publicstringDtoB(intd){
stringb="";
//判断该数如果小于2,则直接输出
if(d<2)
{
b=d.ToString();
}
else
{
intc;
ints=0;
intn=d;
while(n>=2)
{
s++;
n=n/2;
}
int[]m=newint[s];
inti=0;
do
{
c=d/2;
m[i++]=d%2;
d=c;
}while(c>=2);
b=d.ToString();
for(intj=m.Length-1;j>=0;j--)
{
b+=m[j].ToString();
}
}
returnb;
}
23、编写一个程序判断字符串"Tom"是否在另一个字符串"IamTom,IamfromChina."中出现。
publicclassIsString{
publicstaticvoidmain(Stringargs[]){
Stringa="Tom";
Stringb="IamTom,IamfromChina.";
System.out.println(containsAny(b,a));
}
publicstaticbooleancontainsAny(Stringstr,StringsearchChars){
for(inti=0;i<=str.length();i++){
inttemp;
temp=str.indexOf(searchChars);
if(temp>=0)
returntrue;
else
returnfalse;
}
returnfalse;
}
}
24、编写一个程序找出字符串"MynameisTom,IcomefromChina."中的大写字母,并打印输出。
publicclassC{
publicstaticvoidmain(Stringargs[]){
intj=0;//j为计数器累加大写字母个数
Stringstr=args[0];//取得命令行传过来的字符
intc=str.length();//测试字符串长度
/**
*下面用循环来遍历这个字符串判断是否为大写字母
**/
for(inti=0;iCharactercc=str.charAt(i);
booleand=Character.isUpperCase(cc);
if(d){
j+=1;
}
}
System.out.println("字符串"+str+"中包含"+j+"个大写字母!
");
}
}
25、简述Java中类和对象的关系?
答案参考:
类型是对一组对象的抽象,提取了这一组对象的共同特点。
这些对象本身是客观存在的,是具体的,而类型则是一个抽象的概念,不是一个客观存在。
类型是抽象的。
如果为某个类型的所有属性赋值,将会得到一个具体的对象,对象是类型的实例。
认识类型和对象之间的关系,先是根据这些具有相同特征的对象抽象出一个类型,然后需要的时候,根据类型的特征去描述这个对象。
26、类的静态成员的特点是什么?
如何定义静态成员?
答案:
类的静态成员属于整个类,不属于具体的对象实例,用ststic定义。
27、方法中的局部变量是否可以和类的成员变量重名?
答案:
可以,使用时候通过this区别。
28、对象如何进行初始化?
在什么时候进行?
答案:
对象在创建的时候调用构造方法进行初始化,在new构造方法()的时候进行。
29、抽象类可以生成实例对象吗?
为什么?
答案:
不能生成实例对象,因为抽象类是不能实例化的类。
30、什么样的方法是抽象方法,为什么使用抽象方法?
答案:
抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体。
31、编写一个类,类名为Rectangle(矩形),它有两个整型成员变量width(宽)和height(高);有一个方法名称为area(),没有参数,返回类型为double,功能是求矩形面积;还有一个方法名称为perimeter(),没有参数,返回类型为double,功能为求矩形的周长。
publicclassRectangleTest{
publicstaticvoidmain(String[]args){
intwidth=10;
intheight=5;
Rectanglerectangle=newRectangle(width,height);
System.out.println("长方形的长是:
"+width+",宽是:
"+height);
System.out.println("其周长是:
"+rectangle.getRectanglePerimeter());
System.out.println("其面试是:
"+rectangle.getRectangleArea());
}
}
classRectangle{
privateintwidth;
privateintheight;
publicRectangle(intwidth,intheight){
this.width=width;
this.height=height;
}
publicintgetRectanglePerimeter(){
return(2*width)+(2*height);
}
publicintgetRectangleArea(){
returnwidth*height;
}
}
32、用Java实现如下的骰子游戏:
丢下两个骰子,若分值的总值为7点,则赢,否则输。
提示:
(1)定义Die类。
Die类表示一个骰子有faceValue属性,有roll()和getFaceValue()方法。
roll()方法是产生1~6的随机整数为faceValue属性赋值。
getFaceValue()是取出faceValue的值。
(2)定义DiceGame类。
DiceGame类有die1、die2两个属性,有一个play()方法。
play()方法返回一个Boolean类型,true表示分值的总值为7点,否则为false。
(3)定义Test类,对上面定义的类进行测试。
publicclassDie{
privateintfaceValue;
publicintgetFaceValue(){
returnfaceValue;
}
publicvoidsetFaceValue(intfaceValue){
this.faceValue=faceValue;
}
publicvoidroll(){
this.faceValue=(int)(Math.random()*6+1);
}
}
publicclassDieGame{
privateDiedie1=newDie();
privateDiedie2=newDie();
publicstaticvoidmain(String[]args){
DieGamedieGame=newDieGame();
if(dieGame.play()){
System.out.println("你赢了!
");
}else{
System.out.println("你输了!
");
}
}
publicbooleanplay(){
die1.roll();
System.out.println("第一次点数:
"+die1.getFaceValue());
die2.roll();
System.out.println("第二次点数:
"+die2.getFaceValue());
if(die1.getFaceValue()+die2.getFaceValue()==7){
returntrue;
}else{
returnfalse;
}
}
}
33、构造一个Calendar类的实例对象,求当前时间(小时:
分钟:
秒)。
importjava.util.Calendar;
publicclassMyCalendar{
publicstaticvoidmain(String[]args){
Calendarcalendar=Calendar.getInstance();
inthour=calendar.get(Calendar.HOUR);
//默认取到月的值1月是0,所以都要加1
intminute=calendar.get(Calendar.MINUTE);
intsecond=calendar.get(Calendar.SECOND);
System.out.println("现在时间是:
"+hour+"点"+minute+"分钟"+second+"秒");
}
}
34、什么是异常?
为什么要进行异常处理?
异常是指程序的运行错误。
这些错误通常在程序编译时无法发现,只有等到程序运行时才会出问题。
如果对运行中的错误不处理,程序将中断退出,无法保证程序继续正常运行。
当然异常的存在不单单是影响到程序的正常运行,更为严重的是有些异常如果不处理,甚至导致程序编译错误,无法正常启动。
35、Java中的异常处理机制是什么?
Java语言主要提供两种处理异常的机制:
(1)捕获异常。
当Java运行时系统得到一个异常对象时,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码。
找到能够处理这种类型的异常的方法后,运行时系统把当前异常对象交给这个方法进行处理,这一过程称为捕获(catch)异常。
这是积极的异常处理机制。
如果Java运行时系统找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。
(2)声明抛出异常。
如果一个方法并不知道如何处理所出现的异常,则可在方法声明时,声明抛弃(throws)异常。
这是一