Java语言程序设计试题及答案2.docx

上传人:b****5 文档编号:3599638 上传时间:2022-11-24 格式:DOCX 页数:43 大小:102.30KB
下载 相关 举报
Java语言程序设计试题及答案2.docx_第1页
第1页 / 共43页
Java语言程序设计试题及答案2.docx_第2页
第2页 / 共43页
Java语言程序设计试题及答案2.docx_第3页
第3页 / 共43页
Java语言程序设计试题及答案2.docx_第4页
第4页 / 共43页
Java语言程序设计试题及答案2.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

Java语言程序设计试题及答案2.docx

《Java语言程序设计试题及答案2.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计试题及答案2.docx(43页珍藏版)》请在冰豆网上搜索。

Java语言程序设计试题及答案2.docx

Java语言程序设计试题及答案2

Java语言程序设计试题及答案

第四章数组和字符串

4.1举例说明如何声明、创建和初始化数组。

答:

声明数组:

inta[]或int[]a

创建数组:

a=newint[]

初始化inta[]={1,2,3,4,5}

4.2举例说明如何声明、创建和初始化数组。

答:

声明多维数组:

inta[][]或int[]a[]或int[][]a

创建数组:

a=newint[][]

初始化inta[][]={{1,2,3,4,5}{6,7,8,9,10}}

4.3一个数组能够存储不同类型的元素吗?

答:

不能。

因为数组是将一组相同类型的数据顺序存储,组成一种复合数据类型。

特例:

如果将数组声明为Object类型,因为所有数据类型都直接或间接继承自Object父类,所以该数组可存储所有类型的元素。

Object[]objects=newObject[3];

inti=1;

Stringstring="abc";

booleanb=true;

objects[0]=i;

objects[1]=string;

objects[2]=b;

4.4编写一个Java程序,形成以下形式的二维数组,并输出。

1  2  9  10  25

4  3  8  11  24

5  6  7  12  23

16 15 14  13  22

17 18 19  20  21

解一:

publicstaticvoidmain(Stringargs[]){

intintArray[][]={{1,2,9,10,25},

{4,3,8,11,24},

{5,6,7,12,23},

{16,15,14,13,22},

{17,18,19,20,21}};

for(inti=0;i<=4;i++){

for(intj=0;j<=4;j++){

if(intArray[i][j]/10==0)

System.out.print(""+intArray[i][j]+"");

else

System.out.print(intArray[i][j]+"");

}

System.out.println("");

}

}

解二:

publicstaticvoidmain(String[]args){

introw=5;//这里控制输出的行列请保证行列相等

int[][]a=newint[row][row];

a[0][0]=1;

intn=2,zero=0,change=1;

intvalue=2;

for(inti=1;i

for(intj=0;j<(2*n-1);j++){

if(i%2!

=0){

if(j<(2*n-2)/2){

a[zero++][change]=value++;

continue;

}

if(j==(2*n-2)/2){

a[j][j]=value++;

}

if(j>(2*n-2)/2){

a[change][--zero]=value++;

}

}else{

if(j<(2*n-2)/2){

a[change][zero++]=value++;

continue;

}

if(j==(2*n-2)/2){

a[j][j]=value++;

}

if(j>(2*n-2)/2){

a[--zero][change]=value++;

}

}

}

n++;

change++;

zero=0;

}

Stringout="";

for(inti=0;i

for(intj=0;j

out=""+a[i][j];

if(out.length()==1)

out=""+out;

System.out.print(out+"");

}

System.out.println();

}

}

4.5java中的字符数组与字符串有什么区别?

答:

字符数组是由类型为char的字符元素组成的,每个元素位置存储一个字符元素,对于数组名为s的数组,用chars[]表示。

字符串是由0个或多个字符组成的序列,是一个对象,对于对象名为s用Strings表示。

4.6确定一个字符数组长度与确定一个String对象的长度有什么不同?

答:

确定一个字符数组的长度用数组名.length,而确定一个String对象的长度用对象名.length()

4.7用toUpperCase()和toLowerCase()方法实现大小写转换

答:

publicclassUpperAndLowerTest{

publicstaticvoidmain(Stringargs[]){

Strings1=("ABCdefgHIJkhl123"),s2,s3;

System.out.println("未转换时的字符串s1="+s1);

bytet1[]=s1.getBytes();//将字符串s1转换成字节数组t1

s2=s1.toUpperCase();//将字符串s1的字母全部转换成大写并保存到s2

s3=s1.toLowerCase();//将字符串s1的字母全部转换成小写并保存到s3

bytet2[]=s2.getBytes();//将字符串s2转换成字节数组t2

bytet3[]=s3.getBytes();//将字符串s1转换成字节数组t3

for(inti=0;i

if(t1[i]!

=t2[i])//如果t1[i]不是大写字母而是小写字母

t1[i]=t2[i];//将小写字母转换成大写字母

else//如果是大写字母

t1[i]=t3[i];//将大写字母转换成小写字母

}

s1=newString(t1);//将字节数组t1转化成字符串保存到s1中

System.out.println("进行字母大小写转换后的s1="+s1);

}

}

4.8编写一个程序通过连接两个字符串得到一个新字符串并输出。

答:

publicclassConcatTest{

publicstaticvoidmain(Stringargs[]){

Stringstr1="abcd";

Stringstr2="efgh";

Stringstr3=str1.concat(str2);

System.out.println("str3="+str3);

}

}

4.9声明MyDate类,功能:

增加1天,增减1月和增加1年的方法;输出MyDate对象日期的方法;求两个MyDate对象日期差的方法。

并提供能用当前日期初始化MyDate类对象的构造方法。

程序运行结果:

源文件:

MyDate.java

importjava.util.Calendar;

/**

*日历类

*@author段智敏

*/

publicclassMyDate

{

publicstaticlongYEAR_MSEL=1000*60*60*24*365L;

publicstaticlongMONTH_MSEL=1000*60*60*24*30L;

publicstaticlongDATE_MSEL=1000*60*60*24L;

publicstaticlongHOUR_MSEL=1000*60*60L;

publicstaticlongMINUTE_MSEL=1000*60L;

privateintyear;

privateintmonth;

privateintdate;

privateinthour;

privateintminute;

privateintsecond;

privateCalendarcalendar;

/**

*构造方法使用当前时间日期初始化对象

*/

publicMyDate()

{

calendar=Calendar.getInstance();

year=calendar.get(Calendar.YEAR);

month=calendar.get(Calendar.MONTH)+1;

date=calendar.get(Calendar.DAY_OF_MONTH);

hour=calendar.get(Calendar.HOUR_OF_DAY);

minute=calendar.get(Calendar.MINUTE);

second=calendar.get(Calendar.SECOND);

}

/**

*构造方法使用指定年、月、日初始化对象

*/

publicMyDate(intyear,intmonth,intdate)

{

set(year,month,date);

}

/**

*构造方法使用指定年、月、日、时、分、秒初始化对象

*/

publicMyDate(intyear,intmonth,intdate,inthourOfDay,intminute,intsecond)

{

set(year,month,date,hourOfDay,minute,second);

}

/**

*设置日历字段year、month和date的值。

*@paramyear-用来设置YEAR日历字段的值。

*@parammonth-用来设置month日历字段的值。

*@paramdate-用来设置date日历字段的值。

*/

publicvoidset(intyear,intmonth,intdate)

{

set(year,month,date,0,0,0);

}

/**

*设置日历字段year、month和date的值。

*@paramyear-用来设置YEAR日历字段的值。

*@parammonth-用来设置month日历字段的值。

*@paramdate-用来设置date日历字段的值。

*@paramhourOfDay-用来设置hour日历字段的值。

*@paramminute-用来设置minute日历字段的值。

*@paramsecond-用来设置second日历字段的值。

*/

publicvoidset(intyear,intmonth,intdate,inthourOfDay,intminute,intsecond)

{

calendar=Calendar.getInstance();

calendar.set(year,month-1,date,hourOfDay,minute,second);

this.year=calendar.get(Calendar.YEAR);

this.month=calendar.get(Calendar.MONTH)+1;

this.date=calendar.get(Calendar.DAY_OF_MONTH);

this.hour=calendar.get(Calendar.HOUR_OF_DAY);

this.minute=calendar.get(Calendar.MINUTE);

this.second=calendar.get(Calendar.SECOND);

}

/**

*增加一天

*/

publicvoidaddOneDay()

{

date++;

calendar.set(year,month,date);

}

/**

*增减一月

*/

publicvoidaddOneMonth()

{

month++;

calendar.set(year,month,date);

}

/**

*增加一年

*/

publicvoidaddOneYear()

{

year++;

calendar.set(year,month,date);

}

/**

*返回此时间值,以毫秒为单位。

*@return-当前时间,以从历元至现在所经过的UTC毫秒数形式。

*/

publiclonggetTimeInMillis()

{

returncalendar.getTimeInMillis();

}

/**

*两个日期相差的时间

*@parammd-另一个日期对象

*@return-相差的时间

*/

publicStringapart(MyDatemd)

{

longmsel=this.getTimeInMillis()-md.getTimeInMillis();

msel=Math.abs(msel);

booleanboo=msel>0?

true:

false;

longyear=msel/MyDate.YEAR_MSEL;

longdate=msel%MyDate.YEAR_MSEL/MyDate.DATE_MSEL;

longhour=msel%MyDate.DATE_MSEL/MyDate.HOUR_MSEL;

longminute=msel%MyDate.HOUR_MSEL/MyDate.MINUTE_MSEL;

longsecond=msel%MyDate.MINUTE_MSEL/1000;

Stringresult="";

if(boo)

result="已过去";

else

result="还有";

result+=(year+"年"+date+"天"+hour+"小时"+minute+"分钟"+second+"秒");

returnresult;

}

/**

*返回此日历的字符串表示形式。

*@return-此日历的字符串表示形式。

*/

publicStringtoString()

{

returnyear+"年"+month+"月"+date+"日,"+hour+":

"+minute+":

"+second;

}

}

测试类源文件:

TestMyDate.java

/**

*MyDate的测试类

*@author段智敏

*/

publicclassTestMyDate

{

publicstaticvoidmain(String[]args)

{

MyDatemd1=newMyDate();

MyDatemd2=newMyDate(2014,1,30);

System.out.println("当前时间:

"+md1.toString());

System.out.println("2014年除夕:

"+md2.toString());

md2.addOneDay();

System.out.println("增加一天后,大年初一:

"+md2.toString());

}

}

4.10求前n个质数。

要求确定m是否是质数,用早先求出的质数对m的整除性来确定。

/**

*求前n个质数。


*确定m是否是质数,用早先求出的质数对m的整除性来确定。


*@author段智敏

*/

publicclassWork4_10

{

/**用来存质数的数组*/

privateintarrayInt[];

publicWork4_10(intn)

{

arrayInt=newint[n];

arrayInt[0]=2;

intindex=1;//保存数组的有效长度

booleanboo=true;

for(inti=2;i

{

boo=true;

for(intj=0;j

{

if(i%arrayInt[j]==0)//用已存入数组中的质数判断

boo=false;

}

if(boo)//如果是true则是指数,存入数组,数组有效长度加1.

{

arrayInt[index]=i;

index++;

}

}

}

/**

*打印数组元素

*/

publicStringprintArray()

{

Stringresult="";

for(inti=0;i

{

if(arrayInt[i]!

=0)

result+=arrayInt[i]+"";

}

returnresult;

}

publicstaticvoidmain(String[]args)

{

Work4_10w=newWork4_10(100);

System.out.println(w.printArray());

}

}

4.11编写实现从两个字符串中找出最长的相同字符列的代码。

程序运行结果:

/**

*找出两个字符串中,最长的相同字符列

*@author段智敏

*/

publicclassWork4_11

{

publicstaticvoidmain(String[]args)

{

Stringstr1="0000abcdef0000";

Stringstr2="123ab4567cdef789abcdef";

Stringstr3=getLongSameString(str1,str2);

System.out.println("str1="+str1);

System.out.println("str2="+str2);

System.out.println("最长的相同字符串为:

"+str3);

}

publicstaticStringgetLongSameString(Stringstr1,Stringstr2)

{

Stringtemp="";

Stringsame="";

StringlongSame="";

for(inti=0;i

{

for(intj=i+1;j<=str1.length();j++)

{

temp=str1.substring(i,j);

if(str2.indexOf(temp)>0)

{

same=temp;

if(longSame.length()

{

longSame=temp;

}

}

}

}

returnlongSame;

}

}

4.12整理字符串,将字符串的前导空白符和后随空白符删去,并将字符串中非空白字符之间的连接的多个空白符只保留一个,而去掉多余的空白符。

程序运行结果:

publicclassWork4_12

{

publicstaticvoidmain(Stringargs[]){

Stringstr="ILoveYou";

str=str.trim();

StringTokenizers=newStringTokenizer(str);

StringnewStr="";

while(s.hasMoreTokens()){

newStr=newStr+""+s.nextToken();

}

System.out.println("旧字符串:

"+str);

System.out.println("处理后新字符串:

"+newStr);

}

}

4.13编写用数组实现大整数的类,提供大整数的加、减、乘等运算。

程序运行结果:

大整数类源文件:

MyBigInteger.java

/**

*大整数类

*@author段智敏

*/

publicclassMyBigInteger

{

/**能存储的最大位数*/

publicstaticfinalintMAXLENGTH=100;

/**正负号标识*/

privateintsignum=1;

/**实际存储用的数组*/

privateintdataArray[];

/**

*将参数的十进制字符串表示形式转换为BigInteger。

*@paramval-要转换的十进制字符串表示形式。

*/

pub

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1